From 9dd48cce28068a4e7609e5b1a11d80c760ccf1b8 Mon Sep 17 00:00:00 2001 From: FaisalRidho12 Date: Tue, 2 Jun 2026 13:47:00 +0700 Subject: [PATCH] Upload project Nakula --- App.tsx | 51 +- android/app/src/main/AndroidManifest.xml | 4 +- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3056 -> 9119 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2096 -> 5066 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4569 -> 13564 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6464 -> 23549 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9250 -> 34294 bytes android/build.gradle | 2 +- app.json | 5 +- assets/control.png | Bin 0 -> 13773 bytes assets/dashboard.png | Bin 0 -> 7856 bytes assets/logo.png | Bin 0 -> 100041 bytes assets/report.png | Bin 0 -> 11344 bytes package-lock.json | 1933 ++++++++++++----- package.json | 23 +- src/components/BarChart.tsx | 209 ++ src/components/CalendarPicker.tsx | 237 ++ src/components/CylinderSlinder.tsx | 162 ++ src/components/Sparkline.tsx | 43 + src/navigation/BottomTabNavigator.tsx | 105 + src/screens/ControlScreen.tsx | 401 ++++ src/screens/DashboardScreen.tsx | 391 ++++ src/screens/LaporanScreen.tsx | 452 ++++ src/services/api.ts | 87 + 24 files changed, 3464 insertions(+), 641 deletions(-) create mode 100644 assets/control.png create mode 100644 assets/dashboard.png create mode 100644 assets/logo.png create mode 100644 assets/report.png create mode 100644 src/components/BarChart.tsx create mode 100644 src/components/CalendarPicker.tsx create mode 100644 src/components/CylinderSlinder.tsx create mode 100644 src/components/Sparkline.tsx create mode 100644 src/navigation/BottomTabNavigator.tsx create mode 100644 src/screens/ControlScreen.tsx create mode 100644 src/screens/DashboardScreen.tsx create mode 100644 src/screens/LaporanScreen.tsx create mode 100644 src/services/api.ts diff --git a/App.tsx b/App.tsx index 5e963b1..7f021bf 100644 --- a/App.tsx +++ b/App.tsx @@ -1,45 +1,16 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * - * @format - */ - -import { NewAppScreen } from '@react-native/new-app-screen'; -import { StatusBar, StyleSheet, useColorScheme, View } from 'react-native'; -import { - SafeAreaProvider, - useSafeAreaInsets, -} from 'react-native-safe-area-context'; - -function App() { - const isDarkMode = useColorScheme() === 'dark'; +import React from "react"; +import { StatusBar } from "react-native"; +import { NavigationContainer } from "@react-navigation/native"; +import { SafeAreaProvider } from "react-native-safe-area-context"; +import BottomTabNavigator from "./src/navigation/BottomTabNavigator"; +export default function App() { return ( - - + + + + ); -} - -function AppContent() { - const safeAreaInsets = useSafeAreaInsets(); - - return ( - - - - ); -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, -}); - -export default App; +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index fb78f39..40c52c1 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,6 +1,8 @@ + + P_P!fs)0s~|?3A*xb)9v(JmhTg!f0p53DX_- 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 tKEN0F)D!;>WXK>tRLcygfP+f0;FBUs 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

vm@uePI%@>X8RKIK6+c;0cS_O}?b8yk=2;Ddp; z;t2oEQ_0qbWw2Nn9N);VP8#EuWmtX*lb$I$^8G>@CgWurhrhP#IUuYE?c%+k&-B|e z?(r$hQ$4*uIANZ@c-h_9yf3=ny4tia@`9E!B_2O=llP5{z+Tq&kzXaDBd@@XSyJo1 zoQMWYx7#P~!_!=;4Ln&p^B%PRS1}4BZaW4Ckr{|0$bNY9w#r|8y z^(#KGXch^sYdq)wkV2X(g%T&Y6847SotCaUcp`pkiv7ioG#|6c>u(!wt}ALK|vMAb|n-fKZ~G}s`G<4GaUM?a<+cf6Bqb$#e(0DWF<`Xw+$$8SAvc)s_!+lwsmMvUhuO8kJ zD~5IPoKE~vItbDwog9|k%(BtH!773hDjvg=vSkA{zS<8<`!~#8`i}=Ue*V$S$saA> z-hbMb^X(??E{b_$KN?LqU?i g000I_L_t&o02X(rQE!A+v;Y7A07*qoM6N<$g2oa3fB*mh delta 2084 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⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 8ca12fe024be86e868d14e91120a6902f8e88ac6..bf6028ba5d24742b8f1977a95b80d74c7720c902 100644 GIT binary patch literal 23549 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 z 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 IM6N<$g1jj^m;e9( literal 6464 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 B0*L?s diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index b824ebdd48db917eea2e67a82260a100371f8a24..5caba993408a11bc149b53d6943ca377ee719a0c 100644 GIT binary patch literal 34294 zcmV)+K#0GIP)gt&}i><%1rhs7wQ53xuJ*KTLDo-&guQQ8o4P`|E5xcC~{^QqSBPdvehf2cC$LD-Ksfiv}%Xi9lD@q+a74ttEY>)R$7hLZBeI9 zGt_BO8>m@{ZLu!Y#;R@WK5BnecmyM>ZVknufQVO|a{tycVkT)@F`~|5MloJdCXb_P zyC!J9*Uny-V@|ZYTym|~`>vqOM)q%glRew14Q!WBpTJ`rALX-$?J6SAX>mfA%A9uUnq9J703O z*Xiiv(PY;hQN2YY4oZx1Rd@uWV2xlF4lK4ctd0U(1>m1l5ltfI5i?2Kis5-~n1u%2 zx_I4AILYpD<9*%{FMQ>l^2KQX*ysN8_rK>y)9b32Y_}6{GOhPM!_@7xpQ+lcr^&3` z5?NJhBP^(dg8Vp=`GygUA@Y}|VlqGEJrLwuBv>X4Dj};{9b{H+WooqE*3|2IfN6KY znYR0hx0v0pe#JlN!JjEee|e{THi|IxvwK{BHzXK!dv*X?W)LO9iZsk_28jehxG{Tc zh$!$cCP+jAcNQIdUg;cZR5DSW3TUy%j&{e3FY^w4s&DMH=STU6JU!U#a@mWv_>E{<0+7Pq?<#N8XYUK{Cr^Rc%2S_OTrgyTq4Z9RBz)@AStI!E&S+eNlqfDFzqA8qXTf^Q`Cj3_cIMu%2(N zWi*~OWOqdvb-XIuDa{(VGAgS&j5gJd$Di-3ZNn>-Vton$g-e1ap_5<~EH@@rp_ys8 z&0%)iv+nf|cxZrk+B2iPgC2PW-A_6pZ8ojI6|ihaG%!5>D}xB|Z$n%-YtW@>r5OX% z>e|ZgaQ^>!N5A@&f9Q)N%+CLN-Za|g=rE%~V`}q|44-gXI7|j)J_aw%=wx+kt!Ir9 z2PKjr^78}aEl(hKX#sMVq$97DmY>UJm|wthK^TI;MO`aRbyY@XS6iQT)rUG$pT4!$ z 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 literal 9250 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 diff --git a/android/build.gradle b/android/build.gradle index dad99b0..1ef1a23 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,7 +4,7 @@ buildscript { minSdkVersion = 24 compileSdkVersion = 36 targetSdkVersion = 36 - ndkVersion = "27.1.12297006" + ndkVersion = "27.2.12479018" kotlinVersion = "2.1.20" } repositories { diff --git a/app.json b/app.json index b78a3af..abdf4c1 100644 --- a/app.json +++ b/app.json @@ -1,4 +1,7 @@ { "name": "Nakula", - "displayName": "Nakula" + "displayName": "Nakula", + "plugins": [ + "expo-sharing" + ] } diff --git a/assets/control.png b/assets/control.png new file mode 100644 index 0000000000000000000000000000000000000000..709c9dfd09e2b286ab054eaf853d0250c05d284f GIT binary patch literal 13773 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 literal 0 HcmV?d00001 diff --git a/assets/dashboard.png b/assets/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..11070022b542db40f49550ae72c26da571b894c1 GIT binary patch literal 7856 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 06eb87d..c552d2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,26 @@ "name": "Nakula", "version": "0.0.1", "dependencies": { + "@react-native-community/datetimepicker": "^9.1.0", + "@react-native-community/slider": "^5.1.2", "@react-native/new-app-screen": "0.84.1", + "@react-navigation/bottom-tabs": "^7.15.2", + "@react-navigation/native": "^7.1.31", + "@react-navigation/native-stack": "^7.14.2", + "axios": "^1.15.1", "react": "19.2.3", "react-native": "0.84.1", - "react-native-safe-area-context": "^5.5.2" + "react-native-chart-kit": "^6.12.0", + "react-native-fs": "^2.20.0", + "react-native-gesture-handler": "^2.30.0", + "react-native-html-to-pdf": "^1.3.0", + "react-native-print": "^0.11.0", + "react-native-reanimated": "^4.2.2", + "react-native-safe-area-context": "^5.7.0", + "react-native-screens": "^4.24.0", + "react-native-share": "^12.2.6", + "react-native-svg": "^15.15.3", + "react-native-worklets": "^0.8.1" }, "devDependencies": { "@babel/core": "^7.25.2", @@ -30,6 +46,7 @@ "eslint": "^8.19.0", "jest": "^29.6.3", "prettier": "2.8.8", + "react-native-make": "^1.0.1", "react-test-renderer": "19.2.3", "typescript": "^5.8.3" }, @@ -129,7 +146,6 @@ "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/types": "^7.27.3" @@ -158,7 +174,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -180,7 +195,6 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -195,10 +209,10 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.6.tgz", - "integrity": "sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==", - "devOptional": true, + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.28.6", @@ -224,7 +238,6 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.28.5", @@ -268,7 +281,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/types": "^7.27.1" @@ -290,7 +302,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.1", @@ -308,7 +320,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.28.5", @@ -326,7 +337,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", @@ -367,7 +377,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", @@ -379,22 +389,22 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" @@ -494,7 +504,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.27.1.tgz", "integrity": "sha512-hjlsMBl1aJc5lp8MoCDEZCiYzlgdRAShOjAfRw6X+GlpLpUPU7c3XNLsKFZbQk/1cRzBlJ7CXg3xJAJMrFa1Uw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -574,7 +584,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" @@ -587,7 +597,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.28.6.tgz", "integrity": "sha512-Svlx1fjJFnNz0LZeUaybRukSxZI3KkpApUmIRzEdXC5k8ErTOz0OD0kNrICi5Vc3GlpP5ZCeRyRO+mfWTSz+iQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -603,7 +613,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.28.6.tgz", "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -674,7 +684,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -792,7 +801,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -825,7 +833,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -841,7 +848,7 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", @@ -859,7 +866,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.28.6", @@ -893,7 +900,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -909,7 +916,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", @@ -943,7 +949,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -981,7 +986,7 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -1113,7 +1118,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -1130,7 +1135,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", @@ -1246,7 +1251,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.28.6", @@ -1299,7 +1303,7 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.28.5", @@ -1332,7 +1336,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -1401,7 +1404,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -1417,7 +1420,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6", @@ -1450,7 +1452,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.28.6", @@ -1467,7 +1469,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -1501,7 +1503,7 @@ "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1517,7 +1519,7 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -1537,7 +1539,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1553,7 +1555,7 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1569,7 +1571,7 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.28.6" @@ -1618,7 +1620,7 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.28.6", @@ -1639,7 +1641,7 @@ "version": "0.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.5", @@ -1653,7 +1655,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1702,7 +1703,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -1734,7 +1734,6 @@ "version": "7.28.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", @@ -1787,7 +1786,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", - "devOptional": true, "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", @@ -1818,9 +1816,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.0.tgz", - "integrity": "sha512-fNEdfc0yi16lt6IZo2Qxk3knHVdfMYX33czNb4v8yWhemoBhibCpQK/uYHtSKIiO+p/zd3+8fYVXhQdOVV608w==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", "dev": true, "license": "MIT", "dependencies": { @@ -1917,10 +1915,29 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1978,6 +1995,18 @@ "dev": true, "license": "MIT" }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "license": "MIT", + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", @@ -2052,9 +2081,9 @@ "license": "MIT" }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -2099,14 +2128,14 @@ "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" @@ -2136,9 +2165,9 @@ "license": "MIT" }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -2290,9 +2319,9 @@ } }, "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", "license": "MIT", "engines": { "node": ">=8" @@ -2666,7 +2695,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -2680,7 +2709,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -2690,7 +2719,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -2704,7 +2733,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-20.1.0.tgz", "integrity": "sha512-441WsVtRe4nGJ9OzA+QMU1+22lA6Q2hRWqqIMKD0wjEMLqcSfOZyu2UL9a/yRpL/dRpyUsU4n7AxqKfTKO/Csg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-clean": "20.1.0", @@ -2734,7 +2763,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-20.1.0.tgz", "integrity": "sha512-77L4DifWfxAT8ByHnkypge7GBMYpbJAjBGV+toowt5FQSGaTBDcBHCX+FFqFRukD5fH6i8sZ41Gtw+nbfCTTIA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-tools": "20.1.0", @@ -2747,7 +2776,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-20.1.0.tgz", "integrity": "sha512-1x9rhLLR/dKKb92Lb5O0l0EmUG08FHf+ZVyVEf9M+tX+p5QIm52MRiy43R0UAZ2jJnFApxRk+N3sxoYK4Dtnag==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-tools": "20.1.0", @@ -2762,7 +2791,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-android/-/cli-config-android-20.1.0.tgz", "integrity": "sha512-3A01ZDyFeCALzzPcwP/fleHoP3sGNq1UX7FzxkTrOFX8RRL9ntXNXQd27E56VU4BBxGAjAJT4Utw8pcOjJceIA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-tools": "20.1.0", @@ -2775,7 +2804,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-config-apple/-/cli-config-apple-20.1.0.tgz", "integrity": "sha512-n6JVs8Q3yxRbtZQOy05ofeb1kGtspGN3SgwPmuaqvURF9fsuS7c4/9up2Kp9C+1D2J1remPJXiZLNGOcJvfpOA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-tools": "20.1.0", @@ -2788,7 +2817,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-20.1.0.tgz", "integrity": "sha512-QfJF1GVjA4PBrIT3SJ0vFFIu0km1vwOmLDlOYVqfojajZJ+Dnvl0f94GN1il/jT7fITAxom///XH3/URvi7YTQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-config": "20.1.0", @@ -2812,7 +2841,7 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "devOptional": true, + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2825,7 +2854,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-20.1.0.tgz", "integrity": "sha512-TeHPDThOwDppQRpndm9kCdRCBI8AMy3HSIQ+iy7VYQXL5BtZ5LfmGdusoj7nVN/ZGn0Lc6Gwts5qowyupXdeKg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-config-android": "20.1.0", @@ -2839,7 +2868,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-20.1.0.tgz", "integrity": "sha512-0ih1hrYezSM2cuOlVnwBEFtMwtd8YgpTLmZauDJCv50rIumtkI1cQoOgLoS4tbPCj9U/Vn2a9BFH0DLFOOIacg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-config-apple": "20.1.0", @@ -2853,7 +2882,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-20.1.0.tgz", "integrity": "sha512-XN7Da9z4WsJxtqVtEzY8q2bv22OsvzaFP5zy5+phMWNoJlU4lf7IvBSxqGYMpQ9XhYP7arDw5vmW4W34s06rnA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-platform-apple": "20.1.0" @@ -2863,7 +2892,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-20.1.0.tgz", "integrity": "sha512-Tb415Oh8syXNT2zOzLzFkBXznzGaqKCiaichxKzGCDKg6JGHp3jSuCmcTcaPeYC7oc32n/S3Psw7798r4Q/7lA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native-community/cli-tools": "20.1.0", @@ -2882,7 +2911,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-20.1.0.tgz", "integrity": "sha512-/YmzHGOkY6Bgrv4OaA1L8rFqsBlQd1EB2/ipAoKPiieV0EcB5PUamUSuNeFU3sBZZTYQCUENwX4wgOHgFUlDnQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@vscode/sudo-prompt": "^9.0.0", @@ -2901,7 +2930,7 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "devOptional": true, + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2914,7 +2943,7 @@ "version": "20.1.0", "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-20.1.0.tgz", "integrity": "sha512-D0kDspcwgbVXyNjwicT7Bb1JgXjijTw1JJd+qxyF/a9+sHv7TU4IchV+gN38QegeXqVyM4Ym7YZIvXMFBmyJqA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "joi": "^17.2.1" @@ -2924,7 +2953,7 @@ "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "devOptional": true, + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2933,6 +2962,35 @@ "node": ">=10" } }, + "node_modules/@react-native-community/datetimepicker": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-9.1.0.tgz", + "integrity": "sha512-eadbnk+I2vxvW30iTAsm/qlCnMMAadkifIMYNEB2lzhxN/SvlKc7S2V4k5DyrwjdCbqdcMk3t9K6fnUMcAV34w==", + "license": "MIT", + "dependencies": { + "invariant": "^2.2.4" + }, + "peerDependencies": { + "expo": ">=52.0.0", + "react": "*", + "react-native": "*", + "react-native-windows": "*" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + }, + "react-native-windows": { + "optional": true + } + } + }, + "node_modules/@react-native-community/slider": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-5.2.0.tgz", + "integrity": "sha512-484sH8aWEaSjxaZ7HT3YZ8CKDcNes2synko1vdEz5DFEdvKAduxKJTj22L/qBMD7rtIkfbX69DMzWDAGbOAV6w==", + "license": "MIT" + }, "node_modules/@react-native/assets-registry": { "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.84.1.tgz", @@ -2946,7 +3004,7 @@ "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.84.1.tgz", "integrity": "sha512-vorvcvptGxtK0qTDCFQb+W3CU6oIhzcX5dduetWRBoAhXdthEQM0MQnF+GTXoXL8/luffKgy7PlZRG/WeI/oRQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.3", @@ -2960,7 +3018,7 @@ "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.84.1.tgz", "integrity": "sha512-3GpmCKk21f4oe32bKIdmkdn+WydvhhZL+1nsoFBGi30Qrq9vL16giKu31OcnWshYz139x+mVAvCyoyzgn8RXSw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -3222,7 +3280,7 @@ "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.84.1.tgz", "integrity": "sha512-NswINguTz0eg1Dc0oGO/1dejXSr6iQaz8/NnCRn5HJdA3dGfqadS7zlYv0YjiWpgKgcW6uENaIEgJOQww0KSpw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -3241,7 +3299,7 @@ "version": "0.84.1", "resolved": "https://registry.npmjs.org/@react-native/metro-config/-/metro-config-0.84.1.tgz", "integrity": "sha512-KlRawK4aXxRLlR3HYVfZKhfQp7sejQefQ/LttUWUkErhKO0AFt+yznoSLq7xwIrH9K3A3YwImHuFVtUtuDmurA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@react-native/js-polyfills": "0.84.1", @@ -3308,11 +3366,116 @@ } } }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "7.15.10", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.15.10.tgz", + "integrity": "sha512-Ao/yYlrpr0cwYYGxt9FDMQk+tTSHNm4WTaszyhroINLdoEMuKH19k1tGFdYbRBKHJx1UIH8kD+EZTYW1w6LL3Q==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.15", + "color": "^4.2.3", + "sf-symbols-typescript": "^2.1.0" + }, + "peerDependencies": { + "@react-navigation/native": "^7.2.2", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" + } + }, + "node_modules/@react-navigation/core": { + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-7.17.2.tgz", + "integrity": "sha512-Rt2OZwcgOmjv401uLGAKaRM6xo0fiBce/A7LfRHI1oe5FV+KooWcgAoZ2XOtgKj6UzVMuQWt3b2e6rxo/mDJRA==", + "license": "MIT", + "dependencies": { + "@react-navigation/routers": "^7.5.3", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "query-string": "^7.1.3", + "react-is": "^19.1.0", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "react": ">= 18.2.0" + } + }, + "node_modules/@react-navigation/elements": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.9.15.tgz", + "integrity": "sha512-cyz/pPiyyC6gaTVLsGFc1g0MYgrmuCFqklAWGXMWPscr5YU3ui94vPI4vnZwcsEy0T758TQWLzmS5XudZeRKcA==", + "license": "MIT", + "dependencies": { + "color": "^4.2.3", + "use-latest-callback": "^0.2.4", + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@react-native-masked-view/masked-view": ">= 0.2.0", + "@react-navigation/native": "^7.2.2", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "@react-native-masked-view/masked-view": { + "optional": true + } + } + }, + "node_modules/@react-navigation/native": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-7.2.2.tgz", + "integrity": "sha512-kem1Ko2BcbAjmbQIv66dNmr6EtfDut3QU0qjsVhMnLLhktwyXb6FzZYp8gTrUb6AvkAbaJoi+BF5Pl55pAUa5w==", + "license": "MIT", + "dependencies": { + "@react-navigation/core": "^7.17.2", + "escape-string-regexp": "^4.0.0", + "fast-deep-equal": "^3.1.3", + "nanoid": "^3.3.11", + "use-latest-callback": "^0.2.4" + }, + "peerDependencies": { + "react": ">= 18.2.0", + "react-native": "*" + } + }, + "node_modules/@react-navigation/native-stack": { + "version": "7.14.12", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-7.14.12.tgz", + "integrity": "sha512-dUfpkrVeVKKV8iqXsmoUp3Rv0iH3YaB3eZwScru/FlcqAp/r3/qA6zEXkGX9hZK+/ziWAPFrf1frBSNbgOYSFQ==", + "license": "MIT", + "dependencies": { + "@react-navigation/elements": "^2.9.15", + "color": "^4.2.3", + "sf-symbols-typescript": "^2.1.0", + "warn-once": "^0.1.1" + }, + "peerDependencies": { + "@react-navigation/native": "^7.2.2", + "react": ">= 18.2.0", + "react-native": "*", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-screens": ">= 4.0.0" + } + }, + "node_modules/@react-navigation/routers": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-7.5.3.tgz", + "integrity": "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg==", + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11" + } + }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" @@ -3322,14 +3485,14 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { @@ -3406,6 +3569,12 @@ "@types/node": "*" } }, + "node_modules/@types/hammerjs": { + "version": "2.0.46", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.46.tgz", + "integrity": "sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==", + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -3442,19 +3611,18 @@ } }, "node_modules/@types/node": { - "version": "25.3.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.3.tgz", - "integrity": "sha512-DpzbrH7wIcBaJibpKo9nnSQL0MTRdnWttGyE5haGwK86xgMOkFLp7vEyfQPGLOJh5wNYiJ3V9PmUMDhV9u8kkQ==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@types/react": { "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.2.2" @@ -3464,7 +3632,6 @@ "version": "19.1.0", "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-19.1.0.tgz", "integrity": "sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/react": "*" @@ -3492,20 +3659,20 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz", - "integrity": "sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.1.tgz", + "integrity": "sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/type-utils": "8.56.1", - "@typescript-eslint/utils": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.59.1", + "@typescript-eslint/type-utils": "8.59.1", + "@typescript-eslint/utils": "8.59.1", + "@typescript-eslint/visitor-keys": "8.59.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3515,22 +3682,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.56.1", + "@typescript-eslint/parser": "^8.59.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz", - "integrity": "sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.59.1.tgz", + "integrity": "sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/scope-manager": "8.59.1", + "@typescript-eslint/types": "8.59.1", + "@typescript-eslint/typescript-estree": "8.59.1", + "@typescript-eslint/visitor-keys": "8.59.1", "debug": "^4.4.3" }, "engines": { @@ -3542,18 +3709,18 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz", - "integrity": "sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.59.1.tgz", + "integrity": "sha512-+MuHQlHiEr00Of/IQbE/MmEoi44znZHbR/Pz7Opq4HryUOlRi+/44dro9Ycy8Fyo+/024IWtw8m4JUMCGTYxDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.56.1", - "@typescript-eslint/types": "^8.56.1", + "@typescript-eslint/tsconfig-utils": "^8.59.1", + "@typescript-eslint/types": "^8.59.1", "debug": "^4.4.3" }, "engines": { @@ -3564,18 +3731,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz", - "integrity": "sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.59.1.tgz", + "integrity": "sha512-LwuHQI4pDOYVKvmH2dkaJo6YZCSgouVgnS/z7yBPKBMvgtBvyLqiLy9Z6b7+m/TRcX1NFYUqZetI5Y+aT4GEfg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1" + "@typescript-eslint/types": "8.59.1", + "@typescript-eslint/visitor-keys": "8.59.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3586,9 +3753,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz", - "integrity": "sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.59.1.tgz", + "integrity": "sha512-/0nEyPbX7gRsk0Uwfe4ALwwgxuA66d/l2mhRDNlAvaj4U3juhUtJNq0DsY8M2AYwwb9rEq2hrC3IcIcEt++iJA==", "dev": true, "license": "MIT", "engines": { @@ -3599,21 +3766,21 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz", - "integrity": "sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.59.1.tgz", + "integrity": "sha512-klWPBR2ciQHS3f++ug/mVnWKPjBUo7icEL3FAO1lhAR1Z1i5NQYZ1EannMSRYcq5qCv5wNALlXr6fksRHyYl7w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1", - "@typescript-eslint/utils": "8.56.1", + "@typescript-eslint/types": "8.59.1", + "@typescript-eslint/typescript-estree": "8.59.1", + "@typescript-eslint/utils": "8.59.1", "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3624,13 +3791,13 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz", - "integrity": "sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.59.1.tgz", + "integrity": "sha512-ZDCjgccSdYPw5Bxh+my4Z0lJU96ZDN7jbBzvmEn0FZx3RtU1C7VWl6NbDx94bwY3V5YsgwRzJPOgeY2Q/nLG8A==", "dev": true, "license": "MIT", "engines": { @@ -3642,21 +3809,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz", - "integrity": "sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.59.1.tgz", + "integrity": "sha512-OUd+vJS05sSkOip+BkZ/2NS8RMxrAAJemsC6vU3kmfLyeaJT0TftHkV9mcx2107MmsBVXXexhVu4F0TZXyMl4g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.56.1", - "@typescript-eslint/tsconfig-utils": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/visitor-keys": "8.56.1", + "@typescript-eslint/project-service": "8.59.1", + "@typescript-eslint/tsconfig-utils": "8.59.1", + "@typescript-eslint/types": "8.59.1", + "@typescript-eslint/visitor-keys": "8.59.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" + "ts-api-utils": "^2.5.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3666,7 +3833,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { @@ -3683,16 +3850,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz", - "integrity": "sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.59.1.tgz", + "integrity": "sha512-3pIeoXhCeYH9FSCBI8P3iNwJlGuzPlYKkTlen2O9T1DSeeg8UG8jstq6BLk+Mda0qup7mgk4z4XL4OzRaxZ8LA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.56.1", - "@typescript-eslint/types": "8.56.1", - "@typescript-eslint/typescript-estree": "8.56.1" + "@typescript-eslint/scope-manager": "8.59.1", + "@typescript-eslint/types": "8.59.1", + "@typescript-eslint/typescript-estree": "8.59.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3703,17 +3870,17 @@ }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.56.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz", - "integrity": "sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==", + "version": "8.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.59.1.tgz", + "integrity": "sha512-LdDNl6C5iJExcM0Yh0PwAIBb9PrSiCsWamF/JyEZawm3kFDnRoaq3LGE4bpyRao/fWeGKKyw7icx0YxrLFC5Cg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.56.1", + "@typescript-eslint/types": "8.59.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -3748,7 +3915,7 @@ "version": "9.3.2", "resolved": "https://registry.npmjs.org/@vscode/sudo-prompt/-/sudo-prompt-9.3.2.tgz", "integrity": "sha512-gcXoCN00METUNFeQOFJ+C9xUI0DKB+0EGMVg7wbVYRHBw2Eq3fKisDZOkRdOz3kqXRKOENMfShPOmypw1/8nOw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/abort-controller": { @@ -3767,7 +3934,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "mime-types": "~2.1.34", @@ -3781,7 +3948,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -3819,9 +3986,9 @@ } }, "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -3874,7 +4041,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "colorette": "^1.0.7", @@ -3886,7 +4053,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -3896,7 +4063,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^4.1.0" @@ -3946,14 +4113,14 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "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==", - "devOptional": true, + "dev": true, "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { @@ -4104,7 +4271,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -4124,7 +4291,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "devOptional": true, + "dev": true, + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, "node_modules/available-typed-arrays": { @@ -4143,6 +4316,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axios": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.2.tgz", + "integrity": "sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" + } + }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4212,14 +4396,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.15.tgz", - "integrity": "sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==", - "devOptional": true, + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.28.6", - "@babel/helper-define-polyfill-provider": "^0.6.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -4227,13 +4411,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.0.tgz", - "integrity": "sha512-AvDcMxJ34W4Wgy4KBIIePQTAOP1Ie2WFwkQp3dB7FQ/f0lI5+nM96zUnYEOE1P9sEg0es5VCP0HxiWu5fUHZAQ==", + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "core-js-compat": "^3.48.0" }, "peerDependencies": { @@ -4241,13 +4425,13 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.6.tgz", - "integrity": "sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==", - "devOptional": true, + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.6" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4266,7 +4450,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-flow": "^7.12.1" @@ -4324,6 +4508,11 @@ "node": "18 || 20 || >=22" } }, + "node_modules/base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -4345,9 +4534,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", - "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", + "version": "2.10.23", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.23.tgz", + "integrity": "sha512-xwVXGqevyKPsiuQdLj+dZMVjidjJV508TBqexND5HrF89cGdCYCJFB3qhcxRHSeMctdCfbR1jrxBajhDy7o29g==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -4360,7 +4549,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "buffer": "^5.5.0", @@ -4369,10 +4558,10 @@ } }, "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", - "devOptional": true, + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", + "dev": true, "license": "MIT", "dependencies": { "bytes": "~3.1.2", @@ -4383,7 +4572,7 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "on-finished": "~2.4.1", - "qs": "~6.14.0", + "qs": "~6.15.1", "raw-body": "~2.5.3", "type-is": "~1.6.18", "unpipe": "~1.0.0" @@ -4397,7 +4586,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -4407,13 +4596,19 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "devOptional": true, + "dev": true, "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, "node_modules/brace-expansion": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.4.tgz", - "integrity": "sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4436,9 +4631,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "funding": [ { "type": "opencollective", @@ -4455,11 +4650,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -4481,7 +4676,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -4512,22 +4707,22 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -4541,7 +4736,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -4555,7 +4749,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -4572,7 +4766,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4588,9 +4782,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001775", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001775.tgz", - "integrity": "sha512-s3Qv7Lht9zbVKE9XoTyRG6wVDCKdtOFIjBGg3+Yhn6JaytuNKPIjBMTMIY1AnOH3seL5mvF+x33oGAyK3hVt3A==", + "version": "1.0.30001791", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001791.tgz", + "integrity": "sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==", "funding": [ { "type": "opencollective", @@ -4715,7 +4909,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" @@ -4728,7 +4922,7 @@ "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -4755,7 +4949,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.8" @@ -4779,6 +4973,19 @@ "dev": true, "license": "MIT" }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4797,25 +5004,47 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "devOptional": true, + "dev": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "9.5.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || >=14" @@ -4825,7 +5054,7 @@ "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" @@ -4838,7 +5067,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "bytes": "3.1.2", @@ -4857,7 +5086,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ms": "2.0.0" @@ -4867,7 +5096,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/concat-map": { @@ -4910,7 +5139,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -4923,10 +5152,10 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.48.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.48.0.tgz", - "integrity": "sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==", - "devOptional": true, + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.28.1" @@ -4937,10 +5166,10 @@ } }, "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "devOptional": true, + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.1.tgz", + "integrity": "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ==", + "dev": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.1", @@ -4999,11 +5228,51 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "devOptional": true, "license": "MIT" }, "node_modules/data-view-buffer": { @@ -5061,10 +5330,10 @@ } }, "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", - "devOptional": true, + "version": "1.11.20", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz", + "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==", + "dev": true, "license": "MIT" }, "node_modules/debug": { @@ -5088,16 +5357,25 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/dedent": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -5120,7 +5398,7 @@ "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==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -5130,7 +5408,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "clone": "^1.0.2" @@ -5175,6 +5453,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -5227,11 +5514,65 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", @@ -5249,9 +5590,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", - "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==", + "version": "1.5.344", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.344.tgz", + "integrity": "sha512-4MxfbmNDm+KPh066EZy+eUnkcDPcZ35wNmOWzFuh/ijvHsve6kbLTLURy88uCNK5FbpN+yk2nQY6BYh1GEt+wg==", "license": "ISC" }, "node_modules/emittery": { @@ -5282,11 +5623,23 @@ "node": ">= 0.8" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -5296,7 +5649,7 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", - "devOptional": true, + "dev": true, "license": "MIT", "bin": { "envinfo": "dist/cli.js" @@ -5309,7 +5662,7 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -5328,7 +5681,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.2.tgz", "integrity": "sha512-kNAL7hESndBCrWwS72QyV3IVOTrVmj9D062FV5BQswNL5zEdeRmz/WJFyh6Aj/plvvSOrzddkxW57HgkZcR9Fw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", @@ -5343,9 +5696,9 @@ } }, "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", "dev": true, "license": "MIT", "dependencies": { @@ -5415,7 +5768,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5425,23 +5777,22 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-iterator-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", - "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz", + "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", + "call-bind": "^1.0.9", "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.24.1", + "es-abstract": "^1.24.2", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", @@ -5453,7 +5804,7 @@ "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", "iterator.prototype": "^1.1.5", - "safe-array-concat": "^1.1.3" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5463,7 +5814,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "devOptional": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -5476,7 +5826,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -5675,9 +6024,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "29.15.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.0.tgz", - "integrity": "sha512-ZCGr7vTH2WSo2hrK5oM2RULFmMruQ7W3cX7YfwoTiPfzTGTFBMmrVIz45jZHd++cGKj/kWf02li/RhTGcANJSA==", + "version": "29.15.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.15.2.tgz", + "integrity": "sha512-kEN4r9RZl1xcsb4arGq89LrcVdOUFII/JSCwtTPJyv16mDwmPrcuEQwpxqZHeINvcsd7oK5O/rhdGlxFRaZwvQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5690,7 +6039,7 @@ "@typescript-eslint/eslint-plugin": "^8.0.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "jest": "*", - "typescript": ">=4.8.4 <6.0.0" + "typescript": ">=4.8.4 <7.0.0" }, "peerDependenciesMeta": { "@typescript-eslint/eslint-plugin": { @@ -5738,9 +6087,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", "dev": true, "license": "MIT", "dependencies": { @@ -5754,7 +6103,7 @@ "node": ">=18" }, "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" } }, "node_modules/eslint-plugin-react-hooks/node_modules/hermes-estree": { @@ -5802,9 +6151,9 @@ "license": "MIT" }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -5904,9 +6253,9 @@ "license": "MIT" }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -6079,7 +6428,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", @@ -6135,14 +6484,13 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6159,7 +6507,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "devOptional": true, + "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -6182,10 +6530,10 @@ "license": "MIT" }, "node_modules/fast-xml-parser": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.4.tgz", - "integrity": "sha512-jE8ugADnYOBsu1uaoayVl1tVKAMNOXyjwvv2U6udEA2ORBhDooJDWoGxTkhd4Qn4yh59JVVt/pKXtjPwx9OguQ==", - "devOptional": true, + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.6.tgz", + "integrity": "sha512-Yd4vkROfJf8AuJrDIVMVmYfULKmIJszVsMv7Vo71aocsKgFxpdlpSHXSaInvyYfgw2PRuObQSW2GFpVMUjxu9A==", + "dev": true, "funding": [ { "type": "github", @@ -6204,7 +6552,7 @@ "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "devOptional": true, + "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -6231,6 +6579,23 @@ "bser": "2.1.1" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -6256,6 +6621,15 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", @@ -6305,7 +6679,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^6.0.0", @@ -6334,9 +6708,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -6346,6 +6720,26 @@ "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", "license": "MIT" }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -6362,6 +6756,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -6375,7 +6785,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -6410,7 +6820,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6479,7 +6888,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "devOptional": true, "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", @@ -6513,7 +6921,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "devOptional": true, "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", @@ -6527,7 +6934,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -6595,9 +7002,9 @@ "license": "MIT" }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -6653,7 +7060,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6730,7 +7136,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -6743,7 +7148,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -6756,10 +7160,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "devOptional": true, + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -6789,6 +7192,21 @@ "hermes-estree": "0.32.0" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -6842,7 +7260,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=10.17.0" @@ -6852,7 +7270,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -6865,7 +7283,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -6911,7 +7329,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -7016,7 +7434,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/is-async-function": { @@ -7089,7 +7507,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -7155,7 +7573,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7181,7 +7599,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -7221,7 +7639,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -7234,7 +7652,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7354,7 +7772,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -7418,7 +7836,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -7477,7 +7895,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -8186,7 +8604,7 @@ "version": "17.13.3", "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", @@ -8206,7 +8624,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -8244,7 +8662,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/json-schema-traverse": { @@ -8277,7 +8695,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "devOptional": true, + "dev": true, "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -8313,17 +8731,17 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/launch-editor": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.1.tgz", - "integrity": "sha512-lPSddlAAluRKJ7/cjRFoXUFzaX7q/YKI7yPHuEvSJVqoXvFnJov1/Ud87Aa4zULIbA9Nja4mSPK8l0z/7eV2wA==", - "devOptional": true, + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "dev": true, "license": "MIT", "dependencies": { "picocolors": "^1.1.1", @@ -8382,14 +8800,14 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "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==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^5.0.0" @@ -8402,17 +8820,16 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true, + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { @@ -8432,7 +8849,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", @@ -8449,7 +8866,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-fragments": "^0.2.1", @@ -8464,7 +8881,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "devOptional": true, + "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -8476,7 +8893,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "locate-path": "^5.0.0", @@ -8490,7 +8907,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "p-locate": "^4.1.0" @@ -8503,7 +8920,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "p-try": "^2.0.0" @@ -8519,7 +8936,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^2.2.0" @@ -8532,7 +8949,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -8547,14 +8964,14 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/logkitty/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "cliui": "^6.0.0", @@ -8577,7 +8994,7 @@ "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "devOptional": true, + "dev": true, "license": "ISC", "dependencies": { "camelcase": "^5.0.0", @@ -8656,17 +9073,22 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" } }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -8688,16 +9110,16 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/metro": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.4.tgz", - "integrity": "sha512-eBkAtcob+YmvSLL+/rsFiK8dHNfDbQA2/pi0lnxg3E6LLtUpwDfdGJ9WBWXkj0PVeOhoWQyj9Rt7s/+6k/GXuA==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.83.6.tgz", + "integrity": "sha512-pbdndsAZ2F/ceopDdhVbttpa/hfLzXPJ/husc+QvQ33R0D9UXJKzTn5+OzOXx4bpQNtAKF2bY88cCI3Zl44xDQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", @@ -8715,24 +9137,24 @@ "error-stack-parser": "^2.0.6", "flow-enums-runtime": "^0.0.6", "graceful-fs": "^4.2.4", - "hermes-parser": "0.33.3", + "hermes-parser": "0.35.0", "image-size": "^1.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.83.4", - "metro-cache": "0.83.4", - "metro-cache-key": "0.83.4", - "metro-config": "0.83.4", - "metro-core": "0.83.4", - "metro-file-map": "0.83.4", - "metro-resolver": "0.83.4", - "metro-runtime": "0.83.4", - "metro-source-map": "0.83.4", - "metro-symbolicate": "0.83.4", - "metro-transform-plugins": "0.83.4", - "metro-transform-worker": "0.83.4", + "metro-babel-transformer": "0.83.6", + "metro-cache": "0.83.6", + "metro-cache-key": "0.83.6", + "metro-config": "0.83.6", + "metro-core": "0.83.6", + "metro-file-map": "0.83.6", + "metro-resolver": "0.83.6", + "metro-runtime": "0.83.6", + "metro-source-map": "0.83.6", + "metro-symbolicate": "0.83.6", + "metro-transform-plugins": "0.83.6", + "metro-transform-worker": "0.83.6", "mime-types": "^3.0.1", "nullthrows": "^1.1.1", "serialize-error": "^2.1.0", @@ -8749,14 +9171,15 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.4.tgz", - "integrity": "sha512-xfNtsYIigybqm9xVL3ygTYYNFyYTMf2lGg/Wt+znVGtwcjXoRPG80WlL5SS09ZjYVei3MoE920i7MNr7ukSULA==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.83.6.tgz", + "integrity": "sha512-1AnuazBpzY3meRMr04WUw14kRBkV0W3Ez+AA75FAeNpRyWNN5S3M3PHLUbZw7IXq7ZeOzceyRsHStaFrnWd+8w==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", "flow-enums-runtime": "^0.0.6", - "hermes-parser": "0.33.3", + "hermes-parser": "0.35.0", + "metro-cache-key": "0.83.6", "nullthrows": "^1.1.1" }, "engines": { @@ -8764,39 +9187,39 @@ } }, "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz", - "integrity": "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz", + "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==", "license": "MIT" }, "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.33.3.tgz", - "integrity": "sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz", + "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==", "license": "MIT", "dependencies": { - "hermes-estree": "0.33.3" + "hermes-estree": "0.35.0" } }, "node_modules/metro-cache": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.4.tgz", - "integrity": "sha512-Pm6CiksVms0cZNDDe/nFzYr1xpXzJLOSwvOjl4b3cYtXxEFllEjD6EeBgoQK5C8yk7U54PcuRaUAFSvJ+eCKbg==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.83.6.tgz", + "integrity": "sha512-DpvZE32feNkqfZkI4Fic7YI/Kw8QP9wdl1rC4YKPrA77wQbI9vXbxjmfkCT/EGwBTFOPKqvIXo+H3BNe93YyiQ==", "license": "MIT", "dependencies": { "exponential-backoff": "^3.1.1", "flow-enums-runtime": "^0.0.6", "https-proxy-agent": "^7.0.5", - "metro-core": "0.83.4" + "metro-core": "0.83.6" }, "engines": { "node": ">=20.19.4" } }, "node_modules/metro-cache-key": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.4.tgz", - "integrity": "sha512-Y8E6mm1alkYIRzmfkOdrwXMzJ4HKANYiZE7J2d3iYTwmnLIQG+aoIpvla+bo6LRxH1Gm3qjEiOl+LbxvPCzIug==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.83.6.tgz", + "integrity": "sha512-5gdK4PVpgNOHi7xCGrgesNP1AuOA2TiPqpcirGXZi4RLLzX1VMowpkgTVtBfpQQCqWoosQF9yrSo9/KDQg1eBg==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -8806,18 +9229,18 @@ } }, "node_modules/metro-config": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.4.tgz", - "integrity": "sha512-ydOgMNI9aT8l2LOTOugt1FvC7getPKG9uJo9Vclg9/RWJxbwkBF/FMBm6w5gH8NwJokSmQrbNkojXPn7nm0kGw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.83.6.tgz", + "integrity": "sha512-G5622400uNtnAMlppEA5zkFAZltEf7DSGhOu09BkisCxOlVMWfdosD/oPyh4f2YVQsc1MBYyp4w6OzbExTYarg==", "license": "MIT", "dependencies": { "connect": "^3.6.5", "flow-enums-runtime": "^0.0.6", "jest-validate": "^29.7.0", - "metro": "0.83.4", - "metro-cache": "0.83.4", - "metro-core": "0.83.4", - "metro-runtime": "0.83.4", + "metro": "0.83.6", + "metro-cache": "0.83.6", + "metro-core": "0.83.6", + "metro-runtime": "0.83.6", "yaml": "^2.6.1" }, "engines": { @@ -8825,23 +9248,23 @@ } }, "node_modules/metro-core": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.4.tgz", - "integrity": "sha512-EE+j/imryd3og/6Ly9usku9vcTLQr2o4IDax/izsr6b0HRqZK9k6f5SZkGkOPqnsACLq6csPCx+2JsgF9DkVbw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.83.6.tgz", + "integrity": "sha512-l+yQ2fuIgR//wszUlMrrAa9+Z+kbKazd0QOh0VQY7jC4ghb7yZBBSla/UMYRBZZ6fPg9IM+wD3+h+37a5f9etw==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "lodash.throttle": "^4.1.1", - "metro-resolver": "0.83.4" + "metro-resolver": "0.83.6" }, "engines": { "node": ">=20.19.4" } }, "node_modules/metro-file-map": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.4.tgz", - "integrity": "sha512-RSZLpGQhW9topefjJ9dp77Ff7BP88b17sb/YjxLHC1/H0lJVYYC9Cgqua21Vxe4RUJK2z64hw72g+ySLGTCawA==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.83.6.tgz", + "integrity": "sha512-Jg3oN604C7GWbQwFAUXt8KsbMXeKfsxbZ5HFy4XFM3ggTS+ja9QgUmq9B613kgXv3G4M6rwiI6cvh9TRly4x3w==", "license": "MIT", "dependencies": { "debug": "^4.4.0", @@ -8859,9 +9282,9 @@ } }, "node_modules/metro-minify-terser": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.4.tgz", - "integrity": "sha512-KmZnpxfj0nPIRkbBNTc6xul5f5GPvWL5kQ1UkisB7qFkgh6+UiJG+L4ukJ2sK7St6+8Za/Cb68MUEYkUouIYcQ==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.83.6.tgz", + "integrity": "sha512-Vx3/Ne9Q+EIEDLfKzZUOtn/rxSNa/QjlYxc42nvK4Mg8mB6XUgd3LXX5ZZVq7lzQgehgEqLrbgShJPGfeF8PnQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", @@ -8872,9 +9295,9 @@ } }, "node_modules/metro-resolver": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.4.tgz", - "integrity": "sha512-drWdylyNqgdaJufz0GjU/ielv2hjcc6piegjjJwKn8l7A/72aLQpUpOHtP+GMR+kOqhSsD4MchhJ6PSANvlSEw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.83.6.tgz", + "integrity": "sha512-lAwR/FsT1uJ5iCt4AIsN3boKfJ88aN8bjvDT5FwBS0tKeKw4/sbdSTWlFxc7W/MUTN5RekJ3nQkJRIWsvs28tA==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -8884,9 +9307,9 @@ } }, "node_modules/metro-runtime": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.4.tgz", - "integrity": "sha512-sWj9KN311yG22Zv0kVbAp9dorB9HtTThvQKsAn6PLxrVrz+1UBsLrQSxjE/s4PtzDi1HABC648jo4K9Euz/5jw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.83.6.tgz", + "integrity": "sha512-WQPua1G2VgYbwRn6vSKxOhTX7CFbSf/JdUu6Nd8bZnPXckOf7HQ2y51NXNQHoEsiuawathrkzL8pBhv+zgZFmg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -8897,18 +9320,18 @@ } }, "node_modules/metro-source-map": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.4.tgz", - "integrity": "sha512-pPbmQwS0zgU+/0u5KPkuvlsQP0V+WYQ9qNshqupIL720QRH0vS3QR25IVVtbunofEDJchI11Q4QtIbmUyhpOBw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.83.6.tgz", + "integrity": "sha512-AqJbOMMpeyyM4iNI91pchqDIszzNuuHApEhg6OABqZ+9mjLEqzcIEQ/fboZ7x74fNU5DBd2K36FdUQYPqlGClA==", "license": "MIT", "dependencies": { "@babel/traverse": "^7.29.0", "@babel/types": "^7.29.0", "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-symbolicate": "0.83.4", + "metro-symbolicate": "0.83.6", "nullthrows": "^1.1.1", - "ob1": "0.83.4", + "ob1": "0.83.6", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -8926,14 +9349,14 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.4.tgz", - "integrity": "sha512-clyWAXDgkDHPwvldl95pcLTrJIqUj9GbZayL8tfeUs69ilsIUBpVym2lRd/8l3/8PIHCInxL868NvD2Y7OqKXg==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.83.6.tgz", + "integrity": "sha512-4nvkmv9T7ozhprlPwk/+xm0SVPsxly5kYyMHdNaOlFemFz4df9BanvD46Ac6OISu/4Idinzfk2KVb++6OfzPAQ==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6", "invariant": "^2.2.4", - "metro-source-map": "0.83.4", + "metro-source-map": "0.83.6", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "vlq": "^1.0.0" @@ -8955,9 +9378,9 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.4.tgz", - "integrity": "sha512-c0ROVcyvdaGPUFIg2N5nEQF4xbsqB2p1PPPhVvK1d/Y7ZhBAFiwQ75so0SJok32q+I++lc/hq7IdPCp2frPGQg==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.83.6.tgz", + "integrity": "sha512-V+zoY2Ul0v0BW6IokJkTud3raXmDdbdwkUQ/5eiSoy0jKuKMhrDjdH+H5buCS5iiJdNbykOn69Eip+Sqymkodg==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -8972,9 +9395,9 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.4.tgz", - "integrity": "sha512-6I81IZLeU/0ww7OBgCPALFl0OE0FQwvIuKCtuViSiKufmislF7kVr7IHH9GYtQuZcnualQ82gYeQ11KzZQTouw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.83.6.tgz", + "integrity": "sha512-G5kDJ/P0ZTIf57t3iyAd5qIXbj2Wb1j7WtIDh82uTFQHe2Mq2SO9aXG9j1wI+kxZlIe58Z22XEXIKMl89z0ibQ==", "license": "MIT", "dependencies": { "@babel/core": "^7.25.2", @@ -8982,13 +9405,13 @@ "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", "flow-enums-runtime": "^0.0.6", - "metro": "0.83.4", - "metro-babel-transformer": "0.83.4", - "metro-cache": "0.83.4", - "metro-cache-key": "0.83.4", - "metro-minify-terser": "0.83.4", - "metro-source-map": "0.83.4", - "metro-transform-plugins": "0.83.4", + "metro": "0.83.6", + "metro-babel-transformer": "0.83.6", + "metro-cache": "0.83.6", + "metro-cache-key": "0.83.6", + "metro-minify-terser": "0.83.6", + "metro-source-map": "0.83.6", + "metro-transform-plugins": "0.83.6", "nullthrows": "^1.1.1" }, "engines": { @@ -9015,18 +9438,18 @@ "license": "MIT" }, "node_modules/metro/node_modules/hermes-estree": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.33.3.tgz", - "integrity": "sha512-6kzYZHCk8Fy1Uc+t3HGYyJn3OL4aeqKLTyina4UFtWl8I0kSL7OmKThaiX+Uh2f8nGw3mo4Ifxg0M5Zk3/Oeqg==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.35.0.tgz", + "integrity": "sha512-xVx5Opwy8Oo1I5yGpVRhCvWL/iV3M+ylksSKVNlxxD90cpDpR/AR1jLYqK8HWihm065a6UI3HeyAmYzwS8NOOg==", "license": "MIT" }, "node_modules/metro/node_modules/hermes-parser": { - "version": "0.33.3", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.33.3.tgz", - "integrity": "sha512-Yg3HgaG4CqgyowtYjX/FsnPAuZdHOqSMtnbpylbptsQ9nwwSKsy6uRWcGO5RK0EqiX12q8HvDWKgeAVajRO5DA==", + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.35.0.tgz", + "integrity": "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA==", "license": "MIT", "dependencies": { - "hermes-estree": "0.33.3" + "hermes-estree": "0.35.0" } }, "node_modules/metro/node_modules/mime-types": { @@ -9101,7 +9524,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "devOptional": true, + "dev": true, "license": "MIT", "bin": { "mime": "cli.js" @@ -9123,7 +9546,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "devOptional": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -9136,7 +9558,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9146,20 +9567,20 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -9186,6 +9607,24 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^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", @@ -9197,7 +9636,7 @@ "version": "0.6.4", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9207,7 +9646,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -9239,16 +9678,16 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.38", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.38.tgz", + "integrity": "sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==", "license": "MIT" }, "node_modules/node-stream-zip": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -9271,7 +9710,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.0.0" @@ -9280,6 +9719,18 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -9287,9 +9738,9 @@ "license": "MIT" }, "node_modules/ob1": { - "version": "0.83.4", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.4.tgz", - "integrity": "sha512-9JiflaRKCkxKzH8uuZlax72cHzZ8iFLsNIORFOAKDgZUOfvfwYWOVS0ezGLzPp/yEhVktD+PTTImC0AAehSOBw==", + "version": "0.83.6", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.83.6.tgz", + "integrity": "sha512-m/xZYkwcjo6UqLMrUICEB3iHk7Bjt3RSR7KXMi6Y1MO/kGkPhoRmfUDF6KAan3rLAZ7ABRqnQyKUTwaqZgUV4w==", "license": "MIT", "dependencies": { "flow-enums-runtime": "^0.0.6" @@ -9312,7 +9763,7 @@ "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -9422,7 +9873,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -9441,7 +9892,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -9457,7 +9908,7 @@ "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "is-wsl": "^1.1.0" @@ -9488,7 +9939,7 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "bl": "^4.1.0", @@ -9530,7 +9981,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" @@ -9546,7 +9997,7 @@ "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==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "p-limit": "^3.0.2" @@ -9571,7 +10022,7 @@ "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==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -9584,7 +10035,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -9639,9 +10090,18 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "devOptional": true, + "dev": true, "license": "MIT" }, + "node_modules/paths-js": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/paths-js/-/paths-js-0.4.11.tgz", + "integrity": "sha512-3mqcLomDBXOo7Fo+UlaenG6f71bk1ZezPQy2JCmYHy2W2k5VKpP+Jbin9H0bjXynelTbglCqdFhSEkeIkKTYUA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.11.0" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -9649,9 +10109,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "license": "MIT", "engines": { "node": ">=8.6" @@ -9738,6 +10198,12 @@ "node": ">=8" } }, + "node_modules/point-in-polygon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", + "license": "MIT" + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -9800,6 +10266,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", @@ -9813,7 +10285,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "kleur": "^3.0.3", @@ -9842,6 +10314,15 @@ "dev": true, "license": "MIT" }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -9870,10 +10351,10 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", - "devOptional": true, + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "dev": true, "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.1.0" @@ -9885,6 +10366,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -9898,7 +10397,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -9928,7 +10427,7 @@ "version": "2.5.3", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "bytes": "~3.1.2", @@ -9980,10 +10479,22 @@ } } }, + "node_modules/react-freeze": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.4.tgz", + "integrity": "sha512-r4F0Sec0BLxWicc7HEyo2x3/2icUTrRmDjaaRyzzn+7aDyFZliszMDOgLVwSnQnYENOlL1o569Ze2HZefk8clA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=17.0.0" + } + }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.5.tgz", + "integrity": "sha512-Dn0t8IQhCmeIT3wu+Apm1/YVsJXsGWi6k4sPdnBIdqMVtHtv0IGi6dcpNpNkNac0zB2uUAqNX3MHzN8c+z2rwQ==", "license": "MIT" }, "node_modules/react-native": { @@ -10044,6 +10555,123 @@ } } }, + "node_modules/react-native-chart-kit": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/react-native-chart-kit/-/react-native-chart-kit-6.12.1.tgz", + "integrity": "sha512-ps9PmlCFLB6n+VpMQhH4qkKtgyTxhKyJU7VsDqUU2a5ikomcjwLX3f7PVxSSctmqw/hdVPNBz+g7zbBVA2vhAg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.13", + "paths-js": "^0.4.10", + "point-in-polygon": "^1.0.1" + }, + "peerDependencies": { + "react": "> 16.7.0", + "react-native": ">= 0.50.0", + "react-native-svg": "> 6.4.1" + } + }, + "node_modules/react-native-fs": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.20.0.tgz", + "integrity": "sha512-VkTBzs7fIDUiy/XajOSNk0XazFE9l+QlMAce7lGuebZcag5CnjszB+u4BdqzwaQOdcYb5wsJIsqq4kxInIRpJQ==", + "license": "MIT", + "dependencies": { + "base-64": "^0.1.0", + "utf8": "^3.0.0" + }, + "peerDependencies": { + "react-native": "*", + "react-native-windows": "*" + }, + "peerDependenciesMeta": { + "react-native-windows": { + "optional": true + } + } + }, + "node_modules/react-native-gesture-handler": { + "version": "2.31.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.31.1.tgz", + "integrity": "sha512-wQDlECdEzHhYKTnQXFnSqWUtJ5TS3MGQi7EWvQczTnEVKfk6XVSBecnpWAoI/CqlYQ7IWMJEyutY6BxwEBoxeg==", + "license": "MIT", + "dependencies": { + "@egjs/hammerjs": "^2.0.17", + "@types/react-test-renderer": "^19.1.0", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-html-to-pdf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-native-html-to-pdf/-/react-native-html-to-pdf-1.3.0.tgz", + "integrity": "sha512-UCbQO1k5yeajaJrEF7Wqq8ojdgpxsTbICQvtorXmuO1LkU/a6B3/tZyLes4zXCiq/5nTMTNA/k9m5bYStg5S0Q==", + "license": "MIT", + "workspaces": [ + "example" + ], + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-is-edge-to-edge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/react-native-is-edge-to-edge/-/react-native-is-edge-to-edge-1.3.1.tgz", + "integrity": "sha512-NIXU/iT5+ORyCc7p0z2nnlkouYKX425vuU1OEm6bMMtWWR9yvb+Xg5AZmImTKoF9abxCPqrKC3rOZsKzUYgYZA==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-make": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-native-make/-/react-native-make-1.0.1.tgz", + "integrity": "sha512-+Wo2JSp6NyeKleH9aZcdPsW7X8KiBOZkwx6L65UkPCDbk4FlcYd4yw+YIuK0SUVFkUaFHTU1n8LjIjFpT+YICA==", + "dev": true + }, + "node_modules/react-native-print": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-native-print/-/react-native-print-0.11.0.tgz", + "integrity": "sha512-hFDzb9dVJVT8c3VHNNWgkPfLF3Jfyw0WVJ3o7wUmSMmi5hJx6b++veNJ3J95d3lW3Y0sZUpGbn9+yzXrLANnJQ==", + "license": "MIT", + "peerDependencies": { + "react-native": ">=0.8.0 || 0.8.0-rc || 0.8.0-rc.2 || 0.9.0-rc || 0.10.1", + "react-native-windows": ">=0.62" + } + }, + "node_modules/react-native-reanimated": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-4.3.0.tgz", + "integrity": "sha512-HOTTPdKtddXTOsmQxDASXEwLS3lqEHrKERD3XOgzSqWJ7L3x81Pnx7mTcKx1FKdkgomMug/XSmm1C6Z7GIowxA==", + "license": "MIT", + "dependencies": { + "react-native-is-edge-to-edge": "^1.3.1", + "semver": "^7.7.3" + }, + "peerDependencies": { + "react": "*", + "react-native": "0.81 - 0.85", + "react-native-worklets": "0.8.x" + } + }, + "node_modules/react-native-reanimated/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-native-safe-area-context": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-5.7.0.tgz", @@ -10054,6 +10682,81 @@ "react-native": "*" } }, + "node_modules/react-native-screens": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-4.24.0.tgz", + "integrity": "sha512-SyoiGaDofiyGPFrUkn1oGsAzkRuX1JUvTD9YQQK3G1JGQ5VWkvHgYSsc1K9OrLsDQxN7NmV71O0sHCAh8cBetA==", + "license": "MIT", + "dependencies": { + "react-freeze": "^1.0.0", + "warn-once": "^0.1.0" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-share": { + "version": "12.2.6", + "resolved": "https://registry.npmjs.org/react-native-share/-/react-native-share-12.2.6.tgz", + "integrity": "sha512-K9jZCQaTIqSNG37kMVygU1rflVMJm2g0ikslnbbmQ7EgsckYpw7ipePyp01E64hG+HrWNl+z9ZnFWLCC6H+Tiw==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/react-native-svg": { + "version": "15.15.4", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.15.4.tgz", + "integrity": "sha512-boT/vIRgj6zZKBpfTPJJiYWMbZE9duBMOwPK6kCSTgxsS947IFMOq9OgIFkpWZTB7t229H24pDRkh3W9ZK/J1A==", + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3", + "warn-once": "0.1.1" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-worklets": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/react-native-worklets/-/react-native-worklets-0.8.1.tgz", + "integrity": "sha512-oWP/lStsAHU6oYCaWDXrda/wOHVdhusQJz1e6x9gPnXdFf4ndNDAOtWCmk2zGrAnlapfyA3rM6PCQq94mPg9cw==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/preset-typescript": "^7.27.1", + "convert-source-map": "^2.0.0", + "semver": "^7.7.3" + }, + "peerDependencies": { + "@babel/core": "*", + "@react-native/metro-config": "*", + "react": "*", + "react-native": "0.81 - 0.85" + } + }, + "node_modules/react-native-worklets/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-native/node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -10119,18 +10822,11 @@ "react": "^19.2.3" } }, - "node_modules/react-test-renderer/node_modules/react-is": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.4.tgz", - "integrity": "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==", - "dev": true, - "license": "MIT" - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -10168,14 +10864,12 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "devOptional": true, "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", - "devOptional": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2" @@ -10215,7 +10909,6 @@ "version": "6.4.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", - "devOptional": true, "license": "MIT", "dependencies": { "regenerate": "^1.4.2", @@ -10233,14 +10926,12 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "devOptional": true, "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", - "devOptional": true, + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", "license": "BSD-2-Clause", "dependencies": { "jsesc": "~3.1.0" @@ -10262,16 +10953,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "devOptional": true, + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -10313,7 +11005,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -10333,7 +11025,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "onetime": "^5.1.0", @@ -10347,7 +11039,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -10374,7 +11066,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -10395,15 +11087,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, @@ -10418,7 +11110,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -10474,7 +11166,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/scheduler": { @@ -10598,7 +11290,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/set-function-length": { @@ -10656,6 +11348,15 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "license": "ISC" }, + "node_modules/sf-symbols-typescript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sf-symbols-typescript/-/sf-symbols-typescript-2.2.0.tgz", + "integrity": "sha512-TPbeg0b7ylrswdGCji8FRGFAKuqbpQlLbL8SOle3j1iHSs5Ob5mhvMAxWN2UItOjgALAB5Zp3fmMfj8mbWvXKw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10693,7 +11394,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -10710,14 +11411,14 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "devOptional": true, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -10730,7 +11431,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10749,7 +11450,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "call-bound": "^1.0.2", @@ -10771,11 +11472,26 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "license": "ISC" }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/slash": { @@ -10791,7 +11507,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^3.2.0", @@ -10806,7 +11522,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^1.9.0" @@ -10819,7 +11535,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "color-name": "1.1.3" @@ -10829,7 +11545,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/source-map": { @@ -10852,6 +11568,15 @@ "source-map": "^0.6.0" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -10929,11 +11654,20 @@ "node": ">= 0.4" } }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -11107,7 +11841,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -11130,7 +11864,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", - "devOptional": true, + "dev": true, "funding": [ { "type": "github", @@ -11155,7 +11889,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -11165,9 +11899,9 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.46.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.2.tgz", + "integrity": "sha512-uxfo9fPcSgLDYob/w1FuL0c99MWiJDnv+5qXSQc5+Ki5NjVNsYi66INnMFBjf6uFz6OnX12piJQPF4IpjJTNTw==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11219,9 +11953,9 @@ "license": "MIT" }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -11254,13 +11988,13 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -11269,27 +12003,10 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "license": "MIT", "engines": { "node": ">=12" @@ -11326,9 +12043,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", "dev": true, "license": "MIT", "engines": { @@ -11377,7 +12094,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "media-typer": "0.3.0", @@ -11499,16 +12216,15 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "devOptional": true, "license": "MIT", "engines": { "node": ">=4" @@ -11518,7 +12234,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "devOptional": true, "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", @@ -11532,7 +12247,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", - "devOptional": true, "license": "MIT", "engines": { "node": ">=4" @@ -11542,7 +12256,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", - "devOptional": true, "license": "MIT", "engines": { "node": ">=4" @@ -11552,7 +12265,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 4.0.0" @@ -11607,11 +12320,35 @@ "punycode": "^2.1.0" } }, + "node_modules/use-latest-callback": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.6.tgz", + "integrity": "sha512-FvRG9i1HSo0wagmX63Vrm8SnlUU3LMM3WyZkQ76RnslpBrX694AdG4A0zQBx2B3ZifFA0yv/BaEHGBnEax5rZg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==", + "license": "MIT" + }, "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==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -11642,7 +12379,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">= 0.8" @@ -11663,11 +12400,17 @@ "makeerror": "1.0.12" } }, + "node_modules/warn-once": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz", + "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==", + "license": "MIT" + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "defaults": "^1.0.3" @@ -11765,7 +12508,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "devOptional": true, + "dev": true, "license": "ISC" }, "node_modules/which-typed-array": { @@ -11840,7 +12583,7 @@ "version": "6.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "async-limiter": "~1.0.0" @@ -11862,9 +12605,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -11907,7 +12650,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=10" diff --git a/package.json b/package.json index a38cfa8..6f547b8 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,26 @@ "test": "jest" }, "dependencies": { + "@react-native-community/datetimepicker": "^9.1.0", + "@react-native-community/slider": "^5.1.2", + "@react-native/new-app-screen": "0.84.1", + "@react-navigation/bottom-tabs": "^7.15.2", + "@react-navigation/native": "^7.1.31", + "@react-navigation/native-stack": "^7.14.2", + "axios": "^1.15.1", "react": "19.2.3", "react-native": "0.84.1", - "@react-native/new-app-screen": "0.84.1", - "react-native-safe-area-context": "^5.5.2" + "react-native-chart-kit": "^6.12.0", + "react-native-fs": "^2.20.0", + "react-native-gesture-handler": "^2.30.0", + "react-native-html-to-pdf": "^1.3.0", + "react-native-print": "^0.11.0", + "react-native-reanimated": "^4.2.2", + "react-native-safe-area-context": "^5.7.0", + "react-native-screens": "^4.24.0", + "react-native-share": "^12.2.6", + "react-native-svg": "^15.15.3", + "react-native-worklets": "^0.8.1" }, "devDependencies": { "@babel/core": "^7.25.2", @@ -32,10 +48,11 @@ "eslint": "^8.19.0", "jest": "^29.6.3", "prettier": "2.8.8", + "react-native-make": "^1.0.1", "react-test-renderer": "19.2.3", "typescript": "^5.8.3" }, "engines": { "node": ">= 22.11.0" } -} \ No newline at end of file +} diff --git a/src/components/BarChart.tsx b/src/components/BarChart.tsx new file mode 100644 index 0000000..a203ac4 --- /dev/null +++ b/src/components/BarChart.tsx @@ -0,0 +1,209 @@ +import React from "react"; +import { View, Text, StyleSheet } from "react-native"; +import { HistoryPoint } from "../services/api"; + +interface BarChartProps { + history: HistoryPoint[]; +} + +const GRADE_COLORS = { + A: "#16a34a", + B: "#d97706", + C: "#dc2626", + TL: "#6b7280", +}; + +export default function BarChart({ history }: BarChartProps) { + if (!history?.length) return null; + + const show = history.slice(-5); + const maxVal = Math.max(...show.flatMap((h) => [h.A, h.B, h.C, h.TL ?? 0]), 1); + const rawMax = Math.max(...show.flatMap((h) => [h.A, h.B, h.C, h.TL ?? 0]), 1); + const niceMax = Math.ceil(rawMax / 10) * 10; + + const ySteps = [ + niceMax, + niceMax * 0.75, + niceMax * 0.5, + niceMax * 0.25, + 0, + ]; + + return ( + + {/* Y Vertical */} + + + {/* {[100, 75, 50, 25, 0].map((v) => ( */} + {ySteps.map((v, i) => ( + // {v} + {Math.round(v)} + ))} + + + {/* Chart area */} + + {ySteps.map((_, i) => ( + + ))} + + {/* Bars */} + + {show.map((item, i) => ( + + + {(["A", "B", "C", "TL"] as const).map((g) => { + const val = item[g] ?? 0; + // const heightPct = Math.max(2, (val / maxVal) * 100); + const heightPct = Math.max(2, (val / niceMax) * 100); + return ( + + + {val > 0 ? val : ""} + + + + ); + })} + + {item.time} + + ))} + + + + + {/* Legend */} + + {(["A", "B", "C", "TL"] as const).map((g) => ( + + + + {g === "TL" ? "Tidak Layak" : `Grade ${g}`} + + + ))} + + + ); +} + +const styles = StyleSheet.create({ + container: { + paddingHorizontal: 8, + paddingTop: 8, + }, + + /* Y-axis + chart side-by-side */ + yAxisRow: { + flexDirection: "row", + alignItems: "flex-end", + }, + yAxis: { + width: 28, + height: 180, // matches chartArea height + justifyContent: "space-between", + alignItems: "flex-end", + paddingRight: 4, + paddingBottom: 22, // reserve space for time labels + }, + yLabel: { + fontSize: 9, + color: "#94a3b8", + }, + + /* Chart area */ + chartArea: { + flex: 1, + height: 180, + position: "relative", + justifyContent: "flex-end", + }, + gridLine: { + position: "absolute", + left: 0, + right: 0, + height: 1, + backgroundColor: "#e2e8f0", + opacity: 0.6, + }, + + /* Bar row */ + chartRow: { + flexDirection: "row", + alignItems: "flex-end", + height: 160, + gap: 6, + paddingHorizontal: 2, + }, + barGroup: { + flex: 1, + alignItems: "center", + }, + barsContainer: { + flexDirection: "row", + alignItems: "flex-end", + gap: 2, + height: 160, + }, + barWrapper: { + alignItems: "center", + justifyContent: "flex-end", + }, + barValue: { + fontSize: 8, + fontWeight: "600", + marginBottom: 1, + }, + bar: { + width: 10, + borderRadius: 3, + }, + timeLabel: { + fontSize: 9, + color: "#64748b", + marginTop: 5, + textAlign: "center", + }, + + /* Legend */ + legend: { + flexDirection: "row", + justifyContent: "center", + flexWrap: "wrap", + gap: 14, + marginTop: 14, + paddingBottom: 4, + }, + legendItem: { + flexDirection: "row", + alignItems: "center", + gap: 5, + }, + legendDot: { + width: 10, + height: 10, + borderRadius: 3, + }, + legendText: { + fontSize: 12, + color: "#475569", + fontWeight: "500", + }, +}); \ No newline at end of file diff --git a/src/components/CalendarPicker.tsx b/src/components/CalendarPicker.tsx new file mode 100644 index 0000000..7db01fe --- /dev/null +++ b/src/components/CalendarPicker.tsx @@ -0,0 +1,237 @@ +import React, { useState } from "react"; +import { + View, + Text, + Modal, + TouchableOpacity, + StyleSheet, +} from "react-native"; + +// ─── Helper ─────────────────────────────────────────────────────────────────── + +const BULAN = [ + "Januari","Februari","Maret","April","Mei","Juni", + "Juli","Agustus","September","Oktober","November","Desember", +]; +const HARI = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; + +export const toISO = (d: Date) => + `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`; + +export const fromISO = (s: string): Date => { + const [y,m,d] = s.split("-").map(Number); + return new Date(y, m-1, d); +}; + +export const toDisplay = (s: string): string => { + const d = fromISO(s); + return `${String(d.getDate()).padStart(2,"0")}/${String(d.getMonth()+1).padStart(2,"0")}/${d.getFullYear()}`; +}; + +function getDaysInMonth(year: number, month: number) { + return new Date(year, month + 1, 0).getDate(); +} + +// ─── Props ──────────────────────────────────────────────────────────────────── + +interface CalendarPickerProps { + visible: boolean; + value: string; // "yyyy-mm-dd" + minDate?: string; + maxDate?: string; + title?: string; + onConfirm: (date: string) => void; + onClose: () => void; +} + +// ─── Komponen ───────────────────────────────────────────────────────────────── + +export default function CalendarPicker({ + visible, value, minDate, maxDate, title = "Pilih Tanggal", + onConfirm, onClose, +}: CalendarPickerProps) { + + const initDate = fromISO(value); + const [viewYear, setViewYear] = useState(initDate.getFullYear()); + const [viewMonth, setViewMonth] = useState(initDate.getMonth()); + const [selected, setSelected] = useState(value); + + const todayISO = toISO(new Date()); + const totalDays = getDaysInMonth(viewYear, viewMonth); + const firstDay = new Date(viewYear, viewMonth, 1).getDay(); // 0=Minggu + + // Navigasi bulan + const prevMonth = () => { + if (viewMonth === 0) { setViewMonth(11); setViewYear(y => y - 1); } + else setViewMonth(m => m - 1); + }; + const nextMonth = () => { + if (viewMonth === 11) { setViewMonth(0); setViewYear(y => y + 1); } + else setViewMonth(m => m + 1); + }; + + const isDisabled = (iso: string) => { + if (minDate && iso < minDate) return true; + if (maxDate && iso > maxDate) return true; + return false; + }; + + const isToday = (iso: string) => iso === todayISO; + const isSelected = (iso: string) => iso === selected; + + // Buat grid hari (null = sel kosong sebelum hari pertama) + const cells: (number | null)[] = [ + ...Array(firstDay).fill(null), + ...Array.from({ length: totalDays }, (_, i) => i + 1), + ]; + // Lengkapi sampai kelipatan 7 + while (cells.length % 7 !== 0) cells.push(null); + + return ( + + + {}}> + + {/* Judul */} + {title} + + {/* Nav bulan */} + + + + + + {BULAN[viewMonth]} {viewYear} + + + + + + + {/* Header hari */} + + {HARI.map(h => ( + {h} + ))} + + + {/* Grid tanggal */} + + {cells.map((day, i) => { + if (!day) return ; + + const iso = `${viewYear}-${String(viewMonth+1).padStart(2,"0")}-${String(day).padStart(2,"0")}`; + const disabled = isDisabled(iso); + const today = isToday(iso); + const sel = isSelected(iso); + const isSun = (firstDay + day - 1) % 7 === 0; + + return ( + setSelected(iso)} + style={[ + s.dayCell, + sel && s.daySel, + today && !sel && s.dayToday, + ]} + > + + {day} + + {today && !sel && } + + ); + })} + + + {/* Preview tanggal dipilih */} + + + Dipilih:{" "} + {toDisplay(selected)} + + + + {/* Tombol aksi */} + + + Batal + + { onConfirm(selected); onClose(); }} style={s.btnOk}> + Pilih + + + + + + + ); +} + +// ─── Styles ─────────────────────────────────────────────────────────────────── +const CELL_SIZE = 38; + +const s = StyleSheet.create({ + overlay: { + flex: 1, backgroundColor: "rgba(0,0,0,0.45)", + justifyContent: "center", alignItems: "center", + }, + card: { + backgroundColor: "#fff", borderRadius: 20, padding: 20, + width: 320, + shadowColor: "#000", shadowOffset: { width: 0, height: 8 }, + shadowOpacity: 0.18, shadowRadius: 20, elevation: 16, + }, + title: { + fontSize: 16, fontWeight: "800", color: "#0f172a", + textAlign: "center", marginBottom: 16, + }, + + // Nav + navRow: { flexDirection: "row", alignItems: "center", justifyContent: "space-between", marginBottom: 12 }, + navBtn: { width: 36, height: 36, borderRadius: 18, backgroundColor: "#f1f5f9", alignItems: "center", justifyContent: "center" }, + navArrow: { fontSize: 22, color: "#4f46e5", lineHeight: 26 }, + navLabel: { fontSize: 15, fontWeight: "700", color: "#0f172a" }, + + // Header hari + weekRow: { flexDirection: "row", marginBottom: 6 }, + weekCell: { width: CELL_SIZE, textAlign: "center", fontSize: 11, fontWeight: "600", color: "#94a3b8" }, + + // Grid + grid: { flexDirection: "row", flexWrap: "wrap" }, + dayCell: { + width: CELL_SIZE, height: CELL_SIZE, + alignItems: "center", justifyContent: "center", + borderRadius: CELL_SIZE / 2, marginBottom: 2, + }, + daySel: { backgroundColor: "#4f46e5" }, + dayToday: { borderWidth: 1.5, borderColor: "#4f46e5" }, + dayText: { fontSize: 13, color: "#334155" }, + todayDot: { + position: "absolute", bottom: 4, + width: 4, height: 4, borderRadius: 2, backgroundColor: "#4f46e5", + }, + + // Preview + previewRow: { + backgroundColor: "#f8fafc", borderRadius: 10, padding: 10, + marginTop: 12, alignItems: "center", + }, + previewText: { fontSize: 12, color: "#64748b" }, + previewVal: { fontWeight: "700", color: "#0f172a" }, + + // Buttons + btnRow: { flexDirection: "row", gap: 10, marginTop: 14 }, + btnCancel: { flex: 1, paddingVertical: 12, borderRadius: 12, backgroundColor: "#f1f5f9", alignItems: "center" }, + btnCancelText:{ fontSize: 14, color: "#64748b", fontWeight: "600" }, + btnOk: { flex: 2, paddingVertical: 12, borderRadius: 12, backgroundColor: "#4f46e5", alignItems: "center" }, + btnOkText: { fontSize: 14, color: "#fff", fontWeight: "800" }, +}); \ No newline at end of file diff --git a/src/components/CylinderSlinder.tsx b/src/components/CylinderSlinder.tsx new file mode 100644 index 0000000..4f60f7c --- /dev/null +++ b/src/components/CylinderSlinder.tsx @@ -0,0 +1,162 @@ +import React, { useRef } from "react"; +import { + View, + Text, + StyleSheet, + PanResponder, + GestureResponderEvent, +} from "react-native"; + +interface CylinderSliderProps { + value: number; + max: number; + onChange: (value: number) => void; + color: string; + label: string; +} + +const CYLINDER_HEIGHT = 180; + +export default function CylinderSlider({ + value, + max, + onChange, + color, + label, +}: CylinderSliderProps) { + const pct = value / max; + const fillHeight = pct * CYLINDER_HEIGHT; + + // Simpan pageY saat touch mulai dan nilai saat itu + const startPageY = useRef(0); + const startValue = useRef(value); + + const clamp = (v: number) => Math.max(0, Math.min(max, Math.round(v))); + + const panResponder = PanResponder.create({ + onStartShouldSetPanResponder: () => true, + onMoveShouldSetPanResponder: () => true, + + onPanResponderGrant: (e: GestureResponderEvent) => { + // Catat posisi pageY dan nilai awal saat jari menyentuh + startPageY.current = e.nativeEvent.pageY; + startValue.current = value; + }, + + onPanResponderMove: (e: GestureResponderEvent) => { + // Hitung delta dari posisi awal (geser ke atas = naik, ke bawah = turun) + const deltaY = e.nativeEvent.pageY - startPageY.current; + // deltaY negatif = geser ke atas = nilai naik + const deltaPct = -deltaY / CYLINDER_HEIGHT; + const newVal = clamp(startValue.current + deltaPct * max); + onChange(newVal); + }, + }); + + return ( + + {label} + + + {/* Fill dari bawah */} + + + {/* Shine */} + + + {/* Tick marks */} + {[0.25, 0.5, 0.75].map((t) => ( + + ))} + + {/* Label persentase di tengah cylinder */} + + 0.45 ? "#fff" : color }]}> + {Math.round(pct * 100)}% + + + + + {value} + + ); +} + +const styles = StyleSheet.create({ + container: { alignItems: "center", gap: 10 }, + + label: { + fontSize: 10, + fontFamily: "monospace", + letterSpacing: 0.5, + color: "#94a3b8", + textAlign: "center", + }, + + cylinder: { + width: 56, + height: CYLINDER_HEIGHT, + borderRadius: 28, + backgroundColor: "#f1f5f9", + borderWidth: 2, + overflow: "hidden", + justifyContent: "flex-end", + shadowOffset: { width: 0, height: 0 }, + shadowOpacity: 0.2, + shadowRadius: 8, + elevation: 4, + }, + + fill: { + position: "absolute", + bottom: 0, + left: 0, + right: 0, + borderRadius: 26, + opacity: 0.85, + }, + + shine: { + position: "absolute", + top: 0, + right: 0, + bottom: 0, + width: 14, + backgroundColor: "rgba(255,255,255,0.5)", + }, + + tick: { + position: "absolute", + left: 10, + right: 10, + height: 1, + backgroundColor: "rgba(0,0,0,0.08)", + }, + + pctOverlay: { + position: "absolute", + top: 0, bottom: 0, left: 0, right: 0, + justifyContent: "center", + alignItems: "center", + }, + pctText: { + fontSize: 12, + fontWeight: "800", + fontFamily: "monospace", + }, + + value: { + fontSize: 18, + fontWeight: "800", + fontFamily: "monospace", + }, +}); \ No newline at end of file diff --git a/src/components/Sparkline.tsx b/src/components/Sparkline.tsx new file mode 100644 index 0000000..372ea06 --- /dev/null +++ b/src/components/Sparkline.tsx @@ -0,0 +1,43 @@ +import React from "react"; +import Svg, { Polyline } from "react-native-svg"; + +interface SparklineProps { + data: number[]; + color: string; + width?: number; + height?: number; +} + +export default function Sparkline({ + data, + color, + width = 80, + height = 30, +}: SparklineProps) { + if (!data || data.length < 2) return null; + + const max = Math.max(...data); + const min = Math.min(...data); + const range = max - min || 1; + + const points = data + .map((v, i) => { + const x = (i / (data.length - 1)) * width; + const y = height - ((v - min) / range) * height; + return `${x},${y}`; + }) + .join(" "); + + return ( + + + + ); +} \ No newline at end of file diff --git a/src/navigation/BottomTabNavigator.tsx b/src/navigation/BottomTabNavigator.tsx new file mode 100644 index 0000000..adb2825 --- /dev/null +++ b/src/navigation/BottomTabNavigator.tsx @@ -0,0 +1,105 @@ +import React from "react"; +import { createBottomTabNavigator } from "@react-navigation/bottom-tabs"; +import { View, Text, StyleSheet, Image } from "react-native"; +import DashboardScreen from "../screens/DashboardScreen"; +import LaporanScreen from "../screens/LaporanScreen"; +import ControlScreen from "../screens/ControlScreen"; + +function TabIcon({ + focused, + icon, + color, +}: { + focused: boolean; + icon: any; + color: string; +}) { + return ( + + + + ); +} + +const Tab = createBottomTabNavigator(); + +const TAB_CONFIG = { + Dashboard: { + icon: require("../../assets/dashboard.png"), + color: "#4f46e5", + }, + Laporan: { + icon: require("../../assets/report.png"), + color: "#16a34a", + }, + Kontrol: { + icon: require("../../assets/control.png"), + color: "#0284c7", + }, +}; + +export default function BottomTabNavigator() { + return ( + { + const config = TAB_CONFIG[route.name as keyof typeof TAB_CONFIG]; + return { + headerShown: false, + tabBarStyle: styles.tabBar, + tabBarActiveTintColor: config.color, + tabBarInactiveTintColor: "#94a3b8", + tabBarLabelStyle: styles.tabLabel, + tabBarIcon: ({ focused, color }) => ( + + ), + tabBarItemStyle: styles.tabItem, + }; + }} + > + + + + + ); +} + +const styles = StyleSheet.create({ + tabBar: { + backgroundColor: "#fff", + borderTopColor: "#e2e8f0", + borderTopWidth: 1, + height: 72, + paddingBottom: 10, + paddingTop: 6, + shadowColor: "#000", + shadowOffset: { width: 0, height: -2 }, + shadowOpacity: 0.05, + shadowRadius: 8, + elevation: 8, + }, + tabItem: { + paddingTop: 4, + }, + tabLabel: { + fontSize: 10, + fontWeight: "600", + marginTop: 2, + }, + iconContainer: { + alignItems: "center", + justifyContent: "center", + }, +}); \ No newline at end of file diff --git a/src/screens/ControlScreen.tsx b/src/screens/ControlScreen.tsx new file mode 100644 index 0000000..3449988 --- /dev/null +++ b/src/screens/ControlScreen.tsx @@ -0,0 +1,401 @@ +import React, { useState, useEffect, useCallback } from "react"; +import { + View, + Text, + ScrollView, + StyleSheet, + TouchableOpacity, + TextInput, + Alert, + ActivityIndicator, + Keyboard, +} from "react-native"; +import { useFocusEffect } from "@react-navigation/native"; +import Slider from "@react-native-community/slider"; +import CylinderSlider from "../components/CylinderSlinder"; +import { setConveyorSpeed, getConveyorSpeed } from "../services/api"; + +// ─── Konstanta ──────────────────────────────────────────────────────────────── + +const SPEED_MODES = [ + { key: "pelan", label: "Pelan", value: 50, desc: "Cocok untuk telur rapuh" }, + { key: "sedang", label: "Sedang", value: 128, desc: "Mode normal" }, + { key: "cepat", label: "Cepat", value: 220, desc: "Throughput tinggi" }, +]; + +function getSpeedLabel(v: number) { + if (v < 80) return "Pelan"; + if (v < 170) return "Sedang"; + return "Cepat"; +} + +function getSpeedColor(v: number) { + if (v < 80) return "#16a34a"; + if (v < 170) return "#d97706"; + return "#dc2626"; +} + +// ─── Komponen utama ─────────────────────────────────────────────────────────── + +export default function ControlScreen() { + const [speed, setSpeed] = useState(128); + const [speedMode, setSpeedMode] = useState("sedang"); + const [speedInput, setSpeedInput] = useState("128"); + const [saving, setSaving] = useState(false); + const [saved, setSaved] = useState(false); + const [loadingCurrent, setLoadingCurrent] = useState(true); + const [refreshing, setRefreshing] = useState(false); + + // ── Fetch speed dari server ─────────────────────────────────────────────── + const fetchSpeed = useCallback(async (isManual = false) => { + if (isManual) setRefreshing(true); + else setLoadingCurrent(true); + try { + const currentSpeed = await getConveyorSpeed(); + setSpeed(currentSpeed); + setSpeedInput(String(currentSpeed)); + const match = SPEED_MODES.find((m) => m.value === currentSpeed); + setSpeedMode(match ? match.key : ""); + } catch { + if (isManual) { + Alert.alert("Gagal", "Tidak dapat mengambil data dari server."); + } + } finally { + setLoadingCurrent(false); + setRefreshing(false); + } + }, []); + + // Fetch pertama kali saat app buka + useEffect(() => { fetchSpeed(); }, []); + + // ✅ Fetch ulang SETIAP KALI tab Control difokuskan (balik dari tab lain) + // Ini memastikan data selalu sinkron dengan server, bukan dari state lama + useFocusEffect( + useCallback(() => { + fetchSpeed(); + }, [fetchSpeed]) + ); + + // ── Handler ─────────────────────────────────────────────────────────────── + + const applySpeedMode = (key: string, value: number) => { + setSpeedMode(key); + setSpeed(value); + setSpeedInput(String(value)); + }; + + // Dipanggil dari cylinder atau slider — TIDAK dari input teks + const handleSpeedChange = (v: number) => { + const rounded = Math.round(v); + setSpeed(rounded); + setSpeedInput(String(rounded)); + const match = SPEED_MODES.find((m) => m.value === rounded); + setSpeedMode(match ? match.key : ""); + }; + + /** + * Terapkan nilai dari input teks. + * HANYA dipanggil saat tombol "Terapkan" diklik — BUKAN saat blur/dismiss keyboard. + */ + const handleApplyInput = () => { + Keyboard.dismiss(); + const val = Math.max(0, Math.min(255, parseInt(speedInput, 10) || 0)); + setSpeed(val); + setSpeedInput(String(val)); + const match = SPEED_MODES.find((m) => m.value === val); + setSpeedMode(match ? match.key : ""); + }; + + const handleSave = async () => { + try { + setSaving(true); + await setConveyorSpeed(speed); + setSaved(true); + setTimeout(() => setSaved(false), 2500); + } catch { + Alert.alert("Error", "Gagal mengirim data ke perangkat. Cek koneksi server."); + } finally { + setSaving(false); + } + }; + + const activeColor = getSpeedColor(speed); + + // ── Loading state ───────────────────────────────────────────────────────── + + if (loadingCurrent) { + return ( + + + Memuat konfigurasi... + + ); + } + + // ── Render ──────────────────────────────────────────────────────────────── + + return ( + + {/* Header */} + + + Kontrol Conveyor + Atur kecepatan laju conveyor + + fetchSpeed(true)} + disabled={refreshing} + style={[styles.refreshBtn, refreshing && { opacity: 0.5 }]} + > + {refreshing + ? + : + } + + + + {/* Cylinder */} + + + + + + {Math.round((speed / 255) * 100)}% + + Geser ke atas / bawah untuk adjust + + + + + {/* Control Card */} + + + {/* Header nilai */} + + + + ⚙️ Kecepatan Conveyor + + + {speed} + / 255 + + + + + {getSpeedLabel(speed)} + + + + + {/* Mode preset */} + Mode Cepat + + {SPEED_MODES.map((m) => { + const active = speedMode === m.key; + const mColor = getSpeedColor(m.value); + return ( + applySpeedMode(m.key, m.value)} + style={[ + styles.modeButton, + { + borderColor: active ? mColor : "#e2e8f0", + backgroundColor: active ? mColor + "15" : "#f8fafc", + }, + ]} + > + + {m.label} + + {m.desc} + {active && ( + + )} + + ); + })} + + + {/* Slider */} + Slider Manual + + 0 + + 255 + + + {/* Input angka — onBlur DIHAPUS, hanya terapkan via tombol */} + Input Angka (0–255) + + + {/* Tombol Terapkan — SATU-SATUNYA cara nilai input diterapkan */} + + Terapkan + + + + + + {/* Speed bar indikator */} + + + + {speed < 80 + ? "⚠️ Kecepatan rendah — pastikan conveyor bergerak" + : speed > 200 + ? "⚠️ Kecepatan tinggi — awasi kondisi telur" + : "✓ Kecepatan normal"} + + + + {/* Tombol kirim */} + + + {saving ? "Mengirim..." : saved ? "✓ Kecepatan Tersimpan!" : "Kirim ke Perangkat"} + + + + ); +} + +// ─── Styles ─────────────────────────────────────────────────────────────────── +const styles = StyleSheet.create({ + container: { flex: 1, backgroundColor: "#f8fafc" }, + content: { padding: 16, paddingBottom: 32 }, + loadingContainer: { flex: 1, justifyContent: "center", alignItems: "center", backgroundColor: "#f8fafc", gap: 12 }, + loadingText: { fontSize: 13, color: "#94a3b8" }, + + header: { flexDirection: "row", justifyContent: "space-between", alignItems: "flex-start", marginBottom: 20 }, + title: { fontSize: 24, fontWeight: "800", color: "#0f172a", letterSpacing: -0.5 }, + subtitle: { fontSize: 12, color: "#94a3b8", marginTop: 2 }, + refreshBtn: { + width: 40, height: 40, borderRadius: 20, + backgroundColor: "#fff", borderWidth: 1, borderColor: "#e2e8f0", + alignItems: "center", justifyContent: "center", + shadowColor: "#000", shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, shadowRadius: 3, elevation: 2, + }, + refreshIcon: { fontSize: 22, color: "#0284c7", fontWeight: "700", lineHeight: 26 }, + + // Cylinder card + cylinderCard: { + backgroundColor: "#fff", borderWidth: 1, borderColor: "#e2e8f0", + borderRadius: 16, paddingVertical: 28, paddingHorizontal: 16, + marginBottom: 16, alignItems: "center", + shadowColor: "#000", shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, shadowRadius: 4, elevation: 2, + }, + cylinderWrapper: { alignItems: "center", gap: 16 }, + cylinderInfo: { alignItems: "center" }, + cylinderPct: { fontSize: 32, fontWeight: "800", color: "#0f172a", fontFamily: "monospace" }, + cylinderHint: { fontSize: 11, color: "#94a3b8", marginTop: 2 }, + + // Control card + controlCard: { + backgroundColor: "#fff", borderWidth: 1, borderRadius: 16, + padding: 16, marginBottom: 12, + shadowColor: "#000", shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.04, shadowRadius: 3, elevation: 1, + }, + controlHeaderRow: { + flexDirection: "row", justifyContent: "space-between", + alignItems: "flex-start", marginBottom: 16, + }, + controlLabel: { fontSize: 12, fontWeight: "700", marginBottom: 4 }, + valueRow: { flexDirection: "row", alignItems: "baseline" }, + controlValueText: { fontSize: 32, fontWeight: "800", fontFamily: "monospace" }, + controlValueUnit: { fontSize: 13, color: "#94a3b8" }, + modeBadge: { paddingHorizontal: 12, paddingVertical: 5, borderRadius: 20, borderWidth: 1 }, + modeBadgeText: { fontSize: 11, fontWeight: "600" }, + sectionLabel: { fontSize: 10, color: "#94a3b8", fontWeight: "600", marginBottom: 8, marginTop: 4 }, + + // Mode buttons + modeRow: { flexDirection: "row", gap: 8, marginBottom: 16 }, + modeButton: { flex: 1, paddingVertical: 10, paddingHorizontal: 6, borderRadius: 12, borderWidth: 1, alignItems: "center", gap: 3, position: "relative" }, + modeButtonLabel:{ fontSize: 11, fontWeight: "700" }, + modeButtonDesc: { fontSize: 9, color: "#94a3b8", textAlign: "center" }, + activeIndicator:{ position: "absolute", top: 6, right: 6, width: 6, height: 6, borderRadius: 3 }, + + // Slider + sliderRow: { flexDirection: "row", alignItems: "center", gap: 8, marginBottom: 8 }, + sliderMin: { fontSize: 10, color: "#94a3b8", width: 16, textAlign: "center" }, + sliderMax: { fontSize: 10, color: "#94a3b8", width: 24, textAlign: "center" }, + slider: { flex: 1, height: 40 }, + + // Input angka + inputRow: { flexDirection: "row", gap: 10, alignItems: "center" }, + numberInput: { + width: 80, backgroundColor: "#f8fafc", borderWidth: 1.5, + borderRadius: 10, paddingHorizontal: 10, paddingVertical: 9, + color: "#0f172a", fontSize: 18, fontFamily: "monospace", + textAlign: "center", fontWeight: "700", + }, + applyButton: { flex: 1, paddingVertical: 12, borderRadius: 10, borderWidth: 1, alignItems: "center" }, + applyButtonText: { fontSize: 13, fontWeight: "700" }, + inputHint: { fontSize: 10, color: "#cbd5e1", marginTop: 6, fontStyle: "italic" }, + + // Speed bar + speedBar: { + backgroundColor: "#f1f5f9", borderRadius: 12, overflow: "hidden", + marginBottom: 16, height: 40, justifyContent: "center", + borderWidth: 1, borderColor: "#e2e8f0", + }, + speedBarFill: { position: "absolute", top: 0, left: 0, bottom: 0, opacity: 0.15, borderRadius: 12 }, + speedBarLabel: { fontSize: 11, color: "#64748b", paddingHorizontal: 12 }, + + // Save button + saveButton: { borderRadius: 14, paddingVertical: 16, alignItems: "center" }, + saveButtonText: { color: "#fff", fontSize: 15, fontWeight: "800", letterSpacing: 0.3 }, +}); \ No newline at end of file diff --git a/src/screens/DashboardScreen.tsx b/src/screens/DashboardScreen.tsx new file mode 100644 index 0000000..5db66ae --- /dev/null +++ b/src/screens/DashboardScreen.tsx @@ -0,0 +1,391 @@ +import React, { useEffect, useState } from "react"; +import { + View, Text, ScrollView, StyleSheet, + ActivityIndicator, TouchableOpacity, +} from "react-native"; +import { getEggData, EggRecord, EggGrade } from "../services/api"; +import Sparkline from "../components/Sparkline"; +import BarChart from "../components/BarChart"; +import CalendarPicker, { toISO, fromISO, toDisplay } from "../components/CalendarPicker"; +import { HistoryPoint } from "../services/api"; + +const GRADE_CONFIG = { + A: { color:"#16a34a", bg:"#f0fdf4", borderColor:"#bbf7d0", label:"Grade A", range:"> 60g", key:"gradeA" as const }, + B: { color:"#d97706", bg:"#fffbeb", borderColor:"#fde68a", label:"Grade B", range:"50 – 60g", key:"gradeB" as const }, + C: { color:"#dc2626", bg:"#fef2f2", borderColor:"#fecaca", label:"Grade C", range:"< 50g", key:"gradeC" as const }, + TL: { color:"#6b7280", bg:"#f1f5f9", borderColor:"#cbd5e1", label:"Tidak Layak", range:"Reject", key:"gradeTL" as const }, +}; + +/** dd/mm/yyyy*/ +const fromDisplay = (s: string): Date | null => { + const p = s.split("/"); + if (p.length !== 3) return null; + const d = new Date(+p[2], +p[1]-1, +p[0]); + d.setHours(0,0,0,0); + return isNaN(d.getTime()) ? null : d; +}; + +/** Hitung total & history yg sdh di filter */ +function buildSummary(data: EggRecord[]) { + const acc: Record = { + A: { count:0, totalW:0 }, + B: { count:0, totalW:0 }, + C: { count:0, totalW:0 }, + TL: { count:0, totalW:0 }, + }; + data.forEach(d => { + const g = d.grade in acc ? d.grade : "TL"; + acc[g].count++; + acc[g].totalW += d.weight; + }); + + const avg = (g: EggGrade) => + acc[g].count > 0 ? parseFloat((acc[g].totalW / acc[g].count).toFixed(1)) : 0; + const slotMap: Record> = {}; + + data.forEach(d => { + const [hStr, mStr] = d.timestamp.split(":"); + const h = parseInt(hStr) || 0; + const m = parseInt(mStr) || 0; + const slot30 = `${String(h).padStart(2,"0")}:${m < 30 ? "00" : "30"}`; + const key = `${d.date} ${slot30}`; + if (!slotMap[key]) slotMap[key] = { A:0, B:0, C:0, TL:0 }; + const g = d.grade in slotMap[key] ? d.grade : "TL"; + slotMap[key][g]++; + }); + + const history: HistoryPoint[] = Object.entries(slotMap) + .sort(([a],[b]) => a.localeCompare(b)) + .slice(-5) + .map(([key, v]) => ({ + time: key.split(" ")[1], + A: v.A, B: v.B, C: v.C, TL: v.TL, + })); + + return { + gradeA: { count: acc.A.count, avgWeight: avg("A") }, + gradeB: { count: acc.B.count, avgWeight: avg("B") }, + gradeC: { count: acc.C.count, avgWeight: avg("C") }, + gradeTL: { count: acc.TL.count, avgWeight: avg("TL") }, + history, + }; +} + +// Data dummy +const _today = new Date(); +const MOCK_DATA: EggRecord[] = Array.from({ length: 50 }, (_, i) => { + const grades: EggGrade[] = ["A","B","C","TL"]; + const grade = grades[i % 4]; + + const weightMap = { + A: 64, + B: 55, + C: 47, + TL: 30, + }; + + const d = new Date(_today); + d.setDate(_today.getDate() - Math.floor(i / 10)); + d.setHours(8 + (i % 10), 0, 0, 0); + + return { + id: i + 1, + grade, + weight: weightMap[grade], + timestamp: `${String(d.getHours()).padStart(2,"0")}:00`, + date: `${String(d.getDate()).padStart(2,"0")}/${String(d.getMonth()+1).padStart(2,"0")}/${d.getFullYear()}`, + }; +}); + +// ─Komponen utama + +export default function DashboardScreen() { + const todayISO = toISO(new Date()); + + const [allData, setAllData] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + // const [usingMock, setUsingMock] = useState(false); + const [dateFrom, setDateFrom] = useState(todayISO); + const [dateTo, setDateTo] = useState(todayISO); + const [showCalFrom, setShowCalFrom] = useState(false); + const [showCalTo, setShowCalTo] = useState(false); + + // ── Fetch semua data sekali, filter di frontend ─────────────────────────── + useEffect(() => { + const fetch = async () => { + try { + const result = await getEggData(); + setAllData(result); + // setUsingMock(false); + setError(null); + } catch { + // setAllData(MOCK_DATA); + // setUsingMock(true); + setAllData([]); + setError("Server belum terhubung"); + } finally { + setLoading(false); + } + }; + fetch(); + const iv = setInterval(fetch, 5000); + return () => clearInterval(iv); + }, []); + + // ── Filter data berdasarkan rentang tanggal ─────────────────────────────── + const filtered = allData.filter(d => { + const itemDate = fromDisplay(d.date); + const from = fromISO(dateFrom); + const to = fromISO(dateTo); + to.setHours(23,59,59,999); + return itemDate ? itemDate >= from && itemDate <= to : true; + }); + + // ── Hitung summary dari data yang sudah difilter ────────────────────────── + const summary = buildSummary(filtered); + + const totalEggs = + summary.gradeA.count + summary.gradeB.count + + summary.gradeC.count + summary.gradeTL.count; + + const rangeLabel = dateFrom === dateTo + ? `Hari ini, ${toDisplay(dateFrom)}` + : `${toDisplay(dateFrom)} – ${toDisplay(dateTo)}`; + + // Helper ambil data per key + const getSummaryByKey = (key: "gradeA"|"gradeB"|"gradeC"|"gradeTL") => summary[key]; + const getSparkByGrade = (grade: EggGrade) => summary.history.map(h => h[grade]); + + return ( + + {/* Header */} + + + Dashboard + Live · Refresh 5s + + + + + + + {error ? "OFFLINE" : "ONLINE"} + + + + + {/* Filter Tanggal */} + + + {/* Dari */} + + Dari Tanggal + setShowCalFrom(true)} style={s.dateFieldBtn}> + {toDisplay(dateFrom)} + + + + + + {/* Sampai */} + + Sampai Tanggal + setShowCalTo(true)} style={s.dateFieldBtn}> + {toDisplay(dateTo)} + + + + + {/* Label aktif + Reset */} + + {(dateFrom!==todayISO || dateTo!==todayISO) && ( + { setDateFrom(todayISO); setDateTo(todayISO); }}> + Reset ke Hari Ini + + )} + + + + {/* Total Card */} + + + Total Telur + {loading ? ( + + ) : ( + {String(totalEggs).padStart(3,"0")} + )} + {rangeLabel} + + + Grade + + {(["A","B","C","TL"] as const).map((g) => ( + + {g} + + ))} + + + + + {/* Grade Cards — A, B, C, TL */} + {(["A","B","C","TL"] as const).map((grade) => { + const cfg = GRADE_CONFIG[grade]; + const d = getSummaryByKey(cfg.key); + const sparkData = getSparkByGrade(grade); + + return ( + + + + + + {cfg.label} + + {cfg.range} + + + + Jumlah + + {loading ? "—" : d.count} + + butir + + + Rata-rata + + {loading ? "—" : d.avgWeight > 0 ? d.avgWeight.toFixed(1) : "0"} + + gram + + + + + {sparkData.length >= 2 + ? + : + } + + + + ); + })} + + {/* Bar Chart */} + + Distribusi per Waktu · {rangeLabel} + {loading ? ( + + ) : summary.history.length > 0 ? ( + + ) : ( + Belum ada data pada rentang tanggal ini + )} + + + {/* Calendar popup — Dari */} + { setDateFrom(v); if (v > dateTo) setDateTo(v); }} + onClose={() => setShowCalFrom(false)} + /> + + {/* Calendar popup — Sampai */} + setDateTo(v)} + onClose={() => setShowCalTo(false)} + /> + + + ); +} + +// ─── Styles ─────────────────────────────────────────────────────────────────── +const s = StyleSheet.create({ + container: { flex:1, backgroundColor:"#f8fafc" }, + content: { padding:16, paddingBottom:24 }, + + header: { flexDirection:"row", justifyContent:"space-between", alignItems:"center", marginBottom:14 }, + title: { fontSize:24, fontWeight:"800", color:"#0f172a", letterSpacing:-0.5 }, + subtitle: { fontSize:12, color:"#94a3b8", marginTop:2 }, + statusBadge:{ flexDirection:"row", alignItems:"center", gap:6, borderWidth:1, borderRadius:20, paddingHorizontal:12, paddingVertical:6 }, + statusDot: { width:7, height:7, borderRadius:4 }, + statusText: { fontSize:10, fontWeight:"700" }, + + mockBanner: { backgroundColor:"#fffbeb", borderWidth:1, borderColor:"#fde68a", borderRadius:10, padding:9, marginBottom:12 }, + mockText: { fontSize:11, color:"#92400e" }, + + // Date card + dateCard: { backgroundColor:"#fff", borderWidth:1, borderColor:"#e2e8f0", borderRadius:14, padding:12, marginBottom:14 }, + dateRangeRow: { flexDirection:"row", alignItems:"center", gap:8 }, + dateField: { flex:1 }, + dateFieldLabel: { fontSize:10, color:"#94a3b8", fontWeight:"600", marginBottom:4 }, + dateFieldBtn: { flexDirection:"row", alignItems:"center", gap:6, backgroundColor:"#f8fafc", borderWidth:1, borderColor:"#e2e8f0", borderRadius:10, paddingHorizontal:10, paddingVertical:9 }, + dateFieldIcon: { fontSize:14 }, + dateFieldText: { fontSize:13, color:"#0f172a", fontWeight:"600" }, + dateDash: { fontSize:18, color:"#cbd5e1", marginTop:16 }, + activeRow: { flexDirection:"row", justifyContent:"space-between", alignItems:"center", marginTop:10 }, + activeText: { fontSize:11, color:"#64748b" }, + resetText: { fontSize:11, color:"#4f46e5", fontWeight:"700" }, + + // Total Card + totalCard: { backgroundColor:"#eef2ff", borderWidth:1, borderColor:"#c7d2fe", borderRadius:16, padding:16, marginBottom:14, flexDirection:"row", justifyContent:"space-between", alignItems:"center" }, + totalLabel: { fontSize:11, color:"#4f46e5", marginBottom:2, fontWeight:"600" }, + totalValue: { fontSize:36, fontWeight:"800", color:"#1e1b4b", fontFamily:"monospace" }, + totalSub: { fontSize:10, color:"#818cf8", marginTop:2 }, + gradeBadgeRow: { alignItems:"flex-end" }, + totalSubLabel: { fontSize:11, color:"#94a3b8", marginBottom:6 }, + gradeBadgesContainer:{ flexDirection:"row", gap:5 }, + gradeBadge: { width:28, height:28, borderRadius:7, borderWidth:1, alignItems:"center", justifyContent:"center" }, + gradeBadgeText: { fontSize:9, fontWeight:"700" }, + + // Grade Cards + gradeCard: { borderWidth:1, borderRadius:16, padding:14, marginBottom:12 }, + gradeCardInner: { flexDirection:"row", justifyContent:"space-between", alignItems:"flex-start" }, + gradeTagRow: { flexDirection:"row", alignItems:"center", gap:8, marginBottom:10 }, + gradeTag: { paddingHorizontal:8, paddingVertical:3, borderRadius:6 }, + gradeTagText: { fontSize:11, fontWeight:"800", color:"#fff" }, + gradeRange: { fontSize:10, color:"#94a3b8" }, + statsRow: { flexDirection:"row" }, + statLabel: { fontSize:10, color:"#94a3b8", marginBottom:2 }, + statValue: { fontSize:28, fontWeight:"800", fontFamily:"monospace", lineHeight:32 }, + statUnit: { fontSize:9, color:"#94a3b8" }, + sparklineContainer: { alignItems:"flex-end", paddingTop:4 }, + noSparkline: { width:80, height:40, justifyContent:"center", alignItems:"center" }, + noSparklineText:{ color:"#cbd5e1", fontSize:18 }, + + // Chart + chartCard: { backgroundColor:"#fff", borderWidth:1, borderColor:"#e2e8f0", borderRadius:16, padding:16 }, + chartTitle: { fontSize:12, color:"#64748b", fontWeight:"600", marginBottom:12 }, + emptyChart: { fontSize:12, color:"#94a3b8", textAlign:"center", paddingVertical:20 }, +}); \ No newline at end of file diff --git a/src/screens/LaporanScreen.tsx b/src/screens/LaporanScreen.tsx new file mode 100644 index 0000000..dc4d108 --- /dev/null +++ b/src/screens/LaporanScreen.tsx @@ -0,0 +1,452 @@ +import React, { useEffect, useState } from "react"; +import { + View, Text, StyleSheet, TouchableOpacity, TextInput, + ActivityIndicator, Alert, FlatList, Modal, +} from "react-native"; +import RNPrint from "react-native-print"; +import CalendarPicker, { toISO, fromISO, toDisplay } from "../components/CalendarPicker"; +import { getEggData, EggRecord, EggGrade } from "../services/api"; + +const GRADE_CONFIG = { + A: { color: "#16a34a", bg: "#f0fdf4", borderColor: "#bbf7d0" }, + B: { color: "#d97706", bg: "#fffbeb", borderColor: "#fde68a" }, + C: { color: "#dc2626", bg: "#fef2f2", borderColor: "#fecaca" }, + TL: { color: "#6b7280", bg: "#f1f5f9", borderColor: "#cbd5e1" }, +}; + +const fromDisplay = (s: string): Date | null => { + const p = s.split("/"); + if (p.length !== 3) return null; + const d = new Date(+p[2], +p[1]-1, +p[0]); + d.setHours(0,0,0,0); + return isNaN(d.getTime()) ? null : d; +}; + +type GradeFilter = "all" | EggGrade; + + +export default function laporanScreen() { + const todayISO = toISO(new Date()); + + const [allData, setAllData] = useState([]); + const [gradeFilter, setGradeFilter] = useState("all"); + const [dateFrom, setDateFrom] = useState(todayISO); + const [dateTo, setDateTo] = useState(todayISO); + const [search, setSearch] = useState(""); + const [loading, setLoading] = useState(true); + const [printing, setPrinting] = useState(false); + const [showCalFrom, setShowCalFrom] = useState(false); + const [showCalTo, setShowCalTo] = useState(false); + + useEffect(() => { + const fetch = async () => { + try { + const result = await getEggData(); + setAllData(result); + + } catch (err) { + setAllData([]); + } finally { setLoading(false); } + }; + fetch(); + const iv = setInterval(fetch, 8000); + return () => clearInterval(iv); + }, []); + + // ── Filter ──────────────────────────────────────────────────────────────── + const filtered = allData.filter((d) => { + const matchGrade = gradeFilter === "all" || d.grade === gradeFilter; + const itemDate = fromDisplay(d.date); + const from = fromISO(dateFrom); + const to = fromISO(dateTo); to.setHours(23,59,59,999); + const matchDate = itemDate ? itemDate >= from && itemDate <= to : true; + const matchSearch = !search || ( + d.grade.toLowerCase().includes(search.toLowerCase()) || + d.weight.toString().includes(search) || d.date.includes(search) + ); + return matchGrade && matchDate && matchSearch; + }); + + const countByGrade = (g: EggGrade) => filtered.filter(d => d.grade === g).length; + + const rangeLabel = dateFrom === dateTo + ? `Hari ini, ${toDisplay(dateFrom)}` + : `${toDisplay(dateFrom)} – ${toDisplay(dateTo)}`; + + // ── PDF ─────────────────────────────────────────────────────────────────── + const handlePrintPDF = async () => { + setPrinting(true); + try { + const gradeLabel = gradeFilter === "all" ? "Semua Grade" : `Grade ${gradeFilter}`; + const printDate = new Date().toLocaleString("id-ID",{ + weekday:"long", year:"numeric", month:"long", day:"numeric", hour:"2-digit", minute:"2-digit" + }); + + const pct = (n: number) => filtered.length > 0 ? ((n/filtered.length)*100).toFixed(1) : "0.0"; + const cntA = countByGrade("A"), cntB = countByGrade("B"), + cntC = countByGrade("C"), cntTL = countByGrade("TL"); + + const rows = filtered.length === 0 + ? `Tidak ada data sesuai filter` + : filtered.map((d,i) => ` + + ${i+1} + ${d.date} + ${d.timestamp} + ${d.grade==="TL"?"Tidak Layak":"Grade "+d.grade} + ${d.weight} g + `).join(""); + + const html = ` +Laporan Sortir Telur + +

+

🥚 Laporan Sortir Telur

Sistem Sortir Telur Otomatis — NAKULA

+
Dicetak: ${printDate}
${gradeLabel} · ${rangeLabel}
+
+
+
${filtered.length}
Total
100%
+
${cntA}
Grade A
${pct(cntA)}%
+
${cntB}
Grade B
${pct(cntB)}%
+
${cntC}
Grade C
${pct(cntC)}%
+
${cntTL}
Tdk Layak
${pct(cntTL)}%
+
+${filtered.length>0?` +
+
+
+
+
+
+
+
Grade A — ${cntA} butir (${pct(cntA)}%)
+
Grade B — ${cntB} butir (${pct(cntB)}%)
+
Grade C — ${cntC} butir (${pct(cntC)}%)
+
Tidak Layak — ${cntTL} butir (${pct(cntTL)}%)
+
`:""} +
+

Detail Data (${filtered.length} butir)

+ + + ${rows} +
#TanggalJamGradeBerat
+
+
+ Sistem Sortir Telur Otomatis © ${new Date().getFullYear()} + ${gradeLabel} · ${rangeLabel} +
+`; + + await RNPrint.print({ html }); + } catch (e: any) { + Alert.alert("Gagal", e?.message ?? "Tidak dapat membuka dialog cetak."); + } finally { setPrinting(false); } + }; + + // ── Render row ──────────────────────────────────────────────────────────── + const renderItem = ({ item, index }: { item: EggRecord; index: number }) => { + const cfg = GRADE_CONFIG[item.grade] ?? GRADE_CONFIG.TL; + return ( + + {item.id} + {item.date} + {item.timestamp} + + + + {item.grade==="TL" ? "Tdk Layak" : `Grade ${item.grade}`} + + + + {item.weight}g + + ); + }; + + return ( + + + {/* Header */} + + + Laporan + Data realtime sortir telur + + + + {/* + + {error ? "🔴 OFFLINE — Server tidak terhubung" : "🟢 ONLINE — Terhubung ke server"} + + */} + + {/* Filter Grade */} + + {(["all","A","B","C","TL"] as const).map((g) => { + const active = gradeFilter === g; + const color = g==="all" ? "#4f46e5" : GRADE_CONFIG[g as EggGrade].color; + const bg = g==="all" ? "#eef2ff" : GRADE_CONFIG[g as EggGrade].bg; + const border = g==="all" ? "#c7d2fe" : GRADE_CONFIG[g as EggGrade].borderColor; + return ( + setGradeFilter(g)} + style={[s.filterChip,{ borderColor: active?border:"#e2e8f0", backgroundColor: active?bg:"#fff" }]}> + + {g==="all"?"Semua":g==="TL"?"TL":`Grade ${g}`} + + + ); + })} + + + {/* Filter Tanggal — popup calendar */} + + + {/* Dari */} + + Dari Tanggal + setShowCalFrom(true)} style={s.dateFieldBtn}> + {/* 📅 */} + {toDisplay(dateFrom)} + + + + + + {/* Sampai */} + + Sampai Tanggal + setShowCalTo(true)} style={s.dateFieldBtn}> + {/* 📅 */} + {toDisplay(dateTo)} + + + + + {/* Label aktif + Reset */} + + + {rangeLabel}{" · "} + {filtered.length} data + + {(dateFrom!==todayISO || dateTo!==todayISO) && ( + { setDateFrom(todayISO); setDateTo(todayISO); }}> + Reset + + )} + + + + {/* Search */} + + + {/* Stats */} + + {(["A","B","C","TL"] as const).map((g) => { + const cnt = countByGrade(g); const cfg = GRADE_CONFIG[g]; + return ( + 0?cfg.bg:"#f8fafc", + borderColor: cnt>0?cfg.borderColor:"#e2e8f0", + }]}> + {cnt} + {g==="TL"?"TL":`Grade ${g}`} + + ); + })} + + {filtered.length} + Total + + + + {/* Table Header */} + + # + Tanggal + Waktu + Grade + Berat + + + {/* Table Body */} + {loading ? ( + + ) : filtered.length===0 ? ( + Tidak ada data pada rentang tanggal ini + ) : ( + item.id.toString()} + renderItem={renderItem} + showsVerticalScrollIndicator={false} + style={s.tableBody} + contentContainerStyle={{paddingBottom:90}} + /> + )} + + {/* FAB PDF */} + + {printing + ? + : PDF + } + + + {/* Calendar — Dari */} + { setDateFrom(v); if (v > dateTo) setDateTo(v); }} + onClose={() => setShowCalFrom(false)} + /> + + {/* Calendar — Sampai */} + setDateTo(v)} + onClose={() => setShowCalTo(false)} + /> + + + ); +} + +// ─── Styles ─────────────────────────────────────────────────────────────────── +const s = StyleSheet.create({ + container: { flex:1, backgroundColor:"#f8fafc", paddingTop:16, paddingHorizontal:16 }, + + header: { flexDirection:"row", justifyContent:"space-between", alignItems:"flex-start", marginBottom:10 }, + title: { fontSize:24, fontWeight:"800", color:"#0f172a", letterSpacing:-0.5 }, + subtitle: { fontSize:12, color:"#94a3b8", marginTop:2 }, + + // mockBanner: { backgroundColor:"#fffbeb", borderWidth:1, borderColor:"#fde68a", borderRadius:10, padding:9, marginBottom:10 }, + // mockText: { fontSize:11, color:"#92400e" }, + statusBanner: { + borderWidth: 1, + borderRadius: 10, + padding: 10, + marginBottom: 10, + }, + + statusText: { + fontSize: 12, + fontWeight: "600", + }, + + filterRow: { flexDirection:"row", gap:6, marginBottom:10 }, + filterChip: { flex:1, paddingVertical:7, borderRadius:20, borderWidth:1, alignItems:"center" }, + filterChipText:{ fontSize:11 }, + + // Date range card + dateRangeCard: { + backgroundColor:"#fff", borderWidth:1, borderColor:"#e2e8f0", + borderRadius:14, padding:12, marginBottom:10, + }, + dateRangeRow: { flexDirection:"row", alignItems:"center", gap:8 }, + dateField: { flex:1 }, + dateFieldLabel:{ fontSize:10, color:"#94a3b8", fontWeight:"600", marginBottom:4 }, + dateFieldBtn: { + flexDirection:"row", alignItems:"center", gap:6, + backgroundColor:"#f8fafc", borderWidth:1, borderColor:"#e2e8f0", + borderRadius:10, paddingHorizontal:10, paddingVertical:9, + }, + dateFieldIcon: { fontSize:14 }, + dateFieldText: { fontSize:13, color:"#0f172a", fontWeight:"600" }, + dateDash: { fontSize:18, color:"#cbd5e1", marginTop:16 }, + + activeRow: { flexDirection:"row", justifyContent:"space-between", alignItems:"center", marginTop:10 }, + activeText: { fontSize:11, color:"#64748b" }, + resetText: { fontSize:11, color:"#4f46e5", fontWeight:"700" }, + + searchInput: { + backgroundColor:"#fff", borderWidth:1, borderColor:"#e2e8f0", + borderRadius:10, paddingHorizontal:12, paddingVertical:9, + color:"#0f172a", fontSize:13, marginBottom:10, + }, + + statsRow: { flexDirection:"row", gap:6, marginBottom:10 }, + statBox: { flex:1, borderWidth:1, borderRadius:10, padding:6, alignItems:"center" }, + statNum: { fontSize:16, fontWeight:"800", fontFamily:"monospace" }, + statLabel:{ fontSize:8, color:"#94a3b8", marginTop:2 }, + + tableHeader: { flexDirection:"row", paddingVertical:10, paddingHorizontal:4, borderBottomWidth:1, borderBottomColor:"#e2e8f0" }, + thText: { fontSize:10, color:"#94a3b8", fontWeight:"600" }, + tableBody: { flex:1 }, + tableRow: { flexDirection:"row", alignItems:"center", paddingVertical:9, paddingHorizontal:4, borderBottomWidth:1, borderBottomColor:"#f1f5f9" }, + cell: { fontSize:11, color:"#334155" }, + cellId: { width:28, color:"#94a3b8", fontFamily:"monospace", fontSize:10 }, + cellDate: { width:68, fontSize:10, color:"#64748b" }, + cellTime: { width:44, fontSize:10, color:"#64748b" }, + cellGrade: { flex:1 }, + cellGradeCont:{ flex:1 }, + gradeBadge: { alignSelf:"flex-start", paddingHorizontal:6, paddingVertical:2, borderRadius:6, borderWidth:1 }, + gradeBadgeText:{ fontSize:9, fontWeight:"700" }, + cellWeight: { width:46, fontFamily:"monospace", fontWeight:"600", textAlign:"right", color:"#1e293b", fontSize:11 }, + emptyText: { textAlign:"center", color:"#94a3b8", marginTop:40, fontSize:13 }, + + fab: { + position:"absolute", bottom:24, right:20, + backgroundColor:"#4f46e5", borderRadius:18, + paddingHorizontal:22, paddingVertical:14, + shadowColor:"#4f46e5", shadowOffset:{width:0,height:6}, + shadowOpacity:0.4, shadowRadius:12, elevation:10, + }, + fabText: { color:"#fff", fontSize:14, fontWeight:"800", letterSpacing:0.3 }, +}); \ No newline at end of file diff --git a/src/services/api.ts b/src/services/api.ts new file mode 100644 index 0000000..4bfa673 --- /dev/null +++ b/src/services/api.ts @@ -0,0 +1,87 @@ +import axios from "axios"; + + +const BASE_URL = "http://10.10.1.112:5000"; + +// ─── Types ──────────────────────────────────────────────────────────────────── + +export type EggGrade = "A" | "B" | "C" | "TL"; +export type Period = "today" | "week" | "month" | "all"; + +export interface GradeSummary { + count: number; + avgWeight: number; +} + +export interface HistoryPoint { + time: string; + A: number; + B: number; + C: number; + TL: number; +} + +export interface SummaryResponse { + gradeA: GradeSummary; + gradeB: GradeSummary; + gradeC: GradeSummary; + gradeTL: GradeSummary; + history: HistoryPoint[]; +} + +export interface EggRecord { + id: number; + timestamp: string; + date: string; + grade: EggGrade; + weight: number; +} + +export interface LatestDataResponse { + berat: number; + grade: EggGrade; + timestamp: string; +} + +// ─── Axios instance dengan timeout ─────────────────────────────────────────── +const api = axios.create({ + baseURL: BASE_URL, + timeout: 8000, +}); + +// ─── API Calls ──────────────────────────────────────────────────────────────── + + +//Ambil semua data telur dari MySQL + +export const getEggData = async (): Promise => { + const res = await api.get("/telur"); + return res.data; +}; + + + //Ambil data telur terbaru. + +export const getLatestData = async (): Promise => { + const res = await api.get("/latest"); + return res.data; +}; + +// Ringkasan per grade + history chart untuk dashboard. + +export const getSummary = async (period: Period = "today"): Promise => { + const res = await api.get("/summary", { params: { period } }); + return res.data; +}; + +//Set kecepatan conveyor (0–255). +export const setConveyorSpeed = async (speed: number): Promise => { + await api.post("/setSpeed", { speed }); +}; + +//Ambil kecepatan conveyor saat ini. + +export const getConveyorSpeed = async (): Promise => { + const res = await api.get("/getSpeed"); + return res.data.speed; +}; \ No newline at end of file