From d9e55544c68c279d3ac90ea6cbed11234be1fff7 Mon Sep 17 00:00:00 2001 From: Brandon Harad Date: Thu, 10 Oct 2024 16:16:45 -0700 Subject: [PATCH 01/50] feat: created DB file --- DB.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 DB.sql diff --git a/DB.sql b/DB.sql new file mode 100644 index 0000000..e69de29 From 8616432286b74010d0605c2b2709f22817e65fa6 Mon Sep 17 00:00:00 2001 From: Azalea Colburn Date: Wed, 23 Oct 2024 08:05:39 -0700 Subject: [PATCH 02/50] feat: type model for scouting system --- src/lib/types.ts | 33 +++++++++++++++++++++++++++++++++ src/routes/scout/+page.svelte | 3 +++ 2 files changed, 36 insertions(+) create mode 100644 src/lib/types.ts create mode 100644 src/routes/scout/+page.svelte diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..ba9b99c --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,33 @@ +export type TeamMatch = { + team_key: string; + match_key: string; + auto_actions: AutoActionData[]; + tele_actions: TeleActionData[]; +}; + +export type AutoActionData = { + action: BunnyActionType | ActionType; + success: boolean; +}; + +export type TeleActionData = { + action: ActionType; + success: boolean; +}; + +export enum BunnyActionType { + IntakeBunny, + ScoreBunnyTote, + ScoreBunnyLowZone +} + +export enum ActionType { + IntakeTote, + IntakeBalloon, + TakeBalloonFromCoral, + + ScoreYourHeldTote, + ScoreOtherHeldTote, + ScoreExternalTote, + ScoreLowBalloon +} diff --git a/src/routes/scout/+page.svelte b/src/routes/scout/+page.svelte new file mode 100644 index 0000000..7d4dd58 --- /dev/null +++ b/src/routes/scout/+page.svelte @@ -0,0 +1,3 @@ + \ No newline at end of file From 3a9c864c156cd967cafba7284f85d1df9ed3160d Mon Sep 17 00:00:00 2001 From: Azalea Colburn Date: Thu, 24 Oct 2024 08:32:47 -0700 Subject: [PATCH 03/50] chore: update svelte --- bun.lockb | Bin 93240 -> 95001 bytes package.json | 58 +++++++++++++++++----------------- src/lib/types.ts | 20 ++++++++++++ src/routes/scout/+page.svelte | 12 +++++-- 4 files changed, 59 insertions(+), 31 deletions(-) diff --git a/bun.lockb b/bun.lockb index d101aff12b24371130efd30f2d8017ef379e425b..ee5d8bbb325c228caa49a9b46f919c5c5dc47865 100755 GIT binary patch delta 10737 zcmeHNd3=o5`hU+G6PYlQAhIVjLKe-8Y%*D7Y_Y^t(5jH4cgTbxiI^lvEfcDiT8e{L zVhttsB5lc)qSUptRc_mR2~n{WrK;3zbkX1UdFP#8y|?%G`ThO--1+#)DBRb_D=BuWarmaUFKlnKz|I8v zJYJR^CRRP%H`T+fWAS8beu-5OZifhhw;+@^K(>Ii78mHPg_8wqvE5R{XSjtsvf2wm zN7TeZhC==v=9GtZg3t!s7y2N`-W>!X7&6y7x^ygND=3yH6@Es$0O)T*`azzDYzw&u zl4kB6Aqbw3dHI%-5^Jttw-wked4e#(S~eLYI0S8^)3o(UhdfJh$t2X+t)<1byfR@M z>dBC@C_!imc>>Z4(gsNrEK&MxiFURdU#u^)6yysQ``99jz1Ug-J@xyvlT#jp)PRqC zP7u_XzuY#qaH1Wt8k;|Hv?ae-XcVRhV)nD+no^^2NYXTpb5L7f)=R`@g$k3@G0YL zW5!`(Td{R2>=Ew7Iw!1)b9z!_DH*3nJUgL1g<7k~L-9`DPT@HT&WPn(Cl`_rKjwsqdXFY)=>0ALrN*^897HiGn||5AS86< zdmzcMEs$jBWLt?fuN0dp-&%@r2v2$mf)DifASuVMLsC03-fo>L^z7^GpKG0L$uG4E zrG>e+F}7xc5Z#X-Yi?*Alf%-Yd0VF+I9GSG^3am9 zi$C7q?^pLr)rscT{f*1r*Ua%hcYk7yM~kRtHOXGN{wjo~T*Y-}Ur%HF^=pmMd!Kxm z!;gCTYnl)dOjFJAd({Tx5%<)Q9@vj7-jQY889o)I3FtiLv zZie%+ryS8dl(6B*6K|txBUmC|2Uk9Sj@QSUMBf-57-td(#qgXslWH+ym?~E{#_;+$ zliGx1bA)rkpk$`!Iq@dd*Utr+o!3np_IW# z2BwJ-oq2tNNzCia0~1Z^S{$JiYGfSjehfwiVj;mg5uAFe9P?M%8Jsp1dI-P2B<=D1L|-V%rOh>=5K7cPPx64kr|* zqDYG@fma$$>hU-$C}Tuk6=+oL2aDw+pSbNamI4Ch^4-UY~AKZ^SPENh1|?sIEw(R>*LO3C?p=9ccav%dW*)^ux~GYe z>AbSLNxYTL>${uOfiM>FDsLh0nlWHxJ?u?O_CSf!&5c(D8O56>Uf;u{*5S8;48^vL zH>zI(Bj4ritzHF29pp%;&Vj{~p(+tuZwSq;8j4aMxwICgp>pZrZ>44UnHVJN8c~wl zsrw*&Xh1svc{mr0LMZP5@mNnD*xMxj(v#=(HmQ2yM_~}9iMXQ|uZMnM1`q6GQVG2U zVZ40COzX`n`Vz!iW#&q`{4m6Z5g1>At^0DVZ(d^hCCIt%!g75^rw z;Z1-BxGmQ@CFAc84C6Njdh2MaZvkrgKxy%;RP%4L!yMG=XQh@Twf;rn&q~riRrDlj zUIr!UMSL}bbSLs3Bvmz6>YtIAo{t>n#{^z5%#Q~T_VA&BTcIJf^`bBSiCjNmu%81= z@PW=95`E+kNpd0pl2n0;{{JGWX^_&MB#jfIaFSFERb&`!JU-aRK{_42sBO4X*MXGy zkfdTqMMfxkl4Ns?qSq^Wk~B_dg+D7v6|3k;QoDGDCqdFB;7bLW4B4Egzu@Pf;rmjR zBB}OyaO#$&=t)v>pu(S()NZh%CrSK8$d-_=K+<@*kZQ;RrG6qLeIVtfp@K{CoAg3y zrqXd9Bqhp1NNT!>z7$Et#R~r;Nd~>C)c?Ee>l|>Y(%_FIB^Foe|47mVD{BV7*y6vt zACdU|DL`TS@9zKa?*IS3`!D7M>l|SzgOa@)E=@}voHPFUJ`uK*sEZnp!qRiAUifu( zug1e&e6stM_~ylYw7?Pd#jg=ZQ~N~J?>Mxn?>Eg?J-+p>$I=1VEKGRn^%T+~???lrK)M9w&mrqi~aXk?+q+`qf6BBtb_ZWJ~%%7{yPT8m(N%?hF5LR=KW@9 zp7$I7LPX}IlY^|?=V&+0OBfM;vf{+{4OKDSDxy=Fj zzr@!j3_2HfI%{Id@WKB$)z|HrL9P7Gv~1oqL&FD5H?y(4VtO{;HdDiY0kiSU8QFZ8 zL&JB^FtZ8#37AK@hL4CsjubJ62UiMlxpZ~gs zH-OFH(Q~qS@>~sHJjcu&{36(Gu=Ll>Y!+YedNyA@Ps6_fdyS{eMVRJm_`11f_By`< z)&w?So|(<#74zWV0{92EfM?E!e{aCQ`DV6|KLPVt2>%wC*PW}YUV-@^cVP?De_7(6COtaF=-sZzs z!aoWAf$ih!Rq$^${99#aHM|z=6j+F4X76&F1pg}FAJ_pNup0hV!oSsKR?AO=T>#Tp znAss-RssLkz(26}d2}WGTMPdx&Fl!j2zDDReT|uYz!$86f9v2M*m0h+7XGb=e{0R` z1iu5;1U6uunVsYn>)_u8_y=~HXRe2T8{yx2Gy8}?0rRMWe;dr~6TW=|`~%Z$G_z0n z@Qv_q6Z``^&(&4%Z!`R>GPBQkE!ZirkWFUx1-EU2e{aD*u)p(w&G2sv{M&417x`(h z3t;-U%AD%^e`WhJV}P zU$vRtOl>JK@!ap$U zPBZ(K?*kjRTf=>Knb~*TvMZZC*Wv+rwcyRSFrMSFAcKXlFbpm#k~xnX!< z=Z!Ufq|sQ5^KFGCg7ASBFGV$tH9?GTeD7z`y;IHl15cTz3GZi~^csf$EAg(WI`9L- zSR1LQr|bW3c?!>}OBJW5@+&nx_gAn51j|^{73x2{d9ix+h&fZzdAouL2pesw}c}4!pFtwIdG_=yMrDh6(qWfCW z(St1BB<0Utd{Z?&C67me+TT-j^km-K**8-7Mo~70oCMJ4K0x&c9}yFTk{|ezNA3B8 z`^{i;vV)#g>A{-poCMHcbc%rzpcI%4OaZ0>Wx%VzG~h*G2=Ed>{$vBg0P-UTco`T0 zBmzkQy|&f@e+KG+!@v2NI1UL(P3Y-JZ1AhfR13m}7 z0R9I29k>A01DAlyKm)J~*v%(B@bi5ar3#=DSPQHJ*7NTkwDEZhC5kovlSRP)6yg7` zdVJT$K~MS10eT&vSB51(IWP;D4a@4|oAc1LXHrNEJY@kNyC?(zOSEMSCqI zy$%Kg^bWiXcmk9It)XiJv|~bl!5f7ZKubUa(2MP3G-?7UO(-pH0M~#3APC3@3IILY z8h}nff8Oz7By6`ei$A{uYP8rBS3Go^r}z)IY0?ciN6Xc1ttSifiRx=C@f+bT6O~{r58e5 z2$=~?L3!g3_`>J=UnpBUQtn;>Xr(Dr#sQQyV}U%t3jC?&i$~o=2Q6eSFb2ReAdChK zfF6heIsq0S8i)YG0qR4N>e~Y}acfRzB{%L-r?@G4LO z-xmp25s0!Es$U7Bs zBk&fm9oPx%0JZ@X@vQ*q9i*TFg?m4+52yj&0p0~@f&V)Z09i?OWE>epddic_ zz$Jj%(%{tYB0vLE8(NxrU=;8za09pxd;{DCz6Qnsw=loF)xLtf3494KfI>-=QpfAS zHJ}mD16P4(+qlZqm--RE1KbAg0S|%ifCs?$0G$j`Pw|D1*gvx7?30enLoBpTErFuu zryu9Fl0-MwZhX8U&UyU+YS-TlMK&tV5O0Xb8KPWJaQ$Ubu8B3o;#60(I0V1ny%gX^!7avzK*%@kQc2nKx_UGcAc)qCd69>x!UK!aFALaZS!PI}6i zUs4zBW7M}oli;TE7VjL{H49A=4RJKD>k5VIZ=dq$s7qM+C5vSV(kR9P+`1TIrJ~lX zZF5t4vLOY;0>@^h~4iDhf-=l}oxr#$| z(x1>GX*9;9sJ2~Lf9<7@Pi#Sp1dNH!zdvdydy;XI>!hF2S3Inf2DO7cj}WxNSU1tb z4`b~Q2s3}sCY*AIdSG>3*H;?nUn<#`b;biViH0Qd+PA$lllr^_|>8 z?(4cTlNx6p5;*J2UGk`M#Io8;AEPhX@l`9E-!q3><5~)}cEz(q$TWYiG&34cwCN!eD_Wq_3Di>9flx(Xxwkf!^*cWwe1icVeaG zB9l!;hf1D-IHfr9Ctj3vTkpJ^)B z?U$j0KgzOrze7II212vjU8Hzl*xryNmHT2T{?J?buyI|0$?AM;Q^1+yZ83&&3{@DV zv%WCbbv0)6qz>ubTX-ca<|3whlciuJ{r|Epo!jDhv2TjBz8&i%I<(T6b}Uuwlq$LV zA$794N`DH(GUs)b&ILox?Yas=y6?wYd!CGO-g>6?;ZTI$Gef!% z$}+@=3@J2>4GG?o;k+c2@wej@H;(wfjUI{4AJ#n?(vmRj(t{b&u`rgQx`LMN=@<)< zqO>f=b9`^-j~7N9rDdHu98@@6OTw?a5Y^1)-B|h?M5&*c?BPC?}sq@5uOg zb}dadY2*0SC;kVF?O9!j)GCp=ORpH1ryjq`hFCp4f*9hB@rIJIufA$4z@@G{yQRQt z88gvds4poi!i_Pzt*Auu>BNGf|5e*r-}zrvdP<@=sWF3TgPs`=EuUffI0;V&;nJCL kEXhZ{ZHanWqI;KtvEhxyXRXpmmRMoY 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 md + \ No newline at end of file + let { match_key, team_key }: { match_key: string; team_key: string } = $props(); + let match: TeamMatch = $state({ + team_key, + match_key, + auto_actions: [], + tele_actions: [] + }); + From 0b283c8f44f27b1e0b8d6e9eff7ad1faccd92385 Mon Sep 17 00:00:00 2001 From: Brandon Harad Date: Thu, 24 Oct 2024 16:59:01 -0700 Subject: [PATCH 04/50] feat: tried --- src/routes/+page.svelte | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5982b0a..8c1842e 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,2 +1,4 @@

Welcome to SvelteKit

Visit kit.svelte.dev to read the documentation

+ +

Hi!!!!

\ No newline at end of file From 16ae2d3b6810cf37b3b97e6368cfa68c070442fa Mon Sep 17 00:00:00 2001 From: Brandon Harad Date: Fri, 25 Oct 2024 16:14:44 -0700 Subject: [PATCH 05/50] feat: nothing --- bun.lockb | Bin 93240 -> 107409 bytes package.json | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bun.lockb b/bun.lockb index d101aff12b24371130efd30f2d8017ef379e425b..65ae91116151628d6759b9456f158c29373464d1 100755 GIT binary patch delta 33362 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 W5+z`aF^32+K4Q{BbE3r?=lmaPetkXw delta 25911 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 YR Date: Fri, 25 Oct 2024 16:41:33 -0700 Subject: [PATCH 06/50] feat: add none --- src/lib/types.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/types.ts b/src/lib/types.ts index c5e6fdb..725324c 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -42,12 +42,14 @@ export enum FirstSubAction { export enum IntakeSubAction { Tote, Balloon, - FromCoral + FromCoral, + None } export enum ScoreSubAction { YourHeldTote, OtherHeldTote, ExternalTote, - Low + Low, + None } From 5bdf57d0d698acc6407b16b1ec1e2c07544c762e Mon Sep 17 00:00:00 2001 From: Brandon Harad Date: Fri, 25 Oct 2024 16:46:39 -0700 Subject: [PATCH 07/50] feat: added DB.sql and migrations --- DB.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 DB.sql diff --git a/DB.sql b/DB.sql deleted file mode 100644 index e69de29..0000000 From a7fe0515d0bfb0991a92ddcac92b968793014bcf Mon Sep 17 00:00:00 2001 From: Azalea Colburn Date: Fri, 25 Oct 2024 18:24:11 -0700 Subject: [PATCH 08/50] refactor: type state model --- src/lib/types.ts | 54 +++++++++-------------------------- src/routes/scout/+page.svelte | 15 +++++++++- 2 files changed, 28 insertions(+), 41 deletions(-) diff --git a/src/lib/types.ts b/src/lib/types.ts index 725324c..c6c96f9 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -6,50 +6,24 @@ export type TeamMatch = { }; export type AutoActionData = { - action: BunnyActionType | ActionType; + action: AutoAction; success: boolean; }; export type TeleActionData = { - action: ActionType; + action: TeleAction; success: boolean; }; -export enum BunnyActionType { - IntakeBunny, - ScoreBunnyTote, - ScoreBunnyLowZone -} - -export enum ActionType { - IntakeTote, - IntakeBalloon, - TakeBalloonFromCoral, - - ScoreYourHeldTote, - ScoreOtherHeldTote, - ScoreExternalTote, - ScoreLowBalloon -} - -// To be used as an intermediate form by the frontend -export enum FirstSubAction { - Intake, - Score, - None -} - -export enum IntakeSubAction { - Tote, - Balloon, - FromCoral, - None -} - -export enum ScoreSubAction { - YourHeldTote, - OtherHeldTote, - ExternalTote, - Low, - None -} +export type AutoAction = TeleAction | BunnyAction; +export type BunnyAction = 'IntakeBunny' | 'ScoreBunnyTote' | 'ScoreBunnyLowZone'; +export type TeleAction = + | 'IntakeTote' + | 'IntakeBalloon' + | 'TakeBalloonFromCoral' + | 'ScoreYourHeldTote' + | 'ScoreOtherHeldTote' + | 'ScoreExternalTote' + | 'ScoreLowBalloon'; +export type TeleInputState = TeleAction | 'Intake' | 'Score' | 'None'; +export type AutoInputState = TeleInputState | BunnyAction; diff --git a/src/routes/scout/+page.svelte b/src/routes/scout/+page.svelte index 5f3c9b8..0d193bb 100644 --- a/src/routes/scout/+page.svelte +++ b/src/routes/scout/+page.svelte @@ -1,5 +1,10 @@ + +
+ {#if input_state == InputState.IntakeScore} +
From 0b18cca54b08471109ae53663196bee622cfb3fd Mon Sep 17 00:00:00 2001 From: Azalea Colburn Date: Wed, 30 Oct 2024 15:48:32 -0700 Subject: [PATCH 09/50] feat: state transforms --- src/lib/types.ts | 4 ++-- src/routes/scout/+page.svelte | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/lib/types.ts b/src/lib/types.ts index c6c96f9..737736a 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -16,7 +16,7 @@ export type TeleActionData = { }; export type AutoAction = TeleAction | BunnyAction; -export type BunnyAction = 'IntakeBunny' | 'ScoreBunnyTote' | 'ScoreBunnyLowZone'; +export type BunnyAction = 'IntakeBunny' | 'ScoreBunnyTote' | 'ScoreBunnyLow'; export type TeleAction = | 'IntakeTote' | 'IntakeBalloon' @@ -24,6 +24,6 @@ export type TeleAction = | 'ScoreYourHeldTote' | 'ScoreOtherHeldTote' | 'ScoreExternalTote' - | 'ScoreLowBalloon'; + | 'ScoreBalloonLow'; export type TeleInputState = TeleAction | 'Intake' | 'Score' | 'None'; export type AutoInputState = TeleInputState | BunnyAction; diff --git a/src/routes/scout/+page.svelte b/src/routes/scout/+page.svelte index 0d193bb..6f72d28 100644 --- a/src/routes/scout/+page.svelte +++ b/src/routes/scout/+page.svelte @@ -1,9 +1,19 @@
From e294d065d7863694d83443e70a44371f2fd3ae5e Mon Sep 17 00:00:00 2001 From: awwpotato Date: Tue, 5 Nov 2024 11:57:11 -0800 Subject: [PATCH 10/50] add successfail screen --- src/lib/components/SuccessFail.svelte | 11 ++++++++ src/routes/+layout.svelte | 2 +- src/routes/scout/+page.svelte | 31 ++++++++++++---------- tailwind.config.js | 37 ++++++++++++++------------- 4 files changed, 49 insertions(+), 32 deletions(-) create mode 100644 src/lib/components/SuccessFail.svelte diff --git a/src/lib/components/SuccessFail.svelte b/src/lib/components/SuccessFail.svelte new file mode 100644 index 0000000..17b1a44 --- /dev/null +++ b/src/lib/components/SuccessFail.svelte @@ -0,0 +1,11 @@ + + +
+ + + +
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b5cccfa..0034574 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -5,7 +5,7 @@ diff --git a/src/routes/scout/+page.svelte b/src/routes/scout/+page.svelte index 6f72d28..b248e8c 100644 --- a/src/routes/scout/+page.svelte +++ b/src/routes/scout/+page.svelte @@ -1,19 +1,21 @@ -
- {#if input_state == InputState.IntakeScore} -
+ {#if actionState == 'None'} + + {/if} + + diff --git a/tailwind.config.js b/tailwind.config.js index d8fb534..3e2b173 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,20 +1,21 @@ /** @type {import('tailwindcss').Config} */ export default { - content: ['./src/**/*.{html,js,svelte,ts}'], - theme: { - colors: { - "navbar_black": "#1c1c1c", - "outline_gray": "#c2c2c2", - "cresc_green": "#00d586", - "bg_gray": "#2c2c2c", - "slack_purple": "#4A154B", - "robot_blue": "#0083E6", - "robot_red": "#ED1C24", - "fail_red": "#EE3C42", - "btn_grey": "#5C5C5C", - "text_white": "#ffffff" - }, - extend: {}, - }, - plugins: [], -} + content: ['./src/**/*.{html,js,svelte,ts}'], + theme: { + extend: { + colors: { + navbar_black: '#1c1c1c', + outline_gray: '#c2c2c2', + cresc_green: '#00d586', + bg_gray: '#2c2c2c', + slack_purple: '#4A154B', + robot_blue: '#0083E6', + robot_red: '#ED1C24', + fail_red: '#EE3C42', + btn_grey: '#5C5C5C', + text_white: '#ffffff' + } + } + }, + plugins: [] +}; From f5152900e77cd0c3997b75ba74c0368d2625c270 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Tue, 5 Nov 2024 19:59:16 -0800 Subject: [PATCH 11/50] theme fixes --- src/lib/components/SuccessFail.svelte | 17 +++++++++++++---- src/routes/scout/+page.svelte | 15 ++++++++++----- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/lib/components/SuccessFail.svelte b/src/lib/components/SuccessFail.svelte index 17b1a44..13ae46a 100644 --- a/src/lib/components/SuccessFail.svelte +++ b/src/lib/components/SuccessFail.svelte @@ -3,9 +3,18 @@
- - - + + +
diff --git a/src/routes/scout/+page.svelte b/src/routes/scout/+page.svelte index b248e8c..60df937 100644 --- a/src/routes/scout/+page.svelte +++ b/src/routes/scout/+page.svelte @@ -19,20 +19,25 @@ }; let { match_key, team_key }: { match_key: string; team_key: string } = $props(); + team_key = '1540'; let match: TeamMatch = $state({ team_key, match_key, auto_actions: [], tele_actions: [] }); + + $effect(() => console.log(actionState)); -
+
{#if actionState != 'None'} (actionState = 'None')} /> {/if} - {#if actionState == 'None'} - - {/if} - + team {team_key} +
+ + + +
From 4105ff5171233965911d7f2f7bbced1492e7fb30 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Fri, 8 Nov 2024 16:50:13 -0800 Subject: [PATCH 12/50] fix: package.json --- bun.lockb | Bin 95001 -> 95016 bytes package.json | 36 ------------------------------------ 2 files changed, 36 deletions(-) diff --git a/bun.lockb b/bun.lockb index ee5d8bbb325c228caa49a9b46f919c5c5dc47865..44db62a5439e85d058652c0fe321bc4d23aa97a4 100755 GIT binary patch delta 7533 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 delta 7516 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

?+C4T)*dj zR~T|_xV*QT)MN7YCFd5c_~)77@uj=iiZF87sy9)#Z8%Fh!w9!Kz+Xn`+hrP+cF%};K zFu+FnhI;FBzd8Qq{>jO~SjDeHL_%+l4nKIIZC}M3A($z!&E)Adg)NH0hQAs_WoZuE z3X~mT|n{qm@gpUTsnA$gv>_OIhp`1aS^qGKFlm>Rs2y zjJWDuk5^Y32zLZ_7k02Or=Z3?%rO;O=zZ7+f-|-)dTu{A8^vV96Zv)4Je52}{4C4_ zv0AKOU`|e*WRIAzSZ~XIF;YFWYH~<{Vxw}NtYH0MKx$mz?Dw(oXvGq^ZYqG$g#pE`qY^o!I)K#~)mG_QTWIaE9vcy=<}>R$XQ;4*J+$ zGuZV`>oT(SLfN-Zb7yHKUc@>q#LRv)6N^>vub!Cn`Ofm5T3$^&hH&X(mTN)%=ndKp zhrhOqvlsB(L7Z&(MWc$b>K)s{KV?0hcq;M?jxZcJJPWja-m+kyAxPxs`_d(ER=A7@ zxbnOVz;%fcE3_VBl~&}`uNtYGCVHQ?BKzdC<~L47K|%q71qpuEWrdquYyc9-E9?ru ze<>Fwi5HP_))<4->R|pD;vm!6doc)j1zQ&j8LQdmM1U>qT>y40mPAUY@x$B#12m2h z_WK0fEU9tip2@$w)r@2%I~qrtacXA9LlwQ%`_3n?wfyo#z2V$> z=+r4sQtpG}9E#5}k=rjP;_g*lN0zh8iKOnolzSShPlAbhpL$z+UzX=@Vk=a#^T$)3 zpoKy+L=(G^eVIf`$6}%u2wvY+$>cKmn90-NRP{xIN1)!kzEXVR>9kFUzkqC<8T>f- zZXSDd8s7M!Z2L4kR#MrQ(@2%|1^goBcj)~0Px(JN9=#X*1zZvSHFs VA?bvR6*jZsG;;RPsdVCA`2SXC10( Date: Fri, 8 Nov 2024 20:40:22 -0800 Subject: [PATCH 13/50] fix: formating --- package.json | 58 +++++++++++++-------------- src/app.html | 2 +- src/lib/components/SuccessFail.svelte | 3 +- src/routes/scout/+page.svelte | 16 +++++--- 4 files changed, 42 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 0ae020d..46d1404 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,31 @@ { - "name": "floatingchickens", - "version": "0.0.1", - "private": true, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --plugin-search-dir . --check . && eslint .", - "format": "prettier --plugin-search-dir . --write ." - }, - "devDependencies": { - "@sveltejs/adapter-auto": "^2.1.1", - "@sveltejs/kit": "^1.30.4", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "eslint": "^8.57.1", - "eslint-config-prettier": "^8.10.0", - "eslint-plugin-svelte": "^2.44.1", - "prettier": "^2.8.8", - "prettier-plugin-svelte": "^2.10.1", - "svelte": "^5.0.0-next.272", - "svelte-check": "^3.8.6", - "tslib": "^2.7.0", - "typescript": "^5.6.3", - "vite": "^4.5.5" - }, - "type": "module" + "name": "floatingchickens", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", + "lint": "prettier --plugin-search-dir . --check . && eslint .", + "format": "prettier --plugin-search-dir . --write ." + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^2.1.1", + "@sveltejs/kit": "^1.30.4", + "@typescript-eslint/eslint-plugin": "^5.62.0", + "@typescript-eslint/parser": "^5.62.0", + "eslint": "^8.57.1", + "eslint-config-prettier": "^8.10.0", + "eslint-plugin-svelte": "^2.44.1", + "prettier": "^2.8.8", + "prettier-plugin-svelte": "^2.10.1", + "svelte": "^5.0.0-next.272", + "svelte-check": "^3.8.6", + "tslib": "^2.7.0", + "typescript": "^5.6.3", + "vite": "^4.5.5" + }, + "type": "module" } diff --git a/src/app.html b/src/app.html index 00b6bae..995660c 100644 --- a/src/app.html +++ b/src/app.html @@ -1,4 +1,4 @@ - + diff --git a/src/lib/components/SuccessFail.svelte b/src/lib/components/SuccessFail.svelte index 13ae46a..007da5b 100644 --- a/src/lib/components/SuccessFail.svelte +++ b/src/lib/components/SuccessFail.svelte @@ -1,5 +1,6 @@

import type { AutoInputState, TeamMatch, TeleActionData, TeleAction } from '$lib/types'; import SuccessFail from '$lib/components/SuccessFail.svelte'; - import Timeline from '$lib/components/Timeline.svelte'; + import Timeline from '$lib/components/Timeline.svelte'; let actionState: AutoInputState = $state('None'); const intake_piece = () => (actionState = actionState === 'None' ? 'Intake' : actionState); @@ -28,7 +28,7 @@ tele_actions: [] }); - let actions: ActionData[] = $state([]); + let actions: ActionData[] = $state([]); let timelineExtended = $state(false); let latestActions: ActionData[] = $state([]); @@ -39,16 +39,20 @@ {/if} team {team_key}
- - + + console.log('todo')}>Add Action (timelineExtended = !timelineExtended)}>Show Timeline
From d80ad01124a1bf29d5e9bec3817dedff6cf990cd Mon Sep 17 00:00:00 2001 From: awwpotato Date: Fri, 8 Nov 2024 20:54:32 -0800 Subject: [PATCH 14/50] fix: dependencies --- .prettierrc | 1 - bun.lockb | Bin 95016 -> 141027 bytes package.json | 43 +++++++++++++++++++++++-------------------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/.prettierrc b/.prettierrc index a77fdde..9573023 100644 --- a/.prettierrc +++ b/.prettierrc @@ -4,6 +4,5 @@ "trailingComma": "none", "printWidth": 100, "plugins": ["prettier-plugin-svelte"], - "pluginSearchDirs": ["."], "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] } diff --git a/bun.lockb b/bun.lockb index 44db62a5439e85d058652c0fe321bc4d23aa97a4..186381bf4045f97ff800547eecad9861c7f663cc 100755 GIT binary patch literal 141027 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 delta 27612 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 AQUCw| diff --git a/package.json b/package.json index 46d1404..14cd592 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,34 @@ { - "name": "floatingchickens", + "name": "test", "version": "0.0.1", - "private": true, + "type": "module", "scripts": { "dev": "vite dev", "build": "vite build", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --plugin-search-dir . --check . && eslint .", - "format": "prettier --plugin-search-dir . --write ." + "format": "prettier --write .", + "lint": "prettier --check . && eslint ." }, "devDependencies": { - "@sveltejs/adapter-auto": "^2.1.1", - "@sveltejs/kit": "^1.30.4", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "eslint": "^8.57.1", - "eslint-config-prettier": "^8.10.0", - "eslint-plugin-svelte": "^2.44.1", - "prettier": "^2.8.8", - "prettier-plugin-svelte": "^2.10.1", - "svelte": "^5.0.0-next.272", - "svelte-check": "^3.8.6", - "tslib": "^2.7.0", - "typescript": "^5.6.3", - "vite": "^4.5.5" - }, - "type": "module" + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^4.0.0", + "@types/eslint": "^9.6.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.7.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.36.0", + "globals": "^15.0.0", + "prettier": "^3.3.2", + "prettier-plugin-svelte": "^3.2.6", + "prettier-plugin-tailwindcss": "^0.6.5", + "svelte": "^5.0.0", + "svelte-check": "^4.0.0", + "tailwindcss": "^3.4.9", + "typescript": "^5.0.0", + "typescript-eslint": "^8.0.0", + "vite": "^5.0.3" + } } From 040d95c2d0fdb86a5285fdbb66744722a63600ac Mon Sep 17 00:00:00 2001 From: awwpotato Date: Fri, 8 Nov 2024 20:54:43 -0800 Subject: [PATCH 15/50] format thingy --- src/app.html | 2 +- src/routes/+layout.svelte | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app.html b/src/app.html index 995660c..00b6bae 100644 --- a/src/app.html +++ b/src/app.html @@ -1,4 +1,4 @@ - + diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index c0aa26d..4b474b2 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -7,6 +7,6 @@ From c9bc989693cdec9068647ee195be752e44e60566 Mon Sep 17 00:00:00 2001 From: Brandon Harad Date: Mon, 11 Nov 2024 18:03:56 -0800 Subject: [PATCH 16/50] feat: implemented submit api --- .env.example | 6 + bun.lockb | Bin 107409 -> 127799 bytes migrations/DB.sql | 129 ++ package-lock.json | 3229 +++++++++++++++++++++++++++++ package.json | 21 +- src/lib/server-assets/database.ts | 100 + src/lib/types.ts | 36 + src/routes/+page.svelte | 13 + src/routes/api/submit/+server.ts | 9 + 9 files changed, 3536 insertions(+), 7 deletions(-) create mode 100644 .env.example create mode 100644 migrations/DB.sql create mode 100644 package-lock.json create mode 100644 src/lib/server-assets/database.ts create mode 100644 src/lib/types.ts create mode 100644 src/routes/api/submit/+server.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..deb735f --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +DB_HOST = 0 +DB_USER = 0 +DB_PASSWORD = 0 +POSTGRES_DATABASE = 0 +USE_DB = false +DB_PORT = 0 \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index 65ae91116151628d6759b9456f158c29373464d1..745e3661e7317f30fc4bfa57afc873a60734e02b 100755 GIT binary patch delta 32277 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 diff --git a/migrations/DB.sql b/migrations/DB.sql new file mode 100644 index 0000000..723ca83 --- /dev/null +++ b/migrations/DB.sql @@ -0,0 +1,129 @@ +CREATE TYPE tele_action_type AS ENUM ( + 'IntakeTote', + 'IntakeBalloon', + 'TakeBalloonFromCoral', + + 'ScoreYourHeldTote', + 'ScoreOtherHeldTote', + 'ScoreExternalTote', + 'ScoreLowBalloon' +); +CREATE TYPE auto_action_type as ENUM ( + 'IntakeTote', + 'IntakeBalloon', + 'TakeBalloonFromCoral', + + 'ScoreYourHeldTote', + 'ScoreOtherHeldTote', + 'ScoreExternalTote', + 'ScoreLowBalloon' + + 'IntakeBunny', + 'ScoreBunnyTote', + 'ScoreBunnyLowZone' +); +CREATE TYPE tele_action_data AS ( + act tele_action_type, + success BOOLEAN +); +CREATE TYPE auto_action_data AS ( + act auto_action_type, + success BOOLEAN +); + +CREATE TABLE "Teams"("team_key" SMALLINT NOT NULL); +ALTER TABLE + "Teams" ADD PRIMARY KEY("team_key"); +CREATE TABLE "Matches"( + "match_key" VARCHAR(255) NOT NULL, + "event_key" VARCHAR(255) NOT NULL +); +ALTER TABLE + "Matches" ADD PRIMARY KEY("match_key"); +CREATE TABLE "Users"( + "id" UUID NOT NULL, + "name" VARCHAR(255) NOT NULL, + "is_admin" BOOLEAN NOT NULL, + "slack_token" VARCHAR(255) NOT NULL +); +ALTER TABLE + "Users" ADD PRIMARY KEY("id"); +CREATE TABLE "AutoActions"( + "id" SMALLINT NOT NULL, + "tote_intake_success" SMALLINT NOT NULL, + "tote_intake_failure" SMALLINT NOT NULL, + "tote_eject_success" SMALLINT NOT NULL, + "tote_eject_failure" SMALLINT NOT NULL, + "balloon_intake_success" SMALLINT NOT NULL, + "balloon_intake_failure" SMALLINT NOT NULL, + "score_low_success" SMALLINT NOT NULL, + "score_low_failure" SMALLINT NOT NULL, + "score_internal_sucess" SMALLINT NOT NULL, + "score_internal_failure" SMALLINT NOT NULL, + "score_external_success" SMALLINT NOT NULL, + "score_external_failure" SMALLINT NOT NULL, + "score_other_robot_success" SMALLINT NOT NULL, + "score_other_robot_failure" SMALLINT NOT NULL, + "bunny_intake_success" SMALLINT NOT NULL, + "bunny_intake_failure" SMALLINT NOT NULL, + "bunny_tote_success" SMALLINT NOT NULL, + "bunny_tote_failure" SMALLINT NOT NULL, + "bunny_low_success" SMALLINT NOT NULL, + "bunny_low_failure" SMALLINT NOT NULL, + "actions" auto_action_data[] +); +ALTER TABLE + "AutoActions" ADD PRIMARY KEY("id"); +CREATE TABLE "TeleActions"( + "id" SMALLINT NOT NULL, + "tote_intake_success" SMALLINT NOT NULL, + "tote_intake_failure" SMALLINT NOT NULL, + "tote_eject_success" SMALLINT NOT NULL, + "tote_eject_failure" SMALLINT NOT NULL, + "balloon_intake_success" SMALLINT NOT NULL, + "bollon_intake_failure" SMALLINT NOT NULL, + "score_low_success" SMALLINT NOT NULL, + "score_low_failure" SMALLINT NOT NULL, + "score_internal_success" SMALLINT NOT NULL, + "score_internal_failure" SMALLINT NOT NULL, + "score_external_success" SMALLINT NOT NULL, + "score_external_failure" SMALLINT NOT NULL, + "score_other_robot_success" SMALLINT NOT NULL, + "score_other_robot_failure" SMALLINT NOT NULL, + "actions" tele_action_data[] +); +ALTER TABLE + "TeleActions" ADD PRIMARY KEY("id"); +CREATE TABLE "TeamMatches"( + "team_action_id" BIGINT NOT NULL, + "scout_id" VARCHAR(255) NOT NULL, + "match_key" VARCHAR(255) NOT NULL, + "team_key" VARCHAR(255) NOT NULL, + "skill" SMALLINT NOT NULL, + "notes" TEXT NOT NULL, + "broke" BOOLEAN NOT NULL, + "died" BOOLEAN NOT NULL, + "tele_id" SMALLINT NOT NULL, + "auto_id" SMALLINT NOT NULL +); +ALTER TABLE + "TeamMatches" ADD PRIMARY KEY("team_action_id"); +CREATE TABLE "EventState"( + "event_key" VARCHAR(255) NOT NULL, + "next_match" VARCHAR(255) NULL, + "last_match" VARCHAR(255) NULL +); +ALTER TABLE + "EventState" ADD PRIMARY KEY("event_key"); +ALTER TABLE + "TeamMatches" ADD CONSTRAINT "teammatches_team_key_foreign" FOREIGN KEY("team_key") REFERENCES "Teams"("team_key"); +ALTER TABLE + "TeamMatches" ADD CONSTRAINT "teammatches_match_key_foreign" FOREIGN KEY("match_key") REFERENCES "Matches"("match_key"); +ALTER TABLE + "TeamMatches" ADD CONSTRAINT "teammatches_scout_id_foreign" FOREIGN KEY("scout_id") REFERENCES "Users"("id"); +ALTER TABLE + "Matches" ADD CONSTRAINT "matches_event_key_foreign" FOREIGN KEY("event_key") REFERENCES "EventState"("event_key"); +ALTER TABLE + "TeamMatches" ADD CONSTRAINT "teammatches_auto_id_foreign" FOREIGN KEY("auto_id") REFERENCES "AutoActions"("id"); +ALTER TABLE + "TeamMatches" ADD CONSTRAINT "teammatches_tele_id_foreign" FOREIGN KEY("tele_id") REFERENCES "TeleActions"("id"); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c8a2d62 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3229 @@ +{ + "name": "floatingchickens", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "floatingchickens", + "version": "0.0.1", + "dependencies": { + "mysql2": "^3.11.4", + "postgresql": "^0.0.1" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.3.1", + "@sveltejs/kit": "^2.8.0", + "@types/node": "^22.9.0", + "@typescript-eslint/eslint-plugin": "^8.13.0", + "@typescript-eslint/parser": "^8.13.0", + "eslint": "^9.14.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.46.0", + "prettier": "^3.3.3", + "prettier-plugin-svelte": "^3.2.7", + "svelte": "^5.1.12", + "svelte-check": "^4.0.5", + "tslib": "^2.8.1", + "typescript": "^5.6.3", + "vite": "^5.4.10" + } + }, + "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, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "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/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/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/@eslint/config-array/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "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.0", + "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/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/@eslint/eslintrc/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "dev": true, + "dependencies": { + "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, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "dev": true + }, + "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, + "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, + "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, + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", + "dev": true + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sveltejs/adapter-auto": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.3.1.tgz", + "integrity": "sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==", + "dev": true, + "dependencies": { + "import-meta-resolve": "^4.1.0" + }, + "peerDependencies": { + "@sveltejs/kit": "^2.0.0" + } + }, + "node_modules/@sveltejs/kit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.8.0.tgz", + "integrity": "sha512-HCiWupCuKJQ3aPaC4Xc6lpPdjOOnoGzEiYjOqMqppdtfGtY2ABrx932Vw66ZwS2RGXc0BmZvFvNq5SzqlmDVLg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.6.0", + "devalue": "^5.1.0", + "esm-env": "^1.0.0", + "import-meta-resolve": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.5", + "mrmime": "^2.0.0", + "sade": "^1.8.1", + "set-cookie-parser": "^2.6.0", + "sirv": "^3.0.0", + "tiny-glob": "^0.2.9" + }, + "bin": { + "svelte-kit": "svelte-kit.js" + }, + "engines": { + "node": ">=18.13" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1", + "svelte": "^4.0.0 || ^5.0.0-next.0", + "vite": "^5.0.3" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-4.0.0.tgz", + "integrity": "sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==", + "dev": true, + "peer": true, + "dependencies": { + "@sveltejs/vite-plugin-svelte-inspector": "^3.0.0-next.0||^3.0.0", + "debug": "^4.3.7", + "deepmerge": "^4.3.1", + "kleur": "^4.1.5", + "magic-string": "^0.30.12", + "vitefu": "^1.0.3" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "svelte": "^5.0.0-next.96 || ^5.0.0", + "vite": "^5.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte-inspector": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-3.0.1.tgz", + "integrity": "sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^4.3.7" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22" + }, + "peerDependencies": { + "@sveltejs/vite-plugin-svelte": "^4.0.0-next.0||^4.0.0", + "svelte": "^5.0.0-next.96 || ^5.0.0", + "vite": "^5.0.0" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "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 + }, + "node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", + "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/type-utils": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", + "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.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": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.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/type-utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", + "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "dev": true, + "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.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "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.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.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" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "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, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-typescript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/acorn-typescript/-/acorn-typescript-1.4.13.tgz", + "integrity": "sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==", + "dev": true, + "peerDependencies": { + "acorn": ">=8.9.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, + "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-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "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 + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/aws-ssl-profiles": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", + "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", + "engines": { + "node": ">= 6.0.0" + } + }, + "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, + "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 + }, + "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/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, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "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, + "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/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "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, + "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 + }, + "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/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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 + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true + }, + "node_modules/empty-dir": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/empty-dir/-/empty-dir-0.1.0.tgz", + "integrity": "sha512-EatTcJH5cVS/NXEpy7IWBSpH0WxvJdBnmRkz8Gqr2Jn4GmSqc4Q4E81SmVGOrHHHtCys1SsFKmAoHlhaFkRlmg==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.14.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.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", + "text-table": "^0.2.0" + }, + "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-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-svelte": { + "version": "2.46.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.0.tgz", + "integrity": "sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@jridgewell/sourcemap-codec": "^1.4.15", + "eslint-compat-utils": "^0.5.1", + "esutils": "^2.0.3", + "known-css-properties": "^0.35.0", + "postcss": "^8.4.38", + "postcss-load-config": "^3.1.4", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.1.0", + "semver": "^7.6.2", + "svelte-eslint-parser": "^0.43.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0", + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "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": "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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/esm-env": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.1.4.tgz", + "integrity": "sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg==", + "dev": true + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "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, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-1.2.2.tgz", + "integrity": "sha512-F2pSJklxx1BlQIQgooczXCPHmcWpn6EsP5oo73LQfonG9fIlIENQ8vMmfGXeojP9MrkzUNAfyU5vdFlR9shHAw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15", + "@types/estree": "^1.0.1" + } + }, + "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, + "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, + "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, + "engines": { + "node": ">=0.10.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/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "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.4" + }, + "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, + "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 + }, + "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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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, + "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, + "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, + "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, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": 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==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalyzer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", + "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", + "dev": true + }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "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" + } + }, + "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==", + "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, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "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/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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 + }, + "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/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 + }, + "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, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "dev": true + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-character": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", + "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "dev": true + }, + "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/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 + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/lru.min": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.1.tgz", + "integrity": "sha512-FbAj6lXil6t8z4z3j0E5mfRlPzxkySotzUHwRXjlpRh10vc6AI6WN62ehZj82VG7M20rqogJ0GLwar2Xa05a8Q==", + "engines": { + "bun": ">=1.0.0", + "deno": ">=1.30.0", + "node": ">=8.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wellwelwel" + } + }, + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.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, + "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, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": 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 + }, + "node_modules/mysql2": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.4.tgz", + "integrity": "sha512-Z2o3tY4Z8EvSRDwknaC40MdZ3+m0sKbpnXrShQLdxPrAvcNli7jLrD2Zd2IzsRMw4eK9Yle500FDmlkIqp+krg==", + "dependencies": { + "aws-ssl-profiles": "^1.1.1", + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru.min": "^1.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "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 + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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/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/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/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, + "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, + "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, + "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==", + "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/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "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.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.9.tgz", + "integrity": "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.4.29" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postgresql": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/postgresql/-/postgresql-0.0.1.tgz", + "integrity": "sha512-qtBS+u3m4UxCVTTQBm58IR4TJWZKYVRa/egONxzkQtqEYhFc9HVno4S7//ABFRJR5LeCcrZtcBpZJ5SJkJkGEA==", + "hasInstallScript": true, + "dependencies": { + "empty-dir": "^0.1.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "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, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-svelte": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.7.tgz", + "integrity": "sha512-/Dswx/ea0lV34If1eDcG3nulQ63YNr5KPDfMsjbdtpSWOxKKJ7nAc2qlVuYwEvCr4raIuredNoR7K4JCkmTGaQ==", + "dev": true, + "peerDependencies": { + "prettier": "^3.0.0", + "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" + } + }, + "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, + "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" + } + ] + }, + "node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", + "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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "dev": true + }, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz", + "integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "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, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svelte": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.1.12.tgz", + "integrity": "sha512-U9BwbSybb9QAKAHg4hl61hVBk97U2QjUKmZa5++QEGoi6Nml6x6cC9KmNT1XObGawToN3DdLpdCs/Z5Yl5IXjQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "acorn-typescript": "^1.4.13", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "esm-env": "^1.0.0", + "esrap": "^1.2.2", + "is-reference": "^3.0.2", + "locate-character": "^3.0.0", + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/svelte-check": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.5.tgz", + "integrity": "sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", + "picocolors": "^1.0.0", + "sade": "^1.7.4" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "engines": { + "node": ">= 18.0.0" + }, + "peerDependencies": { + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" + } + }, + "node_modules/svelte-check/node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/svelte-check/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, + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/svelte-eslint-parser": { + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz", + "integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==", + "dev": true, + "dependencies": { + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "postcss": "^8.4.39", + "postcss-scss": "^4.0.9" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } + } + }, + "node_modules/svelte-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/svelte-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-glob": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", + "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", + "dev": true, + "dependencies": { + "globalyzer": "0.1.0", + "globrex": "^0.1.2" + } + }, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "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 + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "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/vite": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.3.tgz", + "integrity": "sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "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, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true + } + } +} diff --git a/package.json b/package.json index b05d7b5..117b430 100644 --- a/package.json +++ b/package.json @@ -13,19 +13,26 @@ }, "devDependencies": { "@sveltejs/adapter-auto": "^3.3.1", - "@sveltejs/kit": "^2.7.3", - "@typescript-eslint/eslint-plugin": "^8.11.0", - "@typescript-eslint/parser": "^8.11.0", - "eslint": "^9.13.0", + "@sveltejs/kit": "^2.8.0", + "@types/node": "^22.9.0", + "@types/pg": "^8.11.10", + "@typescript-eslint/eslint-plugin": "^8.13.0", + "@typescript-eslint/parser": "^8.13.0", + "eslint": "^9.14.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.46.0", "prettier": "^3.3.3", "prettier-plugin-svelte": "^3.2.7", - "svelte": "^5.1.3", + "svelte": "^5.1.12", "svelte-check": "^4.0.5", - "tslib": "^2.8.0", + "tslib": "^2.8.1", "typescript": "^5.6.3", "vite": "^5.4.10" }, - "type": "module" + "type": "module", + "dependencies": { + "mysql2": "^3.11.4", + "pg": "^8.13.1", + "postgresql": "^0.0.1" + } } diff --git a/src/lib/server-assets/database.ts b/src/lib/server-assets/database.ts new file mode 100644 index 0000000..6aa0b14 --- /dev/null +++ b/src/lib/server-assets/database.ts @@ -0,0 +1,100 @@ +import pg from 'pg' +const { Client } = pg +import { + DB_HOST, + DB_USER, + DB_PASSWORD, + POSTGRES_DATABASE, + DB_PORT, + USE_DB +} from '$env/static/private' +import type { AutoAction, AutoActionData, TeamMatch, TeleAction, TeleActionData } from '$lib/types'; + +// Whether or not the database is currently being used +const use_db : boolean = USE_DB === "true"; + +const db = new Client({ + user: DB_USER, + password: DB_PASSWORD, + host: DB_HOST, + port: DB_PORT, + database: POSTGRES_DATABASE, +}); +await db.connect(); + +// Returns the number of occurences of the action val with success status success in the auto-actions of match +function countAuto(val : AutoAction, success : boolean, match : TeamMatch): number { + return match.auto_actions.filter((data) => data.action === val && data.success == success).length; +} + +// Returns the number of occurences of the action val with success status success in the tele-actions of match +function countTele(val : TeleAction, success : boolean, match : TeamMatch): number { + return match.tele_actions.filter((data) => data.action === val && data.success == success).length; +} + +type query1 = {action: TeleAction; success: boolean}; + + +export async function insertTeamMatch(match : TeamMatch): Promise { + if (!use_db) return true; + + let {team_key, match_key, scout_id, skill, notes, broke, died, auto_actions, tele_actions} = match; + + + try { + + const tele_query = await db.query('INSERT INTO TeleActions VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15)', + (([ + 'IntakeTote', + 'EjectTote', + 'IntakeBalloon', + 'ScoreBalloonLow', + 'ScoreYourHeldTote', + 'ScoreExternalTote', + 'ScoreOtherRobotTote' + ] as TeleAction[]) + .flatMap((val) => [{action : val,success : true}, {action:val, success:false}]) + .map((val) => countTele(val.action, val.success, match)) as (number | TeleActionData[])[]) + .concat([tele_actions]) + ); + const tele_id = tele_query.rows[0]; + + const auto_query = await db.query('INSERT INTO AutoActions VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)', + (([ + 'IntakeTote', + 'EjectTote', + 'IntakeBalloon', + 'ScoreBalloonLow', + 'ScoreYourHeldTote', + 'ScoreExternalTote', + 'ScoreOtherRobotTote', + 'IntakeBunny', + 'ScoreBunnyTote', + 'ScoreBunnyLow' + ] as AutoAction[]) + .flatMap((val) => [{action : val,success : true}, {action:val, success:false}]) + .map((val) => countAuto(val.action, val.success, match)) as (number | AutoActionData[])[]) + .concat([auto_actions]) + ); + const auto_id = auto_query.rows[0]; + + await db.query('INSERT INTO TeamMatches VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)', + [ + scout_id, + match_key, + team_key, + skill, + notes, + broke, + died, + tele_id, + auto_id + ] + ); + + return true; + } catch (error) { + console.error(error); + return false; + } +}; diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..b4ce3ea --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,36 @@ +export type TeamMatch = { + team_key: string; + match_key: string; + scout_id: string; + skill : number; + notes : string; + broke : boolean; + died : boolean; + auto_actions: AutoActionData[]; + tele_actions: TeleActionData[]; +}; + +export type AutoActionData = { + action: AutoAction; + success: boolean; +}; + +export type TeleActionData = { + action: TeleAction; + success: boolean; +}; + +export type AutoAction = TeleAction | BunnyAction; +export type BunnyAction = 'IntakeBunny' | 'ScoreBunnyTote' | 'ScoreBunnyLow'; +export type TeleAction = + | 'IntakeTote' + | 'EjectTote' + | 'IntakeBalloon' + | 'TakeBalloonFromCoral' + | 'ScoreYourHeldTote' + | 'ScoreOtherRobotTote' + | 'ScoreExternalTote' + | 'ScoreBalloonLow'; +export type ItemInputState = 'Intake' | 'Score' | 'None'; +export type TeleInputState = TeleAction | ItemInputState; +export type AutoInputState = TeleInputState | BunnyAction; \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 9d9d103..8b3c8ee 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -9,6 +9,18 @@ latestActions.push({ type: actionType.IntakeTote, result: actionResult.success }); } + async function submit() { + const response = await fetch('/api/submit', { + method: 'POST', + body: JSON.stringify(latestActions), + headers: { + 'content-type': 'application/json' + } + }); + + console.log(await response.json()); + } + let latestActions: ActionData[] = $state([]); $effect(() => { @@ -20,6 +32,7 @@ +