move away from ehemer to resolve recursive loop.
This commit is contained in:
parent
3d03f1d9e8
commit
93c0c25eb5
@ -1,11 +1,12 @@
|
||||
import { Product } from "@/lib/product";
|
||||
import { area, length } from "enheter";
|
||||
|
||||
export const products = [
|
||||
// Sheet goods
|
||||
new Product(35, area("squareFoot", 4 * 8), { name: "Plywood" }),
|
||||
new Product(45, area("squareFoot", 4 * 8), { name: "OSB" }),
|
||||
new Product(45, area("squareFoot", 4 * 8), { name: "MDF" }),
|
||||
new Product(25, {l: 4, w : 8, u: "feet"}, { name: "Plywood" }),
|
||||
new Product(35, {l: 4, w : 8, u: "feet"}, { name: "MDF" }),
|
||||
new Product(40, {l: 4, w : 8, u: "feet"}, { name: "OSB" }),
|
||||
new Product(45, {l: 4, w : 8, u: "feet"}, { name: "Sheetrock" }),
|
||||
// Beams and trim
|
||||
new Product(45, length("foot", 1), { name: "trim" }),
|
||||
new Product(1, {l: 0.50, u : "feet"}, { name: "trim 3 inches" }),
|
||||
new Product(1, {l: 0.75, u : "feet"}, { name: "trim 3 inches" }),
|
||||
];
|
@ -1,20 +1,19 @@
|
||||
import { useDispatch, useSelector } from 'react-redux';
|
||||
import { combineReducers, configureStore } from '@reduxjs/toolkit';
|
||||
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 { Product } from "@/lib/product";
|
||||
import { Product, } from "@/lib/product";
|
||||
|
||||
const rememberedKeys = ['products'];
|
||||
|
||||
const rootReducer = reducers;
|
||||
|
||||
export function setupStore(preloadedState: Partial<RootState> = {
|
||||
export function setupStore(preloadedState = {
|
||||
products: [] as Product[],
|
||||
}) {
|
||||
return configureStore({
|
||||
reducer: rememberReducer(reducers),
|
||||
// @ts-ignore
|
||||
preloadedState,
|
||||
enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(
|
||||
rememberEnhancer(
|
||||
|
@ -3,7 +3,6 @@ import { deleteProduct, selectProducts, updateProduct } from "@/features/product
|
||||
import { Product } from "@/lib/product";
|
||||
import { FlatList, SafeAreaView, StyleSheet, Text } from "react-native";
|
||||
import { ProductEditorItem } from "./ProductEditorItem";
|
||||
import React from "react";
|
||||
|
||||
export const ProductEditor = ({}) => {
|
||||
const products = useAppSelector(selectProducts) as Product [];
|
||||
|
@ -28,7 +28,7 @@ export function ProductTile ({product, onProductSelected, style} : ProductTilePr
|
||||
style={styles.image}
|
||||
>
|
||||
<Text style={styles.text}>{product.attributes.name || `Product ${product.id}`}</Text>
|
||||
<Text style={styles.text}>{ product.pricePerUnit.toString() } / {product.measurement.value} {product.measurement.unit.symbol} </Text>
|
||||
<Text style={styles.text}>{ product.pricePerUnit.toString() } / {product.measure.value} {product.measure.unit.symbol} </Text>
|
||||
</ImageBackground>
|
||||
</View>
|
||||
);
|
||||
|
@ -1,10 +1,8 @@
|
||||
import { renderWithProviders } from "@/lib/rendering";
|
||||
import { ProductEditor } from "@/components/ProductEditor";
|
||||
import {products as fixtures} from "../../__fixtures__/initialProducts";
|
||||
import React from "react";
|
||||
import { useAppSelector } from "@/app/store";
|
||||
import { selectProducts } from "@/features/product/productSlice";
|
||||
import {products as fixtures} from "@/__fixtures__/initialProducts";
|
||||
import { screen } from "@testing-library/react-native";
|
||||
import { selectProducts } from "@/features/product/productSlice";
|
||||
|
||||
describe("ProductEditor", () => {
|
||||
it("renders correctly", async () => {
|
||||
@ -12,7 +10,11 @@ describe("ProductEditor", () => {
|
||||
products: fixtures,
|
||||
});
|
||||
|
||||
const products = store.getState();
|
||||
const state1 = store.getState();
|
||||
|
||||
const products = selectProducts(state1);
|
||||
|
||||
expect(products).toHaveLength(6);
|
||||
|
||||
// Check if the product names are rendered
|
||||
expect(screen.getByText(products[0].attributes.name as string)).toBeTruthy();
|
||||
|
@ -42,7 +42,7 @@ const productsState = createSlice({
|
||||
});
|
||||
|
||||
export const selectProducts = (state : RootState) => {
|
||||
return state.products
|
||||
return state.products;
|
||||
}
|
||||
|
||||
|
||||
|
@ -4,21 +4,20 @@ import { Product } from "../product";
|
||||
describe("Product tests", () => {
|
||||
|
||||
it(`Length product gives correct price for a shorter length`, () => {
|
||||
const standard = new Product(20, length("foot", 4));
|
||||
const comparison = standard.priceFor(length("foot", 2));
|
||||
const standard = new Product(20, { l: 4, u: "feet" });
|
||||
const comparison = standard.priceFor({ l: 2, u: "feet" });
|
||||
expect(comparison).toEqual(10);
|
||||
});
|
||||
|
||||
it(`Length product gives correct price for a longer length`, () => {
|
||||
const standard = new Product(20, length("foot", 4));
|
||||
const comparison = standard.priceFor(length("foot", 8));
|
||||
const standard = new Product(20, {l: 4, u : "feet"});
|
||||
const comparison = standard.priceFor({l : 8, u : "feet"});
|
||||
expect(comparison).toEqual(40);
|
||||
});
|
||||
|
||||
it(`Length product gives correct price if different units`, () => {
|
||||
const standard = new Product(10, length("foot", 1));
|
||||
const comparison = standard.priceFor(length("inch", 24));
|
||||
expect(comparison).toEqual(20);
|
||||
const standard = new Product(10, {l: 1, u : "feet"});
|
||||
const comparison = standard.priceFor({l : 24, u: "inch"});
|
||||
expect(comparison).toBeCloseTo(20, 4);
|
||||
});
|
||||
|
||||
});
|
103
lib/product.ts
103
lib/product.ts
@ -1,22 +1,10 @@
|
||||
import {length as en_length, area as en_area} from "enheter"
|
||||
import {Measure, LengthUnit, AreaUnit, } from "enheter"
|
||||
import uuid from "react-native-uuid";
|
||||
import convert, { Area, Length } from "convert";
|
||||
|
||||
export type Id = string;
|
||||
|
||||
export type Currency = "USD";
|
||||
|
||||
export const CURRENCY_SYMBOLS : Map<"USD", string> = {
|
||||
"USD": "$",
|
||||
};
|
||||
|
||||
export class Price {
|
||||
constructor(public currency : Currency, public value : number) {}
|
||||
public toString() {
|
||||
const sym = CURRENCY_SYMBOLS.get(this.currency);
|
||||
return `${sym} ${Math.round(this.value)}`;
|
||||
}
|
||||
}
|
||||
|
||||
export type ProductAttributes = {
|
||||
id?: string,
|
||||
name?: string,
|
||||
@ -24,35 +12,88 @@ export type ProductAttributes = {
|
||||
description?: string,
|
||||
depth?: string,
|
||||
currency?: Currency,
|
||||
[key:string]: any,
|
||||
// [index:string]: any,
|
||||
}
|
||||
|
||||
export type ProductData = {
|
||||
id?: Id,
|
||||
pricePerUnit: number,
|
||||
measurement: {
|
||||
unit: string,
|
||||
value: number,
|
||||
dimension: number,
|
||||
},
|
||||
attributes?: ProductAttributes,
|
||||
};
|
||||
|
||||
export type length_t = {
|
||||
l: number, u: Length
|
||||
}
|
||||
|
||||
export type area_t = length_t & {
|
||||
w: number,
|
||||
}
|
||||
|
||||
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));
|
||||
export const dimensionType = (d: dimensions_t) => isArea(d) ? "area" : "length"
|
||||
|
||||
export class Product {
|
||||
public id : string;
|
||||
constructor(public pricePerUnit : number, public measurement : Measure<"length" | "area">, public attributes : ProductAttributes = {}) {
|
||||
public id: string;
|
||||
public area?: area_t;
|
||||
public length?: length_t;
|
||||
public presentUnits: Length;
|
||||
|
||||
constructor(public pricePerUnit: number, dimensions: dimensions_t, public attributes: ProductAttributes = {},) {
|
||||
this.id = attributes.id || uuid.v4().toString();
|
||||
this.presentUnits = dimensions.u;
|
||||
if ("w" in dimensions) {
|
||||
this.area = {
|
||||
l: convert(dimensions.l, dimensions.u).to("meter"),
|
||||
w: convert(dimensions.w, dimensions.u).to("meter"),
|
||||
u: "meter"
|
||||
}
|
||||
} else {
|
||||
this.length = {
|
||||
l: convert(dimensions.l, dimensions.u).to("meter"),
|
||||
u: "meter"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public priceFor(measurement : Measure<"length" | "area">): number {
|
||||
const ratio = measurement.convertTo(this.measurement.unit).divideBy(this.measurement).value;
|
||||
return this.pricePerUnit * ratio
|
||||
}
|
||||
|
||||
get isArea() {
|
||||
return this.measurement.unit.dimension.length === 2;
|
||||
}
|
||||
|
||||
get isLength() {
|
||||
return this.measurement.unit.dimension.length === 1;
|
||||
public priceFor(dimensions: dimensions_t): number {
|
||||
if (this.area && "w" in dimensions) {
|
||||
const thisA = this.area.l * this.area.w;
|
||||
const otherA = convert(
|
||||
dimensions.w,
|
||||
dimensions.u
|
||||
).to("meter") * convert(
|
||||
dimensions.l,
|
||||
dimensions.u
|
||||
).to("meter");
|
||||
return (otherA / thisA) * this.pricePerUnit;
|
||||
} if (this.length) {
|
||||
const thisL = this.length.l;
|
||||
const otherL = convert(
|
||||
dimensions.l,
|
||||
dimensions.u
|
||||
).to("meter");
|
||||
return (otherL / thisL) * this.pricePerUnit;
|
||||
}
|
||||
throw new Error(`Invalid dimensions: ${dimensions}`);
|
||||
}
|
||||
|
||||
get attributesAsList() {
|
||||
return Object.entries(this.attributes).map(([key, value]) => {
|
||||
return {key, value}
|
||||
return { key, value }
|
||||
})
|
||||
}
|
||||
|
||||
public removeAttribute(key : string) {
|
||||
delete this.attributes[key]
|
||||
public removeAttribute(key: string) {
|
||||
delete this.attributes[key];
|
||||
}
|
||||
}
|
@ -3,7 +3,6 @@ import { PropsWithChildren, ReactElement } from "react";
|
||||
import { Provider } from "react-redux";
|
||||
import { setupStore, RootState } from "@/app/store";
|
||||
import { Product } from "@/lib/product";
|
||||
import React from "react";
|
||||
|
||||
export interface ExtendedRenderOptions extends Omit<RenderOptions, 'queries'> {
|
||||
preloadedState?: Partial<RootState>;
|
||||
@ -19,7 +18,7 @@ export function renderWithProviders(
|
||||
) {
|
||||
const {
|
||||
// Automatically create a store instance if no store was passed in
|
||||
store = setupStore(preloadedState as Partial<RootState>),
|
||||
store = setupStore(preloadedState),
|
||||
...renderOptions
|
||||
} = extendedRenderOptions;
|
||||
|
||||
|
27
package.json
27
package.json
@ -13,49 +13,54 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.24.7",
|
||||
"@expo/vector-icons": "^14.0.0",
|
||||
"@expo/vector-icons": "^14.0.2",
|
||||
"@react-native-async-storage/async-storage": "^1.23.1",
|
||||
"@react-native/assets-registry": "^0.74.84",
|
||||
"@react-navigation/native": "^6.0.2",
|
||||
"@react-navigation/native": "^6.1.17",
|
||||
"@reduxjs/toolkit": "^2.2.5",
|
||||
"@testing-library/react-native": "^12.5.1",
|
||||
"@types/js-quantities": "^1.6.6",
|
||||
"convert": "^5.3.0",
|
||||
"enheter": "^1.0.27",
|
||||
"expo": "~51.0.14",
|
||||
"esm": "link:@types/js-quantities/esm",
|
||||
"expo": "~51.0.16",
|
||||
"expo-constants": "~16.0.2",
|
||||
"expo-font": "~12.0.7",
|
||||
"expo-linking": "~6.3.1",
|
||||
"expo-router": "~3.5.16",
|
||||
"expo-router": "~3.5.17",
|
||||
"expo-splash-screen": "~0.27.5",
|
||||
"expo-status-bar": "~1.12.1",
|
||||
"expo-system-ui": "~3.0.6",
|
||||
"expo-web-browser": "~13.0.3",
|
||||
"interopRequireDefault": "link:@babel/runtime/helpers/interopRequireDefault",
|
||||
"js-quantities": "^1.8.0",
|
||||
"react": "18.2.0",
|
||||
"react-dom": "18.2.0",
|
||||
"react-native": "0.74.2",
|
||||
"react-native-gesture-handler": "~2.16.1",
|
||||
"react-native-gesture-handler": "~2.16.2",
|
||||
"react-native-reanimated": "~3.10.1",
|
||||
"react-native-safe-area-context": "4.10.1",
|
||||
"react-native-screens": "3.31.1",
|
||||
"react-native-uuid": "^2.0.2",
|
||||
"react-native-web": "~0.19.10",
|
||||
"react-native-web": "~0.19.12",
|
||||
"react-redux": "^9.1.2",
|
||||
"redux-remember": "^5.1.0",
|
||||
"safe-units": "^2.0.1",
|
||||
"uuid": "^10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.20.0",
|
||||
"@babel/core": "^7.24.7",
|
||||
"@babel/preset-typescript": "^7.24.7",
|
||||
"@jest/globals": "^29.7.0",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/react": "~18.2.45",
|
||||
"@types/react-test-renderer": "^18.0.7",
|
||||
"@types/react": "~18.2.79",
|
||||
"@types/react-test-renderer": "^18.3.0",
|
||||
"babel-plugin-transform-es2015-destructuring": "^6.23.0",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
||||
"enzyme-adapter-react-15": "^1.4.4",
|
||||
"eslint-config-airbnb": "^19.0.4",
|
||||
"jest": "^29.2.1",
|
||||
"jest-expo": "~51.0.1",
|
||||
"jest": "^29.7.0",
|
||||
"jest-expo": "~51.0.3",
|
||||
"react-test-renderer": "18.2.0",
|
||||
"ts-jest": "^29.1.5",
|
||||
"typescript": "~5.3.3"
|
||||
|
284
pnpm-lock.yaml
284
pnpm-lock.yaml
@ -9,7 +9,7 @@ dependencies:
|
||||
specifier: ^7.24.7
|
||||
version: 7.24.7
|
||||
'@expo/vector-icons':
|
||||
specifier: ^14.0.0
|
||||
specifier: ^14.0.2
|
||||
version: 14.0.2
|
||||
'@react-native-async-storage/async-storage':
|
||||
specifier: ^1.23.1
|
||||
@ -18,7 +18,7 @@ dependencies:
|
||||
specifier: ^0.74.84
|
||||
version: 0.74.84
|
||||
'@react-navigation/native':
|
||||
specifier: ^6.0.2
|
||||
specifier: ^6.1.17
|
||||
version: 6.1.17(react-native@0.74.2)(react@18.2.0)
|
||||
'@reduxjs/toolkit':
|
||||
specifier: ^2.2.5
|
||||
@ -26,39 +26,51 @@ dependencies:
|
||||
'@testing-library/react-native':
|
||||
specifier: ^12.5.1
|
||||
version: 12.5.1(jest@29.7.0)(react-native@0.74.2)(react-test-renderer@18.2.0)(react@18.2.0)
|
||||
'@types/js-quantities':
|
||||
specifier: ^1.6.6
|
||||
version: 1.6.6
|
||||
convert:
|
||||
specifier: ^5.3.0
|
||||
version: 5.3.0
|
||||
enheter:
|
||||
specifier: ^1.0.27
|
||||
version: 1.0.27
|
||||
esm:
|
||||
specifier: link:@types/js-quantities/esm
|
||||
version: link:@types/js-quantities/esm
|
||||
expo:
|
||||
specifier: ~51.0.14
|
||||
version: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
specifier: ~51.0.16
|
||||
version: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-constants:
|
||||
specifier: ~16.0.2
|
||||
version: 16.0.2(expo@51.0.14)
|
||||
version: 16.0.2(expo@51.0.16)
|
||||
expo-font:
|
||||
specifier: ~12.0.7
|
||||
version: 12.0.7(expo@51.0.14)
|
||||
version: 12.0.7(expo@51.0.16)
|
||||
expo-linking:
|
||||
specifier: ~6.3.1
|
||||
version: 6.3.1(expo@51.0.14)
|
||||
version: 6.3.1(expo@51.0.16)
|
||||
expo-router:
|
||||
specifier: ~3.5.16
|
||||
version: 3.5.16(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.14)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.2.0)(typescript@5.3.3)
|
||||
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.16)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(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.14)
|
||||
version: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.16)
|
||||
expo-status-bar:
|
||||
specifier: ~1.12.1
|
||||
version: 1.12.1
|
||||
expo-system-ui:
|
||||
specifier: ~3.0.6
|
||||
version: 3.0.6(expo@51.0.14)
|
||||
version: 3.0.6(expo@51.0.16)
|
||||
expo-web-browser:
|
||||
specifier: ~13.0.3
|
||||
version: 13.0.3(expo@51.0.14)
|
||||
version: 13.0.3(expo@51.0.16)
|
||||
interopRequireDefault:
|
||||
specifier: link:@babel/runtime/helpers/interopRequireDefault
|
||||
version: link:@babel/runtime/helpers/interopRequireDefault
|
||||
js-quantities:
|
||||
specifier: ^1.8.0
|
||||
version: 1.8.0
|
||||
react:
|
||||
specifier: 18.2.0
|
||||
version: 18.2.0
|
||||
@ -69,7 +81,7 @@ dependencies:
|
||||
specifier: 0.74.2
|
||||
version: 0.74.2(@babel/core@7.24.7)(@babel/preset-env@7.24.7)(@types/react@18.2.79)(react@18.2.0)
|
||||
react-native-gesture-handler:
|
||||
specifier: ~2.16.1
|
||||
specifier: ~2.16.2
|
||||
version: 2.16.2(react-native@0.74.2)(react@18.2.0)
|
||||
react-native-reanimated:
|
||||
specifier: ~3.10.1
|
||||
@ -84,7 +96,7 @@ dependencies:
|
||||
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
|
||||
@ -92,13 +104,16 @@ dependencies:
|
||||
redux-remember:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(redux@5.0.1)
|
||||
safe-units:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
uuid:
|
||||
specifier: ^10.0.0
|
||||
version: 10.0.0
|
||||
|
||||
devDependencies:
|
||||
'@babel/core':
|
||||
specifier: ^7.20.0
|
||||
specifier: ^7.24.7
|
||||
version: 7.24.7
|
||||
'@babel/preset-typescript':
|
||||
specifier: ^7.24.7
|
||||
@ -110,10 +125,10 @@ devDependencies:
|
||||
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-plugin-transform-es2015-destructuring:
|
||||
specifier: ^6.23.0
|
||||
@ -128,11 +143,11 @@ devDependencies:
|
||||
specifier: ^19.0.4
|
||||
version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.9.0)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.3)(eslint@8.57.0)
|
||||
jest:
|
||||
specifier: ^29.2.1
|
||||
specifier: ^29.7.0
|
||||
version: 29.7.0
|
||||
jest-expo:
|
||||
specifier: ~51.0.1
|
||||
version: 51.0.2(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0)
|
||||
specifier: ~51.0.3
|
||||
version: 51.0.3(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0)
|
||||
react-test-renderer:
|
||||
specifier: 18.2.0
|
||||
version: 18.2.0(react@18.2.0)
|
||||
@ -190,6 +205,16 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@babel/generator@7.2.0:
|
||||
resolution: {integrity: sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==}
|
||||
dependencies:
|
||||
'@babel/types': 7.24.7
|
||||
jsesc: 2.5.2
|
||||
lodash: 4.17.21
|
||||
source-map: 0.5.7
|
||||
trim-right: 1.0.1
|
||||
dev: false
|
||||
|
||||
/@babel/generator@7.24.7:
|
||||
resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@ -1731,8 +1756,8 @@ packages:
|
||||
eslint-visitor-keys: 3.4.3
|
||||
dev: true
|
||||
|
||||
/@eslint-community/regexpp@4.10.1:
|
||||
resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==}
|
||||
/@eslint-community/regexpp@4.11.0:
|
||||
resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
|
||||
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
|
||||
dev: true
|
||||
|
||||
@ -1768,19 +1793,19 @@ packages:
|
||||
safe-json-stringify: 1.2.0
|
||||
dev: false
|
||||
|
||||
/@expo/cli@0.18.19(expo-modules-autolinking@1.11.1):
|
||||
resolution: {integrity: sha512-8Rj18cTofpLl+7D++auMVS71KungldHbrArR44fpE8loMVAvYZA+U932lmd0K2lOYBASPhm7SVP9wzls//ESFQ==}
|
||||
/@expo/cli@0.18.20(expo-modules-autolinking@1.11.1):
|
||||
resolution: {integrity: sha512-UkEiS8l8UV34WywmjLgxMKoGBsdKXNJwVF8BJaNsXc0XcmAvvawkXiUvToO3MvJpf0www2tEjqlia8EJaTL38w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.24.7
|
||||
'@expo/code-signing-certificates': 0.0.5
|
||||
'@expo/config': 9.0.1
|
||||
'@expo/config-plugins': 8.0.5
|
||||
'@expo/config-plugins': 8.0.6
|
||||
'@expo/devcert': 1.1.2
|
||||
'@expo/env': 0.3.0
|
||||
'@expo/image-utils': 0.5.1
|
||||
'@expo/json-file': 8.3.3
|
||||
'@expo/metro-config': 0.18.7
|
||||
'@expo/metro-config': 0.18.8
|
||||
'@expo/osascript': 2.1.3
|
||||
'@expo/package-manager': 1.5.2
|
||||
'@expo/plist': 0.1.3
|
||||
@ -1864,8 +1889,8 @@ packages:
|
||||
nullthrows: 1.1.1
|
||||
dev: false
|
||||
|
||||
/@expo/config-plugins@8.0.5:
|
||||
resolution: {integrity: sha512-VGseKX1dYvaf2qHUDGzIQwSOJrO5fomH0gE5cKSQyi6wn+Q6rcV2Dj2E5aga+9aKNPL6FxZ0dqRFC3t2sbhaSA==}
|
||||
/@expo/config-plugins@8.0.6:
|
||||
resolution: {integrity: sha512-Vmn/BSg/hBmliU/Bl+G4sExDoWd4iHXQG7ITUNR5Uar7uLko1A5vdVV+EOEUFA0f8jEZMHG3uZJUoXmr4LPaxA==}
|
||||
dependencies:
|
||||
'@expo/config-types': 51.0.1
|
||||
'@expo/json-file': 8.3.3
|
||||
@ -1892,7 +1917,7 @@ packages:
|
||||
resolution: {integrity: sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg==}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.10.4
|
||||
'@expo/config-plugins': 8.0.5
|
||||
'@expo/config-plugins': 8.0.6
|
||||
'@expo/config-types': 51.0.1
|
||||
'@expo/json-file': 8.3.3
|
||||
getenv: 1.0.0
|
||||
@ -1910,7 +1935,7 @@ packages:
|
||||
resolution: {integrity: sha512-BKQ4/qBf3OLT8hHp5kjObk2vxwoRQ1yYQBbG/OM9Jdz32yYtrU8opTbKRAxfZEWH5i3ZHdLrPdC1rO0I6WxtTw==}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.10.4
|
||||
'@expo/config-plugins': 8.0.5
|
||||
'@expo/config-plugins': 8.0.6
|
||||
'@expo/config-types': 51.0.1
|
||||
'@expo/json-file': 8.3.3
|
||||
getenv: 1.0.0
|
||||
@ -1979,8 +2004,8 @@ packages:
|
||||
json5: 2.2.3
|
||||
write-file-atomic: 2.4.3
|
||||
|
||||
/@expo/metro-config@0.18.7:
|
||||
resolution: {integrity: sha512-MzAyFP0fvoyj9IUc6SPnpy6/HLT23j/p5J+yWjGug2ddOpSuKNDHOOqlwWZbJp5KfZCEIVWNHeUoE+TaC/yhaQ==}
|
||||
/@expo/metro-config@0.18.8:
|
||||
resolution: {integrity: sha512-YGpTlVc1/6EPzPbt0LZt92Bwrpjngulup6uHSTRbwn/heMPfFaVv1Y4VE3GAUkx7/Qwu+dTVIV0Kys4pLOAIiw==}
|
||||
dependencies:
|
||||
'@babel/core': 7.24.7
|
||||
'@babel/generator': 7.24.7
|
||||
@ -2050,7 +2075,7 @@ packages:
|
||||
expo-modules-autolinking: '>=0.8.1'
|
||||
dependencies:
|
||||
'@expo/config': 9.0.2
|
||||
'@expo/config-plugins': 8.0.5
|
||||
'@expo/config-plugins': 8.0.6
|
||||
'@expo/config-types': 51.0.1
|
||||
'@expo/image-utils': 0.5.1
|
||||
'@expo/json-file': 8.3.3
|
||||
@ -2385,6 +2410,15 @@ packages:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@jest/types@24.9.0:
|
||||
resolution: {integrity: sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==}
|
||||
engines: {node: '>= 6'}
|
||||
dependencies:
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
'@types/istanbul-reports': 1.1.2
|
||||
'@types/yargs': 13.0.12
|
||||
dev: false
|
||||
|
||||
/@jest/types@26.6.2:
|
||||
resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==}
|
||||
engines: {node: '>= 10.14.2'}
|
||||
@ -3165,6 +3199,13 @@ packages:
|
||||
dependencies:
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
|
||||
/@types/istanbul-reports@1.1.2:
|
||||
resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==}
|
||||
dependencies:
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
'@types/istanbul-lib-report': 3.0.3
|
||||
dev: false
|
||||
|
||||
/@types/istanbul-reports@3.0.4:
|
||||
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
|
||||
dependencies:
|
||||
@ -3177,6 +3218,10 @@ packages:
|
||||
pretty-format: 29.7.0
|
||||
dev: true
|
||||
|
||||
/@types/js-quantities@1.6.6:
|
||||
resolution: {integrity: sha512-k2Q8/Avj4Oz50flfTnfVGnUCkt7OYQ3U+lfQVELE/x5mdbwChZ7fM0wpUpVWzbuSL8kIYt9ZsFQ0RFNBv8T3Qw==}
|
||||
dev: false
|
||||
|
||||
/@types/jsdom@20.0.1:
|
||||
resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
|
||||
dependencies:
|
||||
@ -3239,6 +3284,12 @@ packages:
|
||||
/@types/yargs-parser@21.0.3:
|
||||
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
|
||||
|
||||
/@types/yargs@13.0.12:
|
||||
resolution: {integrity: sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==}
|
||||
dependencies:
|
||||
'@types/yargs-parser': 21.0.3
|
||||
dev: false
|
||||
|
||||
/@types/yargs@15.0.19:
|
||||
resolution: {integrity: sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==}
|
||||
dependencies:
|
||||
@ -3759,6 +3810,18 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/babel-plugin-react-compiler@0.0.0-experimental-696af53-20240625:
|
||||
resolution: {integrity: sha512-OUDKms8qmcm5bX0D+sJWC1YcKcd7AZ2aJ7eY6gkR+Xr7PDfkXLbqAld4Qs9B0ntjVbUMEtW/PjlQrxDtY4raHg==}
|
||||
dependencies:
|
||||
'@babel/generator': 7.2.0
|
||||
'@babel/types': 7.24.7
|
||||
chalk: 4.1.2
|
||||
invariant: 2.2.4
|
||||
pretty-format: 24.9.0
|
||||
zod: 3.23.8
|
||||
zod-validation-error: 2.1.0(zod@3.23.8)
|
||||
dev: false
|
||||
|
||||
/babel-plugin-react-native-web@0.19.12:
|
||||
resolution: {integrity: sha512-eYZ4+P6jNcB37lObWIg0pUbi7+3PKoU1Oie2j0C8UF3cXyXoR74tO2NBjI/FORb2LJyItJZEAmjU5pSaJYEL1w==}
|
||||
dev: false
|
||||
@ -3807,8 +3870,8 @@ packages:
|
||||
'@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-preset-expo@11.0.10(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
|
||||
resolution: {integrity: sha512-YBg40Om31gw9IPlRw5v8elzgtPUtNEh4GSibBi5MsmmYddGg4VPjWtCZIFJChN543qRmbGb/fa/kejvLX567hQ==}
|
||||
/babel-preset-expo@11.0.11(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
|
||||
resolution: {integrity: sha512-5AM8FE6mH4IKda08brCzZs9uJU+1K2L/F+7dxWZCprxIlpvNOexqb9TeO/l8m8z1511jmuiAfML6at+46ls+tg==}
|
||||
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)
|
||||
@ -3817,6 +3880,7 @@ packages:
|
||||
'@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.84(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
babel-plugin-react-compiler: 0.0.0-experimental-696af53-20240625
|
||||
babel-plugin-react-native-web: 0.19.12
|
||||
react-refresh: 0.14.2
|
||||
transitivePeerDependencies:
|
||||
@ -3918,8 +3982,8 @@ packages:
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001636
|
||||
electron-to-chromium: 1.4.812
|
||||
caniuse-lite: 1.0.30001638
|
||||
electron-to-chromium: 1.4.814
|
||||
node-releases: 2.0.14
|
||||
update-browserslist-db: 1.0.16(browserslist@4.23.1)
|
||||
|
||||
@ -3976,7 +4040,7 @@ packages:
|
||||
'@npmcli/fs': 3.1.1
|
||||
fs-minipass: 3.0.3
|
||||
glob: 10.4.2
|
||||
lru-cache: 10.2.2
|
||||
lru-cache: 10.3.0
|
||||
minipass: 7.1.2
|
||||
minipass-collect: 2.0.1
|
||||
minipass-flush: 1.0.5
|
||||
@ -4028,8 +4092,8 @@ packages:
|
||||
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/caniuse-lite@1.0.30001636:
|
||||
resolution: {integrity: sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==}
|
||||
/caniuse-lite@1.0.30001638:
|
||||
resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==}
|
||||
|
||||
/chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
@ -4301,6 +4365,10 @@ packages:
|
||||
/convert-source-map@2.0.0:
|
||||
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
||||
|
||||
/convert@5.3.0:
|
||||
resolution: {integrity: sha512-8bZ9aL/9ywyBpaPujOoKi+1q68RKEOt0djguntjkc2gBn/mNBudcVjRO2/2F7/1vuh2LQo5BTADDEesd2oh1jw==}
|
||||
dev: false
|
||||
|
||||
/cookie-signature@1.2.1:
|
||||
resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==}
|
||||
engines: {node: '>=6.6.0'}
|
||||
@ -4737,8 +4805,8 @@ packages:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
dev: false
|
||||
|
||||
/electron-to-chromium@1.4.812:
|
||||
resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==}
|
||||
/electron-to-chromium@1.4.814:
|
||||
resolution: {integrity: sha512-GVulpHjFu1Y9ZvikvbArHmAhZXtm3wHlpjTMcXNGKl4IQ4jMQjlnz8yMQYYqdLHKi/jEL2+CBC2akWVCoIGUdw==}
|
||||
|
||||
/emittery@0.13.1:
|
||||
resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
|
||||
@ -5217,7 +5285,7 @@ packages:
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@eslint-community/regexpp': 4.10.1
|
||||
'@eslint-community/regexpp': 4.11.0
|
||||
'@eslint/eslintrc': 2.1.4
|
||||
'@eslint/js': 8.57.0
|
||||
'@humanwhocodes/config-array': 0.11.14
|
||||
@ -5350,60 +5418,60 @@ packages:
|
||||
jest-message-util: 29.7.0
|
||||
jest-util: 29.7.0
|
||||
|
||||
/expo-asset@10.0.9(expo@51.0.14):
|
||||
resolution: {integrity: sha512-KX7LPtVf9eeMidUvYZafXZldrVdzfjZNKKFAjFvDy2twg7sTa2R0L4VdCXp32eGLWZyk+i/rpOUSbyD1YFyJnA==}
|
||||
/expo-asset@10.0.10(expo@51.0.16):
|
||||
resolution: {integrity: sha512-0qoTIihB79k+wGus9wy0JMKq7DdenziVx3iUkGvMAy2azscSgWH6bd2gJ9CGnhC6JRd3qTMFBL0ou/fx7WZl7A==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-constants: 16.0.2(expo@51.0.14)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-constants: 16.0.2(expo@51.0.16)
|
||||
invariant: 2.2.4
|
||||
md5-file: 3.2.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/expo-constants@16.0.2(expo@51.0.14):
|
||||
/expo-constants@16.0.2(expo@51.0.16):
|
||||
resolution: {integrity: sha512-9tNY3OVO0jfiMzl7ngb6IOyR5VFzNoN5OOazUWoeGfmMqVB5kltTemRvKraK9JRbBKIw+SOYLEmF0sEqgFZ6OQ==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
'@expo/config': 9.0.2
|
||||
'@expo/env': 0.3.0
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/expo-file-system@17.0.1(expo@51.0.14):
|
||||
/expo-file-system@17.0.1(expo@51.0.16):
|
||||
resolution: {integrity: sha512-dYpnZJqTGj6HCYJyXAgpFkQWsiCH3HY1ek2cFZVHFoEc5tLz9gmdEgTF6nFHurvmvfmXqxi7a5CXyVm0aFYJBw==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
dev: false
|
||||
|
||||
/expo-font@12.0.7(expo@51.0.14):
|
||||
/expo-font@12.0.7(expo@51.0.16):
|
||||
resolution: {integrity: sha512-rbSdpjtT/A3M+u9xchR9tdD+5VGSxptUis7ngX5zfAVp3O5atOcPNSA82Jeo15HkrQE+w/upfFBOvi56lsGdsQ==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
fontfaceobserver: 2.3.0
|
||||
dev: false
|
||||
|
||||
/expo-keep-awake@13.0.2(expo@51.0.14):
|
||||
/expo-keep-awake@13.0.2(expo@51.0.16):
|
||||
resolution: {integrity: sha512-kKiwkVg/bY0AJ5q1Pxnm/GvpeB6hbNJhcFsoOWDh2NlpibhCLaHL826KHUM+WsnJRbVRxJ+K9vbPRHEMvFpVyw==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
dev: false
|
||||
|
||||
/expo-linking@6.3.1(expo@51.0.14):
|
||||
/expo-linking@6.3.1(expo@51.0.16):
|
||||
resolution: {integrity: sha512-xuZCntSBGWCD/95iZ+mTUGTwHdy8Sx+immCqbUBxdvZ2TN61P02kKg7SaLS8A4a/hLrSCwrg5tMMwu5wfKr35g==}
|
||||
dependencies:
|
||||
expo-constants: 16.0.2(expo@51.0.14)
|
||||
expo-constants: 16.0.2(expo@51.0.16)
|
||||
invariant: 2.2.4
|
||||
transitivePeerDependencies:
|
||||
- expo
|
||||
@ -5421,14 +5489,14 @@ packages:
|
||||
fs-extra: 9.1.0
|
||||
dev: false
|
||||
|
||||
/expo-modules-core@1.12.15:
|
||||
resolution: {integrity: sha512-VjDPIgUyhCZzf692NF4p2iFTsKAQMcU3jc0pg33eNvN/kdrJqkeucqCDuuwoNxg0vIBKtoqAJDuPnWiemldsTg==}
|
||||
/expo-modules-core@1.12.17:
|
||||
resolution: {integrity: sha512-f4wD3GwWD1QnxsVjvqPys6migmGtEaofAQCG3zdMz2ovuXf99mwLEY9+mhtnlwwxcJ1bqjOLpjB6/3wMwJaxqw==}
|
||||
dependencies:
|
||||
invariant: 2.2.4
|
||||
dev: false
|
||||
|
||||
/expo-router@3.5.16(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.14)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.2.0)(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-XP6LS13O8elK467gX9lN7Fr4s3OLfLFBOwVIxaV8idBc6e0lpnrm8gOiygSCtX511v04w13Uf1rKS+RApg709w==}
|
||||
/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.16)(react-native-reanimated@3.10.1)(react-native-safe-area-context@4.10.1)(react-native-screens@3.31.1)(react-native@0.74.2)(react@18.2.0)(typescript@5.3.3):
|
||||
resolution: {integrity: sha512-UGSx5vSZISgnhNYsbhbpFuYivS/tFQVoYqsWsFNdU1Cob+KdR2N1C68nDk9S9T6N66JdeCI7fDiEpvR2H1+Amw==}
|
||||
peerDependencies:
|
||||
'@react-navigation/drawer': ^6.5.8
|
||||
'@testing-library/jest-native': '*'
|
||||
@ -5453,10 +5521,10 @@ packages:
|
||||
'@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.2)(react@18.2.0)
|
||||
'@react-navigation/native': 6.1.17(react-native@0.74.2)(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.2)(react@18.2.0)
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-constants: 16.0.2(expo@51.0.14)
|
||||
expo-linking: 6.3.1(expo@51.0.14)
|
||||
expo-splash-screen: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.14)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-constants: 16.0.2(expo@51.0.16)
|
||||
expo-linking: 6.3.1(expo@51.0.16)
|
||||
expo-splash-screen: 0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.16)
|
||||
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.2)(react@18.2.0)
|
||||
@ -5472,13 +5540,13 @@ packages:
|
||||
- typescript
|
||||
dev: false
|
||||
|
||||
/expo-splash-screen@0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.14):
|
||||
/expo-splash-screen@0.27.5(expo-modules-autolinking@1.11.1)(expo@51.0.16):
|
||||
resolution: {integrity: sha512-9rdZuLkFCfgJBxrheUsOEOIW6Rp+9NVlpSE0hgXQwbTCLTncf00IHSE8/L2NbFyeDLNjof1yZBppaV7tXHRUzA==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
'@expo/prebuild-config': 7.0.6(expo-modules-autolinking@1.11.1)
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- expo-modules-autolinking
|
||||
@ -5489,43 +5557,43 @@ packages:
|
||||
resolution: {integrity: sha512-/t3xdbS8KB0prj5KG5w7z+wZPFlPtkgs95BsmrP/E7Q0xHXTcDcQ6Cu2FkFuRM+PKTb17cJDnLkawyS5vDLxMA==}
|
||||
dev: false
|
||||
|
||||
/expo-system-ui@3.0.6(expo@51.0.14):
|
||||
/expo-system-ui@3.0.6(expo@51.0.16):
|
||||
resolution: {integrity: sha512-ewmGIoVHbcifRr2Kf4EJxc1ZoC3buVwlXUhEUzyX37LRLpMKK4CjIwe3G7N6nZ0DJACTFgY8WpRhbCUPICaOig==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
'@react-native/normalize-colors': 0.74.84
|
||||
debug: 4.3.5
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/expo-web-browser@13.0.3(expo@51.0.14):
|
||||
/expo-web-browser@13.0.3(expo@51.0.16):
|
||||
resolution: {integrity: sha512-HXb7y82ApVJtqk8tManyudtTrCtx8xcUnVzmJECeHCB0SsWSQ+penVLZxJkcyATWoJOsFMnfVSVdrTcpKKGszQ==}
|
||||
peerDependencies:
|
||||
expo: '*'
|
||||
dependencies:
|
||||
expo: 51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo: 51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
dev: false
|
||||
|
||||
/expo@51.0.14(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
|
||||
resolution: {integrity: sha512-99BAMSYBH1aq1TIEJqM03kRpsZjN8OqZXDqYHRq9/PXT67axRUOvRjwMMLprnCmqkAVM7m7FpiECNWN4U0gvLQ==}
|
||||
/expo@51.0.16(@babel/core@7.24.7)(@babel/preset-env@7.24.7):
|
||||
resolution: {integrity: sha512-BDxw+8zEcgPlXcw+jWTkQsyb7mFtNK8eu2XUC4A34aNBeryCV2cDFurV9kkAFzRXa8BNNi3Ije39RI9OS7uIRA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/runtime': 7.24.7
|
||||
'@expo/cli': 0.18.19(expo-modules-autolinking@1.11.1)
|
||||
'@expo/cli': 0.18.20(expo-modules-autolinking@1.11.1)
|
||||
'@expo/config': 9.0.1
|
||||
'@expo/config-plugins': 8.0.5
|
||||
'@expo/metro-config': 0.18.7
|
||||
'@expo/config-plugins': 8.0.6
|
||||
'@expo/metro-config': 0.18.8
|
||||
'@expo/vector-icons': 14.0.2
|
||||
babel-preset-expo: 11.0.10(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-asset: 10.0.9(expo@51.0.14)
|
||||
expo-file-system: 17.0.1(expo@51.0.14)
|
||||
expo-font: 12.0.7(expo@51.0.14)
|
||||
expo-keep-awake: 13.0.2(expo@51.0.14)
|
||||
babel-preset-expo: 11.0.11(@babel/core@7.24.7)(@babel/preset-env@7.24.7)
|
||||
expo-asset: 10.0.10(expo@51.0.16)
|
||||
expo-file-system: 17.0.1(expo@51.0.16)
|
||||
expo-font: 12.0.7(expo@51.0.16)
|
||||
expo-keep-awake: 13.0.2(expo@51.0.16)
|
||||
expo-modules-autolinking: 1.11.1
|
||||
expo-modules-core: 1.12.15
|
||||
expo-modules-core: 1.12.17
|
||||
fbemitter: 3.0.0
|
||||
whatwg-url-without-unicode: 8.0.0-3
|
||||
transitivePeerDependencies:
|
||||
@ -5695,8 +5763,8 @@ packages:
|
||||
resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==}
|
||||
dev: false
|
||||
|
||||
/flow-parser@0.238.2:
|
||||
resolution: {integrity: sha512-fs7FSnzzKF6oSzjk14JlBHt82DPchYHVsXtPi4Fkn+qrunVjWaBZY7nSO/mC9X4l9+wRah/R69DRd5NGDOrWqw==}
|
||||
/flow-parser@0.238.3:
|
||||
resolution: {integrity: sha512-hNUhucq8V6KWSX1skXUS3vnDmrRNuKWzDvEVK5b+n97uMF32zj2y8pmcLDQEqlY5u926B0GYGWT/3XhwDJfLOQ==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
dev: false
|
||||
|
||||
@ -6760,8 +6828,8 @@ packages:
|
||||
jest-mock: 29.7.0
|
||||
jest-util: 29.7.0
|
||||
|
||||
/jest-expo@51.0.2(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-ijIcjEASh2uORA3DBubOiIJTrPZXp8J3FedaEdnZPT09FkyTH8tZXp/ZRv37LKUomGA5XEHDYR2FY3UMfdIa7g==}
|
||||
/jest-expo@51.0.3(@babel/core@7.24.7)(jest@29.7.0)(react@18.2.0):
|
||||
resolution: {integrity: sha512-r49OuS9X2S/dH+lSfNmarBS2L/tgvBhzOgKHYFyDJWo+Bb5uVs7Rg/GZal/RD/NDkKFJuByGAaW1F6zHYnjZnw==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@expo/config': 9.0.2
|
||||
@ -7074,6 +7142,10 @@ packages:
|
||||
resolution: {integrity: sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==}
|
||||
dev: false
|
||||
|
||||
/js-quantities@1.8.0:
|
||||
resolution: {integrity: sha512-swDw9RJpXACAWR16vAKoSojAsP6NI7cZjjnjKqhOyZSdybRUdmPr071foD3fejUKSU2JMHz99hflWkRWvfLTpQ==}
|
||||
dev: false
|
||||
|
||||
/js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
|
||||
@ -7116,7 +7188,7 @@ packages:
|
||||
'@babel/register': 7.24.6(@babel/core@7.24.7)
|
||||
babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
|
||||
chalk: 4.1.2
|
||||
flow-parser: 0.238.2
|
||||
flow-parser: 0.238.3
|
||||
graceful-fs: 4.2.11
|
||||
micromatch: 4.0.7
|
||||
neo-async: 2.6.2
|
||||
@ -7471,8 +7543,8 @@ packages:
|
||||
dependencies:
|
||||
js-tokens: 4.0.0
|
||||
|
||||
/lru-cache@10.2.2:
|
||||
resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==}
|
||||
/lru-cache@10.3.0:
|
||||
resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==}
|
||||
engines: {node: 14 || >=16.14}
|
||||
dev: false
|
||||
|
||||
@ -8396,7 +8468,7 @@ packages:
|
||||
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
|
||||
engines: {node: '>=16 || 14 >=14.18'}
|
||||
dependencies:
|
||||
lru-cache: 10.2.2
|
||||
lru-cache: 10.3.0
|
||||
minipass: 7.1.2
|
||||
dev: false
|
||||
|
||||
@ -8483,6 +8555,16 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/pretty-format@24.9.0:
|
||||
resolution: {integrity: sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==}
|
||||
engines: {node: '>= 6'}
|
||||
dependencies:
|
||||
'@jest/types': 24.9.0
|
||||
ansi-regex: 4.1.1
|
||||
ansi-styles: 3.2.1
|
||||
react-is: 16.13.1
|
||||
dev: false
|
||||
|
||||
/pretty-format@26.6.2:
|
||||
resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==}
|
||||
engines: {node: '>= 10'}
|
||||
@ -9200,6 +9282,10 @@ packages:
|
||||
es-errors: 1.3.0
|
||||
is-regex: 1.1.4
|
||||
|
||||
/safe-units@2.0.1:
|
||||
resolution: {integrity: sha512-vwQl9r9J8O5Aj2RLW2H9qIMszs6MFHuNlD1S86E+AsOFjqZWlD76+sfwMcBT0DIpfTVtgm7Q1huM+iI3o20DYw==}
|
||||
dev: false
|
||||
|
||||
/safer-buffer@2.1.2:
|
||||
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
||||
dev: true
|
||||
@ -9925,6 +10011,11 @@ packages:
|
||||
which-typed-array: 1.1.15
|
||||
dev: false
|
||||
|
||||
/trim-right@1.0.1:
|
||||
resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/ts-interface-checker@0.1.13:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
|
||||
@ -10622,3 +10713,16 @@ packages:
|
||||
/yocto-queue@0.1.0:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
/zod-validation-error@2.1.0(zod@3.23.8):
|
||||
resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
zod: ^3.18.0
|
||||
dependencies:
|
||||
zod: 3.23.8
|
||||
dev: false
|
||||
|
||||
/zod@3.23.8:
|
||||
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
|
||||
dev: false
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"extends": "expo/tsconfig.base",
|
||||
"compilerOptions": {
|
||||
"jsx": "react",
|
||||
"jsx": "react-jsx",
|
||||
"strict": true,
|
||||
"paths": {
|
||||
"@/*": [
|
||||
|
Loading…
Reference in New Issue
Block a user