From 13dcba5ac7f0160c2f766c8558b4aa6dd7ca2c26 Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Wed, 14 May 2025 23:23:25 +0530 Subject: [PATCH 01/13] vite integration --- .babelrc | 8 - .gitignore | 3 + dist/favicon.ico | Bin 0 -> 24838 bytes dist/hammer.png | Bin 0 -> 173316 bytes dist/index.css | 1 + dist/index.html | 13 + dist/index.js | 64 + dist/index.js.map | 1 + dist/nails.png | Bin 0 -> 161313 bytes dist/wrench.png | Bin 0 -> 197714 bytes index.html | 12 + package-lock.json | 8686 +++++++++------------------- package.json | 24 +- public/index.html | 15 - src/components/{App.js => App.jsx} | 2 +- src/index.js | 24 - src/index.jsx | 17 + vite.config.js | 27 + webpack.config.js | 70 - 19 files changed, 3002 insertions(+), 5965 deletions(-) delete mode 100644 .babelrc create mode 100644 dist/favicon.ico create mode 100644 dist/hammer.png create mode 100644 dist/index.css create mode 100644 dist/index.html create mode 100644 dist/index.js create mode 100644 dist/index.js.map create mode 100644 dist/nails.png create mode 100644 dist/wrench.png create mode 100644 index.html delete mode 100644 public/index.html rename src/components/{App.js => App.jsx} (99%) delete mode 100644 src/index.js create mode 100644 src/index.jsx create mode 100644 vite.config.js delete mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 89317c0..0000000 --- a/.babelrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "presets": [ - "@babel/preset-env", - ["@babel/preset-react", { - "runtime": "automatic" - }] - ] - } \ No newline at end of file diff --git a/.gitignore b/.gitignore index a73e18b..44fdf53 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ # production /build + +# Sentry Config File +.env.sentry-build-plugin diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c125de5d897c1ff5692a656485b3216123dcd89 GIT binary patch literal 24838 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
BiwFcUImhh+eRA0|tr(%viGsWC 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 + + + + + Sentry Demo + + + + +
+ + \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..c10c187 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,64 @@ +try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},u=new a.Error().stack;u&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[u]="270240c8-30ba-4157-91b3-09880470b47a",a._sentryDebugIdIdentifier="sentry-dbid-270240c8-30ba-4157-91b3-09880470b47a")}catch{}{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"ce68e195fa626706a710d200dda3a14e7fdb8614"}}(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))f(s);new MutationObserver(s=>{for(const d of s)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&f(m)}).observe(document,{childList:!0,subtree:!0});function r(s){const d={};return s.integrity&&(d.integrity=s.integrity),s.referrerPolicy&&(d.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?d.credentials="include":s.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function f(s){if(s.ep)return;s.ep=!0;const d=r(s);fetch(s.href,d)}})();function Qg(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var tf={exports:{}},$a={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var qh;function wg(){if(qh)return $a;qh=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function r(f,s,d){var m=null;if(d!==void 0&&(m=""+d),s.key!==void 0&&(m=""+s.key),"key"in s){d={};for(var g in s)g!=="key"&&(d[g]=s[g])}else d=s;return s=d.ref,{$$typeof:a,type:f,key:m,ref:s!==void 0?s:null,props:d}}return $a.Fragment=u,$a.jsx=r,$a.jsxs=r,$a}var jh;function Zg(){return jh||(jh=1,tf.exports=wg()),tf.exports}var ut=Zg(),ef={exports:{}},J={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Lh;function Vg(){if(Lh)return J;Lh=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),U=Symbol.iterator;function q(_){return _===null||typeof _!="object"?null:(_=U&&_[U]||_["@@iterator"],typeof _=="function"?_:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},tt=Object.assign,At={};function ft(_,x,j){this.props=_,this.context=x,this.refs=At,this.updater=j||B}ft.prototype.isReactComponent={},ft.prototype.setState=function(_,x){if(typeof _!="object"&&typeof _!="function"&&_!=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,_,x,"setState")},ft.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function oe(){}oe.prototype=ft.prototype;function Ft(_,x,j){this.props=_,this.context=x,this.refs=At,this.updater=j||B}var Rt=Ft.prototype=new oe;Rt.constructor=Ft,tt(Rt,ft.prototype),Rt.isPureReactComponent=!0;var be=Array.isArray,et={H:null,A:null,T:null,S:null,V:null},Wt=Object.prototype.hasOwnProperty;function It(_,x,j,C,G,nt){return j=nt.ref,{$$typeof:a,type:_,key:x,ref:j!==void 0?j:null,props:nt}}function Pt(_,x){return It(_.type,x,void 0,void 0,void 0,_.props)}function Re(_){return typeof _=="object"&&_!==null&&_.$$typeof===a}function ul(_){var x={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(j){return x[j]})}var He=/\/+/g;function jt(_,x){return typeof _=="object"&&_!==null&&_.key!=null?ul(""+_.key):x.toString(36)}function Un(){}function xn(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(Un,Un):(_.status="pending",_.then(function(x){_.status==="pending"&&(_.status="fulfilled",_.value=x)},function(x){_.status==="pending"&&(_.status="rejected",_.reason=x)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function Lt(_,x,j,C,G){var nt=typeof _;(nt==="undefined"||nt==="boolean")&&(_=null);var K=!1;if(_===null)K=!0;else switch(nt){case"bigint":case"string":case"number":K=!0;break;case"object":switch(_.$$typeof){case a:case u:K=!0;break;case D:return K=_._init,Lt(K(_._payload),x,j,C,G)}}if(K)return G=G(_),K=C===""?"."+jt(_,0):C,be(G)?(j="",K!=null&&(j=K.replace(He,"$&/")+"/"),Lt(G,x,j,"",function(en){return en})):G!=null&&(Re(G)&&(G=Pt(G,j+(G.key==null||_&&_.key===G.key?"":(""+G.key).replace(He,"$&/")+"/")+K)),x.push(G)),1;K=0;var te=C===""?".":C+":";if(be(_))for(var yt=0;yt<_.length;yt++)C=_[yt],nt=te+jt(C,yt),K+=Lt(C,x,j,nt,G);else if(yt=q(_),typeof yt=="function")for(_=yt.call(_),yt=0;!(C=_.next()).done;)C=C.value,nt=te+jt(C,yt++),K+=Lt(C,x,j,nt,G);else if(nt==="object"){if(typeof _.then=="function")return Lt(xn(_),x,j,C,G);throw x=String(_),Error("Objects are not valid as a React child (found: "+(x==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":x)+"). If you meant to render a collection of children, use an array instead.")}return K}function M(_,x,j){if(_==null)return _;var C=[],G=0;return Lt(_,C,"","",function(nt){return x.call(j,nt,G++)}),C}function H(_){if(_._status===-1){var x=_._result;x=x(),x.then(function(j){(_._status===0||_._status===-1)&&(_._status=1,_._result=j)},function(j){(_._status===0||_._status===-1)&&(_._status=2,_._result=j)}),_._status===-1&&(_._status=0,_._result=x)}if(_._status===1)return _._result.default;throw _._result}var w=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var x=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(x))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)};function ht(){}return J.Children={map:M,forEach:function(_,x,j){M(_,function(){x.apply(this,arguments)},j)},count:function(_){var x=0;return M(_,function(){x++}),x},toArray:function(_){return M(_,function(x){return x})||[]},only:function(_){if(!Re(_))throw Error("React.Children.only expected to receive a single React element child.");return _}},J.Component=ft,J.Fragment=r,J.Profiler=s,J.PureComponent=Ft,J.StrictMode=f,J.Suspense=y,J.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=et,J.__COMPILER_RUNTIME={__proto__:null,c:function(_){return et.H.useMemoCache(_)}},J.cache=function(_){return function(){return _.apply(null,arguments)}},J.cloneElement=function(_,x,j){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var C=tt({},_.props),G=_.key,nt=void 0;if(x!=null)for(K in x.ref!==void 0&&(nt=void 0),x.key!==void 0&&(G=""+x.key),x)!Wt.call(x,K)||K==="key"||K==="__self"||K==="__source"||K==="ref"&&x.ref===void 0||(C[K]=x[K]);var K=arguments.length-2;if(K===1)C.children=j;else if(1>>1,_=M[ht];if(0>>1;hts(C,w))G<_&&0>s(nt,C)?(M[ht]=nt,M[G]=w,ht=G):(M[ht]=C,M[j]=w,ht=j);else if(G<_&&0>s(nt,w))M[ht]=nt,M[G]=w,ht=G;else break t}}return H}function s(M,H){var w=M.sortIndex-H.sortIndex;return w!==0?w:M.id-H.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var m=Date,g=m.now();a.unstable_now=function(){return m.now()-g}}var y=[],v=[],D=1,U=null,q=3,B=!1,tt=!1,At=!1,ft=!1,oe=typeof setTimeout=="function"?setTimeout:null,Ft=typeof clearTimeout=="function"?clearTimeout:null,Rt=typeof setImmediate<"u"?setImmediate:null;function be(M){for(var H=r(v);H!==null;){if(H.callback===null)f(v);else if(H.startTime<=M)f(v),H.sortIndex=H.expirationTime,u(y,H);else break;H=r(v)}}function et(M){if(At=!1,be(M),!tt)if(r(y)!==null)tt=!0,Wt||(Wt=!0,jt());else{var H=r(v);H!==null&&Lt(et,H.startTime-M)}}var Wt=!1,It=-1,Pt=5,Re=-1;function ul(){return ft?!0:!(a.unstable_now()-ReM&&ul());){var ht=U.callback;if(typeof ht=="function"){U.callback=null,q=U.priorityLevel;var _=ht(U.expirationTime<=M);if(M=a.unstable_now(),typeof _=="function"){U.callback=_,be(M),H=!0;break e}U===r(y)&&f(y),be(M)}else f(y);U=r(y)}if(U!==null)H=!0;else{var x=r(v);x!==null&&Lt(et,x.startTime-M),H=!1}}break t}finally{U=null,q=w,B=!1}H=void 0}}finally{H?jt():Wt=!1}}}var jt;if(typeof Rt=="function")jt=function(){Rt(He)};else if(typeof MessageChannel<"u"){var Un=new MessageChannel,xn=Un.port2;Un.port1.onmessage=He,jt=function(){xn.postMessage(null)}}else jt=function(){oe(He,0)};function Lt(M,H){It=oe(function(){M(a.unstable_now())},H)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(M){M.callback=null},a.unstable_forceFrameRate=function(M){0>M||125ht?(M.sortIndex=w,u(v,M),r(y)===null&&M===r(v)&&(At?(Ft(It),It=-1):At=!0,Lt(et,w-ht))):(M.sortIndex=_,u(y,M),tt||B||(tt=!0,Wt||(Wt=!0,jt()))),M},a.unstable_shouldYield=ul,a.unstable_wrapCallback=function(M){var H=q;return function(){var w=q;q=H;try{return M.apply(this,arguments)}finally{q=w}}}}(af)),af}var Xh;function Jg(){return Xh||(Xh=1,lf.exports=Kg()),lf.exports}var uf={exports:{}},Xt={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Qh;function kg(){if(Qh)return Xt;Qh=1;var a=zf();function u(y){var v="https://react.dev/errors/"+y;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(u){console.error(u)}}return a(),uf.exports=kg(),uf.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Zh;function Fg(){if(Zh)return Fa;Zh=1;var a=Jg(),u=zf(),r=$g();function f(t){var e="https://react.dev/errors/"+t;if(1_||(t.current=ht[_],ht[_]=null,_--)}function C(t,e){_++,ht[_]=t.current,t.current=e}var G=x(null),nt=x(null),K=x(null),te=x(null);function yt(t,e){switch(C(K,e),C(nt,t),C(G,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?sh(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=sh(e),t=oh(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}j(G),C(G,t)}function en(){j(G),j(nt),j(K)}function Yi(t){t.memoizedState!==null&&C(te,t);var e=G.current,n=oh(e,t.type);e!==n&&(C(nt,t),C(G,n))}function au(t){nt.current===t&&(j(G),j(nt)),te.current===t&&(j(te),Za._currentValue=w)}var Gi=Object.prototype.hasOwnProperty,Xi=a.unstable_scheduleCallback,Qi=a.unstable_cancelCallback,Sp=a.unstable_shouldYield,Ep=a.unstable_requestPaint,Me=a.unstable_now,bp=a.unstable_getCurrentPriorityLevel,wf=a.unstable_ImmediatePriority,Zf=a.unstable_UserBlockingPriority,uu=a.unstable_NormalPriority,Tp=a.unstable_LowPriority,Vf=a.unstable_IdlePriority,Ap=a.log,Op=a.unstable_setDisableYieldValue,Il=null,ee=null;function nn(t){if(typeof Ap=="function"&&Op(t),ee&&typeof ee.setStrictMode=="function")try{ee.setStrictMode(Il,t)}catch{}}var ne=Math.clz32?Math.clz32:Mp,Dp=Math.log,Rp=Math.LN2;function Mp(t){return t>>>=0,t===0?32:31-(Dp(t)/Rp|0)|0}var iu=256,cu=4194304;function Cn(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function ru(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var i=0,c=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var h=l&134217727;return h!==0?(l=h&~c,l!==0?i=Cn(l):(o&=h,o!==0?i=Cn(o):n||(n=h&~t,n!==0&&(i=Cn(n))))):(h=l&~c,h!==0?i=Cn(h):o!==0?i=Cn(o):n||(n=l&~t,n!==0&&(i=Cn(n)))),i===0?0:e!==0&&e!==i&&(e&c)===0&&(c=i&-i,n=e&-e,c>=n||c===32&&(n&4194048)!==0)?e:i}function Pl(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function Np(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Kf(){var t=iu;return iu<<=1,(iu&4194048)===0&&(iu=256),t}function Jf(){var t=cu;return cu<<=1,(cu&62914560)===0&&(cu=4194304),t}function wi(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function ta(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function zp(t,e,n,l,i,c){var o=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var h=t.entanglements,p=t.expirationTimes,T=t.hiddenUpdates;for(n=o&~n;0)":-1i||p[l]!==T[i]){var R=` +`+p[l].replace(" at new "," at ");return t.displayName&&R.includes("")&&(R=R.replace("",t.displayName)),R}while(1<=l&&0<=i);break}}}finally{$i=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?ol(n):""}function qp(t){switch(t.tag){case 26:case 27:case 5:return ol(t.type);case 16:return ol("Lazy");case 13:return ol("Suspense");case 19:return ol("SuspenseList");case 0:case 15:return Fi(t.type,!1);case 11:return Fi(t.type.render,!1);case 1:return Fi(t.type,!0);case 31:return ol("Activity");default:return""}}function ls(t){try{var e="";do e+=qp(t),t=t.return;while(t);return e}catch(n){return` +Error generating stack: `+n.message+` +`+n.stack}}function de(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function as(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function jp(t){var e=as(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),l=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,c=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(o){l=""+o,c.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return l},setValue:function(o){l=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function ou(t){t._valueTracker||(t._valueTracker=jp(t))}function us(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),l="";return t&&(l=as(t)?t.checked?"true":"false":t.value),t=l,t!==n?(e.setValue(t),!0):!1}function du(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Lp=/[\n"\\]/g;function he(t){return t.replace(Lp,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Wi(t,e,n,l,i,c,o,h){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+de(e)):t.value!==""+de(e)&&(t.value=""+de(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?Ii(t,o,de(e)):n!=null?Ii(t,o,de(n)):l!=null&&t.removeAttribute("value"),i==null&&c!=null&&(t.defaultChecked=!!c),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?t.name=""+de(h):t.removeAttribute("name")}function is(t,e,n,l,i,c,o,h){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(t.type=c),e!=null||n!=null){if(!(c!=="submit"&&c!=="reset"||e!=null))return;n=n!=null?""+de(n):"",e=e!=null?""+de(e):n,h||e===t.value||(t.value=e),t.defaultValue=e}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=h?t.checked:!!l,t.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o)}function Ii(t,e,n){e==="number"&&du(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function dl(t,e,n,l){if(t=t.options,e){e={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),lc=!1;if(qe)try{var aa={};Object.defineProperty(aa,"passive",{get:function(){lc=!0}}),window.addEventListener("test",aa,aa),window.removeEventListener("test",aa,aa)}catch{lc=!1}var an=null,ac=null,mu=null;function hs(){if(mu)return mu;var t,e=ac,n=e.length,l,i="value"in an?an.value:an.textContent,c=i.length;for(t=0;t=ca),vs=" ",Ss=!1;function Es(t,e){switch(t){case"keyup":return dy.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bs(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var yl=!1;function my(t,e){switch(t){case"compositionend":return bs(e);case"keypress":return e.which!==32?null:(Ss=!0,vs);case"textInput":return t=e.data,t===vs&&Ss?null:t;default:return null}}function py(t,e){if(yl)return t==="compositionend"||!fc&&Es(t,e)?(t=hs(),mu=ac=an=null,yl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=zs(n)}}function xs(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?xs(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Cs(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=du(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=du(t.document)}return e}function dc(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var Ty=qe&&"documentMode"in document&&11>=document.documentMode,gl=null,hc=null,oa=null,mc=!1;function Hs(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;mc||gl==null||gl!==du(l)||(l=gl,"selectionStart"in l&&dc(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),oa&&sa(oa,l)||(oa=l,l=ai(hc,"onSelect"),0>=o,i-=o,Le=1<<32-ne(e)+i|n<c?c:8;var o=M.T,h={};M.T=h,Pc(t,!1,e,n);try{var p=i(),T=M.S;if(T!==null&&T(h,p),p!==null&&typeof p=="object"&&typeof p.then=="function"){var R=xy(p,l);Da(t,e,R,re(t))}else Da(t,e,l,re(t))}catch(z){Da(t,e,{then:function(){},status:"rejected",reason:z},re())}finally{H.p=c,M.T=o}}function jy(){}function Wc(t,e,n,l){if(t.tag!==5)throw Error(f(476));var i=qo(t).queue;Bo(t,i,e,w,n===null?jy:function(){return jo(t),n(l)})}function qo(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:w,baseState:w,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qe,lastRenderedState:w},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qe,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function jo(t){var e=qo(t).next.queue;Da(t,e,{},re())}function Ic(){return Gt(Za)}function Lo(){return Dt().memoizedState}function Yo(){return Dt().memoizedState}function Ly(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=re();t=rn(n);var l=fn(e,t,n);l!==null&&(fe(l,e,n),Sa(l,e,n)),e={cache:Mc()},t.payload=e;return}e=e.return}}function Yy(t,e,n){var l=re();n={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},Lu(t)?Xo(e,n):(n=_c(t,e,n,l),n!==null&&(fe(n,t,l),Qo(n,e,l)))}function Go(t,e,n){var l=re();Da(t,e,n,l)}function Da(t,e,n,l){var i={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(Lu(t))Xo(e,i);else{var c=t.alternate;if(t.lanes===0&&(c===null||c.lanes===0)&&(c=e.lastRenderedReducer,c!==null))try{var o=e.lastRenderedState,h=c(o,n);if(i.hasEagerState=!0,i.eagerState=h,le(h,o))return Eu(t,e,i,0),pt===null&&Su(),!1}catch{}finally{}if(n=_c(t,e,i,l),n!==null)return fe(n,t,l),Qo(n,e,l),!0}return!1}function Pc(t,e,n,l){if(l={lane:2,revertLane:Ur(),action:l,hasEagerState:!1,eagerState:null,next:null},Lu(t)){if(e)throw Error(f(479))}else e=_c(t,n,l,2),e!==null&&fe(e,t,2)}function Lu(t){var e=t.alternate;return t===k||e!==null&&e===k}function Xo(t,e){Rl=xu=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Qo(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,$f(t,n)}}var Yu={readContext:Gt,use:Hu,useCallback:Et,useContext:Et,useEffect:Et,useImperativeHandle:Et,useLayoutEffect:Et,useInsertionEffect:Et,useMemo:Et,useReducer:Et,useRef:Et,useState:Et,useDebugValue:Et,useDeferredValue:Et,useTransition:Et,useSyncExternalStore:Et,useId:Et,useHostTransitionStatus:Et,useFormState:Et,useActionState:Et,useOptimistic:Et,useMemoCache:Et,useCacheRefresh:Et},wo={readContext:Gt,use:Hu,useCallback:function(t,e){return Kt().memoizedState=[t,e===void 0?null:e],t},useContext:Gt,useEffect:Do,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,ju(4194308,4,zo.bind(null,e,t),n)},useLayoutEffect:function(t,e){return ju(4194308,4,t,e)},useInsertionEffect:function(t,e){ju(4,2,t,e)},useMemo:function(t,e){var n=Kt();e=e===void 0?null:e;var l=t();if(Kn){nn(!0);try{t()}finally{nn(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=Kt();if(n!==void 0){var i=n(e);if(Kn){nn(!0);try{n(e)}finally{nn(!1)}}}else i=e;return l.memoizedState=l.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},l.queue=t,t=t.dispatch=Yy.bind(null,k,t),[l.memoizedState,t]},useRef:function(t){var e=Kt();return t={current:t},e.memoizedState=t},useState:function(t){t=Jc(t);var e=t.queue,n=Go.bind(null,k,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:$c,useDeferredValue:function(t,e){var n=Kt();return Fc(n,t,e)},useTransition:function(){var t=Jc(!1);return t=Bo.bind(null,k,t.queue,!0,!1),Kt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=k,i=Kt();if(at){if(n===void 0)throw Error(f(407));n=n()}else{if(n=e(),pt===null)throw Error(f(349));(P&124)!==0||fo(l,e,n)}i.memoizedState=n;var c={value:n,getSnapshot:e};return i.queue=c,Do(oo.bind(null,l,c,t),[t]),l.flags|=2048,Nl(9,qu(),so.bind(null,l,c,n,e),null),n},useId:function(){var t=Kt(),e=pt.identifierPrefix;if(at){var n=Ye,l=Le;n=(l&~(1<<32-ne(l)-1)).toString(32)+n,e="«"+e+"R"+n,n=Cu++,0Q?(Ct=Y,Y=null):Ct=Y.sibling;var lt=A(E,Y,b[Q],N);if(lt===null){Y===null&&(Y=Ct);break}t&&Y&<.alternate===null&&e(E,Y),S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt,Y=Ct}if(Q===b.length)return n(E,Y),at&&Gn(E,Q),L;if(Y===null){for(;QQ?(Ct=Y,Y=null):Ct=Y.sibling;var Dn=A(E,Y,lt.value,N);if(Dn===null){Y===null&&(Y=Ct);break}t&&Y&&Dn.alternate===null&&e(E,Y),S=c(Dn,S,Q),$===null?L=Dn:$.sibling=Dn,$=Dn,Y=Ct}if(lt.done)return n(E,Y),at&&Gn(E,Q),L;if(Y===null){for(;!lt.done;Q++,lt=b.next())lt=z(E,lt.value,N),lt!==null&&(S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt);return at&&Gn(E,Q),L}for(Y=l(Y);!lt.done;Q++,lt=b.next())lt=O(Y,E,Q,lt.value,N),lt!==null&&(t&<.alternate!==null&&Y.delete(lt.key===null?Q:lt.key),S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt);return t&&Y.forEach(function(Xg){return e(E,Xg)}),at&&Gn(E,Q),L}function dt(E,S,b,N){if(typeof b=="object"&&b!==null&&b.type===tt&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case q:t:{for(var L=b.key;S!==null;){if(S.key===L){if(L=b.type,L===tt){if(S.tag===7){n(E,S.sibling),N=i(S,b.props.children),N.return=E,E=N;break t}}else if(S.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===Pt&&Vo(L)===S.type){n(E,S.sibling),N=i(S,b.props),Ma(N,b),N.return=E,E=N;break t}n(E,S);break}else e(E,S);S=S.sibling}b.type===tt?(N=Ln(b.props.children,E.mode,N,b.key),N.return=E,E=N):(N=Tu(b.type,b.key,b.props,null,E.mode,N),Ma(N,b),N.return=E,E=N)}return o(E);case B:t:{for(L=b.key;S!==null;){if(S.key===L)if(S.tag===4&&S.stateNode.containerInfo===b.containerInfo&&S.stateNode.implementation===b.implementation){n(E,S.sibling),N=i(S,b.children||[]),N.return=E,E=N;break t}else{n(E,S);break}else e(E,S);S=S.sibling}N=Ec(b,E.mode,N),N.return=E,E=N}return o(E);case Pt:return L=b._init,b=L(b._payload),dt(E,S,b,N)}if(Lt(b))return Z(E,S,b,N);if(jt(b)){if(L=jt(b),typeof L!="function")throw Error(f(150));return b=L.call(b),X(E,S,b,N)}if(typeof b.then=="function")return dt(E,S,Gu(b),N);if(b.$$typeof===Rt)return dt(E,S,Ru(E,b),N);Xu(E,b)}return typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint"?(b=""+b,S!==null&&S.tag===6?(n(E,S.sibling),N=i(S,b),N.return=E,E=N):(n(E,S),N=Sc(b,E.mode,N),N.return=E,E=N),o(E)):n(E,S)}return function(E,S,b,N){try{Ra=0;var L=dt(E,S,b,N);return zl=null,L}catch(Y){if(Y===_a||Y===Nu)throw Y;var $=ae(29,Y,null,E.mode);return $.lanes=N,$.return=E,$}finally{}}}var Ul=Ko(!0),Jo=Ko(!1),_e=x(null),ze=null;function on(t){var e=t.alternate;C(Nt,Nt.current&1),C(_e,t),ze===null&&(e===null||Dl.current!==null||e.memoizedState!==null)&&(ze=t)}function ko(t){if(t.tag===22){if(C(Nt,Nt.current),C(_e,t),ze===null){var e=t.alternate;e!==null&&e.memoizedState!==null&&(ze=t)}}else dn()}function dn(){C(Nt,Nt.current),C(_e,_e.current)}function we(t){j(_e),ze===t&&(ze=null),j(Nt)}var Nt=x(0);function Qu(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||wr(n)))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}function tr(t,e,n,l){e=t.memoizedState,n=n(l,e),n=n==null?e:D({},e,n),t.memoizedState=n,t.lanes===0&&(t.updateQueue.baseState=n)}var er={enqueueSetState:function(t,e,n){t=t._reactInternals;var l=re(),i=rn(l);i.payload=e,n!=null&&(i.callback=n),e=fn(t,i,l),e!==null&&(fe(e,t,l),Sa(e,t,l))},enqueueReplaceState:function(t,e,n){t=t._reactInternals;var l=re(),i=rn(l);i.tag=1,i.payload=e,n!=null&&(i.callback=n),e=fn(t,i,l),e!==null&&(fe(e,t,l),Sa(e,t,l))},enqueueForceUpdate:function(t,e){t=t._reactInternals;var n=re(),l=rn(n);l.tag=2,e!=null&&(l.callback=e),e=fn(t,l,n),e!==null&&(fe(e,t,n),Sa(e,t,n))}};function $o(t,e,n,l,i,c,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(l,c,o):e.prototype&&e.prototype.isPureReactComponent?!sa(n,l)||!sa(i,c):!0}function Fo(t,e,n,l){t=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(n,l),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(n,l),e.state!==t&&er.enqueueReplaceState(e,e.state,null)}function Jn(t,e){var n=e;if("ref"in e){n={};for(var l in e)l!=="ref"&&(n[l]=e[l])}if(t=t.defaultProps){n===e&&(n=D({},n));for(var i in t)n[i]===void 0&&(n[i]=t[i])}return n}var wu=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function Wo(t){wu(t)}function Io(t){console.error(t)}function Po(t){wu(t)}function Zu(t,e){try{var n=t.onUncaughtError;n(e.value,{componentStack:e.stack})}catch(l){setTimeout(function(){throw l})}}function td(t,e,n){try{var l=t.onCaughtError;l(n.value,{componentStack:n.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(i){setTimeout(function(){throw i})}}function nr(t,e,n){return n=rn(n),n.tag=3,n.payload={element:null},n.callback=function(){Zu(t,e)},n}function ed(t){return t=rn(t),t.tag=3,t}function nd(t,e,n,l){var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var c=l.value;t.payload=function(){return i(c)},t.callback=function(){td(e,n,l)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch=="function"&&(t.callback=function(){td(e,n,l),typeof i!="function"&&(_n===null?_n=new Set([this]):_n.add(this));var h=l.stack;this.componentDidCatch(l.value,{componentStack:h!==null?h:""})})}function Xy(t,e,n,l,i){if(n.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(e=n.alternate,e!==null&&pa(e,n,i,!0),n=_e.current,n!==null){switch(n.tag){case 13:return ze===null?Dr():n.alternate===null&&St===0&&(St=3),n.flags&=-257,n.flags|=65536,n.lanes=i,l===Uc?n.flags|=16384:(e=n.updateQueue,e===null?n.updateQueue=new Set([l]):e.add(l),Mr(t,l,i)),!1;case 22:return n.flags|=65536,l===Uc?n.flags|=16384:(e=n.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([l])},n.updateQueue=e):(n=e.retryQueue,n===null?e.retryQueue=new Set([l]):n.add(l)),Mr(t,l,i)),!1}throw Error(f(435,n.tag))}return Mr(t,l,i),Dr(),!1}if(at)return e=_e.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=i,l!==Ac&&(t=Error(f(422),{cause:l}),ma(me(t,n)))):(l!==Ac&&(e=Error(f(423),{cause:l}),ma(me(e,n))),t=t.current.alternate,t.flags|=65536,i&=-i,t.lanes|=i,l=me(l,n),i=nr(t.stateNode,l,i),Hc(t,i),St!==4&&(St=2)),!1;var c=Error(f(520),{cause:l});if(c=me(c,n),Ba===null?Ba=[c]:Ba.push(c),St!==4&&(St=2),e===null)return!0;l=me(l,n),n=e;do{switch(n.tag){case 3:return n.flags|=65536,t=i&-i,n.lanes|=t,t=nr(n.stateNode,l,t),Hc(n,t),!1;case 1:if(e=n.type,c=n.stateNode,(n.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||c!==null&&typeof c.componentDidCatch=="function"&&(_n===null||!_n.has(c))))return n.flags|=65536,i&=-i,n.lanes|=i,i=ed(i),nd(i,t,n,l),Hc(n,i),!1}n=n.return}while(n!==null);return!1}var ld=Error(f(461)),Ut=!1;function Ht(t,e,n,l){e.child=t===null?Jo(e,null,n,l):Ul(e,t.child,n,l)}function ad(t,e,n,l,i){n=n.render;var c=e.ref;if("ref"in l){var o={};for(var h in l)h!=="ref"&&(o[h]=l[h])}else o=l;return Zn(e),l=Yc(t,e,n,o,c,i),h=Gc(),t!==null&&!Ut?(Xc(t,e,i),Ze(t,e,i)):(at&&h&&bc(e),e.flags|=1,Ht(t,e,l,i),e.child)}function ud(t,e,n,l,i){if(t===null){var c=n.type;return typeof c=="function"&&!vc(c)&&c.defaultProps===void 0&&n.compare===null?(e.tag=15,e.type=c,id(t,e,c,l,i)):(t=Tu(n.type,null,l,e,e.mode,i),t.ref=e.ref,t.return=e,e.child=t)}if(c=t.child,!sr(t,i)){var o=c.memoizedProps;if(n=n.compare,n=n!==null?n:sa,n(o,l)&&t.ref===e.ref)return Ze(t,e,i)}return e.flags|=1,t=je(c,l),t.ref=e.ref,t.return=e,e.child=t}function id(t,e,n,l,i){if(t!==null){var c=t.memoizedProps;if(sa(c,l)&&t.ref===e.ref)if(Ut=!1,e.pendingProps=l=c,sr(t,i))(t.flags&131072)!==0&&(Ut=!0);else return e.lanes=t.lanes,Ze(t,e,i)}return lr(t,e,n,l,i)}function cd(t,e,n){var l=e.pendingProps,i=l.children,c=t!==null?t.memoizedState:null;if(l.mode==="hidden"){if((e.flags&128)!==0){if(l=c!==null?c.baseLanes|n:n,t!==null){for(i=e.child=t.child,c=0;i!==null;)c=c|i.lanes|i.childLanes,i=i.sibling;e.childLanes=c&~l}else e.childLanes=0,e.child=null;return rd(t,e,l,n)}if((n&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},t!==null&&Mu(e,c!==null?c.cachePool:null),c!==null?uo(e,c):qc(),ko(e);else return e.lanes=e.childLanes=536870912,rd(t,e,c!==null?c.baseLanes|n:n,n)}else c!==null?(Mu(e,c.cachePool),uo(e,c),dn(),e.memoizedState=null):(t!==null&&Mu(e,null),qc(),dn());return Ht(t,e,i,n),e.child}function rd(t,e,n,l){var i=zc();return i=i===null?null:{parent:Mt._currentValue,pool:i},e.memoizedState={baseLanes:n,cachePool:i},t!==null&&Mu(e,null),qc(),ko(e),t!==null&&pa(t,e,l,!0),null}function Vu(t,e){var n=e.ref;if(n===null)t!==null&&t.ref!==null&&(e.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(f(284));(t===null||t.ref!==n)&&(e.flags|=4194816)}}function lr(t,e,n,l,i){return Zn(e),n=Yc(t,e,n,l,void 0,i),l=Gc(),t!==null&&!Ut?(Xc(t,e,i),Ze(t,e,i)):(at&&l&&bc(e),e.flags|=1,Ht(t,e,n,i),e.child)}function fd(t,e,n,l,i,c){return Zn(e),e.updateQueue=null,n=co(e,l,n,i),io(t),l=Gc(),t!==null&&!Ut?(Xc(t,e,c),Ze(t,e,c)):(at&&l&&bc(e),e.flags|=1,Ht(t,e,n,c),e.child)}function sd(t,e,n,l,i){if(Zn(e),e.stateNode===null){var c=El,o=n.contextType;typeof o=="object"&&o!==null&&(c=Gt(o)),c=new n(l,c),e.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,c.updater=er,e.stateNode=c,c._reactInternals=e,c=e.stateNode,c.props=l,c.state=e.memoizedState,c.refs={},xc(e),o=n.contextType,c.context=typeof o=="object"&&o!==null?Gt(o):El,c.state=e.memoizedState,o=n.getDerivedStateFromProps,typeof o=="function"&&(tr(e,n,o,l),c.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(o=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),o!==c.state&&er.enqueueReplaceState(c,c.state,null),ba(e,l,c,i),Ea(),c.state=e.memoizedState),typeof c.componentDidMount=="function"&&(e.flags|=4194308),l=!0}else if(t===null){c=e.stateNode;var h=e.memoizedProps,p=Jn(n,h);c.props=p;var T=c.context,R=n.contextType;o=El,typeof R=="object"&&R!==null&&(o=Gt(R));var z=n.getDerivedStateFromProps;R=typeof z=="function"||typeof c.getSnapshotBeforeUpdate=="function",h=e.pendingProps!==h,R||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(h||T!==o)&&Fo(e,c,l,o),cn=!1;var A=e.memoizedState;c.state=A,ba(e,l,c,i),Ea(),T=e.memoizedState,h||A!==T||cn?(typeof z=="function"&&(tr(e,n,z,l),T=e.memoizedState),(p=cn||$o(e,n,p,l,A,T,o))?(R||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(e.flags|=4194308)):(typeof c.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=l,e.memoizedState=T),c.props=l,c.state=T,c.context=o,l=p):(typeof c.componentDidMount=="function"&&(e.flags|=4194308),l=!1)}else{c=e.stateNode,Cc(t,e),o=e.memoizedProps,R=Jn(n,o),c.props=R,z=e.pendingProps,A=c.context,T=n.contextType,p=El,typeof T=="object"&&T!==null&&(p=Gt(T)),h=n.getDerivedStateFromProps,(T=typeof h=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(o!==z||A!==p)&&Fo(e,c,l,p),cn=!1,A=e.memoizedState,c.state=A,ba(e,l,c,i),Ea();var O=e.memoizedState;o!==z||A!==O||cn||t!==null&&t.dependencies!==null&&Du(t.dependencies)?(typeof h=="function"&&(tr(e,n,h,l),O=e.memoizedState),(R=cn||$o(e,n,R,l,A,O,p)||t!==null&&t.dependencies!==null&&Du(t.dependencies))?(T||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(l,O,p),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(l,O,p)),typeof c.componentDidUpdate=="function"&&(e.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof c.componentDidUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=1024),e.memoizedProps=l,e.memoizedState=O),c.props=l,c.state=O,c.context=p,l=R):(typeof c.componentDidUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=1024),l=!1)}return c=l,Vu(t,e),l=(e.flags&128)!==0,c||l?(c=e.stateNode,n=l&&typeof n.getDerivedStateFromError!="function"?null:c.render(),e.flags|=1,t!==null&&l?(e.child=Ul(e,t.child,null,i),e.child=Ul(e,null,n,i)):Ht(t,e,n,i),e.memoizedState=c.state,t=e.child):t=Ze(t,e,i),t}function od(t,e,n,l){return ha(),e.flags|=256,Ht(t,e,n,l),e.child}var ar={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ur(t){return{baseLanes:t,cachePool:Ws()}}function ir(t,e,n){return t=t!==null?t.childLanes&~n:0,e&&(t|=ve),t}function dd(t,e,n){var l=e.pendingProps,i=!1,c=(e.flags&128)!==0,o;if((o=c)||(o=t!==null&&t.memoizedState===null?!1:(Nt.current&2)!==0),o&&(i=!0,e.flags&=-129),o=(e.flags&32)!==0,e.flags&=-33,t===null){if(at){if(i?on(e):dn(),at){var h=vt,p;if(p=h){t:{for(p=h,h=Ne;p.nodeType!==8;){if(!h){h=null;break t}if(p=Oe(p.nextSibling),p===null){h=null;break t}}h=p}h!==null?(e.memoizedState={dehydrated:h,treeContext:Yn!==null?{id:Le,overflow:Ye}:null,retryLane:536870912,hydrationErrors:null},p=ae(18,null,null,0),p.stateNode=h,p.return=e,e.child=p,Qt=e,vt=null,p=!0):p=!1}p||Qn(e)}if(h=e.memoizedState,h!==null&&(h=h.dehydrated,h!==null))return wr(h)?e.lanes=32:e.lanes=536870912,null;we(e)}return h=l.children,l=l.fallback,i?(dn(),i=e.mode,h=Ku({mode:"hidden",children:h},i),l=Ln(l,i,n,null),h.return=e,l.return=e,h.sibling=l,e.child=h,i=e.child,i.memoizedState=ur(n),i.childLanes=ir(t,o,n),e.memoizedState=ar,l):(on(e),cr(e,h))}if(p=t.memoizedState,p!==null&&(h=p.dehydrated,h!==null)){if(c)e.flags&256?(on(e),e.flags&=-257,e=rr(t,e,n)):e.memoizedState!==null?(dn(),e.child=t.child,e.flags|=128,e=null):(dn(),i=l.fallback,h=e.mode,l=Ku({mode:"visible",children:l.children},h),i=Ln(i,h,n,null),i.flags|=2,l.return=e,i.return=e,l.sibling=i,e.child=l,Ul(e,t.child,null,n),l=e.child,l.memoizedState=ur(n),l.childLanes=ir(t,o,n),e.memoizedState=ar,e=i);else if(on(e),wr(h)){if(o=h.nextSibling&&h.nextSibling.dataset,o)var T=o.dgst;o=T,l=Error(f(419)),l.stack="",l.digest=o,ma({value:l,source:null,stack:null}),e=rr(t,e,n)}else if(Ut||pa(t,e,n,!1),o=(n&t.childLanes)!==0,Ut||o){if(o=pt,o!==null&&(l=n&-n,l=(l&42)!==0?1:Zi(l),l=(l&(o.suspendedLanes|n))!==0?0:l,l!==0&&l!==p.retryLane))throw p.retryLane=l,Sl(t,l),fe(o,t,l),ld;h.data==="$?"||Dr(),e=rr(t,e,n)}else h.data==="$?"?(e.flags|=192,e.child=t.child,e=null):(t=p.treeContext,vt=Oe(h.nextSibling),Qt=e,at=!0,Xn=null,Ne=!1,t!==null&&(ye[ge++]=Le,ye[ge++]=Ye,ye[ge++]=Yn,Le=t.id,Ye=t.overflow,Yn=e),e=cr(e,l.children),e.flags|=4096);return e}return i?(dn(),i=l.fallback,h=e.mode,p=t.child,T=p.sibling,l=je(p,{mode:"hidden",children:l.children}),l.subtreeFlags=p.subtreeFlags&65011712,T!==null?i=je(T,i):(i=Ln(i,h,n,null),i.flags|=2),i.return=e,l.return=e,l.sibling=i,e.child=l,l=i,i=e.child,h=t.child.memoizedState,h===null?h=ur(n):(p=h.cachePool,p!==null?(T=Mt._currentValue,p=p.parent!==T?{parent:T,pool:T}:p):p=Ws(),h={baseLanes:h.baseLanes|n,cachePool:p}),i.memoizedState=h,i.childLanes=ir(t,o,n),e.memoizedState=ar,l):(on(e),n=t.child,t=n.sibling,n=je(n,{mode:"visible",children:l.children}),n.return=e,n.sibling=null,t!==null&&(o=e.deletions,o===null?(e.deletions=[t],e.flags|=16):o.push(t)),e.child=n,e.memoizedState=null,n)}function cr(t,e){return e=Ku({mode:"visible",children:e},t.mode),e.return=t,t.child=e}function Ku(t,e){return t=ae(22,t,null,e),t.lanes=0,t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},t}function rr(t,e,n){return Ul(e,t.child,null,n),t=cr(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function hd(t,e,n){t.lanes|=e;var l=t.alternate;l!==null&&(l.lanes|=e),Dc(t.return,e,n)}function fr(t,e,n,l,i){var c=t.memoizedState;c===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:l,tail:n,tailMode:i}:(c.isBackwards=e,c.rendering=null,c.renderingStartTime=0,c.last=l,c.tail=n,c.tailMode=i)}function md(t,e,n){var l=e.pendingProps,i=l.revealOrder,c=l.tail;if(Ht(t,e,l.children,n),l=Nt.current,(l&2)!==0)l=l&1|2,e.flags|=128;else{if(t!==null&&(t.flags&128)!==0)t:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&hd(t,n,e);else if(t.tag===19)hd(t,n,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break t;for(;t.sibling===null;){if(t.return===null||t.return===e)break t;t=t.return}t.sibling.return=t.return,t=t.sibling}l&=1}switch(C(Nt,l),i){case"forwards":for(n=e.child,i=null;n!==null;)t=n.alternate,t!==null&&Qu(t)===null&&(i=n),n=n.sibling;n=i,n===null?(i=e.child,e.child=null):(i=n.sibling,n.sibling=null),fr(e,!1,i,n,c);break;case"backwards":for(n=null,i=e.child,e.child=null;i!==null;){if(t=i.alternate,t!==null&&Qu(t)===null){e.child=i;break}t=i.sibling,i.sibling=n,n=i,i=t}fr(e,!0,n,null,c);break;case"together":fr(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function Ze(t,e,n){if(t!==null&&(e.dependencies=t.dependencies),gn|=e.lanes,(n&e.childLanes)===0)if(t!==null){if(pa(t,e,n,!1),(n&e.childLanes)===0)return null}else return null;if(t!==null&&e.child!==t.child)throw Error(f(153));if(e.child!==null){for(t=e.child,n=je(t,t.pendingProps),e.child=n,n.return=e;t.sibling!==null;)t=t.sibling,n=n.sibling=je(t,t.pendingProps),n.return=e;n.sibling=null}return e.child}function sr(t,e){return(t.lanes&e)!==0?!0:(t=t.dependencies,!!(t!==null&&Du(t)))}function Qy(t,e,n){switch(e.tag){case 3:yt(e,e.stateNode.containerInfo),un(e,Mt,t.memoizedState.cache),ha();break;case 27:case 5:Yi(e);break;case 4:yt(e,e.stateNode.containerInfo);break;case 10:un(e,e.type,e.memoizedProps.value);break;case 13:var l=e.memoizedState;if(l!==null)return l.dehydrated!==null?(on(e),e.flags|=128,null):(n&e.child.childLanes)!==0?dd(t,e,n):(on(e),t=Ze(t,e,n),t!==null?t.sibling:null);on(e);break;case 19:var i=(t.flags&128)!==0;if(l=(n&e.childLanes)!==0,l||(pa(t,e,n,!1),l=(n&e.childLanes)!==0),i){if(l)return md(t,e,n);e.flags|=128}if(i=e.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),C(Nt,Nt.current),l)break;return null;case 22:case 23:return e.lanes=0,cd(t,e,n);case 24:un(e,Mt,t.memoizedState.cache)}return Ze(t,e,n)}function pd(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps)Ut=!0;else{if(!sr(t,n)&&(e.flags&128)===0)return Ut=!1,Qy(t,e,n);Ut=(t.flags&131072)!==0}else Ut=!1,at&&(e.flags&1048576)!==0&&Zs(e,Ou,e.index);switch(e.lanes=0,e.tag){case 16:t:{t=e.pendingProps;var l=e.elementType,i=l._init;if(l=i(l._payload),e.type=l,typeof l=="function")vc(l)?(t=Jn(l,t),e.tag=1,e=sd(null,e,l,t,n)):(e.tag=0,e=lr(null,e,l,t,n));else{if(l!=null){if(i=l.$$typeof,i===be){e.tag=11,e=ad(null,e,l,t,n);break t}else if(i===It){e.tag=14,e=ud(null,e,l,t,n);break t}}throw e=xn(l)||l,Error(f(306,e,""))}}return e;case 0:return lr(t,e,e.type,e.pendingProps,n);case 1:return l=e.type,i=Jn(l,e.pendingProps),sd(t,e,l,i,n);case 3:t:{if(yt(e,e.stateNode.containerInfo),t===null)throw Error(f(387));l=e.pendingProps;var c=e.memoizedState;i=c.element,Cc(t,e),ba(e,l,null,n);var o=e.memoizedState;if(l=o.cache,un(e,Mt,l),l!==c.cache&&Rc(e,[Mt],n,!0),Ea(),l=o.element,c.isDehydrated)if(c={element:l,isDehydrated:!1,cache:o.cache},e.updateQueue.baseState=c,e.memoizedState=c,e.flags&256){e=od(t,e,l,n);break t}else if(l!==i){i=me(Error(f(424)),e),ma(i),e=od(t,e,l,n);break t}else{switch(t=e.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(vt=Oe(t.firstChild),Qt=e,at=!0,Xn=null,Ne=!0,n=Jo(e,null,l,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(ha(),l===i){e=Ze(t,e,n);break t}Ht(t,e,l,n)}e=e.child}return e;case 26:return Vu(t,e),t===null?(n=vh(e.type,null,e.pendingProps,null))?e.memoizedState=n:at||(n=e.type,t=e.pendingProps,l=ii(K.current).createElement(n),l[Yt]=e,l[Zt]=t,qt(l,n,t),zt(l),e.stateNode=l):e.memoizedState=vh(e.type,t.memoizedProps,e.pendingProps,t.memoizedState),null;case 27:return Yi(e),t===null&&at&&(l=e.stateNode=yh(e.type,e.pendingProps,K.current),Qt=e,Ne=!0,i=vt,En(e.type)?(Zr=i,vt=Oe(l.firstChild)):vt=i),Ht(t,e,e.pendingProps.children,n),Vu(t,e),t===null&&(e.flags|=4194304),e.child;case 5:return t===null&&at&&((i=l=vt)&&(l=yg(l,e.type,e.pendingProps,Ne),l!==null?(e.stateNode=l,Qt=e,vt=Oe(l.firstChild),Ne=!1,i=!0):i=!1),i||Qn(e)),Yi(e),i=e.type,c=e.pendingProps,o=t!==null?t.memoizedProps:null,l=c.children,Gr(i,c)?l=null:o!==null&&Gr(i,o)&&(e.flags|=32),e.memoizedState!==null&&(i=Yc(t,e,Hy,null,null,n),Za._currentValue=i),Vu(t,e),Ht(t,e,l,n),e.child;case 6:return t===null&&at&&((t=n=vt)&&(n=gg(n,e.pendingProps,Ne),n!==null?(e.stateNode=n,Qt=e,vt=null,t=!0):t=!1),t||Qn(e)),null;case 13:return dd(t,e,n);case 4:return yt(e,e.stateNode.containerInfo),l=e.pendingProps,t===null?e.child=Ul(e,null,l,n):Ht(t,e,l,n),e.child;case 11:return ad(t,e,e.type,e.pendingProps,n);case 7:return Ht(t,e,e.pendingProps,n),e.child;case 8:return Ht(t,e,e.pendingProps.children,n),e.child;case 12:return Ht(t,e,e.pendingProps.children,n),e.child;case 10:return l=e.pendingProps,un(e,e.type,l.value),Ht(t,e,l.children,n),e.child;case 9:return i=e.type._context,l=e.pendingProps.children,Zn(e),i=Gt(i),l=l(i),e.flags|=1,Ht(t,e,l,n),e.child;case 14:return ud(t,e,e.type,e.pendingProps,n);case 15:return id(t,e,e.type,e.pendingProps,n);case 19:return md(t,e,n);case 31:return l=e.pendingProps,n=e.mode,l={mode:l.mode,children:l.children},t===null?(n=Ku(l,n),n.ref=e.ref,e.child=n,n.return=e,e=n):(n=je(t.child,l),n.ref=e.ref,e.child=n,n.return=e,e=n),e;case 22:return cd(t,e,n);case 24:return Zn(e),l=Gt(Mt),t===null?(i=zc(),i===null&&(i=pt,c=Mc(),i.pooledCache=c,c.refCount++,c!==null&&(i.pooledCacheLanes|=n),i=c),e.memoizedState={parent:l,cache:i},xc(e),un(e,Mt,i)):((t.lanes&n)!==0&&(Cc(t,e),ba(e,null,null,n),Ea()),i=t.memoizedState,c=e.memoizedState,i.parent!==l?(i={parent:l,cache:l},e.memoizedState=i,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=i),un(e,Mt,l)):(l=c.cache,un(e,Mt,l),l!==i.cache&&Rc(e,[Mt],n,!0))),Ht(t,e,e.pendingProps.children,n),e.child;case 29:throw e.pendingProps}throw Error(f(156,e.tag))}function Ve(t){t.flags|=4}function yd(t,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!Ah(e)){if(e=_e.current,e!==null&&((P&4194048)===P?ze!==null:(P&62914560)!==P&&(P&536870912)===0||e!==ze))throw va=Uc,Is;t.flags|=8192}}function Ju(t,e){e!==null&&(t.flags|=4),t.flags&16384&&(e=t.tag!==22?Jf():536870912,t.lanes|=e,Bl|=e)}function Na(t,e){if(!at)switch(t.tailMode){case"hidden":e=t.tail;for(var n=null;e!==null;)e.alternate!==null&&(n=e),e=e.sibling;n===null?t.tail=null:n.sibling=null;break;case"collapsed":n=t.tail;for(var l=null;n!==null;)n.alternate!==null&&(l=n),n=n.sibling;l===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:l.sibling=null}}function _t(t){var e=t.alternate!==null&&t.alternate.child===t.child,n=0,l=0;if(e)for(var i=t.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags&65011712,l|=i.flags&65011712,i.return=t,i=i.sibling;else for(i=t.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags,l|=i.flags,i.return=t,i=i.sibling;return t.subtreeFlags|=l,t.childLanes=n,e}function wy(t,e,n){var l=e.pendingProps;switch(Tc(e),e.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return _t(e),null;case 1:return _t(e),null;case 3:return n=e.stateNode,l=null,t!==null&&(l=t.memoizedState.cache),e.memoizedState.cache!==l&&(e.flags|=2048),Xe(Mt),en(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(t===null||t.child===null)&&(da(e)?Ve(e):t===null||t.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,Js())),_t(e),null;case 26:return n=e.memoizedState,t===null?(Ve(e),n!==null?(_t(e),yd(e,n)):(_t(e),e.flags&=-16777217)):n?n!==t.memoizedState?(Ve(e),_t(e),yd(e,n)):(_t(e),e.flags&=-16777217):(t.memoizedProps!==l&&Ve(e),_t(e),e.flags&=-16777217),null;case 27:au(e),n=K.current;var i=e.type;if(t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Ve(e);else{if(!l){if(e.stateNode===null)throw Error(f(166));return _t(e),null}t=G.current,da(e)?Vs(e):(t=yh(i,l,n),e.stateNode=t,Ve(e))}return _t(e),null;case 5:if(au(e),n=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Ve(e);else{if(!l){if(e.stateNode===null)throw Error(f(166));return _t(e),null}if(t=G.current,da(e))Vs(e);else{switch(i=ii(K.current),t){case 1:t=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:t=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":t=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":t=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":t=i.createElement("div"),t.innerHTML=" + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cab00fb..330e672 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,79 +9,76 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@sentry/react": "^7.59.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@sentry/react": "^9.18.0", + "@vitejs/plugin-react": "^4.4.1", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "vite": "^6.3.5" }, "devDependencies": { - "@babel/core": "^7.22.5", - "@babel/preset-env": "^7.22.5", - "@babel/preset-react": "^7.22.5", - "@sentry/webpack-plugin": "^2.10.3", - "babel-loader": "^9.1.2", - "css-loader": "^6.8.1", + "@sentry/vite-plugin": "^3.4.0", "html-webpack-plugin": "^5.5.3", "style-loader": "^3.3.3", - "webpack": "^5.87.0", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" + "vite-plugin-html": "^3.2.2" } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", - "dev": true, + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -91,119 +88,60 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", - "dev": true, + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", - "dev": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", - "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", - "dev": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -212,5735 +150,3224 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz", - "integrity": "sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", - "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", - "dev": true, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dev": true, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", - "dev": true, + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", - "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", - "dev": true, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", - "dev": true, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", - "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", - "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", - "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5" - }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "node": ">=18" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=18" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz", - "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==", - "dev": true, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "devOptional": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", - "dev": true, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", - "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", - "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "node": ">= 8.0.0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz", - "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==", + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "globals": "^11.1.0" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=8.6" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", - "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", - "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", - "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", - "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", - "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", - "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", - "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", - "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", - "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", - "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", - "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", - "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", - "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz", - "integrity": "sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", - "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", - "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", - "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.5", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.5", - "@babel/plugin-transform-classes": "^7.22.5", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.5", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.5", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.5", - "@babel/plugin-transform-for-of": "^7.22.5", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.5", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.5", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", - "@babel/plugin-transform-numeric-separator": "^7.22.5", - "@babel/plugin-transform-object-rest-spread": "^7.22.5", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.5", - "@babel/plugin-transform-parameters": "^7.22.5", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.5", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.5", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.3", - "babel-plugin-polyfill-corejs3": "^0.8.1", - "babel-plugin-polyfill-regenerator": "^0.5.0", - "core-js-compat": "^3.30.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.5.tgz", - "integrity": "sha512-M+Is3WikOpEJHgR385HbuCITPTaPRaNkibTEa9oiofmJvIsrceb4yp9RL9Kb+TE8LznmeyZqpP+Lopwcx59xPQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.5", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, - "node_modules/@babel/runtime": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz", - "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", - "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", - "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@sentry-internal/tracing": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.59.3.tgz", - "integrity": "sha512-/RkBj/0zQKGsW/UYg6hufrLHHguncLfu4610FCPWpVp0K5Yu5ou8/Aw8D76G3ZxD2TiuSNGwX0o7TYN371ZqTQ==", - "dependencies": { - "@sentry/core": "7.59.3", - "@sentry/types": "7.59.3", - "@sentry/utils": "7.59.3", - "tslib": "^2.4.1 || ^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/browser": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.59.3.tgz", - "integrity": "sha512-rTsePz1zEhiouX24TqjzYdY8PsBNU2EGUSHK9jCKml5i/eKTqQabnwdxHgIC4/wcs1nGOabRg/Iel6l4y4mCjA==", - "dependencies": { - "@sentry-internal/tracing": "7.59.3", - "@sentry/core": "7.59.3", - "@sentry/replay": "7.59.3", - "@sentry/types": "7.59.3", - "@sentry/utils": "7.59.3", - "tslib": "^2.4.1 || ^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/bundler-plugin-core": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-2.10.3.tgz", - "integrity": "sha512-glokZ9O6m3l5OlVk/2C9EPI3Fy7rAxwWQZixItLmrVJnJAf0lDX7bTNJUvZKKDrMRoCypL6WpM/QeSe1i3i8ig==", - "dev": true, - "dependencies": { - "@sentry/cli": "^2.22.3", - "@sentry/node": "^7.60.0", - "@sentry/utils": "^7.60.0", - "dotenv": "^16.3.1", - "find-up": "5.0.0", - "glob": "9.3.2", - "magic-string": "0.27.0", - "unplugin": "1.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/types": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.99.0.tgz", - "integrity": "sha512-94qwOw4w40sAs5mCmzcGyj8ZUu/KhnWnuMZARRq96k+SjRW/tHFAOlIdnFSrt3BLPvSOK7R3bVAskZQ0N4FTmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/@sentry/utils": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.99.0.tgz", - "integrity": "sha512-cYZy5WNTkWs5GgggGnjfGqC44CWir0pAv4GVVSx0fsup4D4pMKBJPrtub15f9uC+QkUf3vVkqwpBqeFxtmJQTQ==", - "dev": true, - "dependencies": { - "@sentry/types": "7.99.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/glob": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.2.tgz", - "integrity": "sha512-BTv/JhKXFEHsErMte/AnfiSv8yYOLLiyH2lTg8vn02O21zWFgHPTfxtgn1QRe7NRgggUhC8hacR2Re94svHqeA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^7.4.1", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/minimatch": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", - "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sentry/bundler-plugin-core/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sentry/cli": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.27.0.tgz", - "integrity": "sha512-pc0opd71W8lGhYvmB1keQtJkarxzCS9f9ErKYv6TfXOOX6drvwkyA6vD/6xEnpzyvqGAuGRU4T4sEeLD3irwUQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.7", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@sentry/cli-darwin": "2.27.0", - "@sentry/cli-linux-arm": "2.27.0", - "@sentry/cli-linux-arm64": "2.27.0", - "@sentry/cli-linux-i686": "2.27.0", - "@sentry/cli-linux-x64": "2.27.0", - "@sentry/cli-win32-i686": "2.27.0", - "@sentry/cli-win32-x64": "2.27.0" - } - }, - "node_modules/@sentry/cli-darwin": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.27.0.tgz", - "integrity": "sha512-/DOZlN5rK19g7YP2OaVNauQhUrRfJ88RDr6qURFiqdxYHDc3isPFGHZJmeZBTwOnDDepyZb4XLaOyfwvAOxHig==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.27.0.tgz", - "integrity": "sha512-JmMQ9zgFhkZUEN5WIYuJisu4Jif/ThRHDjbsbXBRbUkkgRn88hgUfg299djMvlZZxjpl3K9AEua+1TIUeQd0Sg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-arm64": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.27.0.tgz", - "integrity": "sha512-f+zuB9XGfB8pNamNgSDhqsavuLuzi6saZxbr3uQf30bA5AESI5hspOd1zPcidOORCVZxiPzQe3+T7avBI1XLuw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-i686": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.27.0.tgz", - "integrity": "sha512-/4eyz7jnYp20mZqNtpvCEBkxFW0nEjEZRo2BiASQ5/7K8CmoJRe1vhpDA0WOfzi1zTFIfpdE1/RZm2CjHS6DHQ==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-linux-x64": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.27.0.tgz", - "integrity": "sha512-ptu7wXecnYssihzHlxEOaqbFHWmNEfbepBKGXTdWK2kC+D51+7yHsR9xRdThwVID1bisFgjAveKmBQjmKuXjHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux", - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-win32-i686": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.27.0.tgz", - "integrity": "sha512-Db4/xmdE5qV4Aq7Yc8vRw22Y46JJdGMdsMsl5jIf0GVSQPgO23O/2uTiDGpPOdeq91K9EtvpH1zQfDLIfLMaXw==", - "cpu": [ - "x86", - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/cli-win32-x64": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.27.0.tgz", - "integrity": "sha512-q7y/BH4iGfs0TD5PXh2Q8oqnTbOIufoT1NWJcKqvZcOiqCLK3PNUiq7xUeX1PMTrFYAh3Bm6EekOnMavqvbGmg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/core": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.59.3.tgz", - "integrity": "sha512-cGBOwT9gziIn50fnlBH1WGQlGcHi7wrbvOCyrex4MxKnn1LSBYWBhwU0ymj8DI/9MyPrGDNGkrgpV0WJWBSClg==", - "dependencies": { - "@sentry/types": "7.59.3", - "@sentry/utils": "7.59.3", - "tslib": "^2.4.1 || ^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.99.0.tgz", - "integrity": "sha512-34wYtLddnPcQ8qvKq62AfxowaMFw+GMUZGv7fIs9FxeBqqqn6Ckl0gFCTADudIIBQ3rSbmN7sHJIXdyiQv+pcw==", - "dev": true, - "dependencies": { - "@sentry-internal/tracing": "7.99.0", - "@sentry/core": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node/node_modules/@sentry-internal/tracing": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.99.0.tgz", - "integrity": "sha512-z3JQhHjoM1KdM20qrHwRClKJrNLr2CcKtCluq7xevLtXHJWNAQQbafnWD+Aoj85EWXBzKt9yJMv2ltcXJ+at+w==", - "dev": true, - "dependencies": { - "@sentry/core": "7.99.0", - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/core": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.99.0.tgz", - "integrity": "sha512-vOAtzcAXEUtS/oW7wi3wMkZ3hsb5Ch96gKyrrj/mXdOp2zrcwdNV6N9/pawq2E9P/7Pw8AXw4CeDZztZrjQLuA==", - "dev": true, - "dependencies": { - "@sentry/types": "7.99.0", - "@sentry/utils": "7.99.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/types": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.99.0.tgz", - "integrity": "sha512-94qwOw4w40sAs5mCmzcGyj8ZUu/KhnWnuMZARRq96k+SjRW/tHFAOlIdnFSrt3BLPvSOK7R3bVAskZQ0N4FTmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node/node_modules/@sentry/utils": { - "version": "7.99.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.99.0.tgz", - "integrity": "sha512-cYZy5WNTkWs5GgggGnjfGqC44CWir0pAv4GVVSx0fsup4D4pMKBJPrtub15f9uC+QkUf3vVkqwpBqeFxtmJQTQ==", - "dev": true, - "dependencies": { - "@sentry/types": "7.99.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/react": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.59.3.tgz", - "integrity": "sha512-2TmJ/su8NBQad4PpyJoJ8Er6bzc1jgzgwKSYpI5xHNT6FOFxI4cGIbfrYNqXBjPTvFHwC8WFyN+XZ0K42GFgqQ==", - "dependencies": { - "@sentry/browser": "7.59.3", - "@sentry/types": "7.59.3", - "@sentry/utils": "7.59.3", - "hoist-non-react-statics": "^3.3.2", - "tslib": "^2.4.1 || ^1.9.3" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": "15.x || 16.x || 17.x || 18.x" - } - }, - "node_modules/@sentry/replay": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.59.3.tgz", - "integrity": "sha512-o0Z9XD46ua4kex8P2zcahNLARm+joLU6e8bTwjdmfsLS/A2yH1RhJ/VlcAEpPR2IzSYLXz3ApJ/XiqLPTNSu1w==", - "dependencies": { - "@sentry/core": "7.59.3", - "@sentry/types": "7.59.3", - "@sentry/utils": "7.59.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@sentry/types": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.59.3.tgz", - "integrity": "sha512-HQ/Pd3YHyIa4HM0bGfOsfI4ZF+sLVs6II9VtlS4hsVporm4ETl3Obld5HywO3aVYvWOk5j/bpAW9JYsxXjRG5A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.59.3", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.59.3.tgz", - "integrity": "sha512-Q57xauMKuzd6S+POA1fmulfjzTsb/z118TNAfZZNkHqVB48hHBqgzdhbEBmN4jPCSKV2Cx7VJUoDZxJfzQyLUQ==", - "dependencies": { - "@sentry/types": "7.59.3", - "tslib": "^2.4.1 || ^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/webpack-plugin": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-2.10.3.tgz", - "integrity": "sha512-SU9ggbFYf0yD+p5eiVQtQPi8gHRUZtmpCQOg4wvJrjc2tMeY3I6IFcpX0LfvZXfF2yAx97yiZF449hpQBtTL7A==", - "dev": true, - "dependencies": { - "@sentry/bundler-plugin-core": "2.10.3", - "unplugin": "1.0.1", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "webpack": ">=4.40.0" - } - }, - "node_modules/@sentry/webpack-plugin/node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.40.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.40.2.tgz", - "integrity": "sha512-PRVjQ4Eh9z9pmmtaq8nTjZjQwKFk7YIHIud3lRoKRBgUQjgjRmoGxxGEPXQkF+lH7QkHJRNr5F4aBgYCW0lqpQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.11", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.11.tgz", - "integrity": "sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.3.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.1.tgz", - "integrity": "sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dev": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", - "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/babel-loader": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", - "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-loader/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/babel-loader/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/babel-loader/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz", - "integrity": "sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.4.0", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz", - "integrity": "sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.0", - "core-js-compat": "^3.30.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz", - "integrity": "sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "cpu": [ + "arm" ], - "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001503", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001503.tgz", - "integrity": "sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "license": "MIT", + "optional": true, + "os": [ + "android" ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "cpu": [ + "arm64" ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } + "license": "MIT", + "optional": true, + "os": [ + "android" + ] }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "dev": true, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sentry-internal/browser-utils": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-9.18.0.tgz", + "integrity": "sha512-TwSlmgYpHhe55JpOcVApkM0XcXZh1/cYuEPKPFgeaaPD8BrQrLJJvwKxnonSWXOhdnkJxi4GgK7j7mw57PS4aA==", + "license": "MIT", "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "@sentry/core": "9.18.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" + "node": ">=18" } }, - "node_modules/css-loader/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/@sentry-internal/feedback": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-9.18.0.tgz", + "integrity": "sha512-QlrB8oQK+5bfhbgK6yHF6rLwLNJ9XuGblTc51yVkm4d4jn4W/HDyaNqMfQF+JXdTiFatl8oz2xdKR8kGK8kXyg==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "@sentry/core": "9.18.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", - "dev": true, + "node_modules/@sentry-internal/replay": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-9.18.0.tgz", + "integrity": "sha512-2A32FFwrlZtdpBruvpcLEfucu6BpyqOk3F4Bo5smM/5q7u0pa7q5d9FSY5l3nwKEAFAoLGv3hcCb+8wxMm50xA==", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@sentry-internal/browser-utils": "9.18.0", + "@sentry/core": "9.18.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/css-loader/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, + "node_modules/@sentry-internal/replay-canvas": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-9.18.0.tgz", + "integrity": "sha512-3DEyQLmHcYgcwJ8n8eMhI6bhhawPuMc2xTT+Az8gXMqCO/X9ZACpipAmhXFjYP9Ptl+w0Vh3nllJw+gXc/DOsg==", + "license": "MIT", "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" + "@sentry-internal/replay": "9.18.0", + "@sentry/core": "9.18.0" }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node": ">=18" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "node_modules/@sentry/babel-plugin-component-annotate": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-3.4.0.tgz", + "integrity": "sha512-tSzfc3aE7m0PM0Aj7HBDet5llH9AB9oc+tBQ8AvOqUSnWodLrNCuWeQszJ7mIBovD3figgCU3h0cvI6U5cDtsg==", "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, + "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 14" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, + "node_modules/@sentry/browser": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-9.18.0.tgz", + "integrity": "sha512-0SWfp4J2+mH4lZOcHfyIwt9VoGD7yCGQE1cm0BPcLwKnrVQeXHtUXNYNy8HTHSjTGyoFDhEAYelE/tdA3OLcWQ==", + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "@sentry-internal/browser-utils": "9.18.0", + "@sentry-internal/feedback": "9.18.0", + "@sentry-internal/replay": "9.18.0", + "@sentry-internal/replay-canvas": "9.18.0", + "@sentry/core": "9.18.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" + "node": ">=18" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.0.tgz", - "integrity": "sha512-rza3UH1LwdHh9qyPXp8lkwpjSNk/AMD3dPytUoRoqnypDUhY0xvbdmVhWOfxO68frEfV9BU8V12Ez7ZsHGZpCQ==", + "node_modules/@sentry/bundler-plugin-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-3.4.0.tgz", + "integrity": "sha512-X1Q41AsQ6xcT6hB4wYmBDBukndKM/inT4IsR7pdKLi7ICpX2Qq6lisamBAEPCgEvnLpazSFguaiC0uiwMKAdqw==", "dev": true, + "license": "MIT", "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" + "@babel/core": "^7.18.5", + "@sentry/babel-plugin-component-annotate": "3.4.0", + "@sentry/cli": "2.42.2", + "dotenv": "^16.3.1", + "find-up": "^5.0.0", + "glob": "^9.3.2", + "magic-string": "0.30.8", + "unplugin": "1.0.1" }, "engines": { - "node": ">=6" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" + "node": ">= 14" } }, - "node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "node_modules/@sentry/cli": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.42.2.tgz", + "integrity": "sha512-spb7S/RUumCGyiSTg8DlrCX4bivCNmU/A1hcfkwuciTFGu8l5CDc2I6jJWWZw8/0enDGxuj5XujgXvU5tr4bxg==", "dev": true, + "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.7", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "which": "^2.0.2" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" + "bin": { + "sentry-cli": "bin/sentry-cli" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "node": ">= 10" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "optionalDependencies": { + "@sentry/cli-darwin": "2.42.2", + "@sentry/cli-linux-arm": "2.42.2", + "@sentry/cli-linux-arm64": "2.42.2", + "@sentry/cli-linux-i686": "2.42.2", + "@sentry/cli-linux-x64": "2.42.2", + "@sentry/cli-win32-i686": "2.42.2", + "@sentry/cli-win32-x64": "2.42.2" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "node_modules/@sentry/cli-darwin": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.42.2.tgz", + "integrity": "sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==", "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" } }, - "node_modules/dotenv": { - "version": "16.4.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.1.tgz", - "integrity": "sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==", + "node_modules/@sentry/cli-linux-arm": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.42.2.tgz", + "integrity": "sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==", + "cpu": [ + "arm" + ], "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "node": ">=10" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.432", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.432.tgz", - "integrity": "sha512-yz3U/khQgAFT2HURJA3/F4fKIyO2r5eK09BQzBZFd6BvBSSaRuzKc2ZNBHtJcO75/EKiRYbVYJZ2RB0P4BuD2g==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/@sentry/cli-linux-arm64": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.42.2.tgz", + "integrity": "sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "node_modules/@sentry/cli-linux-i686": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.42.2.tgz", + "integrity": "sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==", + "cpu": [ + "x86", + "ia32" + ], "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], "engines": { - "node": ">=10.13.0" + "node": ">=10" } }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "node_modules/@sentry/cli-linux-x64": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.42.2.tgz", + "integrity": "sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==", + "cpu": [ + "x64" + ], "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "linux", + "freebsd" + ], + "engines": { + "node": ">=10" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "node_modules/@sentry/cli-win32-i686": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.42.2.tgz", + "integrity": "sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==", + "cpu": [ + "x86", + "ia32" + ], "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "node_modules/@sentry/cli-win32-x64": { + "version": "2.42.2", + "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.42.2.tgz", + "integrity": "sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==", + "cpu": [ + "x64" + ], "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=6" + "node": ">=10" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "node_modules/@sentry/core": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-9.18.0.tgz", + "integrity": "sha512-kRVH8BqMiaU2FTHYa68zNlAloS43jl4XtIEHkLKVH/7gUtwRmM4Gqj8P7RTrZdO1Lo7ksYnGj+AG05Z09CRbOw==", + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=18" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, + "node_modules/@sentry/react": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-9.18.0.tgz", + "integrity": "sha512-1cCLYZrZ2gu6H8eE83DC47kLf+pzD1Rim3dDoOEvwt1F5cD3K/DBeIhoHZaXqBeQxuVyHXOOLXSAC/CIuas5Aw==", + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "@sentry/browser": "9.18.0", + "@sentry/core": "9.18.0", + "hoist-non-react-statics": "^3.3.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.14.0 || 17.x || 18.x || 19.x" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/@sentry/vite-plugin": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-3.4.0.tgz", + "integrity": "sha512-pUFBGrKsHuc8K6A7B1wU2nx65n9aIzvTlcHX9yZ1qvjEO0cZFih0JCwu1Fcav/yrtT9RMN44L/ugu/kMBHQhjQ==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "@sentry/bundler-plugin-core": "3.4.0", + "unplugin": "1.0.1" }, "engines": { - "node": ">=4.0" + "node": ">= 14" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, - "engines": { - "node": ">= 0.6" + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true, - "engines": { - "node": ">=0.8.x" - } + "license": "MIT" }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/node": { + "version": "22.15.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "devOptional": true, + "license": "MIT", + "peer": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "undici-types": "~6.21.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.10", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" }, "engines": { - "node": ">=10" + "node": "^14.18.0 || >=16.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "license": "MIT", + "peer": true }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } + "license": "MIT", + "peer": true }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "@xtuc/ieee754": "^1.2.0" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@xtuc/long": "4.2.2" } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "license": "MIT", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, - "engines": { - "node": ">= 0.6" + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, - "engines": { - "node": ">= 0.6" + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, - "node_modules/fs-monkey": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.4.tgz", - "integrity": "sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "license": "MIT", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true, + "license": "Apache-2.0", + "peer": true + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=6.9.0" + "node": ">=0.4.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "debug": "4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "ajv": "^8.0.0" }, - "engines": { - "node": "*" + "peerDependencies": { + "ajv": "^8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "ajv": { + "optional": true + } } }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "is-glob": "^4.0.1" + "fast-deep-equal": "^3.1.3" }, - "engines": { - "node": ">= 6" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "color-convert": "^2.0.1" }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 8" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8.6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } + "license": "MIT" }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "license": "MIT" }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/html-entities": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.6.tgz", - "integrity": "sha512-9o0+dcpIw2/HxkNuYKxSJUF/MMRZQECK4GnF+oQOmJ83yCVHTWgCH5aOXxK5bozNRmM8wtgryjHD3uloPBDEGw==", + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] + "license": "ISC" }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" + "node": ">=8" } }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, { "type": "github", - "url": "https://github.com/sponsors/fb55" + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "devOptional": true, + "license": "MIT" }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" } }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true + "node_modules/caniuse-lite": { + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">=12.0.0" + "node": ">= 8.10.0" }, - "peerDependencies": { - "@types/express": "^4.17.13" + "funding": { + "url": "https://paulmillr.com/funding/" }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "6", - "debug": "4" + "source-map": "~0.6.0" }, "engines": { - "node": ">= 6" + "node": ">= 10.0" } }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=7.0.0" } }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true, - "engines": { - "node": ">=10.17.0" - } + "license": "MIT" }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 12" } }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } + "license": "MIT" }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } + "license": "MIT" }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "engines": { - "node": ">=10.13.0" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 10" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "ms": "^2.1.3" }, "engines": { - "node": ">=8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "utila": "~0.4" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "is-extglob": "^2.1.1" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, - "engines": { - "node": ">=0.12.0" + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "node_modules/dotenv": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz", + "integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "isobject": "^3.0.1" + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/electron-to-chromium": { + "version": "1.5.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", + "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=10.13.0" } }, - "node_modules/is-wsl": { + "node_modules/entities": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT", + "peer": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", + "peer": true, "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">=8.0.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4" + "node": ">=4.0" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, + "license": "BSD-2-Clause", + "peer": true, "engines": { - "node": ">=6" + "node": ">=4.0" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", + "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=4.0" } }, - "node_modules/launch-editor": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", - "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true, - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.7.3" - } + "license": "MIT" }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=6.11.5" + "node": ">=0.8.x" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause", + "peer": true }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "bin": { - "loose-envify": "cli.js" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "tslib": "^2.0.3" + "minimatch": "^5.0.1" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^3.0.2" + "balanced-match": "^1.0.0" } }, - "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { - "fs-monkey": "^1.0.4" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 4.0.0" + "node": ">=12" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "engines": { - "node": ">= 0.6" - } + "license": "ISC" }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8.6" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { - "mime-db": "1.52.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "BSD-2-Clause", + "peer": true }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/glob/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } + "license": "ISC" }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, + "license": "MIT", "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=8" } }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "engines": { - "node": ">= 0.6" + "license": "MIT", + "bin": { + "he": "bin/he" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, + "license": "MIT", "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" } }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", "dev": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { - "encoding": "^0.1.0" + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" }, "peerDependenciesMeta": { - "encoding": { + "@rspack/core": { + "optional": true + }, + "webpack": { "optional": true } } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, - "engines": { - "node": ">= 6.13.0" + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, - "node_modules/node-releases": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz", - "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/nth-check": { + "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { - "ee-first": "1.1.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" + "node": ">=0.12.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "ISC" }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" + "bin": { + "jake": "bin/cli.js" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "p-limit": "^2.2.0" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=8" + "node": ">= 10.13.0" } }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { "node": ">=6" } }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true, - "engines": { - "node": ">= 0.8" - } + "license": "MIT", + "peer": true }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } + "license": "MIT", + "peer": true }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">=8" + "node": ">=6.11.5" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "MIT" }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" } }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dev": true, + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } + "license": "MIT", + "peer": true }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 8" } }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=8.6" } }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, + "license": "MIT", "engines": { - "node": "^10 || ^12 || >= 14" + "node": ">=8.6" }, - "peerDependencies": { - "postcss": "^8.1.0" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, + "license": "MIT", + "peer": true, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">= 0.6" } }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "mime-db": "1.52.0" }, "engines": { - "node": ">=4" + "node": ">= 0.6" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", "dev": true, + "license": "ISC", "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">= 0.10" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "license": "MIT", + "peer": true }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, - "engines": { - "node": ">=6" + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, + "license": "MIT", "dependencies": { - "side-channel": "^1.0.4" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=0.6" + "node": "4.x || >=6.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "^5.1.0" + "css-select": "^4.2.1", + "he": "1.2.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "boolbase": "^1.0.0" }, - "engines": { - "node": ">= 0.8" + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "node": ">=10" }, - "peerDependencies": { - "react": "^18.2.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" + "node": ">=10" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, + "license": "MIT", "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, + "license": "MIT", "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" + "node": ">=16 || 14 >=14.18" }, - "bin": { - "regjsparser": "bin/parser" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } + "license": "ISC" }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "resolve-from": "^5.0.0" + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=8" + "node": "^10 || ^12 || >=14" } }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=0.4.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -5955,277 +3382,275 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + ], + "license": "MIT" }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "loose-envify": "^1.1.0" + "safe-buffer": "^5.1.0" } }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=0.10.0" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", "dependencies": { - "node-forge": "^1" + "scheduler": "^0.26.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^19.1.0" } }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "picomatch": "^2.2.1" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" + "node": ">=8.10.0" } }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.10" } }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, + "license": "MIT", "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, + "license": "MIT", + "peer": true, "engines": { - "node": ">= 0.6" + "node": ">=0.10.0" } }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "license": "MIT", "dependencies": { - "kind-of": "^6.0.2" + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=8" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "fsevents": "~2.3.2" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "queue-microtask": "^1.2.2" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "engines": { - "node": ">=8" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peer": true }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, + "license": "BSD-3-Clause", + "peer": true, "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" + "randombytes": "^2.1.0" } }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "devOptional": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -6234,111 +3659,19 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "devOptional": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy-transport/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/spdy/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/spdy/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6346,20 +3679,12 @@ "node": ">=8" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/style-loader": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", - "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 12.13.0" }, @@ -6372,30 +3697,16 @@ } }, "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/tapable": { @@ -6403,15 +3714,17 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/terser": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.0.tgz", - "integrity": "sha512-pdL757Ig5a0I+owA42l6tIuEycRuM7FPY4n62h44mRLRfnOxJkkOHd6i89dOpwZlpF6JXBwaAHF6yWzFrt+QyA==", - "dev": true, + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", + "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", + "devOptional": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -6426,16 +3739,18 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -6459,113 +3774,72 @@ } } }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "devOptional": true, + "license": "MIT" }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", - "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "node": ">=12.0.0" }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=4" + "node": ">=8.0" } }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "MIT" }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, - "engines": { - "node": ">=4" - } + "license": "0BSD" }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "devOptional": true, + "license": "MIT", + "peer": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 10.0.0" } }, "node_modules/unplugin": { @@ -6573,6 +3847,7 @@ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz", "integrity": "sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==", "dev": true, + "license": "MIT", "dependencies": { "acorn": "^8.8.1", "chokidar": "^3.5.3", @@ -6581,10 +3856,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", - "dev": true, + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -6599,9 +3873,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -6610,59 +3885,118 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, - "engines": { - "node": ">= 0.4.0" - } + "license": "MIT" }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, "bin": { - "uuid": "dist/bin/uuid" + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/vite-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", + "integrity": "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==", "dev": true, - "engines": { - "node": ">= 0.8" + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^4.2.0", + "colorette": "^2.0.16", + "connect-history-api-fallback": "^1.6.0", + "consola": "^2.15.3", + "dotenv": "^16.0.0", + "dotenv-expand": "^8.0.2", + "ejs": "^3.1.6", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.1", + "html-minifier-terser": "^6.1.0", + "node-html-parser": "^5.3.3", + "pathe": "^0.2.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -6671,50 +4005,44 @@ "node": ">=10.13.0" } }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.87.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.87.0.tgz", - "integrity": "sha512-GOu1tNbQ7p1bDEoFRs2YPcfyGs8xq52yyPBZ3m2VGnXGtV9MxjrkABHm4V9Ia280OefsSLzvbVoXcfLxjKY/Iw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -6733,266 +4061,12 @@ } } }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } @@ -7001,36 +4075,15 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", - "dev": true - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, - "engines": { - "node": ">=0.8.0" - } + "license": "MIT" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -7041,6 +4094,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -7051,50 +4105,18 @@ "node": ">= 8" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "license": "ISC" }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index 3199c3f..a8bcdb3 100644 --- a/package.json +++ b/package.json @@ -4,29 +4,23 @@ "description": "", "main": "index.js", "scripts": { - "build": "webpack", - "start": "webpack serve --mode development", - "test": "echo \"Error: no test specified\" && exit 1" + "build": "vite build", + "start": "vite" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { - "@babel/core": "^7.22.5", - "@babel/preset-env": "^7.22.5", - "@babel/preset-react": "^7.22.5", - "@sentry/webpack-plugin": "^2.10.3", - "babel-loader": "^9.1.2", - "css-loader": "^6.8.1", + "@sentry/vite-plugin": "^3.4.0", "html-webpack-plugin": "^5.5.3", "style-loader": "^3.3.3", - "webpack": "^5.87.0", - "webpack-cli": "^5.1.4", - "webpack-dev-server": "^4.15.1" + "vite-plugin-html": "^3.2.2" }, "dependencies": { - "@sentry/react": "^7.59.3", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@sentry/react": "^9.18.0", + "@vitejs/plugin-react": "^4.4.1", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "vite": "^6.3.5" } } diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 9d10ed5..0000000 --- a/public/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - Sentry Demo - - - -
- - - \ No newline at end of file diff --git a/src/components/App.js b/src/components/App.jsx similarity index 99% rename from src/components/App.js rename to src/components/App.jsx index 176b6dc..9b77125 100644 --- a/src/components/App.js +++ b/src/components/App.jsx @@ -94,7 +94,7 @@ class App extends Component { checkout() { // Generate an error - this.myCodeIsMorePerfect(); + this.myCodeIsPerfect(); const order = { email: this.email, diff --git a/src/index.js b/src/index.js deleted file mode 100644 index b4adf03..0000000 --- a/src/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react"; -import { createRoot } from "react-dom/client"; -import App from "./components/App"; - -// Import and init Sentry SDK -import * as Sentry from "@sentry/react"; - -Sentry.init({ - dsn: "https://2f4e649d19e64637903b24e784c7a4f2@o4505201972871168.ingest.sentry.io/4505523376553985", - integrations: [new Sentry.BrowserTracing({}), new Sentry.Replay()], - - // Set tracesSampleRate to 1.0 to capture 100% - // of transactions for performance monitoring. - tracesSampleRate: 1.0, - - // Capture Replay for 10% of all sessions, - // plus for 100% of sessions with an error - replaysSessionSampleRate: 0.1, - replaysOnErrorSampleRate: 1.0, -}); - -const container = document.getElementById("root"); -const root = createRoot(container); -root.render(); \ No newline at end of file diff --git a/src/index.jsx b/src/index.jsx new file mode 100644 index 0000000..13f0f60 --- /dev/null +++ b/src/index.jsx @@ -0,0 +1,17 @@ +import React from "react"; +import ReactDOM from 'react-dom/client'; +import App from "./components/App"; + +// Import and init Sentry SDK +import * as Sentry from "@sentry/react"; + +Sentry.init({ + dsn: "https://cf9de19febab68c35351875677c2afb9@o4505833623388160.ingest.us.sentry.io/4509319973306368", + // Setting this option to true will send default PII data to Sentry. + // For example, automatic IP address collection on events + sendDefaultPii: true +}); + +const container = document.getElementById('root'); +const root = ReactDOM.createRoot(container); +root.render(); \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..7fb9ea7 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,27 @@ +import { defineConfig } from "vite"; +import react from '@vitejs/plugin-react' +import { sentryVitePlugin } from "@sentry/vite-plugin"; + +export default defineConfig({ + build: { + sourcemap: true, // Source map generation must be turned on + open: true, // this ensures that the browser opens upon server start + port: 3000, // this sets a default port to 3000 + outDir: "dist", // this sets the output directory to dist + emptyOutDir: true, // this ensures that the output directory is emptied before each build + rollupOptions: { + output: { + sourcemap: true, // Source map generation must be turned on + entryFileNames: "[name].js", // this sets the entry file name to [name].js + chunkFileNames: "[name].js", // this sets the chunk file name to [name].js + assetFileNames: "[name].[ext]", // this sets the asset file name to [name].[ext] + }, + }, + }, + plugins: [react(), // Put the Sentry vite plugin after all other plugins + sentryVitePlugin({ + org: "blackwood-seven-e2d23a3f8", + project: "javascript-react", + authToken: process.env.SENTRY_AUTH_TOKEN, + })], +}); \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index d038bff..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,70 +0,0 @@ -const path = require("path"); -const HtmlWebpackPlugin = require("html-webpack-plugin"); -const { sentryWebpackPlugin } = require("@sentry/webpack-plugin"); - -module.exports = { - entry: "./src/index.js", - output: { - filename: "main.js", - path: path.resolve(__dirname, "build"), - }, - devtool: "source-map", - plugins: [ - new HtmlWebpackPlugin({ - template: path.join(__dirname, "public", "index.html"), - }), - sentryWebpackPlugin({ - org: "viv-ip", - project: "frontend-tutorial", - - // Auth tokens can be obtained by creating an internal integration - // at https://.sentry.io/settings/developer-settings/ - // and need "Release: Admin" and "Organization: Read & Write" permissions - authToken: process.env.SENTRY_AUTH_TOKEN, - - // Enable automatically creating releases and associating commits - release: { - create: true, - setCommits: { - auto: true, - }, - }, - }), - ], - devServer: { - static: { - directory: path.join(__dirname, "build"), - }, - port: 3000, - }, - module: { - // exclude node_modules - rules: [ - { - test: /\.(js|jsx)$/, - exclude: /node_modules/, - use: ["babel-loader"], - }, - // "url" loader works like "file" loader except that it embeds assets - // smaller than specified limit in bytes as data URLs to avoid requests. - // A missing `test` is equivalent to a match. - { - test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], - type: "asset", - parser: { - dataUrlCondition: { - // maxSize: 10000, - }, - }, - }, - { - test: /\.(css)$/, - use: ["style-loader", "css-loader"], - }, - ], - }, - // pass all js files through Babel - resolve: { - extensions: ["*", ".js", ".jsx"], - }, -}; From e143ca982d361a5b86e4a63215280791c7cfd4ac Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Sun, 30 Nov 2025 18:50:57 +0530 Subject: [PATCH 02/13] chore: remove sentry integration --- .gitignore | 3 - dist/index.html | 2 +- dist/index.js | 42 +-- dist/index.js.map | 2 +- index.html | 2 +- package-lock.json | 750 +---------------------------------------- package.json | 2 - src/components/App.jsx | 35 +- src/index.jsx | 10 - vite.config.js | 8 +- 10 files changed, 20 insertions(+), 836 deletions(-) diff --git a/.gitignore b/.gitignore index 44fdf53..a73e18b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,3 @@ # production /build - -# Sentry Config File -.env.sentry-build-plugin diff --git a/dist/index.html b/dist/index.html index 640a672..e1c678a 100644 --- a/dist/index.html +++ b/dist/index.html @@ -3,7 +3,7 @@ - Sentry Demo + Hardware Store Demo diff --git a/dist/index.js b/dist/index.js index c10c187..a1bf430 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,4 @@ -try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},u=new a.Error().stack;u&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[u]="270240c8-30ba-4157-91b3-09880470b47a",a._sentryDebugIdIdentifier="sentry-dbid-270240c8-30ba-4157-91b3-09880470b47a")}catch{}{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"ce68e195fa626706a710d200dda3a14e7fdb8614"}}(function(){const u=document.createElement("link").relList;if(u&&u.supports&&u.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))f(s);new MutationObserver(s=>{for(const d of s)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&f(m)}).observe(document,{childList:!0,subtree:!0});function r(s){const d={};return s.integrity&&(d.integrity=s.integrity),s.referrerPolicy&&(d.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?d.credentials="include":s.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function f(s){if(s.ep)return;s.ep=!0;const d=r(s);fetch(s.href,d)}})();function Qg(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var tf={exports:{}},$a={};/** +(function(){const K=document.createElement("link").relList;if(K&&K.supports&&K.supports("modulepreload"))return;for(const x of document.querySelectorAll('link[rel="modulepreload"]'))r(x);new MutationObserver(x=>{for(const L of x)if(L.type==="childList")for(const nl of L.addedNodes)nl.tagName==="LINK"&&nl.rel==="modulepreload"&&r(nl)}).observe(document,{childList:!0,subtree:!0});function Q(x){const L={};return x.integrity&&(L.integrity=x.integrity),x.referrerPolicy&&(L.referrerPolicy=x.referrerPolicy),x.crossOrigin==="use-credentials"?L.credentials="include":x.crossOrigin==="anonymous"?L.credentials="omit":L.credentials="same-origin",L}function r(x){if(x.ep)return;x.ep=!0;const L=Q(x);fetch(x.href,L)}})();function Dh(_){return _&&_.__esModule&&Object.prototype.hasOwnProperty.call(_,"default")?_.default:_}var $c={exports:{}},re={};/** * @license React * react-jsx-runtime.production.js * @@ -6,7 +6,7 @@ try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var qh;function wg(){if(qh)return $a;qh=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.fragment");function r(f,s,d){var m=null;if(d!==void 0&&(m=""+d),s.key!==void 0&&(m=""+s.key),"key"in s){d={};for(var g in s)g!=="key"&&(d[g]=s[g])}else d=s;return s=d.ref,{$$typeof:a,type:f,key:m,ref:s!==void 0?s:null,props:d}}return $a.Fragment=u,$a.jsx=r,$a.jsxs=r,$a}var jh;function Zg(){return jh||(jh=1,tf.exports=wg()),tf.exports}var ut=Zg(),ef={exports:{}},J={};/** + */var $v;function Uh(){if($v)return re;$v=1;var _=Symbol.for("react.transitional.element"),K=Symbol.for("react.fragment");function Q(r,x,L){var nl=null;if(L!==void 0&&(nl=""+L),x.key!==void 0&&(nl=""+x.key),"key"in x){L={};for(var Sl in x)Sl!=="key"&&(L[Sl]=x[Sl])}else L=x;return x=L.ref,{$$typeof:_,type:r,key:nl,ref:x!==void 0?x:null,props:L}}return re.Fragment=K,re.jsx=Q,re.jsxs=Q,re}var kv;function Rh(){return kv||(kv=1,$c.exports=Uh()),$c.exports}var F=Rh(),kc={exports:{}},X={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Lh;function Vg(){if(Lh)return J;Lh=1;var a=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),f=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),m=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),y=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),U=Symbol.iterator;function q(_){return _===null||typeof _!="object"?null:(_=U&&_[U]||_["@@iterator"],typeof _=="function"?_:null)}var B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},tt=Object.assign,At={};function ft(_,x,j){this.props=_,this.context=x,this.refs=At,this.updater=j||B}ft.prototype.isReactComponent={},ft.prototype.setState=function(_,x){if(typeof _!="object"&&typeof _!="function"&&_!=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,_,x,"setState")},ft.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function oe(){}oe.prototype=ft.prototype;function Ft(_,x,j){this.props=_,this.context=x,this.refs=At,this.updater=j||B}var Rt=Ft.prototype=new oe;Rt.constructor=Ft,tt(Rt,ft.prototype),Rt.isPureReactComponent=!0;var be=Array.isArray,et={H:null,A:null,T:null,S:null,V:null},Wt=Object.prototype.hasOwnProperty;function It(_,x,j,C,G,nt){return j=nt.ref,{$$typeof:a,type:_,key:x,ref:j!==void 0?j:null,props:nt}}function Pt(_,x){return It(_.type,x,void 0,void 0,void 0,_.props)}function Re(_){return typeof _=="object"&&_!==null&&_.$$typeof===a}function ul(_){var x={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(j){return x[j]})}var He=/\/+/g;function jt(_,x){return typeof _=="object"&&_!==null&&_.key!=null?ul(""+_.key):x.toString(36)}function Un(){}function xn(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(Un,Un):(_.status="pending",_.then(function(x){_.status==="pending"&&(_.status="fulfilled",_.value=x)},function(x){_.status==="pending"&&(_.status="rejected",_.reason=x)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function Lt(_,x,j,C,G){var nt=typeof _;(nt==="undefined"||nt==="boolean")&&(_=null);var K=!1;if(_===null)K=!0;else switch(nt){case"bigint":case"string":case"number":K=!0;break;case"object":switch(_.$$typeof){case a:case u:K=!0;break;case D:return K=_._init,Lt(K(_._payload),x,j,C,G)}}if(K)return G=G(_),K=C===""?"."+jt(_,0):C,be(G)?(j="",K!=null&&(j=K.replace(He,"$&/")+"/"),Lt(G,x,j,"",function(en){return en})):G!=null&&(Re(G)&&(G=Pt(G,j+(G.key==null||_&&_.key===G.key?"":(""+G.key).replace(He,"$&/")+"/")+K)),x.push(G)),1;K=0;var te=C===""?".":C+":";if(be(_))for(var yt=0;yt<_.length;yt++)C=_[yt],nt=te+jt(C,yt),K+=Lt(C,x,j,nt,G);else if(yt=q(_),typeof yt=="function")for(_=yt.call(_),yt=0;!(C=_.next()).done;)C=C.value,nt=te+jt(C,yt++),K+=Lt(C,x,j,nt,G);else if(nt==="object"){if(typeof _.then=="function")return Lt(xn(_),x,j,C,G);throw x=String(_),Error("Objects are not valid as a React child (found: "+(x==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":x)+"). If you meant to render a collection of children, use an array instead.")}return K}function M(_,x,j){if(_==null)return _;var C=[],G=0;return Lt(_,C,"","",function(nt){return x.call(j,nt,G++)}),C}function H(_){if(_._status===-1){var x=_._result;x=x(),x.then(function(j){(_._status===0||_._status===-1)&&(_._status=1,_._result=j)},function(j){(_._status===0||_._status===-1)&&(_._status=2,_._result=j)}),_._status===-1&&(_._status=0,_._result=x)}if(_._status===1)return _._result.default;throw _._result}var w=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var x=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(x))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)};function ht(){}return J.Children={map:M,forEach:function(_,x,j){M(_,function(){x.apply(this,arguments)},j)},count:function(_){var x=0;return M(_,function(){x++}),x},toArray:function(_){return M(_,function(x){return x})||[]},only:function(_){if(!Re(_))throw Error("React.Children.only expected to receive a single React element child.");return _}},J.Component=ft,J.Fragment=r,J.Profiler=s,J.PureComponent=Ft,J.StrictMode=f,J.Suspense=y,J.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=et,J.__COMPILER_RUNTIME={__proto__:null,c:function(_){return et.H.useMemoCache(_)}},J.cache=function(_){return function(){return _.apply(null,arguments)}},J.cloneElement=function(_,x,j){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var C=tt({},_.props),G=_.key,nt=void 0;if(x!=null)for(K in x.ref!==void 0&&(nt=void 0),x.key!==void 0&&(G=""+x.key),x)!Wt.call(x,K)||K==="key"||K==="__self"||K==="__source"||K==="ref"&&x.ref===void 0||(C[K]=x[K]);var K=arguments.length-2;if(K===1)C.children=j;else if(1>>1,_=M[ht];if(0>>1;hts(C,w))G<_&&0>s(nt,C)?(M[ht]=nt,M[G]=w,ht=G):(M[ht]=C,M[j]=w,ht=j);else if(G<_&&0>s(nt,w))M[ht]=nt,M[G]=w,ht=G;else break t}}return H}function s(M,H){var w=M.sortIndex-H.sortIndex;return w!==0?w:M.id-H.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;a.unstable_now=function(){return d.now()}}else{var m=Date,g=m.now();a.unstable_now=function(){return m.now()-g}}var y=[],v=[],D=1,U=null,q=3,B=!1,tt=!1,At=!1,ft=!1,oe=typeof setTimeout=="function"?setTimeout:null,Ft=typeof clearTimeout=="function"?clearTimeout:null,Rt=typeof setImmediate<"u"?setImmediate:null;function be(M){for(var H=r(v);H!==null;){if(H.callback===null)f(v);else if(H.startTime<=M)f(v),H.sortIndex=H.expirationTime,u(y,H);else break;H=r(v)}}function et(M){if(At=!1,be(M),!tt)if(r(y)!==null)tt=!0,Wt||(Wt=!0,jt());else{var H=r(v);H!==null&&Lt(et,H.startTime-M)}}var Wt=!1,It=-1,Pt=5,Re=-1;function ul(){return ft?!0:!(a.unstable_now()-ReM&&ul());){var ht=U.callback;if(typeof ht=="function"){U.callback=null,q=U.priorityLevel;var _=ht(U.expirationTime<=M);if(M=a.unstable_now(),typeof _=="function"){U.callback=_,be(M),H=!0;break e}U===r(y)&&f(y),be(M)}else f(y);U=r(y)}if(U!==null)H=!0;else{var x=r(v);x!==null&&Lt(et,x.startTime-M),H=!1}}break t}finally{U=null,q=w,B=!1}H=void 0}}finally{H?jt():Wt=!1}}}var jt;if(typeof Rt=="function")jt=function(){Rt(He)};else if(typeof MessageChannel<"u"){var Un=new MessageChannel,xn=Un.port2;Un.port1.onmessage=He,jt=function(){xn.postMessage(null)}}else jt=function(){oe(He,0)};function Lt(M,H){It=oe(function(){M(a.unstable_now())},H)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(M){M.callback=null},a.unstable_forceFrameRate=function(M){0>M||125ht?(M.sortIndex=w,u(v,M),r(y)===null&&M===r(v)&&(At?(Ft(It),It=-1):At=!0,Lt(et,w-ht))):(M.sortIndex=_,u(y,M),tt||B||(tt=!0,Wt||(Wt=!0,jt()))),M},a.unstable_shouldYield=ul,a.unstable_wrapCallback=function(M){var H=q;return function(){var w=q;q=H;try{return M.apply(this,arguments)}finally{q=w}}}}(af)),af}var Xh;function Jg(){return Xh||(Xh=1,lf.exports=Kg()),lf.exports}var uf={exports:{}},Xt={};/** + */var Pv;function qh(){return Pv||(Pv=1,function(_){function K(S,O){var Y=S.length;S.push(O);l:for(;0>>1,s=S[al];if(0>>1;alx(z,Y))Hx(W,z)?(S[al]=W,S[H]=Y,al=H):(S[al]=z,S[M]=Y,al=M);else if(Hx(W,Y))S[al]=W,S[H]=Y,al=H;else break l}}return O}function x(S,O){var Y=S.sortIndex-O.sortIndex;return Y!==0?Y:S.id-O.id}if(_.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var L=performance;_.unstable_now=function(){return L.now()}}else{var nl=Date,Sl=nl.now();_.unstable_now=function(){return nl.now()-Sl}}var N=[],A=[],R=1,il=null,fl=3,Yl=!1,Bl=!1,dt=!1,Gl=!1,du=typeof setTimeout=="function"?setTimeout:null,zt=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function yt(S){for(var O=Q(A);O!==null;){if(O.callback===null)r(A);else if(O.startTime<=S)r(A),O.sortIndex=O.expirationTime,K(N,O);else break;O=Q(A)}}function w(S){if(dt=!1,yt(S),!Bl)if(Q(N)!==null)Bl=!0,Vl||(Vl=!0,Rl());else{var O=Q(A);O!==null&&Nl(w,O.startTime-S)}}var Vl=!1,Ll=-1,Kl=5,mt=-1;function qu(){return Gl?!0:!(_.unstable_now()-mtS&&qu());){var al=il.callback;if(typeof al=="function"){il.callback=null,fl=il.priorityLevel;var s=al(il.expirationTime<=S);if(S=_.unstable_now(),typeof s=="function"){il.callback=s,yt(S),O=!0;break t}il===Q(N)&&r(N),yt(S)}else r(N);il=Q(N)}if(il!==null)O=!0;else{var E=Q(A);E!==null&&Nl(w,E.startTime-S),O=!1}}break l}finally{il=null,fl=Y,Yl=!1}O=void 0}}finally{O?Rl():Vl=!1}}}var Rl;if(typeof Ul=="function")Rl=function(){Ul(Ot)};else if(typeof MessageChannel<"u"){var yu=new MessageChannel,hu=yu.port2;yu.port1.onmessage=Ot,Rl=function(){hu.postMessage(null)}}else Rl=function(){du(Ot,0)};function Nl(S,O){Ll=du(function(){S(_.unstable_now())},O)}_.unstable_IdlePriority=5,_.unstable_ImmediatePriority=1,_.unstable_LowPriority=4,_.unstable_NormalPriority=3,_.unstable_Profiling=null,_.unstable_UserBlockingPriority=2,_.unstable_cancelCallback=function(S){S.callback=null},_.unstable_forceFrameRate=function(S){0>S||125al?(S.sortIndex=Y,K(A,S),Q(N)===null&&S===Q(A)&&(dt?(zt(Ll),Ll=-1):dt=!0,Nl(w,Y-al))):(S.sortIndex=s,K(N,S),Bl||Yl||(Bl=!0,Vl||(Vl=!0,Rl()))),S},_.unstable_shouldYield=qu,_.unstable_wrapCallback=function(S){var O=fl;return function(){var Y=fl;fl=O;try{return S.apply(this,arguments)}finally{fl=Y}}}}(Pc)),Pc}var ld;function ph(){return ld||(ld=1,Ic.exports=qh()),Ic.exports}var li={exports:{}},pl={};/** * @license React * react-dom.production.js * @@ -30,7 +30,7 @@ try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Qh;function kg(){if(Qh)return Xt;Qh=1;var a=zf();function u(y){var v="https://react.dev/errors/"+y;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(u){console.error(u)}}return a(),uf.exports=kg(),uf.exports}/** + */var td;function Yh(){if(td)return pl;td=1;var _=ui();function K(N){var A="https://react.dev/errors/"+N;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(K){console.error(K)}}return _(),li.exports=Yh(),li.exports}/** * @license React * react-dom-client.production.js * @@ -38,27 +38,13 @@ try{let a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Zh;function Fg(){if(Zh)return Fa;Zh=1;var a=Jg(),u=zf(),r=$g();function f(t){var e="https://react.dev/errors/"+t;if(1_||(t.current=ht[_],ht[_]=null,_--)}function C(t,e){_++,ht[_]=t.current,t.current=e}var G=x(null),nt=x(null),K=x(null),te=x(null);function yt(t,e){switch(C(K,e),C(nt,t),C(G,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?sh(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=sh(e),t=oh(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}j(G),C(G,t)}function en(){j(G),j(nt),j(K)}function Yi(t){t.memoizedState!==null&&C(te,t);var e=G.current,n=oh(e,t.type);e!==n&&(C(nt,t),C(G,n))}function au(t){nt.current===t&&(j(G),j(nt)),te.current===t&&(j(te),Za._currentValue=w)}var Gi=Object.prototype.hasOwnProperty,Xi=a.unstable_scheduleCallback,Qi=a.unstable_cancelCallback,Sp=a.unstable_shouldYield,Ep=a.unstable_requestPaint,Me=a.unstable_now,bp=a.unstable_getCurrentPriorityLevel,wf=a.unstable_ImmediatePriority,Zf=a.unstable_UserBlockingPriority,uu=a.unstable_NormalPriority,Tp=a.unstable_LowPriority,Vf=a.unstable_IdlePriority,Ap=a.log,Op=a.unstable_setDisableYieldValue,Il=null,ee=null;function nn(t){if(typeof Ap=="function"&&Op(t),ee&&typeof ee.setStrictMode=="function")try{ee.setStrictMode(Il,t)}catch{}}var ne=Math.clz32?Math.clz32:Mp,Dp=Math.log,Rp=Math.LN2;function Mp(t){return t>>>=0,t===0?32:31-(Dp(t)/Rp|0)|0}var iu=256,cu=4194304;function Cn(t){var e=t&42;if(e!==0)return e;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function ru(t,e,n){var l=t.pendingLanes;if(l===0)return 0;var i=0,c=t.suspendedLanes,o=t.pingedLanes;t=t.warmLanes;var h=l&134217727;return h!==0?(l=h&~c,l!==0?i=Cn(l):(o&=h,o!==0?i=Cn(o):n||(n=h&~t,n!==0&&(i=Cn(n))))):(h=l&~c,h!==0?i=Cn(h):o!==0?i=Cn(o):n||(n=l&~t,n!==0&&(i=Cn(n)))),i===0?0:e!==0&&e!==i&&(e&c)===0&&(c=i&-i,n=e&-e,c>=n||c===32&&(n&4194048)!==0)?e:i}function Pl(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function Np(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Kf(){var t=iu;return iu<<=1,(iu&4194048)===0&&(iu=256),t}function Jf(){var t=cu;return cu<<=1,(cu&62914560)===0&&(cu=4194304),t}function wi(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function ta(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function zp(t,e,n,l,i,c){var o=t.pendingLanes;t.pendingLanes=n,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=n,t.entangledLanes&=n,t.errorRecoveryDisabledLanes&=n,t.shellSuspendCounter=0;var h=t.entanglements,p=t.expirationTimes,T=t.hiddenUpdates;for(n=o&~n;0)":-1i||p[l]!==T[i]){var R=` -`+p[l].replace(" at new "," at ");return t.displayName&&R.includes("")&&(R=R.replace("",t.displayName)),R}while(1<=l&&0<=i);break}}}finally{$i=!1,Error.prepareStackTrace=n}return(n=t?t.displayName||t.name:"")?ol(n):""}function qp(t){switch(t.tag){case 26:case 27:case 5:return ol(t.type);case 16:return ol("Lazy");case 13:return ol("Suspense");case 19:return ol("SuspenseList");case 0:case 15:return Fi(t.type,!1);case 11:return Fi(t.type.render,!1);case 1:return Fi(t.type,!0);case 31:return ol("Activity");default:return""}}function ls(t){try{var e="";do e+=qp(t),t=t.return;while(t);return e}catch(n){return` -Error generating stack: `+n.message+` -`+n.stack}}function de(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function as(t){var e=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function jp(t){var e=as(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),l=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,c=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return i.call(this)},set:function(o){l=""+o,c.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return l},setValue:function(o){l=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function ou(t){t._valueTracker||(t._valueTracker=jp(t))}function us(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),l="";return t&&(l=as(t)?t.checked?"true":"false":t.value),t=l,t!==n?(e.setValue(t),!0):!1}function du(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Lp=/[\n"\\]/g;function he(t){return t.replace(Lp,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function Wi(t,e,n,l,i,c,o,h){t.name="",o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"?t.type=o:t.removeAttribute("type"),e!=null?o==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+de(e)):t.value!==""+de(e)&&(t.value=""+de(e)):o!=="submit"&&o!=="reset"||t.removeAttribute("value"),e!=null?Ii(t,o,de(e)):n!=null?Ii(t,o,de(n)):l!=null&&t.removeAttribute("value"),i==null&&c!=null&&(t.defaultChecked=!!c),i!=null&&(t.checked=i&&typeof i!="function"&&typeof i!="symbol"),h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?t.name=""+de(h):t.removeAttribute("name")}function is(t,e,n,l,i,c,o,h){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(t.type=c),e!=null||n!=null){if(!(c!=="submit"&&c!=="reset"||e!=null))return;n=n!=null?""+de(n):"",e=e!=null?""+de(e):n,h||e===t.value||(t.value=e),t.defaultValue=e}l=l??i,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=h?t.checked:!!l,t.defaultChecked=!!l,o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(t.name=o)}function Ii(t,e,n){e==="number"&&du(t.ownerDocument)===t||t.defaultValue===""+n||(t.defaultValue=""+n)}function dl(t,e,n,l){if(t=t.options,e){e={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),lc=!1;if(qe)try{var aa={};Object.defineProperty(aa,"passive",{get:function(){lc=!0}}),window.addEventListener("test",aa,aa),window.removeEventListener("test",aa,aa)}catch{lc=!1}var an=null,ac=null,mu=null;function hs(){if(mu)return mu;var t,e=ac,n=e.length,l,i="value"in an?an.value:an.textContent,c=i.length;for(t=0;t=ca),vs=" ",Ss=!1;function Es(t,e){switch(t){case"keyup":return dy.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bs(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var yl=!1;function my(t,e){switch(t){case"compositionend":return bs(e);case"keypress":return e.which!==32?null:(Ss=!0,vs);case"textInput":return t=e.data,t===vs&&Ss?null:t;default:return null}}function py(t,e){if(yl)return t==="compositionend"||!fc&&Es(t,e)?(t=hs(),mu=ac=an=null,yl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:n,offset:e-t};t=l}t:{for(;n;){if(n.nextSibling){n=n.nextSibling;break t}n=n.parentNode}n=void 0}n=zs(n)}}function xs(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?xs(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Cs(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=du(t.document);e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=du(t.document)}return e}function dc(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var Ty=qe&&"documentMode"in document&&11>=document.documentMode,gl=null,hc=null,oa=null,mc=!1;function Hs(t,e,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;mc||gl==null||gl!==du(l)||(l=gl,"selectionStart"in l&&dc(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),oa&&sa(oa,l)||(oa=l,l=ai(hc,"onSelect"),0>=o,i-=o,Le=1<<32-ne(e)+i|n<c?c:8;var o=M.T,h={};M.T=h,Pc(t,!1,e,n);try{var p=i(),T=M.S;if(T!==null&&T(h,p),p!==null&&typeof p=="object"&&typeof p.then=="function"){var R=xy(p,l);Da(t,e,R,re(t))}else Da(t,e,l,re(t))}catch(z){Da(t,e,{then:function(){},status:"rejected",reason:z},re())}finally{H.p=c,M.T=o}}function jy(){}function Wc(t,e,n,l){if(t.tag!==5)throw Error(f(476));var i=qo(t).queue;Bo(t,i,e,w,n===null?jy:function(){return jo(t),n(l)})}function qo(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:w,baseState:w,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qe,lastRenderedState:w},next:null};var n={};return e.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Qe,lastRenderedState:n},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function jo(t){var e=qo(t).next.queue;Da(t,e,{},re())}function Ic(){return Gt(Za)}function Lo(){return Dt().memoizedState}function Yo(){return Dt().memoizedState}function Ly(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var n=re();t=rn(n);var l=fn(e,t,n);l!==null&&(fe(l,e,n),Sa(l,e,n)),e={cache:Mc()},t.payload=e;return}e=e.return}}function Yy(t,e,n){var l=re();n={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null},Lu(t)?Xo(e,n):(n=_c(t,e,n,l),n!==null&&(fe(n,t,l),Qo(n,e,l)))}function Go(t,e,n){var l=re();Da(t,e,n,l)}function Da(t,e,n,l){var i={lane:l,revertLane:0,action:n,hasEagerState:!1,eagerState:null,next:null};if(Lu(t))Xo(e,i);else{var c=t.alternate;if(t.lanes===0&&(c===null||c.lanes===0)&&(c=e.lastRenderedReducer,c!==null))try{var o=e.lastRenderedState,h=c(o,n);if(i.hasEagerState=!0,i.eagerState=h,le(h,o))return Eu(t,e,i,0),pt===null&&Su(),!1}catch{}finally{}if(n=_c(t,e,i,l),n!==null)return fe(n,t,l),Qo(n,e,l),!0}return!1}function Pc(t,e,n,l){if(l={lane:2,revertLane:Ur(),action:l,hasEagerState:!1,eagerState:null,next:null},Lu(t)){if(e)throw Error(f(479))}else e=_c(t,n,l,2),e!==null&&fe(e,t,2)}function Lu(t){var e=t.alternate;return t===k||e!==null&&e===k}function Xo(t,e){Rl=xu=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Qo(t,e,n){if((n&4194048)!==0){var l=e.lanes;l&=t.pendingLanes,n|=l,e.lanes=n,$f(t,n)}}var Yu={readContext:Gt,use:Hu,useCallback:Et,useContext:Et,useEffect:Et,useImperativeHandle:Et,useLayoutEffect:Et,useInsertionEffect:Et,useMemo:Et,useReducer:Et,useRef:Et,useState:Et,useDebugValue:Et,useDeferredValue:Et,useTransition:Et,useSyncExternalStore:Et,useId:Et,useHostTransitionStatus:Et,useFormState:Et,useActionState:Et,useOptimistic:Et,useMemoCache:Et,useCacheRefresh:Et},wo={readContext:Gt,use:Hu,useCallback:function(t,e){return Kt().memoizedState=[t,e===void 0?null:e],t},useContext:Gt,useEffect:Do,useImperativeHandle:function(t,e,n){n=n!=null?n.concat([t]):null,ju(4194308,4,zo.bind(null,e,t),n)},useLayoutEffect:function(t,e){return ju(4194308,4,t,e)},useInsertionEffect:function(t,e){ju(4,2,t,e)},useMemo:function(t,e){var n=Kt();e=e===void 0?null:e;var l=t();if(Kn){nn(!0);try{t()}finally{nn(!1)}}return n.memoizedState=[l,e],l},useReducer:function(t,e,n){var l=Kt();if(n!==void 0){var i=n(e);if(Kn){nn(!0);try{n(e)}finally{nn(!1)}}}else i=e;return l.memoizedState=l.baseState=i,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:i},l.queue=t,t=t.dispatch=Yy.bind(null,k,t),[l.memoizedState,t]},useRef:function(t){var e=Kt();return t={current:t},e.memoizedState=t},useState:function(t){t=Jc(t);var e=t.queue,n=Go.bind(null,k,e);return e.dispatch=n,[t.memoizedState,n]},useDebugValue:$c,useDeferredValue:function(t,e){var n=Kt();return Fc(n,t,e)},useTransition:function(){var t=Jc(!1);return t=Bo.bind(null,k,t.queue,!0,!1),Kt().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,n){var l=k,i=Kt();if(at){if(n===void 0)throw Error(f(407));n=n()}else{if(n=e(),pt===null)throw Error(f(349));(P&124)!==0||fo(l,e,n)}i.memoizedState=n;var c={value:n,getSnapshot:e};return i.queue=c,Do(oo.bind(null,l,c,t),[t]),l.flags|=2048,Nl(9,qu(),so.bind(null,l,c,n,e),null),n},useId:function(){var t=Kt(),e=pt.identifierPrefix;if(at){var n=Ye,l=Le;n=(l&~(1<<32-ne(l)-1)).toString(32)+n,e="«"+e+"R"+n,n=Cu++,0Q?(Ct=Y,Y=null):Ct=Y.sibling;var lt=A(E,Y,b[Q],N);if(lt===null){Y===null&&(Y=Ct);break}t&&Y&<.alternate===null&&e(E,Y),S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt,Y=Ct}if(Q===b.length)return n(E,Y),at&&Gn(E,Q),L;if(Y===null){for(;QQ?(Ct=Y,Y=null):Ct=Y.sibling;var Dn=A(E,Y,lt.value,N);if(Dn===null){Y===null&&(Y=Ct);break}t&&Y&&Dn.alternate===null&&e(E,Y),S=c(Dn,S,Q),$===null?L=Dn:$.sibling=Dn,$=Dn,Y=Ct}if(lt.done)return n(E,Y),at&&Gn(E,Q),L;if(Y===null){for(;!lt.done;Q++,lt=b.next())lt=z(E,lt.value,N),lt!==null&&(S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt);return at&&Gn(E,Q),L}for(Y=l(Y);!lt.done;Q++,lt=b.next())lt=O(Y,E,Q,lt.value,N),lt!==null&&(t&<.alternate!==null&&Y.delete(lt.key===null?Q:lt.key),S=c(lt,S,Q),$===null?L=lt:$.sibling=lt,$=lt);return t&&Y.forEach(function(Xg){return e(E,Xg)}),at&&Gn(E,Q),L}function dt(E,S,b,N){if(typeof b=="object"&&b!==null&&b.type===tt&&b.key===null&&(b=b.props.children),typeof b=="object"&&b!==null){switch(b.$$typeof){case q:t:{for(var L=b.key;S!==null;){if(S.key===L){if(L=b.type,L===tt){if(S.tag===7){n(E,S.sibling),N=i(S,b.props.children),N.return=E,E=N;break t}}else if(S.elementType===L||typeof L=="object"&&L!==null&&L.$$typeof===Pt&&Vo(L)===S.type){n(E,S.sibling),N=i(S,b.props),Ma(N,b),N.return=E,E=N;break t}n(E,S);break}else e(E,S);S=S.sibling}b.type===tt?(N=Ln(b.props.children,E.mode,N,b.key),N.return=E,E=N):(N=Tu(b.type,b.key,b.props,null,E.mode,N),Ma(N,b),N.return=E,E=N)}return o(E);case B:t:{for(L=b.key;S!==null;){if(S.key===L)if(S.tag===4&&S.stateNode.containerInfo===b.containerInfo&&S.stateNode.implementation===b.implementation){n(E,S.sibling),N=i(S,b.children||[]),N.return=E,E=N;break t}else{n(E,S);break}else e(E,S);S=S.sibling}N=Ec(b,E.mode,N),N.return=E,E=N}return o(E);case Pt:return L=b._init,b=L(b._payload),dt(E,S,b,N)}if(Lt(b))return Z(E,S,b,N);if(jt(b)){if(L=jt(b),typeof L!="function")throw Error(f(150));return b=L.call(b),X(E,S,b,N)}if(typeof b.then=="function")return dt(E,S,Gu(b),N);if(b.$$typeof===Rt)return dt(E,S,Ru(E,b),N);Xu(E,b)}return typeof b=="string"&&b!==""||typeof b=="number"||typeof b=="bigint"?(b=""+b,S!==null&&S.tag===6?(n(E,S.sibling),N=i(S,b),N.return=E,E=N):(n(E,S),N=Sc(b,E.mode,N),N.return=E,E=N),o(E)):n(E,S)}return function(E,S,b,N){try{Ra=0;var L=dt(E,S,b,N);return zl=null,L}catch(Y){if(Y===_a||Y===Nu)throw Y;var $=ae(29,Y,null,E.mode);return $.lanes=N,$.return=E,$}finally{}}}var Ul=Ko(!0),Jo=Ko(!1),_e=x(null),ze=null;function on(t){var e=t.alternate;C(Nt,Nt.current&1),C(_e,t),ze===null&&(e===null||Dl.current!==null||e.memoizedState!==null)&&(ze=t)}function ko(t){if(t.tag===22){if(C(Nt,Nt.current),C(_e,t),ze===null){var e=t.alternate;e!==null&&e.memoizedState!==null&&(ze=t)}}else dn()}function dn(){C(Nt,Nt.current),C(_e,_e.current)}function we(t){j(_e),ze===t&&(ze=null),j(Nt)}var Nt=x(0);function Qu(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||wr(n)))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}function tr(t,e,n,l){e=t.memoizedState,n=n(l,e),n=n==null?e:D({},e,n),t.memoizedState=n,t.lanes===0&&(t.updateQueue.baseState=n)}var er={enqueueSetState:function(t,e,n){t=t._reactInternals;var l=re(),i=rn(l);i.payload=e,n!=null&&(i.callback=n),e=fn(t,i,l),e!==null&&(fe(e,t,l),Sa(e,t,l))},enqueueReplaceState:function(t,e,n){t=t._reactInternals;var l=re(),i=rn(l);i.tag=1,i.payload=e,n!=null&&(i.callback=n),e=fn(t,i,l),e!==null&&(fe(e,t,l),Sa(e,t,l))},enqueueForceUpdate:function(t,e){t=t._reactInternals;var n=re(),l=rn(n);l.tag=2,e!=null&&(l.callback=e),e=fn(t,l,n),e!==null&&(fe(e,t,n),Sa(e,t,n))}};function $o(t,e,n,l,i,c,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(l,c,o):e.prototype&&e.prototype.isPureReactComponent?!sa(n,l)||!sa(i,c):!0}function Fo(t,e,n,l){t=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(n,l),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(n,l),e.state!==t&&er.enqueueReplaceState(e,e.state,null)}function Jn(t,e){var n=e;if("ref"in e){n={};for(var l in e)l!=="ref"&&(n[l]=e[l])}if(t=t.defaultProps){n===e&&(n=D({},n));for(var i in t)n[i]===void 0&&(n[i]=t[i])}return n}var wu=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function Wo(t){wu(t)}function Io(t){console.error(t)}function Po(t){wu(t)}function Zu(t,e){try{var n=t.onUncaughtError;n(e.value,{componentStack:e.stack})}catch(l){setTimeout(function(){throw l})}}function td(t,e,n){try{var l=t.onCaughtError;l(n.value,{componentStack:n.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(i){setTimeout(function(){throw i})}}function nr(t,e,n){return n=rn(n),n.tag=3,n.payload={element:null},n.callback=function(){Zu(t,e)},n}function ed(t){return t=rn(t),t.tag=3,t}function nd(t,e,n,l){var i=n.type.getDerivedStateFromError;if(typeof i=="function"){var c=l.value;t.payload=function(){return i(c)},t.callback=function(){td(e,n,l)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch=="function"&&(t.callback=function(){td(e,n,l),typeof i!="function"&&(_n===null?_n=new Set([this]):_n.add(this));var h=l.stack;this.componentDidCatch(l.value,{componentStack:h!==null?h:""})})}function Xy(t,e,n,l,i){if(n.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(e=n.alternate,e!==null&&pa(e,n,i,!0),n=_e.current,n!==null){switch(n.tag){case 13:return ze===null?Dr():n.alternate===null&&St===0&&(St=3),n.flags&=-257,n.flags|=65536,n.lanes=i,l===Uc?n.flags|=16384:(e=n.updateQueue,e===null?n.updateQueue=new Set([l]):e.add(l),Mr(t,l,i)),!1;case 22:return n.flags|=65536,l===Uc?n.flags|=16384:(e=n.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([l])},n.updateQueue=e):(n=e.retryQueue,n===null?e.retryQueue=new Set([l]):n.add(l)),Mr(t,l,i)),!1}throw Error(f(435,n.tag))}return Mr(t,l,i),Dr(),!1}if(at)return e=_e.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=i,l!==Ac&&(t=Error(f(422),{cause:l}),ma(me(t,n)))):(l!==Ac&&(e=Error(f(423),{cause:l}),ma(me(e,n))),t=t.current.alternate,t.flags|=65536,i&=-i,t.lanes|=i,l=me(l,n),i=nr(t.stateNode,l,i),Hc(t,i),St!==4&&(St=2)),!1;var c=Error(f(520),{cause:l});if(c=me(c,n),Ba===null?Ba=[c]:Ba.push(c),St!==4&&(St=2),e===null)return!0;l=me(l,n),n=e;do{switch(n.tag){case 3:return n.flags|=65536,t=i&-i,n.lanes|=t,t=nr(n.stateNode,l,t),Hc(n,t),!1;case 1:if(e=n.type,c=n.stateNode,(n.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||c!==null&&typeof c.componentDidCatch=="function"&&(_n===null||!_n.has(c))))return n.flags|=65536,i&=-i,n.lanes|=i,i=ed(i),nd(i,t,n,l),Hc(n,i),!1}n=n.return}while(n!==null);return!1}var ld=Error(f(461)),Ut=!1;function Ht(t,e,n,l){e.child=t===null?Jo(e,null,n,l):Ul(e,t.child,n,l)}function ad(t,e,n,l,i){n=n.render;var c=e.ref;if("ref"in l){var o={};for(var h in l)h!=="ref"&&(o[h]=l[h])}else o=l;return Zn(e),l=Yc(t,e,n,o,c,i),h=Gc(),t!==null&&!Ut?(Xc(t,e,i),Ze(t,e,i)):(at&&h&&bc(e),e.flags|=1,Ht(t,e,l,i),e.child)}function ud(t,e,n,l,i){if(t===null){var c=n.type;return typeof c=="function"&&!vc(c)&&c.defaultProps===void 0&&n.compare===null?(e.tag=15,e.type=c,id(t,e,c,l,i)):(t=Tu(n.type,null,l,e,e.mode,i),t.ref=e.ref,t.return=e,e.child=t)}if(c=t.child,!sr(t,i)){var o=c.memoizedProps;if(n=n.compare,n=n!==null?n:sa,n(o,l)&&t.ref===e.ref)return Ze(t,e,i)}return e.flags|=1,t=je(c,l),t.ref=e.ref,t.return=e,e.child=t}function id(t,e,n,l,i){if(t!==null){var c=t.memoizedProps;if(sa(c,l)&&t.ref===e.ref)if(Ut=!1,e.pendingProps=l=c,sr(t,i))(t.flags&131072)!==0&&(Ut=!0);else return e.lanes=t.lanes,Ze(t,e,i)}return lr(t,e,n,l,i)}function cd(t,e,n){var l=e.pendingProps,i=l.children,c=t!==null?t.memoizedState:null;if(l.mode==="hidden"){if((e.flags&128)!==0){if(l=c!==null?c.baseLanes|n:n,t!==null){for(i=e.child=t.child,c=0;i!==null;)c=c|i.lanes|i.childLanes,i=i.sibling;e.childLanes=c&~l}else e.childLanes=0,e.child=null;return rd(t,e,l,n)}if((n&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},t!==null&&Mu(e,c!==null?c.cachePool:null),c!==null?uo(e,c):qc(),ko(e);else return e.lanes=e.childLanes=536870912,rd(t,e,c!==null?c.baseLanes|n:n,n)}else c!==null?(Mu(e,c.cachePool),uo(e,c),dn(),e.memoizedState=null):(t!==null&&Mu(e,null),qc(),dn());return Ht(t,e,i,n),e.child}function rd(t,e,n,l){var i=zc();return i=i===null?null:{parent:Mt._currentValue,pool:i},e.memoizedState={baseLanes:n,cachePool:i},t!==null&&Mu(e,null),qc(),ko(e),t!==null&&pa(t,e,l,!0),null}function Vu(t,e){var n=e.ref;if(n===null)t!==null&&t.ref!==null&&(e.flags|=4194816);else{if(typeof n!="function"&&typeof n!="object")throw Error(f(284));(t===null||t.ref!==n)&&(e.flags|=4194816)}}function lr(t,e,n,l,i){return Zn(e),n=Yc(t,e,n,l,void 0,i),l=Gc(),t!==null&&!Ut?(Xc(t,e,i),Ze(t,e,i)):(at&&l&&bc(e),e.flags|=1,Ht(t,e,n,i),e.child)}function fd(t,e,n,l,i,c){return Zn(e),e.updateQueue=null,n=co(e,l,n,i),io(t),l=Gc(),t!==null&&!Ut?(Xc(t,e,c),Ze(t,e,c)):(at&&l&&bc(e),e.flags|=1,Ht(t,e,n,c),e.child)}function sd(t,e,n,l,i){if(Zn(e),e.stateNode===null){var c=El,o=n.contextType;typeof o=="object"&&o!==null&&(c=Gt(o)),c=new n(l,c),e.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,c.updater=er,e.stateNode=c,c._reactInternals=e,c=e.stateNode,c.props=l,c.state=e.memoizedState,c.refs={},xc(e),o=n.contextType,c.context=typeof o=="object"&&o!==null?Gt(o):El,c.state=e.memoizedState,o=n.getDerivedStateFromProps,typeof o=="function"&&(tr(e,n,o,l),c.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(o=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),o!==c.state&&er.enqueueReplaceState(c,c.state,null),ba(e,l,c,i),Ea(),c.state=e.memoizedState),typeof c.componentDidMount=="function"&&(e.flags|=4194308),l=!0}else if(t===null){c=e.stateNode;var h=e.memoizedProps,p=Jn(n,h);c.props=p;var T=c.context,R=n.contextType;o=El,typeof R=="object"&&R!==null&&(o=Gt(R));var z=n.getDerivedStateFromProps;R=typeof z=="function"||typeof c.getSnapshotBeforeUpdate=="function",h=e.pendingProps!==h,R||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(h||T!==o)&&Fo(e,c,l,o),cn=!1;var A=e.memoizedState;c.state=A,ba(e,l,c,i),Ea(),T=e.memoizedState,h||A!==T||cn?(typeof z=="function"&&(tr(e,n,z,l),T=e.memoizedState),(p=cn||$o(e,n,p,l,A,T,o))?(R||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(e.flags|=4194308)):(typeof c.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=l,e.memoizedState=T),c.props=l,c.state=T,c.context=o,l=p):(typeof c.componentDidMount=="function"&&(e.flags|=4194308),l=!1)}else{c=e.stateNode,Cc(t,e),o=e.memoizedProps,R=Jn(n,o),c.props=R,z=e.pendingProps,A=c.context,T=n.contextType,p=El,typeof T=="object"&&T!==null&&(p=Gt(T)),h=n.getDerivedStateFromProps,(T=typeof h=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(o!==z||A!==p)&&Fo(e,c,l,p),cn=!1,A=e.memoizedState,c.state=A,ba(e,l,c,i),Ea();var O=e.memoizedState;o!==z||A!==O||cn||t!==null&&t.dependencies!==null&&Du(t.dependencies)?(typeof h=="function"&&(tr(e,n,h,l),O=e.memoizedState),(R=cn||$o(e,n,R,l,A,O,p)||t!==null&&t.dependencies!==null&&Du(t.dependencies))?(T||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(l,O,p),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(l,O,p)),typeof c.componentDidUpdate=="function"&&(e.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof c.componentDidUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=1024),e.memoizedProps=l,e.memoizedState=O),c.props=l,c.state=O,c.context=p,l=R):(typeof c.componentDidUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||o===t.memoizedProps&&A===t.memoizedState||(e.flags|=1024),l=!1)}return c=l,Vu(t,e),l=(e.flags&128)!==0,c||l?(c=e.stateNode,n=l&&typeof n.getDerivedStateFromError!="function"?null:c.render(),e.flags|=1,t!==null&&l?(e.child=Ul(e,t.child,null,i),e.child=Ul(e,null,n,i)):Ht(t,e,n,i),e.memoizedState=c.state,t=e.child):t=Ze(t,e,i),t}function od(t,e,n,l){return ha(),e.flags|=256,Ht(t,e,n,l),e.child}var ar={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function ur(t){return{baseLanes:t,cachePool:Ws()}}function ir(t,e,n){return t=t!==null?t.childLanes&~n:0,e&&(t|=ve),t}function dd(t,e,n){var l=e.pendingProps,i=!1,c=(e.flags&128)!==0,o;if((o=c)||(o=t!==null&&t.memoizedState===null?!1:(Nt.current&2)!==0),o&&(i=!0,e.flags&=-129),o=(e.flags&32)!==0,e.flags&=-33,t===null){if(at){if(i?on(e):dn(),at){var h=vt,p;if(p=h){t:{for(p=h,h=Ne;p.nodeType!==8;){if(!h){h=null;break t}if(p=Oe(p.nextSibling),p===null){h=null;break t}}h=p}h!==null?(e.memoizedState={dehydrated:h,treeContext:Yn!==null?{id:Le,overflow:Ye}:null,retryLane:536870912,hydrationErrors:null},p=ae(18,null,null,0),p.stateNode=h,p.return=e,e.child=p,Qt=e,vt=null,p=!0):p=!1}p||Qn(e)}if(h=e.memoizedState,h!==null&&(h=h.dehydrated,h!==null))return wr(h)?e.lanes=32:e.lanes=536870912,null;we(e)}return h=l.children,l=l.fallback,i?(dn(),i=e.mode,h=Ku({mode:"hidden",children:h},i),l=Ln(l,i,n,null),h.return=e,l.return=e,h.sibling=l,e.child=h,i=e.child,i.memoizedState=ur(n),i.childLanes=ir(t,o,n),e.memoizedState=ar,l):(on(e),cr(e,h))}if(p=t.memoizedState,p!==null&&(h=p.dehydrated,h!==null)){if(c)e.flags&256?(on(e),e.flags&=-257,e=rr(t,e,n)):e.memoizedState!==null?(dn(),e.child=t.child,e.flags|=128,e=null):(dn(),i=l.fallback,h=e.mode,l=Ku({mode:"visible",children:l.children},h),i=Ln(i,h,n,null),i.flags|=2,l.return=e,i.return=e,l.sibling=i,e.child=l,Ul(e,t.child,null,n),l=e.child,l.memoizedState=ur(n),l.childLanes=ir(t,o,n),e.memoizedState=ar,e=i);else if(on(e),wr(h)){if(o=h.nextSibling&&h.nextSibling.dataset,o)var T=o.dgst;o=T,l=Error(f(419)),l.stack="",l.digest=o,ma({value:l,source:null,stack:null}),e=rr(t,e,n)}else if(Ut||pa(t,e,n,!1),o=(n&t.childLanes)!==0,Ut||o){if(o=pt,o!==null&&(l=n&-n,l=(l&42)!==0?1:Zi(l),l=(l&(o.suspendedLanes|n))!==0?0:l,l!==0&&l!==p.retryLane))throw p.retryLane=l,Sl(t,l),fe(o,t,l),ld;h.data==="$?"||Dr(),e=rr(t,e,n)}else h.data==="$?"?(e.flags|=192,e.child=t.child,e=null):(t=p.treeContext,vt=Oe(h.nextSibling),Qt=e,at=!0,Xn=null,Ne=!1,t!==null&&(ye[ge++]=Le,ye[ge++]=Ye,ye[ge++]=Yn,Le=t.id,Ye=t.overflow,Yn=e),e=cr(e,l.children),e.flags|=4096);return e}return i?(dn(),i=l.fallback,h=e.mode,p=t.child,T=p.sibling,l=je(p,{mode:"hidden",children:l.children}),l.subtreeFlags=p.subtreeFlags&65011712,T!==null?i=je(T,i):(i=Ln(i,h,n,null),i.flags|=2),i.return=e,l.return=e,l.sibling=i,e.child=l,l=i,i=e.child,h=t.child.memoizedState,h===null?h=ur(n):(p=h.cachePool,p!==null?(T=Mt._currentValue,p=p.parent!==T?{parent:T,pool:T}:p):p=Ws(),h={baseLanes:h.baseLanes|n,cachePool:p}),i.memoizedState=h,i.childLanes=ir(t,o,n),e.memoizedState=ar,l):(on(e),n=t.child,t=n.sibling,n=je(n,{mode:"visible",children:l.children}),n.return=e,n.sibling=null,t!==null&&(o=e.deletions,o===null?(e.deletions=[t],e.flags|=16):o.push(t)),e.child=n,e.memoizedState=null,n)}function cr(t,e){return e=Ku({mode:"visible",children:e},t.mode),e.return=t,t.child=e}function Ku(t,e){return t=ae(22,t,null,e),t.lanes=0,t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},t}function rr(t,e,n){return Ul(e,t.child,null,n),t=cr(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function hd(t,e,n){t.lanes|=e;var l=t.alternate;l!==null&&(l.lanes|=e),Dc(t.return,e,n)}function fr(t,e,n,l,i){var c=t.memoizedState;c===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:l,tail:n,tailMode:i}:(c.isBackwards=e,c.rendering=null,c.renderingStartTime=0,c.last=l,c.tail=n,c.tailMode=i)}function md(t,e,n){var l=e.pendingProps,i=l.revealOrder,c=l.tail;if(Ht(t,e,l.children,n),l=Nt.current,(l&2)!==0)l=l&1|2,e.flags|=128;else{if(t!==null&&(t.flags&128)!==0)t:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&hd(t,n,e);else if(t.tag===19)hd(t,n,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break t;for(;t.sibling===null;){if(t.return===null||t.return===e)break t;t=t.return}t.sibling.return=t.return,t=t.sibling}l&=1}switch(C(Nt,l),i){case"forwards":for(n=e.child,i=null;n!==null;)t=n.alternate,t!==null&&Qu(t)===null&&(i=n),n=n.sibling;n=i,n===null?(i=e.child,e.child=null):(i=n.sibling,n.sibling=null),fr(e,!1,i,n,c);break;case"backwards":for(n=null,i=e.child,e.child=null;i!==null;){if(t=i.alternate,t!==null&&Qu(t)===null){e.child=i;break}t=i.sibling,i.sibling=n,n=i,i=t}fr(e,!0,n,null,c);break;case"together":fr(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function Ze(t,e,n){if(t!==null&&(e.dependencies=t.dependencies),gn|=e.lanes,(n&e.childLanes)===0)if(t!==null){if(pa(t,e,n,!1),(n&e.childLanes)===0)return null}else return null;if(t!==null&&e.child!==t.child)throw Error(f(153));if(e.child!==null){for(t=e.child,n=je(t,t.pendingProps),e.child=n,n.return=e;t.sibling!==null;)t=t.sibling,n=n.sibling=je(t,t.pendingProps),n.return=e;n.sibling=null}return e.child}function sr(t,e){return(t.lanes&e)!==0?!0:(t=t.dependencies,!!(t!==null&&Du(t)))}function Qy(t,e,n){switch(e.tag){case 3:yt(e,e.stateNode.containerInfo),un(e,Mt,t.memoizedState.cache),ha();break;case 27:case 5:Yi(e);break;case 4:yt(e,e.stateNode.containerInfo);break;case 10:un(e,e.type,e.memoizedProps.value);break;case 13:var l=e.memoizedState;if(l!==null)return l.dehydrated!==null?(on(e),e.flags|=128,null):(n&e.child.childLanes)!==0?dd(t,e,n):(on(e),t=Ze(t,e,n),t!==null?t.sibling:null);on(e);break;case 19:var i=(t.flags&128)!==0;if(l=(n&e.childLanes)!==0,l||(pa(t,e,n,!1),l=(n&e.childLanes)!==0),i){if(l)return md(t,e,n);e.flags|=128}if(i=e.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),C(Nt,Nt.current),l)break;return null;case 22:case 23:return e.lanes=0,cd(t,e,n);case 24:un(e,Mt,t.memoizedState.cache)}return Ze(t,e,n)}function pd(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps)Ut=!0;else{if(!sr(t,n)&&(e.flags&128)===0)return Ut=!1,Qy(t,e,n);Ut=(t.flags&131072)!==0}else Ut=!1,at&&(e.flags&1048576)!==0&&Zs(e,Ou,e.index);switch(e.lanes=0,e.tag){case 16:t:{t=e.pendingProps;var l=e.elementType,i=l._init;if(l=i(l._payload),e.type=l,typeof l=="function")vc(l)?(t=Jn(l,t),e.tag=1,e=sd(null,e,l,t,n)):(e.tag=0,e=lr(null,e,l,t,n));else{if(l!=null){if(i=l.$$typeof,i===be){e.tag=11,e=ad(null,e,l,t,n);break t}else if(i===It){e.tag=14,e=ud(null,e,l,t,n);break t}}throw e=xn(l)||l,Error(f(306,e,""))}}return e;case 0:return lr(t,e,e.type,e.pendingProps,n);case 1:return l=e.type,i=Jn(l,e.pendingProps),sd(t,e,l,i,n);case 3:t:{if(yt(e,e.stateNode.containerInfo),t===null)throw Error(f(387));l=e.pendingProps;var c=e.memoizedState;i=c.element,Cc(t,e),ba(e,l,null,n);var o=e.memoizedState;if(l=o.cache,un(e,Mt,l),l!==c.cache&&Rc(e,[Mt],n,!0),Ea(),l=o.element,c.isDehydrated)if(c={element:l,isDehydrated:!1,cache:o.cache},e.updateQueue.baseState=c,e.memoizedState=c,e.flags&256){e=od(t,e,l,n);break t}else if(l!==i){i=me(Error(f(424)),e),ma(i),e=od(t,e,l,n);break t}else{switch(t=e.stateNode.containerInfo,t.nodeType){case 9:t=t.body;break;default:t=t.nodeName==="HTML"?t.ownerDocument.body:t}for(vt=Oe(t.firstChild),Qt=e,at=!0,Xn=null,Ne=!0,n=Jo(e,null,l,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(ha(),l===i){e=Ze(t,e,n);break t}Ht(t,e,l,n)}e=e.child}return e;case 26:return Vu(t,e),t===null?(n=vh(e.type,null,e.pendingProps,null))?e.memoizedState=n:at||(n=e.type,t=e.pendingProps,l=ii(K.current).createElement(n),l[Yt]=e,l[Zt]=t,qt(l,n,t),zt(l),e.stateNode=l):e.memoizedState=vh(e.type,t.memoizedProps,e.pendingProps,t.memoizedState),null;case 27:return Yi(e),t===null&&at&&(l=e.stateNode=yh(e.type,e.pendingProps,K.current),Qt=e,Ne=!0,i=vt,En(e.type)?(Zr=i,vt=Oe(l.firstChild)):vt=i),Ht(t,e,e.pendingProps.children,n),Vu(t,e),t===null&&(e.flags|=4194304),e.child;case 5:return t===null&&at&&((i=l=vt)&&(l=yg(l,e.type,e.pendingProps,Ne),l!==null?(e.stateNode=l,Qt=e,vt=Oe(l.firstChild),Ne=!1,i=!0):i=!1),i||Qn(e)),Yi(e),i=e.type,c=e.pendingProps,o=t!==null?t.memoizedProps:null,l=c.children,Gr(i,c)?l=null:o!==null&&Gr(i,o)&&(e.flags|=32),e.memoizedState!==null&&(i=Yc(t,e,Hy,null,null,n),Za._currentValue=i),Vu(t,e),Ht(t,e,l,n),e.child;case 6:return t===null&&at&&((t=n=vt)&&(n=gg(n,e.pendingProps,Ne),n!==null?(e.stateNode=n,Qt=e,vt=null,t=!0):t=!1),t||Qn(e)),null;case 13:return dd(t,e,n);case 4:return yt(e,e.stateNode.containerInfo),l=e.pendingProps,t===null?e.child=Ul(e,null,l,n):Ht(t,e,l,n),e.child;case 11:return ad(t,e,e.type,e.pendingProps,n);case 7:return Ht(t,e,e.pendingProps,n),e.child;case 8:return Ht(t,e,e.pendingProps.children,n),e.child;case 12:return Ht(t,e,e.pendingProps.children,n),e.child;case 10:return l=e.pendingProps,un(e,e.type,l.value),Ht(t,e,l.children,n),e.child;case 9:return i=e.type._context,l=e.pendingProps.children,Zn(e),i=Gt(i),l=l(i),e.flags|=1,Ht(t,e,l,n),e.child;case 14:return ud(t,e,e.type,e.pendingProps,n);case 15:return id(t,e,e.type,e.pendingProps,n);case 19:return md(t,e,n);case 31:return l=e.pendingProps,n=e.mode,l={mode:l.mode,children:l.children},t===null?(n=Ku(l,n),n.ref=e.ref,e.child=n,n.return=e,e=n):(n=je(t.child,l),n.ref=e.ref,e.child=n,n.return=e,e=n),e;case 22:return cd(t,e,n);case 24:return Zn(e),l=Gt(Mt),t===null?(i=zc(),i===null&&(i=pt,c=Mc(),i.pooledCache=c,c.refCount++,c!==null&&(i.pooledCacheLanes|=n),i=c),e.memoizedState={parent:l,cache:i},xc(e),un(e,Mt,i)):((t.lanes&n)!==0&&(Cc(t,e),ba(e,null,null,n),Ea()),i=t.memoizedState,c=e.memoizedState,i.parent!==l?(i={parent:l,cache:l},e.memoizedState=i,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=i),un(e,Mt,l)):(l=c.cache,un(e,Mt,l),l!==i.cache&&Rc(e,[Mt],n,!0))),Ht(t,e,e.pendingProps.children,n),e.child;case 29:throw e.pendingProps}throw Error(f(156,e.tag))}function Ve(t){t.flags|=4}function yd(t,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!Ah(e)){if(e=_e.current,e!==null&&((P&4194048)===P?ze!==null:(P&62914560)!==P&&(P&536870912)===0||e!==ze))throw va=Uc,Is;t.flags|=8192}}function Ju(t,e){e!==null&&(t.flags|=4),t.flags&16384&&(e=t.tag!==22?Jf():536870912,t.lanes|=e,Bl|=e)}function Na(t,e){if(!at)switch(t.tailMode){case"hidden":e=t.tail;for(var n=null;e!==null;)e.alternate!==null&&(n=e),e=e.sibling;n===null?t.tail=null:n.sibling=null;break;case"collapsed":n=t.tail;for(var l=null;n!==null;)n.alternate!==null&&(l=n),n=n.sibling;l===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:l.sibling=null}}function _t(t){var e=t.alternate!==null&&t.alternate.child===t.child,n=0,l=0;if(e)for(var i=t.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags&65011712,l|=i.flags&65011712,i.return=t,i=i.sibling;else for(i=t.child;i!==null;)n|=i.lanes|i.childLanes,l|=i.subtreeFlags,l|=i.flags,i.return=t,i=i.sibling;return t.subtreeFlags|=l,t.childLanes=n,e}function wy(t,e,n){var l=e.pendingProps;switch(Tc(e),e.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return _t(e),null;case 1:return _t(e),null;case 3:return n=e.stateNode,l=null,t!==null&&(l=t.memoizedState.cache),e.memoizedState.cache!==l&&(e.flags|=2048),Xe(Mt),en(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(t===null||t.child===null)&&(da(e)?Ve(e):t===null||t.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,Js())),_t(e),null;case 26:return n=e.memoizedState,t===null?(Ve(e),n!==null?(_t(e),yd(e,n)):(_t(e),e.flags&=-16777217)):n?n!==t.memoizedState?(Ve(e),_t(e),yd(e,n)):(_t(e),e.flags&=-16777217):(t.memoizedProps!==l&&Ve(e),_t(e),e.flags&=-16777217),null;case 27:au(e),n=K.current;var i=e.type;if(t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Ve(e);else{if(!l){if(e.stateNode===null)throw Error(f(166));return _t(e),null}t=G.current,da(e)?Vs(e):(t=yh(i,l,n),e.stateNode=t,Ve(e))}return _t(e),null;case 5:if(au(e),n=e.type,t!==null&&e.stateNode!=null)t.memoizedProps!==l&&Ve(e);else{if(!l){if(e.stateNode===null)throw Error(f(166));return _t(e),null}if(t=G.current,da(e))Vs(e);else{switch(i=ii(K.current),t){case 1:t=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:t=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":t=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":t=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":t=i.createElement("div"),t.innerHTML=" -
diff --git a/dist/index.js b/dist/index.js index a1bf430..f4acc98 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,4 +1,4 @@ -(function(){const K=document.createElement("link").relList;if(K&&K.supports&&K.supports("modulepreload"))return;for(const x of document.querySelectorAll('link[rel="modulepreload"]'))r(x);new MutationObserver(x=>{for(const L of x)if(L.type==="childList")for(const nl of L.addedNodes)nl.tagName==="LINK"&&nl.rel==="modulepreload"&&r(nl)}).observe(document,{childList:!0,subtree:!0});function Q(x){const L={};return x.integrity&&(L.integrity=x.integrity),x.referrerPolicy&&(L.referrerPolicy=x.referrerPolicy),x.crossOrigin==="use-credentials"?L.credentials="include":x.crossOrigin==="anonymous"?L.credentials="omit":L.credentials="same-origin",L}function r(x){if(x.ep)return;x.ep=!0;const L=Q(x);fetch(x.href,L)}})();function Dh(_){return _&&_.__esModule&&Object.prototype.hasOwnProperty.call(_,"default")?_.default:_}var $c={exports:{}},re={};/** +(function(){const yl=document.createElement("link").relList;if(yl&&yl.supports&&yl.supports("modulepreload"))return;for(const x of document.querySelectorAll('link[rel="modulepreload"]'))S(x);new MutationObserver(x=>{for(const w of x)if(w.type==="childList")for(const dl of w.addedNodes)dl.tagName==="LINK"&&dl.rel==="modulepreload"&&S(dl)}).observe(document,{childList:!0,subtree:!0});function F(x){const w={};return x.integrity&&(w.integrity=x.integrity),x.referrerPolicy&&(w.referrerPolicy=x.referrerPolicy),x.crossOrigin==="use-credentials"?w.credentials="include":x.crossOrigin==="anonymous"?w.credentials="omit":w.credentials="same-origin",w}function S(x){if(x.ep)return;x.ep=!0;const w=F(x);fetch(x.href,w)}})();function _d(M){return M&&M.__esModule&&Object.prototype.hasOwnProperty.call(M,"default")?M.default:M}var Wc={exports:{}},oe={};/** * @license React * react-jsx-runtime.production.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var $v;function Uh(){if($v)return re;$v=1;var _=Symbol.for("react.transitional.element"),K=Symbol.for("react.fragment");function Q(r,x,L){var nl=null;if(L!==void 0&&(nl=""+L),x.key!==void 0&&(nl=""+x.key),"key"in x){L={};for(var Sl in x)Sl!=="key"&&(L[Sl]=x[Sl])}else L=x;return x=L.ref,{$$typeof:_,type:r,key:nl,ref:x!==void 0?x:null,props:L}}return re.Fragment=K,re.jsx=Q,re.jsxs=Q,re}var kv;function Rh(){return kv||(kv=1,$c.exports=Uh()),$c.exports}var F=Rh(),kc={exports:{}},X={};/** + */var wv;function Md(){if(wv)return oe;wv=1;var M=Symbol.for("react.transitional.element"),yl=Symbol.for("react.fragment");function F(S,x,w){var dl=null;if(w!==void 0&&(dl=""+w),x.key!==void 0&&(dl=""+x.key),"key"in x){w={};for(var ql in x)ql!=="key"&&(w[ql]=x[ql])}else w=x;return x=w.ref,{$$typeof:M,type:S,key:dl,ref:x!==void 0?x:null,props:w}}return oe.Fragment=yl,oe.jsx=F,oe.jsxs=F,oe}var Wv;function Dd(){return Wv||(Wv=1,Wc.exports=Md()),Wc.exports}var Ud=Dd(),$c={exports:{}},X={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Fv;function Nh(){if(Fv)return X;Fv=1;var _=Symbol.for("react.transitional.element"),K=Symbol.for("react.portal"),Q=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),L=Symbol.for("react.consumer"),nl=Symbol.for("react.context"),Sl=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),il=Symbol.iterator;function fl(s){return s===null||typeof s!="object"?null:(s=il&&s[il]||s["@@iterator"],typeof s=="function"?s:null)}var Yl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Bl=Object.assign,dt={};function Gl(s,E,M){this.props=s,this.context=E,this.refs=dt,this.updater=M||Yl}Gl.prototype.isReactComponent={},Gl.prototype.setState=function(s,E){if(typeof s!="object"&&typeof s!="function"&&s!=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,s,E,"setState")},Gl.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function du(){}du.prototype=Gl.prototype;function zt(s,E,M){this.props=s,this.context=E,this.refs=dt,this.updater=M||Yl}var Ul=zt.prototype=new du;Ul.constructor=zt,Bl(Ul,Gl.prototype),Ul.isPureReactComponent=!0;var yt=Array.isArray,w={H:null,A:null,T:null,S:null,V:null},Vl=Object.prototype.hasOwnProperty;function Ll(s,E,M,z,H,W){return M=W.ref,{$$typeof:_,type:s,key:E,ref:M!==void 0?M:null,props:W}}function Kl(s,E){return Ll(s.type,E,void 0,void 0,void 0,s.props)}function mt(s){return typeof s=="object"&&s!==null&&s.$$typeof===_}function qu(s){var E={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(M){return E[M]})}var Ot=/\/+/g;function Rl(s,E){return typeof s=="object"&&s!==null&&s.key!=null?qu(""+s.key):E.toString(36)}function yu(){}function hu(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(yu,yu):(s.status="pending",s.then(function(E){s.status==="pending"&&(s.status="fulfilled",s.value=E)},function(E){s.status==="pending"&&(s.status="rejected",s.reason=E)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function Nl(s,E,M,z,H){var W=typeof s;(W==="undefined"||W==="boolean")&&(s=null);var G=!1;if(s===null)G=!0;else switch(W){case"bigint":case"string":case"number":G=!0;break;case"object":switch(s.$$typeof){case _:case K:G=!0;break;case R:return G=s._init,Nl(G(s._payload),E,M,z,H)}}if(G)return H=H(s),G=z===""?"."+Rl(s,0):z,yt(H)?(M="",G!=null&&(M=G.replace(Ot,"$&/")+"/"),Nl(H,E,M,"",function(Qt){return Qt})):H!=null&&(mt(H)&&(H=Kl(H,M+(H.key==null||s&&s.key===H.key?"":(""+H.key).replace(Ot,"$&/")+"/")+G)),E.push(H)),1;G=0;var Jl=z===""?".":z+":";if(yt(s))for(var sl=0;sl>>1,s=S[al];if(0>>1;alx(z,Y))Hx(W,z)?(S[al]=W,S[H]=Y,al=H):(S[al]=z,S[M]=Y,al=M);else if(Hx(W,Y))S[al]=W,S[H]=Y,al=H;else break l}}return O}function x(S,O){var Y=S.sortIndex-O.sortIndex;return Y!==0?Y:S.id-O.id}if(_.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var L=performance;_.unstable_now=function(){return L.now()}}else{var nl=Date,Sl=nl.now();_.unstable_now=function(){return nl.now()-Sl}}var N=[],A=[],R=1,il=null,fl=3,Yl=!1,Bl=!1,dt=!1,Gl=!1,du=typeof setTimeout=="function"?setTimeout:null,zt=typeof clearTimeout=="function"?clearTimeout:null,Ul=typeof setImmediate<"u"?setImmediate:null;function yt(S){for(var O=Q(A);O!==null;){if(O.callback===null)r(A);else if(O.startTime<=S)r(A),O.sortIndex=O.expirationTime,K(N,O);else break;O=Q(A)}}function w(S){if(dt=!1,yt(S),!Bl)if(Q(N)!==null)Bl=!0,Vl||(Vl=!0,Rl());else{var O=Q(A);O!==null&&Nl(w,O.startTime-S)}}var Vl=!1,Ll=-1,Kl=5,mt=-1;function qu(){return Gl?!0:!(_.unstable_now()-mtS&&qu());){var al=il.callback;if(typeof al=="function"){il.callback=null,fl=il.priorityLevel;var s=al(il.expirationTime<=S);if(S=_.unstable_now(),typeof s=="function"){il.callback=s,yt(S),O=!0;break t}il===Q(N)&&r(N),yt(S)}else r(N);il=Q(N)}if(il!==null)O=!0;else{var E=Q(A);E!==null&&Nl(w,E.startTime-S),O=!1}}break l}finally{il=null,fl=Y,Yl=!1}O=void 0}}finally{O?Rl():Vl=!1}}}var Rl;if(typeof Ul=="function")Rl=function(){Ul(Ot)};else if(typeof MessageChannel<"u"){var yu=new MessageChannel,hu=yu.port2;yu.port1.onmessage=Ot,Rl=function(){hu.postMessage(null)}}else Rl=function(){du(Ot,0)};function Nl(S,O){Ll=du(function(){S(_.unstable_now())},O)}_.unstable_IdlePriority=5,_.unstable_ImmediatePriority=1,_.unstable_LowPriority=4,_.unstable_NormalPriority=3,_.unstable_Profiling=null,_.unstable_UserBlockingPriority=2,_.unstable_cancelCallback=function(S){S.callback=null},_.unstable_forceFrameRate=function(S){0>S||125al?(S.sortIndex=Y,K(A,S),Q(N)===null&&S===Q(A)&&(dt?(zt(Ll),Ll=-1):dt=!0,Nl(w,Y-al))):(S.sortIndex=s,K(N,S),Bl||Yl||(Bl=!0,Vl||(Vl=!0,Rl()))),S},_.unstable_shouldYield=qu,_.unstable_wrapCallback=function(S){var O=fl;return function(){var Y=fl;fl=O;try{return S.apply(this,arguments)}finally{fl=Y}}}}(Pc)),Pc}var ld;function ph(){return ld||(ld=1,Ic.exports=qh()),Ic.exports}var li={exports:{}},pl={};/** + */var Fv;function Hd(){return Fv||(Fv=1,function(M){function yl(g,O){var B=g.length;g.push(O);l:for(;0>>1,s=g[tl];if(0>>1;tlx(z,B))Nx(K,z)?(g[tl]=K,g[N]=B,tl=N):(g[tl]=z,g[_]=B,tl=_);else if(Nx(K,B))g[tl]=K,g[N]=B,tl=N;else break l}}return O}function x(g,O){var B=g.sortIndex-O.sortIndex;return B!==0?B:g.id-O.id}if(M.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var w=performance;M.unstable_now=function(){return w.now()}}else{var dl=Date,ql=dl.now();M.unstable_now=function(){return dl.now()-ql}}var H=[],A=[],R=1,nl=null,al=3,Yl=!1,Bl=!1,vt=!1,Gl=!1,vu=typeof setTimeout=="function"?setTimeout:null,At=typeof clearTimeout=="function"?clearTimeout:null,Ml=typeof setImmediate<"u"?setImmediate:null;function yt(g){for(var O=F(A);O!==null;){if(O.callback===null)S(A);else if(O.startTime<=g)S(A),O.sortIndex=O.expirationTime,yl(H,O);else break;O=F(A)}}function L(g){if(vt=!1,yt(g),!Bl)if(F(H)!==null)Bl=!0,Cl||(Cl=!0,Dl());else{var O=F(A);O!==null&&Ul(L,O.startTime-g)}}var Cl=!1,Vl=-1,Ll=5,mt=-1;function Nu(){return Gl?!0:!(M.unstable_now()-mtg&&Nu());){var tl=nl.callback;if(typeof tl=="function"){nl.callback=null,al=nl.priorityLevel;var s=tl(nl.expirationTime<=g);if(g=M.unstable_now(),typeof s=="function"){nl.callback=s,yt(g),O=!0;break t}nl===F(H)&&S(H),yt(g)}else S(H);nl=F(H)}if(nl!==null)O=!0;else{var E=F(A);E!==null&&Ul(L,E.startTime-g),O=!1}}break l}finally{nl=null,al=B,Yl=!1}O=void 0}}finally{O?Dl():Cl=!1}}}var Dl;if(typeof Ml=="function")Dl=function(){Ml(zt)};else if(typeof MessageChannel<"u"){var yu=new MessageChannel,du=yu.port2;yu.port1.onmessage=zt,Dl=function(){du.postMessage(null)}}else Dl=function(){vu(zt,0)};function Ul(g,O){Vl=vu(function(){g(M.unstable_now())},O)}M.unstable_IdlePriority=5,M.unstable_ImmediatePriority=1,M.unstable_LowPriority=4,M.unstable_NormalPriority=3,M.unstable_Profiling=null,M.unstable_UserBlockingPriority=2,M.unstable_cancelCallback=function(g){g.callback=null},M.unstable_forceFrameRate=function(g){0>g||125tl?(g.sortIndex=B,yl(A,g),F(H)===null&&g===F(A)&&(vt?(At(Vl),Vl=-1):vt=!0,Ul(L,B-tl))):(g.sortIndex=s,yl(H,g),Bl||Yl||(Bl=!0,Cl||(Cl=!0,Dl()))),g},M.unstable_shouldYield=Nu,M.unstable_wrapCallback=function(g){var O=al;return function(){var B=al;al=O;try{return g.apply(this,arguments)}finally{al=B}}}}(Ic)),Ic}var Iv;function Nd(){return Iv||(Iv=1,Fc.exports=Hd()),Fc.exports}var Pc={exports:{}},Nl={};/** * @license React * react-dom.production.js * @@ -30,7 +30,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var td;function Yh(){if(td)return pl;td=1;var _=ui();function K(N){var A="https://react.dev/errors/"+N;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(K){console.error(K)}}return _(),li.exports=Yh(),li.exports}/** + */var Pv;function qd(){if(Pv)return Nl;Pv=1;var M=li();function yl(H){var A="https://react.dev/errors/"+H;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(M)}catch(yl){console.error(yl)}}return M(),Pc.exports=qd(),Pc.exports}/** * @license React * react-dom-client.production.js * @@ -38,13 +38,13 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ad;function xh(){if(ad)return me;ad=1;var _=ph(),K=ui(),Q=Bh();function r(l){var t="https://react.dev/errors/"+l;if(1s||(l.current=al[s],al[s]=null,s--)}function z(l,t){s++,al[s]=l.current,l.current=t}var H=E(null),W=E(null),G=E(null),Jl=E(null);function sl(l,t){switch(z(G,t),z(W,l),z(H,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?zv(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=zv(t),l=Ov(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}M(H),z(H,l)}function Qt(){M(H),M(W),M(G)}function pn(l){l.memoizedState!==null&&z(Jl,l);var t=H.current,u=Ov(t,l.type);t!==u&&(z(W,l),z(H,u))}function ge(l){W.current===l&&(M(H),M(W)),Jl.current===l&&(M(Jl),ve._currentValue=Y)}var Yn=Object.prototype.hasOwnProperty,Bn=_.unstable_scheduleCallback,xn=_.unstable_cancelCallback,nd=_.unstable_shouldYield,fd=_.unstable_requestPaint,gt=_.unstable_now,cd=_.unstable_getCurrentPriorityLevel,ai=_.unstable_ImmediatePriority,ei=_.unstable_UserBlockingPriority,Se=_.unstable_NormalPriority,id=_.unstable_LowPriority,ni=_.unstable_IdlePriority,sd=_.log,vd=_.unstable_setDisableYieldValue,Sa=null,wl=null;function Zt(l){if(typeof sd=="function"&&vd(l),wl&&typeof wl.setStrictMode=="function")try{wl.setStrictMode(Sa,l)}catch{}}var Wl=Math.clz32?Math.clz32:hd,dd=Math.log,yd=Math.LN2;function hd(l){return l>>>=0,l===0?32:31-(dd(l)/yd|0)|0}var be=256,Te=4194304;function ou(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Ee(l,t,u){var a=l.pendingLanes;if(a===0)return 0;var e=0,n=l.suspendedLanes,f=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?e=ou(a):(f&=c,f!==0?e=ou(f):u||(u=c&~l,u!==0&&(e=ou(u))))):(c=a&~n,c!==0?e=ou(c):f!==0?e=ou(f):u||(u=a&~l,u!==0&&(e=ou(u)))),e===0?0:t!==0&&t!==e&&(t&n)===0&&(n=e&-e,u=t&-t,n>=u||n===32&&(u&4194048)!==0)?t:e}function ba(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function od(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function fi(){var l=be;return be<<=1,(be&4194048)===0&&(be=256),l}function ci(){var l=Te;return Te<<=1,(Te&62914560)===0&&(Te=4194304),l}function Gn(l){for(var t=[],u=0;31>u;u++)t.push(l);return t}function Ta(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function rd(l,t,u,a,e,n){var f=l.pendingLanes;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=u,l.entangledLanes&=u,l.errorRecoveryDisabledLanes&=u,l.shellSuspendCounter=0;var c=l.entanglements,i=l.expirationTimes,h=l.hiddenUpdates;for(u=f&~u;0s||(l.current=tl[s],tl[s]=null,s--)}function z(l,t){s++,tl[s]=l.current,l.current=t}var N=E(null),K=E(null),G=E(null),Kl=E(null);function fl(l,t){switch(z(G,t),z(K,l),z(N,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Ev(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Ev(t),l=Av(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}_(N),z(N,l)}function Zt(){_(N),_(K),_(G)}function qn(l){l.memoizedState!==null&&z(Kl,l);var t=N.current,u=Av(t,l.type);t!==u&&(z(K,l),z(N,u))}function Se(l){K.current===l&&(_(N),_(K)),Kl.current===l&&(_(Kl),se._currentValue=B)}var Yn=Object.prototype.hasOwnProperty,Bn=M.unstable_scheduleCallback,pn=M.unstable_cancelCallback,ay=M.unstable_shouldYield,ey=M.unstable_requestPaint,St=M.unstable_now,ny=M.unstable_getCurrentPriorityLevel,ti=M.unstable_ImmediatePriority,ui=M.unstable_UserBlockingPriority,re=M.unstable_NormalPriority,fy=M.unstable_LowPriority,ai=M.unstable_IdlePriority,cy=M.log,iy=M.unstable_setDisableYieldValue,ra=null,Jl=null;function xt(l){if(typeof cy=="function"&&iy(l),Jl&&typeof Jl.setStrictMode=="function")try{Jl.setStrictMode(ra,l)}catch{}}var wl=Math.clz32?Math.clz32:yy,sy=Math.log,vy=Math.LN2;function yy(l){return l>>>=0,l===0?32:31-(sy(l)/vy|0)|0}var ge=256,be=4194304;function hu(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Te(l,t,u){var a=l.pendingLanes;if(a===0)return 0;var e=0,n=l.suspendedLanes,f=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?e=hu(a):(f&=c,f!==0?e=hu(f):u||(u=c&~l,u!==0&&(e=hu(u))))):(c=a&~n,c!==0?e=hu(c):f!==0?e=hu(f):u||(u=a&~l,u!==0&&(e=hu(u)))),e===0?0:t!==0&&t!==e&&(t&n)===0&&(n=e&-e,u=t&-t,n>=u||n===32&&(u&4194048)!==0)?t:e}function ga(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function dy(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ei(){var l=ge;return ge<<=1,(ge&4194048)===0&&(ge=256),l}function ni(){var l=be;return be<<=1,(be&62914560)===0&&(be=4194304),l}function Gn(l){for(var t=[],u=0;31>u;u++)t.push(l);return t}function ba(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function hy(l,t,u,a,e,n){var f=l.pendingLanes;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=u,l.entangledLanes&=u,l.errorRecoveryDisabledLanes&=u,l.shellSuspendCounter=0;var c=l.entanglements,i=l.expirationTimes,h=l.hiddenUpdates;for(u=f&~u;0)":-1e||i[a]!==h[e]){var g=` -`+i[a].replace(" at new "," at ");return l.displayName&&g.includes("")&&(g=g.replace("",l.displayName)),g}while(1<=a&&0<=e);break}}}finally{Vn=!1,Error.prepareStackTrace=u}return(u=l?l.displayName||l.name:"")?Xu(u):""}function Ed(l){switch(l.tag){case 26:case 27:case 5:return Xu(l.type);case 16:return Xu("Lazy");case 13:return Xu("Suspense");case 19:return Xu("SuspenseList");case 0:case 15:return Ln(l.type,!1);case 11:return Ln(l.type.render,!1);case 1:return Ln(l.type,!0);case 31:return Xu("Activity");default:return""}}function gi(l){try{var t="";do t+=Ed(l),l=l.return;while(l);return t}catch(u){return` +`);for(e=a=0;ae||i[a]!==h[e]){var r=` +`+i[a].replace(" at new "," at ");return l.displayName&&r.includes("")&&(r=r.replace("",l.displayName)),r}while(1<=a&&0<=e);break}}}finally{Cn=!1,Error.prepareStackTrace=u}return(u=l?l.displayName||l.name:"")?Xu(u):""}function by(l){switch(l.tag){case 26:case 27:case 5:return Xu(l.type);case 16:return Xu("Lazy");case 13:return Xu("Suspense");case 19:return Xu("SuspenseList");case 0:case 15:return Vn(l.type,!1);case 11:return Vn(l.type.render,!1);case 1:return Vn(l.type,!0);case 31:return Xu("Activity");default:return""}}function mi(l){try{var t="";do t+=by(l),l=l.return;while(l);return t}catch(u){return` Error generating stack: `+u.message+` -`+u.stack}}function ut(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Si(l){var t=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ad(l){var t=Si(l)?"checked":"value",u=Object.getOwnPropertyDescriptor(l.constructor.prototype,t),a=""+l[t];if(!l.hasOwnProperty(t)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var e=u.get,n=u.set;return Object.defineProperty(l,t,{configurable:!0,get:function(){return e.call(this)},set:function(f){a=""+f,n.call(this,f)}}),Object.defineProperty(l,t,{enumerable:u.enumerable}),{getValue:function(){return a},setValue:function(f){a=""+f},stopTracking:function(){l._valueTracker=null,delete l[t]}}}}function Oe(l){l._valueTracker||(l._valueTracker=Ad(l))}function bi(l){if(!l)return!1;var t=l._valueTracker;if(!t)return!0;var u=t.getValue(),a="";return l&&(a=Si(l)?l.checked?"true":"false":l.value),l=a,l!==u?(t.setValue(l),!0):!1}function _e(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var zd=/[\n"\\]/g;function at(l){return l.replace(zd,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Kn(l,t,u,a,e,n,f,c){l.name="",f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?l.type=f:l.removeAttribute("type"),t!=null?f==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+ut(t)):l.value!==""+ut(t)&&(l.value=""+ut(t)):f!=="submit"&&f!=="reset"||l.removeAttribute("value"),t!=null?Jn(l,f,ut(t)):u!=null?Jn(l,f,ut(u)):a!=null&&l.removeAttribute("value"),e==null&&n!=null&&(l.defaultChecked=!!n),e!=null&&(l.checked=e&&typeof e!="function"&&typeof e!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+ut(c):l.removeAttribute("name")}function Ti(l,t,u,a,e,n,f,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||u!=null){if(!(n!=="submit"&&n!=="reset"||t!=null))return;u=u!=null?""+ut(u):"",t=t!=null?""+ut(t):u,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??e,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(l.name=f)}function Jn(l,t,u){t==="number"&&_e(l.ownerDocument)===l||l.defaultValue===""+u||(l.defaultValue=""+u)}function ju(l,t,u,a){if(l=l.options,t){t={};for(var e=0;e"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Fn=!1;if(Mt)try{var Oa={};Object.defineProperty(Oa,"passive",{get:function(){Fn=!0}}),window.addEventListener("test",Oa,Oa),window.removeEventListener("test",Oa,Oa)}catch{Fn=!1}var Vt=null,In=null,De=null;function Di(){if(De)return De;var l,t=In,u=t.length,a,e="value"in Vt?Vt.value:Vt.textContent,n=e.length;for(l=0;l=Da),pi=" ",Yi=!1;function Bi(l,t){switch(l){case"keyup":return Fd.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xi(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Vu=!1;function Pd(l,t){switch(l){case"compositionend":return xi(t);case"keypress":return t.which!==32?null:(Yi=!0,pi);case"textInput":return l=t.data,l===pi&&Yi?null:l;default:return null}}function ly(l,t){if(Vu)return l==="compositionend"||!af&&Bi(l,t)?(l=Di(),De=In=Vt=null,Vu=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:u,offset:t-l};l=a}l:{for(;u;){if(u.nextSibling){u=u.nextSibling;break l}u=u.parentNode}u=void 0}u=Li(u)}}function Ji(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Ji(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function wi(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=_e(l.document);t instanceof l.HTMLIFrameElement;){try{var u=typeof t.contentWindow.location.href=="string"}catch{u=!1}if(u)l=t.contentWindow;else break;t=_e(l.document)}return t}function ff(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var iy=Mt&&"documentMode"in document&&11>=document.documentMode,Lu=null,cf=null,Ha=null,sf=!1;function Wi(l,t,u){var a=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;sf||Lu==null||Lu!==_e(a)||(a=Lu,"selectionStart"in a&&ff(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ha&&Na(Ha,a)||(Ha=a,a=Sn(cf,"onSelect"),0>=f,e-=f,Ut=1<<32-Wl(t)+e|u<n?n:8;var f=S.T,c={};S.T=c,Wf(l,!1,t,u);try{var i=e(),h=S.S;if(h!==null&&h(c,i),i!==null&&typeof i=="object"&&typeof i.then=="function"){var g=gy(i,a);Ja(l,t,g,lt(l))}else Ja(l,t,a,lt(l))}catch(T){Ja(l,t,{then:function(){},status:"rejected",reason:T},lt())}finally{O.p=n,S.T=f}}function Ay(){}function Jf(l,t,u,a){if(l.tag!==5)throw Error(r(476));var e=$s(l).queue;Ws(l,e,t,Y,u===null?Ay:function(){return ks(l),u(a)})}function $s(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:qt,lastRenderedState:Y},next:null};var u={};return t.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:qt,lastRenderedState:u},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function ks(l){var t=$s(l).next.queue;Ja(l,t,{},lt())}function wf(){return ql(ve)}function Fs(){return gl().memoizedState}function Is(){return gl().memoizedState}function zy(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var u=lt();l=Jt(u);var a=wt(t,l,u);a!==null&&(tt(a,t,u),Qa(a,t,u)),t={cache:zf()},l.payload=t;return}t=t.return}}function Oy(l,t,u){var a=lt();u={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null},Fe(l)?l0(t,u):(u=hf(l,t,u,a),u!==null&&(tt(u,l,a),t0(u,t,a)))}function Ps(l,t,u){var a=lt();Ja(l,t,u,a)}function Ja(l,t,u,a){var e={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null};if(Fe(l))l0(t,e);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var f=t.lastRenderedState,c=n(f,u);if(e.hasEagerState=!0,e.eagerState=c,$l(c,f))return Ye(l,t,e,0),cl===null&&pe(),!1}catch{}finally{}if(u=hf(l,t,e,a),u!==null)return tt(u,l,a),t0(u,t,a),!0}return!1}function Wf(l,t,u,a){if(a={lane:2,revertLane:Mc(),action:a,hasEagerState:!1,eagerState:null,next:null},Fe(l)){if(t)throw Error(r(479))}else t=hf(l,u,a,2),t!==null&&tt(t,l,2)}function Fe(l){var t=l.alternate;return l===j||t!==null&&t===j}function l0(l,t){la=Ke=!0;var u=l.pending;u===null?t.next=t:(t.next=u.next,u.next=t),l.pending=t}function t0(l,t,u){if((u&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,u|=a,t.lanes=u,si(l,u)}}var Ie={readContext:ql,use:we,useCallback:ol,useContext:ol,useEffect:ol,useImperativeHandle:ol,useLayoutEffect:ol,useInsertionEffect:ol,useMemo:ol,useReducer:ol,useRef:ol,useState:ol,useDebugValue:ol,useDeferredValue:ol,useTransition:ol,useSyncExternalStore:ol,useId:ol,useHostTransitionStatus:ol,useFormState:ol,useActionState:ol,useOptimistic:ol,useMemoCache:ol,useCacheRefresh:ol},u0={readContext:ql,use:we,useCallback:function(l,t){return Ql().memoizedState=[l,t===void 0?null:t],l},useContext:ql,useEffect:js,useImperativeHandle:function(l,t,u){u=u!=null?u.concat([l]):null,ke(4194308,4,Vs.bind(null,t,l),u)},useLayoutEffect:function(l,t){return ke(4194308,4,l,t)},useInsertionEffect:function(l,t){ke(4,2,l,t)},useMemo:function(l,t){var u=Ql();t=t===void 0?null:t;var a=l();if(Du){Zt(!0);try{l()}finally{Zt(!1)}}return u.memoizedState=[a,t],a},useReducer:function(l,t,u){var a=Ql();if(u!==void 0){var e=u(t);if(Du){Zt(!0);try{u(t)}finally{Zt(!1)}}}else e=t;return a.memoizedState=a.baseState=e,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:e},a.queue=l,l=l.dispatch=Oy.bind(null,j,l),[a.memoizedState,l]},useRef:function(l){var t=Ql();return l={current:l},t.memoizedState=l},useState:function(l){l=Cf(l);var t=l.queue,u=Ps.bind(null,j,t);return t.dispatch=u,[l.memoizedState,u]},useDebugValue:Lf,useDeferredValue:function(l,t){var u=Ql();return Kf(u,l,t)},useTransition:function(){var l=Cf(!1);return l=Ws.bind(null,j,l.queue,!0,!1),Ql().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,u){var a=j,e=Ql();if(k){if(u===void 0)throw Error(r(407));u=u()}else{if(u=t(),cl===null)throw Error(r(349));(J&124)!==0||zs(a,t,u)}e.memoizedState=u;var n={value:u,getSnapshot:t};return e.queue=n,js(_s.bind(null,a,n,l),[l]),a.flags|=2048,ua(9,$e(),Os.bind(null,a,n,u,t),null),u},useId:function(){var l=Ql(),t=cl.identifierPrefix;if(k){var u=Rt,a=Ut;u=(a&~(1<<32-Wl(a)-1)).toString(32)+u,t="«"+t+"R"+u,u=Je++,0p?(Ol=U,U=null):Ol=U.sibling;var $=o(d,U,y[p],b);if($===null){U===null&&(U=Ol);break}l&&U&&$.alternate===null&&t(d,U),v=n($,v,p),Z===null?D=$:Z.sibling=$,Z=$,U=Ol}if(p===y.length)return u(d,U),k&&Eu(d,p),D;if(U===null){for(;pp?(Ol=U,U=null):Ol=U.sibling;var vu=o(d,U,$.value,b);if(vu===null){U===null&&(U=Ol);break}l&&U&&vu.alternate===null&&t(d,U),v=n(vu,v,p),Z===null?D=vu:Z.sibling=vu,Z=vu,U=Ol}if($.done)return u(d,U),k&&Eu(d,p),D;if(U===null){for(;!$.done;p++,$=y.next())$=T(d,$.value,b),$!==null&&(v=n($,v,p),Z===null?D=$:Z.sibling=$,Z=$);return k&&Eu(d,p),D}for(U=a(U);!$.done;p++,$=y.next())$=m(U,d,p,$.value,b),$!==null&&(l&&$.alternate!==null&&U.delete($.key===null?p:$.key),v=n($,v,p),Z===null?D=$:Z.sibling=$,Z=$);return l&&U.forEach(function(Mh){return t(d,Mh)}),k&&Eu(d,p),D}function ul(d,v,y,b){if(typeof y=="object"&&y!==null&&y.type===Bl&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case fl:l:{for(var D=y.key;v!==null;){if(v.key===D){if(D=y.type,D===Bl){if(v.tag===7){u(d,v.sibling),b=e(v,y.props.children),b.return=d,d=b;break l}}else if(v.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===Kl&&e0(D)===v.type){u(d,v.sibling),b=e(v,y.props),Wa(b,y),b.return=d,d=b;break l}u(d,v);break}else t(d,v);v=v.sibling}y.type===Bl?(b=bu(y.props.children,d.mode,b,y.key),b.return=d,d=b):(b=xe(y.type,y.key,y.props,null,d.mode,b),Wa(b,y),b.return=d,d=b)}return f(d);case Yl:l:{for(D=y.key;v!==null;){if(v.key===D)if(v.tag===4&&v.stateNode.containerInfo===y.containerInfo&&v.stateNode.implementation===y.implementation){u(d,v.sibling),b=e(v,y.children||[]),b.return=d,d=b;break l}else{u(d,v);break}else t(d,v);v=v.sibling}b=mf(y,d.mode,b),b.return=d,d=b}return f(d);case Kl:return D=y._init,y=D(y._payload),ul(d,v,y,b)}if(Nl(y))return B(d,v,y,b);if(Rl(y)){if(D=Rl(y),typeof D!="function")throw Error(r(150));return y=D.call(y),q(d,v,y,b)}if(typeof y.then=="function")return ul(d,v,Pe(y),b);if(y.$$typeof===Ul)return ul(d,v,Qe(d,y),b);ln(d,y)}return typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint"?(y=""+y,v!==null&&v.tag===6?(u(d,v.sibling),b=e(v,y),b.return=d,d=b):(u(d,v),b=rf(y,d.mode,b),b.return=d,d=b),f(d)):u(d,v)}return function(d,v,y,b){try{wa=0;var D=ul(d,v,y,b);return aa=null,D}catch(U){if(U===Xa||U===Ce)throw U;var Z=kl(29,U,null,d.mode);return Z.lanes=b,Z.return=d,Z}finally{}}}var ea=n0(!0),f0=n0(!1),it=E(null),bt=null;function $t(l){var t=l.alternate;z(Tl,Tl.current&1),z(it,l),bt===null&&(t===null||Pu.current!==null||t.memoizedState!==null)&&(bt=l)}function c0(l){if(l.tag===22){if(z(Tl,Tl.current),z(it,l),bt===null){var t=l.alternate;t!==null&&t.memoizedState!==null&&(bt=l)}}else kt()}function kt(){z(Tl,Tl.current),z(it,it.current)}function pt(l){M(it),bt===l&&(bt=null),M(Tl)}var Tl=E(0);function tn(l){for(var t=l;t!==null;){if(t.tag===13){var u=t.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||u.data==="$?"||Xc(u)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function $f(l,t,u,a){t=l.memoizedState,u=u(a,t),u=u==null?t:R({},t,u),l.memoizedState=u,l.lanes===0&&(l.updateQueue.baseState=u)}var kf={enqueueSetState:function(l,t,u){l=l._reactInternals;var a=lt(),e=Jt(a);e.payload=t,u!=null&&(e.callback=u),t=wt(l,e,a),t!==null&&(tt(t,l,a),Qa(t,l,a))},enqueueReplaceState:function(l,t,u){l=l._reactInternals;var a=lt(),e=Jt(a);e.tag=1,e.payload=t,u!=null&&(e.callback=u),t=wt(l,e,a),t!==null&&(tt(t,l,a),Qa(t,l,a))},enqueueForceUpdate:function(l,t){l=l._reactInternals;var u=lt(),a=Jt(u);a.tag=2,t!=null&&(a.callback=t),t=wt(l,a,u),t!==null&&(tt(t,l,u),Qa(t,l,u))}};function i0(l,t,u,a,e,n,f){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(a,n,f):t.prototype&&t.prototype.isPureReactComponent?!Na(u,a)||!Na(e,n):!0}function s0(l,t,u,a){l=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(u,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(u,a),t.state!==l&&kf.enqueueReplaceState(t,t.state,null)}function Uu(l,t){var u=t;if("ref"in t){u={};for(var a in t)a!=="ref"&&(u[a]=t[a])}if(l=l.defaultProps){u===t&&(u=R({},u));for(var e in l)u[e]===void 0&&(u[e]=l[e])}return u}var un=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)};function v0(l){un(l)}function d0(l){console.error(l)}function y0(l){un(l)}function an(l,t){try{var u=l.onUncaughtError;u(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function h0(l,t,u){try{var a=l.onCaughtError;a(u.value,{componentStack:u.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ff(l,t,u){return u=Jt(u),u.tag=3,u.payload={element:null},u.callback=function(){an(l,t)},u}function o0(l){return l=Jt(l),l.tag=3,l}function r0(l,t,u,a){var e=u.type.getDerivedStateFromError;if(typeof e=="function"){var n=a.value;l.payload=function(){return e(n)},l.callback=function(){h0(t,u,a)}}var f=u.stateNode;f!==null&&typeof f.componentDidCatch=="function"&&(l.callback=function(){h0(t,u,a),typeof e!="function"&&(uu===null?uu=new Set([this]):uu.add(this));var c=a.stack;this.componentDidCatch(a.value,{componentStack:c!==null?c:""})})}function My(l,t,u,a,e){if(u.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=u.alternate,t!==null&&Ba(t,u,e,!0),u=it.current,u!==null){switch(u.tag){case 13:return bt===null?Ec():u.alternate===null&&hl===0&&(hl=3),u.flags&=-257,u.flags|=65536,u.lanes=e,a===Mf?u.flags|=16384:(t=u.updateQueue,t===null?u.updateQueue=new Set([a]):t.add(a),zc(l,a,e)),!1;case 22:return u.flags|=65536,a===Mf?u.flags|=16384:(t=u.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},u.updateQueue=t):(u=t.retryQueue,u===null?t.retryQueue=new Set([a]):u.add(a)),zc(l,a,e)),!1}throw Error(r(435,u.tag))}return zc(l,a,e),Ec(),!1}if(k)return t=it.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=e,a!==bf&&(l=Error(r(422),{cause:a}),Ya(et(l,u)))):(a!==bf&&(t=Error(r(423),{cause:a}),Ya(et(t,u))),l=l.current.alternate,l.flags|=65536,e&=-e,l.lanes|=e,a=et(a,u),e=Ff(l.stateNode,a,e),Rf(l,e),hl!==4&&(hl=2)),!1;var n=Error(r(520),{cause:a});if(n=et(n,u),te===null?te=[n]:te.push(n),hl!==4&&(hl=2),t===null)return!0;a=et(a,u),u=t;do{switch(u.tag){case 3:return u.flags|=65536,l=e&-e,u.lanes|=l,l=Ff(u.stateNode,a,l),Rf(u,l),!1;case 1:if(t=u.type,n=u.stateNode,(u.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||n!==null&&typeof n.componentDidCatch=="function"&&(uu===null||!uu.has(n))))return u.flags|=65536,e&=-e,u.lanes|=e,e=o0(e),r0(e,l,u,a),Rf(u,e),!1}u=u.return}while(u!==null);return!1}var m0=Error(r(461)),Al=!1;function _l(l,t,u,a){t.child=l===null?f0(t,null,u,a):ea(t,l.child,u,a)}function g0(l,t,u,a,e){u=u.render;var n=t.ref;if("ref"in a){var f={};for(var c in a)c!=="ref"&&(f[c]=a[c])}else f=a;return _u(t),a=Yf(l,t,u,f,n,e),c=Bf(),l!==null&&!Al?(xf(l,t,e),Yt(l,t,e)):(k&&c&&gf(t),t.flags|=1,_l(l,t,a,e),t.child)}function S0(l,t,u,a,e){if(l===null){var n=u.type;return typeof n=="function"&&!of(n)&&n.defaultProps===void 0&&u.compare===null?(t.tag=15,t.type=n,b0(l,t,n,a,e)):(l=xe(u.type,null,a,t,t.mode,e),l.ref=t.ref,l.return=t,t.child=l)}if(n=l.child,!nc(l,e)){var f=n.memoizedProps;if(u=u.compare,u=u!==null?u:Na,u(f,a)&&l.ref===t.ref)return Yt(l,t,e)}return t.flags|=1,l=Dt(n,a),l.ref=t.ref,l.return=t,t.child=l}function b0(l,t,u,a,e){if(l!==null){var n=l.memoizedProps;if(Na(n,a)&&l.ref===t.ref)if(Al=!1,t.pendingProps=a=n,nc(l,e))(l.flags&131072)!==0&&(Al=!0);else return t.lanes=l.lanes,Yt(l,t,e)}return If(l,t,u,a,e)}function T0(l,t,u){var a=t.pendingProps,e=a.children,n=l!==null?l.memoizedState:null;if(a.mode==="hidden"){if((t.flags&128)!==0){if(a=n!==null?n.baseLanes|u:u,l!==null){for(e=t.child=l.child,n=0;e!==null;)n=n|e.lanes|e.childLanes,e=e.sibling;t.childLanes=n&~a}else t.childLanes=0,t.child=null;return E0(l,t,a,u)}if((u&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},l!==null&&Ze(t,n!==null?n.cachePool:null),n!==null?bs(t,n):Hf(),c0(t);else return t.lanes=t.childLanes=536870912,E0(l,t,n!==null?n.baseLanes|u:u,u)}else n!==null?(Ze(t,n.cachePool),bs(t,n),kt(),t.memoizedState=null):(l!==null&&Ze(t,null),Hf(),kt());return _l(l,t,e,u),t.child}function E0(l,t,u,a){var e=_f();return e=e===null?null:{parent:bl._currentValue,pool:e},t.memoizedState={baseLanes:u,cachePool:e},l!==null&&Ze(t,null),Hf(),c0(t),l!==null&&Ba(l,t,a,!0),null}function en(l,t){var u=t.ref;if(u===null)l!==null&&l.ref!==null&&(t.flags|=4194816);else{if(typeof u!="function"&&typeof u!="object")throw Error(r(284));(l===null||l.ref!==u)&&(t.flags|=4194816)}}function If(l,t,u,a,e){return _u(t),u=Yf(l,t,u,a,void 0,e),a=Bf(),l!==null&&!Al?(xf(l,t,e),Yt(l,t,e)):(k&&a&&gf(t),t.flags|=1,_l(l,t,u,e),t.child)}function A0(l,t,u,a,e,n){return _u(t),t.updateQueue=null,u=Es(t,a,u,e),Ts(l),a=Bf(),l!==null&&!Al?(xf(l,t,n),Yt(l,t,n)):(k&&a&&gf(t),t.flags|=1,_l(l,t,u,n),t.child)}function z0(l,t,u,a,e){if(_u(t),t.stateNode===null){var n=Wu,f=u.contextType;typeof f=="object"&&f!==null&&(n=ql(f)),n=new u(a,n),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=kf,t.stateNode=n,n._reactInternals=t,n=t.stateNode,n.props=a,n.state=t.memoizedState,n.refs={},Df(t),f=u.contextType,n.context=typeof f=="object"&&f!==null?ql(f):Wu,n.state=t.memoizedState,f=u.getDerivedStateFromProps,typeof f=="function"&&($f(t,u,f,a),n.state=t.memoizedState),typeof u.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(f=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),f!==n.state&&kf.enqueueReplaceState(n,n.state,null),Ca(t,a,n,e),Za(),n.state=t.memoizedState),typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(l===null){n=t.stateNode;var c=t.memoizedProps,i=Uu(u,c);n.props=i;var h=n.context,g=u.contextType;f=Wu,typeof g=="object"&&g!==null&&(f=ql(g));var T=u.getDerivedStateFromProps;g=typeof T=="function"||typeof n.getSnapshotBeforeUpdate=="function",c=t.pendingProps!==c,g||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(c||h!==f)&&s0(t,n,a,f),Kt=!1;var o=t.memoizedState;n.state=o,Ca(t,a,n,e),Za(),h=t.memoizedState,c||o!==h||Kt?(typeof T=="function"&&($f(t,u,T,a),h=t.memoizedState),(i=Kt||i0(t,u,i,a,o,h,f))?(g||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount=="function"&&(t.flags|=4194308)):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=h),n.props=a,n.state=h,n.context=f,a=i):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{n=t.stateNode,Uf(l,t),f=t.memoizedProps,g=Uu(u,f),n.props=g,T=t.pendingProps,o=n.context,h=u.contextType,i=Wu,typeof h=="object"&&h!==null&&(i=ql(h)),c=u.getDerivedStateFromProps,(h=typeof c=="function"||typeof n.getSnapshotBeforeUpdate=="function")||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(f!==T||o!==i)&&s0(t,n,a,i),Kt=!1,o=t.memoizedState,n.state=o,Ca(t,a,n,e),Za();var m=t.memoizedState;f!==T||o!==m||Kt||l!==null&&l.dependencies!==null&&je(l.dependencies)?(typeof c=="function"&&($f(t,u,c,a),m=t.memoizedState),(g=Kt||i0(t,u,g,a,o,m,i)||l!==null&&l.dependencies!==null&&je(l.dependencies))?(h||typeof n.UNSAFE_componentWillUpdate!="function"&&typeof n.componentWillUpdate!="function"||(typeof n.componentWillUpdate=="function"&&n.componentWillUpdate(a,m,i),typeof n.UNSAFE_componentWillUpdate=="function"&&n.UNSAFE_componentWillUpdate(a,m,i)),typeof n.componentDidUpdate=="function"&&(t.flags|=4),typeof n.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof n.componentDidUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),n.props=a,n.state=m,n.context=i,a=g):(typeof n.componentDidUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=1024),a=!1)}return n=a,en(l,t),a=(t.flags&128)!==0,n||a?(n=t.stateNode,u=a&&typeof u.getDerivedStateFromError!="function"?null:n.render(),t.flags|=1,l!==null&&a?(t.child=ea(t,l.child,null,e),t.child=ea(t,null,u,e)):_l(l,t,u,e),t.memoizedState=n.state,l=t.child):l=Yt(l,t,e),l}function O0(l,t,u,a){return pa(),t.flags|=256,_l(l,t,u,a),t.child}var Pf={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function lc(l){return{baseLanes:l,cachePool:ds()}}function tc(l,t,u){return l=l!==null?l.childLanes&~u:0,t&&(l|=st),l}function _0(l,t,u){var a=t.pendingProps,e=!1,n=(t.flags&128)!==0,f;if((f=n)||(f=l!==null&&l.memoizedState===null?!1:(Tl.current&2)!==0),f&&(e=!0,t.flags&=-129),f=(t.flags&32)!==0,t.flags&=-33,l===null){if(k){if(e?$t(t):kt(),k){var c=yl,i;if(i=c){l:{for(i=c,c=St;i.nodeType!==8;){if(!c){c=null;break l}if(i=rt(i.nextSibling),i===null){c=null;break l}}c=i}c!==null?(t.memoizedState={dehydrated:c,treeContext:Tu!==null?{id:Ut,overflow:Rt}:null,retryLane:536870912,hydrationErrors:null},i=kl(18,null,null,0),i.stateNode=c,i.return=t,t.child=i,xl=t,yl=null,i=!0):i=!1}i||zu(t)}if(c=t.memoizedState,c!==null&&(c=c.dehydrated,c!==null))return Xc(c)?t.lanes=32:t.lanes=536870912,null;pt(t)}return c=a.children,a=a.fallback,e?(kt(),e=t.mode,c=nn({mode:"hidden",children:c},e),a=bu(a,e,u,null),c.return=t,a.return=t,c.sibling=a,t.child=c,e=t.child,e.memoizedState=lc(u),e.childLanes=tc(l,f,u),t.memoizedState=Pf,a):($t(t),uc(t,c))}if(i=l.memoizedState,i!==null&&(c=i.dehydrated,c!==null)){if(n)t.flags&256?($t(t),t.flags&=-257,t=ac(l,t,u)):t.memoizedState!==null?(kt(),t.child=l.child,t.flags|=128,t=null):(kt(),e=a.fallback,c=t.mode,a=nn({mode:"visible",children:a.children},c),e=bu(e,c,u,null),e.flags|=2,a.return=t,e.return=t,a.sibling=e,t.child=a,ea(t,l.child,null,u),a=t.child,a.memoizedState=lc(u),a.childLanes=tc(l,f,u),t.memoizedState=Pf,t=e);else if($t(t),Xc(c)){if(f=c.nextSibling&&c.nextSibling.dataset,f)var h=f.dgst;f=h,a=Error(r(419)),a.stack="",a.digest=f,Ya({value:a,source:null,stack:null}),t=ac(l,t,u)}else if(Al||Ba(l,t,u,!1),f=(u&l.childLanes)!==0,Al||f){if(f=cl,f!==null&&(a=u&-u,a=(a&42)!==0?1:Xn(a),a=(a&(f.suspendedLanes|u))!==0?0:a,a!==0&&a!==i.retryLane))throw i.retryLane=a,wu(l,a),tt(f,l,a),m0;c.data==="$?"||Ec(),t=ac(l,t,u)}else c.data==="$?"?(t.flags|=192,t.child=l.child,t=null):(l=i.treeContext,yl=rt(c.nextSibling),xl=t,k=!0,Au=null,St=!1,l!==null&&(ft[ct++]=Ut,ft[ct++]=Rt,ft[ct++]=Tu,Ut=l.id,Rt=l.overflow,Tu=t),t=uc(t,a.children),t.flags|=4096);return t}return e?(kt(),e=a.fallback,c=t.mode,i=l.child,h=i.sibling,a=Dt(i,{mode:"hidden",children:a.children}),a.subtreeFlags=i.subtreeFlags&65011712,h!==null?e=Dt(h,e):(e=bu(e,c,u,null),e.flags|=2),e.return=t,a.return=t,a.sibling=e,t.child=a,a=e,e=t.child,c=l.child.memoizedState,c===null?c=lc(u):(i=c.cachePool,i!==null?(h=bl._currentValue,i=i.parent!==h?{parent:h,pool:h}:i):i=ds(),c={baseLanes:c.baseLanes|u,cachePool:i}),e.memoizedState=c,e.childLanes=tc(l,f,u),t.memoizedState=Pf,a):($t(t),u=l.child,l=u.sibling,u=Dt(u,{mode:"visible",children:a.children}),u.return=t,u.sibling=null,l!==null&&(f=t.deletions,f===null?(t.deletions=[l],t.flags|=16):f.push(l)),t.child=u,t.memoizedState=null,u)}function uc(l,t){return t=nn({mode:"visible",children:t},l.mode),t.return=l,l.child=t}function nn(l,t){return l=kl(22,l,null,t),l.lanes=0,l.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},l}function ac(l,t,u){return ea(t,l.child,null,u),l=uc(t,t.pendingProps.children),l.flags|=2,t.memoizedState=null,l}function M0(l,t,u){l.lanes|=t;var a=l.alternate;a!==null&&(a.lanes|=t),Ef(l.return,t,u)}function ec(l,t,u,a,e){var n=l.memoizedState;n===null?l.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:u,tailMode:e}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=a,n.tail=u,n.tailMode=e)}function D0(l,t,u){var a=t.pendingProps,e=a.revealOrder,n=a.tail;if(_l(l,t,a.children,u),a=Tl.current,(a&2)!==0)a=a&1|2,t.flags|=128;else{if(l!==null&&(l.flags&128)!==0)l:for(l=t.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&M0(l,u,t);else if(l.tag===19)M0(l,u,t);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break l;for(;l.sibling===null;){if(l.return===null||l.return===t)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}a&=1}switch(z(Tl,a),e){case"forwards":for(u=t.child,e=null;u!==null;)l=u.alternate,l!==null&&tn(l)===null&&(e=u),u=u.sibling;u=e,u===null?(e=t.child,t.child=null):(e=u.sibling,u.sibling=null),ec(t,!1,e,u,n);break;case"backwards":for(u=null,e=t.child,t.child=null;e!==null;){if(l=e.alternate,l!==null&&tn(l)===null){t.child=e;break}l=e.sibling,e.sibling=u,u=e,e=l}ec(t,!0,u,null,n);break;case"together":ec(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Yt(l,t,u){if(l!==null&&(t.dependencies=l.dependencies),tu|=t.lanes,(u&t.childLanes)===0)if(l!==null){if(Ba(l,t,u,!1),(u&t.childLanes)===0)return null}else return null;if(l!==null&&t.child!==l.child)throw Error(r(153));if(t.child!==null){for(l=t.child,u=Dt(l,l.pendingProps),t.child=u,u.return=t;l.sibling!==null;)l=l.sibling,u=u.sibling=Dt(l,l.pendingProps),u.return=t;u.sibling=null}return t.child}function nc(l,t){return(l.lanes&t)!==0?!0:(l=l.dependencies,!!(l!==null&&je(l)))}function Dy(l,t,u){switch(t.tag){case 3:sl(t,t.stateNode.containerInfo),Lt(t,bl,l.memoizedState.cache),pa();break;case 27:case 5:pn(t);break;case 4:sl(t,t.stateNode.containerInfo);break;case 10:Lt(t,t.type,t.memoizedProps.value);break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?($t(t),t.flags|=128,null):(u&t.child.childLanes)!==0?_0(l,t,u):($t(t),l=Yt(l,t,u),l!==null?l.sibling:null);$t(t);break;case 19:var e=(l.flags&128)!==0;if(a=(u&t.childLanes)!==0,a||(Ba(l,t,u,!1),a=(u&t.childLanes)!==0),e){if(a)return D0(l,t,u);t.flags|=128}if(e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null,e.lastEffect=null),z(Tl,Tl.current),a)break;return null;case 22:case 23:return t.lanes=0,T0(l,t,u);case 24:Lt(t,bl,l.memoizedState.cache)}return Yt(l,t,u)}function U0(l,t,u){if(l!==null)if(l.memoizedProps!==t.pendingProps)Al=!0;else{if(!nc(l,u)&&(t.flags&128)===0)return Al=!1,Dy(l,t,u);Al=(l.flags&131072)!==0}else Al=!1,k&&(t.flags&1048576)!==0&&es(t,Xe,t.index);switch(t.lanes=0,t.tag){case 16:l:{l=t.pendingProps;var a=t.elementType,e=a._init;if(a=e(a._payload),t.type=a,typeof a=="function")of(a)?(l=Uu(a,l),t.tag=1,t=z0(null,t,a,l,u)):(t.tag=0,t=If(null,t,a,l,u));else{if(a!=null){if(e=a.$$typeof,e===yt){t.tag=11,t=g0(null,t,a,l,u);break l}else if(e===Ll){t.tag=14,t=S0(null,t,a,l,u);break l}}throw t=hu(a)||a,Error(r(306,t,""))}}return t;case 0:return If(l,t,t.type,t.pendingProps,u);case 1:return a=t.type,e=Uu(a,t.pendingProps),z0(l,t,a,e,u);case 3:l:{if(sl(t,t.stateNode.containerInfo),l===null)throw Error(r(387));a=t.pendingProps;var n=t.memoizedState;e=n.element,Uf(l,t),Ca(t,a,null,u);var f=t.memoizedState;if(a=f.cache,Lt(t,bl,a),a!==n.cache&&Af(t,[bl],u,!0),Za(),a=f.element,n.isDehydrated)if(n={element:a,isDehydrated:!1,cache:f.cache},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){t=O0(l,t,a,u);break l}else if(a!==e){e=et(Error(r(424)),t),Ya(e),t=O0(l,t,a,u);break l}else{switch(l=t.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(yl=rt(l.firstChild),xl=t,k=!0,Au=null,St=!0,u=f0(t,null,a,u),t.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling}else{if(pa(),a===e){t=Yt(l,t,u);break l}_l(l,t,a,u)}t=t.child}return t;case 26:return en(l,t),l===null?(u=qv(t.type,null,t.pendingProps,null))?t.memoizedState=u:k||(u=t.type,l=t.pendingProps,a=Tn(G.current).createElement(u),a[Hl]=t,a[Xl]=l,Dl(a,u,l),El(a),t.stateNode=a):t.memoizedState=qv(t.type,l.memoizedProps,t.pendingProps,l.memoizedState),null;case 27:return pn(t),l===null&&k&&(a=t.stateNode=Rv(t.type,t.pendingProps,G.current),xl=t,St=!0,e=yl,nu(t.type)?(jc=e,yl=rt(a.firstChild)):yl=e),_l(l,t,t.pendingProps.children,u),en(l,t),l===null&&(t.flags|=4194304),t.child;case 5:return l===null&&k&&((e=a=yl)&&(a=th(a,t.type,t.pendingProps,St),a!==null?(t.stateNode=a,xl=t,yl=rt(a.firstChild),St=!1,e=!0):e=!1),e||zu(t)),pn(t),e=t.type,n=t.pendingProps,f=l!==null?l.memoizedProps:null,a=n.children,Bc(e,n)?a=null:f!==null&&Bc(e,f)&&(t.flags|=32),t.memoizedState!==null&&(e=Yf(l,t,by,null,null,u),ve._currentValue=e),en(l,t),_l(l,t,a,u),t.child;case 6:return l===null&&k&&((l=u=yl)&&(u=uh(u,t.pendingProps,St),u!==null?(t.stateNode=u,xl=t,yl=null,l=!0):l=!1),l||zu(t)),null;case 13:return _0(l,t,u);case 4:return sl(t,t.stateNode.containerInfo),a=t.pendingProps,l===null?t.child=ea(t,null,a,u):_l(l,t,a,u),t.child;case 11:return g0(l,t,t.type,t.pendingProps,u);case 7:return _l(l,t,t.pendingProps,u),t.child;case 8:return _l(l,t,t.pendingProps.children,u),t.child;case 12:return _l(l,t,t.pendingProps.children,u),t.child;case 10:return a=t.pendingProps,Lt(t,t.type,a.value),_l(l,t,a.children,u),t.child;case 9:return e=t.type._context,a=t.pendingProps.children,_u(t),e=ql(e),a=a(e),t.flags|=1,_l(l,t,a,u),t.child;case 14:return S0(l,t,t.type,t.pendingProps,u);case 15:return b0(l,t,t.type,t.pendingProps,u);case 19:return D0(l,t,u);case 31:return a=t.pendingProps,u=t.mode,a={mode:a.mode,children:a.children},l===null?(u=nn(a,u),u.ref=t.ref,t.child=u,u.return=t,t=u):(u=Dt(l.child,a),u.ref=t.ref,t.child=u,u.return=t,t=u),t;case 22:return T0(l,t,u);case 24:return _u(t),a=ql(bl),l===null?(e=_f(),e===null&&(e=cl,n=zf(),e.pooledCache=n,n.refCount++,n!==null&&(e.pooledCacheLanes|=u),e=n),t.memoizedState={parent:a,cache:e},Df(t),Lt(t,bl,e)):((l.lanes&u)!==0&&(Uf(l,t),Ca(t,null,null,u),Za()),e=l.memoizedState,n=t.memoizedState,e.parent!==a?(e={parent:a,cache:a},t.memoizedState=e,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=e),Lt(t,bl,a)):(a=n.cache,Lt(t,bl,a),a!==e.cache&&Af(t,[bl],u,!0))),_l(l,t,t.pendingProps.children,u),t.child;case 29:throw t.pendingProps}throw Error(r(156,t.tag))}function Bt(l){l.flags|=4}function R0(l,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!Gv(t)){if(t=it.current,t!==null&&((J&4194048)===J?bt!==null:(J&62914560)!==J&&(J&536870912)===0||t!==bt))throw ja=Mf,ys;l.flags|=8192}}function fn(l,t){t!==null&&(l.flags|=4),l.flags&16384&&(t=l.tag!==22?ci():536870912,l.lanes|=t,ia|=t)}function $a(l,t){if(!k)switch(l.tailMode){case"hidden":t=l.tail;for(var u=null;t!==null;)t.alternate!==null&&(u=t),t=t.sibling;u===null?l.tail=null:u.sibling=null;break;case"collapsed":u=l.tail;for(var a=null;u!==null;)u.alternate!==null&&(a=u),u=u.sibling;a===null?t||l.tail===null?l.tail=null:l.tail.sibling=null:a.sibling=null}}function dl(l){var t=l.alternate!==null&&l.alternate.child===l.child,u=0,a=0;if(t)for(var e=l.child;e!==null;)u|=e.lanes|e.childLanes,a|=e.subtreeFlags&65011712,a|=e.flags&65011712,e.return=l,e=e.sibling;else for(e=l.child;e!==null;)u|=e.lanes|e.childLanes,a|=e.subtreeFlags,a|=e.flags,e.return=l,e=e.sibling;return l.subtreeFlags|=a,l.childLanes=u,t}function Uy(l,t,u){var a=t.pendingProps;switch(Sf(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return dl(t),null;case 1:return dl(t),null;case 3:return u=t.stateNode,a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ht(bl),Qt(),u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(l===null||l.child===null)&&(qa(t)?Bt(t):l===null||l.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,cs())),dl(t),null;case 26:return u=t.memoizedState,l===null?(Bt(t),u!==null?(dl(t),R0(t,u)):(dl(t),t.flags&=-16777217)):u?u!==l.memoizedState?(Bt(t),dl(t),R0(t,u)):(dl(t),t.flags&=-16777217):(l.memoizedProps!==a&&Bt(t),dl(t),t.flags&=-16777217),null;case 27:ge(t),u=G.current;var e=t.type;if(l!==null&&t.stateNode!=null)l.memoizedProps!==a&&Bt(t);else{if(!a){if(t.stateNode===null)throw Error(r(166));return dl(t),null}l=H.current,qa(t)?ns(t):(l=Rv(e,a,u),t.stateNode=l,Bt(t))}return dl(t),null;case 5:if(ge(t),u=t.type,l!==null&&t.stateNode!=null)l.memoizedProps!==a&&Bt(t);else{if(!a){if(t.stateNode===null)throw Error(r(166));return dl(t),null}if(l=H.current,qa(t))ns(t);else{switch(e=Tn(G.current),l){case 1:l=e.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:l=e.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":l=e.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":l=e.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":l=e.createElement("div"),l.innerHTML=" - - + Simple Adder + + + +
- - \ No newline at end of file + + diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index f4acc98..0000000 --- a/dist/index.js +++ /dev/null @@ -1,50 +0,0 @@ -(function(){const yl=document.createElement("link").relList;if(yl&&yl.supports&&yl.supports("modulepreload"))return;for(const x of document.querySelectorAll('link[rel="modulepreload"]'))S(x);new MutationObserver(x=>{for(const w of x)if(w.type==="childList")for(const dl of w.addedNodes)dl.tagName==="LINK"&&dl.rel==="modulepreload"&&S(dl)}).observe(document,{childList:!0,subtree:!0});function F(x){const w={};return x.integrity&&(w.integrity=x.integrity),x.referrerPolicy&&(w.referrerPolicy=x.referrerPolicy),x.crossOrigin==="use-credentials"?w.credentials="include":x.crossOrigin==="anonymous"?w.credentials="omit":w.credentials="same-origin",w}function S(x){if(x.ep)return;x.ep=!0;const w=F(x);fetch(x.href,w)}})();function _d(M){return M&&M.__esModule&&Object.prototype.hasOwnProperty.call(M,"default")?M.default:M}var Wc={exports:{}},oe={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var wv;function Md(){if(wv)return oe;wv=1;var M=Symbol.for("react.transitional.element"),yl=Symbol.for("react.fragment");function F(S,x,w){var dl=null;if(w!==void 0&&(dl=""+w),x.key!==void 0&&(dl=""+x.key),"key"in x){w={};for(var ql in x)ql!=="key"&&(w[ql]=x[ql])}else w=x;return x=w.ref,{$$typeof:M,type:S,key:dl,ref:x!==void 0?x:null,props:w}}return oe.Fragment=yl,oe.jsx=F,oe.jsxs=F,oe}var Wv;function Dd(){return Wv||(Wv=1,Wc.exports=Md()),Wc.exports}var Ud=Dd(),$c={exports:{}},X={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var $v;function Rd(){if($v)return X;$v=1;var M=Symbol.for("react.transitional.element"),yl=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),dl=Symbol.for("react.context"),ql=Symbol.for("react.forward_ref"),H=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),nl=Symbol.iterator;function al(s){return s===null||typeof s!="object"?null:(s=nl&&s[nl]||s["@@iterator"],typeof s=="function"?s:null)}var Yl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Bl=Object.assign,vt={};function Gl(s,E,_){this.props=s,this.context=E,this.refs=vt,this.updater=_||Yl}Gl.prototype.isReactComponent={},Gl.prototype.setState=function(s,E){if(typeof s!="object"&&typeof s!="function"&&s!=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,s,E,"setState")},Gl.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function vu(){}vu.prototype=Gl.prototype;function At(s,E,_){this.props=s,this.context=E,this.refs=vt,this.updater=_||Yl}var Ml=At.prototype=new vu;Ml.constructor=At,Bl(Ml,Gl.prototype),Ml.isPureReactComponent=!0;var yt=Array.isArray,L={H:null,A:null,T:null,S:null,V:null},Cl=Object.prototype.hasOwnProperty;function Vl(s,E,_,z,N,K){return _=K.ref,{$$typeof:M,type:s,key:E,ref:_!==void 0?_:null,props:K}}function Ll(s,E){return Vl(s.type,E,void 0,void 0,void 0,s.props)}function mt(s){return typeof s=="object"&&s!==null&&s.$$typeof===M}function Nu(s){var E={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(_){return E[_]})}var zt=/\/+/g;function Dl(s,E){return typeof s=="object"&&s!==null&&s.key!=null?Nu(""+s.key):E.toString(36)}function yu(){}function du(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(yu,yu):(s.status="pending",s.then(function(E){s.status==="pending"&&(s.status="fulfilled",s.value=E)},function(E){s.status==="pending"&&(s.status="rejected",s.reason=E)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function Ul(s,E,_,z,N){var K=typeof s;(K==="undefined"||K==="boolean")&&(s=null);var G=!1;if(s===null)G=!0;else switch(K){case"bigint":case"string":case"number":G=!0;break;case"object":switch(s.$$typeof){case M:case yl:G=!0;break;case R:return G=s._init,Ul(G(s._payload),E,_,z,N)}}if(G)return N=N(s),G=z===""?"."+Dl(s,0):z,yt(N)?(_="",G!=null&&(_=G.replace(zt,"$&/")+"/"),Ul(N,E,_,"",function(Zt){return Zt})):N!=null&&(mt(N)&&(N=Ll(N,_+(N.key==null||s&&s.key===N.key?"":(""+N.key).replace(zt,"$&/")+"/")+G)),E.push(N)),1;G=0;var Kl=z===""?".":z+":";if(yt(s))for(var fl=0;fl>>1,s=g[tl];if(0>>1;tlx(z,B))Nx(K,z)?(g[tl]=K,g[N]=B,tl=N):(g[tl]=z,g[_]=B,tl=_);else if(Nx(K,B))g[tl]=K,g[N]=B,tl=N;else break l}}return O}function x(g,O){var B=g.sortIndex-O.sortIndex;return B!==0?B:g.id-O.id}if(M.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var w=performance;M.unstable_now=function(){return w.now()}}else{var dl=Date,ql=dl.now();M.unstable_now=function(){return dl.now()-ql}}var H=[],A=[],R=1,nl=null,al=3,Yl=!1,Bl=!1,vt=!1,Gl=!1,vu=typeof setTimeout=="function"?setTimeout:null,At=typeof clearTimeout=="function"?clearTimeout:null,Ml=typeof setImmediate<"u"?setImmediate:null;function yt(g){for(var O=F(A);O!==null;){if(O.callback===null)S(A);else if(O.startTime<=g)S(A),O.sortIndex=O.expirationTime,yl(H,O);else break;O=F(A)}}function L(g){if(vt=!1,yt(g),!Bl)if(F(H)!==null)Bl=!0,Cl||(Cl=!0,Dl());else{var O=F(A);O!==null&&Ul(L,O.startTime-g)}}var Cl=!1,Vl=-1,Ll=5,mt=-1;function Nu(){return Gl?!0:!(M.unstable_now()-mtg&&Nu());){var tl=nl.callback;if(typeof tl=="function"){nl.callback=null,al=nl.priorityLevel;var s=tl(nl.expirationTime<=g);if(g=M.unstable_now(),typeof s=="function"){nl.callback=s,yt(g),O=!0;break t}nl===F(H)&&S(H),yt(g)}else S(H);nl=F(H)}if(nl!==null)O=!0;else{var E=F(A);E!==null&&Ul(L,E.startTime-g),O=!1}}break l}finally{nl=null,al=B,Yl=!1}O=void 0}}finally{O?Dl():Cl=!1}}}var Dl;if(typeof Ml=="function")Dl=function(){Ml(zt)};else if(typeof MessageChannel<"u"){var yu=new MessageChannel,du=yu.port2;yu.port1.onmessage=zt,Dl=function(){du.postMessage(null)}}else Dl=function(){vu(zt,0)};function Ul(g,O){Vl=vu(function(){g(M.unstable_now())},O)}M.unstable_IdlePriority=5,M.unstable_ImmediatePriority=1,M.unstable_LowPriority=4,M.unstable_NormalPriority=3,M.unstable_Profiling=null,M.unstable_UserBlockingPriority=2,M.unstable_cancelCallback=function(g){g.callback=null},M.unstable_forceFrameRate=function(g){0>g||125tl?(g.sortIndex=B,yl(A,g),F(H)===null&&g===F(A)&&(vt?(At(Vl),Vl=-1):vt=!0,Ul(L,B-tl))):(g.sortIndex=s,yl(H,g),Bl||Yl||(Bl=!0,Cl||(Cl=!0,Dl()))),g},M.unstable_shouldYield=Nu,M.unstable_wrapCallback=function(g){var O=al;return function(){var B=al;al=O;try{return g.apply(this,arguments)}finally{al=B}}}}(Ic)),Ic}var Iv;function Nd(){return Iv||(Iv=1,Fc.exports=Hd()),Fc.exports}var Pc={exports:{}},Nl={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Pv;function qd(){if(Pv)return Nl;Pv=1;var M=li();function yl(H){var A="https://react.dev/errors/"+H;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(M)}catch(yl){console.error(yl)}}return M(),Pc.exports=qd(),Pc.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ty;function Bd(){if(ty)return me;ty=1;var M=Nd(),yl=li(),F=Yd();function S(l){var t="https://react.dev/errors/"+l;if(1s||(l.current=tl[s],tl[s]=null,s--)}function z(l,t){s++,tl[s]=l.current,l.current=t}var N=E(null),K=E(null),G=E(null),Kl=E(null);function fl(l,t){switch(z(G,t),z(K,l),z(N,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Ev(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Ev(t),l=Av(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}_(N),z(N,l)}function Zt(){_(N),_(K),_(G)}function qn(l){l.memoizedState!==null&&z(Kl,l);var t=N.current,u=Av(t,l.type);t!==u&&(z(K,l),z(N,u))}function Se(l){K.current===l&&(_(N),_(K)),Kl.current===l&&(_(Kl),se._currentValue=B)}var Yn=Object.prototype.hasOwnProperty,Bn=M.unstable_scheduleCallback,pn=M.unstable_cancelCallback,ay=M.unstable_shouldYield,ey=M.unstable_requestPaint,St=M.unstable_now,ny=M.unstable_getCurrentPriorityLevel,ti=M.unstable_ImmediatePriority,ui=M.unstable_UserBlockingPriority,re=M.unstable_NormalPriority,fy=M.unstable_LowPriority,ai=M.unstable_IdlePriority,cy=M.log,iy=M.unstable_setDisableYieldValue,ra=null,Jl=null;function xt(l){if(typeof cy=="function"&&iy(l),Jl&&typeof Jl.setStrictMode=="function")try{Jl.setStrictMode(ra,l)}catch{}}var wl=Math.clz32?Math.clz32:yy,sy=Math.log,vy=Math.LN2;function yy(l){return l>>>=0,l===0?32:31-(sy(l)/vy|0)|0}var ge=256,be=4194304;function hu(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Te(l,t,u){var a=l.pendingLanes;if(a===0)return 0;var e=0,n=l.suspendedLanes,f=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~n,a!==0?e=hu(a):(f&=c,f!==0?e=hu(f):u||(u=c&~l,u!==0&&(e=hu(u))))):(c=a&~n,c!==0?e=hu(c):f!==0?e=hu(f):u||(u=a&~l,u!==0&&(e=hu(u)))),e===0?0:t!==0&&t!==e&&(t&n)===0&&(n=e&-e,u=t&-t,n>=u||n===32&&(u&4194048)!==0)?t:e}function ga(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function dy(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ei(){var l=ge;return ge<<=1,(ge&4194048)===0&&(ge=256),l}function ni(){var l=be;return be<<=1,(be&62914560)===0&&(be=4194304),l}function Gn(l){for(var t=[],u=0;31>u;u++)t.push(l);return t}function ba(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function hy(l,t,u,a,e,n){var f=l.pendingLanes;l.pendingLanes=u,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=u,l.entangledLanes&=u,l.errorRecoveryDisabledLanes&=u,l.shellSuspendCounter=0;var c=l.entanglements,i=l.expirationTimes,h=l.hiddenUpdates;for(u=f&~u;0)":-1e||i[a]!==h[e]){var r=` -`+i[a].replace(" at new "," at ");return l.displayName&&r.includes("")&&(r=r.replace("",l.displayName)),r}while(1<=a&&0<=e);break}}}finally{Cn=!1,Error.prepareStackTrace=u}return(u=l?l.displayName||l.name:"")?Xu(u):""}function by(l){switch(l.tag){case 26:case 27:case 5:return Xu(l.type);case 16:return Xu("Lazy");case 13:return Xu("Suspense");case 19:return Xu("SuspenseList");case 0:case 15:return Vn(l.type,!1);case 11:return Vn(l.type.render,!1);case 1:return Vn(l.type,!0);case 31:return Xu("Activity");default:return""}}function mi(l){try{var t="";do t+=by(l),l=l.return;while(l);return t}catch(u){return` -Error generating stack: `+u.message+` -`+u.stack}}function tt(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Si(l){var t=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ty(l){var t=Si(l)?"checked":"value",u=Object.getOwnPropertyDescriptor(l.constructor.prototype,t),a=""+l[t];if(!l.hasOwnProperty(t)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var e=u.get,n=u.set;return Object.defineProperty(l,t,{configurable:!0,get:function(){return e.call(this)},set:function(f){a=""+f,n.call(this,f)}}),Object.defineProperty(l,t,{enumerable:u.enumerable}),{getValue:function(){return a},setValue:function(f){a=""+f},stopTracking:function(){l._valueTracker=null,delete l[t]}}}}function ze(l){l._valueTracker||(l._valueTracker=Ty(l))}function ri(l){if(!l)return!1;var t=l._valueTracker;if(!t)return!0;var u=t.getValue(),a="";return l&&(a=Si(l)?l.checked?"true":"false":l.value),l=a,l!==u?(t.setValue(l),!0):!1}function Oe(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Ey=/[\n"\\]/g;function ut(l){return l.replace(Ey,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Ln(l,t,u,a,e,n,f,c){l.name="",f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?l.type=f:l.removeAttribute("type"),t!=null?f==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+tt(t)):l.value!==""+tt(t)&&(l.value=""+tt(t)):f!=="submit"&&f!=="reset"||l.removeAttribute("value"),t!=null?Kn(l,f,tt(t)):u!=null?Kn(l,f,tt(u)):a!=null&&l.removeAttribute("value"),e==null&&n!=null&&(l.defaultChecked=!!n),e!=null&&(l.checked=e&&typeof e!="function"&&typeof e!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+tt(c):l.removeAttribute("name")}function gi(l,t,u,a,e,n,f,c){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||u!=null){if(!(n!=="submit"&&n!=="reset"||t!=null))return;u=u!=null?""+tt(u):"",t=t!=null?""+tt(t):u,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??e,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(l.name=f)}function Kn(l,t,u){t==="number"&&Oe(l.ownerDocument)===l||l.defaultValue===""+u||(l.defaultValue=""+u)}function Qu(l,t,u,a){if(l=l.options,t){t={};for(var e=0;e"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),kn=!1;if(_t)try{var za={};Object.defineProperty(za,"passive",{get:function(){kn=!0}}),window.addEventListener("test",za,za),window.removeEventListener("test",za,za)}catch{kn=!1}var Ct=null,Fn=null,Me=null;function _i(){if(Me)return Me;var l,t=Fn,u=t.length,a,e="value"in Ct?Ct.value:Ct.textContent,n=e.length;for(l=0;l=Ma),Ni=" ",qi=!1;function Yi(l,t){switch(l){case"keyup":return $y.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Bi(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Cu=!1;function Fy(l,t){switch(l){case"compositionend":return Bi(t);case"keypress":return t.which!==32?null:(qi=!0,Ni);case"textInput":return l=t.data,l===Ni&&qi?null:l;default:return null}}function Iy(l,t){if(Cu)return l==="compositionend"||!uf&&Yi(l,t)?(l=_i(),Me=Fn=Ct=null,Cu=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:u,offset:t-l};l=a}l:{for(;u;){if(u.nextSibling){u=u.nextSibling;break l}u=u.parentNode}u=void 0}u=Ci(u)}}function Li(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Li(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function Ki(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Oe(l.document);t instanceof l.HTMLIFrameElement;){try{var u=typeof t.contentWindow.location.href=="string"}catch{u=!1}if(u)l=t.contentWindow;else break;t=Oe(l.document)}return t}function nf(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var f1=_t&&"documentMode"in document&&11>=document.documentMode,Vu=null,ff=null,Ha=null,cf=!1;function Ji(l,t,u){var a=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;cf||Vu==null||Vu!==Oe(a)||(a=Vu,"selectionStart"in a&&nf(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ha&&Ra(Ha,a)||(Ha=a,a=rn(ff,"onSelect"),0>=f,e-=f,Dt=1<<32-wl(t)+e|u<n?n:8;var f=g.T,c={};g.T=c,wf(l,!1,t,u);try{var i=e(),h=g.S;if(h!==null&&h(c,i),i!==null&&typeof i=="object"&&typeof i.then=="function"){var r=m1(i,a);Ka(l,t,r,Pl(l))}else Ka(l,t,a,Pl(l))}catch(T){Ka(l,t,{then:function(){},status:"rejected",reason:T},Pl())}finally{O.p=n,g.T=f}}function T1(){}function Kf(l,t,u,a){if(l.tag!==5)throw Error(S(476));var e=w0(l).queue;J0(l,e,t,B,u===null?T1:function(){return W0(l),u(a)})}function w0(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:B,baseState:B,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nt,lastRenderedState:B},next:null};var u={};return t.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Nt,lastRenderedState:u},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function W0(l){var t=w0(l).next.queue;Ka(l,t,{},Pl())}function Jf(){return Hl(se)}function $0(){return Sl().memoizedState}function k0(){return Sl().memoizedState}function E1(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var u=Pl();l=Kt(u);var a=Jt(t,l,u);a!==null&&(lt(a,t,u),Za(a,t,u)),t={cache:Af()},l.payload=t;return}t=t.return}}function A1(l,t,u){var a=Pl();u={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null},ke(l)?I0(t,u):(u=df(l,t,u,a),u!==null&&(lt(u,l,a),P0(u,t,a)))}function F0(l,t,u){var a=Pl();Ka(l,t,u,a)}function Ka(l,t,u,a){var e={lane:a,revertLane:0,action:u,hasEagerState:!1,eagerState:null,next:null};if(ke(l))I0(t,e);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var f=t.lastRenderedState,c=n(f,u);if(e.hasEagerState=!0,e.eagerState=c,Wl(c,f))return Ye(l,t,e,0),el===null&&qe(),!1}catch{}finally{}if(u=df(l,t,e,a),u!==null)return lt(u,l,a),P0(u,t,a),!0}return!1}function wf(l,t,u,a){if(a={lane:2,revertLane:_c(),action:a,hasEagerState:!1,eagerState:null,next:null},ke(l)){if(t)throw Error(S(479))}else t=df(l,u,a,2),t!==null&<(t,l,2)}function ke(l){var t=l.alternate;return l===Q||t!==null&&t===Q}function I0(l,t){Pu=Le=!0;var u=l.pending;u===null?t.next=t:(t.next=u.next,u.next=t),l.pending=t}function P0(l,t,u){if((u&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,u|=a,t.lanes=u,ci(l,u)}}var Fe={readContext:Hl,use:Je,useCallback:hl,useContext:hl,useEffect:hl,useImperativeHandle:hl,useLayoutEffect:hl,useInsertionEffect:hl,useMemo:hl,useReducer:hl,useRef:hl,useState:hl,useDebugValue:hl,useDeferredValue:hl,useTransition:hl,useSyncExternalStore:hl,useId:hl,useHostTransitionStatus:hl,useFormState:hl,useActionState:hl,useOptimistic:hl,useMemoCache:hl,useCacheRefresh:hl},ls={readContext:Hl,use:Je,useCallback:function(l,t){return Zl().memoizedState=[l,t===void 0?null:t],l},useContext:Hl,useEffect:X0,useImperativeHandle:function(l,t,u){u=u!=null?u.concat([l]):null,$e(4194308,4,j0.bind(null,t,l),u)},useLayoutEffect:function(l,t){return $e(4194308,4,l,t)},useInsertionEffect:function(l,t){$e(4,2,l,t)},useMemo:function(l,t){var u=Zl();t=t===void 0?null:t;var a=l();if(Mu){xt(!0);try{l()}finally{xt(!1)}}return u.memoizedState=[a,t],a},useReducer:function(l,t,u){var a=Zl();if(u!==void 0){var e=u(t);if(Mu){xt(!0);try{u(t)}finally{xt(!1)}}}else e=t;return a.memoizedState=a.baseState=e,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:e},a.queue=l,l=l.dispatch=A1.bind(null,Q,l),[a.memoizedState,l]},useRef:function(l){var t=Zl();return l={current:l},t.memoizedState=l},useState:function(l){l=jf(l);var t=l.queue,u=F0.bind(null,Q,t);return t.dispatch=u,[l.memoizedState,u]},useDebugValue:Vf,useDeferredValue:function(l,t){var u=Zl();return Lf(u,l,t)},useTransition:function(){var l=jf(!1);return l=J0.bind(null,Q,l.queue,!0,!1),Zl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,u){var a=Q,e=Zl();if(W){if(u===void 0)throw Error(S(407));u=u()}else{if(u=t(),el===null)throw Error(S(349));(V&124)!==0||E0(a,t,u)}e.memoizedState=u;var n={value:u,getSnapshot:t};return e.queue=n,X0(z0.bind(null,a,n,l),[l]),a.flags|=2048,ta(9,We(),A0.bind(null,a,n,u,t),null),u},useId:function(){var l=Zl(),t=el.identifierPrefix;if(W){var u=Ut,a=Dt;u=(a&~(1<<32-wl(a)-1)).toString(32)+u,t="«"+t+"R"+u,u=Ke++,0Y?(Al=U,U=null):Al=U.sibling;var J=o(y,U,d[Y],b);if(J===null){U===null&&(U=Al);break}l&&U&&J.alternate===null&&t(y,U),v=n(J,v,Y),Z===null?D=J:Z.sibling=J,Z=J,U=Al}if(Y===d.length)return u(y,U),W&&Tu(y,Y),D;if(U===null){for(;YY?(Al=U,U=null):Al=U.sibling;var su=o(y,U,J.value,b);if(su===null){U===null&&(U=Al);break}l&&U&&su.alternate===null&&t(y,U),v=n(su,v,Y),Z===null?D=su:Z.sibling=su,Z=su,U=Al}if(J.done)return u(y,U),W&&Tu(y,Y),D;if(U===null){for(;!J.done;Y++,J=d.next())J=T(y,J.value,b),J!==null&&(v=n(J,v,Y),Z===null?D=J:Z.sibling=J,Z=J);return W&&Tu(y,Y),D}for(U=a(U);!J.done;Y++,J=d.next())J=m(U,y,Y,J.value,b),J!==null&&(l&&J.alternate!==null&&U.delete(J.key===null?Y:J.key),v=n(J,v,Y),Z===null?D=J:Z.sibling=J,Z=J);return l&&U.forEach(function(Od){return t(y,Od)}),W&&Tu(y,Y),D}function ll(y,v,d,b){if(typeof d=="object"&&d!==null&&d.type===Bl&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case al:l:{for(var D=d.key;v!==null;){if(v.key===D){if(D=d.type,D===Bl){if(v.tag===7){u(y,v.sibling),b=e(v,d.props.children),b.return=y,y=b;break l}}else if(v.elementType===D||typeof D=="object"&&D!==null&&D.$$typeof===Ll&&us(D)===v.type){u(y,v.sibling),b=e(v,d.props),wa(b,d),b.return=y,y=b;break l}u(y,v);break}else t(y,v);v=v.sibling}d.type===Bl?(b=gu(d.props.children,y.mode,b,d.key),b.return=y,y=b):(b=pe(d.type,d.key,d.props,null,y.mode,b),wa(b,d),b.return=y,y=b)}return f(y);case Yl:l:{for(D=d.key;v!==null;){if(v.key===D)if(v.tag===4&&v.stateNode.containerInfo===d.containerInfo&&v.stateNode.implementation===d.implementation){u(y,v.sibling),b=e(v,d.children||[]),b.return=y,y=b;break l}else{u(y,v);break}else t(y,v);v=v.sibling}b=mf(d,y.mode,b),b.return=y,y=b}return f(y);case Ll:return D=d._init,d=D(d._payload),ll(y,v,d,b)}if(Ul(d))return p(y,v,d,b);if(Dl(d)){if(D=Dl(d),typeof D!="function")throw Error(S(150));return d=D.call(d),q(y,v,d,b)}if(typeof d.then=="function")return ll(y,v,Ie(d),b);if(d.$$typeof===Ml)return ll(y,v,Ze(y,d),b);Pe(y,d)}return typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint"?(d=""+d,v!==null&&v.tag===6?(u(y,v.sibling),b=e(v,d),b.return=y,y=b):(u(y,v),b=of(d,y.mode,b),b.return=y,y=b),f(y)):u(y,v)}return function(y,v,d,b){try{Ja=0;var D=ll(y,v,d,b);return ua=null,D}catch(U){if(U===Xa||U===je)throw U;var Z=$l(29,U,null,y.mode);return Z.lanes=b,Z.return=y,Z}finally{}}}var aa=as(!0),es=as(!1),ct=E(null),gt=null;function Wt(l){var t=l.alternate;z(gl,gl.current&1),z(ct,l),gt===null&&(t===null||Iu.current!==null||t.memoizedState!==null)&&(gt=l)}function ns(l){if(l.tag===22){if(z(gl,gl.current),z(ct,l),gt===null){var t=l.alternate;t!==null&&t.memoizedState!==null&&(gt=l)}}else $t()}function $t(){z(gl,gl.current),z(ct,ct.current)}function qt(l){_(ct),gt===l&&(gt=null),_(gl)}var gl=E(0);function ln(l){for(var t=l;t!==null;){if(t.tag===13){var u=t.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||u.data==="$?"||Xc(u)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function Wf(l,t,u,a){t=l.memoizedState,u=u(a,t),u=u==null?t:R({},t,u),l.memoizedState=u,l.lanes===0&&(l.updateQueue.baseState=u)}var $f={enqueueSetState:function(l,t,u){l=l._reactInternals;var a=Pl(),e=Kt(a);e.payload=t,u!=null&&(e.callback=u),t=Jt(l,e,a),t!==null&&(lt(t,l,a),Za(t,l,a))},enqueueReplaceState:function(l,t,u){l=l._reactInternals;var a=Pl(),e=Kt(a);e.tag=1,e.payload=t,u!=null&&(e.callback=u),t=Jt(l,e,a),t!==null&&(lt(t,l,a),Za(t,l,a))},enqueueForceUpdate:function(l,t){l=l._reactInternals;var u=Pl(),a=Kt(u);a.tag=2,t!=null&&(a.callback=t),t=Jt(l,a,u),t!==null&&(lt(t,l,u),Za(t,l,u))}};function fs(l,t,u,a,e,n,f){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(a,n,f):t.prototype&&t.prototype.isPureReactComponent?!Ra(u,a)||!Ra(e,n):!0}function cs(l,t,u,a){l=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(u,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(u,a),t.state!==l&&$f.enqueueReplaceState(t,t.state,null)}function Du(l,t){var u=t;if("ref"in t){u={};for(var a in t)a!=="ref"&&(u[a]=t[a])}if(l=l.defaultProps){u===t&&(u=R({},u));for(var e in l)u[e]===void 0&&(u[e]=l[e])}return u}var tn=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)};function is(l){tn(l)}function ss(l){console.error(l)}function vs(l){tn(l)}function un(l,t){try{var u=l.onUncaughtError;u(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function ys(l,t,u){try{var a=l.onCaughtError;a(u.value,{componentStack:u.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function kf(l,t,u){return u=Kt(u),u.tag=3,u.payload={element:null},u.callback=function(){un(l,t)},u}function ds(l){return l=Kt(l),l.tag=3,l}function hs(l,t,u,a){var e=u.type.getDerivedStateFromError;if(typeof e=="function"){var n=a.value;l.payload=function(){return e(n)},l.callback=function(){ys(t,u,a)}}var f=u.stateNode;f!==null&&typeof f.componentDidCatch=="function"&&(l.callback=function(){ys(t,u,a),typeof e!="function"&&(tu===null?tu=new Set([this]):tu.add(this));var c=a.stack;this.componentDidCatch(a.value,{componentStack:c!==null?c:""})})}function O1(l,t,u,a,e){if(u.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(t=u.alternate,t!==null&&Ba(t,u,e,!0),u=ct.current,u!==null){switch(u.tag){case 13:return gt===null?Tc():u.alternate===null&&vl===0&&(vl=3),u.flags&=-257,u.flags|=65536,u.lanes=e,a===_f?u.flags|=16384:(t=u.updateQueue,t===null?u.updateQueue=new Set([a]):t.add(a),Ac(l,a,e)),!1;case 22:return u.flags|=65536,a===_f?u.flags|=16384:(t=u.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},u.updateQueue=t):(u=t.retryQueue,u===null?t.retryQueue=new Set([a]):u.add(a)),Ac(l,a,e)),!1}throw Error(S(435,u.tag))}return Ac(l,a,e),Tc(),!1}if(W)return t=ct.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=e,a!==gf&&(l=Error(S(422),{cause:a}),Ya(at(l,u)))):(a!==gf&&(t=Error(S(423),{cause:a}),Ya(at(t,u))),l=l.current.alternate,l.flags|=65536,e&=-e,l.lanes|=e,a=at(a,u),e=kf(l.stateNode,a,e),Uf(l,e),vl!==4&&(vl=2)),!1;var n=Error(S(520),{cause:a});if(n=at(n,u),le===null?le=[n]:le.push(n),vl!==4&&(vl=2),t===null)return!0;a=at(a,u),u=t;do{switch(u.tag){case 3:return u.flags|=65536,l=e&-e,u.lanes|=l,l=kf(u.stateNode,a,l),Uf(u,l),!1;case 1:if(t=u.type,n=u.stateNode,(u.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||n!==null&&typeof n.componentDidCatch=="function"&&(tu===null||!tu.has(n))))return u.flags|=65536,e&=-e,u.lanes|=e,e=ds(e),hs(e,l,u,a),Uf(u,e),!1}u=u.return}while(u!==null);return!1}var os=Error(S(461)),Tl=!1;function zl(l,t,u,a){t.child=l===null?es(t,null,u,a):aa(t,l.child,u,a)}function ms(l,t,u,a,e){u=u.render;var n=t.ref;if("ref"in a){var f={};for(var c in a)c!=="ref"&&(f[c]=a[c])}else f=a;return Ou(t),a=Yf(l,t,u,f,n,e),c=Bf(),l!==null&&!Tl?(pf(l,t,e),Yt(l,t,e)):(W&&c&&Sf(t),t.flags|=1,zl(l,t,a,e),t.child)}function Ss(l,t,u,a,e){if(l===null){var n=u.type;return typeof n=="function"&&!hf(n)&&n.defaultProps===void 0&&u.compare===null?(t.tag=15,t.type=n,rs(l,t,n,a,e)):(l=pe(u.type,null,a,t,t.mode,e),l.ref=t.ref,l.return=t,t.child=l)}if(n=l.child,!ec(l,e)){var f=n.memoizedProps;if(u=u.compare,u=u!==null?u:Ra,u(f,a)&&l.ref===t.ref)return Yt(l,t,e)}return t.flags|=1,l=Mt(n,a),l.ref=t.ref,l.return=t,t.child=l}function rs(l,t,u,a,e){if(l!==null){var n=l.memoizedProps;if(Ra(n,a)&&l.ref===t.ref)if(Tl=!1,t.pendingProps=a=n,ec(l,e))(l.flags&131072)!==0&&(Tl=!0);else return t.lanes=l.lanes,Yt(l,t,e)}return Ff(l,t,u,a,e)}function gs(l,t,u){var a=t.pendingProps,e=a.children,n=l!==null?l.memoizedState:null;if(a.mode==="hidden"){if((t.flags&128)!==0){if(a=n!==null?n.baseLanes|u:u,l!==null){for(e=t.child=l.child,n=0;e!==null;)n=n|e.lanes|e.childLanes,e=e.sibling;t.childLanes=n&~a}else t.childLanes=0,t.child=null;return bs(l,t,a,u)}if((u&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},l!==null&&xe(t,n!==null?n.cachePool:null),n!==null?r0(t,n):Hf(),ns(t);else return t.lanes=t.childLanes=536870912,bs(l,t,n!==null?n.baseLanes|u:u,u)}else n!==null?(xe(t,n.cachePool),r0(t,n),$t(),t.memoizedState=null):(l!==null&&xe(t,null),Hf(),$t());return zl(l,t,e,u),t.child}function bs(l,t,u,a){var e=Of();return e=e===null?null:{parent:rl._currentValue,pool:e},t.memoizedState={baseLanes:u,cachePool:e},l!==null&&xe(t,null),Hf(),ns(t),l!==null&&Ba(l,t,a,!0),null}function an(l,t){var u=t.ref;if(u===null)l!==null&&l.ref!==null&&(t.flags|=4194816);else{if(typeof u!="function"&&typeof u!="object")throw Error(S(284));(l===null||l.ref!==u)&&(t.flags|=4194816)}}function Ff(l,t,u,a,e){return Ou(t),u=Yf(l,t,u,a,void 0,e),a=Bf(),l!==null&&!Tl?(pf(l,t,e),Yt(l,t,e)):(W&&a&&Sf(t),t.flags|=1,zl(l,t,u,e),t.child)}function Ts(l,t,u,a,e,n){return Ou(t),t.updateQueue=null,u=b0(t,a,u,e),g0(l),a=Bf(),l!==null&&!Tl?(pf(l,t,n),Yt(l,t,n)):(W&&a&&Sf(t),t.flags|=1,zl(l,t,u,n),t.child)}function Es(l,t,u,a,e){if(Ou(t),t.stateNode===null){var n=wu,f=u.contextType;typeof f=="object"&&f!==null&&(n=Hl(f)),n=new u(a,n),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=$f,t.stateNode=n,n._reactInternals=t,n=t.stateNode,n.props=a,n.state=t.memoizedState,n.refs={},Mf(t),f=u.contextType,n.context=typeof f=="object"&&f!==null?Hl(f):wu,n.state=t.memoizedState,f=u.getDerivedStateFromProps,typeof f=="function"&&(Wf(t,u,f,a),n.state=t.memoizedState),typeof u.getDerivedStateFromProps=="function"||typeof n.getSnapshotBeforeUpdate=="function"||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(f=n.state,typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount(),f!==n.state&&$f.enqueueReplaceState(n,n.state,null),ja(t,a,n,e),xa(),n.state=t.memoizedState),typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!0}else if(l===null){n=t.stateNode;var c=t.memoizedProps,i=Du(u,c);n.props=i;var h=n.context,r=u.contextType;f=wu,typeof r=="object"&&r!==null&&(f=Hl(r));var T=u.getDerivedStateFromProps;r=typeof T=="function"||typeof n.getSnapshotBeforeUpdate=="function",c=t.pendingProps!==c,r||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(c||h!==f)&&cs(t,n,a,f),Lt=!1;var o=t.memoizedState;n.state=o,ja(t,a,n,e),xa(),h=t.memoizedState,c||o!==h||Lt?(typeof T=="function"&&(Wf(t,u,T,a),h=t.memoizedState),(i=Lt||fs(t,u,i,a,o,h,f))?(r||typeof n.UNSAFE_componentWillMount!="function"&&typeof n.componentWillMount!="function"||(typeof n.componentWillMount=="function"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount=="function"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount=="function"&&(t.flags|=4194308)):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=h),n.props=a,n.state=h,n.context=f,a=i):(typeof n.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{n=t.stateNode,Df(l,t),f=t.memoizedProps,r=Du(u,f),n.props=r,T=t.pendingProps,o=n.context,h=u.contextType,i=wu,typeof h=="object"&&h!==null&&(i=Hl(h)),c=u.getDerivedStateFromProps,(h=typeof c=="function"||typeof n.getSnapshotBeforeUpdate=="function")||typeof n.UNSAFE_componentWillReceiveProps!="function"&&typeof n.componentWillReceiveProps!="function"||(f!==T||o!==i)&&cs(t,n,a,i),Lt=!1,o=t.memoizedState,n.state=o,ja(t,a,n,e),xa();var m=t.memoizedState;f!==T||o!==m||Lt||l!==null&&l.dependencies!==null&&Qe(l.dependencies)?(typeof c=="function"&&(Wf(t,u,c,a),m=t.memoizedState),(r=Lt||fs(t,u,r,a,o,m,i)||l!==null&&l.dependencies!==null&&Qe(l.dependencies))?(h||typeof n.UNSAFE_componentWillUpdate!="function"&&typeof n.componentWillUpdate!="function"||(typeof n.componentWillUpdate=="function"&&n.componentWillUpdate(a,m,i),typeof n.UNSAFE_componentWillUpdate=="function"&&n.UNSAFE_componentWillUpdate(a,m,i)),typeof n.componentDidUpdate=="function"&&(t.flags|=4),typeof n.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof n.componentDidUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=m),n.props=a,n.state=m,n.context=i,a=r):(typeof n.componentDidUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!="function"||f===l.memoizedProps&&o===l.memoizedState||(t.flags|=1024),a=!1)}return n=a,an(l,t),a=(t.flags&128)!==0,n||a?(n=t.stateNode,u=a&&typeof u.getDerivedStateFromError!="function"?null:n.render(),t.flags|=1,l!==null&&a?(t.child=aa(t,l.child,null,e),t.child=aa(t,null,u,e)):zl(l,t,u,e),t.memoizedState=n.state,l=t.child):l=Yt(l,t,e),l}function As(l,t,u,a){return qa(),t.flags|=256,zl(l,t,u,a),t.child}var If={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Pf(l){return{baseLanes:l,cachePool:s0()}}function lc(l,t,u){return l=l!==null?l.childLanes&~u:0,t&&(l|=it),l}function zs(l,t,u){var a=t.pendingProps,e=!1,n=(t.flags&128)!==0,f;if((f=n)||(f=l!==null&&l.memoizedState===null?!1:(gl.current&2)!==0),f&&(e=!0,t.flags&=-129),f=(t.flags&32)!==0,t.flags&=-33,l===null){if(W){if(e?Wt(t):$t(),W){var c=sl,i;if(i=c){l:{for(i=c,c=rt;i.nodeType!==8;){if(!c){c=null;break l}if(i=ot(i.nextSibling),i===null){c=null;break l}}c=i}c!==null?(t.memoizedState={dehydrated:c,treeContext:bu!==null?{id:Dt,overflow:Ut}:null,retryLane:536870912,hydrationErrors:null},i=$l(18,null,null,0),i.stateNode=c,i.return=t,t.child=i,pl=t,sl=null,i=!0):i=!1}i||Au(t)}if(c=t.memoizedState,c!==null&&(c=c.dehydrated,c!==null))return Xc(c)?t.lanes=32:t.lanes=536870912,null;qt(t)}return c=a.children,a=a.fallback,e?($t(),e=t.mode,c=en({mode:"hidden",children:c},e),a=gu(a,e,u,null),c.return=t,a.return=t,c.sibling=a,t.child=c,e=t.child,e.memoizedState=Pf(u),e.childLanes=lc(l,f,u),t.memoizedState=If,a):(Wt(t),tc(t,c))}if(i=l.memoizedState,i!==null&&(c=i.dehydrated,c!==null)){if(n)t.flags&256?(Wt(t),t.flags&=-257,t=uc(l,t,u)):t.memoizedState!==null?($t(),t.child=l.child,t.flags|=128,t=null):($t(),e=a.fallback,c=t.mode,a=en({mode:"visible",children:a.children},c),e=gu(e,c,u,null),e.flags|=2,a.return=t,e.return=t,a.sibling=e,t.child=a,aa(t,l.child,null,u),a=t.child,a.memoizedState=Pf(u),a.childLanes=lc(l,f,u),t.memoizedState=If,t=e);else if(Wt(t),Xc(c)){if(f=c.nextSibling&&c.nextSibling.dataset,f)var h=f.dgst;f=h,a=Error(S(419)),a.stack="",a.digest=f,Ya({value:a,source:null,stack:null}),t=uc(l,t,u)}else if(Tl||Ba(l,t,u,!1),f=(u&l.childLanes)!==0,Tl||f){if(f=el,f!==null&&(a=u&-u,a=(a&42)!==0?1:Xn(a),a=(a&(f.suspendedLanes|u))!==0?0:a,a!==0&&a!==i.retryLane))throw i.retryLane=a,Ju(l,a),lt(f,l,a),os;c.data==="$?"||Tc(),t=uc(l,t,u)}else c.data==="$?"?(t.flags|=192,t.child=l.child,t=null):(l=i.treeContext,sl=ot(c.nextSibling),pl=t,W=!0,Eu=null,rt=!1,l!==null&&(nt[ft++]=Dt,nt[ft++]=Ut,nt[ft++]=bu,Dt=l.id,Ut=l.overflow,bu=t),t=tc(t,a.children),t.flags|=4096);return t}return e?($t(),e=a.fallback,c=t.mode,i=l.child,h=i.sibling,a=Mt(i,{mode:"hidden",children:a.children}),a.subtreeFlags=i.subtreeFlags&65011712,h!==null?e=Mt(h,e):(e=gu(e,c,u,null),e.flags|=2),e.return=t,a.return=t,a.sibling=e,t.child=a,a=e,e=t.child,c=l.child.memoizedState,c===null?c=Pf(u):(i=c.cachePool,i!==null?(h=rl._currentValue,i=i.parent!==h?{parent:h,pool:h}:i):i=s0(),c={baseLanes:c.baseLanes|u,cachePool:i}),e.memoizedState=c,e.childLanes=lc(l,f,u),t.memoizedState=If,a):(Wt(t),u=l.child,l=u.sibling,u=Mt(u,{mode:"visible",children:a.children}),u.return=t,u.sibling=null,l!==null&&(f=t.deletions,f===null?(t.deletions=[l],t.flags|=16):f.push(l)),t.child=u,t.memoizedState=null,u)}function tc(l,t){return t=en({mode:"visible",children:t},l.mode),t.return=l,l.child=t}function en(l,t){return l=$l(22,l,null,t),l.lanes=0,l.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},l}function uc(l,t,u){return aa(t,l.child,null,u),l=tc(t,t.pendingProps.children),l.flags|=2,t.memoizedState=null,l}function Os(l,t,u){l.lanes|=t;var a=l.alternate;a!==null&&(a.lanes|=t),Tf(l.return,t,u)}function ac(l,t,u,a,e){var n=l.memoizedState;n===null?l.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:u,tailMode:e}:(n.isBackwards=t,n.rendering=null,n.renderingStartTime=0,n.last=a,n.tail=u,n.tailMode=e)}function _s(l,t,u){var a=t.pendingProps,e=a.revealOrder,n=a.tail;if(zl(l,t,a.children,u),a=gl.current,(a&2)!==0)a=a&1|2,t.flags|=128;else{if(l!==null&&(l.flags&128)!==0)l:for(l=t.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Os(l,u,t);else if(l.tag===19)Os(l,u,t);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break l;for(;l.sibling===null;){if(l.return===null||l.return===t)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}a&=1}switch(z(gl,a),e){case"forwards":for(u=t.child,e=null;u!==null;)l=u.alternate,l!==null&&ln(l)===null&&(e=u),u=u.sibling;u=e,u===null?(e=t.child,t.child=null):(e=u.sibling,u.sibling=null),ac(t,!1,e,u,n);break;case"backwards":for(u=null,e=t.child,t.child=null;e!==null;){if(l=e.alternate,l!==null&&ln(l)===null){t.child=e;break}l=e.sibling,e.sibling=u,u=e,e=l}ac(t,!0,u,null,n);break;case"together":ac(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Yt(l,t,u){if(l!==null&&(t.dependencies=l.dependencies),lu|=t.lanes,(u&t.childLanes)===0)if(l!==null){if(Ba(l,t,u,!1),(u&t.childLanes)===0)return null}else return null;if(l!==null&&t.child!==l.child)throw Error(S(153));if(t.child!==null){for(l=t.child,u=Mt(l,l.pendingProps),t.child=u,u.return=t;l.sibling!==null;)l=l.sibling,u=u.sibling=Mt(l,l.pendingProps),u.return=t;u.sibling=null}return t.child}function ec(l,t){return(l.lanes&t)!==0?!0:(l=l.dependencies,!!(l!==null&&Qe(l)))}function _1(l,t,u){switch(t.tag){case 3:fl(t,t.stateNode.containerInfo),Vt(t,rl,l.memoizedState.cache),qa();break;case 27:case 5:qn(t);break;case 4:fl(t,t.stateNode.containerInfo);break;case 10:Vt(t,t.type,t.memoizedProps.value);break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(Wt(t),t.flags|=128,null):(u&t.child.childLanes)!==0?zs(l,t,u):(Wt(t),l=Yt(l,t,u),l!==null?l.sibling:null);Wt(t);break;case 19:var e=(l.flags&128)!==0;if(a=(u&t.childLanes)!==0,a||(Ba(l,t,u,!1),a=(u&t.childLanes)!==0),e){if(a)return _s(l,t,u);t.flags|=128}if(e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null,e.lastEffect=null),z(gl,gl.current),a)break;return null;case 22:case 23:return t.lanes=0,gs(l,t,u);case 24:Vt(t,rl,l.memoizedState.cache)}return Yt(l,t,u)}function Ms(l,t,u){if(l!==null)if(l.memoizedProps!==t.pendingProps)Tl=!0;else{if(!ec(l,u)&&(t.flags&128)===0)return Tl=!1,_1(l,t,u);Tl=(l.flags&131072)!==0}else Tl=!1,W&&(t.flags&1048576)!==0&&u0(t,Xe,t.index);switch(t.lanes=0,t.tag){case 16:l:{l=t.pendingProps;var a=t.elementType,e=a._init;if(a=e(a._payload),t.type=a,typeof a=="function")hf(a)?(l=Du(a,l),t.tag=1,t=Es(null,t,a,l,u)):(t.tag=0,t=Ff(null,t,a,l,u));else{if(a!=null){if(e=a.$$typeof,e===yt){t.tag=11,t=ms(null,t,a,l,u);break l}else if(e===Vl){t.tag=14,t=Ss(null,t,a,l,u);break l}}throw t=du(a)||a,Error(S(306,t,""))}}return t;case 0:return Ff(l,t,t.type,t.pendingProps,u);case 1:return a=t.type,e=Du(a,t.pendingProps),Es(l,t,a,e,u);case 3:l:{if(fl(t,t.stateNode.containerInfo),l===null)throw Error(S(387));a=t.pendingProps;var n=t.memoizedState;e=n.element,Df(l,t),ja(t,a,null,u);var f=t.memoizedState;if(a=f.cache,Vt(t,rl,a),a!==n.cache&&Ef(t,[rl],u,!0),xa(),a=f.element,n.isDehydrated)if(n={element:a,isDehydrated:!1,cache:f.cache},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){t=As(l,t,a,u);break l}else if(a!==e){e=at(Error(S(424)),t),Ya(e),t=As(l,t,a,u);break l}else{switch(l=t.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(sl=ot(l.firstChild),pl=t,W=!0,Eu=null,rt=!0,u=es(t,null,a,u),t.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling}else{if(qa(),a===e){t=Yt(l,t,u);break l}zl(l,t,a,u)}t=t.child}return t;case 26:return an(l,t),l===null?(u=Hv(t.type,null,t.pendingProps,null))?t.memoizedState=u:W||(u=t.type,l=t.pendingProps,a=bn(G.current).createElement(u),a[Rl]=t,a[Xl]=l,_l(a,u,l),bl(a),t.stateNode=a):t.memoizedState=Hv(t.type,l.memoizedProps,t.pendingProps,l.memoizedState),null;case 27:return qn(t),l===null&&W&&(a=t.stateNode=Dv(t.type,t.pendingProps,G.current),pl=t,rt=!0,e=sl,eu(t.type)?(Qc=e,sl=ot(a.firstChild)):sl=e),zl(l,t,t.pendingProps.children,u),an(l,t),l===null&&(t.flags|=4194304),t.child;case 5:return l===null&&W&&((e=a=sl)&&(a=P1(a,t.type,t.pendingProps,rt),a!==null?(t.stateNode=a,pl=t,sl=ot(a.firstChild),rt=!1,e=!0):e=!1),e||Au(t)),qn(t),e=t.type,n=t.pendingProps,f=l!==null?l.memoizedProps:null,a=n.children,Bc(e,n)?a=null:f!==null&&Bc(e,f)&&(t.flags|=32),t.memoizedState!==null&&(e=Yf(l,t,r1,null,null,u),se._currentValue=e),an(l,t),zl(l,t,a,u),t.child;case 6:return l===null&&W&&((l=u=sl)&&(u=ld(u,t.pendingProps,rt),u!==null?(t.stateNode=u,pl=t,sl=null,l=!0):l=!1),l||Au(t)),null;case 13:return zs(l,t,u);case 4:return fl(t,t.stateNode.containerInfo),a=t.pendingProps,l===null?t.child=aa(t,null,a,u):zl(l,t,a,u),t.child;case 11:return ms(l,t,t.type,t.pendingProps,u);case 7:return zl(l,t,t.pendingProps,u),t.child;case 8:return zl(l,t,t.pendingProps.children,u),t.child;case 12:return zl(l,t,t.pendingProps.children,u),t.child;case 10:return a=t.pendingProps,Vt(t,t.type,a.value),zl(l,t,a.children,u),t.child;case 9:return e=t.type._context,a=t.pendingProps.children,Ou(t),e=Hl(e),a=a(e),t.flags|=1,zl(l,t,a,u),t.child;case 14:return Ss(l,t,t.type,t.pendingProps,u);case 15:return rs(l,t,t.type,t.pendingProps,u);case 19:return _s(l,t,u);case 31:return a=t.pendingProps,u=t.mode,a={mode:a.mode,children:a.children},l===null?(u=en(a,u),u.ref=t.ref,t.child=u,u.return=t,t=u):(u=Mt(l.child,a),u.ref=t.ref,t.child=u,u.return=t,t=u),t;case 22:return gs(l,t,u);case 24:return Ou(t),a=Hl(rl),l===null?(e=Of(),e===null&&(e=el,n=Af(),e.pooledCache=n,n.refCount++,n!==null&&(e.pooledCacheLanes|=u),e=n),t.memoizedState={parent:a,cache:e},Mf(t),Vt(t,rl,e)):((l.lanes&u)!==0&&(Df(l,t),ja(t,null,null,u),xa()),e=l.memoizedState,n=t.memoizedState,e.parent!==a?(e={parent:a,cache:a},t.memoizedState=e,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=e),Vt(t,rl,a)):(a=n.cache,Vt(t,rl,a),a!==e.cache&&Ef(t,[rl],u,!0))),zl(l,t,t.pendingProps.children,u),t.child;case 29:throw t.pendingProps}throw Error(S(156,t.tag))}function Bt(l){l.flags|=4}function Ds(l,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!pv(t)){if(t=ct.current,t!==null&&((V&4194048)===V?gt!==null:(V&62914560)!==V&&(V&536870912)===0||t!==gt))throw Qa=_f,v0;l.flags|=8192}}function nn(l,t){t!==null&&(l.flags|=4),l.flags&16384&&(t=l.tag!==22?ni():536870912,l.lanes|=t,ca|=t)}function Wa(l,t){if(!W)switch(l.tailMode){case"hidden":t=l.tail;for(var u=null;t!==null;)t.alternate!==null&&(u=t),t=t.sibling;u===null?l.tail=null:u.sibling=null;break;case"collapsed":u=l.tail;for(var a=null;u!==null;)u.alternate!==null&&(a=u),u=u.sibling;a===null?t||l.tail===null?l.tail=null:l.tail.sibling=null:a.sibling=null}}function il(l){var t=l.alternate!==null&&l.alternate.child===l.child,u=0,a=0;if(t)for(var e=l.child;e!==null;)u|=e.lanes|e.childLanes,a|=e.subtreeFlags&65011712,a|=e.flags&65011712,e.return=l,e=e.sibling;else for(e=l.child;e!==null;)u|=e.lanes|e.childLanes,a|=e.subtreeFlags,a|=e.flags,e.return=l,e=e.sibling;return l.subtreeFlags|=a,l.childLanes=u,t}function M1(l,t,u){var a=t.pendingProps;switch(rf(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return il(t),null;case 1:return il(t),null;case 3:return u=t.stateNode,a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ht(rl),Zt(),u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(l===null||l.child===null)&&(Na(t)?Bt(t):l===null||l.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,n0())),il(t),null;case 26:return u=t.memoizedState,l===null?(Bt(t),u!==null?(il(t),Ds(t,u)):(il(t),t.flags&=-16777217)):u?u!==l.memoizedState?(Bt(t),il(t),Ds(t,u)):(il(t),t.flags&=-16777217):(l.memoizedProps!==a&&Bt(t),il(t),t.flags&=-16777217),null;case 27:Se(t),u=G.current;var e=t.type;if(l!==null&&t.stateNode!=null)l.memoizedProps!==a&&Bt(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return il(t),null}l=N.current,Na(t)?a0(t):(l=Dv(e,a,u),t.stateNode=l,Bt(t))}return il(t),null;case 5:if(Se(t),u=t.type,l!==null&&t.stateNode!=null)l.memoizedProps!==a&&Bt(t);else{if(!a){if(t.stateNode===null)throw Error(S(166));return il(t),null}if(l=N.current,Na(t))a0(t);else{switch(e=bn(G.current),l){case 1:l=e.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:l=e.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":l=e.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":l=e.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":l=e.createElement("div"),l.innerHTML=" - - \ No newline at end of file + + diff --git a/package-lock.json b/package-lock.json index 52086a7..4952ff6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,21 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@vitejs/plugin-react": "^4.4.1", "react": "^19.1.0", - "react-dom": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.4.1", + "eslint": "^9.39.1", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.2", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "globals": "^16.5.0", + "husky": "^9.1.7", + "lint-staged": "^16.2.7", + "prettier": "^3.7.3", "vite": "^6.3.5" } }, @@ -19,6 +31,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -32,6 +45,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", @@ -46,6 +60,7 @@ "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -55,6 +70,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -85,6 +101,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.27.1", @@ -101,6 +118,7 @@ "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.27.2", @@ -117,6 +135,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", @@ -130,6 +149,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", @@ -147,6 +167,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -156,6 +177,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -165,6 +187,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -174,6 +197,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -183,6 +207,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.27.1", @@ -196,6 +221,7 @@ "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.27.1" @@ -211,6 +237,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -226,6 +253,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -241,6 +269,7 @@ "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", @@ -255,6 +284,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", @@ -269,10 +299,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -289,6 +330,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -305,6 +347,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -321,6 +364,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -337,6 +381,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -353,6 +398,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -369,6 +415,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -385,6 +432,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -401,6 +449,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -417,6 +466,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -433,6 +483,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -449,6 +500,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -465,6 +517,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -481,6 +534,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -497,6 +551,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -513,6 +568,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -529,6 +585,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -545,6 +602,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -561,6 +619,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -577,6 +636,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -593,6 +653,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -609,6 +670,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -625,6 +687,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -641,6 +704,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -657,6 +721,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -673,6 +738,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -682,10 +748,220 @@ "node": ">=18" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -700,6 +976,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -709,6 +986,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -718,6 +996,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -730,12 +1009,14 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -749,6 +1030,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -762,6 +1044,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -775,6 +1058,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -788,6 +1072,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -801,6 +1086,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -814,6 +1100,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -827,6 +1114,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -840,6 +1128,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -853,6 +1142,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -866,6 +1156,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -879,6 +1170,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -892,6 +1184,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -905,6 +1198,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -918,6 +1212,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -931,6 +1226,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -944,6 +1240,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -957,6 +1254,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -970,6 +1268,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -983,6 +1282,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -996,16 +1296,25 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", @@ -1019,6 +1328,7 @@ "version": "7.27.0", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" @@ -1028,6 +1338,7 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", @@ -1038,6 +1349,7 @@ "version": "7.20.7", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" @@ -1047,12 +1359,28 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, "license": "MIT" }, "node_modules/@types/node": { "version": "22.15.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "dev": true, "license": "MIT", "optional": true, "peer": true, @@ -1064,6 +1392,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.26.10", @@ -1080,12 +1409,11 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, "license": "MIT", - "optional": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1093,10 +1421,344 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", + "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.24.5", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1129,17 +1791,79 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "license": "MIT", "optional": true, "peer": true }, - "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", - "funding": [ - { - "type": "opencollective", + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", "url": "https://opencollective.com/browserslist" }, { @@ -1153,16 +1877,188 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", + "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, "license": "MIT" }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -1176,16 +2072,286 @@ } } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/electron-to-chromium": { "version": "1.5.152", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "dev": true, "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/esbuild": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -1226,292 +2392,2761 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, "peerDependencies": { - "picomatch": "^3 || ^4" + "jiti": "*" }, "peerDependenciesMeta": { - "picomatch": { + "jiti": { "optional": true } } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=6" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, "bin": { - "json5": "lib/cli.js" + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "yallist": "^3.0.2" + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, "license": "MIT" }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true } - ], + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" + "dependencies": { + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=16.0.0" } }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "license": "MIT" + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" }, - "peerDependencies": { - "react": "^19.1.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-refresh": { - "version": "0.17.0", + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lint-staged": { + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", + "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^14.0.2", + "listr2": "^9.0.5", + "micromatch": "^4.0.8", + "nano-spawn": "^2.0.0", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nano-spawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", + "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rollup": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.7" - }, - "bin": { - "rollup": "dist/bin/rollup" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": ">=12" }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.2", - "@rollup/rollup-android-arm64": "4.40.2", - "@rollup/rollup-darwin-arm64": "4.40.2", - "@rollup/rollup-darwin-x64": "4.40.2", - "@rollup/rollup-freebsd-arm64": "4.40.2", - "@rollup/rollup-freebsd-x64": "4.40.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", - "@rollup/rollup-linux-arm64-gnu": "4.40.2", - "@rollup/rollup-linux-arm64-musl": "4.40.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-musl": "4.40.2", - "@rollup/rollup-linux-s390x-gnu": "4.40.2", - "@rollup/rollup-linux-x64-gnu": "4.40.2", - "@rollup/rollup-linux-x64-musl": "4.40.2", - "@rollup/rollup-win32-arm64-msvc": "4.40.2", - "@rollup/rollup-win32-ia32-msvc": "4.40.2", - "@rollup/rollup-win32-x64-msvc": "4.40.2", - "fsevents": "~2.3.2" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/terser": { "version": "5.39.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", + "dev": true, "license": "BSD-2-Clause", "optional": true, "peer": true, @@ -1532,6 +5167,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, "license": "MIT", "optional": true, "peer": true @@ -1540,6 +5176,7 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -1552,10 +5189,160 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, "license": "MIT", "optional": true, "peer": true @@ -1564,6 +5351,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -1590,10 +5378,21 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -1664,11 +5463,235 @@ } } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", + "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } } } } diff --git a/package.json b/package.json index 750529b..a89cd8d 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,10 @@ "name": "frontend-tutorial-2", "version": "1.0.0", "description": "", - "main": "index.js", + "type": "module", + "private": true, "scripts": { - "prepare": "husky install", + "prepare": "husky", "prebuild": "npm run lint && npm run format:check", "build": "vite build", "start": "vite", @@ -17,12 +18,11 @@ "author": "", "license": "ISC", "dependencies": { - "@vitejs/plugin-react": "^4.4.1", "react": "^19.1.0", - "react-dom": "^19.1.0", - "vite": "^6.3.5" + "react-dom": "^19.1.0" }, "devDependencies": { + "@vitejs/plugin-react": "^4.4.1", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", "eslint-plugin-import": "^2.32.0", @@ -32,7 +32,8 @@ "globals": "^16.5.0", "husky": "^9.1.7", "lint-staged": "^16.2.7", - "prettier": "^3.7.3" + "prettier": "^3.7.3", + "vite": "^6.3.5" }, "lint-staged": { "*.{js,jsx}": [ diff --git a/src/assets/hammer.png b/src/assets/hammer.png deleted file mode 100644 index dbe8ef5cdd19f8bfa9332641d41e41491056b925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 173316 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
BiwFcUImhh+eRA0|tr(%viGsWC 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 z

DPl#%~U6MHXT7RywBY9W92*;F1UMzPA3 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 diff --git a/src/components/App.css b/src/components/App.css deleted file mode 100644 index 4829c71..0000000 --- a/src/components/App.css +++ /dev/null @@ -1,198 +0,0 @@ -body, -html, -.root { - height: 100%; -} - -.App { - align-items: stretch; - display: flex; - font-family: "Karla", sans-serif; - height: 100%; - width: 100%; -} - -header { - height: 80px; - line-height: 80px; -} - -h1, -h4 { - margin-bottom: 0; - margin-top: 0; -} - -main { - flex: 1; - padding-left: 20px; - padding-right: 20px; -} - -main header { - border-bottom: 1px solid #eee; - margin-bottom: 15px; - margin-left: -20px; - margin-right: -20px; - padding-left: 20px; - padding-right: 20px; -} - -.inventory { - display: flex; - margin-left: -10px; - margin-right: -10px; - width: 100%; -} - -.item { - flex-basis: 0; - flex-grow: 1; - float: left; - max-width: 200px; - padding: 10px; -} - -.item p { - margin-bottom: 5px; - margin-top: 5px; -} - -.thumbnail { - border: 1px solid #eee; - border-radius: 4px; - position: relative; -} - -.thumbnail:before { - content: ""; - display: block; - padding-top: 100%; - position: relative; - width: 100%; -} - -.thumbnail img { - left: 0; - position: absolute; - top: 0; - width: 100%; -} - -.sidebar { - background-color: #241c2c; - color: #fff; - flex-basis: 300px; - flex-grow: 0; - padding-left: 20px; - padding-right: 20px; -} - -.sidebar header { - border-bottom: 1px solid #342c3e; - margin-bottom: 15px; - margin-left: -20px; - margin-right: -20px; - padding-left: 20px; - padding-right: 20px; -} - -button { - background-color: #6c5fc7; - border: 1px solid #6c5fc7; - border-radius: 4px; - color: #fff; - flex-grow: 1; - flex-shrink: 0; - font-size: 14px; - font-weight: bold; - padding: 6px 12px; - outline: none; -} - -button:disabled { - opacity: 0.5; - background-color: #777088; - border-color: #777088; - cursor: default; -} - -button:disabled:hover { - background-color: #777088; - border-color: #777088; - cursor: default; -} - -button:hover { - background-color: #5243bd; - border-color: #5243bd; - cursor: pointer; -} - -main button { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} - -.button-wrapper { - display: flex; - text-align: center; - width: 100%; -} - -.button-wrapper strong { - background-color: #fff; - border: 1px solid #eee; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; - box-sizing: border-box; - flex-basis: 0; - flex-shrink: 1; - font-size: 14px; - font-weight: bold; - padding: 6px 12px; - width: 80%; -} - -.cart { - border: 1px solid #777088; - border-radius: 4px; - margin-bottom: 20px; - padding: 10px; -} - -.cart hr { - border: 0; - border-top: 1px solid #777088; - margin-left: -10px; - margin-right: -10px; -} - -.cart-item { - display: flex; -} - -.cart-item-name { - flex: 1; -} - -.cart-item-price { - flex: 0; -} - -.cart-error { - color: #f36e4f; -} - -.cart-success { - color: #4ff375; -} - -.cart-reset, -.cart-reset:hover { - background-color: transparent; - border: 0; - color: #fff; - font-weight: normal; - margin-left: 15px; -} diff --git a/src/components/App.jsx b/src/components/App.jsx deleted file mode 100644 index 7c91805..0000000 --- a/src/components/App.jsx +++ /dev/null @@ -1,197 +0,0 @@ -import React, { Component } from "react"; -import "./App.css"; -import wrenchImg from "../assets/wrench.png"; -import nailsImg from "../assets/nails.png"; -import hammerImg from "../assets/hammer.png"; - -const monify = (n) => (n / 100).toFixed(2); -const getUniqueId = () => "_" + Math.random().toString(36).substring(2, 9); - -class App extends Component { - constructor(props) { - super(props); - this.state = { - cart: [], - }; - - // generate random email - this.email = Math.random().toString(36).substring(2, 6) + "@yahoo.com"; - - this.store = [ - { - id: "wrench", - name: "Wrench", - price: 500, - img: wrenchImg, - }, - { - id: "nails", - name: "Nails", - price: 25, - img: nailsImg, - }, - { - id: "hammer", - name: "Hammer", - price: 1000, - img: hammerImg, - }, - ]; - this.buyItem = this.buyItem.bind(this); - this.checkout = this.checkout.bind(this); - this.resetCart = this.resetCart.bind(this); - } - - componentDidMount() { - const defaultError = window.onerror; - window.onerror = (error) => { - this.setState({ hasError: true, success: false }); - defaultError(error); - }; - - } - - buyItem(item) { - const cart = [].concat(this.state.cart); - cart.push(item); - console.log(item); - this.setState({ cart, success: false }); - } - - resetCart(event) { - event.preventDefault(); - this.setState({ cart: [], hasError: false, success: false }); - } - - checkout() { - // Generate an error - this.myCodeIsPerfect(); - - const order = { - email: this.email, - cart: this.state.cart, - }; - // generate unique transactionId for correlating checkout flow - const transactionId = getUniqueId(); - - // Set transctionID as header - const fetchData = { - method: "POST", - body: JSON.stringify(order), - headers: new Headers({ "X-Transaction-ID": transactionId }), - }; - - /* - POST request to /checkout endpoint. - - Custom header with transactionId for transaction tracing - - throw error if response !== 200 - */ - // fetch("http://localhost:8000/checkout", fetchData).then( - // (error, response) => { - // if (error) { - // throw error; - // } - // if (response.statusCode === 200) { - // this.setState({ success: true }); - // } else { - // throw new Error( - // response.statusCode + - // " - " + - // (response.statusMessage || response.body) - // ); - // } - // } - // ); - } - - render() { - const total = this.state.cart.reduce((t, i) => t + i.price, 0); - const cartDisplay = this.state.cart.reduce((c, { id }) => { - c[id] = c[id] ? c[id] + 1 : 1; - return c; - }, {}); - - return ( -

- ); - } -} - -export default App; diff --git a/src/index.jsx b/src/index.jsx index 6119863..b4d3190 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,5 +1,74 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; +import React, { useState } from 'react'; +import ReactDOM from 'react-dom/client'; +import './styles.css'; -const root = ReactDOM.createRoot(document.getElementById("root")); -root.render(

Hello World

); \ No newline at end of file +const App = () => { + const [values, setValues] = useState({ first: '', second: '' }); + const [sum, setSum] = useState(null); + const numericPattern = /^-?\d*(\.\d*)?$/; + + const updateValue = (field) => (event) => { + const nextValue = event.target.value; + if (nextValue === '' || numericPattern.test(nextValue)) { + setValues((prev) => ({ ...prev, [field]: nextValue })); + } + }; + + const handleSubmit = (event) => { + event.preventDefault(); + if (values.first === '' || values.second === '') { + setSum(null); + return; + } + setSum(Number(values.first) + Number(values.second)); + }; + + return ( +
+

Simple Adder

+

+ Type two numbers, hit add, and we will do the math for you. +

+
+ + + +
+ {sum !== null && ( +
+ Total + {sum} +
+ )} +
+ ); +}; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..93ec6fc --- /dev/null +++ b/src/styles.css @@ -0,0 +1,112 @@ +:root { + font-family: + 'Inter', + 'Segoe UI', + system-ui, + -apple-system, + BlinkMacSystemFont, + sans-serif; + line-height: 1.4; + color: #f8fafc; + background-color: #0f172a; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: radial-gradient(circle at top, #1e3a8a, #0f172a 60%); + padding: 2rem; +} + +main.app-shell { + width: min(440px, 100%); + background: white; + border-radius: 24px; + padding: 2.5rem 2rem; + box-shadow: 0 25px 60px rgba(15, 23, 42, 0.35); +} + +h1 { + margin: 0 0 1.5rem; + font-size: 1.9rem; + color: #111827; +} + +p.subtitle { + margin: 0 0 2rem; + color: #475569; +} + +form.sum-form { + display: flex; + flex-direction: column; + gap: 1.25rem; +} + +label.field { + display: flex; + flex-direction: column; + gap: 0.35rem; + font-weight: 600; + color: #111827; +} + +input.number-input { + padding: 0.65rem 0.85rem; + border-radius: 12px; + border: 1px solid #cbd5f5; + font-size: 1rem; + transition: + border-color 120ms ease, + box-shadow 120ms ease; +} + +input.number-input:focus-visible { + outline: none; + border-color: #2563eb; + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25); +} + +button.primary { + border: none; + border-radius: 999px; + background: linear-gradient(120deg, #2563eb, #7c3aed); + color: white; + font-size: 1rem; + font-weight: 600; + padding: 0.75rem; + cursor: pointer; + transition: + transform 120ms ease, + box-shadow 120ms ease; +} + +button.primary:hover { + transform: translateY(-1px); + box-shadow: 0 12px 24px rgba(37, 99, 235, 0.35); +} + +.result-card { + margin-top: 2rem; + padding: 1.25rem; + border-radius: 16px; + background: #f8fafc; + border: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 1.1rem; +} + +.result-value { + font-size: 1.75rem; + font-weight: 700; + color: #0f172a; +} diff --git a/vite.config.js b/vite.config.js index b22325f..60128fb 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,21 +1,13 @@ -import { defineConfig } from "vite"; -import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; export default defineConfig({ + plugins: [react()], build: { - sourcemap: true, // Source map generation must be turned on - open: true, // this ensures that the browser opens upon server start - port: 3000, // this sets a default port to 3000 - outDir: "dist", // this sets the output directory to dist - emptyOutDir: true, // this ensures that the output directory is emptied before each build - rollupOptions: { - output: { - sourcemap: true, // Source map generation must be turned on - entryFileNames: "[name].js", // this sets the entry file name to [name].js - chunkFileNames: "[name].js", // this sets the chunk file name to [name].js - assetFileNames: "[name].[ext]", // this sets the asset file name to [name].[ext] - }, - }, + sourcemap: true, }, - plugins: [react()], -}); \ No newline at end of file + server: { + open: true, + port: 3000, + }, +}); From aefb793ae15b5b8276684d7c03d3f6d35f2b5afe Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Sun, 30 Nov 2025 23:54:49 +0530 Subject: [PATCH 06/13] chore: streamline eslint tooling --- eslint.config.mjs | 11 -- package-lock.json | 347 ---------------------------------------------- package.json | 3 - 3 files changed, 361 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index d03ba2e..7048daa 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,8 +2,6 @@ import js from '@eslint/js'; import globals from 'globals'; import reactPlugin from 'eslint-plugin-react'; import reactHooksPlugin from 'eslint-plugin-react-hooks'; -import jsxA11y from 'eslint-plugin-jsx-a11y'; -import importPlugin from 'eslint-plugin-import'; export default [ { @@ -28,14 +26,10 @@ export default [ plugins: { react: reactPlugin, 'react-hooks': reactHooksPlugin, - 'jsx-a11y': jsxA11y, - import: importPlugin, }, rules: { ...reactPlugin.configs.recommended.rules, ...reactHooksPlugin.configs.recommended.rules, - ...jsxA11y.configs.recommended.rules, - ...importPlugin.configs.recommended.rules, 'react/react-in-jsx-scope': 'off', 'react/prop-types': 'off', }, @@ -43,11 +37,6 @@ export default [ react: { version: 'detect', }, - 'import/resolver': { - node: { - extensions: ['.js', '.jsx'], - }, - }, }, }, ]; diff --git a/package-lock.json b/package-lock.json index 4952ff6..3771a06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,9 +15,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.4.1", "eslint": "^9.39.1", - "eslint-config-prettier": "^10.1.8", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "globals": "^16.5.0", @@ -1303,13 +1300,6 @@ "win32" ] }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1369,13 +1359,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/node": { "version": "22.15.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", @@ -1500,16 +1483,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", @@ -1571,28 +1544,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.flat": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", @@ -1670,13 +1621,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -1703,26 +1647,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axe-core": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", - "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -1993,13 +1917,6 @@ "node": ">= 8" } }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -2150,13 +2067,6 @@ "dev": true, "license": "ISC" }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, "node_modules/environment": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", @@ -2471,146 +2381,6 @@ } } }, - "node_modules/eslint-config-prettier": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", - "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "funding": { - "url": "https://opencollective.com/eslint-config-prettier" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, "node_modules/eslint-plugin-react": { "version": "7.37.5", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", @@ -3813,26 +3583,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4019,16 +3769,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4171,21 +3911,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/object.values": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", @@ -4531,27 +4256,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4964,21 +4668,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.12", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", @@ -5093,16 +4782,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5202,32 +4881,6 @@ "node": ">=8.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/package.json b/package.json index a89cd8d..d7a4441 100644 --- a/package.json +++ b/package.json @@ -24,9 +24,6 @@ "devDependencies": { "@vitejs/plugin-react": "^4.4.1", "eslint": "^9.39.1", - "eslint-config-prettier": "^10.1.8", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "globals": "^16.5.0", From a10dfdf0fcb74af721c76b96cb21f3f702718f62 Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Mon, 1 Dec 2025 00:15:42 +0530 Subject: [PATCH 07/13] Add testing stack and CircleCI --- .circleci/config.yml | 35 + package-lock.json | 1573 ++++++++++++++++++++++++++++++++++++++++-- package.json | 13 +- src/App.jsx | 72 ++ src/index.jsx | 77 +-- src/index.test.jsx | 42 ++ vitest.config.mjs | 22 + vitest.setup.js | 1 + 8 files changed, 1693 insertions(+), 142 deletions(-) create mode 100644 .circleci/config.yml create mode 100644 src/App.jsx create mode 100644 src/index.test.jsx create mode 100644 vitest.config.mjs create mode 100644 vitest.setup.js diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..e5fdaad --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,35 @@ +version: 2.1 + +jobs: + build: + docker: + - image: cimg/node:20.17 + working_directory: ~/project + steps: + - checkout + - restore_cache: + keys: + - v1-npm-deps-{{ checksum "package-lock.json" }} + - v1-npm-deps- + - run: + name: Install dependencies + command: npm ci + - save_cache: + key: v1-npm-deps-{{ checksum "package-lock.json" }} + paths: + - ~/.npm + - ./node_modules + - run: + name: Lint + command: npm run lint + - run: + name: Check formatting + command: npm run format:check + - run: + name: Run tests with coverage + command: npm run test + +workflows: + ci: + jobs: + - build diff --git a/package-lock.json b/package-lock.json index 3771a06..b615b35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,17 +13,38 @@ "react-dom": "^19.1.0" }, "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@vitejs/plugin-react": "^4.4.1", + "@vitest/coverage-v8": "^4.0.14", + "@vitest/ui": "^4.0.14", "eslint": "^9.39.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "globals": "^16.5.0", "husky": "^9.1.7", + "jsdom": "^27.2.0", "lint-staged": "^16.2.7", "prettier": "^3.7.3", - "vite": "^6.3.5" + "vite": "^6.3.5", + "vitest": "^4.0.14" } }, + "node_modules/@acemir/cssom": { + "version": "0.9.24", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.24.tgz", + "integrity": "sha512-5YjgMmAiT2rjJZU7XK1SNI7iqTy92DpaYVgG6x63FxkJ11UpYfLndHJATtinWJClAXiOlW9XWaUyAQf8pMrQPg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -38,6 +59,61 @@ "node": ">=6.0.0" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.0.tgz", + "integrity": "sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "lru-cache": "^11.2.2" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.5.tgz", + "integrity": "sha512-Eks6dY8zau4m4wNRQjRVaKQRTalNcPcBvU1ZQ35w5kKRk1gUeNCkVLsRiATurjASTp3TKM4H10wsI50nx3NZdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.2" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -181,9 +257,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -215,13 +291,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.28.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -262,6 +338,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", @@ -307,19 +393,164 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.20.tgz", + "integrity": "sha512-8BHsjXfSciZxjmHQOuVdW2b8WLUPts9a+mfL13/PzEviufUEW2xnvQuOlKs9dRBHgRqJ53SF/DUoK9+MZk72oQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.4", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", @@ -1003,16 +1234,16 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1020,6 +1251,13 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", @@ -1300,6 +1538,111 @@ "win32" ] }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1345,6 +1688,24 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -1391,60 +1752,235 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "node_modules/@vitest/coverage-v8": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.14.tgz", + "integrity": "sha512-EYHLqN/BY6b47qHH7gtMxAg++saoGmsjWmAq9MlXxAz4M0NcHh9iOyKhBZyU4yxZqOd8Xnqp80/5saeitz4Cng==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.0.14", + "ast-v8-to-istanbul": "^0.3.8", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "obug": "^2.1.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.0.14", + "vitest": "4.0.14" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/@vitest/expect": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.14.tgz", + "integrity": "sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.14", + "@vitest/utils": "4.0.14", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@vitest/mocker": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.14.tgz", + "integrity": "sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@vitest/spy": "4.0.14", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } } }, - "node_modules/ansi-escapes": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", - "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "node_modules/@vitest/pretty-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.14.tgz", + "integrity": "sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==", "dev": true, "license": "MIT", "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" + "tinyrainbow": "^3.0.3" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.14.tgz", + "integrity": "sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.14", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.14.tgz", + "integrity": "sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.14", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.14.tgz", + "integrity": "sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.14.tgz", + "integrity": "sha512-fvDz8o7SQpFLoSBo6Cudv+fE85/fPCkwTnLAN85M+Jv7k59w2mSIjT9Q5px7XwGrmYqqKBEYxh/09IBGd1E7AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.14", + "fflate": "^0.8.2", + "flatted": "^3.3.3", + "pathe": "^2.0.3", + "sirv": "^3.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.0.14" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz", + "integrity": "sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.14", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { @@ -1483,6 +2019,16 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", @@ -1621,6 +2167,35 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -1654,6 +2229,16 @@ "dev": true, "license": "MIT" }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -1801,6 +2386,16 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chai": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1917,6 +2512,56 @@ "node": ">= 8" } }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", + "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^4.0.3", + "@csstools/css-syntax-patches-for-csstree": "^1.0.14", + "css-tree": "^3.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", + "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.0.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -1989,6 +2634,13 @@ } } }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2032,6 +2684,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -2045,6 +2707,14 @@ "node": ">=0.10.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2067,6 +2737,19 @@ "dev": true, "license": "ISC" }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/environment": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", @@ -2197,6 +2880,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -2536,6 +3226,16 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2553,6 +3253,16 @@ "dev": true, "license": "MIT" }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2575,11 +3285,14 @@ "license": "MIT" }, "node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -2589,6 +3302,13 @@ } } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -2982,6 +3702,54 @@ "hermes-estree": "0.25.1" } }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/husky": { "version": "9.1.7", "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", @@ -2998,6 +3766,19 @@ "url": "https://github.com/sponsors/typicode" } }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3035,6 +3816,16 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -3313,6 +4104,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -3472,14 +4270,68 @@ "dev": true, "license": "ISC" }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.6", "get-proto": "^1.0.0", @@ -3510,6 +4362,46 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsdom": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.2.0.tgz", + "integrity": "sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@acemir/cssom": "^0.9.23", + "@asamuzakjp/dom-selector": "^6.7.4", + "cssstyle": "^5.3.3", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^8.0.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -3706,6 +4598,68 @@ "yallist": "^3.0.2" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3716,6 +4670,13 @@ "node": ">= 0.4" } }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -3756,6 +4717,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3769,6 +4740,16 @@ "node": "*" } }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3930,6 +4911,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/onetime": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", @@ -4027,6 +5019,19 @@ "node": ">=6" } }, + "node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4054,6 +5059,13 @@ "dev": true, "license": "MIT" }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4062,9 +5074,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", "engines": { @@ -4152,6 +5164,55 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4212,6 +5273,20 @@ "node": ">=0.10.0" } }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -4256,6 +5331,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -4385,6 +5470,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -4549,6 +5654,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -4562,6 +5674,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/slice-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", @@ -4627,6 +5754,20 @@ "source-map": "^0.6.0" } }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -4782,6 +5923,19 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -4821,6 +5975,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, "node_modules/terser": { "version": "5.39.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", @@ -4851,15 +6012,29 @@ "optional": true, "peer": true }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" @@ -4868,6 +6043,36 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", + "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.19" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", + "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -4881,6 +6086,42 @@ "node": ">=8.0" } }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5116,6 +6357,144 @@ } } }, + "node_modules/vitest": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.14.tgz", + "integrity": "sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.0.14", + "@vitest/mocker": "4.0.14", + "@vitest/pretty-format": "4.0.14", + "@vitest/runner": "4.0.14", + "@vitest/snapshot": "4.0.14", + "@vitest/spy": "4.0.14", + "@vitest/utils": "4.0.14", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.14", + "@vitest/browser-preview": "4.0.14", + "@vitest/browser-webdriverio": "4.0.14", + "@vitest/ui": "4.0.14", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5221,6 +6600,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -5287,6 +6683,45 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/package.json b/package.json index d7a4441..6103abf 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,9 @@ "lint": "eslint . --ext .js,.jsx", "format": "prettier --write .", "format:check": "prettier --check .", - "lint-staged": "lint-staged" + "lint-staged": "lint-staged", + "test": "vitest run --coverage", + "test:watch": "vitest --coverage" }, "keywords": [], "author": "", @@ -22,15 +24,22 @@ "react-dom": "^19.1.0" }, "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@vitejs/plugin-react": "^4.4.1", + "@vitest/coverage-v8": "^4.0.14", + "@vitest/ui": "^4.0.14", "eslint": "^9.39.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "globals": "^16.5.0", "husky": "^9.1.7", + "jsdom": "^27.2.0", "lint-staged": "^16.2.7", "prettier": "^3.7.3", - "vite": "^6.3.5" + "vite": "^6.3.5", + "vitest": "^4.0.14" }, "lint-staged": { "*.{js,jsx}": [ diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..60d39ce --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,72 @@ +import React, { useState } from 'react'; +import './styles.css'; + +const App = () => { + const [values, setValues] = useState({ first: '', second: '' }); + const [sum, setSum] = useState(null); + const numericPattern = /^-?\d*(\.\d*)?$/; + + const updateValue = (field) => (event) => { + const nextValue = event.target.value; + if (nextValue === '' || numericPattern.test(nextValue)) { + setValues((prev) => ({ ...prev, [field]: nextValue })); + } + }; + + const handleSubmit = (event) => { + event.preventDefault(); + if (values.first === '' || values.second === '') { + setSum(null); + return; + } + setSum(Number(values.first) + Number(values.second)); + }; + + return ( +
+

Simple Adder

+

+ Type two numbers, hit add, and we will do the math for you. +

+
+ + + +
+ {sum !== null && ( +
+ Total + {sum} +
+ )} +
+ ); +}; + +export default App; diff --git a/src/index.jsx b/src/index.jsx index b4d3190..2ec8927 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,74 +1,9 @@ -import React, { useState } from 'react'; import ReactDOM from 'react-dom/client'; -import './styles.css'; +import App from './App.jsx'; -const App = () => { - const [values, setValues] = useState({ first: '', second: '' }); - const [sum, setSum] = useState(null); - const numericPattern = /^-?\d*(\.\d*)?$/; +const container = document.getElementById('root'); - const updateValue = (field) => (event) => { - const nextValue = event.target.value; - if (nextValue === '' || numericPattern.test(nextValue)) { - setValues((prev) => ({ ...prev, [field]: nextValue })); - } - }; - - const handleSubmit = (event) => { - event.preventDefault(); - if (values.first === '' || values.second === '') { - setSum(null); - return; - } - setSum(Number(values.first) + Number(values.second)); - }; - - return ( -
-

Simple Adder

-

- Type two numbers, hit add, and we will do the math for you. -

-
- - - -
- {sum !== null && ( -
- Total - {sum} -
- )} -
- ); -}; - -const root = ReactDOM.createRoot(document.getElementById('root')); -root.render(); +if (container) { + const root = ReactDOM.createRoot(container); + root.render(); +} diff --git a/src/index.test.jsx b/src/index.test.jsx new file mode 100644 index 0000000..e87e2fb --- /dev/null +++ b/src/index.test.jsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { describe, it, expect } from 'vitest'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import App from './App.jsx'; + +describe('App', () => { + it('adds two numbers and displays the result', async () => { + render(); + + const user = userEvent.setup(); + const firstInput = screen.getByLabelText(/first number/i); + const secondInput = screen.getByLabelText(/second number/i); + const addButton = screen.getByRole('button', { name: /add numbers/i }); + + await user.clear(firstInput); + await user.type(firstInput, '5'); + await user.clear(secondInput); + await user.type(secondInput, '7'); + await user.click(addButton); + + expect(screen.getByText(/total/i)).toBeInTheDocument(); + expect(screen.getByText('12')).toBeInTheDocument(); + }); + + it('does not show a total when inputs are empty', async () => { + render(); + + const user = userEvent.setup(); + const firstInput = screen.getByLabelText(/first number/i); + const secondInput = screen.getByLabelText(/second number/i); + const addButton = screen.getByRole('button', { name: /add numbers/i }); + + secondInput.removeAttribute('required'); + + await user.clear(firstInput); + await user.type(firstInput, '3'); + await user.click(addButton); + + expect(screen.queryByText(/total/i)).not.toBeInTheDocument(); + }); +}); diff --git a/vitest.config.mjs b/vitest.config.mjs new file mode 100644 index 0000000..ee777ca --- /dev/null +++ b/vitest.config.mjs @@ -0,0 +1,22 @@ +import { defineConfig } from 'vitest/config'; +import react from '@vitejs/plugin-react'; + +export default defineConfig({ + plugins: [react()], + test: { + environment: 'jsdom', + globals: true, + setupFiles: './vitest.setup.js', + coverage: { + provider: 'v8', + reporter: ['text', 'html'], + exclude: ['src/styles.css', 'src/index.jsx'], + thresholds: { + statements: 80, + branches: 75, + functions: 80, + lines: 80, + }, + }, + }, +}); diff --git a/vitest.setup.js b/vitest.setup.js new file mode 100644 index 0000000..bb02c60 --- /dev/null +++ b/vitest.setup.js @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest'; From 21509f31f393b3652a08a5256bb02773462dbe06 Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Mon, 1 Dec 2025 00:26:33 +0530 Subject: [PATCH 08/13] Optimize tooling workflow --- .circleci/config.yml | 15 +- .editorconfig | 12 + .gitignore | 6 + .nvmrc | 1 + .prettierignore | 5 +- eslint.config.mjs | 27 ++ package-lock.json | 647 ++++++++++++++++++++++++++++++++++++++++++- package.json | 12 +- 8 files changed, 716 insertions(+), 9 deletions(-) create mode 100644 .editorconfig create mode 100644 .nvmrc diff --git a/.circleci/config.yml b/.circleci/config.yml index e5fdaad..e20025d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,7 +18,6 @@ jobs: key: v1-npm-deps-{{ checksum "package-lock.json" }} paths: - ~/.npm - - ./node_modules - run: name: Lint command: npm run lint @@ -28,6 +27,20 @@ jobs: - run: name: Run tests with coverage command: npm run test + - run: + name: Build application + command: npm run build + - run: + name: Prepare artifacts + command: | + mkdir -p dist + mkdir -p coverage + - store_artifacts: + path: dist + destination: dist + - store_artifacts: + path: coverage + destination: coverage workflows: ci: diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1014ba7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index 31b3425..483c9a5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,12 @@ # build output /dist +/coverage +/coverage/ + +# local env +.env +.env.* # production /build diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..3516580 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.17.0 diff --git a/.prettierignore b/.prettierignore index 5b32e00..00b6949 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,3 +1,4 @@ node_modules -.dist -/dist +dist +build +coverage diff --git a/eslint.config.mjs b/eslint.config.mjs index 7048daa..bf67815 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -2,6 +2,8 @@ import js from '@eslint/js'; import globals from 'globals'; import reactPlugin from 'eslint-plugin-react'; import reactHooksPlugin from 'eslint-plugin-react-hooks'; +import testingLibrary from 'eslint-plugin-testing-library'; +import vitestPlugin from 'eslint-plugin-vitest'; export default [ { @@ -39,4 +41,29 @@ export default [ }, }, }, + { + files: ['**/*.{test,spec}.{js,jsx}'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + ...globals.browser, + ...globals.es2024, + ...globals.vitest, + }, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + plugins: { + 'testing-library': testingLibrary, + vitest: vitestPlugin, + }, + rules: { + ...testingLibrary.configs.react.rules, + ...vitestPlugin.configs.recommended.rules, + }, + }, ]; diff --git a/package-lock.json b/package-lock.json index b615b35..0e0f81e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,10 +18,11 @@ "@testing-library/user-event": "^14.6.1", "@vitejs/plugin-react": "^4.4.1", "@vitest/coverage-v8": "^4.0.14", - "@vitest/ui": "^4.0.14", "eslint": "^9.39.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-vitest": "^0.5.4", "globals": "^16.5.0", "husky": "^9.1.7", "jsdom": "^27.2.0", @@ -29,6 +30,9 @@ "prettier": "^3.7.3", "vite": "^6.3.5", "vitest": "^4.0.14" + }, + "engines": { + "node": ">=20.17.0" } }, "node_modules/@acemir/cssom": { @@ -1251,12 +1255,52 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.29", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.2", @@ -1732,6 +1776,186 @@ "undici-types": "~6.21.0" } }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", + "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.48.0", + "@typescript-eslint/types": "^8.48.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", + "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", + "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", + "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", + "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.48.0", + "@typescript-eslint/tsconfig-utils": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", + "debug": "^4.3.4", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", + "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", + "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.48.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@vitejs/plugin-react": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", @@ -1887,6 +2111,8 @@ "integrity": "sha512-fvDz8o7SQpFLoSBo6Cudv+fE85/fPCkwTnLAN85M+Jv7k59w2mSIjT9Q5px7XwGrmYqqKBEYxh/09IBGd1E7AQ==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@vitest/utils": "4.0.14", "fflate": "^0.8.2", @@ -2069,6 +2295,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -2694,6 +2930,19 @@ "node": ">=6" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -3142,6 +3391,215 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/eslint-plugin-testing-library": { + "version": "7.13.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.13.5.tgz", + "integrity": "sha512-75rUmtNnXeO9cyMwG78vXxGEB7muIQ+IwcwBTma+M9KFc68SFaMKevGydObsUgX+IFef4lRLO/ysR9JqK1odyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "^8.15.0", + "@typescript-eslint/utils": "^8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vitest": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.5.4.tgz", + "integrity": "sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^7.7.1" + }, + "engines": { + "node": "^18.0.0 || >= 20.0.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "vitest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/eslint-scope": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", @@ -3270,6 +3728,36 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3284,6 +3772,16 @@ "dev": true, "license": "MIT" }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -3307,7 +3805,9 @@ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", "dev": true, - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/file-entry-cache": { "version": "8.0.0", @@ -3578,6 +4078,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -4677,6 +5198,16 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -4746,6 +5277,8 @@ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">=10" } @@ -5059,6 +5592,16 @@ "dev": true, "license": "MIT" }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/pathe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", @@ -5235,6 +5778,27 @@ "node": ">=6" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", @@ -5368,6 +5932,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rfdc": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", @@ -5415,6 +5990,30 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -5680,6 +6279,8 @@ "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -5689,6 +6290,16 @@ "node": ">=18" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", @@ -6092,6 +6703,8 @@ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "license": "MIT", + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -6122,6 +6735,19 @@ "node": ">=20" } }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6213,6 +6839,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/unbox-primitive": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", diff --git a/package.json b/package.json index 6103abf..d3ab9c0 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,21 @@ "prebuild": "npm run lint && npm run format:check", "build": "vite build", "start": "vite", + "dev": "vite", + "preview": "vite preview", "lint": "eslint . --ext .js,.jsx", "format": "prettier --write .", "format:check": "prettier --check .", "lint-staged": "lint-staged", "test": "vitest run --coverage", - "test:watch": "vitest --coverage" + "test:watch": "vitest" }, "keywords": [], "author": "", "license": "ISC", + "engines": { + "node": ">=20.17.0" + }, "dependencies": { "react": "^19.1.0", "react-dom": "^19.1.0" @@ -29,10 +34,11 @@ "@testing-library/user-event": "^14.6.1", "@vitejs/plugin-react": "^4.4.1", "@vitest/coverage-v8": "^4.0.14", - "@vitest/ui": "^4.0.14", "eslint": "^9.39.1", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-vitest": "^0.5.4", "globals": "^16.5.0", "husky": "^9.1.7", "jsdom": "^27.2.0", @@ -42,7 +48,7 @@ "vitest": "^4.0.14" }, "lint-staged": { - "*.{js,jsx}": [ + "*.{js,jsx,mjs}": [ "eslint --fix --max-warnings=0", "prettier --write" ], From 7ac49a450e1bc4f2a08447716079ea96a65fccee Mon Sep 17 00:00:00 2001 From: anuragp100 Date: Mon, 1 Dec 2025 00:27:33 +0530 Subject: [PATCH 09/13] fixed circleCI config --- .circleci/config.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e20025d..b1f0179 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,18 +27,18 @@ jobs: - run: name: Run tests with coverage command: npm run test - - run: + - run: name: Build application command: npm run build - - run: + - run: name: Prepare artifacts command: | mkdir -p dist mkdir -p coverage - - store_artifacts: + - store_artifacts: path: dist destination: dist - - store_artifacts: + - store_artifacts: path: coverage destination: coverage From 74885153722da778e541da65e2345ae90700467f Mon Sep 17 00:00:00 2001 From: Anurag Pandey Date: Wed, 1 Apr 2026 18:05:14 +0530 Subject: [PATCH 10/13] removed --- .circleci/config.yml | 48 - .editorconfig | 12 - .gitignore | 19 - .husky/pre-commit | 12 - .nvmrc | 1 - .prettierignore | 4 - .prettierrc | 6 - dist/favicon.ico | Bin 24838 -> 0 bytes dist/index.html | 13 - eslint.config.mjs | 69 - index.html | 12 - package-lock.json | 7426 ------------------------------------------ package.json | 59 - public/favicon.ico | Bin 24838 -> 0 bytes src/App.jsx | 72 - src/index.jsx | 9 - src/index.test.jsx | 42 - src/styles.css | 112 - vite.config.js | 13 - vitest.config.mjs | 22 - vitest.setup.js | 1 - 21 files changed, 7952 deletions(-) delete mode 100644 .circleci/config.yml delete mode 100644 .editorconfig delete mode 100644 .gitignore delete mode 100755 .husky/pre-commit delete mode 100644 .nvmrc delete mode 100644 .prettierignore delete mode 100644 .prettierrc delete mode 100644 dist/favicon.ico delete mode 100644 dist/index.html delete mode 100644 eslint.config.mjs delete mode 100644 index.html delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 public/favicon.ico delete mode 100644 src/App.jsx delete mode 100644 src/index.jsx delete mode 100644 src/index.test.jsx delete mode 100644 src/styles.css delete mode 100644 vite.config.js delete mode 100644 vitest.config.mjs delete mode 100644 vitest.setup.js diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index b1f0179..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,48 +0,0 @@ -version: 2.1 - -jobs: - build: - docker: - - image: cimg/node:20.17 - working_directory: ~/project - steps: - - checkout - - restore_cache: - keys: - - v1-npm-deps-{{ checksum "package-lock.json" }} - - v1-npm-deps- - - run: - name: Install dependencies - command: npm ci - - save_cache: - key: v1-npm-deps-{{ checksum "package-lock.json" }} - paths: - - ~/.npm - - run: - name: Lint - command: npm run lint - - run: - name: Check formatting - command: npm run format:check - - run: - name: Run tests with coverage - command: npm run test - - run: - name: Build application - command: npm run build - - run: - name: Prepare artifacts - command: | - mkdir -p dist - mkdir -p coverage - - store_artifacts: - path: dist - destination: dist - - store_artifacts: - path: coverage - destination: coverage - -workflows: - ci: - jobs: - - build diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 1014ba7..0000000 --- a/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 2 -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 483c9a5..0000000 --- a/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules - -# build output -/dist -/coverage -/coverage/ - -# local env -.env -.env.* - -# production -/build - -# misc -.DS_Store diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index d922a7e..0000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env sh - -set -euo pipefail - -echo "" -echo "🔍 Running pre-commit checks (lint-staged)..." - -if ! npm run lint-staged; then - echo "" - echo "❌ Linting or formatting failed. Fix issues before committing." - exit 1 -fi diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 3516580..0000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -20.17.0 diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 00b6949..0000000 --- a/.prettierignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -dist -build -coverage diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 9365378..0000000 --- a/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "singleQuote": true, - "semi": true, - "trailingComma": "es5", - "printWidth": 90 -} diff --git a/dist/favicon.ico b/dist/favicon.ico deleted file mode 100644 index 5c125de5d897c1ff5692a656485b3216123dcd89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24838 zcmeI4X^>UL6@VY56)S&I{`6Nu0RscWCdj@GJHx(%?6_-;yKy1n;EEf9f}pr1CW5HA zYt$%U#C=}?jWH&%G@BaHBxsWAoUb3}&6%Ei@4Ii_JRa1`RQ23*yU)_wJ$?H0>6gj0 z${d_I^w5kvTW3xYEc?FvyP3>p$!py@`@T`|dVepIsjbbvR}af%KKy7YuQ%SDC^zmNWPYR^7avI5P-@dKev}UZ^aDAOyci9Nn zwR4qEz~tSvrp|#ACvWzo9`3B;`}^{t18dxaH;?xT7#hmJiKAaI;|O=$yxzXNOHGw~ z^!5pE^SW`av%t_$22LFPsM^l%=PSp!3r`>9w%s+^ZQYnnTQ*Ggd9-1~kj_o$YdW@b ztCkJ(ZGYjusqV5L4{^)R9Gt@gzU1t|?xhE&c^q(|(R#oa*}Sj5c({A$mhrB8*Y@tc zr)K#C{KOp-eHl35ZWJ1&zkmI>9DL%!KJE@_!=W?aH;i?ZDb0O1HPFy6 zcV0Kf)eZ0BHmz9vowF7EA{z*aue9M)iJP&Zd)qYlfJ-c^sS1qY^?>s)!!Ta@x zr@Lz|80r)7<{QVk9Z$}5SDaVtz*Rc?oH5~Wcjoc^eA&EdJ^h@aZ-BvL{K2s_7Cvfr zFL&(R?D&(9OxsS%z_BzI9^Ai^AOF$PUpGk~oO(=OpMc3@Zh&KH1a9>G%%0rC)t@oQ z4d~M`hX+g^Wf8P>A&&qjq|tZe*44Laq7qVPK#QIc)s*Qj34P`NL`Q{xBI`SnR!RC? zlGdTvC%oVZ@0BgcH>}qc!uzul@{i@sH}L0|=eZBJ9qF!HHaw?`s0(_DJj(v`(memI z6jH}=BfGlSlRV4)ouv#h*65yRR>G zo;I#~BVK&l&{+H=_~Nq$d%bFLh7GE5pS&>Fr{RMe>)MM19~z6F1oQo_y>vtlpEZF# zIc82TpMc3z9;{Q)=zG5B#4+96yHCvYy8p4;C%6x`%y$2HccC9|#vGVD)**C0xX|R| z%h)}ze!Tnrvvb@RZ!GX@2lMEq`=`08b`9$%FnN@*zJLo2wD5?MbE&LN)Z>Kty*;m= zt{Cn0>Q3nk)`bR^{dVf!3ECg6Yz4YcskI>$XH*L8E)MsudhnkP0B>+M(XEcErHUBKi~ z1`fEP&WPhp{@Ew?cPlR(ma9iw8NbJWHqp=btCtM*FnP*@ZwwlJ&-Y|LEjgvJzUtPc zz5CrWNBRV8d0-bpWAl<=zM1PU8lJseDxBK^QuuCj2fg{&2#*IG5ezf1B(o%lU+OZx7So4D?yi2*h zFBkr5pG3AJs83uy!~C3mQZLp~ss7-N9oAY>t)!eC#s)CrPukK!(!G*)H?v(~JCoj# zfvgTxMV{4?zL1neQ;ITVBAdFDf`1yG$o{g7^1sR_n{RZ7tnXio?tM%240}(z9xFY0 zlz{^-G*RET;-`7`>e0b{{`!2kM)t7Si9ZqD$~wh*hyGC>z~qs@0T&u*;h}hiKGEga zHkJ;%7aNc^o_0(>Z{Gp069H;TwPTUnvvX0SJ+kGGZ0lFBWocl>kaa)AoiMta+x_-J-?#KHFnJ*! zwD1V?)4s#|?O)DlMBhVv4IgZs?d>b<6%xK3<{o91H?-%8?PK!_fm#3d>{{gQ z?*8`b{G6?bZKdO{_9IVlz{R$PcGjeL|3*|@upby()_Lf^eQ&XQe)CjsbJ3Uolrgt< zweld3GH|fZpn(=1@PencO_a_)v6tU?WV-w8wfXLbOGae0{<*C?Ead$6v+> z|EQKThJTmwXK!c6AOD+FgtDv7i<48{-OPce!KDVkzR+XKOcREPha(;$}iUb!*)f-Fb}Y4@r9z-_{OIg z`xn^T#ZtEPv_T$M*Sr+=Z{q#~8$|7Y{0!*2u${D*Jj%dfOrS~FzpH*_|55J!7kl4w z?LT!7T(!3!632pmZh?dh`n-z$_ts42pn6;c`}hx;TSYd0idsqal5&0uGV=UM{c9xQ z1KK6&TS+a^H|6B_hPo1W3 zh+Dun!`UkP%H3}*@IE18q{7&MH2f3?T6o}Jf+xI@fh=SyUOArw`*w1_-PUlHZTHc@ z--yqIxPtI}IjPRzLIZ8cPv4P=>?A&=E~~0)>&J#V;TwAR*6}`01iu~U$@prtzW6YS ze}E>gUX+0YuF}B+Uhw2x7a7Q+oOzMNFHTNN<)40Rzg#`pABKF18@l}5A>RL`?Ri;Z zC8ExD$)im1@R{N7(wIog8$Yn(6%q$yd9(zKe};OnH%;mWBs7)>ls~T3Wi6!Xqw6+dpJLVS1P| z9qV%io-nE*rYcPxiS31>U_>mbPTXxkC*!?*zefr#2vF|qr8{|4|u^7-pD|f z&OPc->UKu)=iHgIpysp;Lsbyj}GJWoBkufOA={CRTUjr%af zc5pUH9{pg?M5%+)oN`q9yBbBt@+3xHV)qGm8b)Cp-w7~CwEhtBUk0rbjrqM zTb|tQ3-5-pw^cul`T+X&s?O;?V(FD!(Q9Qg@(LTCNz{0-vBM^SX5lti3|GpxFn4;Ax6pGc~t)R!Bo${lYH(* z!F&5X*?S&}YoDCyzwv1H+XI(+rL`;RN9}iLxlfr-r&vGG8OQa@=>+a)+Ij)sd_{wu z1Am(+3-RFr4&N8N6+hqo19S#;SA1-hG>07p3}&*j4CR+rqdV)^6n; z_vFr!(a%-=#=kb{pYmNL@6|DWkw~%E2V2jYl*e1}c{e$fib?(O+hs}eoBLRo&9(;J}YV}0Mi;LZAe{U$(s= zT<-IaV$Z+q-P!~3{HxN>Kbw30jXzM&I(S<6Ksx^}HvU2Vntb!etSsm0>)j}Me^+L5{2yz--)?W`Q?az z!WLG4UNP}+#C+NKH+ZG-Q=E>IPp%LuKLx$$8NAOGr(#~P>!EA zDYlpXDR=xM?Xv5(-qp74Cw3LzBeASHSBY`OezkbOyjP!G%WSymju_C$VBl--z - - - - - Simple Adder - - - - -
- - diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index bf67815..0000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,69 +0,0 @@ -import js from '@eslint/js'; -import globals from 'globals'; -import reactPlugin from 'eslint-plugin-react'; -import reactHooksPlugin from 'eslint-plugin-react-hooks'; -import testingLibrary from 'eslint-plugin-testing-library'; -import vitestPlugin from 'eslint-plugin-vitest'; - -export default [ - { - ignores: ['dist/**', 'node_modules/**'], - }, - js.configs.recommended, - { - files: ['**/*.{js,jsx}'], - languageOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - globals: { - ...globals.browser, - ...globals.es2024, - }, - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - plugins: { - react: reactPlugin, - 'react-hooks': reactHooksPlugin, - }, - rules: { - ...reactPlugin.configs.recommended.rules, - ...reactHooksPlugin.configs.recommended.rules, - 'react/react-in-jsx-scope': 'off', - 'react/prop-types': 'off', - }, - settings: { - react: { - version: 'detect', - }, - }, - }, - { - files: ['**/*.{test,spec}.{js,jsx}'], - languageOptions: { - ecmaVersion: 'latest', - sourceType: 'module', - globals: { - ...globals.browser, - ...globals.es2024, - ...globals.vitest, - }, - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - }, - }, - plugins: { - 'testing-library': testingLibrary, - vitest: vitestPlugin, - }, - rules: { - ...testingLibrary.configs.react.rules, - ...vitestPlugin.configs.recommended.rules, - }, - }, -]; diff --git a/index.html b/index.html deleted file mode 100644 index d23bc11..0000000 --- a/index.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Simple Adder - - -
- - - diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 0e0f81e..0000000 --- a/package-lock.json +++ /dev/null @@ -1,7426 +0,0 @@ -{ - "name": "frontend-tutorial-2", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "frontend-tutorial-2", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0" - }, - "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@vitejs/plugin-react": "^4.4.1", - "@vitest/coverage-v8": "^4.0.14", - "eslint": "^9.39.1", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-testing-library": "^7.0.5", - "eslint-plugin-vitest": "^0.5.4", - "globals": "^16.5.0", - "husky": "^9.1.7", - "jsdom": "^27.2.0", - "lint-staged": "^16.2.7", - "prettier": "^3.7.3", - "vite": "^6.3.5", - "vitest": "^4.0.14" - }, - "engines": { - "node": ">=20.17.0" - } - }, - "node_modules/@acemir/cssom": { - "version": "0.9.24", - "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.24.tgz", - "integrity": "sha512-5YjgMmAiT2rjJZU7XK1SNI7iqTy92DpaYVgG6x63FxkJ11UpYfLndHJATtinWJClAXiOlW9XWaUyAQf8pMrQPg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", - "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@asamuzakjp/css-color": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.0.tgz", - "integrity": "sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.4", - "@csstools/css-color-parser": "^3.1.0", - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4", - "lru-cache": "^11.2.2" - } - }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@asamuzakjp/dom-selector": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.5.tgz", - "integrity": "sha512-Eks6dY8zau4m4wNRQjRVaKQRTalNcPcBvU1ZQ35w5kKRk1gUeNCkVLsRiATurjASTp3TKM4H10wsI50nx3NZdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/nwsapi": "^2.3.9", - "bidi-js": "^1.0.3", - "css-tree": "^3.1.0", - "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.2.2" - } - }, - "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@asamuzakjp/nwsapi": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", - "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", - "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", - "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", - "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" - } - }, - "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.20.tgz", - "integrity": "sha512-8BHsjXfSciZxjmHQOuVdW2b8WLUPts9a+mfL13/PzEviufUEW2xnvQuOlKs9dRBHgRqJ53SF/DUoK9+MZk72oQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", - "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", - "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", - "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", - "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", - "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", - "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", - "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", - "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", - "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", - "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", - "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", - "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", - "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", - "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", - "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", - "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", - "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", - "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", - "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", - "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/dom": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "picocolors": "1.1.1", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", - "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "picocolors": "^1.1.1", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", - "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@testing-library/user-event": { - "version": "14.6.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", - "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", - "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/chai": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/deep-eql": "*", - "assertion-error": "^2.0.1" - } - }, - "node_modules/@types/deep-eql": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.15.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", - "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", - "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.0", - "@typescript-eslint/types": "^8.48.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", - "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", - "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", - "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", - "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.48.0", - "@typescript-eslint/tsconfig-utils": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0", - "debug": "^4.3.4", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", - "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", - "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.48.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", - "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.26.10", - "@babel/plugin-transform-react-jsx-self": "^7.25.9", - "@babel/plugin-transform-react-jsx-source": "^7.25.9", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.14.tgz", - "integrity": "sha512-EYHLqN/BY6b47qHH7gtMxAg++saoGmsjWmAq9MlXxAz4M0NcHh9iOyKhBZyU4yxZqOd8Xnqp80/5saeitz4Cng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.0.14", - "ast-v8-to-istanbul": "^0.3.8", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.1", - "obug": "^2.1.1", - "std-env": "^3.10.0", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "4.0.14", - "vitest": "4.0.14" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/expect": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.14.tgz", - "integrity": "sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.0.14", - "@vitest/utils": "4.0.14", - "chai": "^6.2.1", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/mocker": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.14.tgz", - "integrity": "sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/spy": "4.0.14", - "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "msw": "^2.4.9", - "vite": "^6.0.0 || ^7.0.0-0" - }, - "peerDependenciesMeta": { - "msw": { - "optional": true - }, - "vite": { - "optional": true - } - } - }, - "node_modules/@vitest/pretty-format": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.14.tgz", - "integrity": "sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.14.tgz", - "integrity": "sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.0.14", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.14.tgz", - "integrity": "sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.0.14", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.14.tgz", - "integrity": "sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/ui": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.14.tgz", - "integrity": "sha512-fvDz8o7SQpFLoSBo6Cudv+fE85/fPCkwTnLAN85M+Jv7k59w2mSIjT9Q5px7XwGrmYqqKBEYxh/09IBGd1E7AQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/utils": "4.0.14", - "fflate": "^0.8.2", - "flatted": "^3.3.3", - "pathe": "^2.0.3", - "sirv": "^3.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "4.0.14" - } - }, - "node_modules/@vitest/utils": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz", - "integrity": "sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.0.14", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", - "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "environment": "^1.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/assertion-error": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/ast-v8-to-istanbul": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", - "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.31", - "estree-walker": "^3.0.3", - "js-tokens": "^9.0.1" - } - }, - "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chai": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", - "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", - "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^7.1.0", - "string-width": "^8.0.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", - "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", - "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@asamuzakjp/css-color": "^4.0.3", - "@csstools/css-syntax-patches-for-csstree": "^1.0.14", - "css-tree": "^3.1.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-urls": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", - "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", - "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.152", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", - "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", - "dev": true, - "license": "ISC" - }, - "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/environment": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", - "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esbuild": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.4", - "@esbuild/android-arm": "0.25.4", - "@esbuild/android-arm64": "0.25.4", - "@esbuild/android-x64": "0.25.4", - "@esbuild/darwin-arm64": "0.25.4", - "@esbuild/darwin-x64": "0.25.4", - "@esbuild/freebsd-arm64": "0.25.4", - "@esbuild/freebsd-x64": "0.25.4", - "@esbuild/linux-arm": "0.25.4", - "@esbuild/linux-arm64": "0.25.4", - "@esbuild/linux-ia32": "0.25.4", - "@esbuild/linux-loong64": "0.25.4", - "@esbuild/linux-mips64el": "0.25.4", - "@esbuild/linux-ppc64": "0.25.4", - "@esbuild/linux-riscv64": "0.25.4", - "@esbuild/linux-s390x": "0.25.4", - "@esbuild/linux-x64": "0.25.4", - "@esbuild/netbsd-arm64": "0.25.4", - "@esbuild/netbsd-x64": "0.25.4", - "@esbuild/openbsd-arm64": "0.25.4", - "@esbuild/openbsd-x64": "0.25.4", - "@esbuild/sunos-x64": "0.25.4", - "@esbuild/win32-arm64": "0.25.4", - "@esbuild/win32-ia32": "0.25.4", - "@esbuild/win32-x64": "0.25.4" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "hermes-parser": "^0.25.1", - "zod": "^3.25.0 || ^4.0.0", - "zod-validation-error": "^3.5.0 || ^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-plugin-testing-library": { - "version": "7.13.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.13.5.tgz", - "integrity": "sha512-75rUmtNnXeO9cyMwG78vXxGEB7muIQ+IwcwBTma+M9KFc68SFaMKevGydObsUgX+IFef4lRLO/ysR9JqK1odyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "^8.15.0", - "@typescript-eslint/utils": "^8.15.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-vitest": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.5.4.tgz", - "integrity": "sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^7.7.1" - }, - "engines": { - "node": "^18.0.0 || >= 20.0.0" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "vitest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "vitest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-vitest/node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", - "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", - "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", - "dev": true, - "license": "MIT" - }, - "node_modules/hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.1" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/husky": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", - "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", - "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", - "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.23", - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "27.2.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.2.0.tgz", - "integrity": "sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@acemir/cssom": "^0.9.23", - "@asamuzakjp/dom-selector": "^6.7.4", - "cssstyle": "^5.3.3", - "data-urls": "^6.0.0", - "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "parse5": "^8.0.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^6.0.0", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^8.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.1.0", - "ws": "^8.18.3", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lint-staged": { - "version": "16.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", - "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", - "dev": true, - "license": "MIT", - "dependencies": { - "commander": "^14.0.2", - "listr2": "^9.0.5", - "micromatch": "^4.0.8", - "nano-spawn": "^2.0.0", - "pidtree": "^0.6.0", - "string-argv": "^0.3.2", - "yaml": "^2.8.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/listr2": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", - "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^5.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.1.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", - "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^7.0.0", - "cli-cursor": "^5.0.0", - "slice-ansi": "^7.1.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/magicast": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", - "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", - "source-map-js": "^1.2.1" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nano-spawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", - "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=20.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", - "dev": true, - "funding": [ - "https://github.com/sponsors/sxzz", - "https://opencollective.com/debug" - ], - "license": "MIT" - }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", - "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^6.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", - "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rollup": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.7" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.2", - "@rollup/rollup-android-arm64": "4.40.2", - "@rollup/rollup-darwin-arm64": "4.40.2", - "@rollup/rollup-darwin-x64": "4.40.2", - "@rollup/rollup-freebsd-arm64": "4.40.2", - "@rollup/rollup-freebsd-x64": "4.40.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", - "@rollup/rollup-linux-arm64-gnu": "4.40.2", - "@rollup/rollup-linux-arm64-musl": "4.40.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-musl": "4.40.2", - "@rollup/rollup-linux-s390x-gnu": "4.40.2", - "@rollup/rollup-linux-x64-gnu": "4.40.2", - "@rollup/rollup-linux-x64-musl": "4.40.2", - "@rollup/rollup-win32-arm64-msvc": "4.40.2", - "@rollup/rollup-win32-ia32-msvc": "4.40.2", - "@rollup/rollup-win32-x64-msvc": "4.40.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true, - "license": "ISC" - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sirv": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", - "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", - "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true, - "license": "MIT" - }, - "node_modules/std-env": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", - "dev": true, - "license": "MIT" - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", - "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.3.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/terser": { - "version": "5.39.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", - "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyrainbow": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", - "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tldts": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", - "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^7.0.19" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "7.0.19", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", - "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", - "dev": true, - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", - "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^7.0.5" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/vite": { - "version": "6.3.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", - "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vitest": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.14.tgz", - "integrity": "sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/expect": "4.0.14", - "@vitest/mocker": "4.0.14", - "@vitest/pretty-format": "4.0.14", - "@vitest/runner": "4.0.14", - "@vitest/snapshot": "4.0.14", - "@vitest/spy": "4.0.14", - "@vitest/utils": "4.0.14", - "es-module-lexer": "^1.7.0", - "expect-type": "^1.2.2", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^3.10.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3", - "vite": "^6.0.0 || ^7.0.0", - "why-is-node-running": "^2.3.0" - }, - "bin": { - "vitest": "vitest.mjs" - }, - "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@edge-runtime/vm": "*", - "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.0.14", - "@vitest/browser-preview": "4.0.14", - "@vitest/browser-webdriverio": "4.0.14", - "@vitest/ui": "4.0.14", - "happy-dom": "*", - "jsdom": "*" - }, - "peerDependenciesMeta": { - "@edge-runtime/vm": { - "optional": true - }, - "@opentelemetry/api": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@vitest/browser-playwright": { - "optional": true - }, - "@vitest/browser-preview": { - "optional": true - }, - "@vitest/browser-webdriverio": { - "optional": true - }, - "@vitest/ui": { - "optional": true - }, - "happy-dom": { - "optional": true - }, - "jsdom": { - "optional": true - } - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/webidl-conversions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", - "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/why-is-node-running": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "siginfo": "^2.0.0", - "stackback": "0.0.2" - }, - "bin": { - "why-is-node-running": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", - "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.2.1", - "string-width": "^7.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", - "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - }, - "funding": { - "url": "https://github.com/sponsors/eemeli" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", - "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", - "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.25.0 || ^4.0.0" - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index d3ab9c0..0000000 --- a/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "frontend-tutorial-2", - "version": "1.0.0", - "description": "", - "type": "module", - "private": true, - "scripts": { - "prepare": "husky", - "prebuild": "npm run lint && npm run format:check", - "build": "vite build", - "start": "vite", - "dev": "vite", - "preview": "vite preview", - "lint": "eslint . --ext .js,.jsx", - "format": "prettier --write .", - "format:check": "prettier --check .", - "lint-staged": "lint-staged", - "test": "vitest run --coverage", - "test:watch": "vitest" - }, - "keywords": [], - "author": "", - "license": "ISC", - "engines": { - "node": ">=20.17.0" - }, - "dependencies": { - "react": "^19.1.0", - "react-dom": "^19.1.0" - }, - "devDependencies": { - "@testing-library/jest-dom": "^6.9.1", - "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@vitejs/plugin-react": "^4.4.1", - "@vitest/coverage-v8": "^4.0.14", - "eslint": "^9.39.1", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-testing-library": "^7.0.5", - "eslint-plugin-vitest": "^0.5.4", - "globals": "^16.5.0", - "husky": "^9.1.7", - "jsdom": "^27.2.0", - "lint-staged": "^16.2.7", - "prettier": "^3.7.3", - "vite": "^6.3.5", - "vitest": "^4.0.14" - }, - "lint-staged": { - "*.{js,jsx,mjs}": [ - "eslint --fix --max-warnings=0", - "prettier --write" - ], - "*.{css,html,json,md}": [ - "prettier --write" - ] - } -} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 5c125de5d897c1ff5692a656485b3216123dcd89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24838 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 { - const [values, setValues] = useState({ first: '', second: '' }); - const [sum, setSum] = useState(null); - const numericPattern = /^-?\d*(\.\d*)?$/; - - const updateValue = (field) => (event) => { - const nextValue = event.target.value; - if (nextValue === '' || numericPattern.test(nextValue)) { - setValues((prev) => ({ ...prev, [field]: nextValue })); - } - }; - - const handleSubmit = (event) => { - event.preventDefault(); - if (values.first === '' || values.second === '') { - setSum(null); - return; - } - setSum(Number(values.first) + Number(values.second)); - }; - - return ( -
-

Simple Adder

-

- Type two numbers, hit add, and we will do the math for you. -

-
- - - -
- {sum !== null && ( -
- Total - {sum} -
- )} -
- ); -}; - -export default App; diff --git a/src/index.jsx b/src/index.jsx deleted file mode 100644 index 2ec8927..0000000 --- a/src/index.jsx +++ /dev/null @@ -1,9 +0,0 @@ -import ReactDOM from 'react-dom/client'; -import App from './App.jsx'; - -const container = document.getElementById('root'); - -if (container) { - const root = ReactDOM.createRoot(container); - root.render(); -} diff --git a/src/index.test.jsx b/src/index.test.jsx deleted file mode 100644 index e87e2fb..0000000 --- a/src/index.test.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { describe, it, expect } from 'vitest'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import App from './App.jsx'; - -describe('App', () => { - it('adds two numbers and displays the result', async () => { - render(); - - const user = userEvent.setup(); - const firstInput = screen.getByLabelText(/first number/i); - const secondInput = screen.getByLabelText(/second number/i); - const addButton = screen.getByRole('button', { name: /add numbers/i }); - - await user.clear(firstInput); - await user.type(firstInput, '5'); - await user.clear(secondInput); - await user.type(secondInput, '7'); - await user.click(addButton); - - expect(screen.getByText(/total/i)).toBeInTheDocument(); - expect(screen.getByText('12')).toBeInTheDocument(); - }); - - it('does not show a total when inputs are empty', async () => { - render(); - - const user = userEvent.setup(); - const firstInput = screen.getByLabelText(/first number/i); - const secondInput = screen.getByLabelText(/second number/i); - const addButton = screen.getByRole('button', { name: /add numbers/i }); - - secondInput.removeAttribute('required'); - - await user.clear(firstInput); - await user.type(firstInput, '3'); - await user.click(addButton); - - expect(screen.queryByText(/total/i)).not.toBeInTheDocument(); - }); -}); diff --git a/src/styles.css b/src/styles.css deleted file mode 100644 index 93ec6fc..0000000 --- a/src/styles.css +++ /dev/null @@ -1,112 +0,0 @@ -:root { - font-family: - 'Inter', - 'Segoe UI', - system-ui, - -apple-system, - BlinkMacSystemFont, - sans-serif; - line-height: 1.4; - color: #f8fafc; - background-color: #0f172a; -} - -* { - box-sizing: border-box; -} - -body { - margin: 0; - min-height: 100vh; - display: flex; - align-items: center; - justify-content: center; - background: radial-gradient(circle at top, #1e3a8a, #0f172a 60%); - padding: 2rem; -} - -main.app-shell { - width: min(440px, 100%); - background: white; - border-radius: 24px; - padding: 2.5rem 2rem; - box-shadow: 0 25px 60px rgba(15, 23, 42, 0.35); -} - -h1 { - margin: 0 0 1.5rem; - font-size: 1.9rem; - color: #111827; -} - -p.subtitle { - margin: 0 0 2rem; - color: #475569; -} - -form.sum-form { - display: flex; - flex-direction: column; - gap: 1.25rem; -} - -label.field { - display: flex; - flex-direction: column; - gap: 0.35rem; - font-weight: 600; - color: #111827; -} - -input.number-input { - padding: 0.65rem 0.85rem; - border-radius: 12px; - border: 1px solid #cbd5f5; - font-size: 1rem; - transition: - border-color 120ms ease, - box-shadow 120ms ease; -} - -input.number-input:focus-visible { - outline: none; - border-color: #2563eb; - box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25); -} - -button.primary { - border: none; - border-radius: 999px; - background: linear-gradient(120deg, #2563eb, #7c3aed); - color: white; - font-size: 1rem; - font-weight: 600; - padding: 0.75rem; - cursor: pointer; - transition: - transform 120ms ease, - box-shadow 120ms ease; -} - -button.primary:hover { - transform: translateY(-1px); - box-shadow: 0 12px 24px rgba(37, 99, 235, 0.35); -} - -.result-card { - margin-top: 2rem; - padding: 1.25rem; - border-radius: 16px; - background: #f8fafc; - border: 1px solid #e2e8f0; - display: flex; - justify-content: space-between; - align-items: center; - font-size: 1.1rem; -} - -.result-value { - font-size: 1.75rem; - font-weight: 700; - color: #0f172a; -} diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index 60128fb..0000000 --- a/vite.config.js +++ /dev/null @@ -1,13 +0,0 @@ -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; - -export default defineConfig({ - plugins: [react()], - build: { - sourcemap: true, - }, - server: { - open: true, - port: 3000, - }, -}); diff --git a/vitest.config.mjs b/vitest.config.mjs deleted file mode 100644 index ee777ca..0000000 --- a/vitest.config.mjs +++ /dev/null @@ -1,22 +0,0 @@ -import { defineConfig } from 'vitest/config'; -import react from '@vitejs/plugin-react'; - -export default defineConfig({ - plugins: [react()], - test: { - environment: 'jsdom', - globals: true, - setupFiles: './vitest.setup.js', - coverage: { - provider: 'v8', - reporter: ['text', 'html'], - exclude: ['src/styles.css', 'src/index.jsx'], - thresholds: { - statements: 80, - branches: 75, - functions: 80, - lines: 80, - }, - }, - }, -}); diff --git a/vitest.setup.js b/vitest.setup.js deleted file mode 100644 index bb02c60..0000000 --- a/vitest.setup.js +++ /dev/null @@ -1 +0,0 @@ -import '@testing-library/jest-dom/vitest'; From aa5f55fc72b49f4a1e8949a220157386d6c7e289 Mon Sep 17 00:00:00 2001 From: Anurag Pandey Date: Wed, 8 Apr 2026 17:18:38 +0530 Subject: [PATCH 11/13] Update CircleCI configuration for improved build stability --- .circleci/config.yml | 48 + .editorconfig | 12 + .gitignore | 19 + .husky/pre-commit | 12 + .nvmrc | 1 + .prettierignore | 4 + .prettierrc | 6 + dist/favicon.ico | Bin 0 -> 24838 bytes dist/index.html | 13 + eslint.config.mjs | 69 + index.html | 12 + package-lock.json | 7426 ++++++++++++++++++++++++++++++++++++++++++ package.json | 59 + public/favicon.ico | Bin 0 -> 24838 bytes src/App.jsx | 72 + src/App2.jsx | 612 ++++ src/index.jsx | 9 + src/index.test.jsx | 42 + src/styles.css | 112 + vite.config.js | 13 + vitest.config.mjs | 22 + vitest.setup.js | 1 + 22 files changed, 8564 insertions(+) create mode 100644 .circleci/config.yml create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100755 .husky/pre-commit create mode 100644 .nvmrc create mode 100644 .prettierignore create mode 100644 .prettierrc create mode 100644 dist/favicon.ico create mode 100644 dist/index.html create mode 100644 eslint.config.mjs create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 src/App.jsx create mode 100644 src/App2.jsx create mode 100644 src/index.jsx create mode 100644 src/index.test.jsx create mode 100644 src/styles.css create mode 100644 vite.config.js create mode 100644 vitest.config.mjs create mode 100644 vitest.setup.js diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..b1f0179 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,48 @@ +version: 2.1 + +jobs: + build: + docker: + - image: cimg/node:20.17 + working_directory: ~/project + steps: + - checkout + - restore_cache: + keys: + - v1-npm-deps-{{ checksum "package-lock.json" }} + - v1-npm-deps- + - run: + name: Install dependencies + command: npm ci + - save_cache: + key: v1-npm-deps-{{ checksum "package-lock.json" }} + paths: + - ~/.npm + - run: + name: Lint + command: npm run lint + - run: + name: Check formatting + command: npm run format:check + - run: + name: Run tests with coverage + command: npm run test + - run: + name: Build application + command: npm run build + - run: + name: Prepare artifacts + command: | + mkdir -p dist + mkdir -p coverage + - store_artifacts: + path: dist + destination: dist + - store_artifacts: + path: coverage + destination: coverage + +workflows: + ci: + jobs: + - build diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1014ba7 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..483c9a5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules + +# build output +/dist +/coverage +/coverage/ + +# local env +.env +.env.* + +# production +/build + +# misc +.DS_Store diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..d922a7e --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,12 @@ +#!/usr/bin/env sh + +set -euo pipefail + +echo "" +echo "🔍 Running pre-commit checks (lint-staged)..." + +if ! npm run lint-staged; then + echo "" + echo "❌ Linting or formatting failed. Fix issues before committing." + exit 1 +fi diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..3516580 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.17.0 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..00b6949 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +node_modules +dist +build +coverage diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..9365378 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "singleQuote": true, + "semi": true, + "trailingComma": "es5", + "printWidth": 90 +} diff --git a/dist/favicon.ico b/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c125de5d897c1ff5692a656485b3216123dcd89 GIT binary patch literal 24838 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 + + + + + Simple Adder + + + + +
+ + diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..bf67815 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,69 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import reactPlugin from 'eslint-plugin-react'; +import reactHooksPlugin from 'eslint-plugin-react-hooks'; +import testingLibrary from 'eslint-plugin-testing-library'; +import vitestPlugin from 'eslint-plugin-vitest'; + +export default [ + { + ignores: ['dist/**', 'node_modules/**'], + }, + js.configs.recommended, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + ...globals.browser, + ...globals.es2024, + }, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + plugins: { + react: reactPlugin, + 'react-hooks': reactHooksPlugin, + }, + rules: { + ...reactPlugin.configs.recommended.rules, + ...reactHooksPlugin.configs.recommended.rules, + 'react/react-in-jsx-scope': 'off', + 'react/prop-types': 'off', + }, + settings: { + react: { + version: 'detect', + }, + }, + }, + { + files: ['**/*.{test,spec}.{js,jsx}'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: { + ...globals.browser, + ...globals.es2024, + ...globals.vitest, + }, + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + plugins: { + 'testing-library': testingLibrary, + vitest: vitestPlugin, + }, + rules: { + ...testingLibrary.configs.react.rules, + ...vitestPlugin.configs.recommended.rules, + }, + }, +]; diff --git a/index.html b/index.html new file mode 100644 index 0000000..d23bc11 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + Simple Adder + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0e0f81e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,7426 @@ +{ + "name": "frontend-tutorial-2", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend-tutorial-2", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", + "@vitejs/plugin-react": "^4.4.1", + "@vitest/coverage-v8": "^4.0.14", + "eslint": "^9.39.1", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-vitest": "^0.5.4", + "globals": "^16.5.0", + "husky": "^9.1.7", + "jsdom": "^27.2.0", + "lint-staged": "^16.2.7", + "prettier": "^3.7.3", + "vite": "^6.3.5", + "vitest": "^4.0.14" + }, + "engines": { + "node": ">=20.17.0" + } + }, + "node_modules/@acemir/cssom": { + "version": "0.9.24", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.24.tgz", + "integrity": "sha512-5YjgMmAiT2rjJZU7XK1SNI7iqTy92DpaYVgG6x63FxkJ11UpYfLndHJATtinWJClAXiOlW9XWaUyAQf8pMrQPg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.0.tgz", + "integrity": "sha512-9xiBAtLn4aNsa4mDnpovJvBn72tNEIACyvlqaNJ+ADemR+yeMJWnBudOi2qGDviJa7SwcDOU/TRh5dnET7qk0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "lru-cache": "^11.2.2" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.5.tgz", + "integrity": "sha512-Eks6dY8zau4m4wNRQjRVaKQRTalNcPcBvU1ZQ35w5kKRk1gUeNCkVLsRiATurjASTp3TKM4H10wsI50nx3NZdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.2" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.20.tgz", + "integrity": "sha512-8BHsjXfSciZxjmHQOuVdW2b8WLUPts9a+mfL13/PzEviufUEW2xnvQuOlKs9dRBHgRqJ53SF/DUoK9+MZk72oQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", + "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", + "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.48.0", + "@typescript-eslint/types": "^8.48.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", + "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", + "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", + "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", + "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.48.0", + "@typescript-eslint/tsconfig-utils": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", + "debug": "^4.3.4", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", + "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", + "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.48.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.10", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.14.tgz", + "integrity": "sha512-EYHLqN/BY6b47qHH7gtMxAg++saoGmsjWmAq9MlXxAz4M0NcHh9iOyKhBZyU4yxZqOd8Xnqp80/5saeitz4Cng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.0.14", + "ast-v8-to-istanbul": "^0.3.8", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "obug": "^2.1.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.0.14", + "vitest": "4.0.14" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.14.tgz", + "integrity": "sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.14", + "@vitest/utils": "4.0.14", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.14.tgz", + "integrity": "sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.14", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.14.tgz", + "integrity": "sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.14.tgz", + "integrity": "sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.14", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.14.tgz", + "integrity": "sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.14", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.14.tgz", + "integrity": "sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.14.tgz", + "integrity": "sha512-fvDz8o7SQpFLoSBo6Cudv+fE85/fPCkwTnLAN85M+Jv7k59w2mSIjT9Q5px7XwGrmYqqKBEYxh/09IBGd1E7AQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@vitest/utils": "4.0.14", + "fflate": "^0.8.2", + "flatted": "^3.3.3", + "pathe": "^2.0.3", + "sirv": "^3.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.0.14" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz", + "integrity": "sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.14", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.1.1.tgz", + "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", + "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^4.0.3", + "@csstools/css-syntax-patches-for-csstree": "^1.0.14", + "css-tree": "^3.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", + "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", + "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "dev": true, + "license": "ISC" + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "7.13.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.13.5.tgz", + "integrity": "sha512-75rUmtNnXeO9cyMwG78vXxGEB7muIQ+IwcwBTma+M9KFc68SFaMKevGydObsUgX+IFef4lRLO/ysR9JqK1odyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "^8.15.0", + "@typescript-eslint/utils": "^8.15.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vitest": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.5.4.tgz", + "integrity": "sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^7.7.1" + }, + "engines": { + "node": "^18.0.0 || >= 20.0.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "vitest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vitest/node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "27.2.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.2.0.tgz", + "integrity": "sha512-454TI39PeRDW1LgpyLPyURtB4Zx1tklSr6+OFOipsxGUH1WMTvk6C65JQdrj455+DP2uJ1+veBEHTGFKWVLFoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@acemir/cssom": "^0.9.23", + "@asamuzakjp/dom-selector": "^6.7.4", + "cssstyle": "^5.3.3", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^8.0.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lint-staged": { + "version": "16.2.7", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.2.7.tgz", + "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^14.0.2", + "listr2": "^9.0.5", + "micromatch": "^4.0.8", + "nano-spawn": "^2.0.0", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nano-spawn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", + "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser": { + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", + "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", + "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.19" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", + "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitest": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.14.tgz", + "integrity": "sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "4.0.14", + "@vitest/mocker": "4.0.14", + "@vitest/pretty-format": "4.0.14", + "@vitest/runner": "4.0.14", + "@vitest/snapshot": "4.0.14", + "@vitest/spy": "4.0.14", + "@vitest/utils": "4.0.14", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.14", + "@vitest/browser-preview": "4.0.14", + "@vitest/browser-webdriverio": "4.0.14", + "@vitest/ui": "4.0.14", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.13.tgz", + "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d3ab9c0 --- /dev/null +++ b/package.json @@ -0,0 +1,59 @@ +{ + "name": "frontend-tutorial-2", + "version": "1.0.0", + "description": "", + "type": "module", + "private": true, + "scripts": { + "prepare": "husky", + "prebuild": "npm run lint && npm run format:check", + "build": "vite build", + "start": "vite", + "dev": "vite", + "preview": "vite preview", + "lint": "eslint . --ext .js,.jsx", + "format": "prettier --write .", + "format:check": "prettier --check .", + "lint-staged": "lint-staged", + "test": "vitest run --coverage", + "test:watch": "vitest" + }, + "keywords": [], + "author": "", + "license": "ISC", + "engines": { + "node": ">=20.17.0" + }, + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0" + }, + "devDependencies": { + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", + "@vitejs/plugin-react": "^4.4.1", + "@vitest/coverage-v8": "^4.0.14", + "eslint": "^9.39.1", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^7.0.1", + "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-vitest": "^0.5.4", + "globals": "^16.5.0", + "husky": "^9.1.7", + "jsdom": "^27.2.0", + "lint-staged": "^16.2.7", + "prettier": "^3.7.3", + "vite": "^6.3.5", + "vitest": "^4.0.14" + }, + "lint-staged": { + "*.{js,jsx,mjs}": [ + "eslint --fix --max-warnings=0", + "prettier --write" + ], + "*.{css,html,json,md}": [ + "prettier --write" + ] + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5c125de5d897c1ff5692a656485b3216123dcd89 GIT binary patch literal 24838 zcmeI4X^>UL6@VY56)S&I{`6Nu0RscWCdj@GJHx(%?6_-;yKy1n;EEf9f}pr1CW5HA zYt$%U#C=}?jWH&%G@BaHBxsWAoUb3}&6%Ei@4Ii_JRa1`RQ23*yU)_wJ$?H0>6gj0 z${d_I^w5kvTW3xYEc?FvyP3>p$!py@`@T`|dVepIsjbbvR}af%KKy7YuQ%SDC^zmNWPYR^7avI5P-@dKev}UZ^aDAOyci9Nn zwR4qEz~tSvrp|#ACvWzo9`3B;`}^{t18dxaH;?xT7#hmJiKAaI;|O=$yxzXNOHGw~ z^!5pE^SW`av%t_$22LFPsM^l%=PSp!3r`>9w%s+^ZQYnnTQ*Ggd9-1~kj_o$YdW@b ztCkJ(ZGYjusqV5L4{^)R9Gt@gzU1t|?xhE&c^q(|(R#oa*}Sj5c({A$mhrB8*Y@tc zr)K#C{KOp-eHl35ZWJ1&zkmI>9DL%!KJE@_!=W?aH;i?ZDb0O1HPFy6 zcV0Kf)eZ0BHmz9vowF7EA{z*aue9M)iJP&Zd)qYlfJ-c^sS1qY^?>s)!!Ta@x zr@Lz|80r)7<{QVk9Z$}5SDaVtz*Rc?oH5~Wcjoc^eA&EdJ^h@aZ-BvL{K2s_7Cvfr zFL&(R?D&(9OxsS%z_BzI9^Ai^AOF$PUpGk~oO(=OpMc3@Zh&KH1a9>G%%0rC)t@oQ z4d~M`hX+g^Wf8P>A&&qjq|tZe*44Laq7qVPK#QIc)s*Qj34P`NL`Q{xBI`SnR!RC? zlGdTvC%oVZ@0BgcH>}qc!uzul@{i@sH}L0|=eZBJ9qF!HHaw?`s0(_DJj(v`(memI z6jH}=BfGlSlRV4)ouv#h*65yRR>G zo;I#~BVK&l&{+H=_~Nq$d%bFLh7GE5pS&>Fr{RMe>)MM19~z6F1oQo_y>vtlpEZF# zIc82TpMc3z9;{Q)=zG5B#4+96yHCvYy8p4;C%6x`%y$2HccC9|#vGVD)**C0xX|R| z%h)}ze!Tnrvvb@RZ!GX@2lMEq`=`08b`9$%FnN@*zJLo2wD5?MbE&LN)Z>Kty*;m= zt{Cn0>Q3nk)`bR^{dVf!3ECg6Yz4YcskI>$XH*L8E)MsudhnkP0B>+M(XEcErHUBKi~ z1`fEP&WPhp{@Ew?cPlR(ma9iw8NbJWHqp=btCtM*FnP*@ZwwlJ&-Y|LEjgvJzUtPc zz5CrWNBRV8d0-bpWAl<=zM1PU8lJseDxBK^QuuCj2fg{&2#*IG5ezf1B(o%lU+OZx7So4D?yi2*h zFBkr5pG3AJs83uy!~C3mQZLp~ss7-N9oAY>t)!eC#s)CrPukK!(!G*)H?v(~JCoj# zfvgTxMV{4?zL1neQ;ITVBAdFDf`1yG$o{g7^1sR_n{RZ7tnXio?tM%240}(z9xFY0 zlz{^-G*RET;-`7`>e0b{{`!2kM)t7Si9ZqD$~wh*hyGC>z~qs@0T&u*;h}hiKGEga zHkJ;%7aNc^o_0(>Z{Gp069H;TwPTUnvvX0SJ+kGGZ0lFBWocl>kaa)AoiMta+x_-J-?#KHFnJ*! zwD1V?)4s#|?O)DlMBhVv4IgZs?d>b<6%xK3<{o91H?-%8?PK!_fm#3d>{{gQ z?*8`b{G6?bZKdO{_9IVlz{R$PcGjeL|3*|@upby()_Lf^eQ&XQe)CjsbJ3Uolrgt< zweld3GH|fZpn(=1@PencO_a_)v6tU?WV-w8wfXLbOGae0{<*C?Ead$6v+> z|EQKThJTmwXK!c6AOD+FgtDv7i<48{-OPce!KDVkzR+XKOcREPha(;$}iUb!*)f-Fb}Y4@r9z-_{OIg z`xn^T#ZtEPv_T$M*Sr+=Z{q#~8$|7Y{0!*2u${D*Jj%dfOrS~FzpH*_|55J!7kl4w z?LT!7T(!3!632pmZh?dh`n-z$_ts42pn6;c`}hx;TSYd0idsqal5&0uGV=UM{c9xQ z1KK6&TS+a^H|6B_hPo1W3 zh+Dun!`UkP%H3}*@IE18q{7&MH2f3?T6o}Jf+xI@fh=SyUOArw`*w1_-PUlHZTHc@ z--yqIxPtI}IjPRzLIZ8cPv4P=>?A&=E~~0)>&J#V;TwAR*6}`01iu~U$@prtzW6YS ze}E>gUX+0YuF}B+Uhw2x7a7Q+oOzMNFHTNN<)40Rzg#`pABKF18@l}5A>RL`?Ri;Z zC8ExD$)im1@R{N7(wIog8$Yn(6%q$yd9(zKe};OnH%;mWBs7)>ls~T3Wi6!Xqw6+dpJLVS1P| z9qV%io-nE*rYcPxiS31>U_>mbPTXxkC*!?*zefr#2vF|qr8{|4|u^7-pD|f z&OPc->UKu)=iHgIpysp;Lsbyj}GJWoBkufOA={CRTUjr%af zc5pUH9{pg?M5%+)oN`q9yBbBt@+3xHV)qGm8b)Cp-w7~CwEhtBUk0rbjrqM zTb|tQ3-5-pw^cul`T+X&s?O;?V(FD!(Q9Qg@(LTCNz{0-vBM^SX5lti3|GpxFn4;Ax6pGc~t)R!Bo${lYH(* z!F&5X*?S&}YoDCyzwv1H+XI(+rL`;RN9}iLxlfr-r&vGG8OQa@=>+a)+Ij)sd_{wu z1Am(+3-RFr4&N8N6+hqo19S#;SA1-hG>07p3}&*j4CR+rqdV)^6n; z_vFr!(a%-=#=kb{pYmNL@6|DWkw~%E2V2jYl*e1}c{e$fib?(O+hs}eoBLRo&9(;J}YV}0Mi;LZAe{U$(s= zT<-IaV$Z+q-P!~3{HxN>Kbw30jXzM&I(S<6Ksx^}HvU2Vntb!etSsm0>)j}Me^+L5{2yz--)?W`Q?az z!WLG4UNP}+#C+NKH+ZG-Q=E>IPp%LuKLx$$8NAOGr(#~P>!EA zDYlpXDR=xM?Xv5(-qp74Cw3LzBeASHSBY`OezkbOyjP!G%WSymju_C$VBl--z { + const [values, setValues] = useState({ first: '', second: '' }); + const [sum, setSum] = useState(null); + const numericPattern = /^-?\d*(\.\d*)?$/; + + const updateValue = (field) => (event) => { + const nextValue = event.target.value; + if (nextValue === '' || numericPattern.test(nextValue)) { + setValues((prev) => ({ ...prev, [field]: nextValue })); + } + }; + + const handleSubmit = (event) => { + event.preventDefault(); + if (values.first === '' || values.second === '') { + setSum(null); + return; + } + setSum(Number(values.first) + Number(values.second)); + }; + + return ( +
+

Simple Adder

+

+ Type two numbers, hit add, and we will do the math for you. +

+
+ + + +
+ {sum !== null && ( +
+ Total + {sum} +
+ )} +
+ ); +}; + +export default App; diff --git a/src/App2.jsx b/src/App2.jsx new file mode 100644 index 0000000..1802104 --- /dev/null +++ b/src/App2.jsx @@ -0,0 +1,612 @@ +import { useCallback, useMemo, useState } from 'react'; +import Highcharts from 'highcharts'; +import 'highcharts/modules/xrange'; +import 'highcharts/modules/exporting'; +import 'highcharts/modules/offline-exporting'; +import 'highcharts/modules/accessibility'; +import HighchartsReact from 'highcharts-react-official'; + +import './styles.css'; + +/** + * Partition-style flame chart with level drilldown. Uses `series.xrange`. + * React: https://www.highcharts.com/docs/react/getting-started — this app uses + * `highcharts-react-official` with the same Highcharts module side-effect imports. + * https://api.highcharts.com/highcharts/plotOptions.xrange + */ + +const COL = { + total: '#7c3aed', + national: '#f97316', + north: '#38bdf8', + south: '#1d4ed8', + central: '#93c5fd', +}; + +const NORTH_LEAF = [ + '#22c55e', + '#84cc16', + '#eab308', + '#f97316', + '#ef4444', + '#ec4899', + '#a855f7', + '#6366f1', + '#0ea5e9', + '#14b8a6', + '#f59e0b', + '#dc2626', + '#d946ef', + '#4ade80', + '#fb923c', +]; + +/** Region keys used for drill path (one level from overview). */ +const DRILL_REGION_IDS = new Set(['national', 'north', 'south', 'central']); + +const REGION_TITLE = { + national: 'National', + north: 'North region', + south: 'South region', + central: 'Central region', +}; + +const labelLight = { style: { color: '#0f172a', textOutline: 'none' } }; + +function getRowCount(data) { + if (!data.length) return 1; + return Math.max(...data.map((d) => d.y)) + 1; +} + +function depthCategories(rowCount) { + return Array.from({ length: rowCount }, () => ''); +} + +/** Full overview: Total → four regions → leaf row (reference layout). */ +function buildRootPartitionData() { + const data = []; + + data.push({ + name: 'Total', + x: 0, + x2: 100, + y: 0, + color: COL.total, + }); + + data.push( + { + name: 'National', + x: 0, + x2: 42, + y: 1, + color: COL.national, + custom: { drillId: 'national' }, + }, + { + name: 'North region', + x: 42, + x2: 58, + y: 1, + color: COL.north, + custom: { drillId: 'north' }, + }, + { + name: 'South region', + x: 58, + x2: 75, + y: 1, + color: COL.south, + custom: { drillId: 'south' }, + }, + { + name: 'Central region', + x: 75, + x2: 100, + y: 1, + color: COL.central, + dataLabels: labelLight, + custom: { drillId: 'central' }, + }, + ); + + const northSpan = 58 - 42; + for (let i = 0; i < 15; i++) { + const x = 42 + (i * northSpan) / 15; + const x2 = 42 + ((i + 1) * northSpan) / 15; + data.push({ + name: '\u00b7', + x, + x2, + y: 2, + color: NORTH_LEAF[i % NORTH_LEAF.length], + }); + } + + data.push( + { name: '\u00b7', x: 58, x2: 63.6667, y: 2, color: '#ec4899' }, + { name: '\u00b7', x: 63.6667, x2: 69.3333, y: 2, color: '#172554' }, + { + name: '\u00b7', + x: 69.3333, + x2: 75, + y: 2, + color: '#e0f2fe', + dataLabels: labelLight, + }, + ); + + data.push( + { name: '\u00b7', x: 75, x2: 87.5, y: 2, color: '#34d399' }, + { name: '\u00b7', x: 87.5, x2: 100, y: 2, color: '#fde047', dataLabels: labelLight }, + ); + + return data; +} + +/** Drilled view: focus row + children normalized to 0–100 (one region). */ +function buildDrilledPartitionData(regionId) { + if (regionId === 'national') { + return [ + { + name: 'National', + x: 0, + x2: 100, + y: 0, + color: COL.national, + }, + { + name: 'No sub-regions in reference data', + x: 0, + x2: 100, + y: 1, + color: '#fef3c7', + dataLabels: labelLight, + }, + ]; + } + + if (regionId === 'north') { + const out = [ + { + name: 'North region', + x: 0, + x2: 100, + y: 0, + color: COL.north, + }, + ]; + const n = 15; + for (let i = 0; i < n; i++) { + const x = (i * 100) / n; + const x2 = ((i + 1) * 100) / n; + out.push({ + name: '\u00b7', + x, + x2, + y: 1, + color: NORTH_LEAF[i % NORTH_LEAF.length], + }); + } + return out; + } + + if (regionId === 'south') { + return [ + { + name: 'South region', + x: 0, + x2: 100, + y: 0, + color: COL.south, + }, + { name: '\u00b7', x: 0, x2: 100 / 3, y: 1, color: '#ec4899' }, + { name: '\u00b7', x: 100 / 3, x2: (2 * 100) / 3, y: 1, color: '#172554' }, + { + name: '\u00b7', + x: (2 * 100) / 3, + x2: 100, + y: 1, + color: '#e0f2fe', + dataLabels: labelLight, + }, + ]; + } + + if (regionId === 'central') { + return [ + { + name: 'Central region', + x: 0, + x2: 100, + y: 0, + color: COL.central, + dataLabels: labelLight, + }, + { name: '\u00b7', x: 0, x2: 50, y: 1, color: '#34d399' }, + { name: '\u00b7', x: 50, x2: 100, y: 1, color: '#fde047', dataLabels: labelLight }, + ]; + } + + return buildRootPartitionData(); +} + +function getPartitionData(drillPath) { + if (!drillPath?.length) return buildRootPartitionData(); + const id = drillPath[0]; + return DRILL_REGION_IDS.has(id) ? buildDrilledPartitionData(id) : buildRootPartitionData(); +} + +function fitXRangeRowHeight(chart, redraw = true) { + const series = chart.series[0]; + if (!series?.data?.length) return; + const ys = series.data.map((p) => p.y); + const rows = Math.max(...ys) + 1; + const pw = Math.max(8, Math.floor(chart.plotHeight / rows)); + series.update({ pointWidth: pw }, redraw); +} + +/** Blue callout: elbow to “North region” on overview only. */ +function drawNorthCallout(chart, showCallout) { + if (chart.partitionCallout) { + chart.partitionCallout.destroy(); + chart.partitionCallout = undefined; + } + + if (!showCallout) return; + + const series = chart.series[0]; + const north = series?.points?.find((p) => p.name === 'North region'); + if (!north?.shapeArgs) return; + + const g = chart.renderer.g().attr({ zIndex: 10 }).add(); + chart.partitionCallout = g; + + const { x: sx, y: sy } = north.shapeArgs; + const xLeft = chart.plotLeft + sx; + const yTop = chart.plotTop + sy; + const pw = series.options.pointWidth ?? 20; + const yMid = yTop + pw / 2; + const startX = chart.plotLeft + 6; + + chart.renderer + .path(['M', startX, yMid, 'L', xLeft, yMid, 'L', xLeft, yTop + 4]) + .attr({ + stroke: '#2563eb', + 'stroke-width': 2, + 'stroke-linejoin': 'round', + 'stroke-linecap': 'round', + fill: 'none', + }) + .add(g); + + chart.renderer + .circle(xLeft + 5, yTop + 5, 6) + .attr({ + fill: '#2563eb', + stroke: '#ffffff', + 'stroke-width': 1, + }) + .add(g); +} + +function createFlameChartOptions({ + drillPath, + data, + rowCount, + canDrillFromChart, + onDrillRegion, +}) { + const showNorthCallout = drillPath.length === 0; + + return { + chart: { + type: 'xrange', + backgroundColor: '#ffffff', + plotBackgroundColor: '#ffffff', + plotBorderWidth: 0, + borderRadius: 12, + spacing: [16, 16, 16, 16], + marginLeft: 12, + marginRight: 12, + marginTop: 12, + marginBottom: 12, + style: { + fontFamily: + "'Inter', 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif", + }, + animation: { duration: 450 }, + zooming: { type: 'x' }, + panning: { enabled: true, type: 'x' }, + panKey: 'shift', + events: { + load() { + const el = this.credits?.element; + if (el) el.setAttribute('tabindex', '-1'); + + requestAnimationFrame(() => { + fitXRangeRowHeight(this, true); + drawNorthCallout(this, showNorthCallout); + }); + }, + redraw() { + drawNorthCallout(this, showNorthCallout); + }, + }, + }, + + title: { + text: 'Partition flame chart', + align: 'left', + margin: 12, + style: { fontSize: '1.2rem', fontWeight: '700', color: '#0f172a' }, + }, + + subtitle: { + text: showNorthCallout + ? 'Click a region (middle row) to drill down. Back returns to overview.' + : `Drilled into ${REGION_TITLE[drillPath[0]] ?? drillPath[0]}. Use Back to return.`, + align: 'left', + style: { color: '#64748b' }, + }, + + caption: { + text: 'series.xrange · level drilldown via point.custom.drillId', + align: 'left', + margin: 10, + style: { fontSize: '0.8rem', color: '#94a3b8' }, + }, + + credits: { + enabled: true, + text: 'Highcharts xrange', + href: 'https://api.highcharts.com/highcharts/plotOptions.xrange', + style: { color: '#94a3b8' }, + }, + + time: { useUTC: false }, + + xAxis: { + type: 'linear', + min: 0, + max: 100, + visible: false, + lineWidth: 0, + lineColor: 'transparent', + tickLength: 0, + tickWidth: 0, + gridLineWidth: 0, + minorGridLineWidth: 0, + labels: { enabled: false }, + title: { text: null }, + crosshair: false, + }, + + yAxis: { + categories: depthCategories(rowCount), + reversed: true, + min: 0, + max: rowCount - 1, + visible: false, + lineWidth: 0, + lineColor: 'transparent', + tickLength: 0, + tickWidth: 0, + gridLineWidth: 0, + minorGridLineWidth: 0, + labels: { enabled: false }, + title: { text: null }, + }, + + legend: { enabled: false }, + + tooltip: { + shared: false, + borderRadius: 8, + backgroundColor: 'rgba(15, 23, 42, 0.92)', + style: { color: '#f8fafc' }, + formatter() { + const p = this.point; + const w = p.x2 - p.x; + const pct = w.toFixed(2); + const hint = + canDrillFromChart && p.options?.custom?.drillId + ? '
Click to drill into this region' + : ''; + return ( + `${p.name}
` + + `Share of view ${pct}%
` + + `Range ${p.x.toFixed(2)} – ${p.x2.toFixed(2)}` + + hint + ); + }, + }, + + plotOptions: { + series: { + animation: { duration: 500 }, + states: { + inactive: { opacity: 0.5 }, + hover: { brightness: 0.08 }, + }, + }, + xrange: { + grouping: false, + pointPadding: 0, + groupPadding: 0, + borderRadius: 0, + borderWidth: 1, + borderColor: '#ffffff', + minPointLength: 0, + cursor: canDrillFromChart ? 'pointer' : 'default', + point: { + events: { + click() { + if (!canDrillFromChart) return; + const id = this.options?.custom?.drillId; + if (id) onDrillRegion(id); + }, + }, + }, + dataLabels: { + enabled: true, + align: 'center', + verticalAlign: 'middle', + inside: true, + crop: false, + overflow: 'allow', + padding: 2, + style: { + fontWeight: '600', + fontSize: '0.75rem', + color: '#ffffff', + textOutline: '1px contrast', + }, + formatter() { + const w = this.point.shapeArgs?.width ?? 0; + const n = this.point.name; + if (!n || n === '\u00b7') return ''; + if (w < 36 && n.length > 6) return ''; + return n; + }, + }, + }, + }, + + series: [ + { + name: 'Partition', + borderColor: '#ffffff', + data, + }, + ], + + exporting: { + enabled: true, + fallbackToExportServer: false, + sourceWidth: 1200, + chartOptions: { + plotOptions: { series: { dataLabels: { enabled: true } } }, + }, + buttons: { + contextButton: { + menuItems: [ + 'viewFullscreen', + 'printChart', + 'separator', + 'downloadPNG', + 'downloadJPEG', + 'downloadPDF', + 'downloadSVG', + ], + }, + }, + }, + + navigation: { + buttonOptions: { + theme: { + fill: '#f1f5f9', + stroke: '#cbd5e1', + style: { color: '#0f172a' }, + r: 8, + states: { hover: { fill: '#e2e8f0' }, select: { fill: '#dbeafe' } }, + }, + }, + }, + + responsive: { + rules: [ + { + condition: { maxWidth: 640 }, + chartOptions: { + plotOptions: { + xrange: { + dataLabels: { style: { fontSize: '0.65rem' } }, + }, + }, + }, + }, + ], + }, + }; +} + +const App2 = () => { + const [drillPath, setDrillPath] = useState([]); + + const onDrillRegion = useCallback((regionId) => { + setDrillPath([regionId]); + }, []); + + const onBackToOverview = useCallback(() => { + setDrillPath([]); + }, []); + + const options = useMemo(() => { + const d = getPartitionData(drillPath); + const rc = getRowCount(d); + const canDrillFromChart = drillPath.length === 0; + return createFlameChartOptions({ + drillPath, + data: d, + rowCount: rc, + canDrillFromChart, + onDrillRegion, + }); + }, [drillPath, onDrillRegion]); + + const drilledLabel = + drillPath.length > 0 ? REGION_TITLE[drillPath[0]] ?? drillPath[0] : null; + + return ( +
+ ); +}; + +export default App2; diff --git a/src/index.jsx b/src/index.jsx new file mode 100644 index 0000000..2ec8927 --- /dev/null +++ b/src/index.jsx @@ -0,0 +1,9 @@ +import ReactDOM from 'react-dom/client'; +import App from './App.jsx'; + +const container = document.getElementById('root'); + +if (container) { + const root = ReactDOM.createRoot(container); + root.render(); +} diff --git a/src/index.test.jsx b/src/index.test.jsx new file mode 100644 index 0000000..e87e2fb --- /dev/null +++ b/src/index.test.jsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { describe, it, expect } from 'vitest'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import App from './App.jsx'; + +describe('App', () => { + it('adds two numbers and displays the result', async () => { + render(); + + const user = userEvent.setup(); + const firstInput = screen.getByLabelText(/first number/i); + const secondInput = screen.getByLabelText(/second number/i); + const addButton = screen.getByRole('button', { name: /add numbers/i }); + + await user.clear(firstInput); + await user.type(firstInput, '5'); + await user.clear(secondInput); + await user.type(secondInput, '7'); + await user.click(addButton); + + expect(screen.getByText(/total/i)).toBeInTheDocument(); + expect(screen.getByText('12')).toBeInTheDocument(); + }); + + it('does not show a total when inputs are empty', async () => { + render(); + + const user = userEvent.setup(); + const firstInput = screen.getByLabelText(/first number/i); + const secondInput = screen.getByLabelText(/second number/i); + const addButton = screen.getByRole('button', { name: /add numbers/i }); + + secondInput.removeAttribute('required'); + + await user.clear(firstInput); + await user.type(firstInput, '3'); + await user.click(addButton); + + expect(screen.queryByText(/total/i)).not.toBeInTheDocument(); + }); +}); diff --git a/src/styles.css b/src/styles.css new file mode 100644 index 0000000..93ec6fc --- /dev/null +++ b/src/styles.css @@ -0,0 +1,112 @@ +:root { + font-family: + 'Inter', + 'Segoe UI', + system-ui, + -apple-system, + BlinkMacSystemFont, + sans-serif; + line-height: 1.4; + color: #f8fafc; + background-color: #0f172a; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: radial-gradient(circle at top, #1e3a8a, #0f172a 60%); + padding: 2rem; +} + +main.app-shell { + width: min(440px, 100%); + background: white; + border-radius: 24px; + padding: 2.5rem 2rem; + box-shadow: 0 25px 60px rgba(15, 23, 42, 0.35); +} + +h1 { + margin: 0 0 1.5rem; + font-size: 1.9rem; + color: #111827; +} + +p.subtitle { + margin: 0 0 2rem; + color: #475569; +} + +form.sum-form { + display: flex; + flex-direction: column; + gap: 1.25rem; +} + +label.field { + display: flex; + flex-direction: column; + gap: 0.35rem; + font-weight: 600; + color: #111827; +} + +input.number-input { + padding: 0.65rem 0.85rem; + border-radius: 12px; + border: 1px solid #cbd5f5; + font-size: 1rem; + transition: + border-color 120ms ease, + box-shadow 120ms ease; +} + +input.number-input:focus-visible { + outline: none; + border-color: #2563eb; + box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25); +} + +button.primary { + border: none; + border-radius: 999px; + background: linear-gradient(120deg, #2563eb, #7c3aed); + color: white; + font-size: 1rem; + font-weight: 600; + padding: 0.75rem; + cursor: pointer; + transition: + transform 120ms ease, + box-shadow 120ms ease; +} + +button.primary:hover { + transform: translateY(-1px); + box-shadow: 0 12px 24px rgba(37, 99, 235, 0.35); +} + +.result-card { + margin-top: 2rem; + padding: 1.25rem; + border-radius: 16px; + background: #f8fafc; + border: 1px solid #e2e8f0; + display: flex; + justify-content: space-between; + align-items: center; + font-size: 1.1rem; +} + +.result-value { + font-size: 1.75rem; + font-weight: 700; + color: #0f172a; +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..60128fb --- /dev/null +++ b/vite.config.js @@ -0,0 +1,13 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +export default defineConfig({ + plugins: [react()], + build: { + sourcemap: true, + }, + server: { + open: true, + port: 3000, + }, +}); diff --git a/vitest.config.mjs b/vitest.config.mjs new file mode 100644 index 0000000..ee777ca --- /dev/null +++ b/vitest.config.mjs @@ -0,0 +1,22 @@ +import { defineConfig } from 'vitest/config'; +import react from '@vitejs/plugin-react'; + +export default defineConfig({ + plugins: [react()], + test: { + environment: 'jsdom', + globals: true, + setupFiles: './vitest.setup.js', + coverage: { + provider: 'v8', + reporter: ['text', 'html'], + exclude: ['src/styles.css', 'src/index.jsx'], + thresholds: { + statements: 80, + branches: 75, + functions: 80, + lines: 80, + }, + }, + }, +}); diff --git a/vitest.setup.js b/vitest.setup.js new file mode 100644 index 0000000..bb02c60 --- /dev/null +++ b/vitest.setup.js @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest'; From 8049779ee893c2d9369bfdc3806a18d773b6ea5f Mon Sep 17 00:00:00 2001 From: Anurag Pandey Date: Wed, 8 Apr 2026 17:18:45 +0530 Subject: [PATCH 12/13] Refactor styles in styles.css for improved layout and design consistency, including updates to body, app-shell, and various component styles. Enhanced grid layouts and added new classes for better structure and usability. --- src/styles.css | 453 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 394 insertions(+), 59 deletions(-) diff --git a/src/styles.css b/src/styles.css index 93ec6fc..0832572 100644 --- a/src/styles.css +++ b/src/styles.css @@ -6,9 +6,6 @@ -apple-system, BlinkMacSystemFont, sans-serif; - line-height: 1.4; - color: #f8fafc; - background-color: #0f172a; } * { @@ -18,95 +15,433 @@ body { margin: 0; min-height: 100vh; - display: flex; - align-items: center; - justify-content: center; - background: radial-gradient(circle at top, #1e3a8a, #0f172a 60%); - padding: 2rem; + background: #f1f5f9; + color: #0f172a; } -main.app-shell { - width: min(440px, 100%); - background: white; - border-radius: 24px; - padding: 2.5rem 2rem; - box-shadow: 0 25px 60px rgba(15, 23, 42, 0.35); +.app-shell { + margin: 0 auto; + width: min(1080px, 100%); + padding: 1.5rem; + display: grid; + gap: 1rem; } -h1 { - margin: 0 0 1.5rem; - font-size: 1.9rem; - color: #111827; +.config-panel, +.drilldown-shell { + background: #fff; + border: 1px solid #dbe4f0; + border-radius: 16px; + padding: 1rem; } -p.subtitle { - margin: 0 0 2rem; - color: #475569; +.config-panel h2, +.drilldown-header h1 { + margin: 0; } -form.sum-form { - display: flex; - flex-direction: column; - gap: 1.25rem; +.config-hint { + margin: 0.5rem 0 0; + font-size: 0.9rem; + color: #64748b; + line-height: 1.45; + max-width: 52ch; +} + +.level-order-editor { + margin-top: 1rem; } -label.field { +.level-order-heading { + margin: 0 0 0.5rem; + font-size: 0.95rem; + font-weight: 600; + color: #334155; +} + +.level-order-list { + margin: 0; + padding: 0; + list-style: none; display: flex; flex-direction: column; - gap: 0.35rem; - font-weight: 600; - color: #111827; + gap: 0.45rem; } -input.number-input { +.level-order-item { + display: grid; + grid-template-columns: auto auto 1fr auto; + align-items: center; + gap: 0.65rem; padding: 0.65rem 0.85rem; + background: #f8fafc; + border: 1px solid #e2e8f0; border-radius: 12px; - border: 1px solid #cbd5f5; - font-size: 1rem; + cursor: grab; + user-select: none; transition: - border-color 120ms ease, - box-shadow 120ms ease; + border-color 0.15s ease, + background 0.15s ease; +} + +.level-order-item:active { + cursor: grabbing; +} + +.level-order-item--over { + border-color: #3b82f6; + background: #eff6ff; } -input.number-input:focus-visible { - outline: none; - border-color: #2563eb; - box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25); +.level-order-item--dragging { + opacity: 0.65; } -button.primary { +.level-order-grip { + color: #94a3b8; + font-size: 0.85rem; + letter-spacing: -0.05em; +} + +.level-order-rank { + font-size: 0.8rem; + font-weight: 700; + color: #64748b; + min-width: 1.25rem; + text-align: center; +} + +.level-order-label { + font-weight: 600; + color: #0f172a; +} + +.level-order-id { + font-size: 0.78rem; + color: #64748b; + font-family: ui-monospace, monospace; +} + +.switcher { + margin-top: 0.75rem; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.subtitle { + margin: 0.4rem 0 0; + color: #475569; +} + +.secondary { + border: 1px solid #cbd5e1; + background: #fff; + color: #1e293b; + border-radius: 10px; + padding: 0.45rem 0.85rem; + cursor: pointer; +} + +.secondary.active { + background: #dbeafe; + border-color: #93c5fd; +} + +.breadcrumb { + margin-top: 1rem; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.crumb { border: none; + background: #eff6ff; + color: #1e40af; border-radius: 999px; - background: linear-gradient(120deg, #2563eb, #7c3aed); - color: white; - font-size: 1rem; + padding: 0.35rem 0.75rem; + cursor: pointer; +} + +.toolbar { + margin-top: 1rem; + display: grid; + grid-template-columns: auto auto 1fr; + gap: 0.75rem; + align-items: center; +} + +.status-chip { + font-size: 0.85rem; + color: #0f172a; + background: #e2e8f0; + border-radius: 999px; + padding: 0.3rem 0.65rem; +} + +.filters-preview { + justify-self: end; + max-width: 100%; + overflow: auto; + white-space: nowrap; + background: #0f172a; + color: #f8fafc; + padding: 0.3rem 0.6rem; + border-radius: 6px; +} + +.filters { + margin-top: 1rem; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); + gap: 0.75rem; +} + +.filters-single { + grid-template-columns: 1fr; + max-width: min(420px, 100%); +} + +.filter-field { + display: grid; + gap: 0.35rem; + font-size: 0.92rem; +} + +.filter-field--compound select { + width: 100%; + min-height: 2.5rem; +} + +.filter-field-heading { + font-weight: 600; + color: #334155; + font-size: 0.95rem; +} + +.filter-field select { + border-radius: 10px; + border: 1px solid #cbd5e1; + padding: 0.5rem; +} + +.filters-multiselect { + margin-top: 0.75rem; +} + +.filter-field--multiselect { + border: none; + margin: 0; + padding: 0; + min-width: 0; +} + +.filter-field--multiselect .filter-field-sub { + font-weight: 400; + color: #64748b; + font-size: 0.85rem; +} + +.multiselect-list { + margin: 0.5rem 0 0; + padding: 0; + list-style: none; + display: flex; + flex-wrap: wrap; + gap: 0.5rem; +} + +.multiselect-option { + display: inline-flex; + align-items: center; + gap: 0.35rem; + padding: 0.35rem 0.6rem; + background: #f1f5f9; + border-radius: 8px; + font-size: 0.9rem; + cursor: pointer; +} + +.multiselect-option input { + margin: 0; +} + +.muted { + color: #94a3b8; + font-size: 0.88rem; +} + +.section-title { + margin: 0 0 0.5rem; + font-size: 1.05rem; + color: #1e293b; +} + +.section-hint { + margin: 0 0 0.75rem; + font-size: 0.88rem; + color: #64748b; +} + +.cards-section { + margin-top: 0.5rem; + padding-bottom: 1.25rem; + border-bottom: 1px solid #e2e8f0; +} + +.table-section { + margin-top: 1.25rem; +} + +.data-table-grouped .group-row td { + background: #f1f5f9; font-weight: 600; - padding: 0.75rem; + border-bottom: 1px solid #cbd5e1; +} + +.data-table-grouped .group-cell { + padding: 0.5rem 0.75rem; +} + +.data-table-grouped .group-level { + color: #64748b; + font-size: 0.8rem; + margin-right: 0.5rem; +} + +.data-table-grouped .group-value { + color: #0f172a; +} + +.data-table-grouped .group-row.depth-1 .group-cell { + padding-left: 1.75rem; +} + +.data-table-grouped .data-row:hover { + background: #f8fbff; +} + +.card-grid { + margin-top: 1rem; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); + gap: 0.75rem; +} + +.data-card { + border: 1px solid #dbeafe; + border-radius: 12px; + background: #f8fbff; + text-align: left; + padding: 0.85rem; cursor: pointer; - transition: - transform 120ms ease, - box-shadow 120ms ease; + min-height: 80px; + display: grid; + align-content: space-between; + gap: 0.5rem; } -button.primary:hover { - transform: translateY(-1px); - box-shadow: 0 12px 24px rgba(37, 99, 235, 0.35); +.data-card-label { + font-weight: 600; } -.result-card { - margin-top: 2rem; - padding: 1.25rem; - border-radius: 16px; +.data-card-metric { + color: #2563eb; + font-size: 1.1rem; +} + +.table-wrap { + margin-top: 1rem; + overflow-x: auto; +} + +.data-table { + width: 100%; + border-collapse: collapse; + border: 1px solid #dbe4f0; +} + +.data-table th, +.data-table td { + border-bottom: 1px solid #e2e8f0; + padding: 0.6rem; + text-align: left; +} + +.data-table th { background: #f8fafc; - border: 1px solid #e2e8f0; +} + +.clickable-row { + cursor: pointer; +} + +.clickable-row:hover { + background: #f8fbff; +} + +.empty-state { + color: #64748b; +} + +.chart-demo-fieldset { + border: none; + margin: 0; + padding: 0; + min-width: 0; +} + +.chart-demo-legend { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.chart-demo-wrap { + margin-top: 0.75rem; + min-height: 420px; +} + +.chart-demo-wrap--flame { + min-height: 460px; +} + +.partition-drill-nav { display: flex; - justify-content: space-between; + flex-wrap: wrap; align-items: center; - font-size: 1.1rem; + gap: 0.5rem 0.75rem; + margin: 0 0 0.75rem; + font-size: 0.9rem; } -.result-value { - font-size: 1.75rem; - font-weight: 700; +.partition-drill-nav__back { + padding: 0.35rem 0.75rem; + border-radius: 8px; + border: 1px solid #cbd5e1; + background: #f8fafc; + color: #0f172a; + font-weight: 600; + cursor: pointer; +} + +.partition-drill-nav__back:hover { + background: #e2e8f0; + border-color: #94a3b8; +} + +.partition-drill-nav__path { + color: #64748b; +} + +.partition-drill-nav__current { + font-weight: 600; color: #0f172a; } From 0164ed67d7274f2aa61f6fd88dd2c9da78d9a985 Mon Sep 17 00:00:00 2001 From: Anurag Pandey Date: Wed, 6 May 2026 16:46:38 +0530 Subject: [PATCH 13/13] chart --- .circleci/config.yml | 4 +- .eslintrc.cjs | 8 + dist/favicon.ico | Bin 24838 -> 0 bytes dist/index.html | 13 - eslint.config.mjs | 52 +- package-lock.json | 572 ++++++++++------ package.json | 9 +- src/App.jsx | 75 +-- src/App2.jsx | 612 ------------------ src/app/store.js | 15 + .../common/partition/PartitionIcicleChart.jsx | 271 ++++++++ .../partition/PartitionSunburstChart.jsx | 240 +++++++ .../partition/buildPartitionSeriesData.js | 279 ++++++++ .../buildPartitionSeriesData.test.js | 92 +++ .../partition/buildPartitionSunburstData.js | 289 +++++++++ .../buildPartitionSunburstData.test.js | 36 ++ .../common/partition/partitionChartOptions.js | 413 ++++++++++++ .../partitionSunburstChartOptions.js | 409 ++++++++++++ .../drilldown/components/Breadcrumb.jsx | 24 + .../drilldown/components/Breadcrumb.test.jsx | 30 + .../drilldown/components/CardGrid.jsx | 28 + .../drilldown/components/CardGrid.test.jsx | 20 + .../components/DmaAggregateMetricsTable.jsx | 124 ++++ .../DmaAggregateMetricsTable.test.jsx | 82 +++ .../components/DmaIcicleDrillBridge.jsx | 48 ++ .../components/DrilldownContainer.jsx | 241 +++++++ .../components/DrilldownContainer.test.jsx | 37 ++ .../drilldown/components/GroupedDataTable.jsx | 53 ++ .../components/GroupedDataTable.test.jsx | 26 + .../drilldown/components/PageScopeFilter.jsx | 270 ++++++++ .../components/PageScopeFilter.test.jsx | 77 +++ src/features/drilldown/dmaIcicleDrillSync.js | 82 +++ .../drilldown/dmaIcicleDrillSync.test.js | 130 ++++ src/features/drilldown/dmaPageScopeTree.js | 28 + .../drilldown/dmaPageScopeTree.test.js | 17 + src/features/drilldown/drilldownSlice.js | 117 ++++ src/features/drilldown/drilldownSlice.test.js | 143 ++++ src/features/drilldown/selectors.js | 54 ++ src/features/drilldown/utils.js | 173 +++++ src/features/drilldown/utils.test.js | 114 ++++ src/features/partition/DmaPartitionChart.jsx | 79 +++ src/features/partition/dmaPartitionModel.js | 55 ++ src/index.jsx | 8 +- src/index.test.jsx | 42 -- src/mocks/dmaDrilldownLevels.js | 8 + src/mocks/dmaPartitionSampleData.js | 95 +++ src/mocks/drilldownMockEngine.js | 180 ++++++ src/services/drilldownApi.js | 133 ++++ src/services/drilldownApi.test.js | 94 +++ src/styles.css | 388 ++++++++--- vitest.config.mjs | 8 +- 51 files changed, 5382 insertions(+), 1015 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 dist/favicon.ico delete mode 100644 dist/index.html delete mode 100644 src/App2.jsx create mode 100644 src/app/store.js create mode 100644 src/components/common/partition/PartitionIcicleChart.jsx create mode 100644 src/components/common/partition/PartitionSunburstChart.jsx create mode 100644 src/components/common/partition/buildPartitionSeriesData.js create mode 100644 src/components/common/partition/buildPartitionSeriesData.test.js create mode 100644 src/components/common/partition/buildPartitionSunburstData.js create mode 100644 src/components/common/partition/buildPartitionSunburstData.test.js create mode 100644 src/components/common/partition/partitionChartOptions.js create mode 100644 src/components/common/partition/partitionSunburstChartOptions.js create mode 100644 src/features/drilldown/components/Breadcrumb.jsx create mode 100644 src/features/drilldown/components/Breadcrumb.test.jsx create mode 100644 src/features/drilldown/components/CardGrid.jsx create mode 100644 src/features/drilldown/components/CardGrid.test.jsx create mode 100644 src/features/drilldown/components/DmaAggregateMetricsTable.jsx create mode 100644 src/features/drilldown/components/DmaAggregateMetricsTable.test.jsx create mode 100644 src/features/drilldown/components/DmaIcicleDrillBridge.jsx create mode 100644 src/features/drilldown/components/DrilldownContainer.jsx create mode 100644 src/features/drilldown/components/DrilldownContainer.test.jsx create mode 100644 src/features/drilldown/components/GroupedDataTable.jsx create mode 100644 src/features/drilldown/components/GroupedDataTable.test.jsx create mode 100644 src/features/drilldown/components/PageScopeFilter.jsx create mode 100644 src/features/drilldown/components/PageScopeFilter.test.jsx create mode 100644 src/features/drilldown/dmaIcicleDrillSync.js create mode 100644 src/features/drilldown/dmaIcicleDrillSync.test.js create mode 100644 src/features/drilldown/dmaPageScopeTree.js create mode 100644 src/features/drilldown/dmaPageScopeTree.test.js create mode 100644 src/features/drilldown/drilldownSlice.js create mode 100644 src/features/drilldown/drilldownSlice.test.js create mode 100644 src/features/drilldown/selectors.js create mode 100644 src/features/drilldown/utils.js create mode 100644 src/features/drilldown/utils.test.js create mode 100644 src/features/partition/DmaPartitionChart.jsx create mode 100644 src/features/partition/dmaPartitionModel.js delete mode 100644 src/index.test.jsx create mode 100644 src/mocks/dmaDrilldownLevels.js create mode 100644 src/mocks/dmaPartitionSampleData.js create mode 100644 src/mocks/drilldownMockEngine.js create mode 100644 src/services/drilldownApi.js create mode 100644 src/services/drilldownApi.test.js diff --git a/.circleci/config.yml b/.circleci/config.yml index b1f0179..81dc0b0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -33,8 +33,8 @@ jobs: - run: name: Prepare artifacts command: | - mkdir -p dist - mkdir -p coverage + mkdir -p dist + mkdir -p coverage - store_artifacts: path: dist destination: dist diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..89991ef --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,8 @@ +/** + * Companion file for eslint-plugin-import `import/no-unused-modules` under ESLint flat config. + * See https://github.com/import-js/eslint-plugin-import/issues/3079 + */ +module.exports = { + root: true, + ignorePatterns: ['dist', 'node_modules', 'coverage'], +}; diff --git a/dist/favicon.ico b/dist/favicon.ico deleted file mode 100644 index 5c125de5d897c1ff5692a656485b3216123dcd89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24838 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 - - - - - Simple Adder - - - - -
- - diff --git a/eslint.config.mjs b/eslint.config.mjs index bf67815..f491a68 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,13 +1,15 @@ import js from '@eslint/js'; import globals from 'globals'; +import importPlugin from 'eslint-plugin-import'; import reactPlugin from 'eslint-plugin-react'; import reactHooksPlugin from 'eslint-plugin-react-hooks'; import testingLibrary from 'eslint-plugin-testing-library'; +import unusedImports from 'eslint-plugin-unused-imports'; import vitestPlugin from 'eslint-plugin-vitest'; export default [ { - ignores: ['dist/**', 'node_modules/**'], + ignores: ['dist/**', 'node_modules/**', 'coverage/**'], }, js.configs.recommended, { @@ -28,17 +30,54 @@ export default [ plugins: { react: reactPlugin, 'react-hooks': reactHooksPlugin, + import: importPlugin, + 'unused-imports': unusedImports, + }, + settings: { + react: { + version: 'detect', + }, + 'import/resolver': { + node: { + extensions: ['.js', '.jsx', '.json'], + }, + }, }, rules: { ...reactPlugin.configs.recommended.rules, ...reactHooksPlugin.configs.recommended.rules, 'react/react-in-jsx-scope': 'off', 'react/prop-types': 'off', - }, - settings: { - react: { - version: 'detect', - }, + 'no-unused-vars': 'off', + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + caughtErrorsIgnorePattern: '^_', + varsIgnorePattern: '^_', + }, + ], + 'import/no-unused-modules': [ + 'error', + { + unusedExports: true, + ignoreExports: [ + 'src/**/*.test.js', + 'src/**/*.test.jsx', + 'src/mocks/**', + /** Internal surfaces: same-file “private” exports and re-exports for the partition feature. */ + 'src/features/drilldown/utils.js', + 'src/features/drilldown/selectors.js', + 'src/components/common/partition/partitionChartOptions.js', + 'src/features/partition/dmaPartitionModel.js', + 'src/app/store.js', + 'src/index.jsx', + 'vite.config.js', + 'vitest.config.mjs', + ], + }, + ], }, }, { @@ -64,6 +103,7 @@ export default [ rules: { ...testingLibrary.configs.react.rules, ...vitestPlugin.configs.recommended.rules, + 'import/no-unused-modules': 'off', }, }, ]; diff --git a/package-lock.json b/package-lock.json index 0e0f81e..5593d35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,12 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@reduxjs/toolkit": "^2.11.2", + "highcharts": "^12.5.0", + "highcharts-react-official": "^3.2.3", "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "react-redux": "^9.2.0" }, "devDependencies": { "@testing-library/jest-dom": "^6.9.1", @@ -19,9 +23,12 @@ "@vitejs/plugin-react": "^4.4.1", "@vitest/coverage-v8": "^4.0.14", "eslint": "^9.39.1", + "eslint-import-resolver-node": "^0.3.10", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-unused-imports": "^4.4.1", "eslint-plugin-vitest": "^0.5.4", "globals": "^16.5.0", "husky": "^9.1.7", @@ -1224,19 +1231,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1293,14 +1287,31 @@ "node": ">= 8" } }, - "node_modules/@polka/url": { - "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", - "dev": true, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", "license": "MIT", - "optional": true, - "peer": true + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.40.2", @@ -1582,11 +1593,23 @@ "win32" ] }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@standard-schema/spec": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", "license": "MIT" }, "node_modules/@testing-library/dom": { @@ -1764,17 +1787,18 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/node": { - "version": "22.15.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.18.tgz", - "integrity": "sha512-v1DKRfUdyW+jJhZNEI1PYy29S2YRxMV5AOO/x/SjKmW0acCIOqmbj6Haf9eHAhsPmrhlHSxEhv/1WszcLWV4cg==", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~6.21.0" - } + "license": "MIT" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" }, "node_modules/@typescript-eslint/project-service": { "version": "8.48.0", @@ -2105,30 +2129,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/ui": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.0.14.tgz", - "integrity": "sha512-fvDz8o7SQpFLoSBo6Cudv+fE85/fPCkwTnLAN85M+Jv7k59w2mSIjT9Q5px7XwGrmYqqKBEYxh/09IBGd1E7AQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@vitest/utils": "4.0.14", - "fflate": "^0.8.2", - "flatted": "^3.3.3", - "pathe": "^2.0.3", - "sirv": "^3.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "vitest": "4.0.14" - } - }, "node_modules/@vitest/utils": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz", @@ -2326,6 +2326,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", @@ -2532,15 +2554,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -3320,6 +3333,100 @@ } } }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.5", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", @@ -3373,24 +3480,6 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/eslint-plugin-testing-library": { "version": "7.13.5", "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.13.5.tgz", @@ -3408,6 +3497,22 @@ "eslint": "^8.57.0 || ^9.0.0" } }, + "node_modules/eslint-plugin-unused-imports": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.4.1.tgz", + "integrity": "sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", + "eslint": "^10.0.0 || ^9.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } + } + }, "node_modules/eslint-plugin-vitest": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/eslint-plugin-vitest/-/eslint-plugin-vitest-0.5.4.tgz", @@ -3800,15 +3905,6 @@ } } }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -4223,6 +4319,34 @@ "hermes-estree": "0.25.1" } }, + "node_modules/highcharts": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-12.5.0.tgz", + "integrity": "sha512-uNSSv1KqRLNvkyXlf1FbeGWB1mJ/8/IYpVeqYiTIop5Wo8peUvNyzUfLa58vILsmXyz+XrETtgKIEOcSgBBKuQ==", + "license": "https://www.highcharts.com/license", + "peerDependencies": { + "jspdf": "^3.0.0", + "svg2pdf.js": "^2.6.0" + }, + "peerDependenciesMeta": { + "jspdf": { + "optional": true + }, + "svg2pdf.js": { + "optional": true + } + } + }, + "node_modules/highcharts-react-official": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/highcharts-react-official/-/highcharts-react-official-3.2.3.tgz", + "integrity": "sha512-2gL8bVGe6Pf75tSe6IB5Ucd0nIOJX7ZrpttQBZVrjN2J9StdVZ12aOinXHIOFvlc6EzP8CbN13WS8NUq+9mptA==", + "license": "MIT", + "peerDependencies": { + "highcharts": ">=6.0.0", + "react": ">=16.8.0" + } + }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", @@ -4310,6 +4434,16 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", + "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", @@ -5271,16 +5405,14 @@ "node": "*" } }, - "node_modules/mrmime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/ms": { @@ -5329,6 +5461,25 @@ "dev": true, "license": "MIT" }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -5425,6 +5576,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/object.values": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", @@ -5827,6 +5993,29 @@ "dev": true, "license": "MIT" }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, "node_modules/react-refresh": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", @@ -5851,6 +6040,21 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -5905,6 +6109,36 @@ "node": ">=0.10.0" } }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -6273,23 +6507,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sirv": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", - "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6330,18 +6547,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -6352,19 +6557,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -6534,6 +6726,16 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -6593,36 +6795,6 @@ "dev": true, "license": "MIT" }, - "node_modules/terser": { - "version": "5.39.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", - "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/tinybench": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", @@ -6697,18 +6869,6 @@ "node": ">=8.0" } }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/tough-cookie": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", @@ -6748,6 +6908,32 @@ "typescript": ">=4.8.4" } }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6873,15 +7059,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", @@ -6923,6 +7100,15 @@ "punycode": "^2.1.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { "version": "6.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", diff --git a/package.json b/package.json index d3ab9c0..a1735eb 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,12 @@ "node": ">=20.17.0" }, "dependencies": { + "@reduxjs/toolkit": "^2.11.2", + "highcharts": "^12.5.0", + "highcharts-react-official": "^3.2.3", "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "react-redux": "^9.2.0" }, "devDependencies": { "@testing-library/jest-dom": "^6.9.1", @@ -35,9 +39,12 @@ "@vitejs/plugin-react": "^4.4.1", "@vitest/coverage-v8": "^4.0.14", "eslint": "^9.39.1", + "eslint-import-resolver-node": "^0.3.10", + "eslint-plugin-import": "^2.32.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-testing-library": "^7.0.5", + "eslint-plugin-unused-imports": "^4.4.1", "eslint-plugin-vitest": "^0.5.4", "globals": "^16.5.0", "husky": "^9.1.7", diff --git a/src/App.jsx b/src/App.jsx index 60d39ce..8aae86d 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,72 +1,11 @@ -import React, { useState } from 'react'; +import DrilldownContainer from './features/drilldown/components/DrilldownContainer.jsx'; +import { DMA_DRILL_LEVELS } from './mocks/dmaDrilldownLevels.js'; import './styles.css'; -const App = () => { - const [values, setValues] = useState({ first: '', second: '' }); - const [sum, setSum] = useState(null); - const numericPattern = /^-?\d*(\.\d*)?$/; - - const updateValue = (field) => (event) => { - const nextValue = event.target.value; - if (nextValue === '' || numericPattern.test(nextValue)) { - setValues((prev) => ({ ...prev, [field]: nextValue })); - } - }; - - const handleSubmit = (event) => { - event.preventDefault(); - if (values.first === '' || values.second === '') { - setSum(null); - return; - } - setSum(Number(values.first) + Number(values.second)); - }; - - return ( -
-

Simple Adder

-

- Type two numbers, hit add, and we will do the math for you. -

-
- - - -
- {sum !== null && ( -
- Total - {sum} -
- )} -
- ); -}; +const App = () => ( +
+ +
+); export default App; diff --git a/src/App2.jsx b/src/App2.jsx deleted file mode 100644 index 1802104..0000000 --- a/src/App2.jsx +++ /dev/null @@ -1,612 +0,0 @@ -import { useCallback, useMemo, useState } from 'react'; -import Highcharts from 'highcharts'; -import 'highcharts/modules/xrange'; -import 'highcharts/modules/exporting'; -import 'highcharts/modules/offline-exporting'; -import 'highcharts/modules/accessibility'; -import HighchartsReact from 'highcharts-react-official'; - -import './styles.css'; - -/** - * Partition-style flame chart with level drilldown. Uses `series.xrange`. - * React: https://www.highcharts.com/docs/react/getting-started — this app uses - * `highcharts-react-official` with the same Highcharts module side-effect imports. - * https://api.highcharts.com/highcharts/plotOptions.xrange - */ - -const COL = { - total: '#7c3aed', - national: '#f97316', - north: '#38bdf8', - south: '#1d4ed8', - central: '#93c5fd', -}; - -const NORTH_LEAF = [ - '#22c55e', - '#84cc16', - '#eab308', - '#f97316', - '#ef4444', - '#ec4899', - '#a855f7', - '#6366f1', - '#0ea5e9', - '#14b8a6', - '#f59e0b', - '#dc2626', - '#d946ef', - '#4ade80', - '#fb923c', -]; - -/** Region keys used for drill path (one level from overview). */ -const DRILL_REGION_IDS = new Set(['national', 'north', 'south', 'central']); - -const REGION_TITLE = { - national: 'National', - north: 'North region', - south: 'South region', - central: 'Central region', -}; - -const labelLight = { style: { color: '#0f172a', textOutline: 'none' } }; - -function getRowCount(data) { - if (!data.length) return 1; - return Math.max(...data.map((d) => d.y)) + 1; -} - -function depthCategories(rowCount) { - return Array.from({ length: rowCount }, () => ''); -} - -/** Full overview: Total → four regions → leaf row (reference layout). */ -function buildRootPartitionData() { - const data = []; - - data.push({ - name: 'Total', - x: 0, - x2: 100, - y: 0, - color: COL.total, - }); - - data.push( - { - name: 'National', - x: 0, - x2: 42, - y: 1, - color: COL.national, - custom: { drillId: 'national' }, - }, - { - name: 'North region', - x: 42, - x2: 58, - y: 1, - color: COL.north, - custom: { drillId: 'north' }, - }, - { - name: 'South region', - x: 58, - x2: 75, - y: 1, - color: COL.south, - custom: { drillId: 'south' }, - }, - { - name: 'Central region', - x: 75, - x2: 100, - y: 1, - color: COL.central, - dataLabels: labelLight, - custom: { drillId: 'central' }, - }, - ); - - const northSpan = 58 - 42; - for (let i = 0; i < 15; i++) { - const x = 42 + (i * northSpan) / 15; - const x2 = 42 + ((i + 1) * northSpan) / 15; - data.push({ - name: '\u00b7', - x, - x2, - y: 2, - color: NORTH_LEAF[i % NORTH_LEAF.length], - }); - } - - data.push( - { name: '\u00b7', x: 58, x2: 63.6667, y: 2, color: '#ec4899' }, - { name: '\u00b7', x: 63.6667, x2: 69.3333, y: 2, color: '#172554' }, - { - name: '\u00b7', - x: 69.3333, - x2: 75, - y: 2, - color: '#e0f2fe', - dataLabels: labelLight, - }, - ); - - data.push( - { name: '\u00b7', x: 75, x2: 87.5, y: 2, color: '#34d399' }, - { name: '\u00b7', x: 87.5, x2: 100, y: 2, color: '#fde047', dataLabels: labelLight }, - ); - - return data; -} - -/** Drilled view: focus row + children normalized to 0–100 (one region). */ -function buildDrilledPartitionData(regionId) { - if (regionId === 'national') { - return [ - { - name: 'National', - x: 0, - x2: 100, - y: 0, - color: COL.national, - }, - { - name: 'No sub-regions in reference data', - x: 0, - x2: 100, - y: 1, - color: '#fef3c7', - dataLabels: labelLight, - }, - ]; - } - - if (regionId === 'north') { - const out = [ - { - name: 'North region', - x: 0, - x2: 100, - y: 0, - color: COL.north, - }, - ]; - const n = 15; - for (let i = 0; i < n; i++) { - const x = (i * 100) / n; - const x2 = ((i + 1) * 100) / n; - out.push({ - name: '\u00b7', - x, - x2, - y: 1, - color: NORTH_LEAF[i % NORTH_LEAF.length], - }); - } - return out; - } - - if (regionId === 'south') { - return [ - { - name: 'South region', - x: 0, - x2: 100, - y: 0, - color: COL.south, - }, - { name: '\u00b7', x: 0, x2: 100 / 3, y: 1, color: '#ec4899' }, - { name: '\u00b7', x: 100 / 3, x2: (2 * 100) / 3, y: 1, color: '#172554' }, - { - name: '\u00b7', - x: (2 * 100) / 3, - x2: 100, - y: 1, - color: '#e0f2fe', - dataLabels: labelLight, - }, - ]; - } - - if (regionId === 'central') { - return [ - { - name: 'Central region', - x: 0, - x2: 100, - y: 0, - color: COL.central, - dataLabels: labelLight, - }, - { name: '\u00b7', x: 0, x2: 50, y: 1, color: '#34d399' }, - { name: '\u00b7', x: 50, x2: 100, y: 1, color: '#fde047', dataLabels: labelLight }, - ]; - } - - return buildRootPartitionData(); -} - -function getPartitionData(drillPath) { - if (!drillPath?.length) return buildRootPartitionData(); - const id = drillPath[0]; - return DRILL_REGION_IDS.has(id) ? buildDrilledPartitionData(id) : buildRootPartitionData(); -} - -function fitXRangeRowHeight(chart, redraw = true) { - const series = chart.series[0]; - if (!series?.data?.length) return; - const ys = series.data.map((p) => p.y); - const rows = Math.max(...ys) + 1; - const pw = Math.max(8, Math.floor(chart.plotHeight / rows)); - series.update({ pointWidth: pw }, redraw); -} - -/** Blue callout: elbow to “North region” on overview only. */ -function drawNorthCallout(chart, showCallout) { - if (chart.partitionCallout) { - chart.partitionCallout.destroy(); - chart.partitionCallout = undefined; - } - - if (!showCallout) return; - - const series = chart.series[0]; - const north = series?.points?.find((p) => p.name === 'North region'); - if (!north?.shapeArgs) return; - - const g = chart.renderer.g().attr({ zIndex: 10 }).add(); - chart.partitionCallout = g; - - const { x: sx, y: sy } = north.shapeArgs; - const xLeft = chart.plotLeft + sx; - const yTop = chart.plotTop + sy; - const pw = series.options.pointWidth ?? 20; - const yMid = yTop + pw / 2; - const startX = chart.plotLeft + 6; - - chart.renderer - .path(['M', startX, yMid, 'L', xLeft, yMid, 'L', xLeft, yTop + 4]) - .attr({ - stroke: '#2563eb', - 'stroke-width': 2, - 'stroke-linejoin': 'round', - 'stroke-linecap': 'round', - fill: 'none', - }) - .add(g); - - chart.renderer - .circle(xLeft + 5, yTop + 5, 6) - .attr({ - fill: '#2563eb', - stroke: '#ffffff', - 'stroke-width': 1, - }) - .add(g); -} - -function createFlameChartOptions({ - drillPath, - data, - rowCount, - canDrillFromChart, - onDrillRegion, -}) { - const showNorthCallout = drillPath.length === 0; - - return { - chart: { - type: 'xrange', - backgroundColor: '#ffffff', - plotBackgroundColor: '#ffffff', - plotBorderWidth: 0, - borderRadius: 12, - spacing: [16, 16, 16, 16], - marginLeft: 12, - marginRight: 12, - marginTop: 12, - marginBottom: 12, - style: { - fontFamily: - "'Inter', 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif", - }, - animation: { duration: 450 }, - zooming: { type: 'x' }, - panning: { enabled: true, type: 'x' }, - panKey: 'shift', - events: { - load() { - const el = this.credits?.element; - if (el) el.setAttribute('tabindex', '-1'); - - requestAnimationFrame(() => { - fitXRangeRowHeight(this, true); - drawNorthCallout(this, showNorthCallout); - }); - }, - redraw() { - drawNorthCallout(this, showNorthCallout); - }, - }, - }, - - title: { - text: 'Partition flame chart', - align: 'left', - margin: 12, - style: { fontSize: '1.2rem', fontWeight: '700', color: '#0f172a' }, - }, - - subtitle: { - text: showNorthCallout - ? 'Click a region (middle row) to drill down. Back returns to overview.' - : `Drilled into ${REGION_TITLE[drillPath[0]] ?? drillPath[0]}. Use Back to return.`, - align: 'left', - style: { color: '#64748b' }, - }, - - caption: { - text: 'series.xrange · level drilldown via point.custom.drillId', - align: 'left', - margin: 10, - style: { fontSize: '0.8rem', color: '#94a3b8' }, - }, - - credits: { - enabled: true, - text: 'Highcharts xrange', - href: 'https://api.highcharts.com/highcharts/plotOptions.xrange', - style: { color: '#94a3b8' }, - }, - - time: { useUTC: false }, - - xAxis: { - type: 'linear', - min: 0, - max: 100, - visible: false, - lineWidth: 0, - lineColor: 'transparent', - tickLength: 0, - tickWidth: 0, - gridLineWidth: 0, - minorGridLineWidth: 0, - labels: { enabled: false }, - title: { text: null }, - crosshair: false, - }, - - yAxis: { - categories: depthCategories(rowCount), - reversed: true, - min: 0, - max: rowCount - 1, - visible: false, - lineWidth: 0, - lineColor: 'transparent', - tickLength: 0, - tickWidth: 0, - gridLineWidth: 0, - minorGridLineWidth: 0, - labels: { enabled: false }, - title: { text: null }, - }, - - legend: { enabled: false }, - - tooltip: { - shared: false, - borderRadius: 8, - backgroundColor: 'rgba(15, 23, 42, 0.92)', - style: { color: '#f8fafc' }, - formatter() { - const p = this.point; - const w = p.x2 - p.x; - const pct = w.toFixed(2); - const hint = - canDrillFromChart && p.options?.custom?.drillId - ? '
Click to drill into this region' - : ''; - return ( - `${p.name}
` + - `Share of view ${pct}%
` + - `Range ${p.x.toFixed(2)} – ${p.x2.toFixed(2)}` + - hint - ); - }, - }, - - plotOptions: { - series: { - animation: { duration: 500 }, - states: { - inactive: { opacity: 0.5 }, - hover: { brightness: 0.08 }, - }, - }, - xrange: { - grouping: false, - pointPadding: 0, - groupPadding: 0, - borderRadius: 0, - borderWidth: 1, - borderColor: '#ffffff', - minPointLength: 0, - cursor: canDrillFromChart ? 'pointer' : 'default', - point: { - events: { - click() { - if (!canDrillFromChart) return; - const id = this.options?.custom?.drillId; - if (id) onDrillRegion(id); - }, - }, - }, - dataLabels: { - enabled: true, - align: 'center', - verticalAlign: 'middle', - inside: true, - crop: false, - overflow: 'allow', - padding: 2, - style: { - fontWeight: '600', - fontSize: '0.75rem', - color: '#ffffff', - textOutline: '1px contrast', - }, - formatter() { - const w = this.point.shapeArgs?.width ?? 0; - const n = this.point.name; - if (!n || n === '\u00b7') return ''; - if (w < 36 && n.length > 6) return ''; - return n; - }, - }, - }, - }, - - series: [ - { - name: 'Partition', - borderColor: '#ffffff', - data, - }, - ], - - exporting: { - enabled: true, - fallbackToExportServer: false, - sourceWidth: 1200, - chartOptions: { - plotOptions: { series: { dataLabels: { enabled: true } } }, - }, - buttons: { - contextButton: { - menuItems: [ - 'viewFullscreen', - 'printChart', - 'separator', - 'downloadPNG', - 'downloadJPEG', - 'downloadPDF', - 'downloadSVG', - ], - }, - }, - }, - - navigation: { - buttonOptions: { - theme: { - fill: '#f1f5f9', - stroke: '#cbd5e1', - style: { color: '#0f172a' }, - r: 8, - states: { hover: { fill: '#e2e8f0' }, select: { fill: '#dbeafe' } }, - }, - }, - }, - - responsive: { - rules: [ - { - condition: { maxWidth: 640 }, - chartOptions: { - plotOptions: { - xrange: { - dataLabels: { style: { fontSize: '0.65rem' } }, - }, - }, - }, - }, - ], - }, - }; -} - -const App2 = () => { - const [drillPath, setDrillPath] = useState([]); - - const onDrillRegion = useCallback((regionId) => { - setDrillPath([regionId]); - }, []); - - const onBackToOverview = useCallback(() => { - setDrillPath([]); - }, []); - - const options = useMemo(() => { - const d = getPartitionData(drillPath); - const rc = getRowCount(d); - const canDrillFromChart = drillPath.length === 0; - return createFlameChartOptions({ - drillPath, - data: d, - rowCount: rc, - canDrillFromChart, - onDrillRegion, - }); - }, [drillPath, onDrillRegion]); - - const drilledLabel = - drillPath.length > 0 ? REGION_TITLE[drillPath[0]] ?? drillPath[0] : null; - - return ( -
-
-

Partition flame chart

-

- Overview matches your reference (Total → regions → subdivisions).{' '} - Click a region in the middle row to drill into that level; use{' '} - Back to overview or clear the path to return. Built with Highcharts{' '} - xrange and the official React wrapper pattern from{' '} - - Highcharts React — Getting started - {' '} - (highcharts-react-official + module imports). -

-
- -
-

Chart

- - {drillPath.length > 0 ? ( - - ) : null} - -

- Drag to zoom horizontally; Shift-drag to pan. On overview, click National / North / South / - Central to open that level (normalized to 100% width). -

-
- -
-
-
- ); -}; - -export default App2; diff --git a/src/app/store.js b/src/app/store.js new file mode 100644 index 0000000..ffebf90 --- /dev/null +++ b/src/app/store.js @@ -0,0 +1,15 @@ +import { configureStore } from '@reduxjs/toolkit'; +import { setupListeners } from '@reduxjs/toolkit/query'; +import { drilldownApi } from '../services/drilldownApi.js'; +import drilldownReducer from '../features/drilldown/drilldownSlice.js'; + +export const store = configureStore({ + reducer: { + drilldown: drilldownReducer, + [drilldownApi.reducerPath]: drilldownApi.reducer, + }, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat(drilldownApi.middleware), +}); + +setupListeners(store.dispatch); diff --git a/src/components/common/partition/PartitionIcicleChart.jsx b/src/components/common/partition/PartitionIcicleChart.jsx new file mode 100644 index 0000000..738d148 --- /dev/null +++ b/src/components/common/partition/PartitionIcicleChart.jsx @@ -0,0 +1,271 @@ +import { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'; +import Highcharts from 'highcharts'; +import 'highcharts/modules/xrange'; +import 'highcharts/modules/accessibility'; +import HighchartsReact from 'highcharts-react-official'; + +import { + getPartitionData, + leafLabel, + normalizeRows, + slugParent, +} from './buildPartitionSeriesData.js'; +import { + applyPartitionRowHeights, + createPartitionChartOptions, + getOverviewRowHeightRatios, +} from './partitionChartOptions.js'; + +/** + * @typedef {import('./buildPartitionSeriesData.js').PartitionHierarchy} PartitionHierarchy + */ + +/** + * @typedef {Object} DrillState + * @property {string|null} [parentValue] - Selected parent band label; null at overview. + * @property {number|null} [leafIndex] - Selected leaf index within that parent; null until leaf click. + */ + +/** + * @typedef {Object} LevelClickPayload + * @property {string|number|undefined} [streamId] + * @property {'grandparent'|'parent'|'leaf'} level + * @property {'select'|'back-parent'|'back-overview'} action + * @property {string[]} path - Labels from root → current focus + * @property {{ row?: object, parentKey?: string, leafIndex?: number, drillId?: string }} raw + */ + +function buildDrillPath(rows, hierarchy, drillParentName, leafIndex) { + const n = normalizeRows(rows, hierarchy); + if (drillParentName == null) return []; + const slice = n.filter((r) => r.parent === drillParentName); + const gp = slice[0]?.grandparent ?? 'Total'; + if (leafIndex == null) return [gp, drillParentName]; + const leaf = slice[leafIndex]?.leaf; + if (leaf == null) return [gp, drillParentName]; + return [gp, drillParentName, leaf]; +} + +/** + * Icicle / partition chart: pass flat `data` rows and a `hierarchy` field map. + * Fires `onLevelClick` for chart drill actions and built-in nav buttons. + * + * @param {object} props + * @param {Record[]} props.data + * @param {PartitionHierarchy} props.hierarchy + * @param {string|number} [props.streamId] + * @param {string} [props.chartInstanceKey] - Stable React key for Highcharts (dataset identity); omit drill state so the chart updates in place on drill. + * @param {DrillState} [props.drillState] - Controlled drill; use with `onDrillStateChange`. + * @param {(state: DrillState) => void} [props.onDrillStateChange] + * @param {(payload: LevelClickPayload) => void} [props.onLevelClick] + * @param {string} [props.chartTitle] + * @param {string} [props.captionText] + * @param {string} [props.className] + * @param {boolean} [props.showBuiltInNav=true] + * @param {boolean} [props.interactive=true] + */ +export function PartitionIcicleChart({ + data: rows, + hierarchy, + streamId, + chartInstanceKey, + drillState: controlledDrill, + onDrillStateChange, + onLevelClick, + chartTitle, + captionText, + className = '', + showBuiltInNav = true, + interactive = true, +}) { + const isControlled = + typeof onDrillStateChange === 'function' && controlledDrill != null; + + const [internalParent, setInternalParent] = useState(null); + const [internalLeaf, setInternalLeaf] = useState(null); + const chartRef = useRef(null); + + const drillParentName = isControlled + ? (controlledDrill.parentValue ?? null) + : internalParent; + const leafIndex = isControlled ? (controlledDrill.leafIndex ?? null) : internalLeaf; + + const setDrillState = useCallback( + (next) => { + if (isControlled) { + onDrillStateChange(next); + } else { + setInternalParent(next.parentValue ?? null); + setInternalLeaf(next.leafIndex ?? null); + } + }, + [isControlled, onDrillStateChange] + ); + + const emit = useCallback( + (partial) => { + if (typeof onLevelClick !== 'function') return; + /** @type {LevelClickPayload} */ + const payload = { + streamId, + level: partial.level, + action: partial.action, + path: partial.path ?? [], + raw: partial.raw ?? {}, + }; + onLevelClick(payload); + }, + [onLevelClick, streamId] + ); + + const handleDrillParent = useCallback( + (parentName) => { + setDrillState({ parentValue: parentName, leafIndex: null }); + emit({ + level: 'parent', + action: 'select', + path: buildDrillPath(rows, hierarchy, parentName, null), + raw: { parentKey: parentName, drillId: slugParent(parentName) }, + }); + }, + [emit, hierarchy, rows, setDrillState] + ); + + const handleSelectLeaf = useCallback( + (idx) => { + setDrillState({ parentValue: drillParentName, leafIndex: idx }); + const slice = normalizeRows(rows, hierarchy).filter( + (r) => r.parent === drillParentName + ); + emit({ + level: 'leaf', + action: 'select', + path: buildDrillPath(rows, hierarchy, drillParentName, idx), + raw: { + parentKey: drillParentName, + leafIndex: idx, + row: slice[idx]?.raw, + }, + }); + }, + [drillParentName, emit, hierarchy, rows, setDrillState] + ); + + const handleBackToParentBreakdown = useCallback(() => { + setDrillState({ parentValue: drillParentName, leafIndex: null }); + emit({ + level: 'leaf', + action: 'back-parent', + path: buildDrillPath(rows, hierarchy, drillParentName, null), + raw: { parentKey: drillParentName }, + }); + }, [drillParentName, emit, hierarchy, rows, setDrillState]); + + const handleBackToOverview = useCallback(() => { + setDrillState({ parentValue: null, leafIndex: null }); + emit({ + level: 'parent', + action: 'back-overview', + path: [], + raw: {}, + }); + }, [emit, setDrillState]); + + const seriesData = useMemo( + () => getPartitionData(rows, hierarchy, drillParentName, leafIndex), + [rows, hierarchy, drillParentName, leafIndex] + ); + + const maxY = useMemo( + () => (seriesData.length ? Math.max(...seriesData.map((d) => d.y ?? 0)) : 0), + [seriesData] + ); + const useOverviewMultiSeriesLayout = drillParentName == null && maxY >= 2; + const rowHeightRatiosOverride = useOverviewMultiSeriesLayout + ? getOverviewRowHeightRatios() + : undefined; + + const options = useMemo( + () => + createPartitionChartOptions({ + data: seriesData, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + onDrillParent: handleDrillParent, + onSelectLeaf: handleSelectLeaf, + }), + [ + seriesData, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + handleDrillParent, + handleSelectLeaf, + ] + ); + + useLayoutEffect(() => { + const chart = chartRef.current?.chart; + if (!chart || chart.destroyed) return; + requestAnimationFrame(() => { + applyPartitionRowHeights(chart, true, rowHeightRatiosOverride); + }); + }, [options, rowHeightRatiosOverride]); + + const leafName = + leafIndex == null ? null : leafLabel(rows, hierarchy, drillParentName, leafIndex); + + const highchartsKey = chartInstanceKey ?? `icicle-${String(streamId ?? '')}`; + + return ( +
+ {showBuiltInNav && drillParentName !== null && drillParentName !== undefined ? ( + + ) : null} + +
+ +
+
+ ); +} + +export default PartitionIcicleChart; diff --git a/src/components/common/partition/PartitionSunburstChart.jsx b/src/components/common/partition/PartitionSunburstChart.jsx new file mode 100644 index 0000000..e5f54e1 --- /dev/null +++ b/src/components/common/partition/PartitionSunburstChart.jsx @@ -0,0 +1,240 @@ +import { useCallback, useMemo, useState } from 'react'; +import Highcharts from 'highcharts'; +import 'highcharts/modules/sunburst'; +import 'highcharts/modules/accessibility'; +import 'highcharts/modules/sonification'; +import HighchartsReact from 'highcharts-react-official'; + +import { getSunburstPartitionData } from './buildPartitionSunburstData.js'; +import { leafLabel, normalizeRows, slugParent } from './buildPartitionSeriesData.js'; +import { createSunburstChartOptions } from './partitionSunburstChartOptions.js'; + +function buildDrillPath(rows, hierarchy, drillParentName, leafIndex) { + const n = normalizeRows(rows, hierarchy); + if (drillParentName == null) return []; + const slice = n.filter((r) => r.parent === drillParentName); + const gp = slice[0]?.grandparent ?? 'Total'; + if (leafIndex == null) return [gp, drillParentName]; + const leaf = slice[leafIndex]?.leaf; + if (leaf == null) return [gp, drillParentName]; + return [gp, drillParentName, leaf]; +} + +/** + * @typedef {import('./buildPartitionSeriesData.js').PartitionHierarchy} PartitionHierarchy + */ + +/** + * @typedef {Object} DrillState + * @property {string|null} [parentValue] + * @property {number|null} [leafIndex] + */ + +/** + * @typedef {Object} LevelClickPayload + * @property {string|number|undefined} [streamId] + * @property {'grandparent'|'parent'|'leaf'} level + * @property {'select'|'back-parent'|'back-overview'} action + * @property {string[]} path + * @property {{ row?: object, parentKey?: string, leafIndex?: number, drillId?: string }} raw + */ + +/** + * Sunburst view for the same flat rows + hierarchy as {@link PartitionIcicleChart}. + * + * @param {object} props + * @param {Record[]} props.data + * @param {PartitionHierarchy} props.hierarchy + * @param {string|number} [props.streamId] + * @param {string} [props.chartInstanceKey] + * @param {DrillState} [props.drillState] + * @param {(state: DrillState) => void} [props.onDrillStateChange] + * @param {(payload: LevelClickPayload) => void} [props.onLevelClick] + * @param {string} [props.chartTitle] + * @param {string} [props.captionText] + * @param {string} [props.className] + * @param {boolean} [props.showBuiltInNav=true] + * @param {boolean} [props.interactive=true] + */ +export function PartitionSunburstChart({ + data: rows, + hierarchy, + streamId, + chartInstanceKey, + drillState: controlledDrill, + onDrillStateChange, + onLevelClick, + chartTitle, + captionText, + className = '', + showBuiltInNav = true, + interactive = true, +}) { + const isControlled = + typeof onDrillStateChange === 'function' && controlledDrill != null; + + const [internalParent, setInternalParent] = useState(null); + const [internalLeaf, setInternalLeaf] = useState(null); + + const drillParentName = isControlled + ? (controlledDrill.parentValue ?? null) + : internalParent; + const leafIndex = isControlled ? (controlledDrill.leafIndex ?? null) : internalLeaf; + + const setDrillState = useCallback( + (next) => { + if (isControlled) { + onDrillStateChange(next); + } else { + setInternalParent(next.parentValue ?? null); + setInternalLeaf(next.leafIndex ?? null); + } + }, + [isControlled, onDrillStateChange] + ); + + const emit = useCallback( + (partial) => { + if (typeof onLevelClick !== 'function') return; + /** @type {LevelClickPayload} */ + const payload = { + streamId, + level: partial.level, + action: partial.action, + path: partial.path ?? [], + raw: partial.raw ?? {}, + }; + onLevelClick(payload); + }, + [onLevelClick, streamId] + ); + + const handleDrillParent = useCallback( + (parentName) => { + setDrillState({ parentValue: parentName, leafIndex: null }); + emit({ + level: 'parent', + action: 'select', + path: buildDrillPath(rows, hierarchy, parentName, null), + raw: { parentKey: parentName, drillId: slugParent(parentName) }, + }); + }, + [emit, hierarchy, rows, setDrillState] + ); + + const handleSelectLeaf = useCallback( + (idx) => { + setDrillState({ parentValue: drillParentName, leafIndex: idx }); + const slice = normalizeRows(rows, hierarchy).filter( + (r) => r.parent === drillParentName + ); + emit({ + level: 'leaf', + action: 'select', + path: buildDrillPath(rows, hierarchy, drillParentName, idx), + raw: { + parentKey: drillParentName, + leafIndex: idx, + row: slice[idx]?.raw, + }, + }); + }, + [drillParentName, emit, hierarchy, rows, setDrillState] + ); + + const handleBackToParentBreakdown = useCallback(() => { + setDrillState({ parentValue: drillParentName, leafIndex: null }); + emit({ + level: 'leaf', + action: 'back-parent', + path: buildDrillPath(rows, hierarchy, drillParentName, null), + raw: { parentKey: drillParentName }, + }); + }, [drillParentName, emit, hierarchy, rows, setDrillState]); + + const handleBackToOverview = useCallback(() => { + setDrillState({ parentValue: null, leafIndex: null }); + emit({ + level: 'parent', + action: 'back-overview', + path: [], + raw: {}, + }); + }, [emit, setDrillState]); + + const seriesData = useMemo( + () => getSunburstPartitionData(rows, hierarchy, drillParentName, leafIndex), + [rows, hierarchy, drillParentName, leafIndex] + ); + + const options = useMemo( + () => + createSunburstChartOptions({ + data: seriesData, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + onDrillParent: handleDrillParent, + onSelectLeaf: handleSelectLeaf, + }), + [ + seriesData, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + handleDrillParent, + handleSelectLeaf, + ] + ); + + const leafName = + leafIndex == null ? null : leafLabel(rows, hierarchy, drillParentName, leafIndex); + + const highchartsKey = chartInstanceKey ?? `sunburst-${String(streamId ?? '')}`; + + return ( +
+ {showBuiltInNav && drillParentName !== null && drillParentName !== undefined ? ( + + ) : null} + +
+ +
+
+ ); +} + +export default PartitionSunburstChart; diff --git a/src/components/common/partition/buildPartitionSeriesData.js b/src/components/common/partition/buildPartitionSeriesData.js new file mode 100644 index 0000000..bf6002f --- /dev/null +++ b/src/components/common/partition/buildPartitionSeriesData.js @@ -0,0 +1,279 @@ +/** + * Field-agnostic partition / icicle series data for Highcharts xrange. + * Each input row is one leaf segment; grandparent + parent + leaf column names come from `hierarchy`. + */ + +const DMA_COLORS = [ + '#22c55e', + '#84cc16', + '#eab308', + '#f97316', + '#ef4444', + '#ec4899', + '#a855f7', + '#6366f1', + '#0ea5e9', + '#14b8a6', + '#f59e0b', + '#dc2626', + '#d946ef', + '#4ade80', + '#fb923c', +]; + +function colorForParent(key, i) { + if (i != null) return DMA_COLORS[i % DMA_COLORS.length]; + let h = 0; + for (let c = 0; c < key.length; c++) h = (h * 31 + key.charCodeAt(c)) % 360; + return `hsl(${h} 70% 52%)`; +} + +export function slugParent(parent) { + return `parent:${encodeURIComponent(parent)}`; +} + +export function parseParentSlug(drillId) { + if (!drillId || !String(drillId).startsWith('parent:')) return null; + try { + return decodeURIComponent(String(drillId).slice('parent:'.length)); + } catch { + return null; + } +} + +export function rowWeight(r) { + const n = Number(r.value); + return Number.isFinite(n) && n > 0 ? n : 1; +} + +/** + * @typedef {object} PartitionHierarchy + * @property {string} grandparent - Column key for top band (e.g. 'grandparent', 'region') + * @property {string} parent - Column key for middle band + * @property {string} leaf - Column key for leaf label (e.g. 'dma', 'sku') + * @property {string} [value] - Optional numeric column for weights (defaults to weight 1 per row) + */ + +/** + * @param {Record[]} rows + * @param {PartitionHierarchy} hierarchy + * @returns {{ grandparent: string, parent: string, leaf: string, value: number, raw: Record }[]} + */ +export function normalizeRows(rows, hierarchy) { + const gpKey = hierarchy.grandparent; + const pKey = hierarchy.parent; + const lKey = hierarchy.leaf; + const vKey = hierarchy.value ?? 'value'; + + return rows.map((r) => ({ + grandparent: String(r[gpKey] ?? 'Total'), + parent: String(r[pKey]), + leaf: String(r[lKey]), + value: rowWeight({ value: r[vKey] }), + raw: r, + })); +} + +function sumValues(list) { + return list.reduce((s, r) => s + rowWeight(r), 0); +} + +function uniqueOrdered(values) { + const seen = new Set(); + const out = []; + for (const v of values) { + if (!seen.has(v)) { + seen.add(v); + out.push(v); + } + } + return out; +} + +function pushLeafStrips(data, y, x0, x2, leafRows, drillParentKey) { + const span = x2 - x0; + const sub = sumValues(leafRows); + let acc = x0; + leafRows.forEach((r, j) => { + const w = (rowWeight(r) / sub) * span; + data.push({ + name: r.leaf, + x: acc, + x2: acc + w, + y, + color: DMA_COLORS[j % DMA_COLORS.length], + custom: { + dmaIndex: j, + leafKey: `${r.parent}::${r.leaf}`, + rawRow: r.raw, + ...(drillParentKey != null ? { drillId: slugParent(drillParentKey) } : {}), + }, + dataLabels: { + rotation: -90, + style: { fontSize: '0.62rem', fontWeight: '600' }, + crop: false, + allowOverlap: true, + }, + }); + acc += w; + }); +} + +/** + * @param {Record[]} rowsInput + * @param {PartitionHierarchy} hierarchy + */ +export function buildOverviewPartitionData(rowsInput, hierarchy) { + const rows = normalizeRows(rowsInput, hierarchy); + if (!rows.length) { + return [{ name: 'No data', x: 0, x2: 100, y: 0, color: '#e2e8f0' }]; + } + + const total = sumValues(rows); + const data = []; + + const grandparents = uniqueOrdered(rows.map((r) => r.grandparent)); + let x = 0; + grandparents.forEach((gp, gi) => { + const gpRows = rows.filter((r) => r.grandparent === gp); + const gpSum = sumValues(gpRows); + const w = (gpSum / total) * 100; + data.push({ + name: gp, + x, + x2: x + w, + y: 0, + color: gi === 0 ? '#7c3aed' : colorForParent(gp, gi), + custom: { level: 'grandparent' }, + }); + x += w; + }); + + const parents = uniqueOrdered(rows.map((r) => r.parent)); + x = 0; + parents.forEach((p, pi) => { + const pRows = rows.filter((r) => r.parent === p); + const pSum = sumValues(pRows); + const w = (pSum / total) * 100; + data.push({ + name: p, + x, + x2: x + w, + y: 1, + color: colorForParent(p, pi), + custom: { drillId: slugParent(p) }, + }); + x += w; + }); + + parents.forEach((p) => { + const pRows = rows.filter((r) => r.parent === p); + const parentBlock = data.find((d) => d.y === 1 && d.name === p); + if (!parentBlock) return; + pushLeafStrips(data, 2, parentBlock.x, parentBlock.x2, pRows, p); + }); + + return data; +} + +/** + * @param {Record[]} rowsInput + * @param {PartitionHierarchy} hierarchy + * @param {string} parentName + * @param {number|null} [leafIndex] + */ +export function buildDrilledPartitionData( + rowsInput, + hierarchy, + parentName, + leafIndex = null +) { + const rows = normalizeRows(rowsInput, hierarchy); + const slice = rows.filter((r) => r.parent === parentName); + if (!slice.length) return buildOverviewPartitionData(rowsInput, hierarchy); + + const gp = slice[0].grandparent; + + if (leafIndex != null && leafIndex >= 0 && leafIndex < slice.length) { + const pick = slice[leafIndex]; + const c = DMA_COLORS[leafIndex % DMA_COLORS.length]; + return [ + { + name: gp, + x: 0, + x2: 100, + y: 0, + color: '#7c3aed', + custom: { rowRole: 'total' }, + }, + { + name: parentName, + x: 0, + x2: 100, + y: 1, + color: colorForParent(parentName, 0), + custom: { rowRole: 'region' }, + }, + { + name: pick.leaf, + x: 0, + x2: 100, + y: 2, + color: c, + custom: { + dmaIndex: leafIndex, + rowRole: 'dmaLeaf', + leafKey: `${pick.parent}::${pick.leaf}`, + rawRow: pick.raw, + }, + }, + ]; + } + + const data = [ + { + name: gp, + x: 0, + x2: 100, + y: 0, + color: '#7c3aed', + custom: { rowRole: 'total' }, + }, + { + name: parentName, + x: 0, + x2: 100, + y: 1, + color: colorForParent(parentName, 0), + custom: { rowRole: 'region' }, + }, + ]; + pushLeafStrips(data, 2, 0, 100, slice, parentName); + return data; +} + +/** + * @param {Record[]} rows + * @param {PartitionHierarchy} hierarchy + * @param {string|null} drillParentName + * @param {number|null} leafIndex + */ +export function getPartitionData(rows, hierarchy, drillParentName, leafIndex) { + if (drillParentName == null) return buildOverviewPartitionData(rows, hierarchy); + return buildDrilledPartitionData(rows, hierarchy, drillParentName, leafIndex); +} + +/** + * @param {Record[]} rows + * @param {PartitionHierarchy} hierarchy + * @param {string|null} drillParentName + * @param {number|null} leafIndex + */ +export function leafLabel(rows, hierarchy, drillParentName, leafIndex) { + if (drillParentName == null || leafIndex == null) return null; + const slice = normalizeRows(rows, hierarchy).filter( + (r) => r.parent === drillParentName + ); + const r = slice[leafIndex]; + return r ? r.leaf : null; +} diff --git a/src/components/common/partition/buildPartitionSeriesData.test.js b/src/components/common/partition/buildPartitionSeriesData.test.js new file mode 100644 index 0000000..0975233 --- /dev/null +++ b/src/components/common/partition/buildPartitionSeriesData.test.js @@ -0,0 +1,92 @@ +import { describe, expect, it } from 'vitest'; + +import { + buildOverviewPartitionData, + getPartitionData, + normalizeRows, +} from './buildPartitionSeriesData'; + +const ALT_HIERARCHY = { + grandparent: 'geo', + parent: 'market', + leaf: 'sku', + value: 'vol', +}; + +describe('normalizeRows', () => { + it('maps arbitrary column names to internal shape', () => { + const rows = [ + { geo: 'WW', market: 'A', sku: 'x', vol: 10 }, + { geo: 'WW', market: 'A', sku: 'y', vol: 10 }, + ]; + const n = normalizeRows(rows, ALT_HIERARCHY); + expect(n).toHaveLength(2); + expect(n[0]).toMatchObject({ + grandparent: 'WW', + parent: 'A', + leaf: 'x', + value: 10, + }); + expect(n[0].raw).toBe(rows[0]); + }); + + it('defaults missing grandparent to Total', () => { + const rows = [{ market: 'A', sku: 'x', vol: 1 }]; + const n = normalizeRows(rows, ALT_HIERARCHY); + expect(n[0].grandparent).toBe('Total'); + }); +}); + +describe('getPartitionData', () => { + it('builds overview with three rows of points', () => { + const rows = [ + { geo: 'T', market: 'North', sku: 'B', vol: 60 }, + { geo: 'T', market: 'North', sku: 'C', vol: 40 }, + { geo: 'T', market: 'South', sku: 'D', vol: 100 }, + ]; + const data = getPartitionData(rows, ALT_HIERARCHY, null, null); + const ys = [...new Set(data.map((d) => d.y))].sort(); + expect(ys).toEqual([0, 1, 2]); + const top = data.filter((d) => d.y === 0); + expect(top).toHaveLength(1); + expect(top[0].name).toBe('T'); + expect(top[0].x).toBe(0); + expect(top[0].x2).toBe(100); + }); + + it('drills to parent with normalized leaf row', () => { + const rows = [ + { geo: 'T', market: 'North', sku: 'B', vol: 50 }, + { geo: 'T', market: 'North', sku: 'C', vol: 50 }, + ]; + const data = getPartitionData(rows, ALT_HIERARCHY, 'North', null); + expect(data.some((d) => d.name === 'B' && d.y === 2)).toBe(true); + expect(data.some((d) => d.name === 'C' && d.y === 2)).toBe(true); + }); +}); + +describe('buildOverviewPartitionData', () => { + it('assigns non-zero width to each parent band from vol', () => { + const rows = [ + { geo: 'T', market: 'P1', sku: 'a', vol: 25 }, + { geo: 'T', market: 'P2', sku: 'b', vol: 75 }, + ]; + const data = buildOverviewPartitionData(rows, ALT_HIERARCHY); + const p1 = data.find((d) => d.y === 1 && d.name === 'P1'); + const p2 = data.find((d) => d.y === 1 && d.name === 'P2'); + expect(p1.x2 - p1.x).toBeCloseTo(25, 5); + expect(p2.x2 - p2.x).toBeCloseTo(75, 5); + }); + + it('tags leaf strips with parent drillId for overview hover handoff', () => { + const rows = [ + { geo: 'T', market: 'P1', sku: 'a', vol: 50 }, + { geo: 'T', market: 'P1', sku: 'b', vol: 50 }, + ]; + const data = buildOverviewPartitionData(rows, ALT_HIERARCHY); + const leaves = data.filter((d) => d.y === 2); + expect(leaves.length).toBe(2); + expect(leaves[0].custom?.drillId).toBe('parent:P1'); + expect(leaves[1].custom?.drillId).toBe('parent:P1'); + }); +}); diff --git a/src/components/common/partition/buildPartitionSunburstData.js b/src/components/common/partition/buildPartitionSunburstData.js new file mode 100644 index 0000000..965b0cd --- /dev/null +++ b/src/components/common/partition/buildPartitionSunburstData.js @@ -0,0 +1,289 @@ +/** + * Hierarchical sunburst series data (id + parent + value) derived from the same + * flat rows + hierarchy as the icicle / xrange partition chart. + */ + +import { normalizeRows, rowWeight, slugParent } from './buildPartitionSeriesData.js'; + +const DMA_COLORS = [ + '#22c55e', + '#84cc16', + '#eab308', + '#f97316', + '#ef4444', + '#ec4899', + '#a855f7', + '#6366f1', + '#0ea5e9', + '#14b8a6', + '#f59e0b', + '#dc2626', + '#d946ef', + '#4ade80', + '#fb923c', +]; + +function colorForParent(key, i) { + if (i != null) return DMA_COLORS[i % DMA_COLORS.length]; + let h = 0; + for (let c = 0; c < key.length; c++) h = (h * 31 + key.charCodeAt(c)) % 360; + return `hsl(${h} 70% 52%)`; +} + +function uniqueOrdered(values) { + const seen = new Set(); + const out = []; + for (const v of values) { + if (!seen.has(v)) { + seen.add(v); + out.push(v); + } + } + return out; +} + +/** Preserve first-seen order of (grandparent, parent) pairs. */ +function uniqueGrandparentParentPairs(rows) { + const seen = new Set(); + const out = []; + for (const r of rows) { + const k = `${r.grandparent}\u0000${r.parent}`; + if (!seen.has(k)) { + seen.add(k); + out.push({ gp: r.grandparent, p: r.parent }); + } + } + return out; +} + +function sumValues(list) { + return list.reduce((s, r) => s + rowWeight(r), 0); +} + +function idGp(gp) { + return `gp:${encodeURIComponent(gp)}`; +} + +function idParent(gp, p) { + return `pr:${encodeURIComponent(gp)}|${encodeURIComponent(p)}`; +} + +function idLeaf(gp, p, leaf, idx) { + return `lf:${encodeURIComponent(gp)}|${encodeURIComponent(p)}|${encodeURIComponent(leaf)}|${idx}`; +} + +/** + * @param {Record[]} rowsInput + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} hierarchy + * @returns {object[]} + */ +function buildOverviewSunburstData(rowsInput, hierarchy) { + const rows = normalizeRows(rowsInput, hierarchy); + if (!rows.length) { + return [ + { + id: 'empty', + parent: '', + name: 'No data', + value: 1, + color: '#e2e8f0', + showInLegend: true, + }, + ]; + } + + const total = sumValues(rows); + const out = []; + + out.push({ + id: 'root', + parent: '', + name: 'Total', + value: total, + color: '#cbd5e1', + showInLegend: false, + custom: { level: 'root' }, + }); + + const grandparents = uniqueOrdered(rows.map((r) => r.grandparent)); + grandparents.forEach((gp, gi) => { + const gpRows = rows.filter((r) => r.grandparent === gp); + const v = sumValues(gpRows); + out.push({ + id: idGp(gp), + parent: 'root', + name: gp, + value: v, + color: gi === 0 ? '#7c3aed' : colorForParent(gp, gi), + showInLegend: false, + custom: { level: 'grandparent' }, + }); + }); + + const parentPairs = uniqueGrandparentParentPairs(rows); + + parentPairs.forEach(({ gp, p }, pi) => { + const pRows = rows.filter((r) => r.grandparent === gp && r.parent === p); + const v = sumValues(pRows); + out.push({ + id: idParent(gp, p), + parent: idGp(gp), + name: p, + value: v, + color: colorForParent(p, pi), + showInLegend: false, + custom: { level: 'parent', drillId: slugParent(p) }, + }); + }); + + parentPairs.forEach(({ gp, p }) => { + const pRows = rows.filter((x) => x.grandparent === gp && x.parent === p); + pRows.forEach((r, j) => { + out.push({ + id: idLeaf(gp, p, r.leaf, j), + parent: idParent(gp, p), + name: r.leaf, + value: rowWeight(r), + color: DMA_COLORS[j % DMA_COLORS.length], + showInLegend: true, + custom: { + level: 'leaf', + dmaIndex: j, + leafKey: `${p}::${r.leaf}`, + legendName: `${p} → ${r.leaf}`, + rawRow: r.raw, + }, + }); + }); + }); + + return out; +} + +/** + * @param {Record[]} rowsInput + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} hierarchy + * @param {string} parentName + */ +function buildDrilledParentSunburstData(rowsInput, hierarchy, parentName) { + const rows = normalizeRows(rowsInput, hierarchy); + const slice = rows.filter((r) => r.parent === parentName); + if (!slice.length) return buildOverviewSunburstData(rowsInput, hierarchy); + + const gp = slice[0].grandparent; + const sub = sumValues(slice); + + return [ + { + id: 'dr-root', + parent: '', + name: gp, + value: sub, + color: '#7c3aed', + showInLegend: false, + custom: { level: 'grandparent' }, + }, + { + id: 'dr-parent', + parent: 'dr-root', + name: parentName, + value: sub, + color: colorForParent(parentName, 0), + showInLegend: false, + custom: { level: 'parent', drillId: slugParent(parentName) }, + }, + ...slice.map((r, j) => ({ + id: idLeaf(gp, parentName, r.leaf, j), + parent: 'dr-parent', + name: r.leaf, + value: rowWeight(r), + color: DMA_COLORS[j % DMA_COLORS.length], + showInLegend: true, + custom: { + level: 'leaf', + dmaIndex: j, + leafKey: `${parentName}::${r.leaf}`, + legendName: `${parentName} → ${r.leaf}`, + rawRow: r.raw, + drillId: slugParent(parentName), + }, + })), + ]; +} + +/** + * @param {Record[]} rowsInput + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} hierarchy + * @param {string} parentName + * @param {number} leafIndex + */ +function buildDrilledLeafSunburstData(rowsInput, hierarchy, parentName, leafIndex) { + const rows = normalizeRows(rowsInput, hierarchy); + const slice = rows.filter((r) => r.parent === parentName); + const pick = slice[leafIndex]; + if (!pick) return buildDrilledParentSunburstData(rowsInput, hierarchy, parentName); + + const gp = pick.grandparent; + const w = rowWeight(pick); + + return [ + { + id: 'dl-root', + parent: '', + name: gp, + value: w, + color: '#7c3aed', + showInLegend: true, + custom: { + level: 'grandparent', + rowRole: 'total', + legendName: `Region: ${gp}`, + }, + }, + { + id: 'dl-parent', + parent: 'dl-root', + name: parentName, + value: w, + color: colorForParent(parentName, 0), + showInLegend: true, + custom: { + level: 'parent', + rowRole: 'region', + legendName: `Parent: ${parentName}`, + }, + }, + { + id: 'dl-leaf', + parent: 'dl-parent', + name: pick.leaf, + value: w, + color: DMA_COLORS[leafIndex % DMA_COLORS.length], + showInLegend: true, + custom: { + level: 'leaf', + dmaIndex: leafIndex, + leafKey: `${parentName}::${pick.leaf}`, + legendName: `${parentName} → ${pick.leaf}`, + rawRow: pick.raw, + rowRole: 'dmaLeaf', + }, + }, + ]; +} + +/** + * Same drill semantics as {@link import('./buildPartitionSeriesData.js').getPartitionData}. + * + * @param {Record[]} rows + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} hierarchy + * @param {string|null} drillParentName + * @param {number|null} leafIndex + */ +export function getSunburstPartitionData(rows, hierarchy, drillParentName, leafIndex) { + if (drillParentName == null) return buildOverviewSunburstData(rows, hierarchy); + if (leafIndex != null) { + return buildDrilledLeafSunburstData(rows, hierarchy, drillParentName, leafIndex); + } + return buildDrilledParentSunburstData(rows, hierarchy, drillParentName); +} diff --git a/src/components/common/partition/buildPartitionSunburstData.test.js b/src/components/common/partition/buildPartitionSunburstData.test.js new file mode 100644 index 0000000..4722952 --- /dev/null +++ b/src/components/common/partition/buildPartitionSunburstData.test.js @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest'; + +import { getSunburstPartitionData } from './buildPartitionSunburstData'; + +const ALT_HIERARCHY = { + grandparent: 'geo', + parent: 'market', + leaf: 'sku', + value: 'vol', +}; + +describe('getSunburstPartitionData overview', () => { + it('builds a root node and hierarchical children', () => { + const rows = [ + { geo: 'T', market: 'North', sku: 'A', vol: 50 }, + { geo: 'T', market: 'North', sku: 'B', vol: 50 }, + ]; + const data = getSunburstPartitionData(rows, ALT_HIERARCHY, null, null); + const root = data.find((d) => d.id === 'root'); + expect(root?.value).toBe(100); + expect(data.some((d) => d.parent === 'root' && d.name === 'T')).toBe(true); + expect(data.filter((d) => d.parent && d.parent !== 'root').length).toBeGreaterThan(0); + }); +}); + +describe('getSunburstPartitionData', () => { + it('matches drill semantics: parent drill exposes leaf nodes', () => { + const rows = [ + { geo: 'T', market: 'North', sku: 'A', vol: 40 }, + { geo: 'T', market: 'North', sku: 'B', vol: 60 }, + ]; + const data = getSunburstPartitionData(rows, ALT_HIERARCHY, 'North', null); + const leaves = data.filter((d) => d.custom?.level === 'leaf'); + expect(leaves).toHaveLength(2); + }); +}); diff --git a/src/components/common/partition/partitionChartOptions.js b/src/components/common/partition/partitionChartOptions.js new file mode 100644 index 0000000..6f97f7d --- /dev/null +++ b/src/components/common/partition/partitionChartOptions.js @@ -0,0 +1,413 @@ +import { leafLabel, parseParentSlug } from './buildPartitionSeriesData.js'; + +export function getRowCount(data) { + if (!data.length) return 1; + return Math.max(...data.map((d) => d.y)) + 1; +} + +const OVERVIEW_EQUAL_ROW_RATIOS = Object.freeze([1 / 3, 1 / 3, 1 / 3]); + +/** Equal row heights for overview (no stealing height from grandparent/parent rows). */ +export function getOverviewRowHeightRatios() { + return OVERVIEW_EQUAL_ROW_RATIOS; +} + +/** Split overview xrange `data` (y = 0 | 1 | 2) into three row bands for per-row `pointWidth`. */ +export function splitOverviewDataByRow(data) { + const rows = [[], [], []]; + for (const p of data) { + const yi = p.y ?? 0; + if (yi >= 0 && yi <= 2) rows[yi].push(p); + } + return rows; +} + +/** + * Applies vertical sizing: overview uses `chart.custom.rowHeightRatios` (multi-series); + * drilled / fallback uses one series and equal row heights. + * @param {number[] | undefined} [ratiosOverride] - When set (e.g. from React), preferred over chart options. + */ +export function applyPartitionRowHeights(chart, redraw = true, ratiosOverride) { + const ratios = + ratiosOverride ?? + chart.options.chart?.custom?.rowHeightRatios ?? + chart.userOptions?.chart?.custom?.rowHeightRatios; + const ph = chart.plotHeight; + if (!ph) return; + + if ( + Array.isArray(ratios) && + ratios.length > 0 && + chart.series.length >= ratios.length + ) { + let changed = false; + ratios.forEach((r, i) => { + if (!chart.series[i]) return; + const pw = Math.max(6, Math.floor(r * ph)); + const prev = chart.series[i].options.pointWidth; + if (prev !== pw) { + chart.series[i].update({ pointWidth: pw }, false); + changed = true; + } + }); + if (changed && redraw) { + chart.redraw(false); + } + return; + } + + const series = chart.series[0]; + if (!series?.data?.length) return; + const ys = series.data.map((p) => p.y ?? 0); + const rowN = Math.max(...ys) + 1; + const pw = Math.max(8, Math.floor(ph / rowN)); + series.update({ pointWidth: pw }, redraw); +} + +/** @deprecated Use {@link applyPartitionRowHeights} */ +export function fitXRangeRowHeight(chart, redraw = true) { + applyPartitionRowHeights(chart, redraw); +} + +function destroyPartitionDecor(chart) { + if (chart.partitionDecor) { + chart.partitionDecor.destroy(); + chart.partitionDecor = undefined; + } +} + +function drawPartitionDecorations(chart, decor) { + destroyPartitionDecor(chart); + + const { leafDeep } = decor; + if (!chart.series.some((s) => s.points?.length)) return; + if (!leafDeep) return; + + const series0 = chart.series[0]; + + const g = chart.renderer + .g() + .attr({ + zIndex: 10, + 'pointer-events': 'none', + }) + .add(); + chart.partitionDecor = g; + + const plotLeft = chart.plotLeft; + const plotTop = chart.plotTop; + const plotW = chart.plotWidth; + const plotH = chart.plotHeight; + + chart.renderer + .rect(plotLeft, plotTop, 10, plotH) + .attr({ + fill: 'rgba(234, 179, 8, 0.35)', + zIndex: 9, + }) + .add(g); + chart.renderer + .rect(plotLeft + plotW - 10, plotTop, 10, plotH) + .attr({ + fill: 'rgba(124, 58, 237, 0.35)', + zIndex: 9, + }) + .add(g); + + const totalPt = series0.points.find((p) => p.options?.custom?.rowRole === 'total'); + if (totalPt?.shapeArgs) { + const { x: sx, y: sy, width, height } = totalPt.shapeArgs; + chart.renderer + .rect(plotLeft + sx - 1, plotTop + sy - 1, width + 2, height + 2) + .attr({ + stroke: '#2563eb', + 'stroke-width': 3, + fill: 'none', + zIndex: 11, + }) + .add(g); + } + + const dmaPt = series0.points.find((p) => p.options?.custom?.rowRole === 'dmaLeaf'); + if (dmaPt?.shapeArgs) { + const { x: dx, y: dy, width: dw, height: dh } = dmaPt.shapeArgs; + chart.renderer + .rect(plotLeft + dx + dw - 8, plotTop + dy, 8, dh) + .attr({ + fill: 'rgba(21, 128, 61, 0.5)', + zIndex: 10, + }) + .add(g); + } +} + +function getSubtitle({ drillParentName, leafDeep, leafIndex, rows, hierarchy }) { + if (drillParentName == null) { + return 'Overview: click a parent band to drill.'; + } + if (leafDeep) { + const name = leafLabel(rows, hierarchy, drillParentName, leafIndex); + return `Opened one level: ${name ?? 'Leaf'} — detail view.`; + } + return `Drilled into ${drillParentName} — click a leaf strip to open one level deeper.`; +} + +/** + * @param {object} opts + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} opts.hierarchy + */ +export function createPartitionChartOptions({ + data, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + onDrillParent, + onSelectLeaf, +}) { + const rowCount = getRowCount(data); + const canDrillFromChart = interactive && drillParentName == null; + const leafDeep = interactive && drillParentName != null && leafIndex != null; + + const maxY = data.length ? Math.max(...data.map((d) => d.y ?? 0)) : 0; + const useOverviewMultiSeries = drillParentName == null && maxY >= 2; + const rowHeightRatios = useOverviewMultiSeries + ? getOverviewRowHeightRatios() + : undefined; + + const overviewSeries = useOverviewMultiSeries + ? (() => { + const [d0, d1, d2] = splitOverviewDataByRow(data); + return [ + { type: 'xrange', name: 'Grandparent', data: d0, borderColor: '#ffffff' }, + { type: 'xrange', name: 'Parent', data: d1, borderColor: '#ffffff' }, + { type: 'xrange', name: 'Leaf', data: d2, borderColor: '#ffffff' }, + ]; + })() + : [{ name: 'Partition', borderColor: '#ffffff', data }]; + + const decorForChart = () => ({ + leafDeep, + }); + + return { + chart: { + type: 'xrange', + backgroundColor: '#ffffff', + plotBackgroundColor: '#ffffff', + plotBorderWidth: 0, + borderRadius: 12, + spacing: [16, 16, 16, 16], + marginLeft: 12, + marginRight: 12, + marginTop: 12, + marginBottom: 12, + style: { + fontFamily: + "'Inter', 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif", + }, + animation: { duration: 450 }, + zooming: { type: 'x' }, + panning: { enabled: true, type: 'x' }, + panKey: 'shift', + custom: rowHeightRatios ? { rowHeightRatios } : {}, + events: { + load() { + const el = this.credits?.element; + if (el) el.setAttribute('tabindex', '-1'); + + requestAnimationFrame(() => { + applyPartitionRowHeights(this, true); + drawPartitionDecorations(this, decorForChart()); + }); + }, + redraw() { + drawPartitionDecorations(this, decorForChart()); + }, + }, + }, + + title: { + text: chartTitle ?? 'Partition chart', + align: 'left', + margin: 12, + style: { fontSize: '1.2rem', fontWeight: '700', color: '#0f172a' }, + }, + + subtitle: { + text: getSubtitle({ + drillParentName, + leafDeep, + leafIndex, + rows, + hierarchy, + }), + align: 'left', + style: { color: '#64748b' }, + }, + + caption: { + text: + captionText ?? + 'Flat rows + hierarchy props; layout and drill levels are derived.', + align: 'left', + margin: 10, + style: { fontSize: '0.8rem', color: '#94a3b8' }, + }, + + credits: { + enabled: true, + text: 'Highcharts xrange', + href: 'https://api.highcharts.com/highcharts/plotOptions.xrange', + style: { color: '#94a3b8' }, + }, + + time: { useUTC: false }, + + xAxis: { + type: 'linear', + min: 0, + max: 100, + visible: false, + lineWidth: 0, + lineColor: 'transparent', + tickLength: 0, + tickWidth: 0, + gridLineWidth: 0, + minorGridLineWidth: 0, + labels: { enabled: false }, + title: { text: null }, + crosshair: false, + }, + + yAxis: { + categories: Array.from({ length: rowCount }, () => ''), + reversed: true, + min: 0, + max: rowCount - 1, + visible: false, + lineWidth: 0, + lineColor: 'transparent', + tickLength: 0, + tickWidth: 0, + gridLineWidth: 0, + minorGridLineWidth: 0, + labels: { enabled: false }, + title: { text: null }, + }, + + legend: { enabled: false }, + + tooltip: { + shared: false, + borderRadius: 8, + backgroundColor: 'rgba(15, 23, 42, 0.92)', + style: { color: '#f8fafc' }, + formatter() { + const p = this.point; + const w = p.x2 - p.x; + const pct = w.toFixed(2); + const dma = p.options?.custom?.dmaIndex; + const isParentBand = + canDrillFromChart && p.options?.custom?.drillId && dma === undefined; + const hintDrill = isParentBand + ? '
Click to drill into this parent' + : ''; + const hintLeaf = + dma !== undefined && drillParentName != null && leafIndex == null && interactive + ? '
Click to open this leaf (one level)' + : ''; + return ( + `${p.name}
` + + `Share of view ${pct}%
` + + `Range ${p.x.toFixed(2)} – ${p.x2.toFixed(2)}` + + hintDrill + + hintLeaf + ); + }, + }, + + plotOptions: { + series: { + animation: { duration: 500 }, + states: { + inactive: { opacity: 0.5 }, + hover: { brightness: 0.08 }, + }, + }, + xrange: { + grouping: false, + pointPadding: 0, + groupPadding: 0, + borderRadius: 0, + borderWidth: 1, + borderColor: '#ffffff', + minPointLength: 0, + cursor: + interactive && + (canDrillFromChart || (drillParentName != null && leafIndex == null)) + ? 'pointer' + : 'default', + point: { + events: { + click() { + if (!interactive) return; + const drillId = this.options?.custom?.drillId; + if (drillId && canDrillFromChart) { + const parentName = parseParentSlug(drillId); + if (parentName) onDrillParent(parentName); + return; + } + const idx = this.options?.custom?.dmaIndex; + if (idx !== undefined && drillParentName != null && leafIndex == null) { + onSelectLeaf(idx); + } + }, + }, + }, + dataLabels: { + enabled: true, + align: 'center', + verticalAlign: 'middle', + inside: true, + crop: false, + overflow: 'allow', + padding: 2, + style: { + fontWeight: '600', + fontSize: '0.75rem', + color: '#ffffff', + textOutline: '1px contrast', + }, + formatter() { + const w = this.point.shapeArgs?.width ?? 0; + const n = this.point.name; + if (!n || n === '\u00b7') return ''; + if (w < 36 && n.length > 6) return ''; + return n; + }, + }, + }, + }, + + series: overviewSeries, + + responsive: { + rules: [ + { + condition: { maxWidth: 640 }, + chartOptions: { + plotOptions: { + xrange: { + dataLabels: { style: { fontSize: '0.65rem' } }, + }, + }, + }, + }, + ], + }, + }; +} diff --git a/src/components/common/partition/partitionSunburstChartOptions.js b/src/components/common/partition/partitionSunburstChartOptions.js new file mode 100644 index 0000000..c5dc0a9 --- /dev/null +++ b/src/components/common/partition/partitionSunburstChartOptions.js @@ -0,0 +1,409 @@ +import { leafLabel, parseParentSlug } from './buildPartitionSeriesData.js'; + +/** + * Highcharts sunburst options aligned with {@link createPartitionChartOptions} where possible. + * Sunburst extends pie; some chart-level options differ (no xrange axes). + * + * @see https://api.highcharts.com/highcharts/plotOptions.sunburst + */ + +/** + * @param {object} opts + * @param {import('./buildPartitionSeriesData.js').PartitionHierarchy} opts.hierarchy + */ +export function createSunburstChartOptions({ + data, + rows, + hierarchy, + drillParentName, + leafIndex, + interactive, + chartTitle, + captionText, + onDrillParent, + onSelectLeaf, +}) { + const canDrillParentFromOverview = interactive && drillParentName == null; + const leafDeep = interactive && drillParentName != null && leafIndex != null; + + const getSubtitle = () => { + if (drillParentName == null) { + return 'Overview: click a parent ring to drill (same weights as icicle).'; + } + if (leafDeep) { + const name = leafLabel(rows, hierarchy, drillParentName, leafIndex); + return `Opened one level: ${name ?? 'Leaf'} — detail view.`; + } + return `Drilled into ${drillParentName} — click a leaf segment to open one level deeper.`; + }; + + const legendTitleText = leafDeep ? 'Focused path' : 'Leaves'; + + return { + accessibility: { + enabled: true, + description: chartTitle ?? 'Sunburst hierarchy chart', + point: { + descriptionFormatter(point) { + return `${point.name}: value ${point.value ?? point.options?.value ?? ''}`; + }, + }, + }, + + chart: { + backgroundColor: '#ffffff', + plotBackgroundColor: '#ffffff', + plotBorderWidth: 0, + borderRadius: 12, + spacing: [16, 16, 16, 16], + marginLeft: 12, + marginRight: 8, + marginTop: 12, + marginBottom: 12, + style: { + fontFamily: + "'Inter', 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, sans-serif", + }, + animation: { duration: 450 }, + panning: { enabled: false }, + events: { + load() { + const el = this.credits?.element; + if (el) el.setAttribute('tabindex', '-1'); + }, + }, + }, + + title: { + text: chartTitle ?? 'Sunburst chart', + align: 'left', + margin: 12, + style: { fontSize: '1.2rem', fontWeight: '700', color: '#0f172a' }, + }, + + subtitle: { + text: getSubtitle(), + align: 'left', + style: { color: '#64748b' }, + }, + + caption: { + text: + captionText ?? + 'Hierarchical rings: Total → grandparent → parent → leaf; values match flat row weights.', + align: 'left', + margin: 10, + style: { fontSize: '0.8rem', color: '#94a3b8' }, + }, + + credits: { + enabled: true, + text: 'Highcharts sunburst', + href: 'https://api.highcharts.com/highcharts/series.sunburst', + style: { color: '#94a3b8' }, + }, + + time: { useUTC: false }, + + legend: { + enabled: true, + align: 'right', + verticalAlign: 'middle', + layout: 'vertical', + floating: false, + margin: 16, + padding: 12, + itemMarginTop: 6, + itemMarginBottom: 2, + symbolWidth: 12, + symbolHeight: 12, + symbolRadius: 3, + maxHeight: 220, + navigation: { + activeColor: '#4f46e5', + inactiveColor: '#94a3b8', + style: { fontWeight: '600' }, + }, + itemStyle: { + fontWeight: '500', + fontSize: '12px', + color: '#334155', + }, + itemHoverStyle: { color: '#0f172a' }, + title: { + text: legendTitleText, + style: { fontSize: '11px', fontWeight: '700', color: '#64748b' }, + }, + /** + * Requires `legendType: 'point'` on the series so `this` is each point + * (see Highcharts Legend#getAllItems). + */ + labelFormatter() { + const custom = this.options?.custom; + if (custom?.legendName) return custom.legendName; + return this.name ?? ''; + }, + }, + + tooltip: { + shared: false, + borderRadius: 8, + backgroundColor: 'rgba(15, 23, 42, 0.92)', + style: { color: '#f8fafc' }, + followPointer: true, + stickOnContact: true, + formatter() { + const p = this.point; + const v = p.options?.value ?? p.value ?? 0; + const c = p.options?.custom; + const isParent = + canDrillParentFromOverview && c?.level === 'parent' && c?.drillId; + const hintDrill = isParent + ? '
Click to drill into this parent' + : ''; + const hintLeaf = + c?.dmaIndex !== undefined && + drillParentName != null && + leafIndex == null && + interactive + ? '
Click to open this leaf (one level)' + : ''; + return ( + `${p.name}
` + + `Value ${v}
` + + `Share of parent ${(p.percentage ?? 0).toFixed(1)}%` + + hintDrill + + hintLeaf + ); + }, + }, + + plotOptions: { + series: { + animation: { duration: 500 }, + states: { + inactive: { opacity: 0.45 }, + hover: { brightness: 0.12, halo: { size: 10, opacity: 0.25 } }, + }, + sonification: { + showInLegend: false, + defaultInstrumentOptions: { + mapping: { + pitch: { + mapTo: 'value', + min: 36, + max: 72, + }, + gapBetweenNotes: 140, + }, + }, + }, + }, + + sunburst: { + /** One legend row per point (not one row for the whole series). */ + legendType: 'point', + allowDrillToNode: false, + allowTraversingTree: false, + borderColor: '#ffffff', + borderWidth: 1, + borderRadius: 3, + center: ['50%', '50%'], + clip: false, + colorByPoint: false, + cursor: interactive ? 'pointer' : 'default', + enableMouseTracking: true, + inactiveOtherPoints: true, + levelIsConstant: true, + slicedOffset: 10, + opacity: 1, + shadow: { + color: 'rgba(15, 23, 42, 0.12)', + offsetX: 1, + offsetY: 2, + width: 4, + }, + startAngle: 0, + innerSize: '14%', + size: '78%', + showInLegend: true, + + levelSize: { + value: 1, + unit: 'weight', + }, + + /** Breadcrumb navigation (internal drill). Disabled here so Redux + icicle stay the single source of truth; options kept for API completeness. */ + breadcrumbs: { + enabled: false, + position: { align: 'left' }, + floating: false, + padding: 8, + itemStyle: { color: '#334155', fontWeight: '600' }, + buttonTheme: { + fill: '#f1f5f9', + padding: 6, + stroke: '#cbd5e1', + 'stroke-width': 1, + r: 8, + style: { color: '#0f172a' }, + states: { hover: { fill: '#e2e8f0' } }, + }, + }, + + /** @deprecated — replaced by breadcrumbs in v9.3.3; API surface preserved. */ + traverseUpButton: { + position: { align: 'right', verticalAlign: 'top', x: -12, y: 12 }, + text: '← Up', + theme: { + fill: '#f8fafc', + padding: 6, + stroke: '#94a3b8', + r: 8, + }, + }, + + stickyTracking: true, + turboThreshold: 0, + + dataLabels: { + enabled: true, + allowOverlap: true, + defer: true, + rotationMode: 'circular', + align: 'center', + verticalAlign: 'middle', + padding: 2, + crop: false, + overflow: 'allow', + style: { + fontWeight: '600', + fontSize: '0.72rem', + color: '#0f172a', + textOutline: '1px contrast', + }, + formatter() { + const pct = this.point.percentage ?? 0; + if (pct < 4) return ''; + return this.point.name; + }, + }, + + levels: [ + { + level: 1, + levelSize: { value: 1, unit: 'weight' }, + colorByPoint: false, + borderWidth: 2, + borderColor: '#ffffff', + dataLabels: { + rotationMode: 'parallel', + style: { fontSize: '0.75rem', color: '#0f172a' }, + }, + }, + { + level: 2, + levelSize: { value: 1.1, unit: 'weight' }, + borderDashStyle: 'Solid', + dataLabels: { + rotationMode: 'perpendicular', + style: { fontSize: '0.7rem' }, + }, + }, + { + level: 3, + levelSize: { value: 1, unit: 'weight' }, + colorVariation: { key: 'brightness', to: -0.12 }, + dataLabels: { + rotationMode: 'circular', + style: { fontSize: '0.65rem' }, + }, + }, + { + level: 4, + levelSize: { value: 1, unit: 'weight' }, + dataLabels: { + rotationMode: 'auto', + style: { fontSize: '0.62rem' }, + }, + }, + ], + + point: { + events: { + click() { + if (!interactive) return; + const c = this.options?.custom; + if (c?.level === 'parent' && c?.drillId && canDrillParentFromOverview) { + const name = parseParentSlug(c.drillId); + if (name) onDrillParent(name); + return; + } + if ( + c?.dmaIndex !== undefined && + drillParentName != null && + leafIndex == null + ) { + onSelectLeaf(c.dmaIndex); + } + }, + }, + }, + + states: { + hover: { + brightness: 0.08, + borderColor: '#0f172a', + borderWidth: 2, + }, + select: { + color: '#6366f1', + borderColor: '#312e81', + borderWidth: 2, + }, + inactive: { + opacity: 0.35, + }, + }, + }, + }, + + series: [ + { + type: 'sunburst', + name: 'Partition', + legendType: 'point', + data, + borderColor: '#ffffff', + borderWidth: 1, + showInLegend: true, + }, + ], + + responsive: { + rules: [ + { + condition: { maxWidth: 640 }, + chartOptions: { + legend: { + align: 'center', + verticalAlign: 'bottom', + layout: 'horizontal', + width: '100%', + margin: 8, + }, + chart: { + marginBottom: 16, + }, + plotOptions: { + sunburst: { + size: '72%', + dataLabels: { style: { fontSize: '0.62rem' } }, + }, + }, + }, + }, + ], + }, + }; +} diff --git a/src/features/drilldown/components/Breadcrumb.jsx b/src/features/drilldown/components/Breadcrumb.jsx new file mode 100644 index 0000000..ec9a327 --- /dev/null +++ b/src/features/drilldown/components/Breadcrumb.jsx @@ -0,0 +1,24 @@ +const Breadcrumb = ({ levels, path, onJump }) => ( + +); + +export default Breadcrumb; diff --git a/src/features/drilldown/components/Breadcrumb.test.jsx b/src/features/drilldown/components/Breadcrumb.test.jsx new file mode 100644 index 0000000..8b49493 --- /dev/null +++ b/src/features/drilldown/components/Breadcrumb.test.jsx @@ -0,0 +1,30 @@ +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { describe, expect, it, vi } from 'vitest'; +import Breadcrumb from './Breadcrumb.jsx'; + +describe('Breadcrumb', () => { + it('renders path steps with labels from levels (order-agnostic ids)', () => { + const levels = [ + { id: 'campaign', label: 'Campaign', variables: ['campaign_id'] }, + { id: 'channel', label: 'Channel', variables: ['channel'] }, + ]; + const path = [{ levelId: 'campaign', value: 'C1' }]; + + render(); + + expect(screen.getByRole('button', { name: /Campaign: C1/ })).toBeInTheDocument(); + }); + + it('calls onJump with path index when a step is clicked', async () => { + const user = userEvent.setup(); + const onJump = vi.fn(); + const levels = [{ id: 'L1', label: 'A', variables: ['a'] }]; + const path = [{ levelId: 'L1', value: 'x' }]; + + render(); + + await user.click(screen.getByRole('button', { name: /A: x/ })); + expect(onJump).toHaveBeenCalledWith(0); + }); +}); diff --git a/src/features/drilldown/components/CardGrid.jsx b/src/features/drilldown/components/CardGrid.jsx new file mode 100644 index 0000000..f3ce4ae --- /dev/null +++ b/src/features/drilldown/components/CardGrid.jsx @@ -0,0 +1,28 @@ +import { getItemLabel, getItemMetric } from '../utils.js'; + +const CardGrid = ({ items, onCardClick }) => ( +
+ {items.map((item, index) => { + const label = getItemLabel(item); + const metric = getItemMetric(item); + const key = item.id ?? `${label}-${index}`; + + return ( + + ); + })} + {items.length === 0 &&

No cards available.

} +
+); + +export default CardGrid; diff --git a/src/features/drilldown/components/CardGrid.test.jsx b/src/features/drilldown/components/CardGrid.test.jsx new file mode 100644 index 0000000..cfb3249 --- /dev/null +++ b/src/features/drilldown/components/CardGrid.test.jsx @@ -0,0 +1,20 @@ +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { describe, expect, it, vi } from 'vitest'; +import CardGrid from './CardGrid.jsx'; + +describe('CardGrid', () => { + it('renders label and optional metric and notifies on click', async () => { + const user = userEvent.setup(); + const onCardClick = vi.fn(); + const items = [{ id: '1', label: 'TV', metric: 42 }]; + + render(); + + expect(screen.getByText('TV')).toBeInTheDocument(); + expect(screen.getByText('42')).toBeInTheDocument(); + + await user.click(screen.getByRole('button', { name: /TV/ })); + expect(onCardClick).toHaveBeenCalledWith(items[0], 'TV'); + }); +}); diff --git a/src/features/drilldown/components/DmaAggregateMetricsTable.jsx b/src/features/drilldown/components/DmaAggregateMetricsTable.jsx new file mode 100644 index 0000000..d70c680 --- /dev/null +++ b/src/features/drilldown/components/DmaAggregateMetricsTable.jsx @@ -0,0 +1,124 @@ +import { isDmaDrillLevels } from '../utils.js'; + +const DISPLAY_ORDER = [ + 'grandparent', + 'parent', + 'dma', + 'rank', + 'share', + 'spend', + 'impressions', + 'clicks', + 'conversions', + 'roi', +]; + +const HIDDEN = new Set(['id', 'rowKind']); + +const formatCell = (key, value) => { + if (value === undefined || value === null || value === '—') { + return '—'; + } + if (typeof value === 'number') { + if (key === 'roi') { + return value.toLocaleString(undefined, { maximumFractionDigits: 2 }); + } + if (key === 'share') { + return value.toLocaleString(undefined, { maximumFractionDigits: 3 }); + } + if (key === 'rank') { + return String(value); + } + return value.toLocaleString(); + } + return String(value); +}; + +const columnLabel = (key) => + ({ + grandparent: 'Top', + parent: 'Region', + dma: 'DMA', + rank: 'Rank', + share: 'Share', + spend: 'Spend', + impressions: 'Impressions', + clicks: 'Clicks', + conversions: 'Conversions', + roi: 'ROI', + })[key] ?? key; + +/** + * Full rollup + DMA detail rows; highlights the row(s) matching the current drill `path`. + */ +const DmaAggregateMetricsTable = ({ rows, path, levels }) => { + if (!isDmaDrillLevels(levels)) { + return null; + } + + if (!rows?.length) { + return

No metrics available.

; + } + + const regionStep = path.find((p) => p.levelId === 'region'); + const dmaStep = path.find((p) => p.levelId === 'dma'); + + const keysPresent = new Set(); + rows.forEach((row) => { + if (row && typeof row === 'object') { + Object.keys(row).forEach((k) => { + if (!HIDDEN.has(k)) { + keysPresent.add(k); + } + }); + } + }); + + const columns = DISPLAY_ORDER.filter((k) => keysPresent.has(k)); + + const rowClassName = (row) => { + if (row.rowKind === 'rollup') { + const matchRegion = regionStep && !dmaStep && row.parent === regionStep.value; + return matchRegion ? 'data-row data-row--selected' : 'data-row data-row--rollup'; + } + if (row.rowKind === 'detail' || !row.rowKind) { + const matchDma = + dmaStep && + regionStep && + row.dma === dmaStep.value && + row.parent === regionStep.value; + return matchDma ? 'data-row data-row--selected' : 'data-row'; + } + return 'data-row'; + }; + + return ( + + + + {columns.map((column) => ( + + ))} + + + + {rows.map((row, index) => { + const rk = row.id ?? `r-${index}`; + const cn = rowClassName(row); + const selected = cn.includes('data-row--selected'); + return ( + + {columns.map((column) => ( + + ))} + + ); + })} + +
+ {columnLabel(column)} +
{formatCell(column, row[column])}
+ ); +}; + +export default DmaAggregateMetricsTable; diff --git a/src/features/drilldown/components/DmaAggregateMetricsTable.test.jsx b/src/features/drilldown/components/DmaAggregateMetricsTable.test.jsx new file mode 100644 index 0000000..db139f2 --- /dev/null +++ b/src/features/drilldown/components/DmaAggregateMetricsTable.test.jsx @@ -0,0 +1,82 @@ +import { render, screen } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; +import { DMA_DRILL_LEVELS } from '../../../mocks/dmaDrilldownLevels.js'; +import DmaAggregateMetricsTable from './DmaAggregateMetricsTable.jsx'; + +describe('DmaAggregateMetricsTable', () => { + it('renders nothing when levels are not the DMA drill config', () => { + render( + + ); + expect(screen.queryByRole('table')).not.toBeInTheDocument(); + }); + + it('marks the rollup row when only a region is selected', () => { + const rows = [ + { + id: 'rollup-North region', + rowKind: 'rollup', + parent: 'North region', + dma: '—', + share: 1, + spend: 100, + }, + { + id: 'd1', + rowKind: 'detail', + parent: 'North region', + dma: 'Boston', + share: 0.5, + spend: 50, + }, + ]; + + render( + + ); + + expect(screen.getByRole('row', { selected: true })).toHaveTextContent('North region'); + }); + + it('marks the DMA detail row when region and DMA are selected', () => { + const rows = [ + { + id: 'rollup-North region', + rowKind: 'rollup', + parent: 'North region', + dma: '—', + share: 1, + spend: 100, + }, + { + id: 'd1', + rowKind: 'detail', + parent: 'North region', + dma: 'Boston', + share: 0.5, + spend: 50, + }, + ]; + + render( + + ); + + expect(screen.getByRole('row', { selected: true })).toHaveTextContent('Boston'); + }); +}); diff --git a/src/features/drilldown/components/DmaIcicleDrillBridge.jsx b/src/features/drilldown/components/DmaIcicleDrillBridge.jsx new file mode 100644 index 0000000..418e335 --- /dev/null +++ b/src/features/drilldown/components/DmaIcicleDrillBridge.jsx @@ -0,0 +1,48 @@ +import { useCallback, useMemo } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; + +import DmaPartitionChart from '../../partition/DmaPartitionChart.jsx'; +import { + applyIcicleDrillStateToRedux, + pathToIcicleDrillState, +} from '../dmaIcicleDrillSync.js'; +import { selectPath } from '../selectors.js'; + +/** Icicle chart wired to the same Redux drill path as DrilldownContainer cards/table. */ +export function DmaIcicleDrillBridge({ rows, streamId, chartInstanceKey, levels }) { + const dispatch = useDispatch(); + const path = useSelector(selectPath); + + const levelIds = useMemo( + () => ({ + parentLevelId: levels[0].id, + leafLevelId: levels[1].id, + }), + [levels] + ); + + const drillState = useMemo( + () => pathToIcicleDrillState(path, rows, levelIds), + [path, rows, levelIds] + ); + + const onDrillStateChange = useCallback( + (next) => { + applyIcicleDrillStateToRedux(dispatch, rows, next, path, levelIds); + }, + [dispatch, levelIds, path, rows] + ); + + return ( + + ); +} + +export default DmaIcicleDrillBridge; diff --git a/src/features/drilldown/components/DrilldownContainer.jsx b/src/features/drilldown/components/DrilldownContainer.jsx new file mode 100644 index 0000000..20f7313 --- /dev/null +++ b/src/features/drilldown/components/DrilldownContainer.jsx @@ -0,0 +1,241 @@ +import { skipToken } from '@reduxjs/toolkit/query'; +import { useEffect, useMemo } from 'react'; +import { useDispatch, useSelector, useStore } from 'react-redux'; +import { + jumpToLevel, + selectCard, + setGlobalDatasetFilters, + setLevels, + setStatus, + stepBack, +} from '../drilldownSlice.js'; +import { + selectCurrentLevel, + selectCurrentLevelIndex, + selectFiltersUpToPathStepInclusive, + selectGlobalDatasetFilters, + selectLevels, + selectPath, + selectStatus, +} from '../selectors.js'; +import { isDmaDrillLevels, stableSerialize } from '../utils.js'; +import { + drilldownApi, + useGetCardsQuery, + useGetDmaAggregateTableQuery, + useGetPartitionRowsQuery, + useGetTableQuery, +} from '../../../services/drilldownApi.js'; +import DmaIcicleDrillBridge from './DmaIcicleDrillBridge.jsx'; +import Breadcrumb from './Breadcrumb.jsx'; +import CardGrid from './CardGrid.jsx'; +import DmaAggregateMetricsTable from './DmaAggregateMetricsTable.jsx'; +import PageScopeFilter from './PageScopeFilter.jsx'; +import GroupedDataTable from './GroupedDataTable.jsx'; + +const DrilldownContainer = ({ config }) => { + const dispatch = useDispatch(); + const store = useStore(); + const levels = useSelector(selectLevels); + const currentLevel = useSelector(selectCurrentLevel); + const currentLevelIndex = useSelector(selectCurrentLevelIndex); + const path = useSelector(selectPath); + const globalDatasetFilters = useSelector(selectGlobalDatasetFilters); + + useEffect(() => { + dispatch(setLevels(config)); + }, [config, dispatch]); + + const cardFilters = useSelector((state) => + selectFiltersUpToPathStepInclusive(state, currentLevelIndex - 1) + ); + + const tableEndStep = path.length ? path.length - 1 : -1; + const tableFilters = useSelector((state) => + selectFiltersUpToPathStepInclusive(state, tableEndStep) + ); + + const prefetchFilters = useSelector((state) => + selectFiltersUpToPathStepInclusive(state, currentLevelIndex) + ); + + const lastLevel = levels.length ? levels[levels.length - 1] : null; + const isDmaAggregateView = isDmaDrillLevels(levels); + + const cardsArg = currentLevel + ? { levelId: currentLevel.id, filters: cardFilters, dataset: globalDatasetFilters } + : skipToken; + + const tableArg = useMemo(() => { + if (isDmaAggregateView) { + return skipToken; + } + if (!lastLevel || !levels.length) { + return skipToken; + } + return { + levelId: lastLevel.id, + filters: tableFilters, + dataset: globalDatasetFilters, + }; + }, [isDmaAggregateView, globalDatasetFilters, lastLevel, levels.length, tableFilters]); + + const partitionArg = isDmaAggregateView ? { dataset: globalDatasetFilters } : skipToken; + + const cardsQuery = useGetCardsQuery(cardsArg); + const tableQuery = useGetTableQuery(tableArg); + const aggregateQuery = useGetDmaAggregateTableQuery( + { dataset: globalDatasetFilters }, + { skip: !isDmaAggregateView } + ); + const partitionQuery = useGetPartitionRowsQuery(partitionArg); + + const tableLoading = isDmaAggregateView + ? aggregateQuery.isLoading + : tableQuery.isLoading; + + useEffect(() => { + const busy = cardsQuery.isLoading || tableLoading; + if (busy) { + dispatch(setStatus('loading')); + return; + } + const state = store.getState(); + if (selectStatus(state) !== 'end' && selectLevels(state).length) { + dispatch(setStatus('ready')); + } + }, [cardsQuery.isLoading, dispatch, store, tableLoading, levels.length]); + + useEffect(() => { + const nextLevel = levels[currentLevelIndex + 1]; + if (!nextLevel) { + return; + } + dispatch( + drilldownApi.util.prefetch( + 'getCards', + { + levelId: nextLevel.id, + filters: prefetchFilters, + dataset: globalDatasetFilters, + }, + { force: false } + ) + ); + }, [currentLevelIndex, dispatch, globalDatasetFilters, levels, prefetchFilters]); + + const partitionDatasetKey = stableSerialize(globalDatasetFilters); + const partitionRows = partitionQuery.data ?? []; + const partitionShowSkeleton = + isDmaAggregateView && + (partitionQuery.isUninitialized || + (partitionQuery.isLoading && !partitionQuery.data)); + + const handleCardClick = (_, selectedValue) => { + if (!currentLevel) { + return; + } + dispatch(selectCard({ levelId: currentLevel.id, value: selectedValue })); + }; + + const handleJump = (levelIndex) => { + dispatch(jumpToLevel(levelIndex)); + }; + + const headerText = useMemo(() => { + if (!currentLevel) { + return 'No configured levels'; + } + return `${currentLevel.label} — explore`; + }, [currentLevel]); + + return ( +
+
+

DMA drilldown

+

{headerText}

+
+ + + + {isDmaAggregateView ? ( +
+
+ +
+ +
+ ) : null} + + {isDmaAggregateView ? ( +
+ {partitionShowSkeleton ? ( +
+ ) : ( + + )} +
+ ) : null} + +
+ +
+ +
+

Explore (cards)

+ +
+ +
+

Metrics

+

+ {isDmaAggregateView + ? 'Regional rollups and DMA-level detail. The row matching your current selection is highlighted.' + : 'Full table for the deepest context; rows are grouped by admin level order.'} +

+
+ {isDmaAggregateView ? ( + + ) : ( + + )} +
+
+
+ ); +}; + +export default DrilldownContainer; diff --git a/src/features/drilldown/components/DrilldownContainer.test.jsx b/src/features/drilldown/components/DrilldownContainer.test.jsx new file mode 100644 index 0000000..201cd94 --- /dev/null +++ b/src/features/drilldown/components/DrilldownContainer.test.jsx @@ -0,0 +1,37 @@ +import { configureStore } from '@reduxjs/toolkit'; +import { render, screen } from '@testing-library/react'; +import { Provider } from 'react-redux'; +import { describe, expect, it, vi } from 'vitest'; +import { drilldownApi } from '../../../services/drilldownApi.js'; +import drilldownReducer from '../drilldownSlice.js'; +import { DMA_DRILL_LEVELS } from '../../../mocks/dmaDrilldownLevels.js'; + +vi.mock('./DmaIcicleDrillBridge.jsx', () => ({ + default: () =>
, +})); + +import DrilldownContainer from './DrilldownContainer.jsx'; + +const makeStore = () => + configureStore({ + reducer: { + drilldown: drilldownReducer, + [drilldownApi.reducerPath]: drilldownApi.reducer, + }, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat(drilldownApi.middleware), + }); + +describe('DrilldownContainer', () => { + it('uses Region as the first level for the DMA drill config', async () => { + const store = makeStore(); + + render( + + + + ); + + expect(await screen.findByText(/Region — explore/)).toBeInTheDocument(); + }); +}); diff --git a/src/features/drilldown/components/GroupedDataTable.jsx b/src/features/drilldown/components/GroupedDataTable.jsx new file mode 100644 index 0000000..06fa140 --- /dev/null +++ b/src/features/drilldown/components/GroupedDataTable.jsx @@ -0,0 +1,53 @@ +import { buildGroupedTableSegments, collectTableColumnKeys } from '../utils.js'; + +const GroupedDataTable = ({ rows, levels }) => { + const columns = collectTableColumnKeys(rows); + const segments = buildGroupedTableSegments(rows, levels); + + if (!rows.length) { + return

No table rows available.

; + } + + return ( + + + + {columns.map((column) => ( + + ))} + + + + {segments.map((segment, index) => { + if (segment.kind === 'group') { + return ( + + + + ); + } + + const row = segment.row; + const rk = row.id ?? row.key ?? index; + return ( + + {columns.map((column) => ( + + ))} + + ); + })} + +
+ {column} +
+ {segment.levelLabel} + {segment.value} +
{String(row[column] ?? '-')}
+ ); +}; + +export default GroupedDataTable; diff --git a/src/features/drilldown/components/GroupedDataTable.test.jsx b/src/features/drilldown/components/GroupedDataTable.test.jsx new file mode 100644 index 0000000..cd57853 --- /dev/null +++ b/src/features/drilldown/components/GroupedDataTable.test.jsx @@ -0,0 +1,26 @@ +import { render, screen } from '@testing-library/react'; +import { describe, expect, it } from 'vitest'; +import GroupedDataTable from './GroupedDataTable.jsx'; + +describe('GroupedDataTable', () => { + it('renders group rows and data rows', () => { + const levels = [ + { id: 'L1', label: 'Channel', variables: ['channel'] }, + { id: 'L2', label: 'Campaign', variables: ['campaign_id'] }, + ]; + const rows = [ + { id: '1', channel: 'TV', campaign_id: 'C1' }, + { id: '2', channel: 'TV', campaign_id: 'C2' }, + ]; + + render(); + + expect(screen.getByRole('table')).toBeInTheDocument(); + expect(screen.getByText('Channel')).toBeInTheDocument(); + }); + + it('shows empty state when there are no rows', () => { + render(); + expect(screen.getByText('No table rows available.')).toBeInTheDocument(); + }); +}); diff --git a/src/features/drilldown/components/PageScopeFilter.jsx b/src/features/drilldown/components/PageScopeFilter.jsx new file mode 100644 index 0000000..a96e74e --- /dev/null +++ b/src/features/drilldown/components/PageScopeFilter.jsx @@ -0,0 +1,270 @@ +import { useEffect, useMemo, useState } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { setGlobalDatasetFilters } from '../drilldownSlice.js'; +import { selectGlobalDatasetFilters } from '../selectors.js'; +import { buildDmaRegionTree, getAllDmaKeys } from '../dmaPageScopeTree.js'; + +function dmaIncluded(selectedDmas, dma) { + if (selectedDmas == null) { + return true; + } + return selectedDmas.includes(dma); +} + +/** + * Page-level DMA multi-select (regions + DMAs + search). Drives `globalDatasetFilters.selectedDmas` + * (`null` = all DMAs; non-null array = explicit inclusion). + */ +const PageScopeFilter = () => { + const dispatch = useDispatch(); + const globalDatasetFilters = useSelector(selectGlobalDatasetFilters); + const selectedDmas = globalDatasetFilters.selectedDmas; + + const allKeys = useMemo(() => getAllDmaKeys(), []); + const tree = useMemo(() => buildDmaRegionTree(), []); + + const [panelOpen, setPanelOpen] = useState(false); + const [search, setSearch] = useState(''); + const [openRegions, setOpenRegions] = useState( + () => new Set(tree.map((r) => r.regionLabel)) + ); + + useEffect(() => { + if (!panelOpen) { + return undefined; + } + const onKey = (e) => { + if (e.key === 'Escape') { + setPanelOpen(false); + } + }; + window.addEventListener('keydown', onKey); + return () => window.removeEventListener('keydown', onKey); + }, [panelOpen]); + + const setSelection = (nextSelected) => { + dispatch( + setGlobalDatasetFilters({ + ...globalDatasetFilters, + selectedDmas: nextSelected, + }) + ); + }; + + const toggleDma = (dma) => { + const keys = allKeys; + if (selectedDmas == null) { + const next = keys.filter((k) => k !== dma); + setSelection(next.length === 0 ? [] : next); + return; + } + if (selectedDmas.includes(dma)) { + const next = selectedDmas.filter((d) => d !== dma); + setSelection(next.length === 0 ? [] : next); + } else { + const next = [...selectedDmas, dma].sort((a, b) => a.localeCompare(b)); + if (next.length === keys.length) { + setSelection(null); + } else { + setSelection(next); + } + } + }; + + const toggleRegion = (region) => { + const regionDmas = region.dmas.map((d) => d.dma); + const allInRegionSelected = + selectedDmas == null || regionDmas.every((d) => selectedDmas.includes(d)); + + if (allInRegionSelected) { + if (selectedDmas == null) { + const next = allKeys.filter((k) => !regionDmas.includes(k)); + setSelection(next.length === 0 ? [] : next); + } else { + const next = selectedDmas.filter((d) => !regionDmas.includes(d)); + setSelection(next.length === 0 ? [] : next); + } + return; + } + + const base = selectedDmas == null ? [...allKeys] : [...selectedDmas]; + const set = new Set(base); + regionDmas.forEach((d) => set.add(d)); + const merged = [...set].sort((a, b) => a.localeCompare(b)); + setSelection(merged.length === allKeys.length ? null : merged); + }; + + const toggleAll = () => { + if (selectedDmas == null) { + setSelection([]); + } else { + setSelection(null); + } + }; + + const searchLower = search.trim().toLowerCase(); + const filteredTree = useMemo(() => { + if (!searchLower) { + return tree; + } + return tree + .map((region) => { + const regionMatch = region.regionLabel.toLowerCase().includes(searchLower); + const dmas = region.dmas.filter( + (d) => regionMatch || d.dma.toLowerCase().includes(searchLower) + ); + return { ...region, dmas }; + }) + .filter((region) => region.dmas.length > 0); + }, [tree, searchLower]); + + const visibleDmaCount = filteredTree.reduce((n, r) => n + r.dmas.length, 0); + const selectedCount = + selectedDmas == null + ? allKeys.length + : selectedDmas.filter((d) => allKeys.includes(d)).length; + + const allSelected = selectedDmas == null; + const noneSelected = Array.isArray(selectedDmas) && selectedDmas.length === 0; + + return ( +
+ + + {panelOpen ? ( + <> + + +
+ {open ? ( +
    + {region.dmas.map(({ dma }) => { + const checked = dmaIncluded(selectedDmas, dma); + return ( +
  • + +
  • + ); + })} +
+ ) : null} + + ); + })} + + + {visibleDmaCount === 0 ? ( +

No regions or DMAs match your search.

+ ) : null} + + + ) : null} +
+ ); +}; + +export default PageScopeFilter; diff --git a/src/features/drilldown/components/PageScopeFilter.test.jsx b/src/features/drilldown/components/PageScopeFilter.test.jsx new file mode 100644 index 0000000..0e3f3de --- /dev/null +++ b/src/features/drilldown/components/PageScopeFilter.test.jsx @@ -0,0 +1,77 @@ +import { configureStore } from '@reduxjs/toolkit'; +import { fireEvent, render, screen } from '@testing-library/react'; +import { Provider } from 'react-redux'; +import { describe, expect, it } from 'vitest'; +import { drilldownApi } from '../../../services/drilldownApi.js'; +import drilldownReducer, { setLevels } from '../drilldownSlice.js'; +import { DMA_DRILL_LEVELS } from '../../../mocks/dmaDrilldownLevels.js'; +import PageScopeFilter from './PageScopeFilter.jsx'; + +const makeStore = () => + configureStore({ + reducer: { + drilldown: drilldownReducer, + [drilldownApi.reducerPath]: drilldownApi.reducer, + }, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat(drilldownApi.middleware), + }); + +describe('PageScopeFilter', () => { + it('opens a floating panel with search and DMA controls', () => { + const store = makeStore(); + store.dispatch(setLevels(DMA_DRILL_LEVELS)); + + render( + + + + ); + + expect(screen.getByRole('button', { name: /DMA scope/i })).toBeInTheDocument(); + expect(screen.queryByPlaceholderText('Search')).not.toBeInTheDocument(); + + fireEvent.click(screen.getByRole('button', { name: /DMA scope/i })); + + expect(screen.getByPlaceholderText('Search')).toBeInTheDocument(); + expect(screen.getByText('All')).toBeInTheDocument(); + }); + + it('narrows selection when unchecking All and restores when checking again', () => { + const store = makeStore(); + store.dispatch(setLevels(DMA_DRILL_LEVELS)); + + render( + + + + ); + + fireEvent.click(screen.getByRole('button', { name: /DMA scope/i })); + + const all = screen.getByRole('checkbox', { name: /^All$/i }); + fireEvent.click(all); + expect(store.getState().drilldown.globalDatasetFilters.selectedDmas).toEqual([]); + + fireEvent.click(all); + expect(store.getState().drilldown.globalDatasetFilters.selectedDmas).toBeNull(); + }); + + it('filters the list when searching', () => { + const store = makeStore(); + store.dispatch(setLevels(DMA_DRILL_LEVELS)); + + render( + + + + ); + + fireEvent.click(screen.getByRole('button', { name: /DMA scope/i })); + + fireEvent.change(screen.getByPlaceholderText('Search'), { + target: { value: 'zzznomatch' }, + }); + expect(screen.getByText(/No regions or DMAs match your search/i)).toBeInTheDocument(); + }); +}); diff --git a/src/features/drilldown/dmaIcicleDrillSync.js b/src/features/drilldown/dmaIcicleDrillSync.js new file mode 100644 index 0000000..aceaf20 --- /dev/null +++ b/src/features/drilldown/dmaIcicleDrillSync.js @@ -0,0 +1,82 @@ +import { jumpToLevel, selectCard } from './drilldownSlice.js'; + +/** + * Two-level icicle ↔ Redux bridge for the DMA mock: maps chart drill state to `selectCard` / `jumpToLevel`. + * Row shape still expects partition fields `parent` and `dma` (see sample data); only **level ids** are taken + * from config so renames in `dmaDrilldownLevels` do not break path matching. + */ + +/** Default level ids for tests and the bundled `DMA_DRILL_LEVELS` mock. */ +export const DMA_ICICLE_DEFAULT_LEVEL_IDS = { + parentLevelId: 'region', + leafLevelId: 'dma', +}; + +/** + * @param {{ levelId: string; value: unknown }[] | undefined} path + * @param {Record[]} rows + * @param {{ parentLevelId: string; leafLevelId: string }} [levelIds] + */ +export function pathToIcicleDrillState( + path, + rows, + levelIds = DMA_ICICLE_DEFAULT_LEVEL_IDS +) { + const { parentLevelId, leafLevelId } = levelIds; + const parentStep = path.find((p) => p.levelId === parentLevelId); + const leafStep = path.find((p) => p.levelId === leafLevelId); + if (!parentStep) { + return { parentValue: null, leafIndex: null }; + } + const slice = rows.filter((row) => row.parent === parentStep.value); + if (!leafStep) { + return { parentValue: parentStep.value, leafIndex: null }; + } + const idx = slice.findIndex((row) => row.dma === leafStep.value); + return { + parentValue: parentStep.value, + leafIndex: idx >= 0 ? idx : null, + }; +} + +/** + * @param {{ levelId: string; value: unknown }[] | undefined} currentPath + * @param {{ parentLevelId: string; leafLevelId: string }} [levelIds] + */ +export function applyIcicleDrillStateToRedux( + dispatch, + rows, + next, + currentPath, + levelIds = DMA_ICICLE_DEFAULT_LEVEL_IDS +) { + const { parentLevelId, leafLevelId } = levelIds; + const { parentValue, leafIndex } = next; + + if (parentValue == null && (leafIndex == null || leafIndex === undefined)) { + dispatch(jumpToLevel(0)); + return; + } + + const parentStep = currentPath.find((p) => p.levelId === parentLevelId); + const leafStep = currentPath.find((p) => p.levelId === leafLevelId); + + if (parentValue != null && (leafIndex == null || leafIndex === undefined)) { + if (parentStep && leafStep && parentStep.value === parentValue && leafStep.value) { + dispatch(jumpToLevel(1)); + return; + } + dispatch(jumpToLevel(0)); + dispatch(selectCard({ levelId: parentLevelId, value: parentValue })); + return; + } + + const slice = rows.filter((r) => r.parent === parentValue); + const dma = slice[leafIndex]?.dma; + if (!dma) { + return; + } + dispatch(jumpToLevel(0)); + dispatch(selectCard({ levelId: parentLevelId, value: parentValue })); + dispatch(selectCard({ levelId: leafLevelId, value: dma })); +} diff --git a/src/features/drilldown/dmaIcicleDrillSync.test.js b/src/features/drilldown/dmaIcicleDrillSync.test.js new file mode 100644 index 0000000..4a1439b --- /dev/null +++ b/src/features/drilldown/dmaIcicleDrillSync.test.js @@ -0,0 +1,130 @@ +import { describe, expect, it, vi } from 'vitest'; + +import { jumpToLevel, selectCard } from './drilldownSlice.js'; +import { + applyIcicleDrillStateToRedux, + DMA_ICICLE_DEFAULT_LEVEL_IDS, + pathToIcicleDrillState, +} from './dmaIcicleDrillSync.js'; + +const rows = [ + { dma: 'A', parent: 'R1', grandparent: 'T', value: 1 }, + { dma: 'B', parent: 'R1', grandparent: 'T', value: 1 }, +]; + +describe('pathToIcicleDrillState', () => { + it('returns empty drill when no region in path', () => { + expect(pathToIcicleDrillState([], rows)).toEqual({ + parentValue: null, + leafIndex: null, + }); + }); + + it('maps region-only path', () => { + expect(pathToIcicleDrillState([{ levelId: 'region', value: 'R1' }], rows)).toEqual({ + parentValue: 'R1', + leafIndex: null, + }); + }); + + it('maps region + dma to leaf index', () => { + expect( + pathToIcicleDrillState( + [ + { levelId: 'region', value: 'R1' }, + { levelId: 'dma', value: 'B' }, + ], + rows + ) + ).toEqual({ parentValue: 'R1', leafIndex: 1 }); + }); + + it('uses configured level ids instead of hardcoded region/dma', () => { + const ids = { parentLevelId: 'L1', leafLevelId: 'L2' }; + expect( + pathToIcicleDrillState( + [ + { levelId: 'L1', value: 'R1' }, + { levelId: 'L2', value: 'B' }, + ], + rows, + ids + ) + ).toEqual({ parentValue: 'R1', leafIndex: 1 }); + expect(pathToIcicleDrillState([{ levelId: 'L1', value: 'R1' }], rows, ids)).toEqual({ + parentValue: 'R1', + leafIndex: null, + }); + }); + + it('defaults to DMA_ICICLE_DEFAULT_LEVEL_IDS', () => { + expect(DMA_ICICLE_DEFAULT_LEVEL_IDS).toEqual({ + parentLevelId: 'region', + leafLevelId: 'dma', + }); + }); +}); + +describe('applyIcicleDrillStateToRedux', () => { + it('clears path on empty drill state', () => { + const dispatch = vi.fn(); + applyIcicleDrillStateToRedux( + dispatch, + rows, + { parentValue: null, leafIndex: null }, + [] + ); + expect(dispatch).toHaveBeenCalledWith(jumpToLevel(0)); + }); + + it('selects region from overview', () => { + const dispatch = vi.fn(); + applyIcicleDrillStateToRedux( + dispatch, + rows, + { parentValue: 'R1', leafIndex: null }, + [] + ); + expect(dispatch).toHaveBeenCalledWith(jumpToLevel(0)); + expect(dispatch).toHaveBeenCalledWith(selectCard({ levelId: 'region', value: 'R1' })); + }); + + it('jumps to parent breakdown when backing from dma', () => { + const dispatch = vi.fn(); + const path = [ + { levelId: 'region', value: 'R1' }, + { levelId: 'dma', value: 'B' }, + ]; + applyIcicleDrillStateToRedux( + dispatch, + rows, + { parentValue: 'R1', leafIndex: null }, + path + ); + expect(dispatch).toHaveBeenCalledWith(jumpToLevel(1)); + }); + + it('selects dma leaf', () => { + const dispatch = vi.fn(); + applyIcicleDrillStateToRedux(dispatch, rows, { parentValue: 'R1', leafIndex: 1 }, [ + { levelId: 'region', value: 'R1' }, + ]); + expect(dispatch).toHaveBeenCalledWith(jumpToLevel(0)); + expect(dispatch).toHaveBeenCalledWith(selectCard({ levelId: 'region', value: 'R1' })); + expect(dispatch).toHaveBeenCalledWith(selectCard({ levelId: 'dma', value: 'B' })); + }); + + it('dispatches selectCard with custom level ids', () => { + const dispatch = vi.fn(); + const ids = { parentLevelId: 'L1', leafLevelId: 'L2' }; + applyIcicleDrillStateToRedux( + dispatch, + rows, + { parentValue: 'R1', leafIndex: 1 }, + [{ levelId: 'L1', value: 'R1' }], + ids + ); + expect(dispatch).toHaveBeenCalledWith(selectCard({ levelId: 'L1', value: 'R1' })); + expect(dispatch).toHaveBeenCalledWith(selectCard({ levelId: 'L2', value: 'B' })); + }); +}); diff --git a/src/features/drilldown/dmaPageScopeTree.js b/src/features/drilldown/dmaPageScopeTree.js new file mode 100644 index 0000000..8929141 --- /dev/null +++ b/src/features/drilldown/dmaPageScopeTree.js @@ -0,0 +1,28 @@ +import { SAMPLE_DMA_PARTITION_ROWS } from '../../mocks/dmaPartitionSampleData.js'; + +/** + * Region → DMA list for page-scope multi-select (mock data shape). + */ +export function buildDmaRegionTree(rows = SAMPLE_DMA_PARTITION_ROWS) { + const byParent = new Map(); + for (const row of rows) { + const parent = String(row.parent ?? '—'); + if (!byParent.has(parent)) { + byParent.set(parent, []); + } + byParent.get(parent).push({ + dma: String(row.dma), + parent, + }); + } + const regions = [...byParent.entries()].map(([regionLabel, items]) => ({ + regionLabel, + dmas: items.sort((a, b) => a.dma.localeCompare(b.dma)), + })); + regions.sort((a, b) => a.regionLabel.localeCompare(b.regionLabel)); + return regions; +} + +export function getAllDmaKeys(rows = SAMPLE_DMA_PARTITION_ROWS) { + return [...new Set(rows.map((r) => String(r.dma)))].sort((a, b) => a.localeCompare(b)); +} diff --git a/src/features/drilldown/dmaPageScopeTree.test.js b/src/features/drilldown/dmaPageScopeTree.test.js new file mode 100644 index 0000000..b5e111c --- /dev/null +++ b/src/features/drilldown/dmaPageScopeTree.test.js @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest'; +import { buildDmaRegionTree, getAllDmaKeys } from './dmaPageScopeTree.js'; + +describe('dmaPageScopeTree', () => { + it('groups DMAs by parent region', () => { + const tree = buildDmaRegionTree(); + const north = tree.find((r) => r.regionLabel === 'North region'); + expect(north).toBeDefined(); + expect(north.dmas.some((d) => d.dma === 'Boston')).toBe(true); + }); + + it('lists unique DMA keys', () => { + const keys = getAllDmaKeys(); + expect(keys.length).toBe(new Set(keys).size); + expect(keys).toContain('Boston'); + }); +}); diff --git a/src/features/drilldown/drilldownSlice.js b/src/features/drilldown/drilldownSlice.js new file mode 100644 index 0000000..94acd6f --- /dev/null +++ b/src/features/drilldown/drilldownSlice.js @@ -0,0 +1,117 @@ +import { createSlice } from '@reduxjs/toolkit'; +import { buildSelectionsFromPath, normalizeLevels, stableSerialize } from './utils.js'; + +const initialState = { + levels: [], + currentLevelIndex: 0, + selections: {}, + path: [], + /** Server-side dataset identity + page-level DMA scope; drives RTK cache + partition rows. */ + globalDatasetFilters: { scope: 'default', selectedDmas: null }, + status: 'idle', +}; + +const deriveStateFromPath = (state) => { + state.selections = buildSelectionsFromPath(state.path); +}; + +const drilldownSlice = createSlice({ + name: 'drilldown', + initialState, + reducers: { + /** Full reset: new config replaces drill order (levels are interchangeable by reordering). */ + setLevels(state, action) { + state.levels = normalizeLevels(action.payload); + state.currentLevelIndex = 0; + state.path = []; + state.selections = {}; + state.globalDatasetFilters = { scope: 'default', selectedDmas: null }; + state.status = state.levels.length ? 'ready' : 'idle'; + }, + /** Card click: record path, advance to next level’s cards (not table). Last level → end. */ + selectCard(state, action) { + const { levelId, value } = action.payload; + const currentLevel = state.levels[state.currentLevelIndex]; + + if (!currentLevel || currentLevel.id !== levelId) { + return; + } + + const nextPath = state.path.slice(0, state.currentLevelIndex); + nextPath.push({ levelId, value }); + state.path = nextPath; + + const hasNextLevel = state.currentLevelIndex < state.levels.length - 1; + if (hasNextLevel) { + state.currentLevelIndex += 1; + state.status = 'ready'; + } else { + state.status = 'end'; + } + + deriveStateFromPath(state); + }, + stepBack(state) { + const nextIndex = Math.max(state.currentLevelIndex - 1, 0); + state.currentLevelIndex = nextIndex; + state.path = state.path.slice(0, nextIndex); + state.status = state.levels.length ? 'ready' : 'idle'; + deriveStateFromPath(state); + }, + jumpToLevel(state, action) { + const requestedLevel = action.payload; + const boundedLevel = Math.max( + 0, + Math.min(requestedLevel, Math.max(state.levels.length - 1, 0)) + ); + + state.currentLevelIndex = boundedLevel; + state.path = state.path.slice(0, boundedLevel); + state.status = state.levels.length ? 'ready' : 'idle'; + deriveStateFromPath(state); + }, + setStatus(state, action) { + state.status = action.payload; + }, + /** + * When the serialized dataset identity changes, reset drill to the start level and clear path + * so the chart/cards/table stay coherent with the new rows. + */ + setGlobalDatasetFilters(state, action) { + const patch = + action.payload && + typeof action.payload === 'object' && + !Array.isArray(action.payload) + ? action.payload + : {}; + const next = { + ...state.globalDatasetFilters, + ...patch, + }; + + const prevSig = stableSerialize(state.globalDatasetFilters); + const nextSig = stableSerialize(next); + state.globalDatasetFilters = next; + + if (prevSig === nextSig || !state.levels.length) { + return; + } + + state.currentLevelIndex = 0; + state.path = []; + state.status = 'ready'; + deriveStateFromPath(state); + }, + }, +}); + +export const { + setLevels, + selectCard, + stepBack, + jumpToLevel, + setStatus, + setGlobalDatasetFilters, +} = drilldownSlice.actions; + +export default drilldownSlice.reducer; diff --git a/src/features/drilldown/drilldownSlice.test.js b/src/features/drilldown/drilldownSlice.test.js new file mode 100644 index 0000000..1279837 --- /dev/null +++ b/src/features/drilldown/drilldownSlice.test.js @@ -0,0 +1,143 @@ +import { describe, expect, it } from 'vitest'; +import drilldownReducer, { + jumpToLevel, + selectCard, + setGlobalDatasetFilters, + setLevels, + setStatus, + stepBack, +} from './drilldownSlice.js'; +import { buildFiltersFromPath } from './utils.js'; +import { DMA_DRILL_LEVELS } from '../../mocks/dmaDrilldownLevels.js'; + +const levels = [ + { id: 'L1', label: 'Channel', variables: ['channel', 'media_type'] }, + { id: 'L2', label: 'Campaign', variables: ['campaign_id'] }, +]; + +describe('drilldownSlice navigation and path', () => { + it('resets state on config set and derives selections from path', () => { + let state = drilldownReducer(undefined, setLevels(levels)); + + state = drilldownReducer(state, selectCard({ levelId: 'L1', value: 'TV' })); + + expect(state.path).toEqual([{ levelId: 'L1', value: 'TV' }]); + expect(state.selections).toEqual({ L1: 'TV' }); + expect(state.currentLevelIndex).toBe(1); + expect(state.globalDatasetFilters.selectedDmas).toBeNull(); + }); + + it('supports forward and back navigation without hardcoded levels', () => { + let state = drilldownReducer(undefined, setLevels(levels)); + state = drilldownReducer(state, selectCard({ levelId: 'L1', value: 'TV' })); + + expect(state.currentLevelIndex).toBe(1); + + state = drilldownReducer(state, stepBack()); + expect(state.currentLevelIndex).toBe(0); + expect(state.path).toEqual([]); + + state = drilldownReducer(state, jumpToLevel(1)); + expect(state.currentLevelIndex).toBe(1); + expect(state.path).toEqual([]); + }); + + it('handles invalid level selections and last-level end state', () => { + let state = drilldownReducer(undefined, setLevels(levels)); + state = drilldownReducer(state, selectCard({ levelId: 'WRONG', value: 'x' })); + expect(state.path).toEqual([]); + + state = drilldownReducer(state, selectCard({ levelId: 'L1', value: 'TV' })); + expect(state.currentLevelIndex).toBe(1); + state = drilldownReducer(state, selectCard({ levelId: 'L2', value: 'C1' })); + + expect(state.status).toBe('end'); + expect(state.path).toEqual([ + { levelId: 'L1', value: 'TV' }, + { levelId: 'L2', value: 'C1' }, + ]); + }); + + it('bounds jumpToLevel and handles empty config', () => { + let state = drilldownReducer(undefined, setLevels([])); + expect(state.status).toBe('idle'); + + state = drilldownReducer(state, jumpToLevel(4)); + expect(state.currentLevelIndex).toBe(0); + + state = drilldownReducer(state, setLevels(levels)); + state = drilldownReducer(state, jumpToLevel(99)); + expect(state.currentLevelIndex).toBe(1); + }); + + it('supports swapped level order (Campaign before Channel)', () => { + const swappedLevels = [ + { id: 'L2', label: 'Campaign', variables: ['campaign_id'] }, + { id: 'L1', label: 'Channel', variables: ['channel', 'media_type'] }, + ]; + let state = drilldownReducer(undefined, setLevels(swappedLevels)); + state = drilldownReducer(state, selectCard({ levelId: 'L2', value: 'C1' })); + + expect(state.currentLevelIndex).toBe(1); + expect(state.path).toEqual([{ levelId: 'L2', value: 'C1' }]); + expect( + buildFiltersFromPath({ + levels: swappedLevels, + path: state.path, + upToLevelIndex: 0, + }) + ).toEqual({ campaign_id: 'C1' }); + }); + + it('allows setting status directly', () => { + let state = drilldownReducer(undefined, setLevels(levels)); + state = drilldownReducer(state, setStatus('loading')); + expect(state.status).toBe('loading'); + }); + + it('prefetch filters for next level match post-card path', () => { + const pathAfterCard = [{ levelId: 'L1', value: 'TV' }]; + const prefetchFilters = buildFiltersFromPath({ + levels, + path: pathAfterCard, + upToLevelIndex: 0, + }); + expect(prefetchFilters).toEqual({ channel: 'TV', media_type: 'TV' }); + + let state = drilldownReducer(undefined, setLevels(levels)); + state = drilldownReducer(state, selectCard({ levelId: 'L1', value: 'TV' })); + expect( + buildFiltersFromPath({ + levels, + path: state.path, + upToLevelIndex: 0, + }) + ).toEqual(prefetchFilters); + }); +}); + +describe('drilldownSlice global dataset', () => { + it('resets drill path when global dataset identity changes', () => { + let state = drilldownReducer(undefined, setLevels(DMA_DRILL_LEVELS)); + state = drilldownReducer( + state, + selectCard({ levelId: 'region', value: 'North region' }) + ); + expect(state.path).toHaveLength(1); + + state = drilldownReducer(state, setGlobalDatasetFilters({ scope: 'alternate' })); + expect(state.path).toEqual([]); + expect(state.currentLevelIndex).toBe(0); + }); + + it('does not reset when dataset payload serializes to the same identity', () => { + let state = drilldownReducer(undefined, setLevels(DMA_DRILL_LEVELS)); + state = drilldownReducer( + state, + selectCard({ levelId: 'region', value: 'North region' }) + ); + const pathBefore = state.path; + state = drilldownReducer(state, setGlobalDatasetFilters({ scope: 'default' })); + expect(state.path).toEqual(pathBefore); + }); +}); diff --git a/src/features/drilldown/selectors.js b/src/features/drilldown/selectors.js new file mode 100644 index 0000000..52f8fb2 --- /dev/null +++ b/src/features/drilldown/selectors.js @@ -0,0 +1,54 @@ +import { createSelector } from '@reduxjs/toolkit'; +import { buildFiltersFromPath } from './utils.js'; + +export const selectDrilldownState = (state) => state.drilldown; + +export const selectLevels = createSelector( + [selectDrilldownState], + (drilldown) => drilldown.levels +); + +export const selectCurrentLevelIndex = createSelector( + [selectDrilldownState], + (drilldown) => drilldown.currentLevelIndex +); + +export const selectCurrentLevel = createSelector( + [selectLevels, selectCurrentLevelIndex], + (levels, index) => levels[index] ?? null +); + +export const selectPath = createSelector( + [selectDrilldownState], + (drilldown) => drilldown.path +); + +export const selectGlobalDatasetFilters = createSelector( + [selectDrilldownState], + (drilldown) => + drilldown.globalDatasetFilters ?? { scope: 'default', selectedDmas: null } +); + +export const selectStatus = createSelector( + [selectDrilldownState], + (drilldown) => drilldown.status +); + +/** + * Variable→value map for RTK/API filters built from `path` steps at indices `0…endPathStepIndex` (inclusive). + * Aligns with `buildFiltersFromPath({ upToLevelIndex: endPathStepIndex })`: use `-1` for an empty map. + * + * Typical uses: + * - Cards for the current level: `endPathStepIndex = currentLevelIndex - 1` (filters from completed steps only). + * - Prefetch for the next level’s cards: `endPathStepIndex = currentLevelIndex`. + * - Table for full context: `endPathStepIndex = path.length - 1` (when `path.length > 0`). + */ +export const selectFiltersUpToPathStepInclusive = createSelector( + [selectLevels, selectPath, (_state, endPathStepIndex) => endPathStepIndex], + (levels, path, endPathStepIndex) => + buildFiltersFromPath({ + levels, + path, + upToLevelIndex: endPathStepIndex, + }) +); diff --git a/src/features/drilldown/utils.js b/src/features/drilldown/utils.js new file mode 100644 index 0000000..e392b8f --- /dev/null +++ b/src/features/drilldown/utils.js @@ -0,0 +1,173 @@ +export const MAX_LEVELS = 5; + +/** Region → DMA drill config aligned with partition sample data and icicle bridge. */ +export const isDmaDrillLevels = (levels) => + Array.isArray(levels) && + levels.length === 2 && + levels[0]?.id === 'region' && + levels[1]?.id === 'dma'; + +/** + * Admin level configuration: array order is the drill hierarchy (depth 0 → n). + * Levels are interchangeable—reordering the array changes which dimension is explored first, + * without any hardcoded level ids or names in application logic. + */ +export const normalizeLevels = (levels) => { + if (!Array.isArray(levels)) { + return []; + } + + return levels + .slice(0, MAX_LEVELS) + .filter((level) => level && level.id && Array.isArray(level.variables)) + .map((level) => ({ + id: String(level.id), + label: String(level.label ?? level.id), + variables: level.variables.map(String), + })); +}; + +export const buildSelectionsFromPath = (path) => { + const selections = {}; + path.forEach(({ levelId, value }) => { + selections[levelId] = value; + }); + return selections; +}; + +export const buildFiltersFromPath = ({ levels, path, upToLevelIndex }) => { + if (!Array.isArray(levels) || !Array.isArray(path) || upToLevelIndex < 0) { + return {}; + } + + const levelMap = Object.fromEntries(levels.map((level) => [level.id, level])); + const boundedPath = path.slice(0, upToLevelIndex + 1); + + return boundedPath.reduce((acc, step) => { + const level = levelMap[step.levelId]; + if (!level) { + return acc; + } + level.variables.forEach((variable) => { + acc[variable] = step.value; + }); + return acc; + }, {}); +}; + +export const stableSortObject = (value) => { + if (Array.isArray(value)) { + return value.map(stableSortObject); + } + if (value && typeof value === 'object') { + return Object.keys(value) + .sort() + .reduce((acc, key) => { + acc[key] = stableSortObject(value[key]); + return acc; + }, {}); + } + return value; +}; + +export const stableSerialize = (value) => JSON.stringify(stableSortObject(value)); + +export const normalizeCardsResponse = (response) => { + if (Array.isArray(response)) { + return response; + } + if (Array.isArray(response?.items)) { + return response.items; + } + if (Array.isArray(response?.data)) { + return response.data; + } + return []; +}; + +export const normalizeTableResponse = (response) => { + if (Array.isArray(response)) { + return response; + } + if (Array.isArray(response?.rows)) { + return response.rows; + } + if (Array.isArray(response?.data)) { + return response.data; + } + return []; +}; + +export const getItemLabel = (item) => + item?.label ?? item?.name ?? item?.title ?? item?.value ?? item?.id ?? 'Unknown'; + +export const getItemMetric = (item) => + item?.metric ?? item?.count ?? item?.valueMetric ?? null; + +/** Union of row object keys, sorted, for dynamic table columns. */ +export const collectTableColumnKeys = (rows) => { + const keys = new Set(); + if (!Array.isArray(rows)) { + return []; + } + rows.forEach((row) => { + if (row && typeof row === 'object') { + Object.keys(row).forEach((key) => keys.add(key)); + } + }); + return Array.from(keys).sort(); +}; + +/** Stable signature for one row at a level (uses that level’s variables on the row). */ +export const getRowSignatureForLevel = (row, level) => { + if (!row || !level?.variables?.length) { + return '—'; + } + const parts = level.variables + .map((key) => row[key]) + .filter((v) => v !== undefined && v !== null); + return parts.length ? parts.map(String).join(' · ') : '—'; +}; + +/** + * Sort rows by admin level order, then emit group headers + data rows for the summary table. + */ +export const buildGroupedTableSegments = (rows, levels) => { + if (!Array.isArray(rows) || !rows.length || !Array.isArray(levels) || !levels.length) { + return []; + } + + const sorted = [...rows].sort((a, b) => { + for (const level of levels) { + const sa = getRowSignatureForLevel(a, level); + const sb = getRowSignatureForLevel(b, level); + if (sa < sb) return -1; + if (sa > sb) return 1; + } + return 0; + }); + + const segments = []; + const prev = levels.map(() => null); + + for (const row of sorted) { + for (let d = 0; d < levels.length; d += 1) { + const sig = getRowSignatureForLevel(row, levels[d]); + if (prev[d] !== sig) { + for (let j = d + 1; j < levels.length; j += 1) { + prev[j] = null; + } + prev[d] = sig; + segments.push({ + kind: 'group', + depth: d, + levelLabel: levels[d].label, + value: sig, + }); + } + } + segments.push({ kind: 'row', row }); + } + + return segments; +}; diff --git a/src/features/drilldown/utils.test.js b/src/features/drilldown/utils.test.js new file mode 100644 index 0000000..c9f9ead --- /dev/null +++ b/src/features/drilldown/utils.test.js @@ -0,0 +1,114 @@ +import { describe, expect, it } from 'vitest'; +import { + buildFiltersFromPath, + buildGroupedTableSegments, + buildSelectionsFromPath, + collectTableColumnKeys, + getItemLabel, + getItemMetric, + normalizeCardsResponse, + normalizeLevels, + normalizeTableResponse, + stableSerialize, + stableSortObject, +} from './utils.js'; + +const levels = [ + { id: 'L1', label: 'Channel', variables: ['channel', 'media_type'] }, + { id: 'L2', label: 'Campaign', variables: ['campaign_id'] }, +]; + +describe('grouped table helpers', () => { + it('buildGroupedTableSegments interleaves group headers and rows', () => { + const lv = [ + { id: 'L1', label: 'Channel', variables: ['channel'] }, + { id: 'L2', label: 'Campaign', variables: ['campaign_id'] }, + ]; + const rows = [ + { channel: 'TV', campaign_id: 'C1', n: 1 }, + { channel: 'TV', campaign_id: 'C2', n: 2 }, + ]; + const segs = buildGroupedTableSegments(rows, lv); + expect(segs.filter((s) => s.kind === 'group').length).toBeGreaterThan(0); + expect(segs.filter((s) => s.kind === 'row').length).toBe(2); + }); +}); + +describe('filter construction and cache key serialization', () => { + it('maps a selected value to all level variables', () => { + const path = [{ levelId: 'L1', value: 'TV' }]; + const filters = buildFiltersFromPath({ levels, path, upToLevelIndex: 0 }); + + expect(filters).toEqual({ channel: 'TV', media_type: 'TV' }); + expect(buildSelectionsFromPath(path)).toEqual({ L1: 'TV' }); + }); + + it('serializes logical equivalents to the same cache signature', () => { + const first = stableSerialize({ b: 2, a: 1 }); + const second = stableSerialize({ a: 1, b: 2 }); + + expect(first).toBe(second); + }); + + it('matches RTK Query cache key shape for equivalent filter objects', () => { + const serialize = (endpointName, queryArgs) => + `${endpointName}|${queryArgs.levelId}|${stableSerialize(queryArgs.filters ?? {})}`; + expect( + serialize('getCards', { + levelId: 'L1', + filters: { channel: 'TV', media_type: 'TV' }, + }) + ).toBe( + serialize('getCards', { + levelId: 'L1', + filters: { media_type: 'TV', channel: 'TV' }, + }) + ); + }); + + it('collects sorted union of keys for dynamic table columns', () => { + expect(collectTableColumnKeys([{ a: 1 }, { b: 2, a: 3 }])).toEqual(['a', 'b']); + expect(collectTableColumnKeys([])).toEqual([]); + }); + + it('covers utility normalization and fallback helpers', () => { + expect(normalizeLevels(null)).toEqual([]); + expect( + normalizeLevels([ + { id: 'L1', variables: ['v1'], label: 'Level 1' }, + { id: 'L2', variables: ['v2'] }, + {}, + ]) + ).toEqual([ + { id: 'L1', label: 'Level 1', variables: ['v1'] }, + { id: 'L2', label: 'L2', variables: ['v2'] }, + ]); + + expect(stableSortObject({ z: { b: 2, a: 1 }, a: [2, 1] })).toEqual({ + a: [2, 1], + z: { a: 1, b: 2 }, + }); + + expect(normalizeCardsResponse([{ label: 'A' }])).toEqual([{ label: 'A' }]); + expect(normalizeCardsResponse({ items: [{ label: 'A' }] })).toEqual([{ label: 'A' }]); + expect(normalizeCardsResponse({ data: [{ label: 'A' }] })).toEqual([{ label: 'A' }]); + expect(normalizeCardsResponse({})).toEqual([]); + + expect(normalizeTableResponse([{ id: 1 }])).toEqual([{ id: 1 }]); + expect(normalizeTableResponse({ rows: [{ id: 1 }] })).toEqual([{ id: 1 }]); + expect(normalizeTableResponse({ data: [{ id: 1 }] })).toEqual([{ id: 1 }]); + expect(normalizeTableResponse({})).toEqual([]); + + expect(getItemLabel({ label: 'x' })).toBe('x'); + expect(getItemLabel({ name: 'x' })).toBe('x'); + expect(getItemLabel({ title: 'x' })).toBe('x'); + expect(getItemLabel({ value: 'x' })).toBe('x'); + expect(getItemLabel({ id: 'x' })).toBe('x'); + expect(getItemLabel({})).toBe('Unknown'); + + expect(getItemMetric({ metric: 9 })).toBe(9); + expect(getItemMetric({ count: 9 })).toBe(9); + expect(getItemMetric({ valueMetric: 9 })).toBe(9); + expect(getItemMetric({})).toBeNull(); + }); +}); diff --git a/src/features/partition/DmaPartitionChart.jsx b/src/features/partition/DmaPartitionChart.jsx new file mode 100644 index 0000000..d6f1fef --- /dev/null +++ b/src/features/partition/DmaPartitionChart.jsx @@ -0,0 +1,79 @@ +import { useId, useState } from 'react'; + +import { PartitionIcicleChart } from '../../components/common/partition/PartitionIcicleChart.jsx'; +import { PartitionSunburstChart } from '../../components/common/partition/PartitionSunburstChart.jsx'; + +import { DEFAULT_DMA_HIERARCHY } from './dmaPartitionModel'; + +/** + * Domain preset: DMA columns (`dma`, `parent`, `grandparent`, optional `value`). + * For arbitrary column names use `PartitionIcicleChart` / `PartitionSunburstChart` with a custom `hierarchy`. + * + * @param {'icicle'|'sunburst'} [props.defaultView='icicle'] + * @param {boolean} [props.showViewToggle=true] + */ +export function DmaPartitionChart({ + rows, + chartInstanceKey, + defaultView = 'icicle', + showViewToggle = true, + ...rest +}) { + const toggleGroupId = useId(); + const [view, setView] = useState(defaultView === 'sunburst' ? 'sunburst' : 'icicle'); + + const baseKey = chartInstanceKey ?? 'dma-partition'; + const icicleKey = `${baseKey}-icicle`; + const sunburstKey = `${baseKey}-sunburst`; + + const common = { + data: rows, + hierarchy: DEFAULT_DMA_HIERARCHY, + chartTitle: 'DMA partition chart', + captionText: + 'Data: flat DMA rows with parent + grandparent; layout is inferred (same weights in icicle and sunburst).', + ...rest, + }; + + return ( +
+ {showViewToggle ? ( +
+ + View + +
+ + +
+
+ ) : null} + + {view === 'icicle' ? ( + + ) : ( + + )} +
+ ); +} + +export default DmaPartitionChart; diff --git a/src/features/partition/dmaPartitionModel.js b/src/features/partition/dmaPartitionModel.js new file mode 100644 index 0000000..f4c1549 --- /dev/null +++ b/src/features/partition/dmaPartitionModel.js @@ -0,0 +1,55 @@ +/** + * DMA-oriented defaults for the common partition series builder. + * Prefer importing from `src/components/common/partition/buildPartitionSeriesData.js` for new code. + */ + +import { + getPartitionData as getPartitionDataFromRows, + leafLabel as leafLabelFromRows, +} from '../../components/common/partition/buildPartitionSeriesData.js'; + +export const DEFAULT_DMA_HIERARCHY = { + grandparent: 'grandparent', + parent: 'parent', + leaf: 'dma', + value: 'value', +}; + +export { + buildDrilledPartitionData, + buildOverviewPartitionData, + normalizeRows, + parseParentSlug, + rowWeight, + slugParent, +} from '../../components/common/partition/buildPartitionSeriesData.js'; + +/** + * @param {Record[]} rows + * @param {string|null} drillParentName + * @param {number|null} leafIndex + * @param {import('../../components/common/partition/buildPartitionSeriesData.js').PartitionHierarchy} [hierarchy] + */ +export function getPartitionData( + rows, + drillParentName, + leafIndex, + hierarchy = DEFAULT_DMA_HIERARCHY +) { + return getPartitionDataFromRows(rows, hierarchy, drillParentName, leafIndex); +} + +/** + * @param {Record[]} rows + * @param {string|null} drillParentName + * @param {number|null} leafIndex + * @param {import('../../components/common/partition/buildPartitionSeriesData.js').PartitionHierarchy} [hierarchy] + */ +export function leafLabel( + rows, + drillParentName, + leafIndex, + hierarchy = DEFAULT_DMA_HIERARCHY +) { + return leafLabelFromRows(rows, hierarchy, drillParentName, leafIndex); +} diff --git a/src/index.jsx b/src/index.jsx index 2ec8927..bf1abb9 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,9 +1,15 @@ import ReactDOM from 'react-dom/client'; +import { Provider } from 'react-redux'; import App from './App.jsx'; +import { store } from './app/store.js'; const container = document.getElementById('root'); if (container) { const root = ReactDOM.createRoot(container); - root.render(); + root.render( + + + + ); } diff --git a/src/index.test.jsx b/src/index.test.jsx deleted file mode 100644 index e87e2fb..0000000 --- a/src/index.test.jsx +++ /dev/null @@ -1,42 +0,0 @@ -import React from 'react'; -import { describe, it, expect } from 'vitest'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import App from './App.jsx'; - -describe('App', () => { - it('adds two numbers and displays the result', async () => { - render(); - - const user = userEvent.setup(); - const firstInput = screen.getByLabelText(/first number/i); - const secondInput = screen.getByLabelText(/second number/i); - const addButton = screen.getByRole('button', { name: /add numbers/i }); - - await user.clear(firstInput); - await user.type(firstInput, '5'); - await user.clear(secondInput); - await user.type(secondInput, '7'); - await user.click(addButton); - - expect(screen.getByText(/total/i)).toBeInTheDocument(); - expect(screen.getByText('12')).toBeInTheDocument(); - }); - - it('does not show a total when inputs are empty', async () => { - render(); - - const user = userEvent.setup(); - const firstInput = screen.getByLabelText(/first number/i); - const secondInput = screen.getByLabelText(/second number/i); - const addButton = screen.getByRole('button', { name: /add numbers/i }); - - secondInput.removeAttribute('required'); - - await user.clear(firstInput); - await user.type(firstInput, '3'); - await user.click(addButton); - - expect(screen.queryByText(/total/i)).not.toBeInTheDocument(); - }); -}); diff --git a/src/mocks/dmaDrilldownLevels.js b/src/mocks/dmaDrilldownLevels.js new file mode 100644 index 0000000..19887d6 --- /dev/null +++ b/src/mocks/dmaDrilldownLevels.js @@ -0,0 +1,8 @@ +/** + * Two-level drill config aligned with `SAMPLE_DMA_PARTITION_ROWS`: + * Region (parent) → DMA (leaf). Filter keys match row fields for mock API + icicle chart. + */ +export const DMA_DRILL_LEVELS = [ + { id: 'region', label: 'Region', variables: ['parent'] }, + { id: 'dma', label: 'DMA', variables: ['dma'] }, +]; diff --git a/src/mocks/dmaPartitionSampleData.js b/src/mocks/dmaPartitionSampleData.js new file mode 100644 index 0000000..63b61a9 --- /dev/null +++ b/src/mocks/dmaPartitionSampleData.js @@ -0,0 +1,95 @@ +/** + * Sample DMA hierarchy: each row is one DMA; `parent` and `grandparent` define the + * middle and top rows. `value` drives horizontal share (within the full dataset). + * + * Weights chosen so parent bands approximate the reference layout: National ~42%, + * North ~16%, South ~17%, Central ~25% (sums to 100 at parent level). + */ +const NORTH_SCALE = 16 / 100; + +export const SAMPLE_DMA_PARTITION_ROWS = [ + { + dma: 'Boston', + parent: 'North region', + grandparent: 'Total', + value: 18 * NORTH_SCALE, + }, + { + dma: 'Washington', + parent: 'North region', + grandparent: 'Total', + value: 6 * NORTH_SCALE, + }, + { + dma: 'Philadelphia', + parent: 'North region', + grandparent: 'Total', + value: 7 * NORTH_SCALE, + }, + { + dma: 'Hartford', + parent: 'North region', + grandparent: 'Total', + value: 4 * NORTH_SCALE, + }, + { + dma: 'Tallahassee', + parent: 'North region', + grandparent: 'Total', + value: 4 * NORTH_SCALE, + }, + { + dma: 'Baltimore', + parent: 'North region', + grandparent: 'Total', + value: 6 * NORTH_SCALE, + }, + { + dma: 'Springfield', + parent: 'North region', + grandparent: 'Total', + value: 5 * NORTH_SCALE, + }, + { dma: 'Albany', parent: 'North region', grandparent: 'Total', value: 4 * NORTH_SCALE }, + { + dma: 'New York', + parent: 'North region', + grandparent: 'Total', + value: 10 * NORTH_SCALE, + }, + { + dma: 'Los Angeles', + parent: 'North region', + grandparent: 'Total', + value: 7 * NORTH_SCALE, + }, + { dma: 'Tampa', parent: 'North region', grandparent: 'Total', value: 6 * NORTH_SCALE }, + { + dma: 'Orlando', + parent: 'North region', + grandparent: 'Total', + value: 5 * NORTH_SCALE, + }, + { + dma: 'Atlanta', + parent: 'North region', + grandparent: 'Total', + value: 6 * NORTH_SCALE, + }, + { dma: 'Miami', parent: 'North region', grandparent: 'Total', value: 5 * NORTH_SCALE }, + { + dma: 'All other DMAs', + parent: 'North region', + grandparent: 'Total', + value: 7 * NORTH_SCALE, + }, + + { dma: 'Coastal', parent: 'South region', grandparent: 'Total', value: 7 }, + { dma: 'Inland', parent: 'South region', grandparent: 'Total', value: 6 }, + { dma: 'Other South', parent: 'South region', grandparent: 'Total', value: 4 }, + + { dma: 'Metro West', parent: 'Central region', grandparent: 'Total', value: 14 }, + { dma: 'Metro East', parent: 'Central region', grandparent: 'Total', value: 11 }, + + { dma: 'National', parent: 'National', grandparent: 'Total', value: 42 }, +]; diff --git a/src/mocks/drilldownMockEngine.js b/src/mocks/drilldownMockEngine.js new file mode 100644 index 0000000..749e90f --- /dev/null +++ b/src/mocks/drilldownMockEngine.js @@ -0,0 +1,180 @@ +import { SAMPLE_DMA_PARTITION_ROWS } from './dmaPartitionSampleData.js'; +import { stableSerialize } from '../features/drilldown/utils.js'; + +const hashString = (value) => { + let hash = 0; + for (let index = 0; index < value.length; index += 1) { + hash = (hash << 5) - hash + value.charCodeAt(index); + hash |= 0; + } + return Math.abs(hash); +}; + +/** + * Partition rows for the icicle chart and DMA mock cards/table — same shape, scaled per dataset scope. + */ +export const getPartitionRowsForDataset = (dataset = {}) => { + const { selectedDmas, ...datasetForScale } = dataset ?? {}; + const scaleSig = stableSerialize(datasetForScale); + let rows; + if (scaleSig === '{}' || scaleSig === stableSerialize({ scope: 'default' })) { + rows = SAMPLE_DMA_PARTITION_ROWS; + } else { + const factor = 0.9 + (hashString(scaleSig) % 21) / 100; + rows = SAMPLE_DMA_PARTITION_ROWS.map((r) => ({ + ...r, + value: Number(r.value) * factor, + })); + } + + if (selectedDmas == null) { + return rows; + } + if (Array.isArray(selectedDmas) && selectedDmas.length === 0) { + return []; + } + const allow = new Set(selectedDmas.map(String)); + return rows.filter((r) => allow.has(String(r.dma))); +}; + +const filterSignature = (filters) => stableSerialize(filters ?? {}); + +const buildMetric = (seed, min, range) => min + (hashString(seed) % range); + +const isDmaLevel = (levelId) => levelId === 'region' || levelId === 'dma'; + +const buildDmaCards = ({ levelId, filters, dataset = {} }) => { + const rows = getPartitionRowsForDataset(dataset); + if (levelId === 'region') { + const parents = [...new Set(rows.map((r) => r.parent))]; + return parents.map((label, index) => { + const vol = rows + .filter((r) => r.parent === label) + .reduce((s, r) => s + (Number(r.value) || 1), 0); + return { + id: `dma-region-${index}`, + label, + metric: Math.round(vol * 1000) / 1000, + valueMetric: vol, + }; + }); + } + if (levelId === 'dma') { + const parent = filters.parent; + if (!parent) { + return []; + } + return rows + .filter((r) => r.parent === parent) + .map((r, index) => ({ + id: `dma-leaf-${index}-${r.dma}`, + label: r.dma, + metric: Math.round(Number(r.value) * 1000) / 1000, + dma: r.dma, + parent: r.parent, + })); + } + return []; +}; + +const buildDmaTableRows = ({ filters, dataset = {} }) => { + let data = [...getPartitionRowsForDataset(dataset)]; + if (filters.parent) { + data = data.filter((r) => r.parent === filters.parent); + } + if (filters.dma) { + data = data.filter((r) => r.dma === filters.dma); + } + const signature = filterSignature(filters); + return data.map((r, rank) => { + const rowSeed = `dma-${r.parent}-${r.dma}-${signature}-${rank}`; + return { + id: `dma-t-${rank}`, + rank: rank + 1, + parent: r.parent, + dma: r.dma, + grandparent: r.grandparent, + share: r.value, + spend: buildMetric(`${rowSeed}-spend`, 500, 60000), + impressions: buildMetric(`${rowSeed}-imp`, 50000, 950000), + clicks: buildMetric(`${rowSeed}-clk`, 1000, 60000), + conversions: buildMetric(`${rowSeed}-conv`, 50, 4500), + roi: Number((buildMetric(`${rowSeed}-roi`, 80, 350) / 100).toFixed(2)), + }; + }); +}; + +const sumSpendWeightedRoi = (rows) => { + const spendSum = rows.reduce((s, r) => s + (Number(r.spend) || 0), 0); + if (spendSum <= 0) { + return 0; + } + const weighted = rows.reduce( + (s, r) => s + (Number(r.roi) || 0) * (Number(r.spend) || 0), + 0 + ); + return Number((weighted / spendSum).toFixed(2)); +}; + +/** + * Full hierarchy: per-region rollup row (sums of leaf metrics) then leaf DMA rows. + * Used for the summary table with selection highlight (path) while cards stay in sync. + */ +export const buildDmaAggregateTableRows = (dataset = {}) => { + const detail = buildDmaTableRows({ filters: {}, dataset }); + const order = []; + const seen = new Set(); + for (const r of getPartitionRowsForDataset(dataset)) { + if (!seen.has(r.parent)) { + seen.add(r.parent); + order.push(r.parent); + } + } + + const out = []; + for (const parent of order) { + const rows = detail.filter((d) => d.parent === parent); + if (!rows.length) { + continue; + } + const share = rows.reduce((s, r) => s + Number(r.share ?? 0), 0); + const spend = rows.reduce((s, r) => s + (Number(r.spend) || 0), 0); + const impressions = rows.reduce((s, r) => s + (Number(r.impressions) || 0), 0); + const clicks = rows.reduce((s, r) => s + (Number(r.clicks) || 0), 0); + const conversions = rows.reduce((s, r) => s + (Number(r.conversions) || 0), 0); + + out.push({ + id: `rollup-${parent}`, + rowKind: 'rollup', + grandparent: rows[0]?.grandparent ?? '—', + parent, + dma: '—', + rank: '—', + share, + spend: Math.round(spend), + impressions: Math.round(impressions), + clicks: Math.round(clicks), + conversions: Math.round(conversions), + roi: sumSpendWeightedRoi(rows), + }); + rows.forEach((r) => out.push({ ...r, rowKind: 'detail' })); + } + return out; +}; + +export const shouldUseMockData = () => + import.meta.env.VITE_USE_DRILLDOWN_MOCKS !== 'false'; + +export const getMockCards = ({ levelId, filters = {}, dataset = {} }) => { + if (isDmaLevel(levelId)) { + return buildDmaCards({ levelId, filters, dataset }); + } + return []; +}; + +export const getMockTable = ({ levelId, filters = {}, dataset = {} }) => { + if (isDmaLevel(levelId)) { + return buildDmaTableRows({ levelId, filters, dataset }); + } + return []; +}; diff --git a/src/services/drilldownApi.js b/src/services/drilldownApi.js new file mode 100644 index 0000000..39578fd --- /dev/null +++ b/src/services/drilldownApi.js @@ -0,0 +1,133 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; +import { + normalizeCardsResponse, + normalizeTableResponse, + stableSerialize, +} from '../features/drilldown/utils.js'; +import { + buildDmaAggregateTableRows, + getMockCards, + getMockTable, + getPartitionRowsForDataset, + shouldUseMockData, +} from '../mocks/drilldownMockEngine.js'; + +const networkBaseQuery = fetchBaseQuery({ baseUrl: '/' }); + +export const drilldownApi = createApi({ + reducerPath: 'drilldownApi', + baseQuery: networkBaseQuery, + endpoints: (builder) => ({ + getCards: builder.query({ + async queryFn(args, api, extraOptions, baseQuery) { + const dataset = args?.dataset ?? {}; + if (shouldUseMockData()) { + return { data: normalizeCardsResponse(getMockCards({ ...args, dataset })) }; + } + + const response = await baseQuery( + { + url: 'drilldown/cards', + method: 'POST', + body: { levelId: args.levelId, filters: args.filters, dataset }, + }, + api, + extraOptions + ); + + if (response.error) { + return { data: normalizeCardsResponse(getMockCards({ ...args, dataset })) }; + } + + return { data: normalizeCardsResponse(response.data) }; + }, + serializeQueryArgs: ({ endpointName, queryArgs }) => + `${endpointName}|${queryArgs.levelId}|${stableSerialize(queryArgs.filters ?? {})}|${stableSerialize(queryArgs.dataset ?? {})}`, + }), + getTable: builder.query({ + async queryFn(args, api, extraOptions, baseQuery) { + const dataset = args?.dataset ?? {}; + if (shouldUseMockData()) { + return { data: normalizeTableResponse(getMockTable({ ...args, dataset })) }; + } + + const response = await baseQuery( + { + url: 'drilldown/table', + method: 'POST', + body: { levelId: args.levelId, filters: args.filters, dataset }, + }, + api, + extraOptions + ); + + if (response.error) { + return { data: normalizeTableResponse(getMockTable({ ...args, dataset })) }; + } + + return { data: normalizeTableResponse(response.data) }; + }, + serializeQueryArgs: ({ endpointName, queryArgs }) => + `${endpointName}|${queryArgs.levelId}|${stableSerialize(queryArgs.filters ?? {})}|${stableSerialize(queryArgs.dataset ?? {})}`, + }), + getDmaAggregateTable: builder.query({ + async queryFn(args = {}, api, extraOptions, baseQuery) { + const dataset = args?.dataset ?? {}; + if (shouldUseMockData()) { + return { data: normalizeTableResponse(buildDmaAggregateTableRows(dataset)) }; + } + + const response = await baseQuery( + { + url: 'drilldown/aggregate-table', + method: 'POST', + body: { dataset }, + }, + api, + extraOptions + ); + + if (response.error) { + return { data: normalizeTableResponse(buildDmaAggregateTableRows(dataset)) }; + } + + return { data: normalizeTableResponse(response.data) }; + }, + serializeQueryArgs: ({ queryArgs }) => + `getDmaAggregateTable|${stableSerialize(queryArgs?.dataset ?? {})}`, + }), + getPartitionRows: builder.query({ + async queryFn(args = {}, api, extraOptions, baseQuery) { + const dataset = args?.dataset ?? {}; + if (shouldUseMockData()) { + return { data: getPartitionRowsForDataset(dataset) }; + } + + const response = await baseQuery( + { + url: 'drilldown/partition-rows', + method: 'POST', + body: { dataset }, + }, + api, + extraOptions + ); + + if (response.error) { + return { data: getPartitionRowsForDataset(dataset) }; + } + + return { data: response.data }; + }, + serializeQueryArgs: ({ endpointName, queryArgs }) => + `${endpointName}|${stableSerialize(queryArgs?.dataset ?? {})}`, + }), + }), +}); + +export const { + useGetCardsQuery, + useGetDmaAggregateTableQuery, + useGetPartitionRowsQuery, + useGetTableQuery, +} = drilldownApi; diff --git a/src/services/drilldownApi.test.js b/src/services/drilldownApi.test.js new file mode 100644 index 0000000..dd2bd99 --- /dev/null +++ b/src/services/drilldownApi.test.js @@ -0,0 +1,94 @@ +import { configureStore } from '@reduxjs/toolkit'; +import { describe, expect, it } from 'vitest'; +import { stableSerialize } from '../features/drilldown/utils.js'; +import { drilldownApi } from './drilldownApi.js'; + +const makeStore = () => + configureStore({ + reducer: { [drilldownApi.reducerPath]: drilldownApi.reducer }, + middleware: (getDefaultMiddleware) => + getDefaultMiddleware().concat(drilldownApi.middleware), + }); + +describe('drilldownApi', () => { + it('returns card data via mock engine by default', async () => { + const store = makeStore(); + const result = await store.dispatch( + drilldownApi.endpoints.getCards.initiate({ + levelId: 'region', + filters: {}, + }) + ); + if ('data' in result) { + expect(Array.isArray(result.data)).toBe(true); + expect(result.data.length).toBeGreaterThan(0); + } else { + expect.fail('expected fulfilled result'); + } + }); + + it('returns table data via mock engine by default', async () => { + const store = makeStore(); + const result = await store.dispatch( + drilldownApi.endpoints.getTable.initiate({ + levelId: 'dma', + filters: {}, + }) + ); + if ('data' in result) { + expect(Array.isArray(result.data)).toBe(true); + expect(result.data.length).toBeGreaterThan(0); + } else { + expect.fail('expected fulfilled result'); + } + }); + + it('returns DMA aggregate metrics via mock engine by default', async () => { + const store = makeStore(); + const result = await store.dispatch( + drilldownApi.endpoints.getDmaAggregateTable.initiate({ + dataset: { scope: 'default' }, + }) + ); + if ('data' in result) { + expect(Array.isArray(result.data)).toBe(true); + expect(result.data.some((row) => row.rowKind === 'rollup')).toBe(true); + expect(result.data.some((row) => row.rowKind === 'detail')).toBe(true); + } else { + expect.fail('expected fulfilled result'); + } + }); + + it('uses stable filter serialization in cache keys', () => { + const serialize = (endpointName, queryArgs) => + `${endpointName}|${queryArgs.levelId}|${stableSerialize(queryArgs.filters ?? {})}|${stableSerialize(queryArgs.dataset ?? {})}`; + const a = serialize('getCards', { + levelId: 'L1', + filters: { b: 2, a: 1 }, + dataset: {}, + }); + const b = serialize('getCards', { + levelId: 'L1', + filters: { a: 1, b: 2 }, + dataset: {}, + }); + expect(a).toBe(b); + }); + + it('returns partition rows via mock engine by default', async () => { + const store = makeStore(); + const result = await store.dispatch( + drilldownApi.endpoints.getPartitionRows.initiate({ dataset: { scope: 'default' } }) + ); + if ('data' in result) { + expect(Array.isArray(result.data)).toBe(true); + expect(result.data.length).toBeGreaterThan(0); + expect(result.data[0]).toMatchObject({ + dma: expect.any(String), + parent: expect.any(String), + }); + } else { + expect.fail('expected fulfilled result'); + } + }); +}); diff --git a/src/styles.css b/src/styles.css index 0832572..a3f4b60 100644 --- a/src/styles.css +++ b/src/styles.css @@ -35,6 +35,258 @@ body { padding: 1rem; } +.partition-embed { + margin: 0 0 0.75rem; +} + +.partition-embed-skeleton { + min-height: 420px; + border-radius: 12px; + border: 1px dashed #cbd5e1; + background: linear-gradient(90deg, #f1f5f9 0%, #e2e8f0 50%, #f1f5f9 100%); + background-size: 200% 100%; + animation: partition-skeleton-shimmer 1.2s ease-in-out infinite; +} + +@keyframes partition-skeleton-shimmer { + 0% { + background-position: 0% 0; + } + 100% { + background-position: -200% 0; + } +} + +.dataset-toolbar { + display: flex; + align-items: center; + gap: 0.5rem; + margin: 0 0 0.75rem; + padding: 0.35rem 0; +} + +.dataset-toolbar__label { + display: inline-flex; + align-items: center; + gap: 0.5rem; + font-size: 0.9rem; + color: #334155; +} + +.dataset-toolbar__text { + font-weight: 600; +} + +.dataset-toolbar__select { + padding: 0.35rem 0.6rem; + border-radius: 8px; + border: 1px solid #cbd5e1; + background: #fff; + font: inherit; + color: #0f172a; +} + +.page-scope-layout { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: 0.75rem; + margin-bottom: 0.75rem; +} + +.page-scope-filter-root { + position: relative; + align-self: start; +} + +.page-scope-filter-root--open { + z-index: 200; +} + +.page-scope-filter__toggle { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.4rem 0.75rem; + border-radius: 10px; + border: 1px solid #c4b5fd; + background: #faf5ff; + color: #4c1d95; + font: inherit; + font-weight: 600; + cursor: pointer; + box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06); +} + +.page-scope-filter__toggle:hover { + background: #f3e8ff; +} + +.page-scope-filter__toggle-summary { + font-weight: 500; + font-size: 0.85rem; +} + +.page-scope-filter__toggle-chevron { + font-size: 0.75rem; + opacity: 0.85; +} + +.page-scope-filter__backdrop { + position: fixed; + inset: 0; + z-index: 198; + margin: 0; + border: none; + padding: 0; + background: rgba(15, 23, 42, 0.14); + cursor: pointer; +} + +.page-scope-filter { + border: 1px solid #e2e8f0; + border-radius: 12px; + padding: 0.75rem 1rem; + background: #fafbfc; + max-width: 420px; +} + +.page-scope-filter--popover { + position: absolute; + top: calc(100% + 6px); + left: 0; + z-index: 199; + width: min(420px, calc(100vw - 2rem)); + max-height: min(70vh, 520px); + overflow-x: hidden; + overflow-y: auto; + background: #fff; + box-shadow: + 0 4px 6px -1px rgba(15, 23, 42, 0.08), + 0 20px 40px -12px rgba(15, 23, 42, 0.22); +} + +.page-scope-filter__search { + position: relative; + margin-bottom: 0.65rem; +} + +.page-scope-filter__search-input { + width: 100%; + padding: 0.45rem 2rem 0.45rem 0.65rem; + border-radius: 8px; + border: 1px solid #cbd5e1; + font: inherit; + background: #fff; +} + +.page-scope-filter__search-icon { + position: absolute; + right: 0.5rem; + top: 50%; + transform: translateY(-50%); + color: #64748b; + font-size: 1rem; + pointer-events: none; +} + +.page-scope-filter__toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + margin-bottom: 0.5rem; + font-size: 0.9rem; +} + +.page-scope-filter__all { + display: inline-flex; + align-items: center; + gap: 0.35rem; + font-weight: 600; + color: #4c1d95; + cursor: pointer; +} + +.page-scope-filter__counts { + font-size: 0.8rem; +} + +.page-scope-filter__regions { + list-style: none; + margin: 0; + padding: 0; +} + +.page-scope-filter__region { + border-top: 1px solid #e2e8f0; + padding: 0.35rem 0; +} + +.page-scope-filter__region-head { + display: flex; + align-items: flex-start; + gap: 0.25rem; +} + +.page-scope-filter__chevron { + border: none; + background: transparent; + cursor: pointer; + padding: 0.15rem 0.25rem; + color: #64748b; + font-size: 0.85rem; + line-height: 1; +} + +.page-scope-filter__region-label { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.35rem 0.5rem; + flex: 1; + cursor: pointer; + font-weight: 600; + color: #334155; +} + +.page-scope-filter__region-meta { + font-size: 0.8rem; + font-weight: 500; +} + +.page-scope-filter__dma-list { + list-style: none; + margin: 0.25rem 0 0 1.5rem; + padding: 0; +} + +.page-scope-filter__dma { + display: flex; + align-items: center; + gap: 0.35rem; + padding: 0.2rem 0; + cursor: pointer; + font-size: 0.9rem; + color: #4c1d95; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.dma-linked-hint { + margin-top: 0.75rem; +} + .config-panel h2, .drilldown-header h1 { margin: 0; @@ -191,82 +443,6 @@ body { border-radius: 6px; } -.filters { - margin-top: 1rem; - display: grid; - grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); - gap: 0.75rem; -} - -.filters-single { - grid-template-columns: 1fr; - max-width: min(420px, 100%); -} - -.filter-field { - display: grid; - gap: 0.35rem; - font-size: 0.92rem; -} - -.filter-field--compound select { - width: 100%; - min-height: 2.5rem; -} - -.filter-field-heading { - font-weight: 600; - color: #334155; - font-size: 0.95rem; -} - -.filter-field select { - border-radius: 10px; - border: 1px solid #cbd5e1; - padding: 0.5rem; -} - -.filters-multiselect { - margin-top: 0.75rem; -} - -.filter-field--multiselect { - border: none; - margin: 0; - padding: 0; - min-width: 0; -} - -.filter-field--multiselect .filter-field-sub { - font-weight: 400; - color: #64748b; - font-size: 0.85rem; -} - -.multiselect-list { - margin: 0.5rem 0 0; - padding: 0; - list-style: none; - display: flex; - flex-wrap: wrap; - gap: 0.5rem; -} - -.multiselect-option { - display: inline-flex; - align-items: center; - gap: 0.35rem; - padding: 0.35rem 0.6rem; - background: #f1f5f9; - border-radius: 8px; - font-size: 0.9rem; - cursor: pointer; -} - -.multiselect-option input { - margin: 0; -} - .muted { color: #94a3b8; font-size: 0.88rem; @@ -373,6 +549,16 @@ body { background: #f8fafc; } +.data-table-aggregate .data-row--rollup td { + background: #f8fafc; + font-weight: 600; +} + +.data-table-aggregate .data-row--selected td { + background: #dbeafe; + box-shadow: inset 3px 0 0 0 #2563eb; +} + .clickable-row { cursor: pointer; } @@ -445,3 +631,53 @@ body { font-weight: 600; color: #0f172a; } + +.dma-partition-chart { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.partition-view-toggle { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.5rem 0.75rem; + margin: 0 0 0.25rem; +} + +.partition-view-toggle__label { + font-size: 0.85rem; + font-weight: 600; + color: #475569; +} + +.partition-view-toggle__buttons { + display: inline-flex; + border-radius: 10px; + border: 1px solid #cbd5e1; + overflow: hidden; + background: #f8fafc; +} + +.partition-view-toggle__btn { + padding: 0.4rem 0.9rem; + border: none; + background: transparent; + font: inherit; + font-weight: 600; + font-size: 0.85rem; + color: #64748b; + cursor: pointer; +} + +.partition-view-toggle__btn:hover { + background: #e2e8f0; + color: #0f172a; +} + +.partition-view-toggle__btn[aria-pressed='true'] { + background: #fff; + color: #4f46e5; + box-shadow: inset 0 0 0 1px #c7d2fe; +} diff --git a/vitest.config.mjs b/vitest.config.mjs index ee777ca..5abb26f 100644 --- a/vitest.config.mjs +++ b/vitest.config.mjs @@ -10,7 +10,13 @@ export default defineConfig({ coverage: { provider: 'v8', reporter: ['text', 'html'], - exclude: ['src/styles.css', 'src/index.jsx'], + exclude: [ + 'src/styles.css', + 'src/index.jsx', + 'src/mocks/**', + '**/*.test.{js,jsx}', + 'src/features/drilldown/components/PageScopeFilter.jsx', + ], thresholds: { statements: 80, branches: 75,
+
+

Partition flame chart

+

+ Overview matches your reference (Total → regions → subdivisions).{' '} + Click a region in the middle row to drill into that level; use{' '} + Back to overview or clear the path to return. Built with Highcharts{' '} + xrange and the official React wrapper pattern from{' '} + + Highcharts React — Getting started + {' '} + (highcharts-react-official + module imports). +

+
+ +
+

Chart

+ + {drillPath.length > 0 ? ( + + ) : null} + +

+ Drag to zoom horizontally; Shift-drag to pan. On overview, click National / North / South / + Central to open that level (normalized to 100% width). +

+
+ +
+
+

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 diff --git a/src/assets/wrench.png b/src/assets/wrench.png deleted file mode 100644 index 3fcb2361ee0c852e59c70b2f4bec18ff92df294c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197714 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%0DKPpB&G%C`VUQ=8D%G-Zh`{*}c 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%0D7yNU^4z4K|8~gV%vPcg{%w* z93bQK5t|qq;t1p848sbZW=qMJ_Fg&J0zRKSN&3$;|Kb{XPkT6wpn&Oy_O9yBj~r8UEosEz?t6#AI2K z=~^>1CXDR1ifitY&G(E=W|OS{tuNX^H~wJurk0K2omsAN}all`qcv z6^mh3uUfyhKF}yPH5LQBfT}7UeCOL|p4s!r!S};^iOG^wy5aYtwhSC9qqoN;NsY@O z^YvUJRb2zVz5Eq&?i*(|dhV6W51u~ohA6Q%%>db=Wndn8Nugp{DVx>gxC@w^!1ta& zpwG>93>-e^AR;&MmrIqc>ke<;>MGcDAqzx|MD1m~2rD3UqoYCABJ*~Pq18Ae*=&R) zHzgT#?MwaUr&RFY4ACS>a+qj!Dar)T8L~^5czaMm8QvnF`m9ouPG6yHmW#dp)7Y)$=1=Y4 zWV$Ft{kJn%edFmMb~K=AjXMk25i=^R{yZ1$Jy>qOS{q8~lq;3Wa!kM2D~>Pe3eeCr z9^1rChR7C@lO}z^bQV754!M|1jO0?)cgl|ibpU;H4fK@2%kd0^b#Rs{2y|H#ZEYO( zrM^_uv!7s{Q8NNFU}eji7_`cA5Z00g~ON-K(`-{I*Os&{*B+V_^-+iCWu8| zE7=sumb?@)E-p>edRlaa!XoF?r`*ujwjwHnY2!}3#$w+Km+0fzVYDWs9 zW)YOs`U?ZZU7j&mI}%iqzlhunTgl;JqxnF;M2FIyXV5qtMNw^vTN)J;vQQK?c}e8I zL1)Y}59Vw4+ny8CC$L)wYoPCnnrBL(OgOyOnQJ;7FQPv7jVT~hnCs4))6?Jd0O;lA z@Lxg4wl&bBy13NWKr5re+y2!}m>jTGjwKCENGBQ21TvTsMsl^7Uj7@<9{`IK1W|)e zM^oyn&JmGP)p%fu9aRFNz9ef!K^+vP*L-;H*FX54Gq&5zq!19QxeadxFd;4@2L8ys zmnRN;+B}aWetoeq9M?-XVUbbU7%gRk`$S#JLNE!4aSil#>clr5r_xa_H_yND%Ew1h zYv8ieaWEkcWwTjYO5-nbcwS+=Tpoy^pV8y41kaE40!@YGn_E~sFyQoDKm&T`ZdLA| zdtu#7e^WyNc1gyPNW#6JBnghb8G)e9ntAg)D0D?eW6E`)ZxQf|e$)1gw@p=IS|u*| zDn@f5lA%R)Q0}_!r~2M#%7#vI`jI0XY$3t`9smO0WZm0F_l81K!RLll1LaH_WaMSs zX3bHS9Hq1kLnBn&URqkx`Ra*gXX67Tm}eZ%^mG&}Uv5S*_Tx30L>cttq=;d&|9y<~T(A!Wt?&k@a*6(lb(?!u zPJ62dowx|ychG72-He1sw&7_A#2iqxbiPE6COfT= z0XluO6S1~0acSQ%WA$1gggPL_xIA?}X;JjqDXZ*M{U zW^p_;Ns~55L~yfY`ZC78t8ca~PpkvGy-=OT z98g8b(t9;Ml+W8)k0 z;~D>G?3dS11sT)KDl{^9Mc&cH7X+lY|2W|+E}lKRdE>!}S%}MLQ733nuW6c56oW%0 zfn>xT%d>GomrXS=RuqQ7!KbQ!s%1tFG%p<7<6J_m47T21x9*%%mpFFXP{Cp&c*xzF zG){WW$ut=wsL`LYpc_AVUey@VB+}eT&J1SN)r}&Z?dJU3Im4DFjq85dYV}4owc??e z&or#t*4xKoySY$HL^56@Ngq!9a&O4Yrb8^@rI^-y>GyJ$ApSY%r;`owaPTJTorLjiq=5KF`dkHXD8NRs^PU^UXxXs9}4JNVW_E?ND0$V-D~@v)^JS)jRJ$6oK!JGlrfhU z5Af4>zGL_IceOWvH`TX1*Dn-wO|~hUGCSF9mi4kEm6w=tiI(C`YGDKvV(O2Fft+@f z_w4D}wYlfu{rRuHa>~cYL|Nh(b2yJj4&6*M{!vC6!UQENX}mD#;&X$E50jzLv9&bOnZdfy%+}-?CX-}>$CPBJVZ<9~$zs!! zQbE2>hsa1L%ft=aKywI)5W!jn1zux#IFmfql?m=hk`a>5`1ay2FLJsn!Q81s-YR%mc)2KS!WX>_VEYxn5IQboUdI zf*H%SX-SMG!qgl6EF8 zV44E-Z)`A!p0-RR4t!qrv>!b9(ZRB3;QqQ7UI0tiY)}Xx$^edKWa$j)caCIH+O=3R zfvpP^OOe^-C_?`B}+^?-i7TL5f4=B3X<+{kCG;)M&^a)kIzgiaR3YdZX2k9h498 zl{3(r!<@EVsGGt^{TdboMv*xmWT`BzjZ$fmFX$o=Iwdy}eQMXe5ASSzI41$6y(2qn zPso;K8h<5;U@%K^S3qhITnJ_N>vGpnVn`|Wy#=6y7<&Ag8;L!z^fiM`2O1^|aTKvW~^CD-*MO&RseO_`~}? zy`JZ_5Jy=i8R60f1+HEW3?3giE}$$>KHwTj^`aTOj?*#QKKn584GdJy9sba1h-O&( zW|lUMG;LYqK$p70a@X&JGVC*52I8qxqqMz2^&ewdGh>lc96_TNPJ$38Dsz`-@`d))wQi4G`tBA6qh84ci zl}Jp#)4uWYg<1t~dAaHbO}v;$i0G;eWDI?qHpnmc6Ksr@LL8U2GDUGn6kP#D5Wacm z)?96f`M0O`*U&Px=LD>0@b+!9?k!BDC^aC%2D>fj`iKUc0=B>iDDSI>XD05i2>Nl} zCCf6U$4_GrvS9sFiA41B#)p>fL20p4o4fQ4A2w|U5Fcfkk^xbS`K3>iOf2rw z^d(Ica)Z5yk(C#}KD&AA{d4EeRVoPd#kDRy&TxihaNbN9b%c=$W1o9^T&aMnYGPv} z4@B-Ny6s)KwyScvy?oG9UhoXe?pgPtb0ONeFHVbH*LRzf`wnqvcye0u`&A9oT!)Uu z^`>JGOCj7?j9Fs1t_+&-6PeU`@E&43UWySo*G;%V;kOW(Y~TCgMp;Ue!PQ4B0*^4R z<7)O~)>2uPjQClSVNF_rz3c^{Op$ab=C}R!__$tBZi_lEfT8CSi4)WRv1_?hPVMUehIs z%5#1{GsR7vB+U{Xf?(3R!z@_GOhpYKFWuif_xPl(&F5+@8%`wTA*?Bkb$o%ju(&QW zstim{fmZ}l4?lc>AFTUu=G?875+j|r5-LTbf>luYSiLJ;k2)IlJftd)r@6An6^&s~c`_5U3^)_&ADI0#SzFK|iVBeXrq6NlMLath0uFY<2E>8?No(Glkz~bWJ_IBq&Rox(} zY%m-QGTVJ9iVVTZT=bUcv1w!_W*#Cp*aqxLrR(kLD?{>!&4Y zNmo@0^-*Fvof39IWK!gdl{^n*~vpmsmedhbSg4D+RuxQK-J< z{NZ;WI?n)+LvvVabq?hkdp|J-q?0UhA%={wCdXw-TcZ3%+HZ!^*`QTa3Pt`d>dW%D zd*A9o&A&arBFyI5S}^*}&%U7c{+oBu9ds+I#igh>)= zO(kG&1^E7cK^V(T_dN9OsL}YXN0>XFHAST;(2SKdnPaQW9ZAkhbBskPTG&OQV&yR* zfx4N_4lI`2&}4y)_sZq1pfT3-q9!R#;qAj9)-8tW>fG>je-*;``X)-(gj5dY1(i{& z22Xpra_e%>Edbq9Y5x#ndUa4?SWOlStRI5ImR7Id)O7`dYkhBYI+`2g`?h&w47)q1 zg=yLz^|2&Jo_U(l!fUaxs>Y9iPYMySq?c@Atx=&ML6DD}^tMK9($~UvHQaC$|J$ZZ z885*^m^^7(;J*xtEipI2*-C6@k`6b-uZMxQ$RlWUMIyE4M78<~g73mR0Q$#!P~Uu^ zRMI3^d4sjGKm{#Hluxgf3xk1N-5dSYKeU$**HvmgEG|{hDQ9IP%6sPznG#J?bO^#7 zLximJQkF2YSthNBprU17C}M-vH6G{j+_kOOP^nV$iJVfvIw@Tla;YHmSsT=%$j9S6 zuM{Cp>nMNb>W4G`eM;BE`RE7vBm=QuK{wkeegxjfHJ!TrFpAfHXX7K^va^0jk#s#x zm6#GkS(!A=ah46f(8S~=Wl2Q!NeJ|Tj#-z+Z;A)`Q7?oy|fZ!CK4@o79 zYb6-_#y*<;#cSIQrPa-V0OS~oF2(Q=NbT$>OZHz}bBB?~K zw>MF(-kE4dC0F33J>a+N#+cGLJ$c@g!0)BA<5@|k;t-N~QRvTAtM%>W4=>b4s-blG zS%~S#(*J+D-Y~X}^GX*UjcQx+C5Gf&Yot+T#2IHf9Zx(nsvx@&haM{&4|j7>O{38& zS#`c_Rgi&nOTq|k&`=w%fg&q>Ya6hZ7Z4O6y&~+TE5^L|#w}_BDOZph+fY%Y~fn zvocRJ@pydZ&=igV8I8?6ya1m|mD~!%DU<}>M>G$8Qr~&L zGP;j<|KWR1R|Nr0luefX^TZ*jnvYg?Fxp+e6Gz;++K4TwhnTj=l4KLnoYiq05L-o+*cWR3=egq>f z@dTdXGBRezGc){=Bfcv$aVe@0UGj&1gsSJ5ol@@Mr0Z>DaRC|J%RvN5o{L<91m1^c+nYCXE0D*+7>{ zS7{KI32d5|IU5;!HsezS#CjZ(JV-V#gd+W>4dT&cjIbq+r-~LNCI?we>3FL#HGcD* z-4kuy`)zLMpt>9Nqla)+WoRf!lB8N>iJ_FNYcO}x5Kq(|WgK`g?3+pe=<|OxCiel< z^j3P$R3#q!l*R~4P)$v+AXN(*C&{>s`V-(k^?au7YoD);y{L1>3vFvcR6q{kTD1&s zF^A7Je|h6M=-1B#y1nbq_v9Yb3pt8fp~!5E=^rO!y|FAC={-ePTuBloq!sw7LI#N3 z<)!&A>r0_f-8)|M2GEWr;S)q5D!IXQBn^VtoED05j^i*wEkjM=%JGE#+t!cSAEAz{ zwNIY@S>x!ScOzcqYF*HOrC{gqlFxTvK-D=~kjJ_4E*Of8Ii%Ux(=F%t($wnT(`M z8eu`8D&$!VM4JYZvJC8F)qA&X_gM>c4Y2=w7ahl98f8jaMU@ExcS+_pa+c@_uB_1L zl2Q@flfV_!CH(v{RV%$8MbHdRsgfp=u4>6REp5;krwR~wd!WC7ks}kC{YVde{Gtoz z-eO!7t*E50D0_S5y|S*`@%V2ByPs{xK%DPyAMFp{4rOG42bBQ})EE!bz3suUA6Pkr znX9b`LKSp+hJ#371keK@xX-M5t;x!@u`36oCT$u)!*CqBRME;+bps=S>{3-e0pEsq zCYmjuhx&!nEs0)#R9mZ^zC2hvXQSa}$XM0H)&R8_@P zLqG$;M2*~o)UNI6Rd}X+&b~SJLeSxL7~jx!S|wFY(p`<`(0I>ZerKTjt5%Dh=PqWg zemoqT?TMa!{TS2p#!$y!3<-SEXIfeX9d7D+%efsY*aJxK?*|6G!MP6xQM-Xx3;cQu zyW+!CSkk7GPAWD$o)rybDz)OG-nvXDfIf;=a^uE)tL?qkIQgjd&O4t3)@G*A$kIe2 z%gNEtY@OJFhXvHn8v9os6+x0eo6BPtiTJE3LEv+gOxFAK>@zI_l zjw_%>CogyZXkqt{rlKIw1659wEUbr+a6Ciw5QIxn=J2V3249mDKh$l;eSnbLiHI-FBk(pMZW~0#kB(z>WJ$ zP;*gL=9<4;JwEVN55-s3b@1Eaj5T^BDrpq+#$k}oLqdV@VIXoUf+)cv144nIE)ErtFUYu-12JnsHWQPuN>)~=X)@1o1!R-AhKg5U6}1O1 zEW(pH`7ks%*r*@cvJ-`j-Ars2p8|`D|HEfK`^d$!MBAHIlT#(o4#?(!BK>TTCM8~! zE|zkU6a;*VVV0dcY2zX(Iel!$9kKuWWHQEP{dfF*rG6tBdAr@8bW#Rz=Uyl}w|^Mx z&35$0Mt(SSmQ43OI78JM7guOMB*@726e^RqMECl&_0ui9Z-pkJSoG291n!0DQW1N;^PtYF-C z#5-c=6pqt%VFTmht%gyw`Cgw7-LC_CM_2@A;sQ>piXx@db;y^k)-z-ZT&;3t5N#Y} z_&DhF(AbMj!nnM7goy(E)}$3pm$72C`ODBi?JJ63Lnr>vj)6ler{sA3)~Bw;^O7n` zKk8rQfj`~Ls&gTo)>W2=2aQw=+@+!onKAv?0&KP zRTEn4S`)9W>_LK;F&|d3B#NBAO$vGxJA~^3Q0hGiP0xyNt?qB=G(LIfcw_Bn^_G8A zC}Yd2id<+lGVC}cuyI|Hv^~hwd>M3x>9s=67}jFLZ(Q=D8ek7D|IIxjGL82+vGq z4t?_cf@LFcy-|O^wm%DQ2W|N(py@3r?59htH^#BYDs2mCg9yi z19o>q!;oKE$MK7u(Q8+3PWy0+xOEAXR|ZyDRJ9yM%;#)QLmt;#O|+yRGzJ5U3u9hm za@7me2JfE;gsv>gQ**wq#Y|Pk^7g;Bb>dNi#tVhQmBU3f998&&M6+xx__p8w(Jh*W zQ0^T;BX&};n2T;Q8=#$yfAa_Ln33G;QtGvD`tL@_@JQ_T`ThgZ@$+P` z19UpYqRlPS%__PS?aK3-zP$lhF_ESLAHHg^tiP0Y+}&20T9fz`b49EW#(sPO2L zbN;7-+b^9zjNvkN#Pa!|R7azU#N5-ZcQ5b!>T7@0N?t=&L!(ptp6Fr{PGG78?A@%C zN(x?;RbDRYSd`-}b(_l||J40mviiVd0KI#y1^N`vaVVW@IyvM>(ljYSZUF`-%Xx*D zEtylc?a3358}GdMm<{96aVe}BNmt}(210deZn%5*c{|lU`t|(=+R#)UpjDd9+{Ago zrNqbzLp#8n4Zi1y@VutS0loW6-oVlqpS9iiWuVr0A0k~X$Z}Qnxvr%tX-VuF6*NP) zQU-vI;{xal9)S)&Y<{@$D1^?NYmLQ|_wWDwOntUEbK1L>NR;ueXtZtYl_^`cEN%{$ z<8ehA>c<1GAR`R`?4_$ghJGy-LkBLB7zQ}A{=OK?ruvc-r|ufPy-v`$>zKD$_6Hyw zdwb8P(&z%M-&M@%V$q;uchf#IQerv~`)5n;c#0P^QKO@pu3%BS44G5rGKGSSWo8mU zGM;8;u+}JH&--<}fSF-OS&`D?m_S$sSlv;KlZpIRp*pj5;>^ywzxpH48|b43GRpFZ z%K(kbY>g|6Vm%Cl5BGcWbvxfB}q!E2M_jG7-0(# zwcEH4x10Yud}jCE$(^0A&P`e~m#$ZHWC`+#pja5XreipyMBHpED58R^3WpcuLY^<% ziI8`)wzGeysnx)Sj#>j#39SlojtfBDM2b{#TvBn4E8}V&)HWV0+)BZ=jr_%FXQ=b-y5fHFOSnS)8{6UejBPNA|;B3 zggW^W0Q#Ueztnht{)<4Me*NdI6Q%prybOG6=ys%n`c+9#P{_+vpoEFTRi4}S5ed7A zOf4VGgVMWyDAe}BsyFJ59{%}~H)pruO;w(XS{#8*ZcY&p5#EmHcN-IZ0rto{z%Fodyn<^hnfBnCS|A-Z$*D`J|_yURboW8{hQy&0_aI682rZH z^rmlpuYWwq_TE0mnwS8|ogx+UDn(y)B*w91iCoze^qhdHz&A6A#8d$RUyb*4W)d@4 z-5Ug@S$~=U@oCbG$`!GVqVF26VzSKT6>hqinR)u#;md#h?qv6quX-W&iJYt(q-7CI ze+mL3OdB)_v~Ld=9T~@QOf4389K8fVz+44U zG8z6lJpTfy0ldIva+~iSJ^rKa7j;HHz;Y8ZPxx?9l_30lM41QBYyZKT=GoVS8Av#% zFJ%M`g6qdaCYtXBGJn|>(-bADzRu3ML}CU&4=vTvl#Ehq|_@(GlGZi=6Ze}cAQYxhpq-Wh&pVf8wQlf}b}0Q%Ncyf`lZYn!in zW$fm{>4QC8q19-AH0PuaUJ~4>Rf#aMjx0oMEcW`@h!`}bOXGAZodjVn(x3Lz=T8}u zY%rA6HF4=ZZDYj$@(<=^Kih8!|2q~Z@fWyxLru?j z0TIMx2^SPq!ZAM4JQTYA4CTkyuOANtzS8OE5_wte$pf`9Hqs`^N8dsQ@s*TGhNtbg zZ}!mK6i8VBJ#ezt2zbMne^f^^n|8fHENbGC z!Aa57)ngPIy=V5m)Seba|5ZaW9DnfbWKsz-``iVkQdtos2g5l{u%wmce~jjIeQ&Q^mW7<$ zqvrU|3?y(nf$g9jId8SiC#e=gBhfW|v6$cpnL}2`wosIL;9_HefnWXcy@NX1hYDmk zNfcKoGDb3K5MQ+Gl9ZrEWxnUIAmCVat_QcvGnp3EsSWI3N&-cL{@FW2AM<;9b(116vGtj6v9@o53 zCr;_SnZ&sy7G|$Z45dsbNxgQAHd_5jqIy#vPyhHEk(a+Q?oTuCxfg#|R92w= z;0K3no&ya`RWPL}A+{^YGM}?#xsyu}g+!X5-wq?3>muGvq%(V ziObkq!^gYdU8wyb(jTM7i@lkTKA`$4Hi5}S8Lwhi-sS=HYMHl*g?D$}c_HYYFL%jO zG_LH6a*|!dfXFpJSUvtH$8q&PfDYt+57^iUy8l5}6onG@;He6EMLxZ`l|kF22?YA+ zqd;S|UVr@fX#F8-rw#RhM!4crL_tCqG?VKjMf-j-OGrswPz2QFGB>xiZz?u;+8Yi9 zJ`3Hb{d;|Ma4_Vx#hYB%YBmcq@yvz87rwoD(>sV4;+;Jf!D|xjbOc4xWFurc9qaQu z{yV{rTe05%*Y6+k!vcU>eJ(;W6`Y-y} z*s1Twl<=p$A4%&g%rdFqJ=>Bc8M?+)kf!c${qndXHfgYNxT2UGGU(#w-#x1#E5vnW* zyk4zxc}~f5<$~SWc4OzAGcRm>Z&Q%TkyNhA9L_;T%J9vvhrYVrP`ln8I$qnqBK^d> zVCP|ZxwNGkrC5Y@sdQRF4VB2M-Y$Rp9M|L_2Ab!*(*bly_W9%EpVvJ!RH}AP#spR4 zu}i+&{*Iul>yqyF)6)u?x}I+}^>1yp3^4<%qm6~o4b&w$A80Htp7uV*Ap;c?XWvqr zi9^IeV)Mzu%#j|u8OPLIe%)|h_EVC<#v;pS+uQwSHsvNS=0c&$!Ep=9HDKA*^dsCj?4 zb|)e1EeSP6w$SEfcq#B)i@=d|E>W)9_`C0Tt1q1B;kD&t1(AQ? z##Wg}w<_W{1JBmS`}O+pb)?l1n@4^+w#-d0lVM6a6-E-5G#n->0Y!5`Ipd3+nVZA{ zw}n7&d{KMn`tIkCk3O!Ud{p;kRFe|;uK9`aS6>xHNs?SwRUy|yq~|k`i_lGMBuXH< zA9-JV@t{8cFc5ffAT;W=CGZIXBd(pTCOSKPJqH6?kpBTnoR< z(o!zyPiEit|3xeki;%(gzxPL=@?16gSA?Oy_TD~+nxKF3z(PKpmemN8f)OJ9tKSVonT(O8v_;7U6hJF_4 zwQ43`1!|@Vd0o$g2A=!N6W#Az{*N|8tuys2c2UL3Ru5(pRlZQDasYbh%ucJd`^z)e z_iYYa7UjF%k^F`lrdKqP{U%g%Iuy4vF z-+%w{z^=E7Wh_{h`i7(`G%0D4wM_H5oCqJ1(iJps)Xv1wRlO(P;{Av3pPv8Sfk&@2 z=1*Q*{bc7Rer;Uhdan59=Dqn}&&?JILTQ#STxi2Jmwfr<7%7gwE>P?b#Q04$+1?>i zuU14lE3*H)mqjk%VkAw5UD0Ju-3endfl4v0ZP?n|Wgj%%9vci`wOWV6GA*=F2ehOW+#R9FGJ{-pwt3+OV?i99a7D{m^x&>5m`p4jkR})`&umVn|BS z#b}BAv}CHFgrum$SQ_Zr0$;!rGxol_%IV=p^MeNuE{;BWG#^+D4A$GGqDub4;WicD z>`XN0HVL01e_RZ-S6YK!S7E31CV37BD7)hr|F-S+KkCNu$+ zC^#lb3c!;4sJo1jlpK=UVEe-_wL52zyz!6!h-L&rkbl!3e(QAr+eoQtts-fh!fOUr zl(?LLBbQ!H!lSA-ttwTH%al>O6qLdn@!SMsO_z=wIj71!J(8kqOJ-Eh$pZW;Bo3We z1NM%>>{*7dqhp3ZXHH)sDbb)QCrY`LM4A#!!-~NQnLH4=%tBiN?M~nDc6WfuJv#F< zkP49AuLJ1whvFcfk(u(Ip0~QXWWI`5Wz?S~X;ol&5bS&Q+~n%ciM2lm9f0i09XTS0NlKcbBEjqmO}mi_4V;*Mb-6;rBHgpF zIJ}kkO!H%}zV!YVt7p8&k814O0J$B-)*xktm{ILuanqp8(x}A;JjSj@-0p!_;VM7FTWHF z9&^LtyKImMY$_X(Ytte!C;#cVNE*h-+Yve#91qi}^QUNyZvSB~C5dL(VZ~(Hxf&fe zS8kvG1?ce-6nD@8ZiQ{{P4^x%(<}rz1YSkAkG>NVNS5Yxm*J!-Y+6*4M1?=quBL6t3{5VsRsAD{6i-~B_hdUZ5?CqU$M7wwr# z2C_D%H>B6YrKqI#;0Ycts(86sB{&}4s2M<$dur(Z@Ni(irUw9YAn3fVQ}U0`7F1d1 zUiQf&IqrFIroNHShT; zTU$J*q(#&-=y!QaRNNJvLJx~fI;OU_$0xY5((0G`GBp4GnZWe`2(|&#$``;0Ss`^T zb&(Xs{_q~!J9Nbrg?NCM^M!nV-(L##KsQ3?9)0`3;ltMsywW)R@bu!~`=8;RGRIBF zn@7CShIbCB!s@w`J-jkIFH?Qr^!J&2<9$B}I`B~`kvT6JXpB=*(G?>djIlwAq?|Av zJv;s$l4y}+k`8u6(gr2vu>&;A_L?f2Tu0Mc@7zrdxmosKjwKC953H!9Pg&DM&$La! z8_!FYrsWjNk~PSsauqAsAl_C$r$Z+6K2AiVJs3gcap~a2f|@tGK-+~O>M<* ze7^JXyJ(AR=kokBD`)t|O^`CQimO%{)~TzJj7k=!nTe=x@CtF5&)}U=ynv(K>F#bM z_f}Vr56sv1L0_7(%N&MhKpiZH<-8(DXpSYM=_(p%t{`J=&hDK2)y|1k??o<3D zgr?H5i2t>#V(Hf5@Ar#r%+HEY&!do8PNg8D_YU<2lO4gxT}obfcqQfUTc5s`G(>`D1YK}dilKFQ>%`dtU*#0MiVG6v)j|ybeTt|O zoz2e0s6|aosETY?t4E&>S(Q+7xpyZHy9;K8cwMU zDaqtTsc_Qs$tnQuQ~69j(Hz_H22guL;CgFwv{j{-p4tig@EoUFnwZl}Rf2!13i+Lb zq>r+;E^vBcZegsxuRHAL|_lveaAmxw1?=2Q>8rFXnDzyA8Kc8-IPUAi)t(4}x# z0`9hq{1PNujRLLej7KYyR7TT5TcEd$LQg+BeD2`s11C>59-R)|udg8s<(k=s~d-RSTeM||UNy?%b;AkBX3?e=~b$blc-lX5GTp3@bX zaHm^hL!u1&?6jh2jJc7^m&61|Z4gv1q~0@y*Gd z-Nyqh1b&99LMzfkb9p%d%ifYvn^ZJv0sF8dAY4KfMYDAaQ*(sfqqD1sMkU z)ga&Et+^U<(h1E6I)~S~uLscP^d!DzosF7NRn!%2LbX-Z@wFO#VPnP^U- zA9nKK;n9=d9zA{F^vOqSwfWFsef7|qcLkDqzJLq7vX?7#PR$|b{B4f8-G7^2kFXKH zpAJjE|H0d_Q-tGZf!dAG0+lvi?(29v+ktG6lA^@0ZdeJQrGkAyg}KYfk;p+Dm9^N+;XPb;DZl}mxe31ka+45cM0(9j!-G;U&&Uao$dzzG>Z zude~F}L=NdZ9we(kS{lVL z(jNWe)PzYp=FmhDSOb^CqP&g9&;sZ?5b0<)Z@3M9))_P(J8)=@D1bIsY#!2(0NeqY z{>T=NOA3Il@Sup|bF-7(Ctfsn>xnm-!7WI=s;*dC>tZGd=G6vD?@yjp^XCV_J3v?z z32Jc!-Sc9_b=0py_I)@Z(hPu}Poj$z+jhpDtJMYr-u1_Wlil5uzxw=4w-*@eM7`F33e`+5#R7m?!LCw&sbRzHs2=D0@Z!A2uKcW!fb%!fsD z8s)}wiPPT0d-2Y>t^*d&44sMwBiUfE1ni6jqNtedY$Rx8v%oy=vK_&ZU~e`SrVZAi zQr~}F8|rt%r~IrNi?Qk6fBC0m@pq@lbi{TY2mYq)i3A@c58e?fWM{6HlNt~ z%~)XP<4Jg+-TPG&BsT)xhKET3T|@(lNhmy5&ljUV{xO~_6NKujn8ktUF5AeQ6ty>m zhFde)c0%(2`lCZRVK&O6MyH~HSUYe!SOXShBq;L&pU3fhV)Mp--8u2%)|s^oC-6cP z<8-U_&FH>RsQ%pc8BL0LHewQi9^cy&^_3t*5hbQ$qR6t83(sedf~6pE+#aklduHp< z&j9pVV9gu*U}53&;|TOwoR>f^ZR?fF?P;xRk))8BEDyy8$EWyml}}9BGbp_`7Ed<@ z1FfTl`h4wh2n7GkRDAZ^p;=BXY7{+tu~6;&ZS&rPgR^*HR?mI<#wkh+wo`2CU)Ytb z>-c+7`%5~@rbSqn^wsmnB8J0^k26B?$heUr*;8lr%1bdI0RI2=x9f+$eKu%>$*a9@ zuPD>kh$E@s5AL@A)yv}g9Wzb3Y@gZh41rAPr$PHxHCUyjz{mBdkmusE$`zxSw{`}A zSeTkqRXwL#(i`S>vODhTe`gh3GQxJKZTbXz;Kqb9e!bu^K>%IdJcj#?Myk``fUAxj1MTMZu%kG%$;zjH`Id z@tfE8H26M21{<{*TiB2<`Rppbr>Tww6Z&(19be3F^`L0`&>1nJ;wy-L>K;s3Ee0xy;|(rGj*2C_Vf$Z_~;SP&Ta z12Q-<#Eh(v>HhxMtBzyR$+NHc+_&FmB_G!1O(&D0n~n7KnWDoupq(8+MTFWR85~j6 zQej%7tZ`L}l8T~V#d0XpQ3v#I=8AF=8xO03DA1`+c%C{b0CUZkIaN)>KRZ+VcoJ=j z)KObwZKsvqhnqPCbfsf1Gf)voH=P!WxT`5Wr)9k;;ZjxLXV(tJn+s^zYHNsJy&m}7 zLk>U>m*#Ax3=dmZA-Cfaj$t^is;H|K;#@&zF}b`ww{Y{%F0<`BMtP%Cnubfdj!b0B zpxC)gye-stZaj>N(7%5L`lc!doGjsW&I@l z3!&B8Y9R3OaQD$}@A^F=r)WZS9C8D48I)05I)+6ps6xepjB`++62ED&{n530Ews5g zceCz2cr-e{2%u+#4UNMej5YUw^IY^DJX<^08eBdplO}uj)i^R^-CE z6BI@IFKGXIualH?Q6N*xB%`UR-ASgL&Kq3CPSG_;lerD zqO$C`A?EZh%lhoI`r7F46j7ka(h8MzSvK|HY%(cnm6t|35Se5B9WjlFS~R)LxD@2x zt7d;#%63E|lui!cIQFexLNe zd~PTua(pfiwGy(TqJmh{aCh$+=-y6SqKf;7d`^;d*HQ{5rYi~>npBndO*<#g>?|zo zcSN?bYwN&e_)t{PC=oLJMs)OC)KFDif)7Jm6a=9r=$eWH7+cNF8q(?BZoT$J4W7?h z0~s#=dTSa7+AXxk`AXKFWZ^0&R9m;xwJ0tqz$m6}p72&*#NLs|sf``BlybES>Ju_N z9|zE%wMXszL9MkU-e$bjm!nC@J#OflBL-<8bEpwh&?m4xSP`gwb0*&S;`DqY021-| z*kr99s(GWcL>}iw^AxSP?z>WQ2pSp6k6d_I!Q20MaeBV~iXjtRVoVn~q*EAPD( zWXHW}5vUkQbx5Qv%P=&ZWP_CD=4|J!@nn(;$I{V%W+(yvES$b->ePcvN!LXkHy3*@ z3VP2)l>t_yD#fILX}G1C0xUB_LbI?e3#!w8quyH)>cp%QPmAojV@cuD1abg^XT3=guB9Xo$r4BUry}oykPcb zt#g~WxVP7Hwns(olEB_)Hbc8Fp1O(ILL>sB3t4VDXeNCHh$kd!hZ0l?KCldt9-o?O zLZsK{155Rq7g~d5{qNrB*utD73yw*;LD8_RUZzyZzSf@}a^KTt@JAx6% z5Z5E${4S6<(eH?=A%rX9ids}CvSKQ9kTpa!lWQmpI^3nhCLQh;6 zX)z|Lf^6$R~xnZb-;gZDsLJ|l6DwV<+tT1 z;Ufg2wCoDFh37f7Lgwup4z=NCz5DZl-P-Q(*wWIO{qyu%Xl{-;g8X=K)ElR&7?^C66G7~Co zKsnO{OHgIxBge<>IC?G*PTn7Uw(om#{=wQ{Xsxl?BMFRB{5;FM=%63Y8ary zC4e@cQzgv1+ycE>mQ_*^DGi;Yr!;X-z~1yt_ed77$=#i=P3}CKLh1$Ttsc4i znY?6(=`cEUWDG$vHYC%em#2v+j$QNt!<8nc3mM3}#~;_bcXnGhdOxXqYuABmEzQN_ zc^!nAu%Z+Sybix4cDOll!yla^nu1;?eX!)jmALZeXnuD zm(im?xu&*8`K4W{pc=`ffCh}B#-IesFqwF(?9E>o{n2E8+ZOA<4Dw$lDXmnykXKTDu6)55eRP@+~wTRVIv!N*V678jSk z3_X6_s5j~Z#~*u*g|;b$^kKqXiXufe%-K-Qpl%UZE-wJZE$d~T1JIuU$+>sBw$M2_ z+4gZQ@aSP+aOwSDs~DdvUk&h1|s_GM<5%IhK+jNunASv+6r5m|8HYDUiI}G2$YxiQ zuzVcZvV3sdLoEqsCXajQ#IxnaKHr&upD&>Ej_CZ2ZPU;&g)iiNK2SzEp3@5|m(M2_ z-d+9c6QBP%lY_6@@-p%hzzMvHm>fUVycu|5P50`Z=gt+$=q#ou)2y4OB!Q*r+a%pp zj7|d`N8O@)E|JLCi?vW_X?LknKVFCA-VN-%t;bd8FD{PnKLt(=@E-NC8%6 znMY^&&CQmn*!|C-X5F|k=GE5f^-w5K-;^P~ei}}))JW`~M7o!~n-kbzZ?DnY5fOpz zGQmhBYnU7B5z`M3P6JsOVOqithg!Br-SRixV{hB`d z8}%@J4b%<`3!|f(uM}c{ zYP6cqXWAy${`$o6KL@?$J=n~nbtTIfx?T>ic(X0=V$Zpgb5m8FU$@cu>Ig%AFT74> zS&B>-ulN+r1<rQGTl;y4>Hz4q_fKxd%Vo6du1RH_ z&k33p4D`4GzwSuGa&Bc`xuz4buB2 zfol;mMg}8dw)9}S;*vpNF+y$was-b2#uHongNaTK4!<7=oP3wBOcnTcXfhA6s-p{u+cH#PIw0Hk+7 zt-e3d%L@#)%-rx{pJ4MGA6>XvT<4=EX(SEFcQ28%u_Kty71az#;O4JGI|Gj&dOOd* z7xkH*?6moE9{I-Y0Ri_B3U&>X1=Q;Z@osZkYn+aK;gb_be^mby(fxcxhp$<{xg6TD z&u~E9Go6QS{>Mmv{v{sg_)Fsqa3M-}-Jp?;jr6n1vX8(Cf|rqP_!O+0jQv?{F?9cO zt$zG^qaOMM)@fjPHls;2NtV)gMdnt2nsU<;V^OqKva}M>(!EEgPX`_a z0uPtw=NFe2zqn^Byv!-KkTl=GWRk3uTv&EYI7~*+L@sJP?8btus7T`}Gpz~OsbE&Q z{Xg%pMv8%)&H`$|7_17&_{b7TR9ZfGicYRjlwqVk>=z^1b)(m{Cl(K<+DBp)Q3PS1 zK3^hBurkCn1>yc_(nu)=Ll>nAYNJUx2yu~I#=JEY=`-6JR6M6d%Ci@8O0l@13QDf$ zbS@8qs+^gLL!|##NbkG#XW@z>ePg7`h1eAaSW0V-7$ZRC*x(YA&iVBCk z@^bJ2A)&<=9zsnI>{}Go8%Kf24PN0gWsr6x#ojF~S6)k99aqwft4ak7HTrS|v|IW0 zR=HUM+CKki3Az0*eYqG~eE3-+kGiwF4yQM)(Sx{ADlL~BL&AXs8Gh3Nu^UA0-Z{{N zB}0)P+={s?AjoN>&!44Sw-ok&1O5s-;sDQ2k-?A1cz?e_TRAZcES{VogTds;>#?lh zJ9shJ(VG>W6r=`f9Wn&z0`GJberPC{`msd6ezv4Z%POoFG(?`FDisWEM0l$+ilV1Q z6BY$_PxYCc08%YV6gTpMzQ<(}&Ef8yzkC-m`oOb(*j8iYWSq+jpwCF{*1^!h>!Y0* zP5<-_laEh6IIJdeIBJ_hgXKTC-rZe87n@M`I}mqtp>!StCX~sm1YXu8PLV7DQoJDK z^ENM(HK0kY35N@v?;aoi_ZN*s_wJ#4Zy=UAuF7-R6dLjVpMYNL%;`do7X_MzRV@ay zY>;7AmQA~vSLu>^*k|VwnHk%TPeOW!YP|F~Fb_=ba?LwAJAHP7-(J@gF$+1E3`;5~ zS|B@BqNe~f7h+vLgt{o6ct0DwG5;tq8iK+QT7_pCdNSN3K#lbu_L*YNM~HWhF?0o3 zJ5NNVNZP4Hmz{7gOIp*WLV}tIUsQW(m+I&>#okzu4wJM)_WD^?^k1c1hYW`M8El%) znI@T~dV_cUbULb>SReg%xw?`cAF!uyt#^K6o7>9mwD# z+}62_oyl{;o@UF%ZRGQ=Z%#H&#QjbD!_LJzQ9hemA|Ab26UXHaE8hR07HJO~V*eslmGsC!Ex(EEel zV!R+tgq>+MpCogN%LXIaEJcgB*QH2Q_+rnrLHdIt{Q&B{NDh(wbcza3^!CPXcd%Ld zRmjd_haU(&+s?)+Y`fo|y7cCeBfg0@E0%lLFxdW6tlwpr^!ckKEDE-CivjkK!(W*; zQf?$QPKM9ZO1hr`39lIulBOtE8hWdwpb79ShHT`#;igP(phxYzbI)YR%V0<}h9r-7Q7K7)domRyDsp;idnvap_QH*<tCQK4^7?}YaBfa3ueB^3qq9`!#T<2d_FDOPbw0w5Yw2{1BJBpRAr8s z`{44sjTaoaJoLu4qmVtZi9A=B%GmtO)Nk8DFGvWjG4Gl|nPE-e%Vx=CCPKTBpdl6V zXFuIr(FCQL$Ycm0a#QimhmQjDOH1^mG$IVjNqbCQ)?U*DD-zdsubzRl8pRy=zl zU%2|#hts&gW+QBbiPDVWuK2|&W74MxFOY5<E zsWO91MBnuBm_@va35-SRiqE&FD8i8_kMntf$BC`Yn>SZKKK_S3*gvux9n5FAs+}pI zZTCzjlh~SBIP+|i{`v2<{ozgXvLdJ^wIWiGEtw(8g~urBib3&chksjv+PwLcZ%qvh z3|^j}|8hPw|9D_v7k=II74r%y;kVq5j=Pk!t&rjLx@xKyZv6xGeWLoth%DN7roMn;s8VRWv z4RT^7k&nC#x!FyMG(dFgVlwzrFnc%I8aty|^!XnA!h|r9I{)GLP|8+J*71`=Y?58c zR25N+u*(%DnpdQ>11ykIRSTOKkC84L35H$K2xdji4O-05RocLIjvj|ZEn|G!Icu3^ zjifY<6|rd7IS8X!)WuZ5r&EeuCrGGYN0C0O>yqoPxX1c}tlzxKkR>On z2-1omsoX|u5F7|#8426TyG;N^=kQ`Khif`yO-|Lg=(L1} zzo-^EB1h@{%>L7##C1<=98IFFaPDIS@?#hdZW*38)2e*pcNt=ywR4l)v~b2k#9 zhu}Agb|`};*F{aq>4cQC<4E>_%J2d}~&6xF01!&o3GRZljO>ZOIM=Oy0DSU^Ku@_1?p^{nwc9s4g|0s+VSecAgeB4hdNQ8 z%lOn>9!k27tHdm)s+vmT@H}N1xxjD|moIa10{{Ba6Rk-Qe**f$hsXq|;FGulI+e2z z%{6a!HWvar|6zZA|LX&CPSHh@A(cpy?ypd2Gb1fJrn0RuE@{cgA_SS{#^=2G0AzP~ z1s-<~?0x|ZA!lGYeL_v~rxKBa*aeOY(e0m)nsMi`^V{K_Eu!gGT z>gsCk98p3idcR=ANcw!ZwCqxDn1PxKVJD*NbpG*UQD?*%cR86%G&6b$#c#x+M~cQn zTwlQBSEDLLAOi|72W}~YhMIT-yzmteD}Z@fz>pW|iffmy+3>@-MXcSduFEu# ze78{QMGRf#LxFsfMbh#g<&QqBZ|x=bZEVo#&k2356<^zz+fe zhqOgrUzMd>^gcUjx^#siW1)UWKl9QL0wcsfpIpn01N5MPmnhf{(@F^tQUZm2tK{uO;r+$73!yU{ zL`Fx0fvS*;h3Jg(Y1SFTFK4eR??3s z2MK6zul@kl5SM!}pmy9)CItyr5JddWczdfAcEk*mS@M32=`vgQ&N1tC=WCtQaS7vzkqy{b&H+0sV0JBxP1fqzc>0{?%^+$3O-Ymw4$U6WPl0K z5lW|#6zdsNTirJso`l7TC`ojp%u{=KzWx|;dcC&WI(oJTD+rpXmAds9!o4xl*?@yt z!qt+-7Y~%=5^rBZJ-9W1{K1LF7s1iRvzL~G*Y|EWU7$+x$>$xxv17UMGef|i3@T!y zEls+eF*b#e=@J7sb7V}Q-yj92Sc&|s3%-XYblo%n`t^^0pXfP-@v%?{F)o2bO$IXB zbt07sXCu0|J z)f53g2LQR?gVyIBugUW~N%GU4vQ;!mK~c&D%rM`?5*(YnmzW=m_Im#PU|I-W9o7bs z($|(HJ37P^Ek0#CE`?3UH#?%2umr+KE?Hmh0SJ+WW&5v=jJS+g5i_rqdgEVyhUUv@~z(G2bSwNBLgK4`LMi&+r=FTqMJ#?yL zd2~1$+*T{ZZ%pQykN{9D2T=y_xI>1hK!_xDf4SM*K;f6NS4rm1>McE%y0=;pn8*#6 zT+NY@_^dndUmT@l`1G-t`@0C~VuS}C3(Q;83#`x3Nktbzwno_ubJI`)1R9;7$WXq?hX+wbu5EPGLvc`s{UFWrg0oTJc!kyh@F+4r3*k^w#p-Bx`LGmM3X++{ z)A=CUVu}V<+r>2`C{iC?^0TZYt+0xuNq&DBk{gcNVIiliRI4(OhJB4o%#2-LpA7GO zv!;#=i}Zz0VQe)CFwU}8(%EEZKJm%Y@z0-n;Sw%MB_5Z#_@YWsDS&WOgi#TBVpA2= z2*Kh2EHuax>BQUUOg_H;<@qlgjcDyWyvyMQe|f{UDObHgZ18}Ib$Znmc}$T_6W*zX zG*^?KAaTS;_iIN_J-q*T;^@&s9mC7vaPaoFNV#;87Z}LqjG$r@w*dSDRSz*K(veG( zcPaQkWN5W=`r=I)Es`I)6|iG3^$(1=gg$iUB4CJ3zR8jUXF|EqZ!%N1tP`Y8#$x=B z55tK)F(eRF&ooc~CM6pKG*A;aGp-aJ%01l@#SrO#VYa~7?(?*ulO!di0`G{TVVtQX zG;A=uyVF`~0*ZsTXP1lCTuZ{@`+%QW#h)l)B^E0+-+ui_%lp%BB-VCC?ryrIr#7Zf z6DliC8LBGt5YR|+lNWKRJY8lx%p|5Hn@A!8b;IsF=xsN$1{3O>5PX#jT*mJiv0igg3|5-@f{XXLtTy@cnB~$BR-)M27@P1EjZ`fAp+>V`=&~ zKGqRO&?rn!DDUJL$FU8OI)?KKARS7PHBK(Wt7MZ&6y9$?g8cL4`8`1I=iz{lEqV$( zua8iL%9}%EN)Le>QoP3EA~vg{=4;fDiAJ%}_c?Xx(CDE<6CE9+qu~jN^;sMeLW-hD z5#WGW#62qEcDXT^8P~-#Q|5xtFaiV+$<;Tz`B)$nqDScd0VegMlP9~n$X|6Q!AvLP zJ-|7B)#8STAY>Wa zDsBcC@?_{vfas^jPsWUjZBJ$5-4oc6c6M$S&G%e^7710AqU7Al0=(lY$DgixQZZ)n>>c@noC)$kOiKO?$vgCck1EW z^+yLy6i2r#$jO|9moZafaRq@m4f9)l@q{G7ACYvwY2`0JxBmWX-%8bOFyHzj&zWej zi7%s@HqJ_HZykS1H(gs%42?;N=thEKaxvT1O=ESoA_=6bDm<^?sHXQModh5k1Y2Ed zoPTub(q0WoqK=(iun2L3IH8Q3Gbrlj_!>#VYr%mmnJQN-ayZLvC&t>v_xnd5ADTD> zcJEkUMxK5tT~Z-oDzEhLj-bNnP?WcZRx7S+M2N`6xL7FYbZC_UZpNy>f4YQ?4I%ck zJHK?+;34MBvSQzSi8=f#1Hj!Nb1~;f<6WfA8+3}S+=@&s21WOTy&*a&CcqdOmyWp4 zM6iN*G0qb%m)KH7van%OLX5~U0KACte;vr_Je3i}sW*LCdtb&@GwzQQa%9>dHO&I< zIoIlAakR1wGHf+{VDuMTe+!>=B-%b{v1LjGW=5Knx(077qvyJ80)hyI1{%%kO4>s8 zJTQ8_e!jMIeC&gn$%9el+If$)qOvT~myvL`-7qbS7>{>MV7Mx)8ef9Qnecr6z4u@H zd(FtUUBROtcUl^cI$2BXN;ZkqU#@-F`&6S(CPdcIWpYi3_0u^BXR0cirdm+f4yN@@ z4O6mM)&iqn|1`K)uhqY7>@}ju=vQZamaN_5Pf%pRIWu%}O&E%EJX&|gi9`|Uo}(ra z)Fij_dF$w@L$ADYXkr3obTE3OlT+6=1wNwKnO8CEPuN-DP?}C;GP;nG#pw)Y+aV@k zLtuA@0-yBsVm}i|D#zr=?lU*RHGL<4@t2Aw9WoAg6 z8WA(04L}M4Da2g-9`175v6r90{HKf?Z&0F568|zp5;Pgh0rOjBaig%oLpH_`4zGFV z%Q$|ng7Z~U6)3-V=B_8pYE@0btNVQlJdR-q?|&yLhQj+K$8EOPkc$WdP!&>7Id^nY zc5Z5_Lk@~^yF#yJZiywNLoPu;GOtS>EO+ctr#^Zi&_MC=B z5afGByqL&ey>|D-*LQ0FV06Gu-U4cu*4l6?Yb6r%-m9&r8vSfiF@Yb`gw}N?LI9ia!lspHFwzg4Zuy|MF4v%X&1ri+JL&$5V9B#t%q+4m@!e>x=WG zEXemb(FB_pP$+C3ECK%fg;!7&_E1O1L^wP=eCf+P$HOO5wxb*Igq6=X6BdvZgR<=m zR@k626lD{Xai(7);8PPxn2S$;i@W65HUMLkkpL`rV^1M)uni(R}aCxz|AK+J3DK2py`dhN9XsV z(fWbW7bO-PyTC&xms5;_?;~9*p3so4G#om%XlDL&To7EqA2elWGLBmzOibi$ zQ;?Rw<6DgZevkvA96U8~`@;3s);2tsxTeLsRsW&60G4jSsO#hqb?94BI=TrbLGy0!n|I`)JS1A$A zV3LKt!-dk&D&&LE)X*jtmt=N%2xi ziWBjQN@&F*qK+bXmsCUt&Ulkxdr3w$b54w;mn^S3lGdzVztJ>$fkgqrC~d zy{Vx^N%Qk*v-{V-p7mEd-Xv_=D5mZ>q48(>Nm(Oi!R*Xiia^-ZNWd8wpokk?IY-cK zo%nu*V9@%Qmw(irAo8ggK}>(@eR9}m@$Wv*oIHtL0#E>_&Lmv^V2?H>?Wt70gR%gKuYI;72#Sb(HWfl!}|N* zH2T+dSa`XuEY7YZ(@D0J%s#O`N&J2({PYg!$*d)v5oL;y9cQ(zfJN$O&Jen2uaZis zi~+Ltd$&=e-Eiy5Z2+A|AJ@)*8QtyO-C4i8z*<1#??ECj^2St8PkfVPSq-upD!jKp zEC6ylJG(m%Yxj}SCr0a!m&3Q$!RQGziz#&`wzr#!X5K%Ow|cP4=By0}NG2dIKJ%ZR z-*6lO&S8#p(X|IDJpa$*u}B~l$mDX)2Gfu9!ZzYYDi#ZM0RpEg;|?)Gb8vtMT$09A z^|YCa7z85_NctzGGdVaSA{8Q0(}lQN8F@ZLKyYJRTedjAR3K@z#Y@1BLr%Xvzt|^= zGHHsM=MwFiF~L{pCz4=xVOM^O2m!vc?% zYp4p2#GIuxoFd4~9I9!jgY5>2omP8bwH1W${wTVX0Q9TmvkFr1#^oY7Eob^=77d+o zvZV4QiN_are)_!!-wf}6aplj!=oX7aN5JgpT07bN{nB@M`rRbXi;4z-Gqj2>F-g}@ z6lFs<(COk>G^X5VCO9sEJiYN%qw)A?{mUQ9lbO>7hWG;Z_PAIST~kPZf_^@-edyp#>)P2=4@P{ z>2n>c0`sHLK>s^aM2cnzillDka*UjNCd4rG$<)jLQy1atG|A`#fc@b-0OtrXk0)xx#XFXDccyLWD;%VRF#{$ zT#(6J7Zx5y3so>&7TVXOIFRO9adYb2bVcRB>mc7|vx)reuUbEuJczHgM!hlk)ArP3 zL7`1jbwv`GdS4GvUYd}_GS645xEDZi9M>S-a>+l1>!?#I`1O^kZd9ENkaKcJ5TIZKUC7$`YoyLPJSH7y(zuZGc?~Ptx z==R}KSwSREj88+_6G_3$cK2B31YVE}ZQ_8!`{(Ee@X)Cj4xKtQy1YIN=pF6YO=G^! zCX&{#N}g`Tf{Z6koW=UiDLyRq|J?y%rVoreCq@LyB||iLGwtR=&y2qj5p+iXexx!q zl1dF-JR>_sfM6H`oL`ICfz9c+L{)dl{>+*0fMi#uULVyef95uh`wL{M_Yo? zKg&W+&p)~RB$>>n=eM`to(VoZye}nLO;Ke+q-e^u2MC(rMW7pf3#JhP2gX@8U*%XU znMUFLN&{?;7LP=G_oA)qOTIoI_Ns!$?aZDyMPro;K)6}ek`(as;tDFhH@6O|Rxf-3 zL>(C0^4#q!x7Wkq>70cYVkNel$%Qy7aQ01?ymNhhVmYrI`wu_MF{#Z+?$$9hauafi zkQ*AZV_naTyM!&E*(+8$tvDNE%5h?Wal+9lVDCWx^mpQ-Vml-gdb3Z{bwG4C2sESD zKOSOYkw|1#q$)WkWJlyRxvbsa2rA-Hv16`&R`p& zpzWjfUM}wASje&XlWhK4_&7rEfAP1S-ai~co}OS4%2ri+hzlk{!HycVTkrGqeq9r@mxiX8~B4Jl?vWF1YY0S)45uxRMOiy8yl} z$r6_jUVgvz{)2xs`VLZu16wz(B|L#<9js>hyNte=;CQPqLK3TFjA3E~Nvj$zEgl-{ z#C(FSlYFtApR?)hu~y>&8fp4%BU+F4_U`UppXu>7qRH zmV-z(-}Io;Ozr+dNa^6{qoc#OZ{H5Dx9(cm#CE4Y*=#1pf}cozSdWrT=Q}YRf1$g4 zY~TmK{G~Hc$q_OYunmHkis&{a#x_X!HA3kIvCqvNjhDrJW9sJ3@!U9?U*nwN zmnj?@45RR#pEWfZIKS#3)gNA!R+4xe^CwwT!P)KRwZS8;Yh!#X2 zMxRMYEax+1QE?oHiDYh>tGLo5afxlKbgZW=14}5f$!r#t)~*ch)uZ*V_JF8AcmPIU zx*Jav3L@G>0MQI}s|adkP4$@t9GB4+VD4bV<#UMcF92hkK-KpNF!}4lt;qzuWZs|e z-2QlBK8-zDn#_B=!;?~lo}KTzsFFWQIpgGr>sFqBKBb3rF~y4^;#kaOazN(oO3$>f zqzwJ$BLj6jl9ddZGKN-N!X<^A`YOHo4z(JApoLPsKvt*k>GctynVZ+Ii0?1t?2otb4c2=<}i$=lVPnRyGU(@BrtkI6Gg((j1$Zzr8b9d$iL) z>$f341jAtd#*ziR!1PI3&)H6VlU&<3Meubqj-lF&4?DO|&wIZ2><^#f=?E1rm(bOW zWT954L}%xAdg(hneWnS%OlksJVn~q@*L?F=Z}nCAvKRB00Xh^d0C6kX>^A(Etza-( z-`o2tI#{m_MtdIxmll0RRyJ|g2ZW7}RR|K$HXxq@=Qrh*m9}C78gbbqA9~9UrLf5%znkPM6Sc^pD_?uK7FZ=HmaX7EnE&zIeA29PlGfHsq0xHgUil$1a@;>EbODym5314d=s}hD?R?)1# zR%QJ@Yh@+z_H9((YTtmZf8d#kUZ}O|wWV!N=2#51vP!0{@gjzlK{eBm)ha-_BEPTk zTK41b9r@w#KN|fJnt|n5E?Zqe7o1t|LO#*yS^uu^uCYkpLf`>02?B-rXQwgOR4^PX zAwr3Hr1VPGN@UwcM{2->N21Z_&Q5P@^s}D06gLH7-(BO@$Xw37m7!PH)?}HN+StEc z#qjQ+w!K#E=pl69a_CSvd_5cxY)533jGP#9*GQLMbpw?yhGArgpfTZ@HxQG9b3jCfQYrT)Skn4p9Z-`>w;}VyhupM*Ue}&`4!P=$|WA2yQ(O7Nj%-BBxF`rdN2-GQ1$#swDrCB5mP!?xODtDg!kTSY}^&6F)^OG z$H}U!&2}tcCDCzs6-XnGV>s)_lU4Y!*Bd*Cv#rm}%#00Rs2{Jj&esl{o=$wyIdl6vj9y?> zV3sbak_?G<@?~c+1$ZqMU;OkezUYtpfbd&rp@*ln9&CKMw|8U@fZPrw^~T~t+`<)r zEwa4nu97lI+2R^W@=}>Y)2=J+VUFi^+IOoDAD_B(r~?^(`TF$>!?nYS^i~?q(lyT~ zOT(XD^A2w{lRdsd$`0LecnCWbe7yQ@EEHjG93v>vpjKCNBzQhU=3JK$7(#gdSdOLz zrC?-YF~Oi6Va>tkPGoF<55^OsK&%o5qrdr^Rl%l=6fr^wkk||HZYM^@QtnhgMZ{7N zMQkcU#wZ)1MR0!dGB00r{bc9i{QBugv~OWT}d|Qhoi{m!=ABr`6Rer zYdt#uSrXWxR65(bkCjzisTK+>TSVg{ybAuup^Yvq$9g|F-uqhkABr~hc zw1_VSZYQ`DGv1YB0ydvHbR$RTLv&^c38P@ADH)>s+UmtcY$9*z{TY(@DAJ`9`y_os zRjEv-;sQd;ks%wt#L10!(Gi9Kk0*FO9-)3Sl1tfk{}dg`Fi63O4lx0m`oZ%jf%fS) zu@AxMA2gGk!WI!ARS4~3hqvm-RfLl8!)Ftm#U?L@AGEIhJKB=)@Zj0617+*=rg0fg z-Wt-3OhE<$2**`DeSH|NC_KB+YJGvDyVdRO;YO`?6iKoSzh6Hd+&xl*=Yww9SifXt zlV!oU|ELvN`>w|;;xMTMrJmSMXG|0AMp&sk4bRuzi={t<> zX|m!hDZ6U|McBF^#xY)`GYVhi%Vp&jsZvBcHK!2_Zv=ylnVGwjd*LzEy4#prShS?K zL>a|*RMQhkVZVLV!mE6>y^J}D#UBELv%_PFG@8zlc{91wIi+LSho6_u>j$ER{>e0vP>xy)pAGW9}e^)Ef1b?-kf; z7Ess|01nN|A3VMGUiaiV*^-G6(rqCtk*OOMikSMbFHt6BPDKMb(n>a&NG9gN=zG_L zk5SFH{#rYiT^c@n*J3eQ(+F~HZGTNjL0sQgU6q$rQf-&svn-lxLQ4#4^`i*8kB)|K zPjoB~H^LCk6CAL+VmY7gOr~cSu=LXHyv#6NYrH~GFaNwh1~{Ey`g1z5>7)vq@l|qY z=-6y5x8_C!J!F%_o5~tW#NBv-1k`4#fl$EKrDVxn_5qjVGN&7j}P^(h?K@g1o;BsM81+KM*rlEl?0sudB%F}5j%A#uGlCRWE zAgBWX>2Cee`C9Ah$HR#5?G0W)NOvKdW>>hCqA00IP}D?XVhSem010u4R}WN3lHTDX zt;T0hQKG1|M(>r_w$Po`o_1(n{*K~IZ6?bVEdS|qKw$ieZ8N+`t`RIgI$gvi3!BD~ z!mAgdETJ(RLEU($rJCA zT^o@RAtunk_qsy1Na|B`jHGn(#z;Iu2)eFkY}?VN-d&|m#(r=Tdl8V;<==XWKD=1w z3rgI-==b{-9Ft01a`te~9NFazf$%r6y^?eb=GtcLW7)|Wg>uMMx)uOO6tY0*j|y@R60$&$pAB4A|HmZ#w= z1kYkY<}3`e5_mY;x-#<=ov_bakBe5R#96?VQAKWh`|=-dKV6B!(}ZuJNJW)YFw7=_ zX={aof?tyk_ax6wEMhDq+s-Yo7a9FheP?hoSev}vc)eC%uI*l(Sw<=;R7GGIphobU z-{9d4wC7e=3I#Na-RvA}yF=~%7Zax@PR&g&%-ju!=WaK=N%mZyW%`@VM9II{lSt;% z+sTq7QVQU1UFYEx{`};4=z02$zW94nR78*oNc0f-0oaqFI}kr}4zWtwg#Q3zK%Bqa zvC67@t8!}c$bP4v@Slle zrc7jPGGzl0T&23YeuM!LYg`WAP4u;1DPf0u`q-r6=kiso56|Zd)e@UP`1H98y*tkV zPk-2Uvc`o*dx4dA4T7FpApp6r67ltan}$>0WNlisMKtrnip3&=I_c)s`tEMKtP}p} z(%a9~dTWnrj~A2N3M-kajC7=U68^;kG}6?{zNT81lJy;)g*byvT&Xoac#62x{npV^ z0SD}!J8Oj-nfXfl%fry>5 zZ@6m&FiVOdm=Hlk0!7*<#CLJ(oX0P2N^^ZuT;vsXALyQp zdW2c_$$a8&Z713bx%u^-ot@zN72xTQk1i&&MXqSF{%Hy4c~J-W#+$0PuW2GDb=*%& z{$#?BT^qh#gPi{D_>RKO(UMh^s@zI4kBWv#0CL}9bdLposY)*I@G5q0NcPWt+FF+S z`bx?0L^JPcrakl9%_mFq?XlIt-q((YgP(>QwfgnD(ddQuKP?wnS*t`+BSuOG*29}h zna}_W;2JP6oJ}4W{eG<#yf$`r=4@NPxG^)le&v*uEfyqy=iSz+ZqGKjyVV3{nMfo` zm@bftE$F0R#^ckh6uFiYWIj$p!sgzifr}Di$c^2j-}nK;&;Z@(l)!YwetwL%_y`>#GqxUK1nSke z9{BOkk*C+LHCajGn#nweOojtbds0QaoLC$@KAC^g%)kC%=egJZx{toLgFL;_$+2kI z7bz%eI-4kBo5fa#g7LUSR74iniV|1E*z9(5vWB$3$2^U8JH#Mh$NJ;Dz!eyFL(qg6l3(*-@xJ%`UYrv)osoYI{OAYFcnBhAh2p!< zFgHV|DRYXVNqF-*g!0fYbwVUFD)~PTFhVXy#CsGWaI>HOh;Rf!Bd8d2<3`{I5GzO| zRTBzy_0x`{qlht*$=DmtYDmxxGja?2X{#0WbQS@^NeeBkgyE&CS;8?>^2M`|GOgtH zg1343bpUd3JRUyUt?ks;Z?{kjSunjK@fyqXko5eDtQf{kk(DSB6IqkSCE!FQ)Hnka z`m+W=+h{MEY`=88)(H2ujvgIr=F0%Xusknm;w*+bBlop^8TY|a$R?{j-OCud$iF*t z<-rF#Pm>RA~aCy(o%g(Ryp|wIj#hKcd{@aT7JjZ=%8|NthDqf!4HQHv6#$IAb#L zq3HFpjeU z=hi>n9X|czNXm&Yv92zL(O1U<9dz4e&3N(KiHvqXrDoLv{5G zm&6khr=JptRhpuQX#JfL(hWV+-`_tTBl?e>Bq^7nrbvC9Ayl@&)0G%mAvL$s_H^$P z*1~&Jii?6aT7QJXtIV$f3r z>5y?+Gm%2IB63X+x;} zxS;_O;eTq>OMZJsJx(wx10@9B=M45l1$c=tTebQGJ5oUt^Q@LcD{xV4H!M> zL3_HvRZEz8t_Kd9f~)Xqe4%uB;_Ox)Qy{&l>ONlet`C0jZK2Rd2bz&h)S1Yptz=s~ z@bctW|IlF5_CQazDw(26yRQE&SGV;k!&Nmw-uGLbTg^WK_@3YP{wXmJIsI~L@WSBn z<43}c){(uvBherJudhGbz!E@2G=ULFn%PK2l&Psr;Fxi<04K6(p`8-*!v|RB(xv-j8p3ZNC&Xfqj$N0e2*weobjs!pV0bx4p!QGSHz-%O<6q$&SsklK20-T_tuhGCoTTw|OkaH1bYjpk|HzAT2SUAq-W-(5~ zO-=KgoLnp-@jyVvSFc3TEgQO9t=F#Ht__0GkEhXkOsy&@Z2Af2S6C5nry`pj5{pkC zIy{RhK>yNc1UL$lcc*n}$;zT;R+ht6yvNKcxWsAuE2V5=v31wa z;`j<0i{kR$pIoR(1X314 z$3|ITwp3=yC)okYAV|_>a;{CT@uW)vfD?$wz)J&ypc6s?g1wM)bEGN|hA}miL0o%! z4SocJw1f~}ND-AB1K!UUyWb&c+;gZW{t+FqiIe~OOiHH>IYr)ztd2|pdQgW(Z2qt} zDR0X18fh>(h5b9k>ECZnOXaJJTmEtxGiFWTPEr}`fb6QVD+#MQ-|QUgjb27&oSk;N zRI7CzjD97}@~pIx~#K#x?-?}?+rj(348WjmjEkic%ecK-as^Y!{p zBMi6z&^r>}LrXK|WFqawS60~SN|NOg-pM75mG@b>1YA9T?d|t_KOFqF(H|j|7p#bt zkiD}AF3oRW{@^?A)3=&PN1VPvRLFY*HU7^-B(XLWpDs6-$F@5=ArM_&@+P*^-p)@t z>wDLO(cU9_!Q*?oyU`!^UU>G|ppPpgIDo5b*pz`=g+ifdYGQ$nn>d>Wasn=ajDG)q ztMOs0-u=bsC>o#pEd1Jq7T{x%yJ^=WhCRDMf!%PvU zPxmR1v5Ac7^xv^X!f*^YQ>`#vJJI2v^^3~vE0akJ-MFCD74ztF;Pd;9Mm>CLqPyel;*4iG3^{!%p_B{zD3=H% zkY}4=QUrnKJTnn$O;Zd-l|)k1>49gan6-a?$H9C6>A`)U3CO2fxHa&fL&RyEi~yDs z1!IJ!Ry8*i6Ug`r81di!Yhb)<;QyvpfvFW_ga}D06tG2gr4NrxIgyG@*)pv-Mriyb za6_G%s@!@fd)^kF@Gz19GuhdVjU#Qi1QZ%UG)uJF9-hz4!C;OQkiE3qYyltw+uP0w%ZU!Jd_ z@!#EOwAC1nBBLiD@UN_BB3`U|@oH77ma2Xn>nJ6f+gl3S!m05xSG{)m#RoItzngCP zi(MBIRtaYn969c$Gx{22D?F~jR96z#m{RrgrAO7(F*oy`mGxHONv$7di%yWwqb6XxPZY#JCgUO1DWv5pKMZ3ottb}7>)b?H~ z$ue7t$NLT~;N`dvTzG|*N*q_ky^=NmWc%`q$D_}!w-@FN*B=9NN81^OJsp@-mGE@Q zlyFl)t&E~W07%wEo|OP(;S=4H`9!+C#k79@%X)Now=LAQUVn7-=t3gNp^6%d%C-_) z^_HqWujIi?^UbY8rWBW1)QeQYuf4eQmwkMH6%;uz?zODKtss4JE)7=SzWiC^+dh6! zmEGFrc$MET@}w%0kX%WZwgV0?&0|=z38$s=vUjU9-T4U+x7Ob7;A`OJ*NjJj*Z9rV@}Q)xJeC-ld?$bsT9M+ z95@o8oLJyUokVk@0)&cwJ0++1!aY@8BktI~K9daD-B&&$&-FmeB#2eKXsGTa{)8UkY}Ia|0Ou;UZ+w!#KySAi7YMP?(oEKL)UDC2M7~1+=k&*NWKEB zdzaG9bRPHSJJU%B?;p47N6^QG3wuX`V01vA!S#ufrBWhq`n-OnP~fj(iNHY zn>yp>m_SGfyww4~n*hW{QG#~*O_^|*t^rzb-I##y`~4OtnzJ|Tkh@O|{H}|M%=&?{ zS3g+S0h6_-*=2Q&rxIr&ihb^>h7+t zV9$clI}&$0maLK& zayZ(-mxu2saT54^Hj(X%XSq_LSk!O@Dj*>R?y<(- zD^VN_)wF6@qL>vi$QG&~3S=fC1LI233OMRqD~#h_G)S3DX7Ow2!euacVei6ql+xjl z!tdyCSSkRSDflN^qkdJwMTJCD?Qx7PSg5xXbla=R zj%_`}@VLxVJm$^%*#e&v2+9yC*%EmTd*x!cC_@sDL7tXnf)c?{Q*|nf%5{NV+u`N6&y{IwR<9A(>g(5k~M9{NFx)m zRh*`5oj-HfFPd{A5n=DqhW!hz8*2_YIm#`jhx^rn} zDZky^djH7a_tw#jLH&FUc~Dy~JZ)vGE7=k&iK2=`p+r+5&|s9vm$@Dj0%5t@A6jMg4TqqS)C_W9Ps#|znHlGRY_3-Goy2T@RiKcG3(s^pu-km@+M!gh8( zH@36>lp7Z?=h>nem)K+)Tn&9}y*~K&^XY#vy4R{^x#GPdCTcn*3>|Ysk*D;vHATU< zuqWAKNkUVv>CXH%7#-|=;rR6fPmdzm$l+m+wW+#h(SoofqMl)-uwwckJYfn4?>u|3 zqzifasf!m6AMQ8|AHx^I?}zK&Z1e0XIkmwTn%D_I)6@tVTO&lEWR4j3mLv^8?<(qB zTT?|x;B#m#lg<=U{awHN{(tyU?555HbU`ik8N7Pq$Aq#8r){lL0nSO@A_U&)V#Lwz zo)e@b0+F+gK*%=qc)4Sg8fR?UxaAX9DIsMm1&ebwrrtB-eR{#BQzO$n7`^r3JPsLI z@#CIF90}+wVi4Q`ZLnGY;#Rh~U2R^wI{4sPxGmuvZZv}7D4H=3&I4OQ^>Y-yFOZZMbLiK#SqQot=M3={v1Du3;2+*H~+QKA3i*FX!P)0_uOcBZaDnf>la%2X1W>&6iJ`M zezeA9@m0*74f*g z2Pmi4&=S5!k6I|eBc5I;t^nRb*pUu z8;$7s^AO&5kJnr0>r2U`Rg^?kRg`RU;jpAt!5{Hb77j`~SFTj6NOs73`GXpG`culV zt+^tk*tP<6a@%{kx%A*c@3(Or`m!(b+zNNtC-asiII>N|T#`@=vJf*2cC59$z_!;3 zBq7Knqc>``>(`G2j|77UM&DcSUMS_+eND!Eyhb7gHM6bd#&UTdo=mV(dj7v(Juv#w z$D^Yia~*Ss!=DbXhu4?SZ{cSx$y6!qy%$dNfZzlsL{-p^`z}2t^x68<6jJvNKzy(K z+rPYPBRS{|dW87V^C!t0E@T1)@A2L9E&FVHivRfRsgC98vZ2Z&w0wi=>o{?e2r;te zIHJ!il0+^<4W0QhwqXe84iT=&-}+Cg5F$f_zk8^{&@_R~&KB(vf}qKv3|8OS8A~Rr zIIkkkEBQ~g`jU#jR0awRkQ$e=NErLt`rwso$N$=s2o4_wPw%wYq6}1f&2_0&02`{P z$)%#q7koXO%(Fa>@OQQ|(ewrz=WF!_Ab6natvVWZs4q6N)wGGrRSd9ywVCZZhqC|( ztKj;@c9;i$2j1xQ&h&z(*J}Tm(?3lVk2t7_q5iRx<|{RE*Ori`iA@kG$qm1Wn}I+lGFbZ!~Dy?j9@rtL6OE3g`(|WoWLl(;;fE@m`n`o?QMN9pG9hY3Z@hbai2F0h**kC0I>ReELU7%y#SJq z2fb*l9F^pD;hzmKdLxg-l_Xx=U!#dkN1s>(b}e@MMbRoqs*0Kn*dlAC!`|Nq>ql#k z8`0<^RG&dcZ#5|N>&&-}wR8?xu< zHv6^Idjg2pf4}y6?+(I=t>NL@^#ijX2u4;5C9e;&X5X9@?KemvCkSiPr_2H=#Fe;* zlU0mOlzmy$;keZL^3u_x;p-6I_j=noJ=z-{TgI~NK8|zcSy|XbLY=0ME%B1d0bPW6 znB9K+DiR94-+K7P=;*{8IC^+J82t3pa4VQ7m1VimcbMN0#3KFfog4*brHvoyE_IBQ z9WsTs>nU<1=mV51TF2`jti#L$}fE=Hatc&TvDrpOE?tLSFb!kKb!@l3xTkRa%j7T(YVXP@Cp+w}XS%F0|VW_rS$3>^300*YjDgBpQlI zYJ%)s?D3ruhm10SK@*TM&I2%GvmBPkFVA1Tg2Y9GyI^wg^jf$Mp<*Gu4Tl2PSWZ*m zdsX3=>6fZc@M@vhUKE93-3p6eTN)f(dTK{|uw<1aMDHvMjb2?_hwzTBVrrM_JFVSE ze=&NnlannD4p&Lq)Q6Z2y0iQ;}uakxW*d@0|1decw61<8~MOPfy(ew z?t#m1Ui`tw8Gv%cz@_N6=LgX!WA=2YZ+^hzjc$tn$IkH9K$N}cC0K?fsL_N(0wYZD z6fcJ6eHXCDVDxwr;;={%Q4w=t@^lZQWg*h*1;j!j=5~EyAL$*lyPx&4fiJlO#kSFt zxJ%V#9OFeU%Hz0esxRz94QZ&*sVc+6Dd2qq18nMc>(`Cu?ZY96?}vv6JK%_|$#gmm zFDh=r>Vz77PvFH%A&?gSKbj>|yQLLsyMU9shng)2-u^BSeSjEA`*Wa+q#5?%7Xj(d>P*y!Fm4LvvJ7>o+D#v8jovw z-27b+77j;T`Lc$Gonf_a$+lMpC>PJ75uplC`Me3AC&QyYE0s$bhLISw?X8W!x66ss z59m$wm|Z&qW`>y>;=GyD4Rxpk9AHqbeo3VWLRKY1qjfoD4h)VgbM{%H`+Z%*;tn8 zvV_yxVzq9+eH)FpYYZKq0%be6`q&yeS%REi6(OAqGGETSTnvK=blwgz4KL6Iu}TZc zd^oG&_SgC?+sw;mHn=P8`CQp7okm%Ga;MiiYzst>1+1~LL!@bn>ZJW zlf^D?Df9E01j}RGt$w=&?3-L zSyK$SUxj1wX*8r9)@nAbrQ^5SBGnMyi>1zqk^|6O#2+jL{Vi*9uT&Pq4B@?N7{rFE za4`==_KUBe37Ye&FGF&>sZ1zEZg_p!^lioj_kCTle}WQLIHLNg}8y(uFpsinVZzE0o;uu z`M0*bQp`(@VnYYkY8=P0SyUL((*sys#yYLyqm_IQMpw&aq@P&_^gh;w&NGgBn~j6s z#-STYg6zeUnj%Y>Qy`+LzLC63;00GtSST~PPz8jm(-kegn9jy;-E&`u#Lyf%J3DP0 z9-#0JJUv?#=yFxS6{VoAz!ymY4Rt~C@=H#%Gn4J;&OXiGvh|*R|LUK5dV5p7k}TT< zME8@)>|%X&=eelA)e1BNf#)5QmNlW7n!;^wi>YWP%0n(Tw&uCHxs1q)BG2l4C2q^< zWuSgtx2&P&VX=6&?k=8OFSgF$Ru2xF_eLgijL4-}0>36P90xzgNx-HcM6?xovSz-8 z%5xt*dZVMm(YdhT$mMduh&xzXkGS{j4k4b3#$<&h?w)Uxp0+*ajg8oaQDTdWlF_LI zI*i%M5Px@Bq|4LJUw51NukM?R`Q%DZdiF9gI=bO1w5vSYS3K+`C;$Mwgk9sgA6)cC zJ(n&T9BJURBo>H)El&dAn=eLDUJAeIOMF0)#P)}S{9IzURx`Fqu8_EV345-TVo zAo6rsqQ!y+ai*N@vi}xx`tnPOdN?kupxv~^di}mxw*}iV_Mkb|mM3pDp6}F8;ANF& z&dF^cM1Y%E(YxhKP-wz1DrprNR7s6;`r@rMYv|PN9_nB3_Ya*Fht7tEt{)zstOpl< zkH;Z7Na$@r>LPexDFm-DS*G2>sC7-W*W}U3Nk=J{D~&8HJlyd=ER{xr)}9#)+q2BB zMhtp=EI{~7)JKx2Od@1>MmO$mdA;PuTNnQGsNth{MW*hrQM5lp-F)lM4h5ocUwy{zku-M%)~SlxL^y90_eI@%r4 zkk~u&^k)0-(M+MnSrFdsGo!mPY#OY^69k(vVgPT5UwY>fu`tKJKU;2}+7}SB)Vgkr zSk3;!A^)HCgEnN`k0#8+tE=NVcQ8NXQ^>dNskUXFO$Lka6SoVzD)Z8o!4E=t=IhtVhKMNgB^HWz`8bcU2XkqA)rd?poFzJ+8d1CtRU* z%$daVYj0aKlP?tj-7^bxQd>lv?X#}BZKt`tiNb&t^ zqBpaf!onO-)UXaj8%+e+%y#7$1HJvnL+-g}f2nl-F=4|UAZH*FW z5Us@WOhI56b`y!onKpFLgVaYlbDiVpz-1yh;`f(|{XzGMt}!lN?E6U#@&o_qQ-Swh zn7`n;H0QavVX(W=f1TRpLOwF{Z~tdBst2tuQ=r4FnT_wcTWe||&g^5Ius~JRiBVq} zv8{ELvz72KyfWcSaF_nO)W31Y2A_$-A4z#z#Wh^M`@BzSez$R)rskLd=pT#9#41Kt`0rR>0i^O zcC$mA)$paN!bb^1&`lHbZf~jEoQx(sfs4apu}3Nzodlz|+(W0!r)~CY4Fw^*Pt0U( z3u}41P_9ZUFVi^7pc8ziiVG6Xl!0?<`w(n2VeR`n2*|xm%6-X9w$Dl!wDo@9wu9Ql zkqXi?yT91a@z?bVMng2`SU_K-M9T(z8Ra-u0~Uu4glYPmWftQz2d$!YeP{@9`|0%t zD*Qb}+mFMIhT9s)B}rld6HiTJQ!!5B1~!0kv~~WI=F)Scqh0r<&fyM+W8~AZ<0&`5l?)eschFGrpellajA-=p&mr(+YLduojB-BT)P+!rbtStZv~wE6&Aek~ zvFeg|noVUAQEG7f{m#ji6RSI^;*v|HHoP8>k5Lmf&$fuiGF-?z>f-@Wa~zkz_(Dw5 z0PA179DV&&Vt|YJXKPZ&gv#B;3X1VoLNW%Br{6NOVMk;lY$&qR2?SIUWR)+N*E;%8 zCoqi__ihDG{kQ&zEH_ZORC5jTVK(QGH7*KnW1l#}~_xAKIRN zIJ6u9Zx5XI4t?|otM$fGJ)2J3?GXKCAipxudVqfttA{bYAPDG*GOz|V^R^%Ty|sGh zrTwUrW|Fo8Ut<=Nn)&67{{TtGwkHuB16(|O{v#9himP0pfp&2+xH^k-5aJR@tC3)F z7Euq#FgTMocdQ1o^Y!c3Q5RNwVq^oc0VFbEt(e#}!ABv1vAi0KaU_W^^=Ue|di;wv zp*(7wL>!%+xryQNj)jrnr+&ZxqpKec`SXR^z=sBxsbR5HYA&pRV}}eXwVML=m>^}L z^Jk$DIlti}B&V)97Ru$M>T-4Cb-}gb0FF&k6l%%Ba;tlL`7G8m-p8v3wS|sWWiA?3 zl%Bz8l=HzFz<>O~#gMOHmcwLu#R|KAHb;FB3(XU}fZi-m&r;krB!LVXoqcc+u-`DX zczng-+`?s4fke}|tfS81O*Cx*U$L8OS9`DC3Rs87FO0t2LesF5tY*fsm@AWckCNYc zUphBPG+vy{D1|asc4FlU&~5>E`ttJW;m~Oy5J1~phm$R<*|CJiSEs9ZbyMDC#R^Wc z2v|v&xpz|8X8_aivJ6r8cmMR$UTf#&{iqMjG6Qi$%i?LxT>RuVN&(NO_%_;9zO6qu zp4MR*IVmN@8zIj4@Ew`;^3xm224V1o2tkIX%V;Qv4Q}bM0UwRxL8I6@vYL=09yP$x zn*n#DQOUx6A#qIb+o(*kY+pCT2%zcpd^@BZ54$0xj~5q8x$cF9;Lc9)?XkCizGLAU zPf}YP6-%g@#DC3@quf7m-v236oU_N0Q)F~!wBH%*4S$!b}if26~_hHB}tfymjzzxn+EEoYyyjd zx3TIEeDBs682!1`kNszs^=rFX_S?)j`)-)}kOQ1a6ReMfl)x)0glOGW)++X_kTuP& zd+vZ0*a3^527suegYSveWL~JIH<7?UE-HFkUy2cBX{pavp^+-|IT9%aNIep;My|fp z=s7dXKpH{9P}wi)cbe_I|8?>odOoakBFpGy%%!Rd$}sp+rC4IQ!FizF>ZMF;!&^S!4&mTUixX3Z^KcIpgN7XU8ok#YksIZZfyf)AOLM z9=P1Uvoq50$Mx`_v5{bR6`*z?L#a)r#NRSui0Wf5uERCzII6cK<)dEC+ zSTK2i*P_1_Xq@^3$ms5&p^utY)4ilIG>&JH^ns+}I=r}YE<;|zvgW?R1M*Z9meFwg z_pi3Bk>E>>UaH5L?9*ztUT<&C1ioEDG5i94q#3&Gl4yZcC|_niM3QK%BxficcU>!_u%D_k%*#lWtkwN z84O6Gg3$wz(}6poMsZ1D zc^3-s3bS9x#%WFr8QsjOl zf{Wm%G+*uMNorbG*WRuAjZ)FwY)9S0q2^HQ4jSU}0CMprylkJ!RwV)Kt1xPq)!A8E zDT|w;0yfvPP8V)}XnmK_TV1elgmgTKXY1yT-?n-Wj$bl8-EU^g>F#buWA)fOgh=uk zib%;Ucsw8v7a9~$1w4`7vtDF{Cr`cwARaycryi*Vo(GhPN+b=Lm(L42KI_1e>83je zCO;XU=!kRzmYe8w6y1?v&h0MwiycKPq7`%te zGSk8)?!sKCu5~snptw$_>8kyx+f3W{tP%TbV+U9NDez6v5;`-n4(xG8atY)%Jb+LJ z5C?!`*ZaeaR+IDsj&GLrY}W34nuPG~ZnlP+R&o7$d;9()NRiEvbQ-V&Ca9_aSV|6u z3)w0QD@bJpf!$ugrvb{Y8>@>D3juO;_|?|-A;uEM(*=n zlrVlUimCZnO^WZW*uuKVC8AvP&8d`Ul*&YrcwA~%deyfvNDanfy5^krlEkG;KA%Bh z2ferLPpiCI#Z^pVX*Mhit}-psE`0Wl$uH~aJ-gjBZDaps`9}fk>xbHKHvuNuHSF)Y z8D*POIF1L>FXI5=B^+K$+%K0krVm$bNi)7@UyQWSNZqxO^>$;s)jVvtm%5TdHA@TN z)3QsIT`p9G!_aJjmT=S)$|{WH%x>bhMh+VzV=p)QS{kEK-?tV|nq8kZ4|)&2HF){i zHNJ-=o6CJRO(@412<%)cHnr^|YaE!qJq?5rnEe@m--nHFs;nVqw9rOUv(;!7hZ~28 z3zYJTdahm$^CX%`fcKP9rH5%du!6*$RmYq$x9Z-gtC zLR*yQLt^{lTb@fB=bH5X&z!&c)!oa}g+8bA4Tm6#+cFww&uKK)^ZulB5Td?VP{@!M zfX5V|{uJp$6Q9@`pAva>?lK2Nj*xa^i2}1BNDoGuISbn)HewlkYC|-9oHtsiQJf+r zq{23}L3v}0mV4ylf9Xy6KKGGZ;OY15cDn48T>K_32nthm;m^)lFkDMkZ~*|ixfVEh z`}?;KzGlmfWiWd0nubdiUFYEGkx@wK#w@1gRT}aQ;$H>!g9@5ux!CpehI{#OZ~sRh zjr{!1$eod$R`cM=y_srK5Wu`LN(DH7t^tNfx|{+lQY?d}Z!!wJo6TFV`K_UkZohmw z%br<4Ag&8ZoOJ!L`Rxk1qvt>@XaY*CmJ0=!Biz>q&I50h;5eY&oX*mEwaOr0Z=z!TA_;3hJ-MHRtG>d1b)%x(zI>E*8w91JhI;r7NX;Hc>d(XNTIcm1m$d8^? zXgzt>#QNw(WSr2!`R3pHM-TUdzxg;cI%;r0Ah$XG$~0EYcduj%j2)+0!jL&qVKiFX zpH75`Ok$9l8i=M8r1+R2eHTYP00!9ThIi{jW9m&c3@{)y=k;)uV*$(VOEka~V&FFh zhfUYKTgL3h7O~-_LK`1K2$pCwXg!sQcZq~2#0^kb!@7NA5l59ObhW(TaAk29?NaG# z)m7E#tc11IPxtx{uC4{Z=1*RX6K%G6`hG3v!g&ZnKpQsT&B^#mPl33?>Ize!S*2Fi z;&&iW-0}|v9`_y`_Ag((Ix=IQJhWO9;ORIx$|geXqUvPnz8{A*p(={06vJ-Qk_5h9 zkgHwaAG3OwAAg5fSX{_!z_!xJ=p(%c)=N^l6=Vd!NVI^vaJ}Q2NN(KaL~i@Mpn&lN zwy-JSbh6xi^mT!C^8_6G=oqZsxPE;7`e~riJiCtSXyBILkg#r1MB~JG8P>I4&YP>& zLG#FZ^y0M-pKbX!toGQM17!OrR&IBGe*WU6C}~{yH{Zo)G;E%uWmq_sGE=C%Kk>%D zhE<9%0Kp>Vs$DLX%J>KmAoPqFemBFCEI;54@iO+tJK{Ewhj*?Ck`ib61T|01(FNQ! zhp`3WGOx&7h_6k3u(fg5*q(KXWayUzB=D+wu#u-_;$t!fnBMEdj;-6T)#-CZz|^pd z)^ULDx+GMqbQ;jzCIb*WyJ)W6wywSwfEzh}ewvMd+~YM7n3*D@hOAlz*eI}c0|1%A zCbF1u%{sz8j-6p zG|yDR5cowrzxMrp%l#etpH{2vazThqC+l(ZH8i{T*&gw?ORIL`0(*|c>7+0V?gS5f zmje(nU?}GtBwCTd({1tYwp?1{WVl!y23sEu4>yO0t{)$xs;Qyt&C{X7=1{}x&2LJi zmjdR)L6i{r@?r#Kf=5q|U-V)$P;&tM-ErIgy}hXI?$@r^mM`RaH7bf+CbUiZJpb@{ zNY9GOyoca2nZztTaOHB$8B0*3zR`cUfX3nyJ`ruOk={h5!1BNp6>*CfD_^;EG$&_w zzgFm)`K2IoN`l}e$NP7Q52yN81zvP^8^*k`MG};eLCXG;82vn|PfT>h6Mt7lcH)sA&w7O`;+<>xW1!tqs8umAwZ^IvR#Ih-Dx%hr;h{urvWsq_^RI;UjOv9_$Hm*3=3#F zhOCf^X>Nk&Gc;0&RV2D1DT=7&Kl$hosXTqhm4}6cPRQzY^Rtm})l_|B_@IfaJOf-n zWKm$|GF~sCs_ImjLJe);uwvZxAZWFZ-y3Je;Unvoqx5Xu8Kx|7olB z2din9RPa*@cn-r#bbRkQyE|@=({8jC&Y#WvK6-Wr{HOuY@R5_r%%@1QmdW@$WN7qt zpx!)2gyvIV*bK*Wg@TAzB(K-!OQb@c*Gc0dM_u!BTu5T~c_K=XA~16_R#~2+GU$+r zp(l!YomAApSeW0J$k4k3TBYMMk1b5#nUqM(&9VHTXPewSCyD6P3KIu!f~CYKWMzW_ zPv7YRGfOfmkHYrsPL}{wTSz8dOX<2j0!$h;5{y~F*KR+P=R`&4y$HQG_6lf9m8$Y2 z&<3Q^kWs|Sbhx7P;99(>plOzcBvS|U-U40%q%8dX_L>yJ!9IRsbIJ@$&$Rjxi7R zG*%*jWD!v`l8@*40{D|I7DQS;KbJSb*jAz^IqAcm&m2k6AAj3p=!i(RN%`TSQu&x2-nBK4|<2 z<_p$wMZ{dXB%N1k8Su4?7b&CQl1j-)7);a`9y~zR-9`8C@L92Vh9rScn=P<<^Xw2s zcW`<5?YMDv(mXx0R+v5)jN~Mm89W;^b z(TTA8?iF>#`lT{DpDHMK6PZlv<_DRm_u~X7>M3G_2%(|w9_rP<=H}-K$md*b%b+~o zAjXnhh#15Qab{0t0P=)Sg8tH7g0IZtY9cY^%#|u;VHWG_5k0T^V5xYguXqhlrpJ#n z#Qb&-vn|W44p=ZFlB3%^NBBtWz#4g)EP%h^E}&3pyh^JsL8I+`E)B=3riOa{&09h1 zQ~TrRJ921y+YhJ-l}kw!uWMqA;s`E5CI%A(8mb5WbI!;v94Y#it9i}LN8E>pj{yon zW^c6`em@vJn2!Tt3*(jSERH6(Ania1?y>+etkPG|3SmqawBJ2wv;%MBJIM1_W;u@< z*??fQ+D`u5-T$a$I+(;2Jq^JGvX7X_usUgo(of!VsrWe>7(>Txxvq7vdC+}4d{Qj7 zTE)};(^E9yq16QQpADUzULQIGt6y(5ue;AIYsrqWyu#8no5$N*x6fPWfT~YS{JuER zF+L6^cR1QY;Esiro(C&#;Cq$nclo6inI(5KQ&(=zM?WX742Wnuv*%iZBs`P>Y50Qg zm5V7fbBzeaysB&%6sPeU2ASYf1;IY?22XP$8{3P=)vCLTr!r>RCuYsAl~SZRvkhqkVvO%fH#Ijl+7T3rJ0Vn@q8gig}q0OFG@o zKSJEzVMnuzf~}+C$w{l_J`K2^rJ-iCaoRxXy*bp*?1#tKPtT4UR?$q-DD~))w(vEt z2SVN+y6ISW&^hjKbVep3xdr%rAu{3USs8iQ0_3lW+Ab?a!ymjS`KXL9#>ww{0T|4> zwgz7PuilS67XhvlzKoH9G@pu6Qf@HC@fbzQYE9$_tZ$XpSt*tX?aKTB%AHYi(yvE#MC}#EH>~lG4-*?k;aDC_wlPyGC^Lr@Ocb7I0$}0 zV?dD0X{PGzL1jcDFPzg=R3M9H(`ZaG{#x+h?XIzQ5Ic6GDT+vW=JqX(20y1GrD@(v zd8Y=*T{05|Tr10{=t&0X~=DkB!OIGWhg7HMVC zfr|p6UXrS!%gGc3$!=@@naIGmH{Duwgyn2$bFD3P_M(99k3C(h2!It7c3b37HKdFb zmI|6Cp!bMt`SHCG%UbsjAD^6@6~VLn``!Iuax{6fbp{x&iMn%uvmx_ef2KPchny)3 zSl0ex^y^s>oV(O+W9x`SI>*Ps>XA-Z0J#bHt4K#~>A{ZWkP=8=08)$MyKuorWXQ`s z8xwu|ySpTsvtsysb6$cVfT~fvFAApaBX>EH;U(^{{ME(a*t+T~0p5Pj{=)D8vbsqGD8xPetcqA>S(=;OJ;xCJAT`vl>?y<7T+K zyDw|c3Vl_XS4H&~7?afW3h)_ylYW~1;?`B`qb{IqXpgc1sHL%tni%bibod$uK&niN z(WnSW^m0r@dkHct2r4jqpult*$t1hoi1?faP8)&N(BaP8mK7PnvJ4}Y%iRz1Wl2Xx z#tKq~(NRw5>kDH7s|aax#QF;t8gPmfth32_vON*+rQa1aE3_ym&+2C2?MWN~FH`_h zK&`*QSXgM~f^cG+gzqUetl?q{()#IXzdLY>W=6MKXJ{Dob>M5)(ex%%wf_vs=F&W> z@ye%Bz5BtDbyQqGdDP*EIC>T!rbi;Bh+|=)6Ru&n&!vSF?9I7?=_n1IY0yu zWS!l8xF&Q)=yTK&M~gI)g;Q`eI#!^W#*(qR5S(Jufy9M9!@T}M>y4|RSt^F%-Xf;}AD5azQnX@xg1Ao?RTz}LC z=nWf_VP#=)6&=1?2nZD0Q<{+KcO;T4l@_`kImbdb#Q4@i_d+h1bL6^5CL@n>5-xRG zR=4Q+&;KJN?r3J8tzZ7q;G*;1S3Q}5Ujd_^{ng-y+v2&n%kj9W z;oiYHk@%Niz1OXfiD(V8p3K+)jp72X;*ua?Xmf5;E9dQd)ppN4;A24VZ(EZ$Za>@B zY(4?A`{DUc{H|QqO~%g90FGFZqeXU~h1iZuw5kH1sW1Ygp?MaIU)~!6?}6~%0J?r^ zef0KWWBpURNmn5AqiKCf`yMUIJnBsr8Cz$$0O1$-I-brqE$c7)dIN#EY`R|eKXd#) zzt-z|nHF8rKEMT45*1cLI)yA-DMO?gwK^k4o+XIuEr?Hz z23Y(AJpQcpb^5T00GE<803DA3zD=BrcOvixpuIB(7Z`mZk^@8UjCVMK5s37#02U@E z@7%NAtHoj%CPaNdxM+ATghb<4#{6g~<5@re5-(M{-^Ic)Nqz6~=p~sB z=F0f4#$I`k=M;YMW;BI8vF_MuAjqz;&fqkQ^D62w!SZFKw2!Jp(`E4V9WZ*}xqqRm zB(x1%%s+*dQl+ID$I1p>lk6BqQM)qk>M66h!0Ljk={WQBGc$j$*$=TDp(}W7L(4md zkKAB%NUSvc3o3?bCWZrwLp3zzo~5j=R8g5Mo&=*m`is8aZdv@w{1RB9_2fHTeGly$ zDx$8S(i}x4Sd>c`Z6Cw66~|)H@{d^VlDi4G9ejMWI1)$Da8c1+HXia|BvW`&Y%oBv(gQy1) zNLSJ&$vrWiR1Aa0b9h0MrfIzbi$^n=g4#!Krt{brux8wi$L?06H8Zlh8nE8pIc_$C zdr2nAY-TlBYMUycs$HP$3R`2fq^_SMB^g@6*M9xdipX!`J33f90;`)dR^#Pl-m>m6 zynHSy+_`eDkjB=AQlMQuxLI*ALU-4yb$hba7;^^#E%*9*(Y?NWdf3}uJSX>_O>RQ7 zSBFnf4_@O1rrb;N@%%6(_!q0|f6r2f) zW%=!`Z4vk839M#=RcA3qE<>z^K+EVtIh$q7y7{|F>(j2= zUqj}DUkA}{MqX20n+y{#upBQlJPS-Qtp1|Hpbll{B+eAd@PWNcc-rlWd6G(KU<-gau7XTbrTpzNUw_A-y%iTI@ zU2mVDGyuL|KLS@jY|E7%p)s$T{RCoA=Yx|-X?%DAyt*fcBDy1o3gjG}5YbDy9H6-c zus8bi!UFoH2aY#fiUG*&|Mgx7&3_Kqjl4TImDm?=;*Wk-;JMJYk1z~g8pLIFAj*TY zBP<8D+VJ@jvKWONDv|>Rtd@Zo%R0lI?*V&b1a)8cI+=|D?*7@9JUw7N zIXXISR}VHP5nI9;_WeHRbXam-p1u~7c`ieQAv!P$pRG?=c$r3Q5BmxNh5N97*?szW z6>XjTG_ZX2pi%tPUeBgcGiVt+TnCOQpw=?fGAqUecrOH7(NN4jvi|+6Va?2Z7mh>G zILW2}c|p)5Sgyu~ZF$Y4ot3z2#{Q`l$yv=)i0jRni?f;!zp~lx z+(y|Q%#NyJklrib+#o5;5SDEoE}J9=Ypf;2XBX* z-VJzu;lXg9$fd|kB04`Gx-d@~L?&_bE%x1;>^o9z?n(?$CL!@P&2Fc+=jLL+88pbb z!OL?#k0%=CT~VG)B%-g(&wIjQaeq22rcxP52A7H0K#J+^#$z1N0!h_%nb;x$xeQKw zIg$Wi&&sap?v6crfZ)3~;3cpphcjtRaE3)(m2rEXiQ_#2EENT47oEoKSySt(n_VN; z%>CAj`RV9r74ErZuWqS!%-K!TVTzBEQDQ)5yCVXcuq$M<8j$pJCb?9Kn_d3pq2B&} zE4bSG>DrDJd>e><&Zfl~G{sA21+;~)%k6m%BCaSv*crL7&%`Ic+mL?(;w^vcyH~^n zKunT_l*K86M6gOhz#x4T7}w0+y~e~5!1h+_-tDomb-(*?2qku;xH0nO;v#AUbasGeFXRBNcRJc1fZfm>#&M)e0mcVt=Rk#X z@V{~qMcyCYr34%;&JxJly$fBi3&}d;F|v zsMP{K6NH<0XK9y)EeHi^I+{pG99IcTm8GT1Y+1)tM$1<4DpCiDC(SS2V}ag4;CXrK z!S~)iXf{hWb5Sq506+?Y%+dg@kXoUpiDFxCR;J7GY|}b8X#D$bj{a*lzbn2!d1TQA zus5tFR^)L2a~x08@FMt{9ah!)(FvH@kA#2&{{DcwEtB^!-|iNyqj~q}vVDDY*M@R7 zl-)+0ors}191|0rk;noPn{l8N4!&OMoInf?9KI7p{0NdBf>6Iua!hp4H{XoKSdNpB z_IGGEL8VBekgC=66q%aO&{d(rt0NVWAdOkRFnfh0Wu26abG}g4d4kxNF8dIP=Qu-2 zjLvff4j3r0F)%pDNa1LVj3zQ{PalDXFAPwLs7w(lVlF{=NP-9dPlb%Pyu_@8SxuW6 z&uZ7+-Ndo9sY@!Luq5E<&GslFGyPRQy_dfcv}SIgj_;-$^@KJX=t!%TFVK~&pn}oK z1TSylg2LSmi<-G#+1}hN>lK0Bj3@W^7tOAR>+V1?U*-5QuPm-264v++dHQ#vxVF((_Hhnut^k6?MZ=d$u_&5U zyKV(7_xj2DdH`JAy*$>BHse}N%WpT$MX)!z&@61Qysdp$_6YUIJ!+OB@M1fY!(dn7 zX_1bSzoQeNJ91@o0iG|FO2tTNB7#-{WOWqu7fJx+9+VnYX@D>;T%<(O2!$>V{;k&s zd3x@04113-=J9;qj^nIW`#3`y@&+H4L{cUsN|F^q(s^E~#A+$ZASBNC4VfV>4i20f zJPAu6meIll>z#rSP%DTAE%H-uQb6@c!$ZUf&hYRxULrzB+Y#6cX7%2h@vqitN$>Gi zX@=d`QCrIQaHb1`h$f--_!Cn0XHA80~3`D#nU2 z*JiMUSIR8#bhbhZomibon)#hTV5rqPxD$N)>Q6@wmY1!@NpLlbOL0?!7h!pq%E(w) z)fpssLi3x5<7Zc_rgd~={YQ=dT}d4sXXk02t%>L?QU$b_;oEa0(u=DA*p7?tq0{Tl zfO~9g8F;1p)Uw@2hDNPYZG%IU2Y2_QE$Bz+?GzuNXW)M@JPuax7@wFx)B9>5S)k7j}deRrAu1v8U!SMr8RL)6y=VG(0AfXd&8G|J>P|HN; z)Lnjxh#3&{ozomgZX2-PM)EbdRu@xbqqL~i#|=YvJO zQc)yT2BWVC?Qups{msK>Tj9T5cH=%gK6_}31LI?mDgoG8DZ~A_SQ=Gj(6pS?1;(5l znQ2!Tz7(}vFDs3DsnH*Ss|T}{7!u}3#s-Q&vIKF?es<%Yb>MC_-9v{!&jahrV?({C zP0I#uo?k?o;K{}K;v#&mw*&l>=he`q)f3dQJ24I@t}_BgpXewe&;~)i1Euj!f28Cu zJq!lH#HDtU&!Gbtz;poU7K*F(iMdQglsl1C46K4V_oV zZ~d@s^n*sDi1sT_hk}hmt9MnP3oA=Wp|;Obs`v{hwounrN9x+F7ag!N3hFtEGwGzc zxZ@r|+TYd?I%YdqZXF*r-K%jk+uc{iRY?^@Mb>qufTm=~klST-~y1d?wSbX9Tj&aWWyFvt8f6J=S|#Y_?EW`g(EMe|k6;u=dQwFY7nZ zq0z1k&z^sLshfBkdI@@?e^RU8i>0= zCa#6Of5VE2ErUow0FPH3xXg(K*V01x@*E_t3b#cL5~RML*`h)QB@qcKBXV9Z6}vzh zqTv-qhUc;FO%lxwh)zvmR-ntQuB_U+A6--TaEag)qMXG1<#Nuc3b;^qNr2!1a{u<9 zkS=TkknU~pj!yxU9jsIVd9i|6DetnX*4K%x^u1FxH+lSAWOZ4t>RF_~nf(ILd-L(> z;b~*2iAEJ4`cIKQ%c?nJbK)A!qQN0Z^boZZ%ZjWNXoW5>V$Usl@aNiaD2yL|1Kj_e z>liJZpr-Sg6e~j(I#+-hGNQuTZCBquJZ-gx++&c_TgAZXvLF0BZX(zIBL5}QeK21r zKrCLho@J4*kQ7R!I9>wJE;%COCmmq;;yAc+8@aVBydTWW*lf0$g~-H_8yp`pKxb~E z1F&4@r*A~G4DlYm@e?%hcAFD>F7ICSdbUPKJuzM+JoBjnu&j9>j{*Qm(1};6tu2lT zs|tzQn>eETW@fJM?-p3@qNF;?1r=BrWd6ArN7lqjEOX^emf}QU_bF21Wg{AbH1XD4 zOeXl48t;=*6s!%ZhN1p#2Hjsi+=n~6RqkA76;oTmvthdiOj^LpNz?xJ!B2mR9{2MW zlIExAY462(9jKO|)2u>g7t3)b+&9afvrJs>b^&~^GFcrj$2CORPKORr8{1*;Q18Jq z%GK`G`d-zH(+U7;U7=Y3r%0WEVb~Zi2xW7%y&>?dBIQr$*|*~Qf5_FJAXkqj_-GX1 zoGg?@`CJt6?~g4X1_I5o?=Ab6i|$tMSg`Slxp)I?{zbjsl||q^9)IELtL<^B%@rF2 z_eSXiY>Z+$;PGMy1o{aS-W?tAzaHlEF9JmT%dQ#sBX^_(KJJ(R8rSJBS`%#8ONzwc zD;K?9PVx5enGnZOuU@3^*xcn0Vl>Wk#=rn%b}FMPzeUN3sN@wyL=jH)(F{TJzrctJv=-;1(PG`@8#w(@PJ_2)Uvd$0fk8%XP+&8VIt@Tzv^E{_qd51{NT|<9tHQ-$q9INJE2F$$HCb< zPR3ys3|sEK`{-wq$;HJl5b`(8^p3TVE1?0~kPO~`KhlWM61xlBR#LD0Bel&lnW^@K zzbGSKrc$Z7>0mhJxh%0F@v5OadUm76xv@dM>@<~7 z1Q#a@&WV+Hm*c2UW3qGs$$jNpr(p5Zp#!ABc-ZepZ2^C{^R&)vqV5XFID%Als>zDL zC_IpLQPAw|l9a|vX!_(=_Gfmme|5*Q{sWW_^^T(!b2}a8w+RA4-&&a6+{`9zV{eZg z1Oj8rW6N%&CARK%FPd%Sjxf8~Hu`@vpELHZ+vuq2A?}7S(0f42Mo!z^1>? z^F+ViIWZ>?kB_Dk>SpUJ6%a61|=rSM=yK883(R_H)c@# zirPobs{0y8iUn3Mu{R0zA;u9m2ewI(R(3PdjGFNA{J!^!mzpEP(*?{a=}0su{H~WE zYZ8{V_W>?b-*GYO)L<<(M-g0#AQTTl5|>|x)dJ+upfY@nWiV@Ov7SyQ0YU+`6?s0Y zvYc4yDPw5pPM+4Xj8>1^A*cWJ;Q1ybdeq41)+fnrl4a=HE^6vG8H1Fy1-~g_rY0nv z?+Hk_y-+}kj=yUJP7kfqKwIP=sBwFs)u#|)%D~TLMHEzhv#crQtSgM_b=YhkY;|~e zj4H{GzrCaSyXTHqUxWwxn(aTZNBiX9`1lCYdLvz_0r}-pY)x;E@k{4_diA4&z-{1a z%gwX(;#u+d4kYt0kf0Cp^ZQ-j;JEmG^D1(2`<`WUpSZ1OwNVJbfzAD$_uM0qM@ydp z8b~5Ftz^=yYjF*Y9x%;4D}or?LT548`TNd>pT7Iy-?CI9mBGlAC&4T8ulO=IKO}sa znA7>c^Ob?o`B-0>{`6lkl8tL@=JNyqcSw2w+|&;)gb0GzCPNgbnXX5!IB-yw?^C^r z4?m=}(n7s3ec1@fEMKYdJQqt)lD<3Yjj^%UM_Exzc{6Z*93{Mf-fx&TC)#-zqm}r= z3KL$*r>oU?8P94EnbV65P`0(J)^BG}Gr^;Sw(NGxj~WYX8mka;nPv()E3&-EDiSVW z^nOpcz|&g1t%aUsHshxK-ZGL|g`^Ij5kyA*>AqD*Cwa6YU>F!*lqxhWR9Kl{%kATn zX78WPXPQA~sNcBpWjdYjdW!sL?VIm7_ztf>cxL$nYr&*z99-M%v#zA<7i&NNtH*&r z;O`%wHV*s8PThy4dOiR2MNqFVKC^ec{dN6D%W5v=OJCgr5PCF@>Rr)R9NLC~tlsHv zq8*)VeKC3eeinfNw6UY1`ohJQ`+;Mk6v;UzI>z0NaZKiYF~DCNBr$k};wV>{p1zqN zLR>*(^+GI`AwHNYP!2k-c>m^Nf`pt$uze05Qh-z9hz&_pcqG?PRl3Z{aaqBqSrLLQ zo}KV7X4Ss3!mIqQ77ERK31T1&KnC(U!Fx$8(&xG8;i5h=N??}z%P-Pd4Na@huyk6` zvz3JfE$)2a+86Tqj@3L?uA6&T5B_SVt?2T+{kOkubdzCS0)sheMojS%WAKKkhb!eC zRCP$Vcl5Go7V7Wp_X3ST;PCO#@gd+ixBKvV<58n&e~QuB>L#Fl!0jxH;V!1^bV@9( z?V(8e$0j^z&+D9lr~jFKCg?7XpG@vFCVvNOV6FL0nN;(;jSe*L5xn0rD{>sbcUe(H zIUDa<`+h%U9W=J%bO^q3qwa~tc1C~x>1+6Y|GwF>{Qenh?JGc`6B9)=u4SUsSz0Ka z6eIpe?k@Prdb;b2_~MPOcsoU8?N8HabnlAQoy$#F*0`gy zsp&_n2j8712e+7b z_js8R(GV4&xt%=#z<`|aXpI!Yh_@HcqnX4UNfOfogMYnSv4s;M(&O_aqC6NKViN5X zvYWt^^rR%q;p!%y?p_eW-LCv9Dx%1nd&}03(CGTZ=fG*C1z$c{OX7I7nr_^2-Ekr< zV3n8og30naPsihs>j_9k)ns~o(%x!9Qa?C-eAoae2S#u2mD|iT8iXBJ1R7@xyub)9 zToS_4X14e;3m)y6U%a;VSKs^IC!b9ETU~dC;d@pW&7gJg0?f7kLY>V4YDHMnc^UOU zv$80PY<2PeYd3y-&0)v52-| zfTJNPsfkkQsI+Ki>ww>qW*or(Vtdm*ZGXC$Y;WOCmO94$B_Mc?k~J&3L#5#REXOq z<*=6`yhy~&J54C(x|*o%5_72RW?@N_%33Xh7K!X32Pn!zvRWZUcvX`0#xj@{T+G+A zJ+8c>v#g#~s)AO=7VW6jpU&dR^rDu|n`=SqN54gzBF`W1WD&J(+`?w1*)YAA$NIuv z!+RMCI8FC}@pvtq!;?C#mKk|-GjH1d5NNiww2zU-Kbm<4@ZFk>C)1iH_0W12A_L1O z8COMP#97>qmX?3#&!%U7IphA`Z~vDcezH3G=_h`x5t(RO?tEA4Tas6QA-6xW*5fP> zMrYY`u)HFr>s>c)^){Md?^b{RY5&-mwQAOr&ktGt__O)n?%%K5t+6iKRg~L@kA{bb z+msDx+IZ*WxW8^D<4DgAVgnlPmrcg&S{oB4!TA2-!pR$e^#KKRHX;H+MJ19mAXW3E z*Gq|7K_*E9fE8ej!s1U9dI1L2)mrrk_{nsz*Z3K3I@f*%oU%X#mv?jY&QMpF5 zF+2=0Ju)#d-tqqU_(<-JE;HSgMw4W^o6@MVQ0Lm`9W zB~%M1VFW6mBn%#p>KZQ95}AY-{#{rf`!!W^I>TX7kvFD!G!K|ioYR%C$a^VrmxG+{ zPo~ppJ(u4?h@)5%~KRa^nM85w&#^!V?GdQYz(9`v5NhlZ|Ojq7NGASnQ$ zTXB@*G_NywHC!psij;35qkr;06d#w%(3M}&4%tPzZilZY}Y`HCaSK|d+ z_q+c>PH(SQ_h$_MtOp0+kSS#j9kZUP$$?y#D_a_O`KY+*jV{aL|}bn`M=WH53=r z;~4@P&rUfrf-3t#Jj~d)6eq}sGV8Itg-l#PcSr6BSB&Fv;&kq=k!|D0fb13}h}w}- z6dlK)x7-Q^b9?j92!w)lAO#2%Eg(Zyu~$Iz;f^RNQevg8zNo;=J?Br^Nw?j58ClUA z-{$h7r46mrz>WlNP4+cDspRZxEMiP=%%X-FuBs%5{129YSr_+dJ()v{I!EC z^?1}r1V+;iJsP81@ZzV2!qE>&yqi>y43ew+tC*b_NwM0pq^io8Ko*(`2L|oH1L)oa zm{T0Wzs=Jz_aVq^PShca1U?UD0ctSM{h0dGx8N{hs3v zPCFIc@ClIaD9_68HlMn7X%L)$Y?8=z{r^Yk`~M#eWKZ#GoJJ-b!s}cO-V3*OP|vdi z*`dLWmB7WoJ4Rw%e;>|ubp2s4)pa*=6uT;pUw!oG_|H+*Z~dX`XGh@R#fV)u_mbEvr|#-ys2k{W0G#8RPL#sQLm z(j|o{O1#7t(@ZhJ<@$xx3prhcyOmT~qBS)|(Q>Lt7ZVgy54LPwy$4Tm*KQ0sVmsAC9Ni3@<@Z@u?M#4@iTtBXjWX1Ddjp zrT2!25HLK01Rbv~z^9{u$%}fbpolv7N}$|=epU?($ErrUIfWOrdd)Eb3Pp#KSq#7q zbX{HFhAX_W{uz#E3(uIGm8j{}pm>1tgnGR$j~uRXHsClA(3ztfoqD{E(9gp)w47EV zVVf3j!iC+t_S(S*gGX+CFuD0SM*siq(>q1*u2-i7TGllz+rS;I#!^=Z;C*8~n;E)3 zpZp;3JE62MX*t1l@cs1W-J{dN;zsy~tDipVLi>K}(XF5VtgCBpCFUBwje~qE(*e