Compare commits

...

8 Commits

48 changed files with 4293 additions and 2448 deletions

View File

@ -1,21 +1,113 @@
import { Product } from "@/lib/product";
import { Product } from "@/lib/product"
import uuid from "react-native-uuid"
export const products = [
// Sheet goods
new Product(15, {l: 4, w : 8, u: "ft"}, { name: "Plywood 1/4\"" }),
new Product(20, {l: 4, w : 8, u: "ft"}, { name: "Plywood 1/2\"" }),
new Product(25, {l: 4, w : 8, u: "ft"}, { name: "Plywood 3/4\"" }),
new Product(5, {l: 4, w : 8, u: "ft"}, { name: "Thin Panel Board" }),
new Product(10, {l: 4, w : 8, u: "ft"}, { name: "Sheetrock" }),
new Product(15, {l: 4, w : 8, u: "ft"}, { name: "OSB / Particle" }),
new Product(20, {l: 4, w : 8, u: "ft"}, { name: "MDF" }),
new Product(15, {l: 4, w : 8, u: "ft"}, { name: "Pegboard" }),
new Product(5, {l: 3, w : 5, u: "ft"}, { name: "Cement" }),
// trim
new Product(1, {l: 0.50, u : "ft"}, { name: "trim <= 3 inches" }),
new Product(1, {l: 0.75, u : "ft"}, { name: "trim > 3 inches" }),
// siding
new Product(1, {l: 1, u: "ft"}, {name: "house siding"}),
new Product(1, {l: 1, u: "ft"}, {name: "metal / shelf bars"}),
new Product(0.5, {l: 1, u: "ft"}, {name: "gutter spouts"}),
];
export default [
// Sheet goods
{
id: uuid.v4().valueOf(),
pricePerUnit: 15,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: 'Plywood 1/4"' },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 20,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: 'Plywood 1/2"' },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 25,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: 'Plywood 3/4"' },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 5,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: "Thin Panel Board" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 10,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: "Sheetrock" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 15,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: "OSB / Particle" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 20,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: "MDF" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 15,
dimensions: { l: 4, w: 8, u: "ft" },
type: "lumber",
attributes: { name: "Pegboard" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 5,
dimensions: { l: 3, w: 5, u: "ft" },
type: "lumber",
attributes: { name: "Cement" },
},
// trim
{
id: uuid.v4().valueOf(),
pricePerUnit: 1,
dimensions: { l: 0.5, u: "ft" },
type: "lumber",
attributes: { name: "trim <=3 inches" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 1,
dimensions: { l: 0.75, u: "ft" },
type: "lumber",
attributes: { name: "trim > 3 inches" },
},
// siding
{
id: uuid.v4().valueOf(),
pricePerUnit: 1,
dimensions: { l: 1, u: "ft" },
type: "lumber",
attributes: { name: "house siding" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 1,
dimensions: { l: 1, u: "ft" },
type: "lumber",
attributes: { name: "metal / shelf bars" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 0.5,
dimensions: { l: 1, u: "ft" },
type: "lumber",
attributes: { name: "gutter spouts" },
},
{
id: uuid.v4().valueOf(),
pricePerUnit: 0.75,
dimensions: { l: 1, w: 1, u: "ft" },
type: "area_rug",
attributes: { name: "area rug" },
},
] as Array<Product>;

View File

@ -1,40 +1,66 @@
import { Tabs } from 'expo-router';
import { Tabs } from "expo-router";
import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme';
import { TabBarIcon } from '@/components/navigation/TabBarIcon';
import { Provider } from 'react-redux';
import { products as fixtures } from "@/__fixtures__/initialProducts"
import { setupStore } from '../store';
import { SvgUri } from "react-native-svg";
import { Colors } from "@/constants/Colors";
import { useColorScheme } from "@/hooks/useColorScheme";
import { TabBarIcon } from "@/components/navigation/TabBarIcon";
import { Provider } from "react-redux";
import fixtures from "@/__fixtures__/initialProducts";
import { setupStore } from "../store";
const CARPET_ROLL_SVG = "/assets/images/icons/icon-carpet-roll-raw.svg";
const CARPET_ROLL_SELECTED_SVG =
"/assets/images/icons/icon-carpet-roll-selected-raw.svg";
const CarpetRollIcon = ({ selected }: { selected: boolean }) => {
const uri = selected ? CARPET_ROLL_SELECTED_SVG : CARPET_ROLL_SVG;
console.log(`Loading %s`, uri);
return <SvgUri width="2em" height="2em" uri={uri} />;
};
export default function TabLayout() {
const colorScheme = useColorScheme();
const store = setupStore({
products: fixtures.map(p => p.asObject),
units: "ft",
products: fixtures,
});
return (
<Provider store={store}>
<Tabs
screenOptions={{
tabBarActiveTintColor: Colors[colorScheme ?? 'light'].tint,
tabBarActiveTintColor: Colors[colorScheme ?? "light"].tint,
headerShown: false,
}}>
}}
>
<Tabs.Screen
name="index"
options={{
title: 'Measure',
title: "Plywood",
tabBarIcon: ({ color, focused }) => (
<TabBarIcon name={focused ? 'scale' : 'scale-outline'} color={color} />
<TabBarIcon
name={focused ? "scale" : "scale-outline"}
color={color}
/>
),
}}
/>
<Tabs.Screen
name="carpet-roll-calculator"
options={{
title: "Carpet Roll Calculator",
tabBarIcon: ({ color, focused }) => (
<CarpetRollIcon selected={focused} />
),
}}
/>
<Tabs.Screen
name="product-editor"
options={{
title: 'Edit Products',
title: "Edit Products",
tabBarIcon: ({ color, focused }) => (
<TabBarIcon name={focused ? 'list' : 'list-outline'} color={color} />
<TabBarIcon
name={focused ? "list" : "list-outline"}
color={color}
/>
),
}}
/>

View File

@ -0,0 +1,10 @@
import CarpetRollCalculator from '@/components/CarpetRollCalculator';
import { View } from 'react-native';
export default function CarpetRollCalculatorView () {
return (
<View>
<CarpetRollCalculator />
</View>
)
}

View File

@ -1,13 +1,19 @@
import 'react-native-reanimated';
import 'react-native-gesture-handler';
import { DarkTheme, DefaultTheme, ThemeProvider } from '@react-navigation/native';
import { useFonts } from 'expo-font';
import { Stack } from 'expo-router';
import * as SplashScreen from 'expo-splash-screen';
import { useEffect } from 'react';
import "react-native-reanimated";
import "react-native-gesture-handler";
import {
DarkTheme,
DefaultTheme,
ThemeProvider,
} from "@react-navigation/native";
import { useFonts } from "expo-font";
import { Stack } from "expo-router";
import * as SplashScreen from "expo-splash-screen";
import { useEffect, useState } from "react";
import { useColorScheme } from '@/hooks/useColorScheme';
import { Text, View } from 'react-native';
import { useColorScheme } from "@/hooks/useColorScheme";
import { Appearance, StyleSheet, Text, Pressable } from "react-native";
const isBrowser = typeof window !== "undefined";
// Prevent the splash screen from auto-hiding before asset loading is complete.
SplashScreen.preventAutoHideAsync();
@ -15,9 +21,18 @@ SplashScreen.preventAutoHideAsync();
export default function RootLayout() {
const colorScheme = useColorScheme();
const [loaded] = useFonts({
SpaceMono: require('../assets/fonts/SpaceMono-Regular.ttf'),
SpaceMono: require("../assets/fonts/SpaceMono-Regular.ttf"),
});
function changeTheme() {
console.debug("Changing color scheme");
if (Appearance.getColorScheme() === "dark") {
Appearance.setColorScheme("light");
} else {
Appearance.setColorScheme("dark");
}
}
useEffect(() => {
if (loaded) {
SplashScreen.hideAsync();
@ -28,18 +43,12 @@ export default function RootLayout() {
return null;
}
// return (
// <View>
// <Text>Hello World!</Text>
// </View>
// )
return (
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
<ThemeProvider value={colorScheme === "dark" ? DarkTheme : DefaultTheme}>
<Stack>
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen name="+not-found" />
</Stack>
</ThemeProvider>
);
}
}

View File

@ -1,39 +1,57 @@
import { useDispatch, useSelector } from 'react-redux';
import { configureStore } from '@reduxjs/toolkit';
import { rememberReducer, rememberEnhancer } from 'redux-remember';
import reducers from "@/features/product/productSlice"
import AsyncStorage from '@react-native-async-storage/async-storage';
import { ProductData } from "@/lib/dimensions_t";
import {Length} from "convert"
import { useDispatch, useSelector } from "react-redux";
import { configureStore } from "@reduxjs/toolkit";
import { rememberReducer, rememberEnhancer } from "redux-remember";
import reducers, { DEFAULT_PRELOADED_STATE } from "@/features/product/productSlice";
import AsyncStorage from "@react-native-async-storage/async-storage";
const rememberedKeys = ['products'];
// thanks to https://github.com/rt2zz/redux-persist/issues/1208#issuecomment-658695446
// for the workaround
const createNoopStorage = () => {
return {
getItem(_key : any) {
return Promise.resolve(null);
},
setItem(_key : any, value : any) {
return Promise.resolve(value);
},
removeItem(_key : any) {
return Promise.resolve();
},
};
};
const storage =
typeof window === "undefined" ? createNoopStorage() : AsyncStorage;
export default storage;
const PERSIST_WHOLE_STORE =
new Boolean(process.env.PERSIST_WHOLE_STORE).valueOf() || false;
const rememberedKeys = ["products"];
const rootReducer = reducers;
const isBrowser = (typeof window !== "undefined");
// const isBrowser = typeof window !== "undefined";
export function setupStore(preloadedState = {
products: [] as ProductData[],
units: "ft" as Length,
}) {
return configureStore({
reducer: rememberReducer(reducers),
preloadedState,
enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
rememberEnhancer(
AsyncStorage,
rememberedKeys,
{
persistWholeStore: false,
},
)
),
});
export function setupStore(preloadedState = DEFAULT_PRELOADED_STATE) {
return configureStore({
reducer: rememberReducer(reducers),
preloadedState,
enhancers: (getDefaultEnhancers) =>
getDefaultEnhancers().concat(
rememberEnhancer(storage, rememberedKeys, {
persistWholeStore: PERSIST_WHOLE_STORE,
})
),
});
}
export type RootState = ReturnType<typeof rootReducer>;
export type AppStore = ReturnType<typeof setupStore>;
export type AppDispatch = AppStore['dispatch'];
export type AppDispatch = AppStore["dispatch"];
export const useAppDispatch = useDispatch.withTypes<AppDispatch>();
export const useAppSelector = useSelector.withTypes<RootState>();

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5">
<defs
id="defs2" />
<g
id="layer1"
transform="translate(-45.575391,42.027803)">
<path
style="fill:none;fill-rule:evenodd;stroke:#666666;stroke-width:40;stroke-dasharray:none;stroke-opacity:1"
id="path2530"
d="M 531.42926,377.9527 C 540.4661,468.89249 467.03058,547.48405 377.95283,554.81097 274.58289,563.31347 185.8308,479.52537 178.70389,377.95283 170.61282,262.6392 264.37977,164.07205 377.95267,157.12414 504.80741,149.3637 612.89142,252.78898 619.67878,377.95267 627.16514,516.00643 514.35942,633.34716 377.95286,639.98977 228.99642,647.24353 102.62843,525.3011 96.117079,377.95287 89.064387,218.35444 219.92743,83.163596 377.95264,76.771971 547.96095,69.895667 691.79092,209.48591 698.07274,377.95264 704.79242,558.16209 556.64955,710.46473 377.95289,716.64533 187.73159,723.22454 27.108112,566.68774 21.021235,377.95289 14.569103,177.89267 179.35459,9.0876696 377.95262,3.0879444 512.83571,-0.98692729 642.11816,69.980531 712.81242,184.62164"
transform="matrix(0.26458333,0,0,0.26458333,50.423457,-37.133871)" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:19.4423;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="path2584"
cx="145.57539"
cy="57.972198"
r="37.746468" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="carpet-roll-length-inner-diameter.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.56504558"
inkscape:cx="16.812803"
inkscape:cy="315.90372"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.022935,37.596851)" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5">
<defs
id="defs2" />
<g
id="layer1"
transform="translate(-45.575391,42.027803)">
<path
style="fill:none;fill-rule:evenodd;stroke:#666666;stroke-width:40;stroke-dasharray:none;stroke-opacity:1"
id="path2530"
d="M 531.42926,377.9527 C 540.4661,468.89249 467.03058,547.48405 377.95283,554.81097 274.58289,563.31347 185.8308,479.52537 178.70389,377.95283 170.61282,262.6392 264.37977,164.07205 377.95267,157.12414 504.80741,149.3637 612.89142,252.78898 619.67878,377.95267 627.16514,516.00643 514.35942,633.34716 377.95286,639.98977 228.99642,647.24353 102.62843,525.3011 96.117079,377.95287 89.064387,218.35444 219.92743,83.163596 377.95264,76.771971 547.96095,69.895667 691.79092,209.48591 698.07274,377.95264 704.79242,558.16209 556.64955,710.46473 377.95289,716.64533 187.73159,723.22454 27.108112,566.68774 21.021235,377.95289 14.569103,177.89267 179.35459,9.0876696 377.95262,3.0879444 512.83571,-0.98692729 642.11816,69.980531 712.81242,184.62164"
transform="matrix(0.26458333,0,0,0.26458333,50.423457,-37.133871)" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="path2733"
cx="98.956039"
cy="63.796986"
r="10.301529" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="circle2839"
cx="77.884727"
cy="63.796986"
r="10.301529" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="circle2841"
cx="56.813419"
cy="63.796986"
r="10.301529" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="carpet-roll-length-number-of-rings.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.56504558"
inkscape:cx="15.043034"
inkscape:cy="331.83164"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.575391,42.027803)">
<path
sodipodi:type="spiral"
style="fill:none;fill-rule:evenodd;stroke:#666666;stroke-width:40;stroke-dasharray:none;stroke-opacity:1"
id="path2530"
sodipodi:cx="377.95276"
sodipodi:cy="377.95276"
sodipodi:expansion="0.75"
sodipodi:revolution="4.1178799"
sodipodi:radius="386.66254"
sodipodi:argument="-20.113815"
sodipodi:t0="0.29170668"
d="M 531.42926,377.9527 C 540.4661,468.89249 467.03058,547.48405 377.95283,554.81097 274.58289,563.31347 185.8308,479.52537 178.70389,377.95283 170.61282,262.6392 264.37977,164.07205 377.95267,157.12414 504.80741,149.3637 612.89142,252.78898 619.67878,377.95267 627.16514,516.00643 514.35942,633.34716 377.95286,639.98977 228.99642,647.24353 102.62843,525.3011 96.117079,377.95287 89.064387,218.35444 219.92743,83.163596 377.95264,76.771971 547.96095,69.895667 691.79092,209.48591 698.07274,377.95264 704.79242,558.16209 556.64955,710.46473 377.95289,716.64533 187.73159,723.22454 27.108112,566.68774 21.021235,377.95289 14.569103,177.89267 179.35459,9.0876696 377.95262,3.0879444 512.83571,-0.98692729 642.11816,69.980531 712.81242,184.62164"
transform="matrix(0.26458333,0,0,0.26458333,50.423457,-37.133871)" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="path2733"
cx="98.956039"
cy="63.796986"
r="10.301529" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="circle2839"
cx="77.884727"
cy="63.796986"
r="10.301529" />
<circle
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.5855;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
id="circle2841"
cx="56.813419"
cy="63.796986"
r="10.301529" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5">
<defs
id="defs2" />
<g
id="layer1"
transform="translate(-45.575391,42.027803)">
<path
style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:40;stroke-dasharray:none;stroke-opacity:1"
id="path2530"
d="M 531.42926,377.9527 C 540.4661,468.89249 467.03058,547.48405 377.95283,554.81097 274.58289,563.31347 185.8308,479.52537 178.70389,377.95283 170.61282,262.6392 264.37977,164.07205 377.95267,157.12414 504.80741,149.3637 612.89142,252.78898 619.67878,377.95267 627.16514,516.00643 514.35942,633.34716 377.95286,639.98977 228.99642,647.24353 102.62843,525.3011 96.117079,377.95287 89.064387,218.35444 219.92743,83.163596 377.95264,76.771971 547.96095,69.895667 691.79092,209.48591 698.07274,377.95264 704.79242,558.16209 556.64955,710.46473 377.95289,716.64533 187.73159,723.22454 27.108112,566.68774 21.021235,377.95289 14.569103,177.89267 179.35459,9.0876696 377.95262,3.0879444 512.83571,-0.98692729 642.11816,69.980531 712.81242,184.62164"
transform="matrix(0.26458333,0,0,0.26458333,50.423457,-37.133871)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="carpet-roll-length-outer-diameter.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.56504558"
inkscape:cx="15.043034"
inkscape:cy="331.83164"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.575391,42.027803)">
<path
sodipodi:type="spiral"
style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:40;stroke-dasharray:none;stroke-opacity:1"
id="path2530"
sodipodi:cx="377.95276"
sodipodi:cy="377.95276"
sodipodi:expansion="0.75"
sodipodi:revolution="4.1178799"
sodipodi:radius="386.66254"
sodipodi:argument="-20.113815"
sodipodi:t0="0.29170668"
d="M 531.42926,377.9527 C 540.4661,468.89249 467.03058,547.48405 377.95283,554.81097 274.58289,563.31347 185.8308,479.52537 178.70389,377.95283 170.61282,262.6392 264.37977,164.07205 377.95267,157.12414 504.80741,149.3637 612.89142,252.78898 619.67878,377.95267 627.16514,516.00643 514.35942,633.34716 377.95286,639.98977 228.99642,647.24353 102.62843,525.3011 96.117079,377.95287 89.064387,218.35444 219.92743,83.163596 377.95264,76.771971 547.96095,69.895667 691.79092,209.48591 698.07274,377.95264 704.79242,558.16209 556.64955,710.46473 377.95289,716.64533 187.73159,723.22454 27.108112,566.68774 21.021235,377.95289 14.569103,177.89267 179.35459,9.0876696 377.95262,3.0879444 512.83571,-0.98692729 642.11816,69.980531 712.81242,184.62164"
transform="matrix(0.26458333,0,0,0.26458333,50.423457,-37.133871)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5">
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.022935,37.596851)">
<g
id="g2358"
transform="translate(9.9331103,33.633936)"
style="stroke-width:1.000125;stroke-dasharray:none;stroke:#4d4d4d">
<path
id="path2242"
style="fill:none;fill-opacity:1;stroke:#4d4d4d;stroke-width:10.5833;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 61.405087,24.188362 95.383293,-52.476396 c 24.96471,-6.689275 40.50388,-5.439089 53.53212,6.973747 13.06695,12.4497209 16.56131,25.0292929 9.58226,53.29021 l -79.61121,74.744307">
<path
style="fill:none;fill-opacity:1;stroke:#4d4d4d;stroke-width:10.58333333;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 61.405087,24.188362 c 33.653,-20.0428233 86.037773,3.774406 93.118353,36.785838 7.08285,33.022041 -22.22503,60.93414 -48.54578,62.44 C 78.791137,124.96959 39.251217,95.823248 53.111058,61.74891 66.84398,27.986602 114.30936,21.282096 133.47145,61.067637 141.69618,78.144337 124.82498,115.7347 93.694884,101.95457 67.187624,90.220797 80.85949,55.619126 103.5068,72.272096"
id="path2296" />
</g>
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 54.956029,14.247787 v 49.11798"
id="path2361" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:7.933;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 165.74785,-31.776353 V -4.1786544"
id="path2363" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 54.956029,38.806777 165.74785,-17.977504"
id="path2365" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 66.655684,60.631804 166.72149,5.3459019"
id="path2419" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="carpet-roll-length.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.56504558"
inkscape:cx="16.812803"
inkscape:cy="315.90372"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-45.022935,37.596851)">
<g
id="g2358"
transform="translate(9.9331103,33.633936)"
style="stroke-width:1.000125;stroke-dasharray:none">
<path
id="path2242"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10.5833;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 61.405087,24.188362 95.383293,-52.476396 c 24.96471,-6.689275 40.50388,-5.439089 53.53212,6.973747 13.06695,12.4497209 16.56131,25.0292929 9.58226,53.29021 l -79.61121,74.744307"
sodipodi:nodetypes="ccscc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:10.58333333;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 61.405087,24.188362 c 33.653,-20.0428233 86.037773,3.774406 93.118353,36.785838 7.08285,33.022041 -22.22503,60.93414 -48.54578,62.44 C 78.791137,124.96959 39.251217,95.823248 53.111058,61.74891 66.84398,27.986602 114.30936,21.282096 133.47145,61.067637 141.69618,78.144337 124.82498,115.7347 93.694884,101.95457 67.187624,90.220797 80.85949,55.619126 103.5068,72.272096"
id="path2296"
sodipodi:nodetypes="csssssc" />
</g>
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 54.956029,14.247787 v 49.11798"
id="path2361" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:7.933;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 165.74785,-31.776353 V -4.1786544"
id="path2363" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 54.956029,38.806777 165.74785,-17.977504"
id="path2365"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:10.5833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 66.655684,60.631804 166.72149,5.3459019"
id="path2419"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="138.30681mm"
height="154.33244mm"
viewBox="0 0 138.30681 154.33244"
version="1.1"
id="svg5">
<defs
id="defs2" />
<g
id="layer1"
transform="translate(-16.21663,9.4574458)">
<path
id="path1159"
style="color:#000000;fill:#4d4d4d;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="M 84.740234,-9.4160156 C 68.15509,-8.7735841 52.02707,-1.7146219 39.964044,9.6231858 26.648596,22.071715 18.076319,39.496811 16.501795,57.66977 c -1.645753,18.579279 3.895027,37.618833 14.989336,52.58191 12.684228,17.27087 32.213572,29.40218 53.368996,32.91774 7.99486,1.38849 16.141663,0.90069 24.215283,1.12304 15.09416,0.23099 45.28397,0.58254 45.28397,0.58254 l 0.16406,-29.05664 c 0,0 -41.07257,-0.46602 -61.603333,-0.95016 C 73.52257,112.94115 55.60882,99.500597 48.574219,81.246094 44.440178,70.483349 44.205066,58.365847 48.518016,47.618972 c 3.162294,-8.025196 8.739489,-15.207303 15.794319,-20.25647 4.623193,-3.307847 9.913924,-5.744641 15.524849,-6.892099 8.672795,-1.790982 18.043304,-0.534421 25.815816,4.023536 7.87161,4.489385 14.18712,12.028138 16.56143,20.87735 1.23335,4.543838 1.36998,9.373431 0.30119,14.031055 -0.74507,3.332732 -2.25335,6.691651 -4.26758,9.552449 -3.31986,4.764731 -8.17204,8.525969 -13.70812,10.137984 -3.5817,1.063713 -7.364852,1.126483 -10.998725,0.157506 -3.130437,-0.828309 -6.176833,-2.547609 -8.469609,-4.970798 -0.828833,-0.825963 -1.718562,-1.752246 -1.90557,-2.953313 0.546353,0.03015 1.021774,0.492626 1.489295,0.77924 3.10825,2.815209 7.350333,4.248692 11.525155,4.113487 4.138474,-0.08494 8.323724,-1.110279 11.873164,-3.276351 5.61479,-3.665861 8.96726,-10.148139 9.71028,-16.711793 0.7865,-7.300809 -1.76907,-14.802261 -6.61867,-20.280517 C 105.81786,29.801689 97.945669,25.9565 89.819169,25.548534 80.084076,24.938498 70.258715,28.813652 63.340156,35.646519 c -8.084338,7.778492 -12.546172,19.129986 -11.962285,30.33033 0.439793,10.172436 4.701938,20.084949 11.660881,27.502481 9.452208,10.28192 23.498433,16.2062 37.471938,15.59438 12.72463,-0.43479 25.11785,-5.90199 34.24102,-14.742595 11.00086,-10.548759 17.60935,-25.606798 17.64012,-40.874184 0.14912,-15.553691 -6.1531,-30.978659 -16.8973,-42.187276 -12.0859,-12.8482542 -29.48065,-20.6217449 -47.150473,-20.717969 -1.20134,-0.016984 -2.403084,-0.012469 -3.603823,0.032298 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,15 @@
<svg
width="138.30681mm"
height="154.33244mm"
viewBox="0 0 138.30681 154.33244">
<defs
id="defs2" />
<g
id="layer1"
transform="translate(-16.21663,9.4574458)">
<path
id="path1159"
style="color:#000000;fill:#0a7ea4;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="M 84.740234,-9.4160156 C 68.15509,-8.7735841 52.02707,-1.7146219 39.964044,9.6231858 26.648596,22.071715 18.076319,39.496811 16.501795,57.66977 c -1.645753,18.579279 3.895027,37.618833 14.989336,52.58191 12.684228,17.27087 32.213572,29.40218 53.368996,32.91774 7.99486,1.38849 16.141663,0.90069 24.215283,1.12304 15.09416,0.23099 45.28397,0.58254 45.28397,0.58254 l 0.16406,-29.05664 c 0,0 -41.07257,-0.46602 -61.603333,-0.95016 C 73.52257,112.94115 55.60882,99.500597 48.574219,81.246094 44.440178,70.483349 44.205066,58.365847 48.518016,47.618972 c 3.162294,-8.025196 8.739489,-15.207303 15.794319,-20.25647 4.623193,-3.307847 9.913924,-5.744641 15.524849,-6.892099 8.672795,-1.790982 18.043304,-0.534421 25.815816,4.023536 7.87161,4.489385 14.18712,12.028138 16.56143,20.87735 1.23335,4.543838 1.36998,9.373431 0.30119,14.031055 -0.74507,3.332732 -2.25335,6.691651 -4.26758,9.552449 -3.31986,4.764731 -8.17204,8.525969 -13.70812,10.137984 -3.5817,1.063713 -7.364852,1.126483 -10.998725,0.157506 -3.130437,-0.828309 -6.176833,-2.547609 -8.469609,-4.970798 -0.828833,-0.825963 -1.718562,-1.752246 -1.90557,-2.953313 0.546353,0.03015 1.021774,0.492626 1.489295,0.77924 3.10825,2.815209 7.350333,4.248692 11.525155,4.113487 4.138474,-0.08494 8.323724,-1.110279 11.873164,-3.276351 5.61479,-3.665861 8.96726,-10.148139 9.71028,-16.711793 0.7865,-7.300809 -1.76907,-14.802261 -6.61867,-20.280517 C 105.81786,29.801689 97.945669,25.9565 89.819169,25.548534 80.084076,24.938498 70.258715,28.813652 63.340156,35.646519 c -8.084338,7.778492 -12.546172,19.129986 -11.962285,30.33033 0.439793,10.172436 4.701938,20.084949 11.660881,27.502481 9.452208,10.28192 23.498433,16.2062 37.471938,15.59438 12.72463,-0.43479 25.11785,-5.90199 34.24102,-14.742595 11.00086,-10.548759 17.60935,-25.606798 17.64012,-40.874184 0.14912,-15.553691 -6.1531,-30.978659 -16.8973,-42.187276 -12.0859,-12.8482542 -29.48065,-20.6217449 -47.150473,-20.717969 -1.20134,-0.016984 -2.403084,-0.012469 -3.603823,0.032298 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,17 @@
<svg
width="142.37779mm"
height="154.51445mm"
viewBox="0 0 142.37779 154.51445">
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-16.165914,9.5264309)">
<path
id="path1159"
style="color:#000000;fill:#666666;fill-rule:evenodd;stroke:#cccccc;stroke-width:5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 85.203125,-7.3242188 C 69.920576,-6.8219072 54.978371,-0.73159347 43.488281,9.3105469 29.730781,21.167938 20.62376,38.325311 18.755859,56.416016 c -1.734796,15.95712 1.938409,32.407948 10.191407,46.164064 10.334605,17.47423 27.516469,30.69674 46.990234,36.375 6.645281,1.95148 13.56116,3.1467 20.517578,3.0625 19.153082,0.25684 38.305822,0.51598 57.458982,0.77148 a 0.33113676,0.33113676 0 0 0 0.33399,-0.30664 c 0.64021,-8.0547 1.28097,-16.1094 1.92187,-24.16406 a 0.33113676,0.33113676 0 0 0 -0.32617,-0.35742 c -20.65485,-0.286 -41.30981,-0.51288 -61.960938,-0.86719 h -0.0039 c -13.133341,-1.00893 -25.787797,-7.10439 -35.0625,-16.4375 a 0.33113676,0.33113676 0 0 0 0,-0.002 C 52.343603,94.184995 47.495562,86.16238 45.046875,77.314453 a 0.33113676,0.33113676 0 0 0 0,-0.002 C 42.922997,69.749353 42.661672,61.651864 44.335938,54.025391 47.301902,40.407665 56.579386,28.264581 69.050781,22.005859 a 0.33113676,0.33113676 0 0 0 0.002,-0.002 c 7.218526,-3.661983 15.535683,-5.174225 23.513672,-4.125 a 0.33113676,0.33113676 0 0 0 0.002,0 c 12.749801,1.558443 24.475741,10.023864 29.830081,21.716797 1.528,3.328833 2.54287,7.075443 2.8457,10.787109 a 0.33113676,0.33113676 0 0 0 0,0.0039 c 0.50314,5.427095 -0.52104,11.148138 -3.02734,16.058593 a 0.33113676,0.33113676 0 0 0 -0.002,0.002 c -3.77296,7.555238 -10.91161,13.615485 -19.2832,15.21289 a 0.33113676,0.33113676 0 0 0 0,0.002 c -4.546338,0.882115 -9.418457,0.367934 -13.595702,-1.726562 a 0.33113676,0.33113676 0 0 0 -0.0039,-0.002 c -5.431125,-2.626837 -9.860013,-7.754966 -10.794922,-13.78711 -0.497265,-3.192735 0.282359,-6.536996 2.125,-9.185546 -0.0139,2.705038 0.257235,5.460018 1.404297,7.986328 1.724833,4.159718 5.336057,7.559506 9.757813,8.675781 3.964246,1.059122 8.116269,0.326271 11.890621,-0.886719 a 0.33113676,0.33113676 0 0 0 0.002,0 c 2.75294,-0.915515 5.13542,-2.694581 6.95508,-4.916016 l 0.004,-0.0059 c 4.22887,-4.970422 5.92559,-11.850563 4.76367,-18.238281 v -0.0039 c -1.39169,-8.320828 -7.31354,-15.475053 -14.83007,-19.078125 l -0.002,-0.002 C 92.910555,26.731743 83.676017,26.736335 75.808594,29.951172 64.535605,34.499437 56.212806,45.226465 54.117188,57.134766 c -1.968025,10.346436 0.517884,21.379932 6.552734,29.984375 7.700829,11.262849 20.653527,18.702169 34.257812,19.705079 11.668956,0.98802 23.584106,-2.53175 32.964846,-9.503908 l 0.002,-0.002 c 12.41469,-9.061773 20.69784,-23.548746 22.11133,-38.865234 v -0.002 c 1.33798,-13.328328 -2.27053,-27.040971 -9.87305,-38.054688 v -0.002 C 130.49093,6.1822132 114.86084,-3.7880615 97.898438,-6.5078125 93.705473,-7.195958 89.449462,-7.4542424 85.205078,-7.3242188 a 0.33113676,0.33113676 0 0 0 -0.002,0 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="142.37779mm"
height="154.51445mm"
viewBox="0 0 142.37779 154.51445"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icon-carpet-roll.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#585858"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.79909512"
inkscape:cx="428.6098"
inkscape:cy="198.34935"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-16.165914,9.5264309)">
<path
id="path1159"
style="color:#000000;fill:#333333;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 84.740234,-9.4160156 C 68.15509,-8.7735841 52.02707,-1.7146219 39.964044,9.6231858 26.648596,22.071715 18.076319,39.496811 16.501795,57.66977 c -1.645753,18.579279 3.895027,37.618833 14.989336,52.58191 12.684228,17.27087 32.213572,29.40218 53.368996,32.91774 7.99486,1.38849 16.141663,0.90069 24.215283,1.12304 15.09416,0.23099 45.28397,0.58254 45.28397,0.58254 l 0.16406,-29.05664 c 0,0 -41.07257,-0.46602 -61.603333,-0.95016 C 73.52257,112.94115 55.60882,99.500597 48.574219,81.246094 44.440178,70.483349 44.205066,58.365847 48.518016,47.618972 c 3.162294,-8.025196 8.739489,-15.207303 15.794319,-20.25647 4.623193,-3.307847 9.913924,-5.744641 15.524849,-6.892099 8.672795,-1.790982 18.043304,-0.534421 25.815816,4.023536 7.87161,4.489385 14.18712,12.028138 16.56143,20.87735 1.23335,4.543838 1.36998,9.373431 0.30119,14.031055 -0.74507,3.332732 -2.25335,6.691651 -4.26758,9.552449 -3.31986,4.764731 -8.17204,8.525969 -13.70812,10.137984 -3.5817,1.063713 -7.364852,1.126483 -10.998725,0.157506 -3.130437,-0.828309 -6.176833,-2.547609 -8.469609,-4.970798 -0.828833,-0.825963 -1.718562,-1.752246 -1.90557,-2.953313 0.546353,0.03015 1.021774,0.492626 1.489295,0.77924 3.10825,2.815209 7.350333,4.248692 11.525155,4.113487 4.138474,-0.08494 8.323724,-1.110279 11.873164,-3.276351 5.61479,-3.665861 8.96726,-10.148139 9.71028,-16.711793 0.7865,-7.300809 -1.76907,-14.802261 -6.61867,-20.280517 C 105.81786,29.801689 97.945669,25.9565 89.819169,25.548534 80.084076,24.938498 70.258715,28.813652 63.340156,35.646519 c -8.084338,7.778492 -12.546172,19.129986 -11.962285,30.33033 0.439793,10.172436 4.701938,20.084949 11.660881,27.502481 9.452208,10.28192 23.498433,16.2062 37.471938,15.59438 12.72463,-0.43479 25.11785,-5.90199 34.24102,-14.742595 11.00086,-10.548759 17.60935,-25.606798 17.64012,-40.874184 0.14912,-15.553691 -6.1531,-30.978659 -16.8973,-42.187276 -12.0859,-12.8482542 -29.48065,-20.6217449 -47.150473,-20.717969 -1.20134,-0.016984 -2.403084,-0.012469 -3.603823,0.032298 z"
sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,8 +1,11 @@
import { MeasurementInput } from "./MeasurementInput";
import { area_t, dimensions_t } from "@/lib/dimensions_t";
import { area_t, dimensions_t } from "@/lib/dimensions";
import { Length } from "convert";
import { useState } from "react";
import { StyleSheet, Text, View } from "react-native";
import MeasurementUnitInput from "./MeasurementUnitInput";
import { useAppDispatch, useAppSelector } from "@/app/store";
import { selectPlywoodCalc } from "@/features/product/productSlice";
export type AreaInputProps = {
onMeasurementSet?: (area : dimensions_t) => any,
@ -14,48 +17,55 @@ export type AreaInputProps = {
export function AreaInput({onMeasurementSet, lengthLabel, widthLabel, defaultValue, units} : AreaInputProps) {
defaultValue = defaultValue || {l: 0, w: 0, u: "ft"}
units = units || "ft"
const [area, setArea] = useState(defaultValue)
function doOnLengthSet(measurement : dimensions_t) {
setArea({
...area,
l: measurement.l
});
onMeasurementSet && onMeasurementSet({
...area,
l: measurement.l
});
function doOnLengthSet(l: number) {
const a : area_t = { ...area, l };
setArea(a);
onMeasurementSet && onMeasurementSet(a);
}
function doOnWidthSet(measurement : dimensions_t) {
setArea({
...area,
w: measurement.l
});
onMeasurementSet && onMeasurementSet({
...area,
w: measurement.l
});
function doOnLengthUnitSet(u: Length) {
const a : area_t = { ...area, u };
setArea(a);
onMeasurementSet && onMeasurementSet(a);
}
function doOnWidthSet(l: number) {
const a : area_t = { ...area, l };
setArea(a);
onMeasurementSet && onMeasurementSet(a);
}
function doOnWidthUnitSet(u: Length) {
const a : area_t = { ...area, u };
setArea(a);
onMeasurementSet && onMeasurementSet(a);
}
return (
<View style={styles.areaInputWrapper}>
<MeasurementInput
defaultValue={{l: area.l, u: area.u}}
<MeasurementUnitInput
label="Length"
defaultValue={0}
defaultUnit={units}
onValueSet={doOnLengthSet}
label={lengthLabel}
units={units}
/>
onUnitSet={doOnLengthUnitSet}
aria-label="length"
/>
<Text style={{fontSize: 30,}} > x </Text>
<MeasurementInput
defaultValue={{l: area.w, u: area.u}}
<MeasurementUnitInput
label="Width"
defaultValue={0}
defaultUnit={units}
onValueSet={doOnWidthSet}
label={widthLabel}
units={units}
/>
onUnitSet={doOnWidthUnitSet}
aria-label="width"
/>
</View>
)
}

View File

@ -1,17 +1,12 @@
import { area_t } from "@/lib/dimensions";
import { Product } from "@/lib/product";
import convert, { Area, Length } from "convert";
import dayjs, { Dayjs } from "dayjs";
import { StyleSheet, Text, View } from "react-native";
export type AreaRugTagProps = {
dimensions: area_t,
price_per_area: {
price: number,
per: {
n: number,
u: Area,
}
},
product: Product,
date?: Dayjs
currencySymbol?: string
};
@ -19,17 +14,17 @@ export type AreaRugTagProps = {
export const AreaRugTag = (props: AreaRugTagProps) => {
const date = props.date || dayjs();
const square = props.dimensions.l * props.dimensions.w;
const areaUnits = `square ${props.dimensions.u}`;
const square2 = convert(square, areaUnits as Area).to(props.price_per_area.per.u)
const price = (square2 / props.price_per_area.per.n) * props.price_per_area.price;
const areaUnits = `sq ${props.dimensions.u}`;
const square2 = convert(square, areaUnits as Area).to("sq " + props.product.dimensions.u as Area)
const price = (square2 / props.product.pricePerUnit) * props.product.pricePerUnit;
const sPrice = price.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
})
const currencySymbol = props.currencySymbol || "$";
return (
<View style={styles.component}>
<Text aria-label="area rug dimensions" style={styles.dimensions}>{props.dimensions.l} x {props.dimensions.w}</Text>
<View aria-label="area rug tag" style={styles.component}>
<Text aria-label="area rug dimensions" style={styles.dimensions}>{Math.round(props.dimensions.l)} x {Math.round(props.dimensions.w)}</Text>
<Text aria-label="area rug price" style={styles.price}>{currencySymbol} {sPrice}</Text>
<Text aria-label="area rug date" style={styles.date}>{date.format("YYYY/MM/DD")}</Text>
<Text aria-label="this week's color" style={styles.tagColor}>[Curent Tag Color]</Text>
@ -37,17 +32,22 @@ export const AreaRugTag = (props: AreaRugTagProps) => {
)
};
const BIG_FONT_SIZE = 30;
const styles = StyleSheet.create({
component: {
paddingVertical: 100,
flex: 1,
alignItems: "center",
},
dimensions: {
fontSize: BIG_FONT_SIZE,
},
price: {
fontSize: BIG_FONT_SIZE,
},
date: {
fontSize: BIG_FONT_SIZE,
},
tagColor: {
fontSize: BIG_FONT_SIZE,
},
})

View File

@ -0,0 +1,169 @@
import { useEffect, useState } from "react";
import { View, Text, StyleSheet, StatusBar, Dimensions, useWindowDimensions } from "react-native";
import { Product } from "@/lib/product";
import { selectProducts } from "@/features/product/productSlice";
import { area_t, diameterToLength, length_t } from "@/lib/dimensions";
import { useAppSelector } from "../app/store";
import { AreaRugTag } from "@/components/AreaRugTag";
import convert, { Length } from "convert";
import ProductList from "@/components/ProductList";
import { HelpfulMeasurementUnitInput } from "./HelpfulMeasurementInput";
import { ScrollView } from "react-native-gesture-handler";
import { SafeAreaView } from "react-native-safe-area-context";
const DEFAULT_DIAMETER_UNIT: Length = "in";
const DEFAULT_LENGTH_UNIT: Length = "ft";
const screenDimensions = Dimensions.get('screen');
const windowDimensions = Dimensions.get('window');
export const CarpetRollCalculator = () => {
const products = useAppSelector(selectProducts);
const [width, setWidth] = useState(0);
const [outerDiameter, setOuterDiameter] = useState<length_t>({
l: 0,
u: DEFAULT_DIAMETER_UNIT,
});
const [innerDiameter, setInnerDiameter] = useState<length_t>({
l: 0,
u: DEFAULT_DIAMETER_UNIT,
});
const [numRings, setNumRings] = useState(0);
const [rugDimensions, setRugDimensions] = useState<area_t>({
u: DEFAULT_LENGTH_UNIT,
w: 0,
l: 0,
});
const [selectedProduct, setSelectedProduct] = useState<Product | null>(null);
const [units, setUnits] = useState<Length>(DEFAULT_LENGTH_UNIT);
useEffect(() => {
// convert the "diameter" units to the length unit.
const outerD2Value = convert(outerDiameter.l, outerDiameter.u).to(units);
const innerD2Value = convert(innerDiameter.l, innerDiameter.u).to(units);
const innerD2 = {
l: innerD2Value,
u: units,
};
const outerD2 = {
l: outerD2Value,
u: units,
};
const l = diameterToLength(outerD2, innerD2, numRings).l;
const dimens = {
l,
w: width || selectedProduct?.dimensions.l || 0.0,
u: units || selectedProduct?.dimensions.u || "ft",
};
console.dir(dimens);
setRugDimensions(dimens);
}, [outerDiameter, innerDiameter, width, numRings, selectedProduct, units]);
return (
<SafeAreaView style={styles.container}>
<View style={styles.placeholder}>
{selectedProduct ? (
<AreaRugTag dimensions={rugDimensions} product={selectedProduct} />
) : (
<Text style={styles.placeholderText}>Please Select a Product</Text>
)}
</View>
<ScrollView style={styles.scrollView}>
<View>
<View style={styles.inputFieldWrapper}>
<HelpfulMeasurementUnitInput
label="Length"
svgUri="/assets/images/icons/carpet-roll-length-raw.svg"
onUnitSet={setUnits}
onValueSet={setWidth}
defaultValue={width}
defaultUnit={units}
unitChoices={["ft", "in"]}
/>
</View>
<View style={styles.inputFieldWrapper}>
<HelpfulMeasurementUnitInput
label="Inner diameter"
svgUri="/assets/images/icons/carpet-roll-length-inner-diameter-raw.svg"
onUnitSet={(u) => setInnerDiameter({ ...innerDiameter, u })}
defaultValue={innerDiameter.l}
defaultUnit={innerDiameter.u}
unitChoices={["ft", "in"]}
onValueSet={(l) => setInnerDiameter({ ...innerDiameter, l })}
/>
</View>
<View style={styles.inputFieldWrapper}>
<HelpfulMeasurementUnitInput
label="Outer diameter"
svgUri="/assets/images/icons/carpet-roll-length-outer-diameter-raw.svg"
onUnitSet={(u) => setOuterDiameter({ ...outerDiameter, u })}
defaultValue={innerDiameter.l}
defaultUnit={innerDiameter.u}
unitChoices={["ft", "in"]}
onValueSet={(l) => setOuterDiameter({ ...outerDiameter, l })}
/>
</View>
<View style={styles.inputFieldWrapper}>
<HelpfulMeasurementUnitInput
label="Number of rings"
svgUri="/assets/images/icons/carpet-roll-length-number-of-rings-raw.svg"
defaultValue={0}
onValueSet={setNumRings}
/>
</View>
</View>
<View>
<ProductList
onProductSelected={setSelectedProduct}
productType="area_rug"
/>
</View>
</ScrollView>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
paddingTop: StatusBar.currentHeight,
},
scrollView: {
marginHorizontal: 20,
height: windowDimensions.height - 50,
},
placeholder: {
alignContent: "center",
alignSelf: "center",
height: 300,
paddingTop: 40,
paddingBottom: 40,
fontSize: 30,
position: "static",
},
placeholderText: {
fontSize: 30,
paddingVertical: 70,
},
inputFieldWrapper: {
// padding: 10,
},
inputFields: {},
label: {
flex: 1,
flexDirection: "row",
},
numberInput: {
flexDirection: "row",
borderStyle: "solid",
borderColor: "black",
borderWidth: 1,
},
});
export default CarpetRollCalculator;

View File

@ -0,0 +1,33 @@
import { StyleSheet, Text, View } from "react-native";
import { MeasurementInputProps } from "./MeasurementInput";
import MeasurementUnitInput, {
MeasurementUnitInputProps,
} from "./MeasurementUnitInput";
import { SvgUri } from "react-native-svg";
import { Length } from "convert";
export type HelpfulMeasurementUnitInputParams = MeasurementUnitInputProps & {
svgUri: string;
label: string;
unitChoices?: Length[];
};
export function HelpfulMeasurementUnitInput(
props: HelpfulMeasurementUnitInputParams
) {
return (
<View>
<SvgUri uri={props.svgUri} width="100px" height="100px" />
<Text>{props.label}</Text>
<MeasurementUnitInput
defaultUnit={props.defaultUnit || "ft"}
defaultValue={props.defaultValue || 0.0}
onUnitSet={props.onUnitSet}
onValueSet={props.onValueSet}
unitChoices={props.unitChoices}
/>
</View>
);
}
const styles = StyleSheet.create({});

View File

@ -1,46 +1,24 @@
import { dimensions_t, length_t } from "@/lib/dimensions_t";
import { Length } from "convert";
import { useState } from "react";
import { StyleSheet, Text, TextInput, View } from "react-native";
import { StyleSheet, Text, View } from "react-native";
import { NumberInput, NumberInputProps } from "./NumberInput";
export type t_length_unit = "foot" | "inch"
export type MeasurementInputProps = {
onValueSet?: (d: dimensions_t) => any,
defaultValue: length_t;
label?: string,
export type MeasurementInputProps = NumberInputProps & {
units?: Length,
}
export function MeasurementInput({onValueSet, defaultValue, label, units}: MeasurementInputProps) {
const [mValue, setMValue] = useState(defaultValue)
const defValue = Number.isNaN(defaultValue.l) ? 0 : defaultValue.l
export function MeasurementInput({onValueSet, defaultValue: defaultValue, label, units}: MeasurementInputProps) {
units = units || "ft";
function doOnValueSet(value : string) {
setMValue(mValue);
const iVal = parseFloat(value) || parseInt(value);
onValueSet && onValueSet({
...defaultValue,
l: iVal,
})
}
const sDefValue = new String(defValue).valueOf()
return (
<View style={styles.inputWrapper}>
<TextInput
clearTextOnFocus={true}
defaultValue={sDefValue}
onChangeText={doOnValueSet}
inputMode='decimal'
style={styles.lengthInput}
aria-label={label || "Enter measurement"}
/>
<Text style={styles.unitHints}>{units}</Text>
<NumberInput
onValueSet={v => onValueSet && onValueSet(v)}
defaultValue={defaultValue}
label={label}
/>
</View>
)
}

View File

@ -0,0 +1,51 @@
import { dimensions_t, length_t } from "@/lib/dimensions";
import { Length } from "convert";
import { MeasurementInput, MeasurementInputProps } from "./MeasurementInput";
import UnitChooser, {
UnitChooserPropsBase,
} from "./UnitChooser";
import { StyleSheet, View } from "react-native";
export type MeasurementUnitInputProps = MeasurementInputProps &
UnitChooserPropsBase & {
defaultValue: number;
unitChoices?: Length[];
};
export default function MeasurementUnitInput({
onValueSet,
onUnitSet,
defaultValue,
unitChoices,
defaultUnit,
label,
units,
}: MeasurementUnitInputProps) {
return (
<View style={unitChoices ? styles.inputRow : styles.inputCol}>
<MeasurementInput
onValueSet={onValueSet}
defaultValue={defaultValue}
label={label}
units={units}
/>
{unitChoices && (
<UnitChooser
defaultUnit={defaultUnit}
choices={unitChoices}
onUnitSet={onUnitSet}
/>
)}
</View>
);
}
const styles = StyleSheet.create({
inputRow: {
flexDirection: "row",
},
inputCol: {
}
})

View File

@ -0,0 +1,54 @@
import { StyleSheet, TextInput } from "react-native";
export type NumberInputProps = {
defaultValue: number;
onValueSet: (value: number) => any;
label?: string;
};
export function NumberInput({
defaultValue,
onValueSet,
label,
}: NumberInputProps) {
const defValue = Number.isNaN(defaultValue) ? 0 : defaultValue;
function doOnValueSet(value: string) {
const iVal = parseFloat(value) || parseInt(value);
onValueSet && onValueSet(iVal);
}
const sDefValue = new String(defValue).valueOf();
return (
<TextInput
clearTextOnFocus={true}
defaultValue={sDefValue}
onChangeText={doOnValueSet}
inputMode="decimal"
style={styles.numberInput}
aria-label={label || "Enter measurement"}
/>
);
}
const styles = StyleSheet.create({
inputWrapper: {
alignItems: "flex-start",
flexDirection: "row",
verticalAlign: "middle",
},
unitHints: {
padding: 10,
fontSize: 20,
verticalAlign: "middle",
},
numberInput: {
borderWidth: 1,
borderRadius: 4,
borderColor: "grey",
padding: 4,
margin: 4,
fontSize: 25,
},
});

View File

@ -1,68 +1,87 @@
import { Product } from "@/lib/product";
import { product_type_t } from "@/lib/dimensions";
import { PRODUCT_TYPES, Product } from "@/lib/product";
import Ionicons from "@expo/vector-icons/Ionicons";
import React from "react";
import { useState } from "react";
import { StyleSheet, Text, TextInput, TouchableHighlight, View } from "react-native";
import { StyleSheet, TextInput, TouchableHighlight, View } from "react-native";
import SelectDropdown from "react-native-select-dropdown";
export type ProductAttributeChangeFunc = (key: string, newValue: string) => any;
export type ProductAttributeDeleteFunc = (key: string) => any;
export type ChangeAttributeFunction = (oldKey : string, newKey : string) => any;
export type ChangeAttributeFunction = (oldKey: string, newKey: string) => any;
export type ProductTypeChangeFunc = (
key: string,
newProductType: product_type_t
) => any;
export type ProductAttributeProps = {
attributeKey: string,
attributeValue: string,
onChangeAttributeKey?: ChangeAttributeFunction,
onChangeAttribute?: ProductAttributeChangeFunc,
onDelete?: ProductAttributeChangeFunc,
attributeKey: string;
attributeValue: string;
onProductTypeChange?: ProductTypeChangeFunc;
onChangeAttributeKey?: ChangeAttributeFunction;
onChangeAttribute?: ProductAttributeChangeFunc;
onDelete?: ProductAttributeChangeFunc;
};
export const ProductAttributeEditor = ({ attributeKey, attributeValue, onDelete, onChangeAttributeKey, onChangeAttribute }: ProductAttributeProps) => {
const select_product_type_choices = PRODUCT_TYPES.map((p) => [p, p]);
const doChangeKey = (e: any) => {
onChangeAttributeKey && onChangeAttributeKey(attributeKey, e);
}
export const ProductAttributeEditor = ({
attributeKey,
attributeValue,
onDelete,
onChangeAttributeKey,
onChangeAttribute,
}: ProductAttributeProps) => {
const doChangeKey = (e: any) => {
onChangeAttributeKey && onChangeAttributeKey(attributeKey, e);
};
const doChangeValue = (e: any) => {
onChangeAttribute && onChangeAttribute(attributeKey, e);
}
const doChangeValue = (e: any) => {
onChangeAttribute && onChangeAttribute(attributeKey, e);
};
return (
<View>
<View style={styles.productAttributeRow}>
<TextInput
defaultValue={attributeKey}
onChangeText={doChangeKey}
style={styles.value}
aria-label="Edit Key"
/>
<TextInput
defaultValue={attributeValue}
onChangeText={doChangeValue}
style={styles.value}
aria-label="Edit Value" />
<TouchableHighlight
onPress={() => onDelete && onDelete(attributeKey, attributeValue)}
aria-label="Delete Attribute"
style={{ backgroundColor: "darkred", borderRadius: 5, margin: 5, padding: 5, }}>
<Ionicons name="trash-bin-outline" size={30} color={"white"} />
</TouchableHighlight>
</View>
</View>
)
}
return (
<View>
<View style={styles.productAttributeRow}>
<TextInput
defaultValue={attributeKey}
onChangeText={doChangeKey}
style={styles.value}
aria-label="Edit Key"
/>
<TextInput
defaultValue={attributeValue}
onChangeText={doChangeValue}
style={styles.value}
aria-label="Edit Value"
/>
<TouchableHighlight
onPress={() => onDelete && onDelete(attributeKey, attributeValue)}
aria-label="Delete Attribute"
style={{
backgroundColor: "darkred",
borderRadius: 5,
margin: 5,
padding: 5,
}}
>
<Ionicons name="trash-bin-outline" size={30} color={"white"} />
</TouchableHighlight>
</View>
</View>
);
};
const styles = StyleSheet.create({
productAttributeRow: {
flexDirection: "row",
},
key: {
flex: 1,
},
value: {
flex: 1,
borderWidth: 1,
borderColor: "grey",
borderStyle: "solid",
padding: 10
}
});
productAttributeRow: {
flexDirection: "row",
},
key: {
flex: 1,
},
value: {
flex: 1,
borderWidth: 1,
borderColor: "grey",
borderStyle: "solid",
padding: 10,
},
});

View File

@ -1,207 +1,204 @@
import { Product } from '@/lib/product';
import { dimensions_t } from "@/lib/dimensions_t";
import { useState, useEffect } from 'react';
import { View, Text, StyleSheet } from 'react-native';
import { SafeAreaView } from 'react-native-safe-area-context';
import PriceDisplay from './Price';
import { AreaInput } from './AreaInput';
import { MeasurementInput } from './MeasurementInput';
import ProductList from './ProductList';
import UnitChooser from './UnitChooser';
import convert, { Length } from 'convert';
import PercentDamage from './PercentDamange';
import { Product, productPriceFor } from "@/lib/product";
import { dimensions_t } from "@/lib/dimensions";
import { useState, useEffect } from "react";
import { View, Text, StyleSheet } from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
import PriceDisplay from "./Price";
import { AreaInput } from "./AreaInput";
import ProductList from "./ProductList";
import convert, { Length } from "convert";
import PercentDamage from "./PercentDamange";
import MeasurementUnitInput from "./MeasurementUnitInput";
import UnitChooser from "./UnitChooser";
export default function ProductCalculatorSelector() {
const [activeProduct, setActiveProduct] = useState(null as Product | null);
const [price, setPrice] = useState(0);
const [measurement, setMeasurement] = useState({
l: 0,
w: 0,
u: "ft",
} as dimensions_t);
const [percentDamage, setPercentDamange] = useState(0.0);
const [activeProduct, setActiveProduct] = useState(null as Product | null);
const [price, setPrice] = useState(0);
const [measurement, setMeasurement] = useState({ l: 0, w: 0, u: "ft" } as dimensions_t);
const [percentDamage, setPercentDamange] = useState(0.0);
useEffect(
function () {
const iv = setInterval(function () {
if (!(activeProduct && measurement)) return;
setPrice(productPriceFor(activeProduct, measurement, percentDamage));
}, 50);
return function () {
clearInterval(iv);
};
},
[activeProduct, measurement, percentDamage]
);
useEffect(function () {
const iv = setInterval(function () {
if (!(activeProduct && measurement)) return;
setPrice(
activeProduct.priceFor(measurement, percentDamage)
function onMeasurementSet(dimensions: dimensions_t) {
setMeasurement(dimensions);
activeProduct &&
setPrice(productPriceFor(activeProduct, measurement, percentDamage));
}
function onLengthSet(l: number) {
setMeasurement({ ...measurement, l });
onMeasurementSet && onMeasurementSet({ ...measurement, l });
}
function onUnitChosen(unit: Length) {
setMeasurement({
...measurement,
u: unit,
});
}
function onSetPercentDamage(pct: number) {
setPercentDamange(pct);
}
function onProductSelected(product: Product) {
setActiveProduct(product);
setMeasurement({
l: convert(product.dimensions.l, product.dimensions.u).to(measurement.u),
u: measurement.u,
...("w" in measurement && "w" in product.dimensions
? {
w: convert(product.dimensions.w, product.dimensions.u).to(
measurement.u
),
u: measurement.u,
}
: {}),
});
}
return (
<SafeAreaView style={styles.wrapper}>
<PriceDisplay price={price} />
<View style={styles.inputAndUnitWrapper}>
<View style={styles.inputWrapper}>
{activeProduct ? (
"w" in activeProduct.dimensions ? (
<View style={{flex: 1, flexDirection: "row"}}>
<AreaInput
defaultValue={activeProduct.dimensions}
onMeasurementSet={onMeasurementSet}
widthLabel="enter width"
lengthLabel="enter length"
units={measurement.u}
/>
<UnitChooser
choices={["in", "ft"]}
onUnitSet={onUnitChosen}
defaultUnit={activeProduct.dimensions.u}
/>
</View>
) : (
<MeasurementUnitInput
defaultValue={activeProduct.dimensions.l}
onValueSet={onLengthSet}
onUnitSet={onUnitChosen}
defaultUnit={activeProduct.dimensions.u}
unitChoices={["ft", "in"]}
/>
)
}, 50);
return function () {
clearInterval(iv);
};
}, [activeProduct, measurement, percentDamage]);
function onMeasurementSet(dimensions: dimensions_t) {
setMeasurement(dimensions);
activeProduct && setPrice(
activeProduct.priceFor(measurement, percentDamage)
)
}
function onUnitChosen(unit: Length) {
setMeasurement({
...measurement,
u: unit,
});
}
function onSetPercentDamage(pct: number) {
setPercentDamange(pct);
}
function onProductSelected(product: Product) {
setActiveProduct(product);
setMeasurement(
{
l: convert(
product.dimensions.l,
product.dimensions.u,
).to(measurement.u),
u: measurement.u,
...(
("w" in measurement && "w" in product.dimensions) ? {
w: convert(
product.dimensions.w,
product.dimensions.u,
).to(measurement.u),
u: measurement.u,
} : {}
)
}
);
}
return (
<SafeAreaView style={styles.wrapper}>
<PriceDisplay price={price} />
<View style={styles.inputAndUnitWrapper}>
<View style={styles.inputWrapper}>
{
activeProduct ? (
"w" in activeProduct.dimensions ?
<AreaInput
defaultValue={activeProduct.dimensions}
onMeasurementSet={onMeasurementSet}
widthLabel='enter width'
lengthLabel='enter length'
units={measurement.u}
/>
:
<MeasurementInput
defaultValue={activeProduct.dimensions}
onValueSet={onMeasurementSet}
label="enter length"
units={measurement.u}
/>
) : (
<Text>Please select a product</Text>
)
}
{
activeProduct && <UnitChooser choices={["in", "ft"]} onChoicePressed={onUnitChosen} />
}
</View>
</View>
{activeProduct &&
(<View style={styles.damageWrapper}>
<PercentDamage
onSetPercentage={onSetPercentDamage}
/>
</View>)
}
<ProductList onProductSelected={onProductSelected} />
</SafeAreaView>
);
) : (
<Text>Please select a product</Text>
)}
</View>
</View>
{activeProduct && (
<View style={styles.damageWrapper}>
<PercentDamage onSetPercentage={onSetPercentDamage} />
</View>
)}
<ProductList onProductSelected={onProductSelected} productType="lumber" />
</SafeAreaView>
);
}
export const styles = StyleSheet.create({
wrapper: {
overflow: "scroll"
},
bigPriceWrapper: {
alignContent: "center",
},
bigPrice: {
alignSelf: "center",
fontSize: 40,
marginTop: 100,
marginBottom: 100,
},
inputWrapper: {
flexDirection: "row",
alignItems: "flex-start",
verticalAlign: "middle",
},
unitSelector: {
},
inputAndUnitWrapper: {
flexDirection: "row",
alignSelf: "center",
},
widthInput: {
width: 200,
borderWidth: 1,
borderRadius: 4,
borderColor: "grey",
padding: 4,
margin: 4,
fontSize: 30,
},
activeProduct: {
borderWidth: 2,
borderColor: "black",
borderStyle: "solid",
},
inactiveProduct: {
wrapper: {
overflow: "scroll",
},
bigPriceWrapper: {
alignContent: "center",
},
bigPrice: {
alignSelf: "center",
fontSize: 40,
marginTop: 100,
marginBottom: 100,
},
inputWrapper: {
flexDirection: "row",
alignItems: "flex-start",
verticalAlign: "middle",
},
unitSelector: {},
inputAndUnitWrapper: {
flexDirection: "row",
alignSelf: "center",
},
widthInput: {
width: 200,
borderWidth: 1,
borderRadius: 4,
borderColor: "grey",
padding: 4,
margin: 4,
fontSize: 30,
},
activeProduct: {
borderWidth: 2,
borderColor: "black",
borderStyle: "solid",
},
inactiveProduct: {},
titleContainer: {
flexDirection: "row",
gap: 8,
},
stepContainer: {
gap: 8,
marginBottom: 8,
},
reactLogo: {
height: 178,
width: 290,
bottom: 0,
left: 0,
},
productTileTouchable: {
margin: 10,
padding: 20,
backgroundColor: "grey",
},
},
titleContainer: {
flexDirection: 'row',
gap: 8,
},
stepContainer: {
gap: 8,
marginBottom: 8,
},
reactLogo: {
height: 178,
width: 290,
bottom: 0,
left: 0,
},
productTileTouchable: {
margin: 10,
padding: 20,
backgroundColor: "grey",
},
productTileTouchableActive: {
borderWidth: 2,
borderStyle: "solid",
borderColor: "black",
margin: 10,
padding: 20,
},
productTileTouchableActive: {
borderWidth: 2,
borderStyle: "solid",
borderColor: "black",
margin: 10,
padding: 20,
},
productTileText: {
textAlign: "center",
color: "white",
},
productTileText: {
textAlign: "center",
color: "white",
},
productTileTextActive: {
textAlign: "center",
color: "black",
},
productTileTextActive: {
textAlign: "center",
color: "black",
},
productTileCover: {
padding: 4,
},
damageWrapper: {
paddingVertical: 10,
paddingHorizontal: 10,
},
productTileCover: {
padding: 4,
},
damageWrapper: {
paddingVertical: 10,
paddingHorizontal: 10,
},
});

View File

@ -1,9 +1,9 @@
import { useAppDispatch, useAppSelector } from "@/app/store"
import { addAttribute, changeKey, deleteAttribute, deleteProduct, selectProductIds, selectProducts, updateAttribute, updateDimensions, updatePrice, updateProduct } from "@/features/product/productSlice"
import { Id, Product } from "@/lib/product";
import { dimensions_t } from "@/lib/dimensions_t";
import { FlatList, SafeAreaView, StyleSheet, Text } from "react-native";
import { ProductEditorItem } from "./ProductEditorItem";
import { dimensions_t } from "@/lib/dimensions";
export const ProductEditor = ({}) => {
const products = useAppSelector(selectProducts) as Product [];

View File

@ -1,231 +1,275 @@
import { Id, Product } from "@/lib/product"
import { dimensions_t } from "@/lib/dimensions_t";
import { useState } from "react"
import { Button, FlatList, StyleSheet, Text, TextInput, Touchable, TouchableHighlight, View } from "react-native"
import { Id, Product, product_type_t } from "@/lib/product";
import { useState } from "react";
import {
Button,
FlatList,
Pressable,
StyleSheet,
Text,
TextInput,
Touchable,
TouchableHighlight,
View,
} from "react-native";
import { ProductAttributeEditor } from "./ProductAttributeEditor";
import { Dropdown } from 'react-native-element-dropdown';
import { Dropdown } from "react-native-element-dropdown";
import { Ionicons } from "@expo/vector-icons";
import { Length } from "convert";
import { dimensions_t } from "@/lib/dimensions";
export type ProductAddedFunc = () => any;
export type ProductDeletedFunc = (product_id: Id) => any;
export type AttributeAddedFunc = (product_id: Id) => any;
export type AttributeKeyUpdatedFunc = (product_id: Id, oldKey: string, newKey: string) => any;
export type AttributeUpdatedFunc = (product_id: Id, attribute: string, value: string) => any;
export type AttributeKeyUpdatedFunc = (
product_id: Id,
oldKey: string,
newKey: string
) => any;
export type AttributeUpdatedFunc = (
product_id: Id,
attribute: string,
value: string
) => any;
export type AttributeDeletedFunc = (product_id: Id, attribute: string) => any;
export type PriceUpdatedFunc = (product_id: Id, price: number) => any;
export type DimensionUpdatedFunc = (product_id: Id, dimension: dimensions_t) => any;
export type DimensionUpdatedFunc = (
product_id: Id,
dimension: dimensions_t
) => any;
export type ProductTypeChangedFunc = (
product_id: Id,
product_type: product_type_t
) => any;
export type ProductEditorItemProps = {
product: Product,
onProductAdded?: ProductAddedFunc,
onProductDeleted?: ProductDeletedFunc,
onAttributeAdded?: AttributeAddedFunc,
onAttributeKeyChanged?: AttributeKeyUpdatedFunc,
onAttributeUpdated?: AttributeUpdatedFunc,
onAttributeDeleted?: AttributeDeletedFunc,
onPriceUpdated?: PriceUpdatedFunc,
onDimensionsUpdated?: DimensionUpdatedFunc,
}
product: Product;
onProductAdded?: ProductAddedFunc;
onProductDeleted?: ProductDeletedFunc;
onAttributeAdded?: AttributeAddedFunc;
onAttributeKeyChanged?: AttributeKeyUpdatedFunc;
onAttributeUpdated?: AttributeUpdatedFunc;
onAttributeDeleted?: AttributeDeletedFunc;
onPriceUpdated?: PriceUpdatedFunc;
onDimensionsUpdated?: DimensionUpdatedFunc;
onProductTypeChanged?: ProductTypeChangedFunc;
};
export const ProductEditorItem = (props: ProductEditorItemProps) => {
const [showAttributes, setShowAttributes] = useState(false);
const product = props.product;
const [showAttributes, setShowAttributes] = useState(false);
const product = props.product;
function onProductTypeChange(id: Id, newProductType: product_type_t) {
props.onProductTypeChanged &&
props.onProductTypeChanged(product.id as Id, newProductType);
}
function onAttributeChanged(key: string, newValue: string) {
props.onAttributeUpdated && props.onAttributeUpdated(product.id, key, newValue);
}
function onAttributeChanged(key: string, newValue: string) {
props.onAttributeUpdated &&
props.onAttributeUpdated(product.id as Id, key, newValue);
}
function onAttributeKeyChanged(oldKey: string, newKey: string) {
props.onAttributeKeyChanged && props.onAttributeKeyChanged(product.id, oldKey, newKey);
}
function onAttributeKeyChanged(oldKey: string, newKey: string) {
props.onAttributeKeyChanged &&
props.onAttributeKeyChanged(product.id as Id, oldKey, newKey);
}
function onAttributeDelete(key: string) {
props.onAttributeDeleted && props.onAttributeDeleted(product.id, key);
}
function onAttributeDelete(key: string) {
props.onAttributeDeleted && props.onAttributeDeleted(product.id as Id, key);
}
function onPricePerUnitChange(pricePerUnit: string) {
props.onPriceUpdated && props.onPriceUpdated(product.id, parseFloat(pricePerUnit) || parseInt(pricePerUnit));
}
function onPricePerUnitChange(pricePerUnit: string) {
props.onPriceUpdated &&
props.onPriceUpdated(
product.id as Id,
parseFloat(pricePerUnit) || parseInt(pricePerUnit)
);
}
function onUnitsChanged(newUnits: Length) {
props.onDimensionsUpdated && props.onDimensionsUpdated(product.id, {
...(product.dimensions as dimensions_t),
u: newUnits,
})
}
function onUnitsChanged(newUnits: Length) {
props.onDimensionsUpdated &&
props.onDimensionsUpdated(product.id as Id, {
...(product.dimensions as dimensions_t),
u: newUnits,
});
}
function onChangeLength(len: string) {
const l = parseFloat(len) || parseInt(len);
props.onDimensionsUpdated && props.onDimensionsUpdated(product.id, {
...(product.dimensions as dimensions_t),
l,
})
}
function onChangeLength(len: string) {
const l = parseFloat(len) || parseInt(len);
props.onDimensionsUpdated &&
props.onDimensionsUpdated(product.id as Id, {
...(product.dimensions as dimensions_t),
l,
});
}
function onChangeWidth(width: string) {
const w = width.length == 0 ? null : parseFloat(width) || parseInt(width);
props.onDimensionsUpdated && props.onDimensionsUpdated(product.id, {
...(product.dimensions as dimensions_t),
...(w ? {w} : {}),
})
}
function onChangeWidth(width: string) {
const w = width.length == 0 ? null : parseFloat(width) || parseInt(width);
props.onDimensionsUpdated &&
props.onDimensionsUpdated(product.id as Id, {
...(product.dimensions as dimensions_t),
...(w ? { w } : {}),
});
}
function onDeleteProduct() {
props.onProductDeleted && props.onProductDeleted(product.id);
}
function onDeleteProduct() {
props.onProductDeleted && props.onProductDeleted(product.id as Id);
}
const length = new String(product.dimensions.l || product.dimensions.l || "0") as string;
const width = new String(product.dimensions.w || "") as string;
const dimension = product.dimensions.u || product.dimensions.u || "foot";
const length = new String(
product.dimensions.l || product.dimensions.l || "0"
) as string;
const width = new String(product.dimensions.w || "") as string;
const dimension = product.dimensions.u || product.dimensions.u || "foot";
return (
<View>
<View style={styles.productListHeader}>
<TouchableHighlight
onPress={() => setShowAttributes(!showAttributes)}
aria-label="Product Item"
style={styles.productItemName}
>
<Text style={styles.productNameText}>{product.attributes.name || `Product ${product.id}`}</Text>
</TouchableHighlight>
<TouchableHighlight
onPress={() => onDeleteProduct()}
aria-label="delete product"
style={styles.deleteProductHighlight}
>
<Ionicons
style={styles.deleteProductButton}
name="trash-outline"
/>
</TouchableHighlight>
</View>
{showAttributes &&
(
<View style={styles.detailsWrapper}>
<View style={styles.priceSpecWrapper}>
<Text style={styles.priceLabel}>$</Text>
<TextInput inputMode="decimal"
defaultValue={new String(product.pricePerUnit) as string}
aria-label="price per unit"
onChangeText={onPricePerUnitChange}
style={styles.priceInput}
/>
<Text style={styles.per}>per</Text>
<Dropdown
data={[
{label: "feet", value: "ft"},
{label: "inches", value: "in"},
]}
style={styles.unitsSelect}
mode="modal"
labelField="label"
valueField="value"
value={product.dimensions.u || "ft"}
onChange={(item) => onUnitsChanged(item.value as Length)}
/>
<TextInput
inputMode="decimal"
defaultValue={length}
onChangeText={onChangeLength}
style={styles.lengthInput}
aria-label="length"
/>
<Text style={{flex: 1,}}>x</Text>
<TextInput
inputMode="decimal"
defaultValue={width}
onChangeText={onChangeWidth}
style={styles.widthInput}
aria-label="width"
/>
</View>
<Button title="+ Add Attribute" onPress={() => props.onAttributeAdded && props.onAttributeAdded(product.id)} />
<FlatList
style={styles.productAttributesList}
data={Object.entries(product.attributes)}
renderItem={({ item }) => (
<ProductAttributeEditor
attributeKey={item[0] || "some key"}
attributeValue={item[1]}
onChangeAttributeKey={onAttributeKeyChanged}
onChangeAttribute={onAttributeChanged}
onDelete={onAttributeDelete}
/>
)}
keyExtractor={(item, i) => `${product.id}-${i}`}
/>
</View>
)
return (
<View>
<View style={styles.productListHeader}>
<TouchableHighlight
onPress={() => setShowAttributes(!showAttributes)}
aria-label="Product Item"
style={styles.productItemName}
>
{product.attributes && (
<Text style={styles.productNameText}>
{product.attributes.name || `Product ${product.id}`}
</Text>
)}
</TouchableHighlight>
<Pressable
onPress={() => onDeleteProduct()}
aria-label="delete product"
style={styles.deleteProductHighlight}
>
<Ionicons style={styles.deleteProductButton} name="trash-outline" />
</Pressable>
</View>
{showAttributes && (
<View style={styles.detailsWrapper}>
<View style={styles.priceSpecWrapper}>
<Text style={styles.priceLabel}>$</Text>
<TextInput
inputMode="decimal"
defaultValue={new String(product.pricePerUnit).valueOf()}
aria-label="price per unit"
onChangeText={onPricePerUnitChange}
style={styles.priceInput}
/>
<Text style={styles.per}>per</Text>
<Dropdown
data={[
{ label: "feet", value: "ft" },
{ label: "inches", value: "in" },
]}
style={styles.unitsSelect}
mode="modal"
labelField="label"
valueField="value"
value={product.dimensions.u || "ft"}
onChange={(item) => onUnitsChanged(item.value as Length)}
/>
<TextInput
inputMode="decimal"
defaultValue={length}
onChangeText={onChangeLength}
style={styles.lengthInput}
aria-label="length"
/>
<Text style={{ flex: 1 }}>x</Text>
<TextInput
inputMode="decimal"
defaultValue={width}
onChangeText={onChangeWidth}
style={styles.widthInput}
aria-label="width"
/>
</View>
<Button
title="+ Add Attribute"
onPress={() =>
props.onAttributeAdded && props.onAttributeAdded(product.id as Id)
}
/>
{product.attributes && (
<FlatList
style={styles.productAttributesList}
data={Object.entries(product.attributes)}
renderItem={({ item }) => (
<ProductAttributeEditor
onProductTypeChange={onProductTypeChange}
attributeKey={item[0] || "some key"}
attributeValue={item[1]}
onChangeAttributeKey={onAttributeKeyChanged}
onChangeAttribute={onAttributeChanged}
onDelete={onAttributeDelete}
/>
)}
keyExtractor={(item, i) => `${product.id}-${i}`}
/>
)}
</View>
)
}
)}
</View>
);
};
const styles = StyleSheet.create({
deleteProductHighlight: {
padding: 5,
borderWidth: 1,
},
deleteProductButton: {
fontSize: 20,
},
detailsWrapper: {
},
priceSpecWrapper: {
flexDirection: "row",
},
priceLabel: {
},
priceInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
per: {
padding: 5,
},
unitsLabel: {
},
unitsSelect: {
flex: 1,
padding: 5,
},
lengthInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
widthInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
productListHeader: {
flexDirection: "row",
padding: 5,
},
productNameText: {
paddingLeft: 10,
paddingRight: 10,
},
productItemName: {
flex: 1,
backgroundColor: "lightgrey",
padding: 4,
margin: 4,
},
productAttributesList: {
margin: 10,
padding: 10,
borderWidth: 1,
borderStyle: "solid",
borderColor: "black",
},
})
deleteProductHighlight: {
padding: 5,
borderWidth: 1,
},
deleteProductButton: {
fontSize: 20,
},
detailsWrapper: {},
priceSpecWrapper: {
flexDirection: "row",
},
priceLabel: {},
priceInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
per: {
padding: 5,
},
unitsLabel: {},
unitsSelect: {
flex: 1,
padding: 5,
},
lengthInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
widthInput: {
flex: 1,
borderWidth: 2,
borderColor: "lightgrey",
borderStyle: "solid",
},
productListHeader: {
flexDirection: "row",
padding: 5,
},
productNameText: {
paddingLeft: 10,
paddingRight: 10,
},
productItemName: {
flex: 1,
backgroundColor: "lightgrey",
padding: 4,
margin: 4,
},
productAttributesList: {
margin: 10,
padding: 10,
borderWidth: 1,
borderStyle: "solid",
borderColor: "black",
},
});

View File

@ -1,19 +1,28 @@
import { FlatList, ScrollView, StyleSheet, Text, TouchableHighlight } from "react-native";
import { Dimensions, ScrollView, StyleSheet } from "react-native";
import { ProductTile } from "./ProductTile";
import { Id, Product } from "@/lib/product";
import { Key, useEffect, useState } from "react";
import { useSelector } from "react-redux";
import { Product, product_type_t } from "@/lib/product";
import { useState } from "react";
import { selectProducts } from "@/features/product/productSlice";
import { useAppSelector } from "@/app/store";
const windowDimensions = Dimensions.get('window');
export type ProductSelectionProps = {
onProductSelected?: (product: Product) => any;
}
export default function ProductList({ onProductSelected }: ProductSelectionProps) {
productType?: product_type_t;
};
export default function ProductList({
productType,
onProductSelected,
}: ProductSelectionProps) {
const [activeProduct, setActiveProduct] = useState(null as null | Product);
const products = useAppSelector(selectProducts).filter(p => (!!p.dimensions));
const products = useAppSelector(selectProducts)
.filter((p) => !!p)
.filter((p: Product) => (!productType) || p.type === productType)
.filter((p) => {
return !!p.dimensions;
});
function doOnProductSelected(product: Product) {
setActiveProduct(product);
@ -21,8 +30,8 @@ export default function ProductList({ onProductSelected }: ProductSelectionProps
}
return (
<ScrollView scrollToOverflowEnabled={true}>
{products.map(product => {
<ScrollView style={styles.productSelectorFlatList} contentContainerStyle={styles.content} aria-label="product list">
{products.map((product) => {
return (
<ProductTile
product={product}
@ -33,14 +42,19 @@ export default function ProductList({ onProductSelected }: ProductSelectionProps
);
})}
</ScrollView>
)
);
}
const styles = StyleSheet.create({
productSelectorFlatList: {
padding: 10,
margin: 10,
height: windowDimensions.height - 200,
width: windowDimensions.width,
},
})
content: {
alignItems: "flex-start",
flexWrap: "wrap",
flexDirection: "row",
}
});

View File

@ -1,55 +1,84 @@
import { Product } from "@/lib/product"
import { ImageBackground, StyleProp, StyleSheet, Text, TouchableHighlight, View, ViewStyle } from "react-native";
import { Product, priceDisplay, pricePerUnitDisplay } from "@/lib/product";
import { LinearGradient } from "expo-linear-gradient";
import {
ImageBackground,
Pressable,
StyleProp,
StyleSheet,
Text,
TouchableHighlight,
View,
ViewStyle,
} from "react-native";
import { AnimatedStyle } from "react-native-reanimated";
export type OnProductSelectedFunc = (product : Product) => any;
export type OnProductSelectedFunc = (product: Product) => any;
type MyStyle = StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
type StyleSpec = {
highlight?: MyStyle,
text?: MyStyle,
image?: MyStyle,
}
highlight?: MyStyle;
text?: MyStyle;
image?: MyStyle;
};
export type ProductTileProps = {
product: (Product),
onProductSelected?: OnProductSelectedFunc,
isActive: boolean,
}
product: Product;
onProductSelected?: OnProductSelectedFunc;
isActive: boolean;
};
const FALLBACK_IMAGE = "";
export function ProductTile ({product, onProductSelected, isActive} : ProductTileProps) {
const k = isActive ? "active" : "default";
return (
export function ProductTile({
product,
onProductSelected,
isActive,
}: ProductTileProps) {
const k = isActive ? "active" : "default";
<TouchableHighlight
style={styles[k].highlight}
onPress={() => onProductSelected && onProductSelected(product)}>
<Text style={styles[k].text}>{product.attributes.name || `Product ${product.id}`} ({product.pricePerUnitDisplay})</Text>
</TouchableHighlight>
);
const BLUE_HILIGHT = "#caceff";
const BLUE = "#8b9cff";
const GRAY_HILIGHT = "#ffffff";
const GRAY = "#b1b1b1";
const activeColors = [BLUE_HILIGHT, BLUE, BLUE, BLUE];
const inactiveColors = [GRAY_HILIGHT, GRAY, GRAY, GRAY];
const priceDisplay = pricePerUnitDisplay(product);
return (
<LinearGradient
colors={isActive ? activeColors : inactiveColors}
style={styles.gradientButton}
>
<Pressable
style={styles.button}
aria-label={`product ${product.id}`}
onPress={() => onProductSelected && onProductSelected(product)}
>
<Text style={styles.text}>
{product.attributes?.name || `Product ${product.id}`} ({priceDisplay})
</Text>
</Pressable>
</LinearGradient>
);
}
const styles = {
active: StyleSheet.create({
highlight: {
padding: 10,
margin: 2,
color: "lightblue",
},
text: {
}
}),
default: StyleSheet.create({
highlight: {
padding: 10,
margin: 2,
backgroundColor: "lightgrey",
},
text: {
}
}),
}
const styles = StyleSheet.create({
gradientButton: {
borderRadius: 10,
borderWidth: 1,
borderColor: "gray",
borderStyle: "solid",
margin: 1,
width: 300,
marginVertical: 10,
marginHorizontal: 10,
},
button: {
},
text: {
paddingVertical: 30,
paddingHorizontal: 40,
}
});

View File

@ -1,74 +1,95 @@
import { Length } from "convert";
import { useState } from "react";
import { Button, StyleSheet, Text, TouchableHighlight, View } from "react-native";
import {
Button,
Pressable,
StyleSheet,
Text,
TouchableHighlight,
View,
} from "react-native";
import { LinearGradient } from "expo-linear-gradient";
export type UnitChooserProps = {
choices: Length[],
onChoicePressed: (l: Length) => any,
activeColor?: string,
defaultColor?: string,
defaultValue? : Length,
}
export type UnitChooserPropsBase = {
onUnitSet?: (l: Length) => any;
activeColor?: string;
defaultColor?: string;
defaultUnit?: Length;
};
export default function UnitChooser({ choices, onChoicePressed, activeColor, defaultColor, defaultValue }: UnitChooserProps) {
const [value, setValue] = useState(defaultValue || choices[0] as Length);
export type UnitChooserProps = UnitChooserPropsBase & {
choices: Length[];
};
activeColor = activeColor || "lightblue";
defaultColor = defaultColor || "lightgrey";
export default function UnitChooser({
choices,
onUnitSet,
activeColor,
defaultColor,
defaultUnit,
}: UnitChooserProps) {
const [value, setValue] = useState(defaultUnit || (choices[0] as Length));
function doChoiceClicked(choice: Length) {
setValue(choice);
onChoicePressed(choice);
}
activeColor = activeColor || "lightblue";
defaultColor = defaultColor || "lightgrey";
return (
<View style={styles.unitChooser}>
{choices.map((ci) => {
return (
<TouchableHighlight
onPress={() => doChoiceClicked(ci)}
style={value === ci ? styles.active : styles.default }
key={ci}
>
<Text style={value === ci ? styles.textActive : styles.textDefault}>{ci}</Text>
</TouchableHighlight>
)
})
}
</View>
)
function doChoiceClicked(choice: Length) {
setValue(choice);
onUnitSet && onUnitSet(choice);
}
const BLUE_HILIGHT = "#caceff";
const BLUE = "#8b9cff";
const GRAY_HILIGHT = "#ffffff";
const GRAY = "#b1b1b1";
const activeColors = [BLUE_HILIGHT, BLUE, BLUE, BLUE];
const inactiveColors = [GRAY_HILIGHT, GRAY, GRAY, GRAY];
return (
<View style={styles.unitChooser}>
{choices.map((ci) => {
return (
<LinearGradient
colors={ci === value ? activeColors : inactiveColors}
style={styles.gradientButton}
>
<TouchableHighlight style={{padding: 5, }} onPress={() => doChoiceClicked(ci)} key={ci}>
<Text style={{padding: 5, fontSize: 16}}>{ci}</Text>
</TouchableHighlight>
</LinearGradient>
);
})}
</View>
);
}
const styles = StyleSheet.create({
unitChooser: {
flexDirection: "row",
verticalAlign: "middle",
},
active: {
backgroundColor: "skyblue",
padding: 5,
borderRadius: 5,
},
default: {
backgroundColor: "lightgray",
padding: 5,
borderRadius: 5,
verticalAlign: "middle",
},
textActive: {
marginTop: 2,
marginBottom: 2,
marginLeft: 10,
marginRight: 10,
fontSize: 25,
},
textDefault: {
marginTop: 2,
marginBottom: 2,
marginLeft: 10,
marginRight: 10,
fontSize: 25,
},
unitButton: {
},
})
gradientButton: {
borderRadius: 10,
borderWidth: 1,
borderColor: "gray",
borderStyle: "solid",
margin: 1,
},
unitChooser: {
flexDirection: "row",
verticalAlign: "middle",
padding: 4,
},
textActive: {
marginTop: 2,
marginBottom: 2,
marginLeft: 10,
marginRight: 10,
fontSize: 25,
},
textDefault: {
marginTop: 2,
marginBottom: 2,
marginLeft: 10,
marginRight: 10,
fontSize: 25,
},
unitButton: {},
});

View File

@ -0,0 +1,31 @@
import { render, screen } from '@testing-library/react-native';
import { AreaRugTag } from '@/components/AreaRugTag';
import { area_t } from '@/lib/dimensions';
import dayjs from 'dayjs';
import initialProducts from '@/__fixtures__/initialProducts';
import { Product } from '@/lib/product';
describe('AreaRugTag', () => {
it('renders correctly with dimensions, price per area, date and currency symbol', () => {
const dimensions: area_t = { l: 10, w: 20, u: 'ft' };
const date = dayjs();
const currencySymbol = '$';
const product = initialProducts.find(p => "area_rug" === p.type) as Product;
render(
<AreaRugTag
dimensions={dimensions}
product={product}
date={date}
currencySymbol={currencySymbol}
/>
);
expect(screen.getByText(`${dimensions.l} x ${dimensions.w}`)).toBeTruthy();
// expect(screen.getByLabelText('area rug price')).toContain(currencySymbol);
expect(screen.getByText(date.format('YYYY/MM/DD'))).toBeTruthy();
expect(screen.getByLabelText('this week\'s color')).toBeTruthy();
});
});

View File

@ -0,0 +1,64 @@
import React from "react";
import {
render,
fireEvent,
screen,
within,
act,
} from "@testing-library/react-native";
import CarpetRollCalculator from "@/components/CarpetRollCalculator";
import { renderWithProviders } from "@/lib/rendering";
import allProducts from "@/__fixtures__/initialProducts";
import { Product, pricePerUnitDisplay } from "@/lib/product";
import initialProducts from "@/__fixtures__/initialProducts";
jest.useFakeTimers();
const areaRugProducts = allProducts.filter((p) => "area_rug" === p.type);
describe("CarpetRollCalculator", () => {
it("should render correctly", () => {
renderWithProviders(<CarpetRollCalculator />, {
products: initialProducts,
});
const areaRug = initialProducts.find(
(p) => p.type === "area_rug"
) as Product;
const areaRugLabel = `product ${areaRug.id}`;
act(() => {
fireEvent.press(screen.getByLabelText(areaRugLabel));
});
// Test the interaction with the width input
const widthInput = screen.getByLabelText("width");
act(() => {
fireEvent.changeText(widthInput, "10");
});
// Test the interaction with the outer diameter input
const outerDiameterInput = screen.getByLabelText("outer diameter");
act(() => {
fireEvent.changeText(outerDiameterInput, "3");
});
// Test the interaction with the inner diameter input
const innerDiameterInput = screen.getByLabelText("inner diameter");
act(() => {
fireEvent.changeText(innerDiameterInput, "1");
});
// Test the interaction with the number of rings input
const numRingsInput = screen.getByLabelText("number of rings");
act(() => {
fireEvent.changeText(numRingsInput, "5");
});
jest.advanceTimersByTime(3000);
// Test the interaction with the price display
const { getByText } = within(screen.getByLabelText("area rug price"));
expect(getByText(/\$.*58.*\..*19.*/)).toBeTruthy();
});
});

View File

@ -1,55 +1,51 @@
import { Product } from "@/lib/product"
import {ProductAttributeEditor} from "../ProductAttributeEditor"
import { area } from "enheter"
import { fireEvent, render, screen } from '@testing-library/react-native';
import React from "react";
import { emitTypingEvents } from "@testing-library/react-native/build/user-event/type/type";
import { LumberProduct, Product } from "@/lib/product";
import { ProductAttributeEditor } from "../ProductAttributeEditor";
import { fireEvent, render, screen } from "@testing-library/react-native";
import { renderWithProviders } from "@/lib/rendering";
describe("Product editor tests", () => {
const productName = "Fun Product";
it("Product attributes can be deleted", async () => {
const product = new Product(
100,
{l: 100, u: "foot"},
{"name" : productName}
);
const onChange = jest.fn();
const onDelete = jest.fn();
render(
<ProductAttributeEditor
attributeKey="name"
attributeValue="product"
product={product}
onChangeAttribute={onChange}
onDelete={onDelete}
/>);
expect(screen.getByLabelText("Delete Attribute")).not.toBeNull();
fireEvent.press(await screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
});
it("Product attributes can be modified", async () => {
const product = new Product(
100,
{l: 100, u: "foot"},
{"name" : productName}
);
const onChange = jest.fn();
const onDelete = jest.fn();
const onKeyChange = jest.fn();
render(
<ProductAttributeEditor
attributeKey="old test key"
attributeValue="old test value"
onChangeAttribute={onChange}
onDelete={onDelete}
onChangeAttributeKey={onKeyChange}
/>);
fireEvent.changeText(screen.getByLabelText("Edit Key"), "new test key");
expect(onKeyChange).toHaveBeenCalled();
fireEvent.changeText(screen.getByLabelText("Edit Value"), "new name");
expect(onChange).toHaveBeenCalled();
fireEvent.press(screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
})
})
const productName = "Fun Product";
it("Product attributes can be deleted", async () => {
const onChange = jest.fn();
const onDelete = jest.fn();
renderWithProviders(
<ProductAttributeEditor
attributeKey="name"
attributeValue="product"
onChangeAttribute={onChange}
onDelete={onDelete}
/>
);
expect(screen.getByLabelText("Delete Attribute")).not.toBeNull();
fireEvent.press(await screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
});
it("Product attributes can be modified", async () => {
const product: Product = {
pricePerUnit: 10,
dimensions: {
l: 40,
u: "ft",
},
type: "lumber",
};
const onChange = jest.fn();
const onDelete = jest.fn();
const onKeyChange = jest.fn();
render(
<ProductAttributeEditor
attributeKey="old test key"
attributeValue="old test value"
onChangeAttribute={onChange}
onDelete={onDelete}
onChangeAttributeKey={onKeyChange}
/>
);
fireEvent.changeText(screen.getByLabelText("Edit Key"), "new test key");
expect(onKeyChange).toHaveBeenCalled();
fireEvent.changeText(screen.getByLabelText("Edit Value"), "new name");
expect(onChange).toHaveBeenCalled();
fireEvent.press(screen.getByLabelText("Delete Attribute"));
expect(onDelete).toHaveBeenCalled();
});
});

View File

@ -2,34 +2,28 @@ import { render, fireEvent, screen, act, within } from '@testing-library/react-n
import { Provider } from 'react-redux';
import ProductCalculatorSelector from '@/components/ProductCalculatorSelector';
import { renderWithProviders } from '@/lib/rendering';
import { Product } from '@/lib/product';
import { Product, pricePerUnitDisplay, productPriceFor } from '@/lib/product';
import initialProducts from '@/__fixtures__/initialProducts';
jest.useFakeTimers();
const mockAreaProduct = initialProducts.find(p => 'w' in p.dimensions ) as Product
const mockLengthProduct = initialProducts.find(p => (!('w' in p.dimensions)) ) as Product
describe('ProductCalculatorSelector', () => {
const mockAreaProduct = new Product(
100,
{ l: 4, w: 8, u: "ft" },
{"name": "area product"},
);
const mockLengthProduct = new Product(
100,
{ l: 4, u: "ft" },
{"name": "length product"},
);
it('renders correctly', () => {
renderWithProviders(
(<ProductCalculatorSelector />),
{
products: [
mockAreaProduct.asObject,
mockLengthProduct.asObject,
mockAreaProduct,
mockLengthProduct,
],
}
)
expect(screen.getByText('Please select a product')).toBeTruthy();
const label = `${mockAreaProduct.attributes.name} (${mockAreaProduct.pricePerUnitDisplay})`;
const label = `${mockAreaProduct.attributes?.name} (${pricePerUnitDisplay(mockAreaProduct)})`;
expect(screen.getByText(label)).toBeTruthy();
});
@ -38,23 +32,26 @@ describe('ProductCalculatorSelector', () => {
(<ProductCalculatorSelector />),
{
products: [
mockLengthProduct.asObject,
mockAreaProduct.asObject,
mockLengthProduct,
mockAreaProduct,
]
}
);
expect(screen.getByText('Please select a product')).toBeTruthy();
const areaLabel = `${mockAreaProduct.attributes.name} (${mockAreaProduct.pricePerUnitDisplay})`;
const lengthLabel = `${mockLengthProduct.attributes.name} (${mockLengthProduct.pricePerUnitDisplay})`;
const areaLabel = `${mockAreaProduct.attributes?.name} (${pricePerUnitDisplay(mockAreaProduct)})`;
fireEvent.press(screen.getByText(areaLabel));
act(()=>{
fireEvent.press(screen.getByText(areaLabel));
})
const lengthInput = screen.getByLabelText("enter length");
const widthInput = screen.getByLabelText("enter length");
expect(lengthInput).toBeTruthy();
expect(widthInput).toBeTruthy();
fireEvent.press(screen.getByText("in"));
act(() => {
fireEvent.press(screen.getByText("in"));
})
act(() => {
fireEvent.changeText(lengthInput, "2");
@ -63,10 +60,10 @@ describe('ProductCalculatorSelector', () => {
jest.advanceTimersByTime(3000);
const price = mockAreaProduct.priceFor({l: 2, w: 4, u: "ft"});
const price = productPriceFor(mockAreaProduct, {l: 2, w: 4, u: "ft"})
const sPrice = price.toLocaleString(undefined, {maximumFractionDigits: 2, minimumFractionDigits: 2,});
const element = screen.getByLabelText("calculated price");
const {getByText} = within(element);
expect(getByText(sPrice)).toBeTruthy();
expect(getByText(/\$.*15.*\.00/)).toBeTruthy();
});
});

View File

@ -2,50 +2,54 @@ import { renderWithProviders } from "@/lib/rendering";
import { ProductEditor } from "@/components/ProductEditor";
import { act, fireEvent, screen } from "@testing-library/react-native";
import { selectProducts } from "@/features/product/productSlice";
import { Product } from "@/lib/product";
import { LumberProduct, Product, productLabel } from "@/lib/product";
import initialProducts from "@/__fixtures__/initialProducts";
describe("ProductEditor", () => {
const productName = "Flooring"
const mockProduct = new Product(
25,
{ l: 4, w: 8, u: "foot" },
{ name: productName },
)
it("renders correctly", async () => {
const { store } = renderWithProviders(<ProductEditor />, {
products: [
mockProduct.asObject,
],
});
const state1 = store.getState();
let products = selectProducts(state1);
expect(products).toHaveLength(1);
// Check if the product names are rendered
expect(screen.getByText(products[0].attributes.name as string)).toBeTruthy();
// Start to edit a product
fireEvent.press(screen.getByText(productName));
// Change properties of the product to make sure it's updated in the store
act(() => {
fireEvent.changeText(screen.getByLabelText("length"), "16");
})
products = selectProducts(store.getState());
expect(products[0].dimensions.l).toBe(16);
act(() => {
fireEvent.changeText(screen.getByLabelText("width"), "32");
})
products = selectProducts(store.getState());
expect(products[0].dimensions.w).toBe(32);
fireEvent.press(screen.getByLabelText("delete product"));
products = selectProducts(store.getState());
expect(products.length).toBe(0);
const productName = "Flooring";
const mockProduct = initialProducts[0];
it("renders correctly", async () => {
const { store } = renderWithProviders(<ProductEditor />, {
products: [mockProduct],
});
const state1 = store.getState();
let products = selectProducts(state1);
expect(products).toHaveLength(1);
// Check if the product names are rendered
expect(
screen.getByText(mockProduct.attributes?.name as string)
).toBeTruthy();
const label = productLabel(mockProduct);
// Start to edit a product
act(() => {
fireEvent.press(screen.getByText(label));
})
// Change properties of the product to make sure it's updated in the store
act(() => {
fireEvent.changeText(screen.getByLabelText("length"), "16");
});
products = selectProducts(store.getState());
expect(products[0].dimensions.l).toBe(16);
act(() => {
fireEvent.changeText(screen.getByLabelText("width"), "32");
});
products = selectProducts(store.getState());
expect(products[0].dimensions.w).toBe(32);
act(() => {
fireEvent.press(screen.getByLabelText("delete product"));
})
products = selectProducts(store.getState());
expect(products.length).toBe(0);
});
});

View File

@ -4,14 +4,22 @@ import { ProductEditorItem } from '../ProductEditorItem';
import { Product } from '@/lib/product';
import { area } from 'enheter';
import { renderWithProviders } from '@/lib/rendering';
import { area_t } from '@/lib/dimensions';
describe('ProductEditorItem', () => {
const productName = "Product 1";
const mockProduct = new Product(
25,
{l: 4, u: 'feet'},
{"name": productName},
)
const mockProduct : Product = {
type: "area_rug",
dimensions: {
l: 1,
w: 1,
u: "feet",
},
pricePerUnit: 0.75,
attributes: {
name: productName,
}
}
const onAttributeAdded = jest.fn();
const mockOnProductDeleted = jest.fn();
@ -56,7 +64,7 @@ describe('ProductEditorItem', () => {
}
);
fireEvent.press(screen.getByText("Product 1"));
expect(screen.getByLabelText("units")).toBeTruthy();
// expect(screen.getByLabelText("Units")).toBeTruthy();
expect(screen.getByLabelText("Edit Key")).toBeTruthy();
expect(screen.getAllByLabelText("Edit Value").length).toEqual(1);

View File

@ -0,0 +1,38 @@
import React from 'react';
import { renderWithProviders } from '@/lib/rendering';
import { Product, pricePerUnitDisplay } from '@/lib/product';
import ProductList from '@/components/ProductList';
import initialProducts from '@/__fixtures__/initialProducts';
import { screen } from '@testing-library/react-native';
describe('ProductList', () => {
it('renders without crashing', () => {
const { getByTestId } = renderWithProviders(<ProductList />, {
products: initialProducts,
});
expect(screen.getByLabelText('product list')).toBeTruthy();
});
it('renders products correctly', () => {
const mockProduct = initialProducts[0] as Product;
const label = `${mockProduct.attributes?.name} (${pricePerUnitDisplay(mockProduct)})`;
const { getByText } = renderWithProviders(<ProductList />, {
products: [mockProduct],
});
expect(getByText(label)).toBeTruthy();
});
it('renders only area_rug products', () => {
const areaRug = initialProducts.find(p => p.type == "area_rug") as Product;
const label = `${areaRug?.attributes?.name} (${pricePerUnitDisplay(areaRug)})`;
renderWithProviders(<ProductList productType='area_rug' />, {
products: initialProducts,
});
expect(screen.getByText(label)).toBeTruthy();
});
});

View File

@ -1,7 +1,7 @@
import React from 'react';
import { render, fireEvent } from '@testing-library/react-native';
import UnitChooser from "../UnitChooser";
import { Length } from 'safe-units';
import { Length } from 'convert';
describe('UnitChooser', () => {
const mockOnChoicePressed = jest.fn();
@ -9,7 +9,7 @@ describe('UnitChooser', () => {
it('renders correctly', () => {
const { getByText } = render(
<UnitChooser choices={choices} onChoicePressed={mockOnChoicePressed} />
<UnitChooser choices={choices} onUnitSet={mockOnChoicePressed} />
);
choices.forEach(choice => {
@ -19,7 +19,7 @@ describe('UnitChooser', () => {
it('calls onChoicePressed when a button is pressed', () => {
const { getByText } = render(
<UnitChooser choices={choices} onChoicePressed={mockOnChoicePressed} />
<UnitChooser choices={choices} onUnitSet={mockOnChoicePressed} />
);
fireEvent.press(getByText(choices[0]));

View File

@ -1,195 +1,274 @@
import { createSelector, createSlice, PayloadAction } from '@reduxjs/toolkit';
import { Id, Product } from '@/lib/product';
import { dimensions_t, ProductData } from "@/lib/dimensions_t";
import { createSelector, createSlice, PayloadAction } from "@reduxjs/toolkit";
import { attributesAsList, Id, Product } from "@/lib/product";
import { dimensions_t, length_t } from "@/lib/dimensions";
import uuid from "react-native-uuid";
import { RootState } from '@/app/store';
import { Length } from 'convert';
import { AppStore, RootState } from "@/app/store";
import { Length } from "convert";
const initialState = {
products: [] as ProductData[],
units: "ft",
export const DEFAULT_UNITS: Length = "ft";
export type PlywoodCalculationState = {
product?: Id | null;
units: Length;
};
export type CarpetCalculationState = {
product?: Id | null;
length: length_t;
inner_d: length_t;
outer_d: length_t;
};
export type AppStoreState = {
products: Product[];
calculations?: {
plywood: PlywoodCalculationState;
carpet: CarpetCalculationState;
};
};
export const DEFAULT_PRELOADED_STATE = {
products: [] as Product[],
calculations: {
plywood: {
product: undefined,
units: DEFAULT_UNITS,
},
carpet: {
product: undefined,
length: {
l: 0,
u: DEFAULT_UNITS,
},
inner_d: {
l: 0,
u: DEFAULT_UNITS,
},
outer_d: {
l: 0,
u: DEFAULT_UNITS,
},
},
},
} as AppStoreState;
const initialState: AppStoreState = DEFAULT_PRELOADED_STATE;
export type UpdateAttribute = {
product_id: Id,
attributeKey: string,
attributeValue: any,
}
product_id: Id;
attributeKey: string;
attributeValue: any;
};
export type UpdateAttributeKey = {
product_id: Id,
oldKey: string,
newKey: string,
}
product_id: Id;
oldKey: string;
newKey: string;
};
export type AddAttribute = {
product_id: Id,
}
product_id: Id;
};
const cp = (obj: any) => JSON.parse(JSON.stringify(obj));
const productsState = createSlice({
name: 'products-slice',
initialState,
reducers: {
setUnits(state, action : PayloadAction<Length>) {
state.units = action.payload;
},
createProduct(state, action: PayloadAction<ProductData>) {
if (!state) {
return initialState
}
const product = action.payload;
if (!product.id) product.id = uuid.v4().toString();
state.products = [...state.products, action.payload];
return state;
},
deleteProduct(state, action: PayloadAction<Id>) {
if (!state) return initialState;
return {
...state,
products: [...state.products.filter((prod) => {
return prod.id?.valueOf() !== action.payload.valueOf();
})],
}
},
updateAttribute(state, action: PayloadAction<UpdateAttribute>) {
const { product_id, attributeKey, attributeValue } = action.payload
if (!state) return initialState;
return {
...state,
products: state.products.map(prod => {
if (prod.id !== product_id) return prod;
const attributes = cp(prod.attributes);
attributes[attributeKey] = attributeValue;
return {
...prod,
attributes,
}
})
};
},
changeKey(state, action: PayloadAction<UpdateAttributeKey>) {
if (!state) return initialState;
const { product_id, oldKey, newKey } = action.payload
name: "products-slice",
initialState,
reducers: {
setPlywoodCalculation(
state,
action: PayloadAction<PlywoodCalculationState>
) {
if (!state) {
return initialState;
}
const newCalc = action.payload;
state.calculations.plywood = newCalc;
return state;
},
setCarpetCalculation(state, action: PayloadAction<CarpetCalculationState>) {
if (!state) {
return initialState;
}
const newCalc = action.payload;
state.calculations.carpet = newCalc;
return state;
},
createProduct(state, action: PayloadAction<Product>) {
if (!state) {
return initialState;
}
const product = action.payload;
if (!product.id) product.id = uuid.v4().toString();
state.products = [...state.products, action.payload];
return state;
},
deleteProduct(state, action: PayloadAction<Id>) {
if (!state) return initialState;
return {
...state,
products: [
...state.products.filter((prod) => {
return prod.id?.valueOf() !== action.payload.valueOf();
}),
],
};
},
updateAttribute(state, action: PayloadAction<UpdateAttribute>) {
const { product_id, attributeKey, attributeValue } = action.payload;
if (!state) return initialState;
return {
...state,
products: state.products.map((prod) => {
if (prod.id !== product_id) return prod;
const attributes = cp(prod.attributes);
attributes[attributeKey] = attributeValue;
return {
...prod,
attributes,
};
}),
};
},
changeKey(state, action: PayloadAction<UpdateAttributeKey>) {
if (!state) return initialState;
const { product_id, oldKey, newKey } = action.payload;
return {
...state,
products: state.products.map(prod => {
if (prod.id !== product_id) return prod;
return {
...state,
products: state.products.map((prod) => {
if (prod.id !== product_id) return prod;
const attributes = cp(prod.attributes);
attributes[newKey] = attributes[oldKey];
delete attributes[oldKey];
attributes.id = prod.id;
return {
...prod,
attributes,
}
})
};
},
addAttribute(state, action: PayloadAction<Id>) {
if (!state) return initialState;
const product_id = action.payload;
state.products = state.products.map(prod => {
if (prod.id !== product_id) return prod;
const i = (Object.keys(prod.attributes || {}).filter(k => k.match(/attribute [\d]+/)) || []).length;
const newAttribute = `attribute ${i + 1}`;
return {
...prod,
attributes: {
...prod.attributes,
[newAttribute]: `value`,
}
}
});
return state;
},
const attributes = cp(prod.attributes);
attributes[newKey] = attributes[oldKey];
delete attributes[oldKey];
attributes.id = prod.id;
return {
...prod,
attributes,
};
}),
};
},
addAttribute(state, action: PayloadAction<Id>) {
if (!state) return initialState;
const product_id = action.payload;
state.products = state.products.map((prod) => {
if (prod.id !== product_id) return prod;
const i = (
Object.keys(prod.attributes || {}).filter((k) =>
k.match(/attribute [\d]+/)
) || []
).length;
const newAttribute = `attribute ${i + 1}`;
return {
...prod,
attributes: {
...prod.attributes,
[newAttribute]: `value`,
},
};
});
return state;
},
deleteAttribute(state, action: PayloadAction<{ product_id: Id, attribute: string }>) {
if (!state) return initialState;
const { product_id, attribute } = action.payload;
return {
...state,
products: state.products.map(prod => {
if (prod.id !== product_id) return prod;
const attributes = Object.fromEntries(Object.entries(prod).filter(([k, v]) => (k !== attribute)));
return {
...prod,
attributes,
}
}),
};
},
updatePrice(state, action: PayloadAction<{ product_id: Id, pricePerUnit: number }>) {
if (!state) return initialState;
const { product_id, pricePerUnit } = action.payload;
state.products = state.products.map(prod => {
if (prod.id !== product_id) return prod;
prod.pricePerUnit = pricePerUnit;
return prod;
});
return state;
},
updateDimensions(state, action: PayloadAction<{ product_id: Id, dimensions: dimensions_t }>) {
if (!state) return initialState;
const { product_id, dimensions } = action.payload;
console.log("Changing dimensions: %o", action.payload);
return {
...state,
products: state.products.map(prod => {
if (prod.id !== product_id) return prod;
return {
...prod,
dimensions,
}
}),
};
},
}
deleteAttribute(
state,
action: PayloadAction<{ product_id: Id; attribute: string }>
) {
if (!state) return initialState;
const { product_id, attribute } = action.payload;
return {
...state,
products: state.products.map((prod) => {
if (prod.id !== product_id) return prod;
const attributes = Object.fromEntries(
Object.entries(prod).filter(([k, v]) => k !== attribute)
);
return {
...prod,
attributes,
};
}),
};
},
updatePrice(
state,
action: PayloadAction<{ product_id: Id; pricePerUnit: number }>
) {
if (!state) return initialState;
const { product_id, pricePerUnit } = action.payload;
state.products = state.products.map((prod) => {
if (prod.id !== product_id) return prod;
prod.pricePerUnit = pricePerUnit;
return prod;
});
return state;
},
updateDimensions(
state,
action: PayloadAction<{ product_id: Id; dimensions: dimensions_t }>
) {
if (!state) return initialState;
const { product_id, dimensions } = action.payload;
console.log("Changing dimensions: %o", action.payload);
return {
...state,
products: state.products.map((prod) => {
if (prod.id !== product_id) return prod;
return {
...prod,
dimensions,
};
}),
};
},
},
});
export const selectProductsDatas = (state: RootState) => {
return state.products;
}
export const selectProducts = (state: RootState) => {
return state.products;
};
export const selectUnits = (state : RootState) => {
return (state.units || "ft") as Length;
}
export const selectPlywoodCalc = (state: RootState) => {
return state.calculations.plywood;
};
export const selectProducts = createSelector([selectProductsDatas], productsData => {
return productsData.map(d => Product.fromObject(d));
})
export const selectCarpetCalc = (state: RootState) => {
return state.calculations.carpet;
};
export const selectProductIds = createSelector([selectProducts], products => {
return products.map(p => p.id);
})
export const selectProductIds = createSelector([selectProducts], (products) => {
return products.map((p) => p.id);
});
export const selectProductAttributes = createSelector([selectProducts], products => {
return Object.fromEntries(products.map(p => {
return [
p.id,
p.attributesAsList,
]
}))
})
export const selectProductAttributes = createSelector(
[selectProducts],
(products) => {
return Object.fromEntries(
products.map((p) => {
return [p.id, p.attributes ? attributesAsList(p.attributes) : []];
})
);
}
);
export const actions = {
...productsState.actions
...productsState.actions,
};
export const {
setUnits,
createProduct,
deleteProduct,
changeKey,
updateAttribute,
addAttribute,
deleteAttribute,
updatePrice,
updateDimensions,
setCarpetCalculation,
setPlywoodCalculation,
createProduct,
deleteProduct,
changeKey,
updateAttribute,
addAttribute,
deleteAttribute,
updatePrice,
updateDimensions,
} = productsState.actions;
export default productsState.reducer;

View File

@ -1,30 +1,47 @@
import { length } from "enheter";
import { Product } from "../product";
import { Id, Product, productPriceFor } from "../product";
import uuid from "react-native-uuid"
describe("Product tests", () => {
it(`Length product gives correct price for a shorter length`, () => {
const standard = new Product(20, { l: 4, u: "feet" });
const comparison = standard.priceFor({ l: 2, u: "feet" });
expect(comparison).toEqual(10);
const standard : Product = {
id: uuid.v4().valueOf() as Id,
dimensions: {
l: 5,
u: "ft",
},
type: "lumber",
pricePerUnit: 10,
};
const comparison = productPriceFor(standard, { l: 2, u: "feet" });
expect(comparison).toEqual(4);
});
it(`Length product gives correct price for a longer length`, () => {
const standard = new Product(20, {l: 4, u : "feet"});
const comparison = standard.priceFor({l : 8, u : "feet"});
expect(comparison).toEqual(40);
const standard : Product = {
id: uuid.v4().valueOf() as Id,
dimensions: {
l: 5,
u: "ft",
},
type: "lumber",
pricePerUnit: 10,
};
const comparison = productPriceFor(standard, { l: 10, u: "feet" });
expect(comparison).toEqual(20);
});
it(`Length product gives correct price if different units`, () => {
const standard = new Product(10, {l: 1, u : "feet"});
const comparison = standard.priceFor({l : 24, u: "inch"});
expect(comparison).toBeCloseTo(20, 4);
const standard : Product = {
id: uuid.v4().valueOf() as Id,
dimensions: {
l: 12,
u: "in",
},
type: "lumber",
pricePerUnit: 1,
};
const comparison = productPriceFor(standard, { l: 2, u: "feet" });
expect(comparison).toBeCloseTo(2, 1);
});
it("Can convert to/from object", () => {
const standard = new Product(10, {l: 1, u : "feet"});
const obj = standard.asObject;
const back = Product.fromObject(obj);
expect(back).toEqual(standard);
})
});

View File

@ -11,7 +11,6 @@ export type area_t = length_t & {
export type dimensions_t = area_t | length_t;
export type product_type_t = "area" | "length";
export const isArea = (d: dimensions_t) => ("width" in d);
export const isLength = (d: dimensions_t) => (!("width" in d));
@ -34,6 +33,8 @@ export const dimensionType = (d: dimensions_t) => isArea(d) ? "area" : "length";
};
}
const FACTOR = 0.1309;
/**
* Gets the total length of a carpet roll based on a diameter
* @param outerDiameter Outer diameter of the carpet roll
@ -44,9 +45,15 @@ export function diameterToLength(outerDiameter: length_t, innerDiameter: length_
if (outerDiameter.u !== innerDiameter.u) {
throw new Error("diameter units must match!")
}
const thickness = (((outerDiameter.l - innerDiameter.l) / 2) / numRings);
const l = FACTOR * numRings * (innerDiameter.l + outerDiameter.l);
return {
l: Math.PI * (Math.pow(outerDiameter.l, 2) / 4) - (Math.pow(innerDiameter.l, 2) / 4) / thickness,
u: innerDiameter.u,
};
l,
u: outerDiameter.u
}
}
export function dimensionsDisplay(d : dimensions_t) {
if ("w" in d) {
return `${d.w} x ${d.l} ${d.u}`
}
}

View File

@ -1,99 +1,103 @@
import uuid from "react-native-uuid";
import { Area } from "convert";
import { Transform } from "class-transformer";
import { dimensions_t, area_t } from "./dimensions";
import { dimensions_t, area_t, dimensionsDisplay } from "./dimensions";
import { matchDimensions } from "./dimensions";
import { Area, Length, Unit } from "convert";
export type Id = string;
export type Currency = "USD";
export type ProductAttributes = {
id?: string,
name?: string,
image?: string,
description?: string,
depth?: string,
currency?: Currency,
// [index:string]: any,
}
export function dimensionArea(d: dimensions_t) {
return "w" in d ? d.w * d.l : 0;
}
export type ProductData = {
id?: Id;
pricePerUnit: number;
dimensions: dimensions_t;
attributes?: ProductAttributes;
id?: string;
name?: string;
image?: string;
description?: string;
depth?: string;
currency?: Currency;
[index: string]: any;
};
export function dimensionArea(d: dimensions_t) {
return "w" in d ? d.w * d.l : 0;
}
export class Product {
export const PRODUCT_TYPES = ["lumber", "area_rug"] as const;
public id?: Id;
export type product_type_t = (typeof PRODUCT_TYPES)[number];
constructor(public pricePerUnit: number, public dimensions: dimensions_t, public attributes: ProductAttributes = {},
id?: Id,
) {
this.id = id || uuid.v4().toString();
}
export type Product = {
id?: Id;
pricePerUnit: number;
dimensions: dimensions_t;
type: product_type_t;
attributes?: ProductAttributes;
};
public priceFor(dimensions: dimensions_t, damage : number): number {
if (Number.isNaN(damage)) damage = 0;
const dim = matchDimensions(dimensions, this.dimensions);
return (
dim.w ? dimensionArea(dim) / dimensionArea(this.dimensions) * this.pricePerUnit
: (dim.l / this.dimensions.l) * this.pricePerUnit
) * (1.0 - damage);
}
export type LumberProduct = Product & {
type: "lumber";
};
get priceDisplay() {
return this.pricePerUnit.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
})
}
export type AreaRugProduct = Product & {
type: "lumber";
};
get pricePerUnitDisplay() {
const p = this.priceDisplay;
const { l, u } = this.dimensions;
const w = (this.dimensions as area_t).w || null;
const d = w ? `${l}${u} x ${w}${u}` : `${l}${u}`;
return `$${p} per ${d}`
}
export function productPriceFor(
product: Product,
dimensions: dimensions_t,
damage: number = 0
): number {
if (Number.isNaN(damage)) damage = 0;
const dim = matchDimensions(dimensions, product.dimensions);
return (
(dim.w
? (dimensionArea(dim) / dimensionArea(product.dimensions)) *
product.pricePerUnit
: (dim.l / product.dimensions.l) * product.pricePerUnit) *
(1.0 - damage)
);
}
get attributesAsList() {
return Object.entries(this.attributes).map(([key, value]) => {
return { key, value }
})
}
export function priceDisplay(price: number) {
return price.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
});
}
public removeAttribute(key: string) {
this.attributes = Object.fromEntries(
Object.entries(this.attributes).filter(
([k, v]) => {
k == key;
}
)
);
}
export function pricePerUnitDisplay(product: Product) {
const p = priceDisplay(product.pricePerUnit);
const { l, u } = product.dimensions;
const w = (product.dimensions as area_t).w || null;
const d = w ? `${l}${u} x ${w}${u}` : `${l}${u}`;
return `$${p} per ${d}`;
}
get asObject(): ProductData {
return {
id: this.id,
pricePerUnit: this.pricePerUnit,
dimensions: this.dimensions,
attributes: this.attributes,
}
}
export function attributesAsList(attributes: ProductAttributes) {
return Object.entries(attributes).map(([key, value]) => {
return { key, value };
});
}
static fromObject({ id, pricePerUnit, dimensions, attributes }: ProductData) {
return new Product(
pricePerUnit,
dimensions,
attributes,
id,
)
}
}
export function productLabel(
product: Product,
{ pricing }: { pricing: boolean } = { pricing: false }
) {
const n = product.attributes?.name || `Product ${product.id}`;
const p = priceDisplay(product.pricePerUnit);
const d = dimensionsDisplay(product.dimensions);
if (!pricing) {
return n;
}
return `${n} ($${p} per ${d})`;
}
export function removeAttribute(
attributes: { [key: string]: any },
key: string
) {
return Object.fromEntries(
Object.entries(attributes).filter(([k, v]) => {
k == key;
})
);
}

View File

@ -0,0 +1,15 @@
function waitForWindow(): Promise<Window> {
return new Promise((resolve) => {
if (typeof window !== 'undefined') {
resolve(window);
} else {
const intervalId = setInterval(() => {
if (typeof window !== 'undefined') {
clearInterval(intervalId);
resolve(window);
}
}, 100);
}
});
}

View File

@ -13,25 +13,26 @@
"apk:android": "eas build --platform android --local"
},
"dependencies": {
"@babel/runtime": "^7.24.7",
"@expo/config-plugins": "~8.0.0",
"@expo/prebuild-config": "~7.0.0",
"@babel/runtime": "^7.25.0",
"@expo/config-plugins": "~8.0.8",
"@expo/prebuild-config": "~7.0.8",
"@expo/vector-icons": "^14.0.2",
"@react-native-async-storage/async-storage": "^1.23.1",
"@react-native-async-storage/async-storage": "^1.24.0",
"@react-native-community/slider": "^4.5.2",
"@react-native/assets-registry": "^0.74.85",
"@react-navigation/native": "^6.0.2",
"@reduxjs/toolkit": "^2.2.6",
"@react-native/assets-registry": "^0.74.87",
"@react-navigation/native": "^6.1.18",
"@reduxjs/toolkit": "^2.2.7",
"class-transformer": "^0.5.1",
"convert": "^5.3.0",
"dayjs": "^1.11.11",
"expo": "~51.0.18",
"dayjs": "^1.11.12",
"expo": "~51.0.28",
"expo-asset": "^10.0.10",
"expo-constants": "~16.0.2",
"expo-doctor": "^1.6.1",
"expo-font": "~12.0.7",
"expo-doctor": "^1.9.0",
"expo-font": "~12.0.9",
"expo-linear-gradient": "^13.0.2",
"expo-linking": "~6.3.1",
"expo-router": "~3.5.17",
"expo-router": "~3.5.23",
"expo-splash-screen": "~0.27.5",
"expo-status-bar": "~1.12.1",
"expo-system-ui": "~3.0.7",
@ -40,26 +41,30 @@
"react-dom": "18.2.0",
"react-native": "0.74.3",
"react-native-element-dropdown": "^2.12.1",
"react-native-gesture-handler": "~2.16.1",
"react-native-gesture-handler": "~2.18.1",
"react-native-reanimated": "~3.10.1",
"react-native-safe-area-context": "4.10.1",
"react-native-screens": "3.31.1",
"react-native-select-dropdown": "^4.0.1",
"react-native-svg": "^15.5.0",
"react-native-uuid": "^2.0.2",
"react-native-web": "~0.19.10",
"react-native-web": "~0.19.12",
"react-redux": "^9.1.2",
"redux-persist": "^6.0.0",
"redux-remember": "^5.1.0"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/core": "^7.25.2",
"@babel/preset-typescript": "^7.24.7",
"@testing-library/react-native": "^12.5.1",
"@testing-library/react-native": "^12.5.3",
"@testing-library/user-event": "^14.5.2",
"@types/jest": "^29.5.12",
"@types/react": "~18.2.45",
"@types/react-test-renderer": "^18.0.7",
"babel-preset-expo": "^11.0.12",
"jest": "^29.2.1",
"@types/react": "~18.2.79",
"@types/react-test-renderer": "^18.3.0",
"babel-preset-expo": "^11.0.14",
"jest": "^29.7.0",
"jest-expo": "~51.0.3",
"react-native-svg-transformer": "^1.5.0",
"react-test-renderer": "18.2.0",
"typescript": "~5.3.3"
},

View File

@ -6,32 +6,32 @@ settings:
dependencies:
'@babel/runtime':
specifier: ^7.24.7
version: 7.24.7
specifier: ^7.25.0
version: 7.25.0
'@expo/config-plugins':
specifier: ~8.0.0
version: 8.0.7
specifier: ~8.0.8
version: 8.0.8
'@expo/prebuild-config':
specifier: ~7.0.0
version: 7.0.7(expo-modules-autolinking@1.11.1)
specifier: ~7.0.8
version: 7.0.8(expo-modules-autolinking@1.11.2)
'@expo/vector-icons':
specifier: ^14.0.2
version: 14.0.2
'@react-native-async-storage/async-storage':
specifier: ^1.23.1
version: 1.23.1(react-native@0.74.3)
specifier: ^1.24.0
version: 1.24.0(react-native@0.74.3)
'@react-native-community/slider':
specifier: ^4.5.2
version: 4.5.2
'@react-native/assets-registry':
specifier: ^0.74.85
version: 0.74.85
specifier: ^0.74.87
version: 0.74.87
'@react-navigation/native':
specifier: ^6.0.2
version: 6.1.17(react-native@0.74.3)(react@18.2.0)
specifier: ^6.1.18
version: 6.1.18(react-native@0.74.3)(react@18.2.0)
'@reduxjs/toolkit':
specifier: ^2.2.6
version: 2.2.6(react-redux@9.1.2)(react@18.2.0)
specifier: ^2.2.7
version: 2.2.7(react-redux@9.1.2)(react@18.2.0)
class-transformer:
specifier: ^0.5.1
version: 0.5.1
@ -39,41 +39,44 @@ dependencies:
specifier: ^5.3.0
version: 5.3.0
dayjs:
specifier: ^1.11.11
version: 1.11.11
specifier: ^1.11.12
version: 1.11.12
expo:
specifier: ~51.0.18
version: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
specifier: ~51.0.28
version: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
expo-asset:
specifier: ^10.0.10
version: 10.0.10(expo@51.0.18)
version: 10.0.10(expo@51.0.28)
expo-constants:
specifier: ~16.0.2
version: 16.0.2(expo@51.0.18)
version: 16.0.2(expo@51.0.28)
expo-doctor:
specifier: ^1.6.1
version: 1.6.1
specifier: ^1.9.0
version: 1.9.0
expo-font:
specifier: ~12.0.7
version: 12.0.7(expo@51.0.18)
specifier: ~12.0.9
version: 12.0.9(expo@51.0.28)
expo-linear-gradient:
specifier: ^13.0.2
version: 13.0.2(expo@51.0.28)
expo-linking:
specifier: ~6.3.1
version: 6.3.1(expo@51.0.18)
version: 6.3.1(expo@51.0.28)
expo-router:
specifier: ~3.5.17
version: 3.5.17(expo-constants@16.0.2)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.18)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)(typescript@5.3.3)
specifier: ~3.5.23
version: 3.5.23(expo-constants@16.0.2)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.2)(expo-status-bar@1.12.1)(expo@51.0.28)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)(typescript@5.3.3)
expo-splash-screen:
specifier: ~0.27.5
version: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.18)
version: 0.27.5(expo-modules-autolinking@1.11.2)(expo@51.0.28)
expo-status-bar:
specifier: ~1.12.1
version: 1.12.1
expo-system-ui:
specifier: ~3.0.7
version: 3.0.7(expo@51.0.18)
version: 3.0.7(expo@51.0.28)
expo-web-browser:
specifier: ~13.0.3
version: 13.0.3(expo@51.0.18)
version: 13.0.3(expo@51.0.28)
react:
specifier: 18.2.0
version: 18.2.0
@ -82,16 +85,16 @@ dependencies:
version: 18.2.0(react@18.2.0)
react-native:
specifier: 0.74.3
version: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
version: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-native-element-dropdown:
specifier: ^2.12.1
version: 2.12.1(react-native@0.74.3)(react@18.2.0)
react-native-gesture-handler:
specifier: ~2.16.1
version: 2.16.2(react-native@0.74.3)(react@18.2.0)
specifier: ~2.18.1
version: 2.18.1(react-native@0.74.3)(react@18.2.0)
react-native-reanimated:
specifier: ~3.10.1
version: 3.10.1(@babel/core@7.24.7)(react-native@0.74.3)(react@18.2.0)
version: 3.10.1(@babel/core@7.25.2)(react-native@0.74.3)(react@18.2.0)
react-native-safe-area-context:
specifier: 4.10.1
version: 4.10.1(react-native@0.74.3)(react@18.2.0)
@ -101,47 +104,59 @@ dependencies:
react-native-select-dropdown:
specifier: ^4.0.1
version: 4.0.1
react-native-svg:
specifier: ^15.5.0
version: 15.5.0(react-native@0.74.3)(react@18.2.0)
react-native-uuid:
specifier: ^2.0.2
version: 2.0.2
react-native-web:
specifier: ~0.19.10
specifier: ~0.19.12
version: 0.19.12(react-dom@18.2.0)(react@18.2.0)
react-redux:
specifier: ^9.1.2
version: 9.1.2(@types/react@18.2.79)(react@18.2.0)(redux@5.0.1)
redux-persist:
specifier: ^6.0.0
version: 6.0.0(react@18.2.0)(redux@5.0.1)
redux-remember:
specifier: ^5.1.0
version: 5.1.0(redux@5.0.1)
devDependencies:
'@babel/core':
specifier: ^7.20.0
version: 7.24.7
specifier: ^7.25.2
version: 7.25.2
'@babel/preset-typescript':
specifier: ^7.24.7
version: 7.24.7(@babel/core@7.24.7)
version: 7.24.7(@babel/core@7.25.2)
'@testing-library/react-native':
specifier: ^12.5.1
version: 12.5.1(jest@29.7.0)(react-native@0.74.3)(react-test-renderer@18.2.0)(react@18.2.0)
specifier: ^12.5.3
version: 12.5.3(jest@29.7.0)(react-native@0.74.3)(react-test-renderer@18.2.0)(react@18.2.0)
'@testing-library/user-event':
specifier: ^14.5.2
version: 14.5.2(@testing-library/dom@10.4.0)
'@types/jest':
specifier: ^29.5.12
version: 29.5.12
'@types/react':
specifier: ~18.2.45
specifier: ~18.2.79
version: 18.2.79
'@types/react-test-renderer':
specifier: ^18.0.7
specifier: ^18.3.0
version: 18.3.0
babel-preset-expo:
specifier: ^11.0.12
version: 11.0.12(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
specifier: ^11.0.14
version: 11.0.14(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
jest:
specifier: ^29.2.1
specifier: ^29.7.0
version: 29.7.0
jest-expo:
specifier: ~51.0.3
version: 51.0.3(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0)
version: 51.0.3(@babel/core@7.25.2)(jest@29.7.0)(react@18.2.0)
react-native-svg-transformer:
specifier: ^1.5.0
version: 1.5.0(react-native-svg@15.5.0)(react-native@0.74.3)(typescript@5.3.3)
react-test-renderer:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
@ -170,26 +185,26 @@ packages:
'@babel/highlight': 7.24.7
picocolors: 1.0.1
/@babel/compat-data@7.24.7:
resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz}
/@babel/compat-data@7.25.2:
resolution: {integrity: sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz}
engines: {node: '>=6.9.0'}
/@babel/core@7.24.7:
resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz}
/@babel/core@7.25.2:
resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.3.0
'@babel/code-frame': 7.24.7
'@babel/generator': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
'@babel/helpers': 7.24.7
'@babel/parser': 7.24.7
'@babel/template': 7.24.7
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/generator': 7.25.0
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helpers': 7.25.0
'@babel/parser': 7.25.3
'@babel/template': 7.25.0
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
convert-source-map: 2.0.0
debug: 4.3.5
debug: 4.3.6
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@ -199,17 +214,17 @@ packages:
/@babel/generator@7.2.0:
resolution: {integrity: sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
jsesc: 2.5.2
lodash: 4.17.21
source-map: 0.5.7
trim-right: 1.0.1
/@babel/generator@7.24.7:
resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz}
/@babel/generator@7.25.0:
resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
@ -218,66 +233,64 @@ packages:
resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==, tarball: https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
/@babel/helper-builder-binary-assignment-operator-visitor@7.24.7:
resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==, tarball: https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
/@babel/helper-compilation-targets@7.24.7:
resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==, tarball: https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz}
/@babel/helper-compilation-targets@7.25.2:
resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==, tarball: https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/compat-data': 7.24.7
'@babel/helper-validator-option': 7.24.7
browserslist: 4.23.1
'@babel/compat-data': 7.25.2
'@babel/helper-validator-option': 7.24.8
browserslist: 4.23.3
lru-cache: 5.1.1
semver: 6.3.1
/@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==, tarball: https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz}
/@babel/helper-create-class-features-plugin@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==, tarball: https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-member-expression-to-functions': 7.24.7
'@babel/helper-member-expression-to-functions': 7.24.8
'@babel/helper-optimise-call-expression': 7.24.7
'@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
'@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/traverse': 7.25.3
semver: 6.3.1
transitivePeerDependencies:
- supports-color
/@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==, tarball: https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz}
/@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==, tarball: https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
regexpu-core: 5.3.2
semver: 6.3.1
/@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7):
/@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2):
resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==, tarball: https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
debug: 4.3.5
'@babel/core': 7.25.2
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
debug: 4.3.6
lodash.debounce: 4.0.8
resolve: 1.22.8
transitivePeerDependencies:
@ -287,27 +300,14 @@ packages:
resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==, tarball: https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
/@babel/helper-function-name@7.24.7:
resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==, tarball: https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz}
/@babel/helper-member-expression-to-functions@7.24.8:
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==, tarball: https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.24.7
'@babel/types': 7.24.7
/@babel/helper-hoist-variables@7.24.7:
resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==, tarball: https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
/@babel/helper-member-expression-to-functions@7.24.7:
resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==, tarball: https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
@ -315,23 +315,22 @@ packages:
resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==, tarball: https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
/@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==, tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz}
/@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==, tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
'@babel/helper-simple-access': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/helper-validator-identifier': 7.24.7
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
@ -339,35 +338,35 @@ packages:
resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==, tarball: https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
/@babel/helper-plugin-utils@7.24.7:
resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz}
/@babel/helper-plugin-utils@7.24.8:
resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz}
engines: {node: '>=6.9.0'}
/@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==, tarball: https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz}
/@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==, tarball: https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-wrap-function': 7.24.7
'@babel/helper-wrap-function': 7.25.0
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==, tarball: https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz}
/@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==, tarball: https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-member-expression-to-functions': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-member-expression-to-functions': 7.24.8
'@babel/helper-optimise-call-expression': 7.24.7
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
@ -375,8 +374,8 @@ packages:
resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==, tarball: https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
@ -384,46 +383,39 @@ packages:
resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==, tarball: https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
/@babel/helper-split-export-declaration@7.24.7:
resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==, tarball: https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/types': 7.24.7
/@babel/helper-string-parser@7.24.7:
resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==, tarball: https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz}
/@babel/helper-string-parser@7.24.8:
resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==, tarball: https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz}
engines: {node: '>=6.9.0'}
/@babel/helper-validator-identifier@7.24.7:
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz}
engines: {node: '>=6.9.0'}
/@babel/helper-validator-option@7.24.7:
resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==, tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz}
/@babel/helper-validator-option@7.24.8:
resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==, tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz}
engines: {node: '>=6.9.0'}
/@babel/helper-wrap-function@7.24.7:
resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==, tarball: https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz}
/@babel/helper-wrap-function@7.25.0:
resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==, tarball: https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-function-name': 7.24.7
'@babel/template': 7.24.7
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/template': 7.25.0
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
/@babel/helpers@7.24.7:
resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==, tarball: https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz}
/@babel/helpers@7.25.0:
resolution: {integrity: sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==, tarball: https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.24.7
'@babel/types': 7.24.7
'@babel/template': 7.25.0
'@babel/types': 7.25.2
/@babel/highlight@7.24.7:
resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==, tarball: https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz}
@ -434,1159 +426,1185 @@ packages:
js-tokens: 4.0.0
picocolors: 1.0.1
/@babel/parser@7.24.7:
resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==, tarball: https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz}
/@babel/parser@7.25.3:
resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==, tarball: https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
/@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz}
/@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2):
resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz}
/@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7):
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.13.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz}
/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==, tarball: https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.24.7):
/@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.25.2):
resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.7):
/@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2):
resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.24.7):
/@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.24.7):
/@babel/plugin-proposal-export-default-from@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-CcmFwUJ3tKhLjPdt4NP+SHMshebytF8ZTYOv5ZDpkzq2sin80Wb5vJrGt8fhPrORQCfoSa0LAxC/DW+GAC5+Hw==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.25.2)
/@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.24.7):
/@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.25.2):
resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.24.7):
/@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.25.2):
resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.24.7):
/@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.25.2):
resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.24.7):
/@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.2):
resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.24.7
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
'@babel/compat-data': 7.25.2
'@babel/core': 7.25.2
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
/@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.24.7):
/@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.25.2):
resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.24.7):
/@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.25.2):
resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz}
engines: {node: '>=6.9.0'}
deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7):
/@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2):
resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, tarball: https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7):
/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2):
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
dev: true
/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7):
/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2):
resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7):
/@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2):
resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-export-default-from@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-bTPz4/635WQ9WhwsyPdxUJDVpsi/X9BMmy/8Rf/UAlOO4jSql4CxUCjWI5PiM+jG+c4LVPTScoTw80geFj9+Bw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-flow@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7):
/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2):
resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7):
/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2):
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7):
/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2):
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7):
/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2):
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7):
/@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2):
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7):
/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2):
resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7):
/@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7):
/@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2):
resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz}
/@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz}
/@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==, tarball: https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.12.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz}
/@babel/plugin-transform-classes@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
'@babel/helper-split-export-declaration': 7.24.7
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
'@babel/traverse': 7.25.3
globals: 11.12.0
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/template': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/template': 7.25.0
/@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz}
/@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2):
resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz}
/@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2)
/@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==, tarball: https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz}
/@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2):
resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz}
/@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
/@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz}
/@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2):
resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-simple-access': 7.24.7
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz}
/@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2):
resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
'@babel/traverse': 7.25.3
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==, tarball: https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
/@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==, tarball: https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
/@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
/@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz}
/@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2):
resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-parameters@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz}
/@babel/plugin-transform-react-jsx@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-module-imports': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/types': 7.24.7
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
'@babel/types': 7.25.2
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-react-pure-annotations@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
regenerator-transform: 0.15.2
/@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==, tarball: https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-runtime@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-module-imports': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7)
babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7)
babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.8
babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2)
babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2)
babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==, tarball: https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==, tarball: https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==, tarball: https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz}
/@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2):
resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz}
/@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2):
resolution: {integrity: sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==, tarball: https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-annotate-as-pure': 7.24.7
'@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/helper-create-class-features-plugin': 7.25.0(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-skip-transparent-expression-wrappers': 7.24.7
'@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7):
/@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==, tarball: https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2)
'@babel/helper-plugin-utils': 7.24.8
/@babel/preset-env@7.24.7(@babel/core@7.24.7):
resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==, tarball: https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz}
/@babel/preset-env@7.25.3(@babel/core@7.25.2):
resolution: {integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==, tarball: https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/compat-data': 7.24.7
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-validator-option': 7.24.7
'@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.7)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
'@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-async-generator-functions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-systemjs': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-typeof-symbol': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.24.7)
'@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.7)
babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.7)
babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.7)
babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.7)
core-js-compat: 3.37.1
'@babel/compat-data': 7.25.2
'@babel/core': 7.25.2
'@babel/helper-compilation-targets': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-option': 7.24.8
'@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2)
'@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2)
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2)
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2)
'@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-class-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2)
'@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-sets-regex': 7.24.7(@babel/core@7.25.2)
'@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2)
babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2)
babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2)
babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2)
core-js-compat: 3.38.0
semver: 6.3.1
transitivePeerDependencies:
- supports-color
/@babel/preset-flow@7.24.7(@babel/core@7.24.7):
/@babel/preset-flow@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==, tarball: https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-validator-option': 7.24.7
'@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-option': 7.24.8
'@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2)
/@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7):
/@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2):
resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, tarball: https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/types': 7.24.7
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/types': 7.25.2
esutils: 2.0.3
/@babel/preset-react@7.24.7(@babel/core@7.24.7):
/@babel/preset-react@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==, tarball: https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-validator-option': 7.24.7
'@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-option': 7.24.8
'@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-pure-annotations': 7.24.7(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/preset-typescript@7.24.7(@babel/core@7.24.7):
/@babel/preset-typescript@7.24.7(@babel/core@7.25.2):
resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==, tarball: https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-validator-option': 7.24.7
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
'@babel/helper-validator-option': 7.24.8
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/@babel/register@7.24.6(@babel/core@7.24.7):
/@babel/register@7.24.6(@babel/core@7.25.2):
resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==, tarball: https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
clone-deep: 4.0.1
find-cache-dir: 2.1.0
make-dir: 2.1.0
@ -1596,42 +1614,39 @@ packages:
/@babel/regjsgen@0.8.0:
resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, tarball: https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz}
/@babel/runtime@7.24.7:
resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz}
/@babel/runtime@7.25.0:
resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.14.1
/@babel/template@7.24.7:
resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==, tarball: https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz}
/@babel/template@7.25.0:
resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==, tarball: https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.7
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
'@babel/parser': 7.25.3
'@babel/types': 7.25.2
/@babel/traverse@7.24.7:
resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==, tarball: https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz}
/@babel/traverse@7.25.3:
resolution: {integrity: sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==, tarball: https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.24.7
'@babel/generator': 7.24.7
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
debug: 4.3.5
'@babel/generator': 7.25.0
'@babel/parser': 7.25.3
'@babel/template': 7.25.0
'@babel/types': 7.25.2
debug: 4.3.6
globals: 11.12.0
transitivePeerDependencies:
- supports-color
/@babel/types@7.24.7:
resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==, tarball: https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz}
/@babel/types@7.25.2:
resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==, tarball: https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.24.7
'@babel/helper-string-parser': 7.24.8
'@babel/helper-validator-identifier': 7.24.7
to-fast-properties: 2.0.0
@ -1646,33 +1661,30 @@ packages:
'@types/hammerjs': 2.0.45
dev: false
/@expo/bunyan@4.0.0:
resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==, tarball: https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz}
engines: {'0': node >=0.10.0}
/@expo/bunyan@4.0.1:
resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==, tarball: https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.1.tgz}
engines: {node: '>=0.10.0'}
dependencies:
uuid: 8.3.2
optionalDependencies:
mv: 2.1.1
safe-json-stringify: 1.2.0
dev: false
/@expo/cli@0.18.22(expo-modules-autolinking@1.11.1):
resolution: {integrity: sha512-s2VM+QvgjdDHIRskQj2ER6gKK3/rybiEA0snfKJZ7iXHN5sqiUzY7G/+i5wses842hsLQefCjwo/x6tzWNrF2A==, tarball: https://registry.npmjs.org/@expo/cli/-/cli-0.18.22.tgz}
/@expo/cli@0.18.29(expo-modules-autolinking@1.11.2):
resolution: {integrity: sha512-X810C48Ss+67RdZU39YEO1khNYo1RmjouRV+vVe0QhMoTe8R6OA3t+XYEdwaNbJ5p/DJN7szfHfNmX2glpC7xg==, tarball: https://registry.npmjs.org/@expo/cli/-/cli-0.18.29.tgz}
hasBin: true
dependencies:
'@babel/runtime': 7.24.7
'@babel/runtime': 7.25.0
'@expo/code-signing-certificates': 0.0.5
'@expo/config': 9.0.1
'@expo/config-plugins': 8.0.7
'@expo/devcert': 1.1.2
'@expo/config': 9.0.3
'@expo/config-plugins': 8.0.8
'@expo/devcert': 1.1.4
'@expo/env': 0.3.0
'@expo/image-utils': 0.5.1
'@expo/json-file': 8.3.3
'@expo/metro-config': 0.18.8
'@expo/metro-config': 0.18.11
'@expo/osascript': 2.1.3
'@expo/package-manager': 1.5.2
'@expo/plist': 0.1.3
'@expo/prebuild-config': 7.0.7(expo-modules-autolinking@1.11.1)
'@expo/prebuild-config': 7.0.8(expo-modules-autolinking@1.11.2)
'@expo/rudder-sdk-node': 1.1.1
'@expo/spawn-async': 1.7.2
'@expo/xcpretty': 4.3.1
@ -1684,11 +1696,11 @@ packages:
better-opn: 3.0.2
bplist-creator: 0.0.7
bplist-parser: 0.3.2
cacache: 18.0.3
cacache: 18.0.4
chalk: 4.1.2
ci-info: 3.9.0
connect: 3.7.0
debug: 4.3.5
debug: 4.3.6
env-editor: 0.4.2
fast-glob: 3.3.2
find-yarn-workspace-root: 2.0.0
@ -1723,7 +1735,7 @@ packages:
resolve: 1.22.8
resolve-from: 5.0.0
resolve.exports: 2.0.2
semver: 7.6.2
semver: 7.6.3
send: 0.18.0
slugify: 1.6.6
source-map-support: 0.5.21
@ -1752,20 +1764,20 @@ packages:
nullthrows: 1.1.1
dev: false
/@expo/config-plugins@8.0.7:
resolution: {integrity: sha512-7xZCWTRA3SFjbLSCx4Rge8gvgaGbkduETrZx+l4r1hiUdFcG5BAt1CwcOYvTYrOy1nkvloIYJxeU/9AwADeevA==, tarball: https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.7.tgz}
/@expo/config-plugins@8.0.8:
resolution: {integrity: sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==, tarball: https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz}
dependencies:
'@expo/config-types': 51.0.2
'@expo/json-file': 8.3.3
'@expo/plist': 0.1.3
'@expo/sdk-runtime-versions': 1.0.0
chalk: 4.1.2
debug: 4.3.5
debug: 4.3.6
find-up: 5.0.0
getenv: 1.0.0
glob: 7.1.6
resolve-from: 5.0.0
semver: 7.6.2
semver: 7.6.3
slash: 3.0.0
slugify: 1.6.6
xcode: 3.0.1
@ -1776,54 +1788,35 @@ packages:
/@expo/config-types@51.0.2:
resolution: {integrity: sha512-IglkIoiDwJMY01lYkF/ZSBoe/5cR+O3+Gx6fpLFjLfgZGBTdyPkKa1g8NWoWQCk+D3cKL2MDbszT2DyRRB0YqQ==, tarball: https://registry.npmjs.org/@expo/config-types/-/config-types-51.0.2.tgz}
/@expo/config@9.0.1:
resolution: {integrity: sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg==, tarball: https://registry.npmjs.org/@expo/config/-/config-9.0.1.tgz}
/@expo/config@9.0.3:
resolution: {integrity: sha512-eOTNM8eOC8gZNHgenySRlc/lwmYY1NOgvjwA8LHuvPT7/eUwD93zrxu3lPD1Cc/P6C/2BcVdfH4hf0tLmDxnsg==, tarball: https://registry.npmjs.org/@expo/config/-/config-9.0.3.tgz}
dependencies:
'@babel/code-frame': 7.10.4
'@expo/config-plugins': 8.0.7
'@expo/config-plugins': 8.0.8
'@expo/config-types': 51.0.2
'@expo/json-file': 8.3.3
getenv: 1.0.0
glob: 7.1.6
require-from-string: 2.0.2
resolve-from: 5.0.0
semver: 7.6.2
slugify: 1.6.6
sucrase: 3.34.0
transitivePeerDependencies:
- supports-color
dev: false
/@expo/config@9.0.2:
resolution: {integrity: sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw==, tarball: https://registry.npmjs.org/@expo/config/-/config-9.0.2.tgz}
dependencies:
'@babel/code-frame': 7.10.4
'@expo/config-plugins': 8.0.7
'@expo/config-types': 51.0.2
'@expo/json-file': 8.3.3
getenv: 1.0.0
glob: 7.1.6
require-from-string: 2.0.2
resolve-from: 5.0.0
semver: 7.6.2
semver: 7.6.3
slugify: 1.6.6
sucrase: 3.34.0
transitivePeerDependencies:
- supports-color
/@expo/devcert@1.1.2:
resolution: {integrity: sha512-FyWghLu7rUaZEZSTLt/XNRukm0c9GFfwP0iFaswoDWpV6alvVg+zRAfCLdIVQEz1SVcQ3zo1hMZFDrnKGvkCuQ==, tarball: https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.2.tgz}
/@expo/devcert@1.1.4:
resolution: {integrity: sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==, tarball: https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.4.tgz}
dependencies:
application-config-path: 0.1.1
command-exists: 1.2.9
debug: 3.2.7
eol: 0.9.1
get-port: 3.2.0
glob: 7.2.3
glob: 10.4.5
lodash: 4.17.21
mkdirp: 0.5.6
password-prompt: 1.1.3
rimraf: 2.7.1
sudo-prompt: 8.2.5
tmp: 0.0.33
tslib: 2.6.3
@ -1835,7 +1828,7 @@ packages:
resolution: {integrity: sha512-OtB9XVHWaXidLbHvrVDeeXa09yvTl3+IQN884sO6PhIi2/StXfgSH/9zC7IvzrDB8kW3EBJ1PPLuCUJ2hxAT7Q==, tarball: https://registry.npmjs.org/@expo/env/-/env-0.3.0.tgz}
dependencies:
chalk: 4.1.2
debug: 4.3.5
debug: 4.3.6
dotenv: 16.4.5
dotenv-expand: 11.0.6
getenv: 1.0.0
@ -1854,7 +1847,7 @@ packages:
node-fetch: 2.7.0
parse-png: 2.1.0
resolve-from: 5.0.0
semver: 7.6.2
semver: 7.6.3
tempy: 0.3.0
transitivePeerDependencies:
- encoding
@ -1867,37 +1860,37 @@ packages:
json5: 2.2.3
write-file-atomic: 2.4.3
/@expo/metro-config@0.18.8:
resolution: {integrity: sha512-YGpTlVc1/6EPzPbt0LZt92Bwrpjngulup6uHSTRbwn/heMPfFaVv1Y4VE3GAUkx7/Qwu+dTVIV0Kys4pLOAIiw==, tarball: https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.8.tgz}
/@expo/metro-config@0.18.11:
resolution: {integrity: sha512-/uOq55VbSf9yMbUO1BudkUM2SsGW1c5hr9BnhIqYqcsFv0Jp5D3DtJ4rljDKaUeNLbwr6m7pqIrkSMq5NrYf4Q==, tarball: https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.18.11.tgz}
dependencies:
'@babel/core': 7.24.7
'@babel/generator': 7.24.7
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
'@expo/config': 9.0.1
'@babel/core': 7.25.2
'@babel/generator': 7.25.0
'@babel/parser': 7.25.3
'@babel/types': 7.25.2
'@expo/config': 9.0.3
'@expo/env': 0.3.0
'@expo/json-file': 8.3.3
'@expo/spawn-async': 1.7.2
chalk: 4.1.2
debug: 4.3.5
debug: 4.3.6
find-yarn-workspace-root: 2.0.0
fs-extra: 9.1.0
getenv: 1.0.0
glob: 7.2.3
jsc-safe-url: 0.2.4
lightningcss: 1.19.0
postcss: 8.4.39
postcss: 8.4.41
resolve-from: 5.0.0
transitivePeerDependencies:
- supports-color
dev: false
/@expo/metro-runtime@3.2.1(react-native@0.74.3):
resolution: {integrity: sha512-L7xNo5SmK+rcuXDm/+VBBImpA7FZsVB+m/rNr3fNl5or+1+yrZe99ViF7LZ8DOoVqAqcb4aCAXvGrP2JNYo1/Q==, tarball: https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.1.tgz}
/@expo/metro-runtime@3.2.3(react-native@0.74.3):
resolution: {integrity: sha512-v5ji+fAGi7B9YavrxvekuF8gXEV/5fz0+PhaED5AaFDnbGB4IJIbpaiqK9nqZV1axjGZNQSw6Q8TsnFetCR3bQ==, tarball: https://registry.npmjs.org/@expo/metro-runtime/-/metro-runtime-3.2.3.tgz}
peerDependencies:
react-native: '*'
dependencies:
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/@expo/osascript@2.1.3:
@ -1932,44 +1925,44 @@ packages:
base64-js: 1.5.1
xmlbuilder: 14.0.0
/@expo/prebuild-config@7.0.6(expo-modules-autolinking@1.11.1):
/@expo/prebuild-config@7.0.6(expo-modules-autolinking@1.11.2):
resolution: {integrity: sha512-Hts+iGBaG6OQ+N8IEMMgwQElzJeSTb7iUJ26xADEHkaexsucAK+V52dM8M4ceicvbZR9q8M+ebJEGj0MCNA3dQ==, tarball: https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.6.tgz}
peerDependencies:
expo-modules-autolinking: '>=0.8.1'
dependencies:
'@expo/config': 9.0.2
'@expo/config-plugins': 8.0.7
'@expo/config': 9.0.3
'@expo/config-plugins': 8.0.8
'@expo/config-types': 51.0.2
'@expo/image-utils': 0.5.1
'@expo/json-file': 8.3.3
'@react-native/normalize-colors': 0.74.84
debug: 4.3.5
expo-modules-autolinking: 1.11.1
debug: 4.3.6
expo-modules-autolinking: 1.11.2
fs-extra: 9.1.0
resolve-from: 5.0.0
semver: 7.6.2
semver: 7.6.3
xml2js: 0.6.0
transitivePeerDependencies:
- encoding
- supports-color
dev: false
/@expo/prebuild-config@7.0.7(expo-modules-autolinking@1.11.1):
resolution: {integrity: sha512-yN7rSINZrBVu7VfFJk0G4U/cAEjCiiyPfXmXsToHVFxWtxn8jrxyyA1JfQH3xMHJs++sqpKR9yVRtb6ZgUNeJA==, tarball: https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.7.tgz}
/@expo/prebuild-config@7.0.8(expo-modules-autolinking@1.11.2):
resolution: {integrity: sha512-wH9NVg6HiwF5y9x0TxiMEeBF+ITPGDXy5/i6OUheSrKpPgb0lF1Mwzl/f2fLPXBEpl+ZXOQ8LlLW32b7K9lrNg==, tarball: https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.8.tgz}
peerDependencies:
expo-modules-autolinking: '>=0.8.1'
dependencies:
'@expo/config': 9.0.2
'@expo/config-plugins': 8.0.7
'@expo/config': 9.0.3
'@expo/config-plugins': 8.0.8
'@expo/config-types': 51.0.2
'@expo/image-utils': 0.5.1
'@expo/json-file': 8.3.3
'@react-native/normalize-colors': 0.74.85
debug: 4.3.5
expo-modules-autolinking: 1.11.1
debug: 4.3.6
expo-modules-autolinking: 1.11.2
fs-extra: 9.1.0
resolve-from: 5.0.0
semver: 7.6.2
semver: 7.6.3
xml2js: 0.6.0
transitivePeerDependencies:
- encoding
@ -1980,11 +1973,11 @@ packages:
resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==, tarball: https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz}
engines: {node: '>=12'}
dependencies:
'@expo/bunyan': 4.0.0
'@expo/bunyan': 4.0.1
'@segment/loosely-validate-event': 2.0.0
fetch-retry: 4.1.1
md5: 2.3.0
node-fetch: 2.6.7
node-fetch: 2.7.0
remove-trailing-slash: 0.1.1
uuid: 8.3.2
transitivePeerDependencies:
@ -1994,12 +1987,12 @@ packages:
/@expo/sdk-runtime-versions@1.0.0:
resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==, tarball: https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz}
/@expo/server@0.4.3(typescript@5.3.3):
resolution: {integrity: sha512-5mzMLGLfh3vAYrzO00ujpclk/N8j4xIBeFNyNURYyqa+q/gSUqRuJdHC0i/w8At1cITFGJGiId0eXlu7/S4jRw==, tarball: https://registry.npmjs.org/@expo/server/-/server-0.4.3.tgz}
/@expo/server@0.4.4(typescript@5.3.3):
resolution: {integrity: sha512-q9ADBzMN5rZ/fgQ2mz5YIJuZ8gelQlhG2CQqToD+UvBLZvbaHCNxTTSs2KI1LzJvAaW5CWgWMatGvGF6iUQ0LA==, tarball: https://registry.npmjs.org/@expo/server/-/server-0.4.4.tgz}
dependencies:
'@remix-run/node': 2.10.2(typescript@5.3.3)
'@remix-run/node': 2.11.2(typescript@5.3.3)
abort-controller: 3.0.0
debug: 4.3.5
debug: 4.3.6
source-map-support: 0.5.21
transitivePeerDependencies:
- supports-color
@ -2082,7 +2075,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@ -2103,14 +2096,14 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.9.0
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.7.0
jest-config: 29.7.0(@types/node@20.14.9)
jest-config: 29.7.0(@types/node@22.3.0)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@ -2144,7 +2137,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-mock: 29.7.0
/@jest/expect-utils@29.7.0:
@ -2170,7 +2163,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@ -2202,7 +2195,7 @@ packages:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.25
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
@ -2263,7 +2256,7 @@ packages:
resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, tarball: https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.25
babel-plugin-istanbul: 6.1.1
@ -2296,7 +2289,7 @@ packages:
dependencies:
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
'@types/node': 20.14.9
'@types/node': 22.3.0
'@types/yargs': 15.0.19
chalk: 4.1.2
@ -2307,8 +2300,8 @@ packages:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
'@types/node': 20.14.9
'@types/yargs': 17.0.32
'@types/node': 22.3.0
'@types/yargs': 17.0.33
chalk: 4.1.2
/@jridgewell/gen-mapping@0.3.5:
@ -2316,7 +2309,7 @@ packages:
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
/@jridgewell/resolve-uri@3.1.2:
@ -2333,14 +2326,14 @@ packages:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz}
/@jridgewell/sourcemap-codec@1.5.0:
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz}
/@jridgewell/trace-mapping@0.3.25:
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz}
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/sourcemap-codec': 1.5.0
/@nodelib/fs.scandir@2.1.5:
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz}
@ -2364,7 +2357,7 @@ packages:
resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==, tarball: https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
dependencies:
semver: 7.6.2
semver: 7.6.3
dev: false
/@pkgjs/parseargs@0.11.0:
@ -2379,7 +2372,7 @@ packages:
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0
dependencies:
'@babel/runtime': 7.24.7
'@babel/runtime': 7.25.0
react: 18.2.0
dev: false
@ -2388,18 +2381,18 @@ packages:
peerDependencies:
react: ^16.8 || ^17.0 || ^18.0
dependencies:
'@babel/runtime': 7.24.7
'@babel/runtime': 7.25.0
'@radix-ui/react-compose-refs': 1.0.0(react@18.2.0)
react: 18.2.0
dev: false
/@react-native-async-storage/async-storage@1.23.1(react-native@0.74.3):
resolution: {integrity: sha512-Qd2kQ3yi6Y3+AcUlrHxSLlnBvpdCEMVGFlVBneVOjaFaPU61g1huc38g339ysXspwY1QZA2aNhrk/KlHGO+ewA==, tarball: https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.23.1.tgz}
/@react-native-async-storage/async-storage@1.24.0(react-native@0.74.3):
resolution: {integrity: sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g==, tarball: https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz}
peerDependencies:
react-native: ^0.0.0-0 || >=0.60 <1.0
dependencies:
merge-options: 3.0.4
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/@react-native-community/cli-clean@13.6.9:
@ -2447,10 +2440,10 @@ packages:
hermes-profile-transformer: 0.0.6
node-stream-zip: 1.15.0
ora: 5.4.1
semver: 7.6.2
semver: 7.6.3
strip-ansi: 5.2.0
wcwidth: 1.0.1
yaml: 2.4.5
yaml: 2.5.0
transitivePeerDependencies:
- encoding
@ -2471,7 +2464,7 @@ packages:
chalk: 4.1.2
execa: 5.1.1
fast-glob: 3.3.2
fast-xml-parser: 4.4.0
fast-xml-parser: 4.4.1
logkitty: 0.7.1
transitivePeerDependencies:
- encoding
@ -2483,7 +2476,7 @@ packages:
chalk: 4.1.2
execa: 5.1.1
fast-glob: 3.3.2
fast-xml-parser: 4.4.0
fast-xml-parser: 4.4.1
ora: 5.4.1
transitivePeerDependencies:
- encoding
@ -2524,7 +2517,7 @@ packages:
node-fetch: 2.7.0
open: 6.4.0
ora: 5.4.1
semver: 7.6.2
semver: 7.6.3
shell-quote: 1.8.1
sudo-prompt: 9.2.1
transitivePeerDependencies:
@ -2556,7 +2549,7 @@ packages:
fs-extra: 8.1.0
graceful-fs: 4.2.11
prompts: 2.4.2
semver: 7.6.2
semver: 7.6.3
transitivePeerDependencies:
- bufferutil
- encoding
@ -2571,98 +2564,182 @@ packages:
resolution: {integrity: sha512-59YmIQxfGDw4aP9S/nAM+sjSFdW8fUP6fsqczCcXgL2YVEjyER9XCaUT0J1K+PdHep8pi05KUgIKUds8P3jbmA==, tarball: https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz}
engines: {node: '>=18'}
/@react-native/babel-plugin-codegen@0.74.85(@babel/preset-env@7.24.7):
/@react-native/assets-registry@0.74.87:
resolution: {integrity: sha512-1XmRhqQchN+pXPKEKYdpJlwESxVomJOxtEnIkbo7GAlaN2sym84fHEGDXAjLilih5GVPpcpSmFzTy8jx3LtaFg==, tarball: https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.87.tgz}
engines: {node: '>=18'}
dev: false
/@react-native/babel-plugin-codegen@0.74.85(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-48TSDclRB5OMXiImiJkLxyCfRyLsqkCgI8buugCZzvXcYslfV7gCvcyFyQldtcOmerV+CK4RAj7QS4hmB5Mr8Q==, tarball: https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.85.tgz}
engines: {node: '>=18'}
dependencies:
'@react-native/codegen': 0.74.85(@babel/preset-env@7.24.7)
'@react-native/codegen': 0.74.85(@babel/preset-env@7.25.3)
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
/@react-native/babel-preset@0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
/@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==, tarball: https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.87.tgz}
engines: {node: '>=18'}
dependencies:
'@react-native/codegen': 0.74.87(@babel/preset-env@7.25.3)
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
/@react-native/babel-preset@0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-yMHUlN8INbK5BBwiBuQMftdWkpm1IgCsoJTKcGD2OpSgZhwwm8RUSvGhdRMzB2w7bsqqBmaEMleGtW6aCR7B9w==, tarball: https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.85.tgz}
engines: {node: '>=18'}
peerDependencies:
'@babel/core': '*'
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.24.7)
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.24.7)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.24.7)
'@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.7)
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-classes': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-literals': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-spread': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.24.7)
'@babel/template': 7.24.7
'@react-native/babel-plugin-codegen': 0.74.85(@babel/preset-env@7.24.7)
babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2)
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2)
'@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2)
'@babel/template': 7.25.0
'@react-native/babel-plugin-codegen': 0.74.85(@babel/preset-env@7.25.3)
babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2)
react-refresh: 0.14.2
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
/@react-native/codegen@0.74.85(@babel/preset-env@7.24.7):
/@react-native/babel-preset@0.74.87(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==, tarball: https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.87.tgz}
engines: {node: '>=18'}
peerDependencies:
'@babel/core': '*'
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-export-default-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.2)
'@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2)
'@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-export-default-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-classes': 7.25.0(@babel/core@7.25.2)
'@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2)
'@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-methods': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
'@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2)
'@babel/template': 7.25.0
'@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.25.3)
babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.25.2)
react-refresh: 0.14.2
transitivePeerDependencies:
- '@babel/preset-env'
- supports-color
/@react-native/codegen@0.74.85(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-N7QwoS4Hq/uQmoH83Ewedy6D0M7xbQsOU3OMcQf0eY3ltQ7S2hd9/R4UTalQWRn1OUJfXR6OG12QJ4FStKgV6Q==, tarball: https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.85.tgz}
engines: {node: '>=18'}
peerDependencies:
'@babel/preset-env': ^7.1.6
dependencies:
'@babel/parser': 7.24.7
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/parser': 7.25.3
'@babel/preset-env': 7.25.3(@babel/core@7.25.2)
glob: 7.2.3
hermes-parser: 0.19.1
invariant: 2.2.4
jscodeshift: 0.14.0(@babel/preset-env@7.24.7)
jscodeshift: 0.14.0(@babel/preset-env@7.25.3)
mkdirp: 0.5.6
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
/@react-native/community-cli-plugin@0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
/@react-native/codegen@0.74.87(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==, tarball: https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.87.tgz}
engines: {node: '>=18'}
peerDependencies:
'@babel/preset-env': ^7.1.6
dependencies:
'@babel/parser': 7.25.3
'@babel/preset-env': 7.25.3(@babel/core@7.25.2)
glob: 7.2.3
hermes-parser: 0.19.1
invariant: 2.2.4
jscodeshift: 0.14.0(@babel/preset-env@7.25.3)
mkdirp: 0.5.6
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
/@react-native/community-cli-plugin@0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-ODzND33eA2owAY3g9jgCdqB+BjAh8qJ7dvmSotXgrgDYr3MJMpd8gvHTIPe2fg4Kab+wk8uipRhrE0i0RYMwtQ==, tarball: https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.85.tgz}
engines: {node: '>=18'}
dependencies:
'@react-native-community/cli-server-api': 13.6.9
'@react-native-community/cli-tools': 13.6.9
'@react-native/dev-middleware': 0.74.85
'@react-native/metro-babel-transformer': 0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
'@react-native/metro-babel-transformer': 0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
chalk: 4.1.2
execa: 5.1.1
metro: 0.80.9
metro-config: 0.80.9
metro-core: 0.80.9
metro: 0.80.10
metro-config: 0.80.10
metro-core: 0.80.10
node-fetch: 2.7.0
querystring: 0.2.1
readline: 1.3.0
@ -2709,14 +2786,14 @@ packages:
resolution: {integrity: sha512-gp4Rg9le3lVZeW7Cie6qLfekvRKZuhJ3LKgi1SFB4N154z1wIclypAJXVXgWBsy8JKJfTwRI+sffC4qZDlvzrg==, tarball: https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.85.tgz}
engines: {node: '>=18'}
/@react-native/metro-babel-transformer@0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
/@react-native/metro-babel-transformer@0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-JIrXqEwhTvWPtGArgMptIPGstMdXQIkwSjKVYt+7VC4a9Pw1GurIWanIJheEW6ZuCVvTc0VZkwglFz9JVjzDjA==, tarball: https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.85.tgz}
engines: {node: '>=18'}
peerDependencies:
'@babel/core': '*'
dependencies:
'@babel/core': 7.24.7
'@react-native/babel-preset': 0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
'@babel/core': 7.25.2
'@react-native/babel-preset': 0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
hermes-parser: 0.19.1
nullthrows: 1.1.1
transitivePeerDependencies:
@ -2730,6 +2807,10 @@ packages:
/@react-native/normalize-colors@0.74.85:
resolution: {integrity: sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==, tarball: https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz}
/@react-native/normalize-colors@0.74.87:
resolution: {integrity: sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA==, tarball: https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.87.tgz}
dev: false
/@react-native/virtualized-lists@0.74.85(@types/react@18.2.79)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-jx2Zw0qlZteoQ+0KxRc7s4drsljLBEP534FaNZ950e9+CN9nVkLsV6rigcTjDR8wjKMSBWhKf0C0C3egYz7Ehg==, tarball: https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.85.tgz}
engines: {node: '>=18'}
@ -2745,9 +2826,9 @@ packages:
invariant: 2.2.4
nullthrows: 1.1.1
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
/@react-navigation/bottom-tabs@6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0):
/@react-navigation/bottom-tabs@6.5.20(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==, tarball: https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz}
peerDependencies:
'@react-navigation/native': ^6.0.0
@ -2756,18 +2837,18 @@ packages:
react-native-safe-area-context: '>= 3.0.0'
react-native-screens: '>= 3.0.0'
dependencies:
'@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.17(react-native@0.74.3)(react@18.2.0)
'@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.18(react-native@0.74.3)(react@18.2.0)
color: 4.2.3
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-native-safe-area-context: 4.10.1(react-native@0.74.3)(react@18.2.0)
react-native-screens: 3.31.1(react-native@0.74.3)(react@18.2.0)
warn-once: 0.1.1
dev: false
/@react-navigation/core@6.4.16(react@18.2.0):
resolution: {integrity: sha512-UDTJBsHxnzgFETR3ZxhctP+RWr4SkyeZpbhpkQoIGOuwSCkt1SE0qjU48/u6r6w6XlX8OqVudn1Ab0QFXTHxuQ==, tarball: https://registry.npmjs.org/@react-navigation/core/-/core-6.4.16.tgz}
/@react-navigation/core@6.4.17(react@18.2.0):
resolution: {integrity: sha512-Nd76EpomzChWAosGqWOYE3ItayhDzIEzzZsT7PfGcRFDgW5miHV2t4MZcq9YIK4tzxZjVVpYbIynOOQQd1e0Cg==, tarball: https://registry.npmjs.org/@react-navigation/core/-/core-6.4.17.tgz}
peerDependencies:
react: '*'
dependencies:
@ -2777,24 +2858,24 @@ packages:
query-string: 7.1.3
react: 18.2.0
react-is: 16.13.1
use-latest-callback: 0.1.9(react@18.2.0)
use-latest-callback: 0.2.1(react@18.2.0)
dev: false
/@react-navigation/elements@1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==, tarball: https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.30.tgz}
/@react-navigation/elements@1.3.31(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-bUzP4Awlljx5RKEExw8WYtif8EuQni2glDaieYROKTnaxsu9kEIA515sXQgUDZU4Ob12VoL7+z70uO3qrlfXcQ==, tarball: https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.31.tgz}
peerDependencies:
'@react-navigation/native': ^6.0.0
react: '*'
react-native: '*'
react-native-safe-area-context: '>= 3.0.0'
dependencies:
'@react-navigation/native': 6.1.17(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.18(react-native@0.74.3)(react@18.2.0)
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-native-safe-area-context: 4.10.1(react-native@0.74.3)(react@18.2.0)
dev: false
/@react-navigation/native-stack@6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0):
/@react-navigation/native-stack@6.9.26(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-++dueQ+FDj2XkZ902DVrK79ub1vp19nSdAZWxKRgd6+Bc0Niiesua6rMCqymYOVaYh+dagwkA9r00bpt/U5WLw==, tarball: https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.26.tgz}
peerDependencies:
'@react-navigation/native': ^6.0.0
@ -2803,27 +2884,27 @@ packages:
react-native-safe-area-context: '>= 3.0.0'
react-native-screens: '>= 3.0.0'
dependencies:
'@react-navigation/elements': 1.3.30(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.17(react-native@0.74.3)(react@18.2.0)
'@react-navigation/elements': 1.3.31(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.18(react-native@0.74.3)(react@18.2.0)
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-native-safe-area-context: 4.10.1(react-native@0.74.3)(react@18.2.0)
react-native-screens: 3.31.1(react-native@0.74.3)(react@18.2.0)
warn-once: 0.1.1
dev: false
/@react-navigation/native@6.1.17(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-mer3OvfwWOHoUSMJyLa4vnBH3zpFmCwuzrBPlw7feXklurr/ZDiLjLxUScOot6jLRMz/67GyilEYMmP99LL0RQ==, tarball: https://registry.npmjs.org/@react-navigation/native/-/native-6.1.17.tgz}
/@react-navigation/native@6.1.18(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-mIT9MiL/vMm4eirLcmw2h6h/Nm5FICtnYSdohq4vTLA2FF/6PNhByM7s8ffqoVfE5L0uAa6Xda1B7oddolUiGg==, tarball: https://registry.npmjs.org/@react-navigation/native/-/native-6.1.18.tgz}
peerDependencies:
react: '*'
react-native: '*'
dependencies:
'@react-navigation/core': 6.4.16(react@18.2.0)
'@react-navigation/core': 6.4.17(react@18.2.0)
escape-string-regexp: 4.0.0
fast-deep-equal: 3.1.3
nanoid: 3.3.7
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/@react-navigation/routers@6.1.9:
@ -2832,8 +2913,8 @@ packages:
nanoid: 3.3.7
dev: false
/@reduxjs/toolkit@2.2.6(react-redux@9.1.2)(react@18.2.0):
resolution: {integrity: sha512-kH0r495c5z1t0g796eDQAkYbEQ3a1OLYN9o8jQQVZyKyw367pfRGS+qZLkHYvFHiUUdafpoSlQ2QYObIApjPWA==, tarball: https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.6.tgz}
/@reduxjs/toolkit@2.2.7(react-redux@9.1.2)(react@18.2.0):
resolution: {integrity: sha512-faI3cZbSdFb8yv9dhDTmGwclW0vk0z5o1cia+kf7gCbaCwHI5e+7tP57mJUv22pNcNbeA62GSrPpfrUfdXcQ6g==, tarball: https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.7.tgz}
peerDependencies:
react: ^16.9.0 || ^17.0.0 || ^18
react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0
@ -2851,8 +2932,8 @@ packages:
reselect: 5.1.1
dev: false
/@remix-run/node@2.10.2(typescript@5.3.3):
resolution: {integrity: sha512-Ni4yMQCf6avK2fz91/luuS3wnHzqtbxsdc19es1gAWEnUKfeCwqq5v1R0kzNwrXyh5NYCRhxaegzVH3tGsdYFg==, tarball: https://registry.npmjs.org/@remix-run/node/-/node-2.10.2.tgz}
/@remix-run/node@2.11.2(typescript@5.3.3):
resolution: {integrity: sha512-gRNFM61EOYWNmYgf+pvBt6MrirWlkDz1G6RQsJNowtRqbYoy05AdDe5HiHGF5w8ZMAZVeXnZiwbL0Nt7ykYBCA==, tarball: https://registry.npmjs.org/@remix-run/node/-/node-2.11.2.tgz}
engines: {node: '>=18.0.0'}
peerDependencies:
typescript: ^5.1.0
@ -2860,23 +2941,23 @@ packages:
typescript:
optional: true
dependencies:
'@remix-run/server-runtime': 2.10.2(typescript@5.3.3)
'@remix-run/server-runtime': 2.11.2(typescript@5.3.3)
'@remix-run/web-fetch': 4.4.2
'@web3-storage/multipart-parser': 1.0.0
cookie-signature: 1.2.1
source-map-support: 0.5.21
stream-slice: 0.1.2
typescript: 5.3.3
undici: 6.19.2
undici: 6.19.7
dev: false
/@remix-run/router@1.17.1:
resolution: {integrity: sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==, tarball: https://registry.npmjs.org/@remix-run/router/-/router-1.17.1.tgz}
/@remix-run/router@1.19.1:
resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==, tarball: https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz}
engines: {node: '>=14.0.0'}
dev: false
/@remix-run/server-runtime@2.10.2(typescript@5.3.3):
resolution: {integrity: sha512-c6CzKw4WBP4FkPnz63ua7g73/P1v34Uho2C44SZZf8IOVCGzEM9liLq6slDivn0m/UbyQnXThdXmsVjFcobmZg==, tarball: https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.10.2.tgz}
/@remix-run/server-runtime@2.11.2(typescript@5.3.3):
resolution: {integrity: sha512-abG6ENj0X3eHqDxqO2thWM2NSEiPnqyt58z1BbiQCv+t8g0Zuqd5QHbB4wzdNvfS0vKhg+jJiigcJneAc4sZzw==, tarball: https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.11.2.tgz}
engines: {node: '>=18.0.0'}
peerDependencies:
typescript: ^5.1.0
@ -2884,13 +2965,13 @@ packages:
typescript:
optional: true
dependencies:
'@remix-run/router': 1.17.1
'@remix-run/router': 1.19.1
'@types/cookie': 0.6.0
'@web3-storage/multipart-parser': 1.0.0
cookie: 0.6.0
set-cookie-parser: 2.6.0
set-cookie-parser: 2.7.0
source-map: 0.7.4
turbo-stream: 2.2.0
turbo-stream: 2.3.0
typescript: 5.3.3
dev: false
@ -2937,7 +3018,7 @@ packages:
resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==, tarball: https://registry.npmjs.org/@rnx-kit/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz}
engines: {node: '>=14.15'}
dependencies:
'@types/node': 18.19.39
'@types/node': 18.19.44
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@ -2977,8 +3058,162 @@ packages:
dependencies:
'@sinonjs/commons': 3.0.1
/@testing-library/react-native@12.5.1(jest@29.7.0)(react-native@0.74.3)(react-test-renderer@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-PApr3f6DmSJF/EIiWYZfcBzuy6w7fK8TW4a6KfQHTeAcfZ6lADtRO7R0QM5WI+b7tJ33JvIPgzCg1MiuRz4v0g==, tarball: https://registry.npmjs.org/@testing-library/react-native/-/react-native-12.5.1.tgz}
/@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.25.2):
resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.25.2):
resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==, tarball: https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz}
engines: {node: '>=12'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
dev: true
/@svgr/babel-preset@8.1.0(@babel/core@7.25.2):
resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==, tarball: https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.25.2
'@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.25.2)
'@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.25.2)
'@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.25.2)
dev: true
/@svgr/core@8.1.0(typescript@5.3.3):
resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==, tarball: https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz}
engines: {node: '>=14'}
dependencies:
'@babel/core': 7.25.2
'@svgr/babel-preset': 8.1.0(@babel/core@7.25.2)
camelcase: 6.3.0
cosmiconfig: 8.3.6(typescript@5.3.3)
snake-case: 3.0.4
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/@svgr/hast-util-to-babel-ast@8.0.0:
resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==, tarball: https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz}
engines: {node: '>=14'}
dependencies:
'@babel/types': 7.25.2
entities: 4.5.0
dev: true
/@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==, tarball: https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@svgr/core': '*'
dependencies:
'@babel/core': 7.25.2
'@svgr/babel-preset': 8.1.0(@babel/core@7.25.2)
'@svgr/core': 8.1.0(typescript@5.3.3)
'@svgr/hast-util-to-babel-ast': 8.0.0
svg-parser: 2.0.4
transitivePeerDependencies:
- supports-color
dev: true
/@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.3.3):
resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==, tarball: https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz}
engines: {node: '>=14'}
peerDependencies:
'@svgr/core': '*'
dependencies:
'@svgr/core': 8.1.0(typescript@5.3.3)
cosmiconfig: 8.3.6(typescript@5.3.3)
deepmerge: 4.3.1
svgo: 3.3.2
transitivePeerDependencies:
- typescript
dev: true
/@testing-library/dom@10.4.0:
resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==, tarball: https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/code-frame': 7.24.7
'@babel/runtime': 7.25.0
'@types/aria-query': 5.0.4
aria-query: 5.3.0
chalk: 4.1.2
dom-accessibility-api: 0.5.16
lz-string: 1.5.0
pretty-format: 27.5.1
dev: true
/@testing-library/react-native@12.5.3(jest@29.7.0)(react-native@0.74.3)(react-test-renderer@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-wSaplzjx51OVJI7MU8Mi2kxwfW0dYETn3jqSVHxtIXmEnmlWXk6f69sEaBbzdp6iDzhFB5E6rDWveqf5V/ap2A==, tarball: https://registry.npmjs.org/@testing-library/react-native/-/react-native-12.5.3.tgz}
peerDependencies:
jest: '>=28.0.0'
react: '>=16.8.0'
@ -2992,21 +3227,39 @@ packages:
jest-matcher-utils: 29.7.0
pretty-format: 29.7.0
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-test-renderer: 18.2.0(react@18.2.0)
redent: 3.0.0
dev: true
/@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0):
resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==, tarball: https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz}
engines: {node: '>=12', npm: '>=6'}
peerDependencies:
'@testing-library/dom': '>=7.21.4'
dependencies:
'@testing-library/dom': 10.4.0
dev: true
/@tootallnate/once@2.0.0:
resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==, tarball: https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz}
engines: {node: '>= 10'}
dev: true
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, tarball: https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz}
engines: {node: '>=10.13.0'}
dev: true
/@types/aria-query@5.0.4:
resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==, tarball: https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz}
dev: true
/@types/babel__core@7.20.5:
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, tarball: https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz}
dependencies:
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
'@babel/parser': 7.25.3
'@babel/types': 7.25.2
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.20.6
@ -3015,20 +3268,20 @@ packages:
/@types/babel__generator@7.6.8:
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==, tarball: https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
dev: true
/@types/babel__template@7.4.4:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, tarball: https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz}
dependencies:
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
'@babel/parser': 7.25.3
'@babel/types': 7.25.2
dev: true
/@types/babel__traverse@7.20.6:
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==, tarball: https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz}
dependencies:
'@babel/types': 7.24.7
'@babel/types': 7.25.2
dev: true
/@types/cookie@0.6.0:
@ -3038,7 +3291,7 @@ packages:
/@types/graceful-fs@4.1.9:
resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, tarball: https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz}
dependencies:
'@types/node': 20.14.9
'@types/node': 22.3.0
dev: true
/@types/hammerjs@2.0.45:
@ -3074,7 +3327,7 @@ packages:
/@types/jsdom@20.0.1:
resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==, tarball: https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz}
dependencies:
'@types/node': 20.14.9
'@types/node': 22.3.0
'@types/tough-cookie': 4.0.5
parse5: 7.1.2
dev: true
@ -3086,17 +3339,17 @@ packages:
/@types/node-forge@1.3.11:
resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==, tarball: https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz}
dependencies:
'@types/node': 20.14.9
'@types/node': 22.3.0
/@types/node@18.19.39:
resolution: {integrity: sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ==, tarball: https://registry.npmjs.org/@types/node/-/node-18.19.39.tgz}
/@types/node@18.19.44:
resolution: {integrity: sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==, tarball: https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz}
dependencies:
undici-types: 5.26.5
/@types/node@20.14.9:
resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==, tarball: https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz}
/@types/node@22.3.0:
resolution: {integrity: sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==, tarball: https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz}
dependencies:
undici-types: 5.26.5
undici-types: 6.18.2
/@types/prop-types@15.7.12:
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==, tarball: https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz}
@ -3137,8 +3390,8 @@ packages:
dependencies:
'@types/yargs-parser': 21.0.3
/@types/yargs@17.0.32:
resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz}
/@types/yargs@17.0.33:
resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, tarball: https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz}
dependencies:
'@types/yargs-parser': 21.0.3
@ -3221,7 +3474,7 @@ packages:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, tarball: https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz}
engines: {node: '>= 6.0.0'}
dependencies:
debug: 4.3.5
debug: 4.3.6
transitivePeerDependencies:
- supports-color
@ -3233,7 +3486,7 @@ packages:
indent-string: 4.0.0
dev: false
/ajv-formats@2.1.1(ajv@8.16.0):
/ajv-formats@2.1.1(ajv@8.17.1):
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, tarball: https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz}
peerDependencies:
ajv: ^8.0.0
@ -3241,25 +3494,25 @@ packages:
ajv:
optional: true
dependencies:
ajv: 8.16.0
ajv: 8.17.1
dev: false
/ajv-keywords@5.1.0(ajv@8.16.0):
/ajv-keywords@5.1.0(ajv@8.17.1):
resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, tarball: https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz}
peerDependencies:
ajv: ^8.8.2
dependencies:
ajv: 8.16.0
ajv: 8.17.1
fast-deep-equal: 3.1.3
dev: false
/ajv@8.16.0:
resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz}
/ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, tarball: https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz}
dependencies:
fast-deep-equal: 3.1.3
fast-uri: 3.0.1
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
uri-js: 4.4.1
dev: false
/anser@1.4.10:
@ -3344,7 +3597,12 @@ packages:
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz}
dev: false
/aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, tarball: https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz}
dependencies:
dequal: 2.0.3
dev: true
/array-buffer-byte-length@1.0.1:
resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==, tarball: https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz}
@ -3404,24 +3662,24 @@ packages:
possible-typed-array-names: 1.0.0
dev: false
/babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
/babel-core@7.0.0-bridge.0(@babel/core@7.25.2):
resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==, tarball: https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
/babel-jest@29.7.0(@babel/core@7.24.7):
/babel-jest@29.7.0(@babel/core@7.25.2):
resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, tarball: https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.8.0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@jest/transform': 29.7.0
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
babel-preset-jest: 29.6.3(@babel/core@7.24.7)
babel-preset-jest: 29.6.3(@babel/core@7.25.2)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@ -3433,7 +3691,7 @@ packages:
resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, tarball: https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz}
engines: {node: '>=8'}
dependencies:
'@babel/helper-plugin-utils': 7.24.7
'@babel/helper-plugin-utils': 7.24.8
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.3
istanbul-lib-instrument: 5.2.1
@ -3446,50 +3704,50 @@ packages:
resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, tarball: https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/template': 7.24.7
'@babel/types': 7.24.7
'@babel/template': 7.25.0
'@babel/types': 7.25.2
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.6
dev: true
/babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7):
/babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2):
resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/compat-data': 7.24.7
'@babel/core': 7.24.7
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
'@babel/compat-data': 7.25.2
'@babel/core': 7.25.2
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
semver: 6.3.1
transitivePeerDependencies:
- supports-color
/babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7):
resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz}
/babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2):
resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
core-js-compat: 3.37.1
'@babel/core': 7.25.2
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
core-js-compat: 3.38.0
transitivePeerDependencies:
- supports-color
/babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7):
/babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2):
resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==, tarball: https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz}
peerDependencies:
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2)
transitivePeerDependencies:
- supports-color
/babel-plugin-react-compiler@0.0.0-experimental-696af53-20240625:
resolution: {integrity: sha512-OUDKms8qmcm5bX0D+sJWC1YcKcd7AZ2aJ7eY6gkR+Xr7PDfkXLbqAld4Qs9B0ntjVbUMEtW/PjlQrxDtY4raHg==, tarball: https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-696af53-20240625.tgz}
/babel-plugin-react-compiler@0.0.0-experimental-5f79ba2-20240815:
resolution: {integrity: sha512-9/pMj32tpmzWyjnPmRqQ25L9MJkffqVPEsoboHaSKypnaB/Xo8haWk54T5WhRf/WfE0kB36w2Nm/STkAHGXJWw==, tarball: https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-0.0.0-experimental-5f79ba2-20240815.tgz}
dependencies:
'@babel/generator': 7.2.0
'@babel/types': 7.24.7
'@babel/types': 7.25.2
chalk: 4.1.2
invariant: 2.2.4
pretty-format: 24.9.0
@ -3499,44 +3757,47 @@ packages:
/babel-plugin-react-native-web@0.19.12:
resolution: {integrity: sha512-eYZ4+P6jNcB37lObWIg0pUbi7+3PKoU1Oie2j0C8UF3cXyXoR74tO2NBjI/FORb2LJyItJZEAmjU5pSaJYEL1w==, tarball: https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.19.12.tgz}
/babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.24.7):
/babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.25.2):
resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==, tarball: https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz}
dependencies:
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2)
transitivePeerDependencies:
- '@babel/core'
/babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.7):
resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, tarball: https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz}
/babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2):
resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==, tarball: https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
'@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2)
'@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2)
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2)
'@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2)
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2)
dev: true
/babel-preset-expo@11.0.12(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
resolution: {integrity: sha512-hUuKdzSo8+H1oXQvKvlHRMHTxl+nN6YhFGlKiIxPa0E+gYfMEp8FnnStc/2Hwmip5rgJzQs6KF63KKRUc75xAg==, tarball: https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.12.tgz}
/babel-preset-expo@11.0.14(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-4BVYR0Sc2sSNxYTiE/OLSnPiOp+weFNy8eV+hX3aD6YAIbBnw+VubKRWqJV/sOJauzOLz0SgYAYyFciYMqizRA==, tarball: https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.14.tgz}
dependencies:
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7)
'@babel/preset-react': 7.24.7(@babel/core@7.24.7)
'@babel/preset-typescript': 7.24.7(@babel/core@7.24.7)
'@react-native/babel-preset': 0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
babel-plugin-react-compiler: 0.0.0-experimental-696af53-20240625
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2)
'@babel/preset-react': 7.24.7(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
'@react-native/babel-preset': 0.74.87(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
babel-plugin-react-compiler: 0.0.0-experimental-5f79ba2-20240815
babel-plugin-react-native-web: 0.19.12
react-refresh: 0.14.2
transitivePeerDependencies:
@ -3544,15 +3805,15 @@ packages:
- '@babel/preset-env'
- supports-color
/babel-preset-jest@29.6.3(@babel/core@7.24.7):
/babel-preset-jest@29.6.3(@babel/core@7.25.2):
resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, tarball: https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7)
babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2)
dev: true
/balanced-match@1.0.2:
@ -3579,6 +3840,9 @@ packages:
inherits: 2.0.4
readable-stream: 3.6.2
/boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz}
/bplist-creator@0.0.7:
resolution: {integrity: sha512-xp/tcaV3T5PCiaY04mXga7o/TE+t95gqeLmADeBI1CvZtdWTbgBt3uLpvh4UWtenKeBhCV6oVxGk38yZr2uYEA==, tarball: https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.7.tgz}
dependencies:
@ -3621,15 +3885,15 @@ packages:
dependencies:
fill-range: 7.1.1
/browserslist@4.23.1:
resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==, tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz}
/browserslist@4.23.3:
resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==, tarball: https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
caniuse-lite: 1.0.30001640
electron-to-chromium: 1.4.816
node-releases: 2.0.14
update-browserslist-db: 1.1.0(browserslist@4.23.1)
caniuse-lite: 1.0.30001651
electron-to-chromium: 1.5.8
node-releases: 2.0.18
update-browserslist-db: 1.1.0(browserslist@4.23.3)
/bser@2.1.1:
resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, tarball: https://registry.npmjs.org/bser/-/bser-2.1.1.tgz}
@ -3668,14 +3932,14 @@ packages:
resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, tarball: https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz}
engines: {node: '>= 0.8'}
/cacache@18.0.3:
resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==, tarball: https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz}
/cacache@18.0.4:
resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==, tarball: https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz}
engines: {node: ^16.14.0 || >=18.0.0}
dependencies:
'@npmcli/fs': 3.1.1
fs-minipass: 3.0.3
glob: 10.4.2
lru-cache: 10.3.0
glob: 10.4.5
lru-cache: 10.4.3
minipass: 7.1.2
minipass-collect: 2.0.1
minipass-flush: 1.0.5
@ -3726,8 +3990,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, tarball: https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz}
engines: {node: '>=10'}
/caniuse-lite@1.0.30001640:
resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz}
/caniuse-lite@1.0.30001651:
resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz}
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz}
@ -3776,7 +4040,7 @@ packages:
engines: {node: '>=12.13.0'}
hasBin: true
dependencies:
'@types/node': 20.14.9
'@types/node': 22.3.0
escape-string-regexp: 4.0.0
is-wsl: 2.2.0
lighthouse-logger: 1.4.2
@ -3915,7 +4179,6 @@ packages:
/commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, tarball: https://registry.npmjs.org/commander/-/commander-7.2.0.tgz}
engines: {node: '>= 10'}
dev: false
/commander@9.5.0:
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==, tarball: https://registry.npmjs.org/commander/-/commander-9.5.0.tgz}
@ -3932,7 +4195,7 @@ packages:
resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, tarball: https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz}
engines: {node: '>= 0.6'}
dependencies:
mime-db: 1.52.0
mime-db: 1.53.0
/compression@1.7.4:
resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, tarball: https://registry.npmjs.org/compression/-/compression-1.7.4.tgz}
@ -3979,10 +4242,10 @@ packages:
engines: {node: '>= 0.6'}
dev: false
/core-js-compat@3.37.1:
resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==, tarball: https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz}
/core-js-compat@3.38.0:
resolution: {integrity: sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==, tarball: https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz}
dependencies:
browserslist: 4.23.1
browserslist: 4.23.3
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, tarball: https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz}
@ -3996,6 +4259,22 @@ packages:
js-yaml: 3.14.1
parse-json: 4.0.0
/cosmiconfig@8.3.6(typescript@5.3.3):
resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, tarball: https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz}
engines: {node: '>=14'}
peerDependencies:
typescript: '>=4.9.5'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
import-fresh: 3.3.0
js-yaml: 4.1.0
parse-json: 5.2.0
path-type: 4.0.0
typescript: 5.3.3
dev: true
/create-jest@29.7.0:
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==, tarball: https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -4005,7 +4284,7 @@ packages:
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
jest-config: 29.7.0(@types/node@20.14.9)
jest-config: 29.7.0(@types/node@22.3.0)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@ -4062,6 +4341,49 @@ packages:
hyphenate-style-name: 1.1.0
dev: false
/css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz}
dependencies:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
domutils: 3.1.0
nth-check: 2.1.1
/css-tree@1.1.3:
resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, tarball: https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz}
engines: {node: '>=8.0.0'}
dependencies:
mdn-data: 2.0.14
source-map: 0.6.1
/css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, tarball: https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
mdn-data: 2.0.28
source-map-js: 1.2.0
dev: true
/css-tree@2.3.1:
resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, tarball: https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.0
dev: true
/css-what@6.1.0:
resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz}
engines: {node: '>= 6'}
/csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, tarball: https://registry.npmjs.org/csso/-/csso-5.0.5.tgz}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
dependencies:
css-tree: 2.2.1
dev: true
/cssom@0.3.8:
resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==, tarball: https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz}
dev: true
@ -4125,8 +4447,8 @@ packages:
is-data-view: 1.0.1
dev: false
/dayjs@1.11.11:
resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==, tarball: https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz}
/dayjs@1.11.12:
resolution: {integrity: sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==, tarball: https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz}
/debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz}
@ -4149,8 +4471,8 @@ packages:
ms: 2.1.3
dev: false
/debug@4.3.5:
resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.5.tgz}
/debug@4.3.6:
resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==, tarball: https://registry.npmjs.org/debug/-/debug-4.3.6.tgz}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
@ -4252,6 +4574,11 @@ packages:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==, tarball: https://registry.npmjs.org/depd/-/depd-2.0.0.tgz}
engines: {node: '>= 0.8'}
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, tarball: https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz}
engines: {node: '>=6'}
dev: true
/destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==, tarball: https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@ -4279,6 +4606,20 @@ packages:
path-type: 4.0.0
dev: false
/dom-accessibility-api@0.5.16:
resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, tarball: https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz}
dev: true
/dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz}
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz}
/domexception@4.0.0:
resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==, tarball: https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz}
engines: {node: '>=12'}
@ -4287,6 +4628,26 @@ packages:
webidl-conversions: 7.0.0
dev: true
/domhandler@5.0.3:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz}
engines: {node: '>= 4'}
dependencies:
domelementtype: 2.3.0
/domutils@3.1.0:
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, tarball: https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz}
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
domhandler: 5.0.3
/dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, tarball: https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz}
dependencies:
no-case: 3.0.4
tslib: 2.6.3
dev: true
/dotenv-expand@11.0.6:
resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==, tarball: https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz}
engines: {node: '>=12'}
@ -4306,8 +4667,8 @@ packages:
/ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz}
/electron-to-chromium@1.4.816:
resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==, tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz}
/electron-to-chromium@1.5.8:
resolution: {integrity: sha512-4Nx0gP2tPNBLTrFxBMHpkQbtn2hidPVr/+/FTtcCiBYTucqc70zRyVZiOLj17Ui3wTO7SQ1/N+hkHYzJjBzt6A==, tarball: https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.8.tgz}
/emittery@0.13.1:
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, tarball: https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz}
@ -4334,7 +4695,6 @@ packages:
/entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz}
engines: {node: '>=0.12'}
dev: true
/env-editor@0.4.2:
resolution: {integrity: sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==, tarball: https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz}
@ -4556,73 +4916,81 @@ packages:
jest-util: 29.7.0
dev: true
/expo-asset@10.0.10(expo@51.0.18):
/expo-asset@10.0.10(expo@51.0.28):
resolution: {integrity: sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==, tarball: https://registry.npmjs.org/expo-asset/-/expo-asset-10.0.10.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo-constants: 16.0.2(expo@51.0.18)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
expo-constants: 16.0.2(expo@51.0.28)
invariant: 2.2.4
md5-file: 3.2.3
transitivePeerDependencies:
- supports-color
dev: false
/expo-constants@16.0.2(expo@51.0.18):
/expo-constants@16.0.2(expo@51.0.28):
resolution: {integrity: sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==, tarball: https://registry.npmjs.org/expo-constants/-/expo-constants-16.0.2.tgz}
peerDependencies:
expo: '*'
dependencies:
'@expo/config': 9.0.2
'@expo/config': 9.0.3
'@expo/env': 0.3.0
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
transitivePeerDependencies:
- supports-color
dev: false
/expo-doctor@1.6.1:
resolution: {integrity: sha512-n80Bzs3iEnkOSIKrxJTNE2QwTpmWx2aJQpDVymlfK4Ur11ocuirUZy7IfsPbs9PGGXvxE4bIH3SGq3QghRNM4Q==, tarball: https://registry.npmjs.org/expo-doctor/-/expo-doctor-1.6.1.tgz}
/expo-doctor@1.9.0:
resolution: {integrity: sha512-mCkOqkQS2s55p4pKWPWtiwe15ZBUYOPuKrBSJzZieey5cjsc2msrCW8W8nfNz/rWx89usEQtCYFPzJtifZX+sw==, tarball: https://registry.npmjs.org/expo-doctor/-/expo-doctor-1.9.0.tgz}
hasBin: true
dev: false
/expo-file-system@17.0.1(expo@51.0.18):
/expo-file-system@17.0.1(expo@51.0.28):
resolution: {integrity: sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==, tarball: https://registry.npmjs.org/expo-file-system/-/expo-file-system-17.0.1.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
dev: false
/expo-font@12.0.7(expo@51.0.18):
resolution: {integrity: sha512-rbSdpjtT/A3M+u9xchR9tdD+5VGSxptUis7ngX5zfAVp3O5atOcPNSA82Jeo15HkrQE+w/upfFBOvi56lsGdsQ==, tarball: https://registry.npmjs.org/expo-font/-/expo-font-12.0.7.tgz}
/expo-font@12.0.9(expo@51.0.28):
resolution: {integrity: sha512-seTCyf0tbgkAnp3ZI9ZfK9QVtURQUgFnuj+GuJ5TSnN0XsOtVe1s2RxTvmMgkfuvfkzcjJ69gyRpsZS1cC8hjw==, tarball: https://registry.npmjs.org/expo-font/-/expo-font-12.0.9.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
fontfaceobserver: 2.3.0
dev: false
/expo-keep-awake@13.0.2(expo@51.0.18):
/expo-keep-awake@13.0.2(expo@51.0.28):
resolution: {integrity: sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==, tarball: https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-13.0.2.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
dev: false
/expo-linking@6.3.1(expo@51.0.18):
/expo-linear-gradient@13.0.2(expo@51.0.28):
resolution: {integrity: sha512-EDcILUjRKu4P1rtWcwciN6CSyGtH7Bq4ll3oTRV7h3h8oSzSilH1g6z7kTAMlacPBKvMnkkWOGzW6KtgMKEiTg==, tarball: https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-13.0.2.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
dev: false
/expo-linking@6.3.1(expo@51.0.28):
resolution: {integrity: sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==, tarball: https://registry.npmjs.org/expo-linking/-/expo-linking-6.3.1.tgz}
dependencies:
expo-constants: 16.0.2(expo@51.0.18)
expo-constants: 16.0.2(expo@51.0.28)
invariant: 2.2.4
transitivePeerDependencies:
- expo
- supports-color
dev: false
/expo-modules-autolinking@1.11.1:
resolution: {integrity: sha512-2dy3lTz76adOl7QUvbreMCrXyzUiF8lygI7iFJLjgIQIVH+43KnFWE5zBumpPbkiaq0f0uaFpN9U0RGQbnKiMw==, tarball: https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.1.tgz}
/expo-modules-autolinking@1.11.2:
resolution: {integrity: sha512-fdcaNO8ucHA3yLNY52ZUENBcAG7KEx8QyMmnVNavO1JVBGRMZG8JyVcbrhYQDtVtpxkbai5YzwvLutINvbDZDQ==, tarball: https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.11.2.tgz}
hasBin: true
dependencies:
chalk: 4.1.2
@ -4630,16 +4998,18 @@ packages:
fast-glob: 3.3.2
find-up: 5.0.0
fs-extra: 9.1.0
require-from-string: 2.0.2
resolve-from: 5.0.0
dev: false
/expo-modules-core@1.12.18:
resolution: {integrity: sha512-YhIOJsMNjPvP0tmTbC1MRlxl5q7l21uQQDr1rlXEWHNmI2AEMW0gfr2wXrlB2Tz/oOIx8YqREsj3i0VsYXEaCA==, tarball: https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.18.tgz}
/expo-modules-core@1.12.21:
resolution: {integrity: sha512-UQxRljqPcowS1+bECW9tnuVGfvWL18GAKPiKMnu9sZwJssAN9FU/JhED50DJzdzICLR0hL17FZAgV4rbMG3IWQ==, tarball: https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.21.tgz}
dependencies:
invariant: 2.2.4
dev: false
/expo-router@3.5.17(expo-constants@16.0.2)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.1)(expo-status-bar@1.12.1)(expo@51.0.18)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)(typescript@5.3.3):
resolution: {integrity: sha512-UGSx5vSZISgnhNYsbhbpFuYivS/tFQVoYqsWsFNdU1Cob+KdR2N1C68nDk9S9T6N66JdeCI7fDiEpvR2H1+Amw==, tarball: https://registry.npmjs.org/expo-router/-/expo-router-3.5.17.tgz}
/expo-router@3.5.23(expo-constants@16.0.2)(expo-linking@6.3.1)(expo-modules-autolinking@1.11.2)(expo-status-bar@1.12.1)(expo@51.0.28)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)(typescript@5.3.3):
resolution: {integrity: sha512-Re2kYcxov67hWrcjuu0+3ovsLxYn79PuX6hgtYN20MgigY5ttX79KOIBEVGTO3F3y9dxSrGHyy5Z14BcO+usGQ==, tarball: https://registry.npmjs.org/expo-router/-/expo-router-3.5.23.tgz}
peerDependencies:
'@react-navigation/drawer': ^6.5.8
'@testing-library/jest-native': '*'
@ -4658,19 +5028,19 @@ packages:
react-native-reanimated:
optional: true
dependencies:
'@expo/metro-runtime': 3.2.1(react-native@0.74.3)
'@expo/server': 0.4.3(typescript@5.3.3)
'@expo/metro-runtime': 3.2.3(react-native@0.74.3)
'@expo/server': 0.4.4(typescript@5.3.3)
'@radix-ui/react-slot': 1.0.1(react@18.2.0)
'@react-navigation/bottom-tabs': 6.5.20(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.17(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native-stack': 6.9.26(@react-navigation/native@6.1.17)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo-constants: 16.0.2(expo@51.0.18)
expo-linking: 6.3.1(expo@51.0.18)
expo-splash-screen: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.18)
'@react-navigation/bottom-tabs': 6.5.20(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native': 6.1.18(react-native@0.74.3)(react@18.2.0)
'@react-navigation/native-stack': 6.9.26(@react-navigation/native@6.1.18)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.3)(react@18.2.0)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
expo-constants: 16.0.2(expo@51.0.28)
expo-linking: 6.3.1(expo@51.0.28)
expo-splash-screen: 0.27.5(expo-modules-autolinking@1.11.2)(expo@51.0.28)
expo-status-bar: 1.12.1
react-native-helmet-async: 2.0.4(react@18.2.0)
react-native-reanimated: 3.10.1(@babel/core@7.24.7)(react-native@0.74.3)(react@18.2.0)
react-native-reanimated: 3.10.1(@babel/core@7.25.2)(react-native@0.74.3)(react@18.2.0)
react-native-safe-area-context: 4.10.1(react-native@0.74.3)(react@18.2.0)
react-native-screens: 3.31.1(react-native@0.74.3)(react@18.2.0)
schema-utils: 4.2.0
@ -4683,13 +5053,13 @@ packages:
- typescript
dev: false
/expo-splash-screen@0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.18):
/expo-splash-screen@0.27.5(expo-modules-autolinking@1.11.2)(expo@51.0.28):
resolution: {integrity: sha512-9rdZuLkFCfgJBxrheUsOEOIW6Rp+9NVlpSE0hgXQwbTCLTncf00IHSE8/L2NbFyeDLNjof1yZBppaV7tXHRUzA==, tarball: https://registry.npmjs.org/expo-splash-screen/-/expo-splash-screen-0.27.5.tgz}
peerDependencies:
expo: '*'
dependencies:
'@expo/prebuild-config': 7.0.6(expo-modules-autolinking@1.11.1)
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
'@expo/prebuild-config': 7.0.6(expo-modules-autolinking@1.11.2)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
transitivePeerDependencies:
- encoding
- expo-modules-autolinking
@ -4700,43 +5070,43 @@ packages:
resolution: {integrity: sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==, tarball: https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.12.1.tgz}
dev: false
/expo-system-ui@3.0.7(expo@51.0.18):
/expo-system-ui@3.0.7(expo@51.0.28):
resolution: {integrity: sha512-KAs72F5JKhdIfPR9ZNVlRubTPK9uUuevPy5oYEp12xNEzSQcjZKvypH5NpwJuNWkXzrp3n3vZ+3pXsudA7J3KA==, tarball: https://registry.npmjs.org/expo-system-ui/-/expo-system-ui-3.0.7.tgz}
peerDependencies:
expo: '*'
dependencies:
'@react-native/normalize-colors': 0.74.85
debug: 4.3.5
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
debug: 4.3.6
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
transitivePeerDependencies:
- supports-color
dev: false
/expo-web-browser@13.0.3(expo@51.0.18):
/expo-web-browser@13.0.3(expo@51.0.28):
resolution: {integrity: sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==, tarball: https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-13.0.3.tgz}
peerDependencies:
expo: '*'
dependencies:
expo: 51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo: 51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
dev: false
/expo@51.0.18(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
resolution: {integrity: sha512-QiaNq2XXjfDk009qbyBFd/5CNikcQ0ZucGlOB3ebNf3z9Q9wrfL1A9E4NqPh6sgm0VG486AYT9mNKwAfcOVCIA==, tarball: https://registry.npmjs.org/expo/-/expo-51.0.18.tgz}
/expo@51.0.28(@babel/core@7.25.2)(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-R+0tSV0Zf5R+DxN4W3mLFlVvYVpiJ+dtYrMmBedIRw0A54we50QRM1jS0Gq2Bdzg2JtainSEApdQXUC6r9j/BA==, tarball: https://registry.npmjs.org/expo/-/expo-51.0.28.tgz}
hasBin: true
dependencies:
'@babel/runtime': 7.24.7
'@expo/cli': 0.18.22(expo-modules-autolinking@1.11.1)
'@expo/config': 9.0.1
'@expo/config-plugins': 8.0.7
'@expo/metro-config': 0.18.8
'@babel/runtime': 7.25.0
'@expo/cli': 0.18.29(expo-modules-autolinking@1.11.2)
'@expo/config': 9.0.3
'@expo/config-plugins': 8.0.8
'@expo/metro-config': 0.18.11
'@expo/vector-icons': 14.0.2
babel-preset-expo: 11.0.12(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
expo-asset: 10.0.10(expo@51.0.18)
expo-file-system: 17.0.1(expo@51.0.18)
expo-font: 12.0.7(expo@51.0.18)
expo-keep-awake: 13.0.2(expo@51.0.18)
expo-modules-autolinking: 1.11.1
expo-modules-core: 1.12.18
babel-preset-expo: 11.0.14(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
expo-asset: 10.0.10(expo@51.0.28)
expo-file-system: 17.0.1(expo@51.0.28)
expo-font: 12.0.9(expo@51.0.28)
expo-keep-awake: 13.0.2(expo@51.0.28)
expo-modules-autolinking: 1.11.2
expo-modules-core: 1.12.21
fbemitter: 3.0.0
whatwg-url-without-unicode: 8.0.0-3
transitivePeerDependencies:
@ -4748,6 +5118,9 @@ packages:
- utf-8-validate
dev: false
/exponential-backoff@3.1.1:
resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==, tarball: https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz}
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz}
dev: false
@ -4770,8 +5143,12 @@ packages:
resolution: {integrity: sha512-8dbd3XWoKCTms18ize6JmQF1SFnnfj5s0B7rRry22EofgMu7B6LKHVh+XfFqFGsqnbH54xgeO83PzpKI+ODhlg==, tarball: https://registry.npmjs.org/fast-loops/-/fast-loops-1.1.4.tgz}
dev: false
/fast-xml-parser@4.4.0:
resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==, tarball: https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz}
/fast-uri@3.0.1:
resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==, tarball: https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz}
dev: false
/fast-xml-parser@4.4.1:
resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==, tarball: https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz}
hasBin: true
dependencies:
strnum: 1.0.5
@ -4878,8 +5255,8 @@ packages:
/flow-enums-runtime@0.0.6:
resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==, tarball: https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz}
/flow-parser@0.239.0:
resolution: {integrity: sha512-U5dgOsS6cg4FGNzzTD/zHRDM4bliL6laUgD0LUCSMzI2zEfKMnRV2/wgDv8nKmO2Z1R8ri5pE1YoldmrSV7FOw==, tarball: https://registry.npmjs.org/flow-parser/-/flow-parser-0.239.0.tgz}
/flow-parser@0.243.0:
resolution: {integrity: sha512-HCDBfH+kZcY5etWYeAqatjW78gkIryzb9XixRsA8lGI1uyYc7aCpElkkO4H+KIpoyQMiY0VAZPI4cyac3wQe8w==, tarball: https://registry.npmjs.org/flow-parser/-/flow-parser-0.243.0.tgz}
engines: {node: '>=0.4.0'}
/fontfaceobserver@2.3.0:
@ -4892,8 +5269,8 @@ packages:
is-callable: 1.2.7
dev: false
/foreground-child@3.2.1:
resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==, tarball: https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz}
/foreground-child@3.3.0:
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==, tarball: https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz}
engines: {node: '>=14'}
dependencies:
cross-spawn: 7.0.3
@ -5055,32 +5432,18 @@ packages:
dependencies:
is-glob: 4.0.3
/glob@10.4.2:
resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==, tarball: https://registry.npmjs.org/glob/-/glob-10.4.2.tgz}
engines: {node: '>=16 || 14 >=14.18'}
/glob@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, tarball: https://registry.npmjs.org/glob/-/glob-10.4.5.tgz}
hasBin: true
dependencies:
foreground-child: 3.2.1
jackspeak: 3.4.0
foreground-child: 3.3.0
jackspeak: 3.4.3
minimatch: 9.0.5
minipass: 7.1.2
package-json-from-dist: 1.0.0
path-scurry: 1.11.1
dev: false
/glob@6.0.4:
resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==, tarball: https://registry.npmjs.org/glob/-/glob-6.0.4.tgz}
deprecated: Glob versions prior to v9 are no longer supported
requiresBuild: true
dependencies:
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
dev: false
optional: true
/glob@7.1.6:
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==, tarball: https://registry.npmjs.org/glob/-/glob-7.1.6.tgz}
deprecated: Glob versions prior to v9 are no longer supported
@ -5122,7 +5485,7 @@ packages:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.2
ignore: 5.3.0
ignore: 5.3.2
merge2: 1.4.1
slash: 3.0.0
dev: false
@ -5143,7 +5506,7 @@ packages:
graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
dependencies:
graphql: 15.8.0
tslib: 2.6.2
tslib: 2.6.3
dev: false
/graphql@15.8.0:
@ -5195,18 +5558,18 @@ packages:
/hermes-estree@0.19.1:
resolution: {integrity: sha512-daLGV3Q2MKk8w4evNMKwS8zBE/rcpA800nu1Q5kM08IKijoSnPe9Uo1iIxzPKRkn95IxxsgBMPeYHt3VG4ej2g==, tarball: https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.19.1.tgz}
/hermes-estree@0.20.1:
resolution: {integrity: sha512-SQpZK4BzR48kuOg0v4pb3EAGNclzIlqMj3Opu/mu7bbAoFw6oig6cEt/RAi0zTFW/iW6Iz9X9ggGuZTAZ/yZHg==, tarball: https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.20.1.tgz}
/hermes-estree@0.23.0:
resolution: {integrity: sha512-Rkp0PNLGpORw4ktsttkVbpYJbrYKS3hAnkxu8D9nvQi6LvSbuPa+tYw/t2u3Gjc35lYd/k95YkjqyTcN4zspag==, tarball: https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.23.0.tgz}
/hermes-parser@0.19.1:
resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==, tarball: https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.19.1.tgz}
dependencies:
hermes-estree: 0.19.1
/hermes-parser@0.20.1:
resolution: {integrity: sha512-BL5P83cwCogI8D7rrDCgsFY0tdYUtmFP9XaXtl2IQjC+2Xo+4okjfXintlTxcIwl4qeGddEl28Z11kbVIw0aNA==, tarball: https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.20.1.tgz}
/hermes-parser@0.23.0:
resolution: {integrity: sha512-xLwM4ylfHGwrm+2qXfO1JT/fnqEDGSnpS/9hQ4VLtqTexSviu2ZpBgz07U8jVtndq67qdb/ps0qvaWDZ3fkTyg==, tarball: https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.23.0.tgz}
dependencies:
hermes-estree: 0.20.1
hermes-estree: 0.23.0
/hermes-profile-transformer@0.0.6:
resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==, tarball: https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz}
@ -5254,7 +5617,7 @@ packages:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
debug: 4.3.5
debug: 4.3.6
transitivePeerDependencies:
- supports-color
dev: true
@ -5264,7 +5627,7 @@ packages:
engines: {node: '>= 6'}
dependencies:
agent-base: 6.0.2
debug: 4.3.5
debug: 4.3.6
transitivePeerDependencies:
- supports-color
@ -5286,8 +5649,8 @@ packages:
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, tarball: https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz}
/ignore@5.3.0:
resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz}
/ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, tarball: https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz}
engines: {node: '>= 4'}
dev: false
@ -5309,8 +5672,16 @@ packages:
caller-path: 2.0.0
resolve-from: 3.0.0
/import-local@3.1.0:
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==, tarball: https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz}
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, tarball: https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz}
engines: {node: '>=6'}
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
dev: true
/import-local@3.2.0:
resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==, tarball: https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz}
engines: {node: '>=8'}
hasBin: true
dependencies:
@ -5425,8 +5796,8 @@ packages:
engines: {node: '>= 0.4'}
dev: false
/is-core-module@2.14.0:
resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==, tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz}
/is-core-module@2.15.0:
resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==, tarball: https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz}
engines: {node: '>= 0.4'}
dependencies:
hasown: 2.0.2
@ -5643,8 +6014,8 @@ packages:
resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, tarball: https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz}
engines: {node: '>=8'}
dependencies:
'@babel/core': 7.24.7
'@babel/parser': 7.24.7
'@babel/core': 7.25.2
'@babel/parser': 7.25.3
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@ -5656,11 +6027,11 @@ packages:
resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==, tarball: https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz}
engines: {node: '>=10'}
dependencies:
'@babel/core': 7.24.7
'@babel/parser': 7.24.7
'@babel/core': 7.25.2
'@babel/parser': 7.25.3
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.6.2
semver: 7.6.3
transitivePeerDependencies:
- supports-color
dev: true
@ -5678,7 +6049,7 @@ packages:
resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==, tarball: https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz}
engines: {node: '>=10'}
dependencies:
debug: 4.3.5
debug: 4.3.6
istanbul-lib-coverage: 3.2.2
source-map: 0.6.1
transitivePeerDependencies:
@ -5693,9 +6064,8 @@ packages:
istanbul-lib-report: 3.0.1
dev: true
/jackspeak@3.4.0:
resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==, tarball: https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz}
engines: {node: '>=14'}
/jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, tarball: https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz}
dependencies:
'@isaacs/cliui': 8.0.2
optionalDependencies:
@ -5719,7 +6089,7 @@ packages:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.3
@ -5756,8 +6126,8 @@ packages:
chalk: 4.1.2
create-jest: 29.7.0
exit: 0.1.2
import-local: 3.1.0
jest-config: 29.7.0(@types/node@20.14.9)
import-local: 3.2.0
jest-config: 29.7.0(@types/node@22.3.0)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@ -5768,7 +6138,7 @@ packages:
- ts-node
dev: true
/jest-config@29.7.0(@types/node@20.14.9):
/jest-config@29.7.0(@types/node@22.3.0):
resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==, tarball: https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies:
@ -5780,11 +6150,11 @@ packages:
ts-node:
optional: true
dependencies:
'@babel/core': 7.24.7
'@babel/core': 7.25.2
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
babel-jest: 29.7.0(@babel/core@7.24.7)
'@types/node': 22.3.0
babel-jest: 29.7.0(@babel/core@7.25.2)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
@ -5849,7 +6219,7 @@ packages:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/jsdom': 20.0.1
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-mock: 29.7.0
jest-util: 29.7.0
jsdom: 20.0.3
@ -5866,18 +6236,18 @@ packages:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-mock: 29.7.0
jest-util: 29.7.0
/jest-expo@51.0.3(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0):
/jest-expo@51.0.3(@babel/core@7.25.2)(jest@29.7.0)(react@18.2.0):
resolution: {integrity: sha512-r49OuS9X2S/dH+lSfNmarBS2L/tgvBhzOgKHYFyDJWo+Bb5uVs7Rg/GZal/RD/NDkKFJuByGAaW1F6zHYnjZnw==, tarball: https://registry.npmjs.org/jest-expo/-/jest-expo-51.0.3.tgz}
hasBin: true
dependencies:
'@expo/config': 9.0.2
'@expo/config': 9.0.3
'@expo/json-file': 8.3.3
'@jest/create-cache-key-function': 29.7.0
babel-jest: 29.7.0(@babel/core@7.24.7)
babel-jest: 29.7.0(@babel/core@7.25.2)
find-up: 5.0.0
jest-environment-jsdom: 29.7.0
jest-watch-select-projects: 2.0.0
@ -5906,7 +6276,7 @@ packages:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
'@types/node': 20.14.9
'@types/node': 22.3.0
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@ -5956,7 +6326,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-util: 29.7.0
/jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@ -6010,7 +6380,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@ -6041,7 +6411,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
cjs-module-lexer: 1.3.1
collect-v8-coverage: 1.0.2
@ -6064,15 +6434,15 @@ packages:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==, tarball: https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/core': 7.24.7
'@babel/generator': 7.24.7
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/types': 7.24.7
'@babel/core': 7.25.2
'@babel/generator': 7.25.0
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
'@babel/types': 7.25.2
'@jest/expect-utils': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.7)
babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@ -6083,7 +6453,7 @@ packages:
jest-util: 29.7.0
natural-compare: 1.4.0
pretty-format: 29.7.0
semver: 7.6.2
semver: 7.6.3
transitivePeerDependencies:
- supports-color
dev: true
@ -6093,7 +6463,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@ -6140,7 +6510,7 @@ packages:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
'@types/node': 20.14.9
'@types/node': 22.3.0
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@ -6152,7 +6522,7 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, tarball: https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@types/node': 20.14.9
'@types/node': 22.3.0
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
@ -6169,7 +6539,7 @@ packages:
dependencies:
'@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
import-local: 3.2.0
jest-cli: 29.7.0
transitivePeerDependencies:
- '@types/node'
@ -6210,7 +6580,6 @@ packages:
hasBin: true
dependencies:
argparse: 2.0.1
dev: false
/jsc-android@250231.0.0:
resolution: {integrity: sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==, tarball: https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz}
@ -6218,25 +6587,25 @@ packages:
/jsc-safe-url@0.2.4:
resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==, tarball: https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz}
/jscodeshift@0.14.0(@babel/preset-env@7.24.7):
/jscodeshift@0.14.0(@babel/preset-env@7.25.3):
resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==, tarball: https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz}
hasBin: true
peerDependencies:
'@babel/preset-env': ^7.1.6
dependencies:
'@babel/core': 7.24.7
'@babel/parser': 7.24.7
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.24.7)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.24.7)
'@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.24.7)
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/preset-flow': 7.24.7(@babel/core@7.24.7)
'@babel/preset-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/register': 7.24.6(@babel/core@7.24.7)
babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/parser': 7.25.3
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.25.2)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.25.2)
'@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2)
'@babel/preset-env': 7.25.3(@babel/core@7.25.2)
'@babel/preset-flow': 7.24.7(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
'@babel/register': 7.24.6(@babel/core@7.25.2)
babel-core: 7.0.0-bridge.0(@babel/core@7.25.2)
chalk: 4.1.2
flow-parser: 0.239.0
flow-parser: 0.243.0
graceful-fs: 4.2.11
micromatch: 4.0.7
neo-async: 2.6.2
@ -6270,7 +6639,7 @@ packages:
http-proxy-agent: 5.0.0
https-proxy-agent: 5.0.1
is-potential-custom-element-name: 1.0.1
nwsapi: 2.2.10
nwsapi: 2.2.12
parse5: 7.1.2
saxes: 6.0.0
symbol-tree: 3.2.4
@ -6498,7 +6867,7 @@ packages:
hasBin: true
dependencies:
ansi-fragments: 0.2.1
dayjs: 1.11.11
dayjs: 1.11.12
yargs: 15.4.1
/loose-envify@1.4.0:
@ -6507,9 +6876,14 @@ packages:
dependencies:
js-tokens: 4.0.0
/lru-cache@10.3.0:
resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz}
engines: {node: 14 || >=16.14}
/lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, tarball: https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz}
dependencies:
tslib: 2.6.3
dev: true
/lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz}
dev: false
/lru-cache@5.1.1:
@ -6524,6 +6898,11 @@ packages:
yallist: 4.0.0
dev: false
/lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, tarball: https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz}
hasBin: true
dev: true
/make-dir@2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz}
engines: {node: '>=6'}
@ -6535,7 +6914,7 @@ packages:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz}
engines: {node: '>=10'}
dependencies:
semver: 7.6.2
semver: 7.6.3
dev: true
/makeerror@1.0.12:
@ -6574,6 +6953,17 @@ packages:
resolution: {integrity: sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==, tarball: https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz}
dev: false
/mdn-data@2.0.14:
resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, tarball: https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz}
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, tarball: https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz}
dev: true
/mdn-data@2.0.30:
resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, tarball: https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz}
dev: true
/memoize-one@5.2.1:
resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==, tarball: https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz}
@ -6599,58 +6989,65 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, tarball: https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz}
engines: {node: '>= 8'}
/metro-babel-transformer@0.80.9:
resolution: {integrity: sha512-d76BSm64KZam1nifRZlNJmtwIgAeZhZG3fi3K+EmPOlrR8rDtBxQHDSN3fSGeNB9CirdTyabTMQCkCup6BXFSQ==, tarball: https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.9.tgz}
/metro-babel-transformer@0.80.10:
resolution: {integrity: sha512-GXHueUzgzcazfzORDxDzWS9jVVRV6u+cR6TGvHOfGdfLzJCj7/D0PretLfyq+MwN20twHxLW+BUXkoaB8sCQBg==, tarball: https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/core': 7.24.7
hermes-parser: 0.20.1
'@babel/core': 7.25.2
flow-enums-runtime: 0.0.6
hermes-parser: 0.23.0
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
/metro-cache-key@0.80.9:
resolution: {integrity: sha512-hRcYGhEiWIdM87hU0fBlcGr+tHDEAT+7LYNCW89p5JhErFt/QaAkVx4fb5bW3YtXGv5BTV7AspWPERoIb99CXg==, tarball: https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.9.tgz}
engines: {node: '>=18'}
/metro-cache@0.80.9:
resolution: {integrity: sha512-ujEdSI43QwI+Dj2xuNax8LMo8UgKuXJEdxJkzGPU6iIx42nYa1byQ+aADv/iPh5sh5a//h5FopraW5voXSgm2w==, tarball: https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.9.tgz}
/metro-cache-key@0.80.10:
resolution: {integrity: sha512-57qBhO3zQfoU/hP4ZlLW5hVej2jVfBX6B4NcSfMj4LgDPL3YknWg80IJBxzQfjQY/m+fmMLmPy8aUMHzUp/guA==, tarball: https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
metro-core: 0.80.9
rimraf: 3.0.2
flow-enums-runtime: 0.0.6
/metro-config@0.80.9:
resolution: {integrity: sha512-28wW7CqS3eJrunRGnsibWldqgwRP9ywBEf7kg+uzUHkSFJNKPM1K3UNSngHmH0EZjomizqQA2Zi6/y6VdZMolg==, tarball: https://registry.npmjs.org/metro-config/-/metro-config-0.80.9.tgz}
/metro-cache@0.80.10:
resolution: {integrity: sha512-8CBtDJwMguIE5RvV3PU1QtxUG8oSSX54mIuAbRZmcQ0MYiOl9JdrMd4JCBvIyhiZLoSStph425SMyCSnjtJsdA==, tarball: https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
exponential-backoff: 3.1.1
flow-enums-runtime: 0.0.6
metro-core: 0.80.10
/metro-config@0.80.10:
resolution: {integrity: sha512-0GYAw0LkmGbmA81FepKQepL1KU/85Cyv7sAiWm6QWeV6AcVCpsKg6jGLqGHJ0LLPL60rWzA4TV1DQAlzdJAEtA==, tarball: https://registry.npmjs.org/metro-config/-/metro-config-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
connect: 3.7.0
cosmiconfig: 5.2.1
flow-enums-runtime: 0.0.6
jest-validate: 29.7.0
metro: 0.80.9
metro-cache: 0.80.9
metro-core: 0.80.9
metro-runtime: 0.80.9
metro: 0.80.10
metro-cache: 0.80.10
metro-core: 0.80.10
metro-runtime: 0.80.10
transitivePeerDependencies:
- bufferutil
- encoding
- supports-color
- utf-8-validate
/metro-core@0.80.9:
resolution: {integrity: sha512-tbltWQn+XTdULkGdzHIxlxk4SdnKxttvQQV3wpqqFbHDteR4gwCyTR2RyYJvxgU7HELfHtrVbqgqAdlPByUSbg==, tarball: https://registry.npmjs.org/metro-core/-/metro-core-0.80.9.tgz}
/metro-core@0.80.10:
resolution: {integrity: sha512-nwBB6HbpGlNsZMuzxVqxqGIOsn5F3JKpsp8PziS7Z4mV8a/jA1d44mVOgYmDa2q5WlH5iJfRIIhdz24XRNDlLA==, tarball: https://registry.npmjs.org/metro-core/-/metro-core-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
flow-enums-runtime: 0.0.6
lodash.throttle: 4.1.1
metro-resolver: 0.80.9
metro-resolver: 0.80.10
/metro-file-map@0.80.9:
resolution: {integrity: sha512-sBUjVtQMHagItJH/wGU9sn3k2u0nrCl0CdR4SFMO1tksXLKbkigyQx4cbpcyPVOAmGTVuy3jyvBlELaGCAhplQ==, tarball: https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.9.tgz}
/metro-file-map@0.80.10:
resolution: {integrity: sha512-ytsUq8coneaN7ZCVk1IogojcGhLIbzWyiI2dNmw2nnBgV/0A+M5WaTTgZ6dJEz3dzjObPryDnkqWPvIGLCPtiw==, tarball: https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
anymatch: 3.1.3
debug: 2.6.9
fb-watchman: 2.0.2
flow-enums-runtime: 0.0.6
graceful-fs: 4.2.11
invariant: 2.2.4
jest-worker: 29.7.0
@ -6663,44 +7060,50 @@ packages:
transitivePeerDependencies:
- supports-color
/metro-minify-terser@0.80.9:
resolution: {integrity: sha512-FEeCeFbkvvPuhjixZ1FYrXtO0araTpV6UbcnGgDUpH7s7eR5FG/PiJz3TsuuPP/HwCK19cZtQydcA2QrCw446A==, tarball: https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.9.tgz}
/metro-minify-terser@0.80.10:
resolution: {integrity: sha512-Xyv9pEYpOsAerrld7cSLIcnCCpv8ItwysOmTA+AKf1q4KyE9cxrH2O2SA0FzMCkPzwxzBWmXwHUr+A89BpEM6g==, tarball: https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
terser: 5.31.1
flow-enums-runtime: 0.0.6
terser: 5.31.6
/metro-resolver@0.80.9:
resolution: {integrity: sha512-wAPIjkN59BQN6gocVsAvvpZ1+LQkkqUaswlT++cJafE/e54GoVkMNCmrR4BsgQHr9DknZ5Um/nKueeN7kaEz9w==, tarball: https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.9.tgz}
engines: {node: '>=18'}
/metro-runtime@0.80.9:
resolution: {integrity: sha512-8PTVIgrVcyU+X/rVCy/9yxNlvXsBCk5JwwkbAm/Dm+Abo6NBGtNjWF0M1Xo/NWCb4phamNWcD7cHdR91HhbJvg==, tarball: https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.9.tgz}
/metro-resolver@0.80.10:
resolution: {integrity: sha512-EYC5CL7f+bSzrqdk1bylKqFNGabfiI5PDctxoPx70jFt89Jz+ThcOscENog8Jb4LEQFG6GkOYlwmPpsi7kx3QA==, tarball: https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/runtime': 7.24.7
flow-enums-runtime: 0.0.6
/metro-source-map@0.80.9:
resolution: {integrity: sha512-RMn+XS4VTJIwMPOUSj61xlxgBvPeY4G6s5uIn6kt6HB6A/k9ekhr65UkkDD7WzHYs3a9o869qU8tvOZvqeQzgw==, tarball: https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.9.tgz}
/metro-runtime@0.80.10:
resolution: {integrity: sha512-Xh0N589ZmSIgJYAM+oYwlzTXEHfASZac9TYPCNbvjNTn0EHKqpoJ/+Im5G3MZT4oZzYv4YnvzRtjqS5k0tK94A==, tarball: https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/runtime': 7.25.0
flow-enums-runtime: 0.0.6
/metro-source-map@0.80.10:
resolution: {integrity: sha512-EyZswqJW8Uukv/HcQr6K19vkMXW1nzHAZPWJSEyJFKIbgp708QfRZ6vnZGmrtFxeJEaFdNup4bGnu8/mIOYlyA==, tarball: https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
flow-enums-runtime: 0.0.6
invariant: 2.2.4
metro-symbolicate: 0.80.9
metro-symbolicate: 0.80.10
nullthrows: 1.1.1
ob1: 0.80.9
ob1: 0.80.10
source-map: 0.5.7
vlq: 1.0.1
transitivePeerDependencies:
- supports-color
/metro-symbolicate@0.80.9:
resolution: {integrity: sha512-Ykae12rdqSs98hg41RKEToojuIW85wNdmSe/eHUgMkzbvCFNVgcC0w3dKZEhSsqQOXapXRlLtHkaHLil0UD/EA==, tarball: https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.9.tgz}
/metro-symbolicate@0.80.10:
resolution: {integrity: sha512-qAoVUoSxpfZ2DwZV7IdnQGXCSsf2cAUExUcZyuCqGlY5kaWBb0mx2BL/xbMFDJ4wBp3sVvSBPtK/rt4J7a0xBA==, tarball: https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.10.tgz}
engines: {node: '>=18'}
hasBin: true
dependencies:
flow-enums-runtime: 0.0.6
invariant: 2.2.4
metro-source-map: 0.80.9
metro-source-map: 0.80.10
nullthrows: 1.1.1
source-map: 0.5.7
through2: 2.0.5
@ -6708,33 +7111,35 @@ packages:
transitivePeerDependencies:
- supports-color
/metro-transform-plugins@0.80.9:
resolution: {integrity: sha512-UlDk/uc8UdfLNJhPbF3tvwajyuuygBcyp+yBuS/q0z3QSuN/EbLllY3rK8OTD9n4h00qZ/qgxGv/lMFJkwP4vg==, tarball: https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.9.tgz}
/metro-transform-plugins@0.80.10:
resolution: {integrity: sha512-leAx9gtA+2MHLsCeWK6XTLBbv2fBnNFu/QiYhWzMq8HsOAP4u1xQAU0tSgPs8+1vYO34Plyn79xTLUtQCRSSUQ==, tarball: https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/core': 7.24.7
'@babel/generator': 7.24.7
'@babel/template': 7.24.7
'@babel/traverse': 7.24.7
'@babel/core': 7.25.2
'@babel/generator': 7.25.0
'@babel/template': 7.25.0
'@babel/traverse': 7.25.3
flow-enums-runtime: 0.0.6
nullthrows: 1.1.1
transitivePeerDependencies:
- supports-color
/metro-transform-worker@0.80.9:
resolution: {integrity: sha512-c/IrzMUVnI0hSVVit4TXzt3A1GiUltGVlzCmLJWxNrBGHGrJhvgePj38+GXl1Xf4Fd4vx6qLUkKMQ3ux73bFLQ==, tarball: https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.9.tgz}
/metro-transform-worker@0.80.10:
resolution: {integrity: sha512-zNfNLD8Rz99U+JdOTqtF2o7iTjcDMMYdVS90z6+81Tzd2D0lDWVpls7R1hadS6xwM+ymgXFQTjM6V6wFoZaC0g==, tarball: https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
'@babel/core': 7.24.7
'@babel/generator': 7.24.7
'@babel/parser': 7.24.7
'@babel/types': 7.24.7
metro: 0.80.9
metro-babel-transformer: 0.80.9
metro-cache: 0.80.9
metro-cache-key: 0.80.9
metro-minify-terser: 0.80.9
metro-source-map: 0.80.9
metro-transform-plugins: 0.80.9
'@babel/core': 7.25.2
'@babel/generator': 7.25.0
'@babel/parser': 7.25.3
'@babel/types': 7.25.2
flow-enums-runtime: 0.0.6
metro: 0.80.10
metro-babel-transformer: 0.80.10
metro-cache: 0.80.10
metro-cache-key: 0.80.10
metro-minify-terser: 0.80.10
metro-source-map: 0.80.10
metro-transform-plugins: 0.80.10
nullthrows: 1.1.1
transitivePeerDependencies:
- bufferutil
@ -6742,18 +7147,18 @@ packages:
- supports-color
- utf-8-validate
/metro@0.80.9:
resolution: {integrity: sha512-Bc57Xf3GO2Xe4UWQsBj/oW6YfLPABEu8jfDVDiNmJvoQW4CO34oDPuYKe4KlXzXhcuNsqOtSxpbjCRRVjhhREg==, tarball: https://registry.npmjs.org/metro/-/metro-0.80.9.tgz}
/metro@0.80.10:
resolution: {integrity: sha512-FDPi0X7wpafmDREXe1lgg3WzETxtXh6Kpq8+IwsG35R2tMyp2kFIqDdshdohuvDt1J/qDARcEPq7V/jElTb1kA==, tarball: https://registry.npmjs.org/metro/-/metro-0.80.10.tgz}
engines: {node: '>=18'}
hasBin: true
dependencies:
'@babel/code-frame': 7.24.7
'@babel/core': 7.24.7
'@babel/generator': 7.24.7
'@babel/parser': 7.24.7
'@babel/template': 7.24.7
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@babel/core': 7.25.2
'@babel/generator': 7.25.0
'@babel/parser': 7.25.3
'@babel/template': 7.25.0
'@babel/traverse': 7.25.3
'@babel/types': 7.25.2
accepts: 1.3.8
chalk: 4.1.2
ci-info: 2.0.0
@ -6761,29 +7166,29 @@ packages:
debug: 2.6.9
denodeify: 1.2.1
error-stack-parser: 2.1.4
flow-enums-runtime: 0.0.6
graceful-fs: 4.2.11
hermes-parser: 0.20.1
hermes-parser: 0.23.0
image-size: 1.1.1
invariant: 2.2.4
jest-worker: 29.7.0
jsc-safe-url: 0.2.4
lodash.throttle: 4.1.1
metro-babel-transformer: 0.80.9
metro-cache: 0.80.9
metro-cache-key: 0.80.9
metro-config: 0.80.9
metro-core: 0.80.9
metro-file-map: 0.80.9
metro-resolver: 0.80.9
metro-runtime: 0.80.9
metro-source-map: 0.80.9
metro-symbolicate: 0.80.9
metro-transform-plugins: 0.80.9
metro-transform-worker: 0.80.9
metro-babel-transformer: 0.80.10
metro-cache: 0.80.10
metro-cache-key: 0.80.10
metro-config: 0.80.10
metro-core: 0.80.10
metro-file-map: 0.80.10
metro-resolver: 0.80.10
metro-runtime: 0.80.10
metro-source-map: 0.80.10
metro-symbolicate: 0.80.10
metro-transform-plugins: 0.80.10
metro-transform-worker: 0.80.10
mime-types: 2.1.35
node-fetch: 2.7.0
nullthrows: 1.1.1
rimraf: 3.0.2
serialize-error: 2.1.0
source-map: 0.5.7
strip-ansi: 6.0.1
@ -6807,6 +7212,10 @@ packages:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz}
engines: {node: '>= 0.6'}
/mime-db@1.53.0:
resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz}
engines: {node: '>= 0.6'}
/mime-types@2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz}
engines: {node: '>= 0.6'}
@ -6923,17 +7332,6 @@ packages:
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz}
/mv@2.1.1:
resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==, tarball: https://registry.npmjs.org/mv/-/mv-2.1.1.tgz}
engines: {node: '>=0.8.0'}
requiresBuild: true
dependencies:
mkdirp: 0.5.6
ncp: 2.0.0
rimraf: 2.4.5
dev: false
optional: true
/mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, tarball: https://registry.npmjs.org/mz/-/mz-2.7.0.tgz}
dependencies:
@ -6951,13 +7349,6 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz}
dev: true
/ncp@2.0.0:
resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==, tarball: https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz}
hasBin: true
requiresBuild: true
dev: false
optional: true
/negotiator@0.6.3:
resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz}
engines: {node: '>= 0.6'}
@ -6973,6 +7364,13 @@ packages:
resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, tarball: https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz}
dev: false
/no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, tarball: https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz}
dependencies:
lower-case: 2.0.2
tslib: 2.6.3
dev: true
/nocache@3.0.4:
resolution: {integrity: sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==, tarball: https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz}
engines: {node: '>=12.0.0'}
@ -6986,18 +7384,6 @@ packages:
dependencies:
minimatch: 3.1.2
/node-fetch@2.6.7:
resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies:
whatwg-url: 5.0.0
dev: false
/node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz}
engines: {node: 4.x || >=6.0.0}
@ -7016,8 +7402,8 @@ packages:
/node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, tarball: https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz}
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==, tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz}
/node-releases@2.0.18:
resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==, tarball: https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz}
/node-stream-zip@1.15.0:
resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==, tarball: https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz}
@ -7049,16 +7435,23 @@ packages:
dependencies:
path-key: 3.1.1
/nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz}
dependencies:
boolbase: 1.0.0
/nullthrows@1.1.1:
resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==, tarball: https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz}
/nwsapi@2.2.10:
resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==, tarball: https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz}
/nwsapi@2.2.12:
resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==, tarball: https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz}
dev: true
/ob1@0.80.9:
resolution: {integrity: sha512-v9yOxowkZbxWhKOaaTyLjIm1aLy4ebMNcSn4NYJKOAI/Qv+SkfEfszpLr2GIxsccmb2Y2HA9qtsqiIJ80ucpVA==, tarball: https://registry.npmjs.org/ob1/-/ob1-0.80.9.tgz}
/ob1@0.80.10:
resolution: {integrity: sha512-dJHyB0S6JkMorUSfSGcYGkkg9kmq3qDUu3ygZUKIfkr47XOPuG35r2Sk6tbwtHXbdKIXmcMvM8DF2CwgdyaHfQ==, tarball: https://registry.npmjs.org/ob1/-/ob1-0.80.10.tgz}
engines: {node: '>=18'}
dependencies:
flow-enums-runtime: 0.0.6
/object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz}
@ -7234,6 +7627,13 @@ packages:
resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==, tarball: https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz}
dev: false
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, tarball: https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
dev: true
/parse-json@4.0.0:
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz}
engines: {node: '>=4'}
@ -7275,6 +7675,10 @@ packages:
cross-spawn: 7.0.3
dev: false
/path-dirname@1.0.2:
resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==, tarball: https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz}
dev: true
/path-exists@3.0.0:
resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==, tarball: https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz}
engines: {node: '>=4'}
@ -7303,14 +7707,13 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, tarball: https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz}
engines: {node: '>=16 || 14 >=14.18'}
dependencies:
lru-cache: 10.3.0
lru-cache: 10.4.3
minipass: 7.1.2
dev: false
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz}
engines: {node: '>=8'}
dev: false
/picocolors@1.0.1:
resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz}
@ -7367,8 +7770,8 @@ packages:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz}
dev: false
/postcss@8.4.39:
resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz}
/postcss@8.4.41:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
@ -7399,6 +7802,15 @@ packages:
ansi-styles: 4.3.0
react-is: 17.0.2
/pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
ansi-regex: 5.0.1
ansi-styles: 5.2.0
react-is: 17.0.2
dev: true
/pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -7556,11 +7968,11 @@ packages:
dependencies:
lodash: 4.17.21
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/react-native-gesture-handler@2.16.2(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==, tarball: https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz}
/react-native-gesture-handler@2.18.1(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-WF2fxQ5kTaxHghlkBM4YxO86SyGWVwrSNgJ1E8z/ZtL2xD5B3bg5agvuVFfOzvceC114yq71s6E9vKPz94ZxRw==, tarball: https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.18.1.tgz}
peerDependencies:
react: '*'
react-native: '*'
@ -7568,10 +7980,9 @@ packages:
'@egjs/hammerjs': 2.0.17
hoist-non-react-statics: 3.3.2
invariant: 2.2.4
lodash: 4.17.21
prop-types: 15.8.1
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/react-native-helmet-async@2.0.4(react@18.2.0):
@ -7585,24 +7996,24 @@ packages:
shallowequal: 1.1.0
dev: false
/react-native-reanimated@3.10.1(@babel/core@7.24.7)(react-native@0.74.3)(react@18.2.0):
/react-native-reanimated@3.10.1(@babel/core@7.25.2)(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==, tarball: https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz}
peerDependencies:
'@babel/core': ^7.0.0-0
react: '*'
react-native: '*'
dependencies:
'@babel/core': 7.24.7
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.24.7)
'@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.24.7)
'@babel/preset-typescript': 7.24.7(@babel/core@7.24.7)
'@babel/core': 7.25.2
'@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2)
'@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2)
'@babel/preset-typescript': 7.24.7(@babel/core@7.25.2)
convert-source-map: 2.0.0
invariant: 2.2.4
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
transitivePeerDependencies:
- supports-color
dev: false
@ -7614,7 +8025,7 @@ packages:
react-native: '*'
dependencies:
react: 18.2.0
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
dev: false
/react-native-screens@3.31.1(react-native@0.74.3)(react@18.2.0):
@ -7625,7 +8036,7 @@ packages:
dependencies:
react: 18.2.0
react-freeze: 1.0.4(react@18.2.0)
react-native: 0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
warn-once: 0.1.1
dev: false
@ -7633,6 +8044,35 @@ packages:
resolution: {integrity: sha512-t4se17kALFcPb9wMbxig5dS1BE3pWRC6HPuFlM0J2Y6yhB1GsLqboy6an6R9rML8pRuGIJIxL29cbwEvPQwKxQ==, tarball: https://registry.npmjs.org/react-native-select-dropdown/-/react-native-select-dropdown-4.0.1.tgz}
dev: false
/react-native-svg-transformer@1.5.0(react-native-svg@15.5.0)(react-native@0.74.3)(typescript@5.3.3):
resolution: {integrity: sha512-RG5fSWJT7mjCQYocgYFUo1KYPLOoypPVG5LQab+pZZO7m4ciGaQIe0mhok3W4R5jLQsEXKo0u+aQGkZV/bZG7w==, tarball: https://registry.npmjs.org/react-native-svg-transformer/-/react-native-svg-transformer-1.5.0.tgz}
peerDependencies:
react-native: '>=0.59.0'
react-native-svg: '>=12.0.0'
dependencies:
'@svgr/core': 8.1.0(typescript@5.3.3)
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0)
'@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.3.3)
path-dirname: 1.0.2
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
react-native-svg: 15.5.0(react-native@0.74.3)(react@18.2.0)
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/react-native-svg@15.5.0(react-native@0.74.3)(react@18.2.0):
resolution: {integrity: sha512-/DUPfmSf3eXt59WjG8hlRKVPzqVjM7duG9vJH6UYAJesj3NtYcyFsO5sYpSkovlOwagk84PibcVb92bBwMSmng==, tarball: https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.5.0.tgz}
peerDependencies:
react: '*'
react-native: '*'
dependencies:
css-select: 5.1.0
css-tree: 1.1.3
react: 18.2.0
react-native: 0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0)
warn-once: 0.1.1
/react-native-uuid@2.0.2:
resolution: {integrity: sha512-5ypj/hV58P+6VREdjkW0EudSibsH3WdqDERoHKnD9syFWjF+NfRWWrJb2sa3LIwI5zpzMvUiabs+DX40WHpEMw==, tarball: https://registry.npmjs.org/react-native-uuid/-/react-native-uuid-2.0.2.tgz}
engines: {node: '>=10.0.0', npm: '>=6.0.0'}
@ -7644,8 +8084,8 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
dependencies:
'@babel/runtime': 7.24.7
'@react-native/normalize-colors': 0.74.85
'@babel/runtime': 7.25.0
'@react-native/normalize-colors': 0.74.87
fbjs: 3.0.5
inline-style-prefixer: 6.0.4
memoize-one: 6.0.0
@ -7658,7 +8098,7 @@ packages:
- encoding
dev: false
/react-native@0.74.3(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0):
/react-native@0.74.3(@babel/core@7.25.2)(@babel/preset-env@7.25.3)(@types/react@18.2.79)(react@18.2.0):
resolution: {integrity: sha512-UFutCC6WEw6HkxlcpQ2BemKqi0JkwrgDchYB5Svi8Sp4Xwt4HA6LGEjNQgZ+3KM44bjyFRpofQym0uh0jACGng==, tarball: https://registry.npmjs.org/react-native/-/react-native-0.74.3.tgz}
engines: {node: '>=18'}
hasBin: true
@ -7674,8 +8114,8 @@ packages:
'@react-native-community/cli-platform-android': 13.6.9
'@react-native-community/cli-platform-ios': 13.6.9
'@react-native/assets-registry': 0.74.85
'@react-native/codegen': 0.74.85(@babel/preset-env@7.24.7)
'@react-native/community-cli-plugin': 0.74.85(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
'@react-native/codegen': 0.74.85(@babel/preset-env@7.25.3)
'@react-native/community-cli-plugin': 0.74.85(@babel/core@7.25.2)(@babel/preset-env@7.25.3)
'@react-native/gradle-plugin': 0.74.85
'@react-native/js-polyfills': 0.74.85
'@react-native/normalize-colors': 0.74.85
@ -7692,8 +8132,8 @@ packages:
jest-environment-node: 29.7.0
jsc-android: 250231.0.0
memoize-one: 5.2.1
metro-runtime: 0.80.9
metro-source-map: 0.80.9
metro-runtime: 0.80.10
metro-source-map: 0.80.10
mkdirp: 0.5.6
nullthrows: 1.1.1
pretty-format: 26.6.2
@ -7804,6 +8244,19 @@ packages:
strip-indent: 3.0.0
dev: true
/redux-persist@6.0.0(react@18.2.0)(redux@5.0.1):
resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==, tarball: https://registry.npmjs.org/redux-persist/-/redux-persist-6.0.0.tgz}
peerDependencies:
react: '>=16'
redux: '>4.0.0'
peerDependenciesMeta:
react:
optional: true
dependencies:
react: 18.2.0
redux: 5.0.1
dev: false
/redux-remember@5.1.0(redux@5.0.1):
resolution: {integrity: sha512-Z6/S/brpwflOsGpX8Az93eujJ5fytMcaefxDfx0iib5d0DkL804zlw/Fhh/4HzZ5nXsP67j1zPUeDNWO1rhfvA==, tarball: https://registry.npmjs.org/redux-remember/-/redux-remember-5.1.0.tgz}
peerDependencies:
@ -7842,7 +8295,7 @@ packages:
/regenerator-transform@0.15.2:
resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, tarball: https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz}
dependencies:
'@babel/runtime': 7.24.7
'@babel/runtime': 7.25.0
/regexp.prototype.flags@1.5.2:
resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==, tarball: https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz}
@ -7914,6 +8367,11 @@ packages:
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz}
engines: {node: '>=4'}
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz}
engines: {node: '>=4'}
dev: true
/resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, tarball: https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz}
engines: {node: '>=8'}
@ -7926,7 +8384,7 @@ packages:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, tarball: https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz}
hasBin: true
dependencies:
is-core-module: 2.14.0
is-core-module: 2.15.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
@ -7955,16 +8413,6 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, tarball: https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
/rimraf@2.4.5:
resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
requiresBuild: true
dependencies:
glob: 6.0.4
dev: false
optional: true
/rimraf@2.6.3:
resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz}
deprecated: Rimraf versions prior to v4 are no longer supported
@ -7972,14 +8420,6 @@ packages:
dependencies:
glob: 7.2.3
/rimraf@2.7.1:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
dependencies:
glob: 7.2.3
dev: false
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, tarball: https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz}
deprecated: Rimraf versions prior to v4 are no longer supported
@ -8008,12 +8448,6 @@ packages:
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz}
/safe-json-stringify@1.2.0:
resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==, tarball: https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz}
requiresBuild: true
dev: false
optional: true
/safe-regex-test@1.0.3:
resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==, tarball: https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz}
engines: {node: '>= 0.4'}
@ -8052,9 +8486,9 @@ packages:
engines: {node: '>= 12.13.0'}
dependencies:
'@types/json-schema': 7.0.15
ajv: 8.16.0
ajv-formats: 2.1.1(ajv@8.16.0)
ajv-keywords: 5.1.0(ajv@8.16.0)
ajv: 8.17.1
ajv-formats: 2.1.1(ajv@8.17.1)
ajv-keywords: 5.1.0(ajv@8.17.1)
dev: false
/selfsigned@2.4.1:
@ -8072,8 +8506,8 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, tarball: https://registry.npmjs.org/semver/-/semver-6.3.1.tgz}
hasBin: true
/semver@7.6.2:
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==, tarball: https://registry.npmjs.org/semver/-/semver-7.6.2.tgz}
/semver@7.6.3:
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, tarball: https://registry.npmjs.org/semver/-/semver-7.6.3.tgz}
engines: {node: '>=10'}
hasBin: true
@ -8115,8 +8549,8 @@ packages:
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==, tarball: https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz}
/set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==, tarball: https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz}
/set-cookie-parser@2.7.0:
resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==, tarball: https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.0.tgz}
dev: false
/set-function-length@1.2.2:
@ -8238,10 +8672,16 @@ packages:
resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==, tarball: https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz}
engines: {node: '>=8.0.0'}
/snake-case@3.0.4:
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==, tarball: https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz}
dependencies:
dot-case: 3.0.4
tslib: 2.6.3
dev: true
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz}
engines: {node: '>=0.10.0'}
dev: false
/source-map-support@0.5.13:
resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==, tarball: https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz}
@ -8535,6 +8975,24 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, tarball: https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz}
engines: {node: '>= 0.4'}
/svg-parser@2.0.4:
resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, tarball: https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz}
dev: true
/svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==, tarball: https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
'@trysound/sax': 0.2.0
commander: 7.2.0
css-select: 5.1.0
css-tree: 2.3.1
css-what: 6.1.0
csso: 5.0.5
picocolors: 1.0.1
dev: true
/symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, tarball: https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz}
dev: true
@ -8594,8 +9052,8 @@ packages:
supports-hyperlinks: 2.3.0
dev: false
/terser@5.31.1:
resolution: {integrity: sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==, tarball: https://registry.npmjs.org/terser/-/terser-5.31.1.tgz}
/terser@5.31.6:
resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==, tarball: https://registry.npmjs.org/terser/-/terser-5.31.6.tgz}
engines: {node: '>=10'}
hasBin: true
dependencies:
@ -8701,15 +9159,11 @@ packages:
/ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, tarball: https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz}
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz}
dev: false
/tslib@2.6.3:
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz}
/turbo-stream@2.2.0:
resolution: {integrity: sha512-FKFg7A0To1VU4CH9YmSMON5QphK0BXjSoiC7D9yMh+mEEbXLUP9qJ4hEt1qcjKtzncs1OpcnjZO8NgrlVbZH+g==, tarball: https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.2.0.tgz}
/turbo-stream@2.3.0:
resolution: {integrity: sha512-PhEr9mdexoVv+rJkQ3c8TjrN3DUghX37GNJkSMksoPR4KrXIPnM2MnqRt07sViIqX9IdlhrgtTSyjoVOASq6cg==, tarball: https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.3.0.tgz}
dev: false
/type-detect@4.0.8:
@ -8811,8 +9265,11 @@ packages:
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz}
/undici@6.19.2:
resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==, tarball: https://registry.npmjs.org/undici/-/undici-6.19.2.tgz}
/undici-types@6.18.2:
resolution: {integrity: sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz}
/undici@6.19.7:
resolution: {integrity: sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==, tarball: https://registry.npmjs.org/undici/-/undici-6.19.7.tgz}
engines: {node: '>=18.17'}
dev: false
@ -8886,22 +9343,16 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, tarball: https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz}
engines: {node: '>= 0.8'}
/update-browserslist-db@1.1.0(browserslist@4.23.1):
/update-browserslist-db@1.1.0(browserslist@4.23.3):
resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==, tarball: https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
browserslist: 4.23.1
browserslist: 4.23.3
escalade: 3.1.2
picocolors: 1.0.1
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, tarball: https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz}
dependencies:
punycode: 2.3.1
dev: false
/url-join@4.0.0:
resolution: {integrity: sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==, tarball: https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz}
dev: false
@ -8913,8 +9364,8 @@ packages:
requires-port: 1.0.0
dev: true
/use-latest-callback@0.1.9(react@18.2.0):
resolution: {integrity: sha512-CL/29uS74AwreI/f2oz2hLTW7ZqVeV5+gxFeGudzQrgkCytrHw33G4KbnQOrRlAEzzAFXi7dDLMC9zhWcVpzmw==, tarball: https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.9.tgz}
/use-latest-callback@0.2.1(react@18.2.0):
resolution: {integrity: sha512-QWlq8Is8BGWBf883QOEQP5HWYX/kMI+JTbJ5rdtvJLmXTIh9XoHIO3PQcmQl8BU44VKxow1kbQUHa6mQSMALDQ==, tarball: https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.2.1.tgz}
peerDependencies:
react: '>=16.8'
dependencies:
@ -8995,7 +9446,6 @@ packages:
/warn-once@0.1.1:
resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==, tarball: https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz}
dev: false
/wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, tarball: https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz}
@ -9241,8 +9691,8 @@ packages:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, tarball: https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz}
dev: false
/yaml@2.4.5:
resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==, tarball: https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz}
/yaml@2.5.0:
resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==, tarball: https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz}
engines: {node: '>= 14'}
hasBin: true

54
svg/icon-carpet-roll.svg Normal file
View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="142.37779mm"
height="154.51445mm"
viewBox="0 0 142.37779 154.51445"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icon-carpet-roll.svg"
inkscape:export-filename="../assets/images/icons/carpet-roll-64.png"
inkscape:export-xdpi="11.417511"
inkscape:export-ydpi="11.417511"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#585858"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.79909512"
inkscape:cx="427.98409"
inkscape:cy="198.34935"
inkscape:window-width="1920"
inkscape:window-height="1008"
inkscape:window-x="0"
inkscape:window-y="681"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-16.165914,9.5264309)">
<path
id="path1159"
style="color:#000000;fill:#000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:5;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
sodipodi:type="inkscape:offset"
inkscape:radius="0.33110365"
inkscape:original="M 85.214844 -6.9941406 C 70.013101 -6.494485 55.139955 -0.43163169 43.707031 9.5605469 C 30.013867 21.362005 20.944785 38.446198 19.085938 56.449219 C 17.358707 72.332698 21.014781 88.716233 29.230469 102.41016 C 39.520614 119.81061 56.638281 132.98252 76.03125 138.63672 C 82.65448 140.58173 89.540529 141.77025 96.458984 141.68555 C 115.61209 141.94239 134.76485 142.20153 153.91797 142.45703 C 154.55818 134.40231 155.19894 126.34763 155.83984 118.29297 C 135.18432 118.00696 114.52684 117.78015 93.873047 117.42578 C 80.647337 116.41488 67.916649 110.28207 58.582031 100.88867 C 52.070874 94.381035 47.193434 86.30892 44.728516 77.402344 C 42.589935 69.786839 42.32538 61.636547 44.011719 53.955078 C 46.999506 40.237159 56.336432 28.015139 68.902344 21.708984 C 76.179541 18.017237 84.56116 16.49232 92.609375 17.550781 C 105.47803 19.123751 117.29397 27.652918 122.69922 39.457031 C 124.2433 42.820885 125.26799 46.602101 125.57422 50.355469 C 126.08314 55.844903 125.04871 61.62513 122.51172 66.595703 C 118.69587 74.236827 111.48288 80.366569 102.99414 81.986328 C 98.380931 82.881417 93.437488 82.363391 89.1875 80.232422 C 83.668056 77.562868 79.16371 72.357272 78.208984 66.197266 C 77.642576 62.560594 78.60807 58.687652 80.996094 55.859375 C 80.898514 58.890704 81.095836 62.010499 82.367188 64.810547 C 84.05204 68.882567 87.592589 72.214241 91.904297 73.302734 C 95.777353 74.339207 99.867688 73.625621 103.61328 72.421875 C 106.30071 71.528147 108.63458 69.786802 110.41992 67.605469 C 114.58333 62.715455 116.25928 55.924687 115.11328 49.630859 C 113.74274 41.428115 107.89047 34.34961 100.46484 30.791016 C 92.86163 27.075438 83.717791 27.076984 75.933594 30.257812 C 64.775062 34.759192 56.518994 45.396663 54.443359 57.191406 C 52.491012 67.446627 54.957367 78.397692 60.941406 86.929688 C 68.583415 98.108042 81.45297 105.49998 94.955078 106.49414 C 106.54011 107.47506 118.38117 103.97767 127.69727 97.052734 C 140.03453 88.048478 148.27185 73.639108 149.67578 58.419922 C 151.00619 45.171814 147.4177 31.531028 139.85938 20.582031 C 130.27054 6.4471034 114.71504 -3.4768114 97.845703 -6.1816406 C 93.675003 -6.866132 89.439024 -7.1235453 85.214844 -6.9941406 z "
d="M 85.203125,-7.3242188 C 69.920576,-6.8219072 54.978371,-0.73159347 43.488281,9.3105469 29.730781,21.167938 20.62376,38.325311 18.755859,56.416016 c -1.734796,15.95712 1.938409,32.407948 10.191407,46.164064 10.334605,17.47423 27.516469,30.69674 46.990234,36.375 6.645281,1.95148 13.56116,3.1467 20.517578,3.0625 19.153082,0.25684 38.305822,0.51598 57.458982,0.77148 a 0.33113676,0.33113676 0 0 0 0.33399,-0.30664 c 0.64021,-8.0547 1.28097,-16.1094 1.92187,-24.16406 a 0.33113676,0.33113676 0 0 0 -0.32617,-0.35742 c -20.65485,-0.286 -41.30981,-0.51288 -61.960938,-0.86719 h -0.0039 c -13.133341,-1.00893 -25.787797,-7.10439 -35.0625,-16.4375 a 0.33113676,0.33113676 0 0 0 0,-0.002 C 52.343603,94.184995 47.495562,86.16238 45.046875,77.314453 a 0.33113676,0.33113676 0 0 0 0,-0.002 C 42.922997,69.749353 42.661672,61.651864 44.335938,54.025391 47.301902,40.407665 56.579386,28.264581 69.050781,22.005859 a 0.33113676,0.33113676 0 0 0 0.002,-0.002 c 7.218526,-3.661983 15.535683,-5.174225 23.513672,-4.125 a 0.33113676,0.33113676 0 0 0 0.002,0 c 12.749801,1.558443 24.475741,10.023864 29.830081,21.716797 1.528,3.328833 2.54287,7.075443 2.8457,10.787109 a 0.33113676,0.33113676 0 0 0 0,0.0039 c 0.50314,5.427095 -0.52104,11.148138 -3.02734,16.058593 a 0.33113676,0.33113676 0 0 0 -0.002,0.002 c -3.77296,7.555238 -10.91161,13.615485 -19.2832,15.21289 a 0.33113676,0.33113676 0 0 0 0,0.002 c -4.546338,0.882115 -9.418457,0.367934 -13.595702,-1.726562 a 0.33113676,0.33113676 0 0 0 -0.0039,-0.002 c -5.431125,-2.626837 -9.860013,-7.754966 -10.794922,-13.78711 -0.497265,-3.192735 0.282359,-6.536996 2.125,-9.185546 -0.0139,2.705038 0.257235,5.460018 1.404297,7.986328 1.724833,4.159718 5.336057,7.559506 9.757813,8.675781 3.964246,1.059122 8.116269,0.326271 11.890621,-0.886719 a 0.33113676,0.33113676 0 0 0 0.002,0 c 2.75294,-0.915515 5.13542,-2.694581 6.95508,-4.916016 l 0.004,-0.0059 c 4.22887,-4.970422 5.92559,-11.850563 4.76367,-18.238281 v -0.0039 c -1.39169,-8.320828 -7.31354,-15.475053 -14.83007,-19.078125 l -0.002,-0.002 C 92.910555,26.731743 83.676017,26.736335 75.808594,29.951172 64.535605,34.499437 56.212806,45.226465 54.117188,57.134766 c -1.968025,10.346436 0.517884,21.379932 6.552734,29.984375 7.700829,11.262849 20.653527,18.702169 34.257812,19.705079 11.668956,0.98802 23.584106,-2.53175 32.964846,-9.503908 l 0.002,-0.002 c 12.41469,-9.061773 20.69784,-23.548746 22.11133,-38.865234 v -0.002 c 1.33798,-13.328328 -2.27053,-27.040971 -9.87305,-38.054688 v -0.002 C 130.49093,6.1822132 114.86084,-3.7880615 97.898438,-6.5078125 93.705473,-7.195958 89.449462,-7.4542424 85.205078,-7.3242188 a 0.33113676,0.33113676 0 0 0 -0.002,0 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB