From 579281f602d8c3b4c71c612782e6f42d7aa94a23 Mon Sep 17 00:00:00 2001
From: vanGalilea
Date: Thu, 1 Feb 2024 13:36:49 +0100
Subject: [PATCH] readme update
---
README.md | 52 +++++---
apps/rn-cli-app/App.tsx | 21 ++-
apps/rn-cli-app/ios/Podfile.lock | 6 -
apps/rn-cli-app/package.json | 6 +-
apps/rn-expo-app/.gitignore | 5 -
yarn.lock | 220 ++++++++++---------------------
6 files changed, 124 insertions(+), 186 deletions(-)
diff --git a/README.md b/README.md
index c1bf996..c89da7e 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-## No More Hacks and Headaches | Learn How to Test Your Components Before Your Users Will
+## No More Hacks and Headaches <> Learn How to Test Your Components Before Your Users Will
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vanGalilea_react-native-testing&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vanGalilea_react-native-testing)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=vanGalilea_react-native-testing&metric=coverage)](https://sonarcloud.io/summary/new_code?id=vanGalilea_react-native-testing)
@@ -11,16 +11,17 @@
### Covered Examples ๐
- ๐ [Clicking buttons and asserting onPress' outcome](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/Counter.test.tsx).
-- ๐ฒ [Filling a simple login form and asserting successful submission](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/LoginSubmission.test.tsx).
-- ๐ฃ [Custom hook testing (number of alternatives)](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/CounterUsesCustomHook.test.tsx).
-- ๐ก [Mocking fetch calls](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/LoginSubmission.test.tsx#L36).
-- ๐งญ [Mocking navigation through screens](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/LoginSubmission.test.tsx#L13). ([react navigation v5](https://reactnavigation.org/))
-- ๐ [E2E feel due to real navigation throughout screens](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/Home.test.tsx).
-- ๐ฅ [Handling and mocking providers](https://github.com/vanGalilea/react-native-testing/blob/master/src/test/test-utils.tsx).
-- ๐น [Mocking external lib.'s components](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/Video.test.tsx).
-- ๐ญ [Mocking and interacting with RN's Modal component](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/Modal.test.tsx).
-- ๐งพ [Handling with a screen with RN's FlatList component](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/FlatList.test.tsx).
-- ๐ก [Using MSW to mock api calls and handling loading/errors](https://github.com/vanGalilea/react-native-testing/blob/master/__tests__/ListWithFetch.test.tsx).
+- ๐ฒ [Filling a simple login form and asserting successful submission](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/LoginSubmission.test.tsx).
+- ๐ฃ [Custom hook testing (number of alternatives)](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/CounterUsesCustomHook.test.tsx).
+- ๐ก [Mocking fetch calls](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/LoginSubmission.test.tsx#L36).
+- ๐งญ [Navigating through screens with React Navigation](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/LoginSubmission.test.tsx#L13).
+- ๐ [Navigating through screens with Expo Router](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-expo-app/__tests__/app/index.test.tsx).
+- ๐ [E2E feel due to real navigation throughout screens](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/Home.test.tsx).
+- ๐ฅ [Handling and mocking providers](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/src/test/test-utils.tsx).
+- ๐น [Mocking external lib.'s components](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/Video.test.tsx).
+- ๐ญ [Mocking and interacting with RN's Modal component](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/Modal.test.tsx).
+- ๐งพ [Handling with a screen with RN's FlatList component](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/FlatList.test.tsx).
+- ๐ก [Using MSW to mock api calls and handling loading/errors](https://github.com/vanGalilea/react-native-testing/blob/main/apps/rn-cli-app/__tests__/ListWithFetch.test.tsx).
### Tools in use ๐ ๏ธ
- [Jest](https://jestjs.io/)
@@ -31,25 +32,39 @@
- [RN- Setting up the development environment](https://reactnative.dev/docs/environment-setup)
- [Installing Maestro](https://maestro.mobile.dev/getting-started/installing-maestro)
-### How to run the tests ๐โโ๏ธ
-- Clone the repo
+## Getting Started ๐
+- Clone the repo ` git clone git@github.com:vanGalilea/react-native-testing.git`
- Run `yarn` to install dependencies
+- Explore RN CLI app and/or Expo app's tests and source code that are relevant to your use case.
+
+
+## RN CLI application
+### How to run the tests ๐โโ๏ธ
+- Run `cd apps/rn-cli-app` to navigate to the app folder
- Run `yarn test:unit` to run the unit tests
- Run `yarn test:unit:dev` to run the unit tests in dev/watch mode
- Run `yarn test:unit:coverage` to run the tests and generate a coverage report
+
+Make sure you have built and run the app in dev mode before running the e2e tests.
- Run `yarn test:e2e` to run the e2e tests
- Run `yarn test:e2e:dev` to run the e2e tests in dev/watch mode
- Run `yarn test:e2e:record` to run the e2e tests and record a video of the tests
### How to run the app ๐ฑ
-- Clone the repo
-- Run `yarn` to install dependencies
+- Run `cd apps/rn-cli-app` to navigate to the app folder
- Run `npx pod-install` to install iOS dependencies
- Run `yarn start` to start the metro bundler
- Click `i` to run the app on iOS simulator or `a` to run it on Android emulator
-### Ideas and future improvements ๐
-- โ๏ธ Add tests for react native web project
+## Expo application
+### How to run the tests ๐โโ๏ธ
+- Run `cd apps/rn-expo-app` to navigate to the app folder
+- Run `yarn test:unit` to run the unit tests
+
+### How to run the app ๐ฑ
+- Run `cd apps/rn-expo-app` to navigate to the app folder
+- Run `yarn start` to start the metro bundler
+- Click `i` to run the app on iOS simulator or `a` to run it on Android emulator
### Inspiration, resources and further reading ๐
- ๐ A blog by [Steve Galili]([url](https://github.com/vanGalilea)) on ["Where and How to Start Testing Your React Native App"](https://medium.com/@stevegalili/where-and-how-to-start-testing-your-react-native-app-%EF%B8%8F-and-how-to-keep-on-testin-ec3464fb9b41)
@@ -61,7 +76,6 @@ For more info check [Epic React](https://epicreact.dev/).
- ๐บ [React Navigation](https://reactnavigation.org/)
- ๐ฐ [MSW](https://mswjs.io/)
-### Impression of the the project ๐ธ
-
+### Impression of the project ๐ธ
https://github.com/vanGalilea/react-native-testing/assets/25864161/cdb6cdc7-7b28-4ecd-819f-52dd3c3d76c8
diff --git a/apps/rn-cli-app/App.tsx b/apps/rn-cli-app/App.tsx
index 70787f1..0137c0c 100644
--- a/apps/rn-cli-app/App.tsx
+++ b/apps/rn-cli-app/App.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import {NavigationContainer} from '@react-navigation/native';
+import {NavigationContainer, useNavigation} from '@react-navigation/native';
import {
createStackNavigator,
StackNavigationProp,
@@ -13,7 +13,7 @@ import {ThemeProvider} from './src/utils/theme';
import ListWithFetch from './src/components/ListWithFetch';
import LoginSubmission from './src/components/LoginSubmission';
import Counter from './src/components/Counter';
-import {Alert} from 'react-native';
+import {Alert, Pressable, Text} from 'react-native';
export type RootStackParamList = {
Home: undefined;
@@ -53,7 +53,7 @@ export default () => {
@@ -75,3 +75,18 @@ export default () => {
>
);
};
+
+const HeaderLeft = () => {
+ const navigation = useNavigation();
+ if (!navigation.canGoBack()) {
+ return null;
+ }
+
+ return (
+ navigation.goBack()}>
+ โ
+
+ );
+};
diff --git a/apps/rn-cli-app/ios/Podfile.lock b/apps/rn-cli-app/ios/Podfile.lock
index b1d9761..3a7858e 100644
--- a/apps/rn-cli-app/ios/Podfile.lock
+++ b/apps/rn-cli-app/ios/Podfile.lock
@@ -1126,8 +1126,6 @@ PODS:
- React-Core
- RNCMaskedView (0.1.11):
- React
- - RNFlashList (1.6.3):
- - React-Core
- RNGestureHandler (2.14.1):
- glog
- RCT-Folly (= 2022.05.16.00)
@@ -1216,7 +1214,6 @@ DEPENDENCIES:
- ReactCommon/turbomodule/core (from `../../../node_modules/react-native/ReactCommon`)
- "RNCAsyncStorage (from `../../../node_modules/@react-native-community/async-storage`)"
- "RNCMaskedView (from `../../../node_modules/@react-native-community/masked-view`)"
- - "RNFlashList (from `../../../node_modules/@shopify/flash-list`)"
- RNGestureHandler (from `../../../node_modules/react-native-gesture-handler`)
- RNScreens (from `../../../node_modules/react-native-screens`)
- Yoga (from `../../../node_modules/react-native/ReactCommon/yoga`)
@@ -1343,8 +1340,6 @@ EXTERNAL SOURCES:
:path: "../../../node_modules/@react-native-community/async-storage"
RNCMaskedView:
:path: "../../../node_modules/@react-native-community/masked-view"
- RNFlashList:
- :path: "../../../node_modules/@shopify/flash-list"
RNGestureHandler:
:path: "../../../node_modules/react-native-gesture-handler"
RNScreens:
@@ -1418,7 +1413,6 @@ SPEC CHECKSUMS:
ReactCommon: ddb128564dcbfa0287d3d1a2d10f8c7457c971f6
RNCAsyncStorage: b03032fdbdb725bea0bd9e5ec5a7272865ae7398
RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489
- RNFlashList: 4b4b6b093afc0df60ae08f9cbf6ccd4c836c667a
RNGestureHandler: 25b969a1ffc806b9f9ad2e170d4a3b049c6af85e
RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
diff --git a/apps/rn-cli-app/package.json b/apps/rn-cli-app/package.json
index 9a07b62..8d367a4 100644
--- a/apps/rn-cli-app/package.json
+++ b/apps/rn-cli-app/package.json
@@ -10,9 +10,9 @@
"test:unit": "jest",
"test:unit:dev": "jest --watch",
"test:unit:coverage": "jest --coverage",
- "test:e2e": "maestro test e2e/flow.yaml",
- "test:e2e:dev": "maestro test -c e2e/flow.yaml",
- "test:e2e:record": "maestro record e2e/flow.yaml"
+ "test:e2e": "maestro test .maestro/flow.yaml",
+ "test:e2e:dev": "maestro test -c .maestro/flow.yaml",
+ "test:e2e:record": "maestro record .maestro/flow.yaml"
},
"dependencies": {
"@react-native-community/async-storage": "^1.12.1",
diff --git a/apps/rn-expo-app/.gitignore b/apps/rn-expo-app/.gitignore
index 0b37b6e..5350487 100644
--- a/apps/rn-expo-app/.gitignore
+++ b/apps/rn-expo-app/.gitignore
@@ -34,8 +34,3 @@ yarn-error.*
# typescript
*.tsbuildinfo
-# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb
-# The following patterns were generated by expo-cli
-
-expo-env.d.ts
-# @end expo-cli
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f52f348..4dc90c0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1263,10 +1263,10 @@
mv "~2"
safe-json-stringify "~1"
-"@expo/cli@0.17.4":
- version "0.17.4"
- resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.4.tgz#ac720bc03e16cc9f4130b4319118053743b50395"
- integrity sha512-6pswecVC9qCBp1qa004D2HjPeXKYDaw/PhyUOsqnF7AUCwunlKa1tJO0Ik8zxzF68kuywIOXUnTJl74Z2aHqiw==
+"@expo/cli@0.17.3":
+ version "0.17.3"
+ resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.3.tgz#0763696671522062e5592411d02952ed905d4838"
+ integrity sha512-lIK8igsEQxTh4WuDlcEhE0wAJcDrAyjWDF00phdmwuSCpE5SaEXNlddOXvGxEVKPhUxHZUFo9NbfoQC+JVmkfA==
dependencies:
"@babel/runtime" "^7.20.0"
"@expo/code-signing-certificates" "0.0.5"
@@ -2007,12 +2007,12 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "1.0.0"
-"@react-native-async-storage/async-storage@^1.21.0":
- version "1.21.0"
- resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz#d7e370028e228ab84637016ceeb495878b7a44c8"
- integrity sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag==
+"@react-native-community/async-storage@^1.12.1":
+ version "1.12.1"
+ resolved "https://registry.yarnpkg.com/@react-native-community/async-storage/-/async-storage-1.12.1.tgz#25f821b4f6b13abe005ad67e47c6f1cee9f27b24"
+ integrity sha512-70WGaH3PKYASi4BThuEEKMkyAgE9k7VytBqmgPRx3MzJx9/MkspwqJGmn3QLCgHLIFUgF1pit2mWICbRJ3T3lg==
dependencies:
- merge-options "^3.0.4"
+ deep-assign "^3.0.0"
"@react-native-community/cli-clean@12.3.0":
version "12.3.0"
@@ -2320,23 +2320,16 @@
prompts "^2.4.2"
semver "^7.5.2"
-"@react-native-masked-view/masked-view@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.3.1.tgz#5bd76f17004a6ccbcec03856893777ee91f23d29"
- integrity sha512-uVm8U6nwFIlUd1iDIB5cS+lDadApKR+l8k4k84d9hn+GN4lzAIJhUZ9syYX7c022MxNgAlbxoFLt0pqKoyaAGg==
+"@react-native-community/masked-view@^0.1.11":
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/@react-native-community/masked-view/-/masked-view-0.1.11.tgz#2f4c6e10bee0786abff4604e39a37ded6f3980ce"
+ integrity sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==
-"@react-native/assets-registry@0.73.1", "@react-native/assets-registry@~0.73.1":
+"@react-native/assets-registry@0.73.1", "@react-native/assets-registry@^0.73.1", "@react-native/assets-registry@~0.73.1":
version "0.73.1"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85"
integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==
-"@react-native/babel-plugin-codegen@0.73.2":
- version "0.73.2"
- resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz#447656cde437b71dc3ef0af3f8a5b215653d5d07"
- integrity sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw==
- dependencies:
- "@react-native/codegen" "0.73.2"
-
"@react-native/babel-plugin-codegen@0.73.3":
version "0.73.3"
resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.3.tgz#6bf135322b89264342c80778ee6bb697f968f773"
@@ -2344,54 +2337,6 @@
dependencies:
"@react-native/codegen" "0.73.2"
-"@react-native/babel-preset@0.73.19":
- version "0.73.19"
- resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691"
- integrity sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg==
- dependencies:
- "@babel/core" "^7.20.0"
- "@babel/plugin-proposal-async-generator-functions" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.18.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0"
- "@babel/plugin-proposal-numeric-separator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.20.0"
- "@babel/plugin-syntax-dynamic-import" "^7.8.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.18.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-async-to-generator" "^7.20.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.20.0"
- "@babel/plugin-transform-flow-strip-types" "^7.20.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-private-methods" "^7.22.5"
- "@babel/plugin-transform-private-property-in-object" "^7.22.11"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@react-native/babel-plugin-codegen" "0.73.2"
- babel-plugin-transform-flow-enums "^0.0.2"
- react-refresh "^0.14.0"
-
"@react-native/babel-preset@0.73.20", "@react-native/babel-preset@^0.73.18":
version "0.73.20"
resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.20.tgz#65ab68cce16bb222bb1faece498abb6f7b1d5db0"
@@ -2440,7 +2385,7 @@
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
-"@react-native/codegen@0.73.2":
+"@react-native/codegen@0.73.2", "@react-native/codegen@^0.73.2":
version "0.73.2"
resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519"
integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ==
@@ -2453,20 +2398,20 @@
mkdirp "^0.5.1"
nullthrows "^1.1.1"
-"@react-native/community-cli-plugin@0.73.12":
- version "0.73.12"
- resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c"
- integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw==
+"@react-native/community-cli-plugin@0.73.11":
+ version "0.73.11"
+ resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.11.tgz#8826cb81bb794408202e1ce7d87e45710eff1a9f"
+ integrity sha512-s0bprwljKS1Al8wOKathDDmRyF+70CcNE2G/aqZ7+L0NoOE0Uxxx/5P2BxlM2Mfht7O33B4SeMNiPdE/FqIubQ==
dependencies:
"@react-native-community/cli-server-api" "12.3.0"
"@react-native-community/cli-tools" "12.3.0"
- "@react-native/dev-middleware" "0.73.7"
- "@react-native/metro-babel-transformer" "0.73.13"
+ "@react-native/dev-middleware" "^0.73.6"
+ "@react-native/metro-babel-transformer" "^0.73.12"
chalk "^4.0.0"
execa "^5.1.1"
- metro "^0.80.3"
- metro-config "^0.80.3"
- metro-core "^0.80.3"
+ metro "^0.80.0"
+ metro-config "^0.80.0"
+ metro-core "^0.80.0"
node-fetch "^2.2.0"
readline "^1.3.0"
@@ -2508,7 +2453,7 @@
serve-static "^1.13.1"
temp-dir "^2.0.0"
-"@react-native/eslint-config@0.73.2":
+"@react-native/eslint-config@^0.73.1":
version "0.73.2"
resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.73.2.tgz#40b2cd8ce245e90c885b8ab15fae1219a946bfac"
integrity sha512-YzMfes19loTfbrkbYNAfHBDXX4oRBzc5wnvHs4h2GIHUj6YKs5ZK5lldqSrBJCdZAI3nuaO9Qj+t5JRwou571w==
@@ -2532,27 +2477,17 @@
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.73.1.tgz#79d2c4d90c80bfad8900db335bfbaf1ca599abdc"
integrity sha512-8BNMFE8CAI7JLWLOs3u33wcwcJ821LYs5g53Xyx9GhSg0h8AygTwDrwmYb/pp04FkCNCPjKPBoaYRthQZmxgwA==
-"@react-native/gradle-plugin@0.73.4":
+"@react-native/gradle-plugin@0.73.4", "@react-native/gradle-plugin@^0.73.4":
version "0.73.4"
resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz#aa55784a8c2b471aa89934db38c090d331baf23b"
integrity sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==
-"@react-native/js-polyfills@0.73.1":
+"@react-native/js-polyfills@0.73.1", "@react-native/js-polyfills@^0.73.1":
version "0.73.1"
resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed"
integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==
-"@react-native/metro-babel-transformer@0.73.13":
- version "0.73.13"
- resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7"
- integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg==
- dependencies:
- "@babel/core" "^7.20.0"
- "@react-native/babel-preset" "0.73.19"
- hermes-parser "0.15.0"
- nullthrows "^1.1.1"
-
-"@react-native/metro-babel-transformer@0.73.14":
+"@react-native/metro-babel-transformer@0.73.14", "@react-native/metro-babel-transformer@^0.73.12":
version "0.73.14"
resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.14.tgz#a4ee02c729216e4ab5b7c7aa28abbfe8e0a943a8"
integrity sha512-5wLeYw/lormpSqYfI9H/geZ/EtPmi+x5qLkEit15Q/70hkzYo/M+aWztUtbOITfgTEOP8d6ybROzoGsqgyZLcw==
@@ -2562,17 +2497,7 @@
hermes-parser "0.15.0"
nullthrows "^1.1.1"
-"@react-native/metro-config@0.73.3":
- version "0.73.3"
- resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.73.3.tgz#15f5e1393258148fadb285821dd9b037ea411459"
- integrity sha512-aIVh+lM52n7/RFDXLDiIp1vI21jc9thm2VxdkP7KwxMut7VvW+2tO38zKt74/2ker2ca0205tbf3pyCYBvV6Ww==
- dependencies:
- "@react-native/js-polyfills" "0.73.1"
- "@react-native/metro-babel-transformer" "0.73.13"
- metro-config "^0.80.3"
- metro-runtime "^0.80.3"
-
-"@react-native/metro-config@0.73.4":
+"@react-native/metro-config@^0.73.2":
version "0.73.4"
resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.73.4.tgz#475feab57a60734c5f40c60ef92f4552dec6174c"
integrity sha512-4IpWb9InOY23ssua6z/ho2B4uRqF4QaNHGg4aV3D/og5yiVF39GEm/REHU36i+KoHRO3GcB6DrI7N9KrcvgGBw==
@@ -2587,17 +2512,17 @@
resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91"
integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==
-"@react-native/normalize-colors@0.73.2", "@react-native/normalize-colors@^0.73.0":
+"@react-native/normalize-colors@0.73.2", "@react-native/normalize-colors@^0.73.0", "@react-native/normalize-colors@^0.73.2":
version "0.73.2"
resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz#cc8e48fbae2bbfff53e12f209369e8d2e4cf34ec"
integrity sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==
-"@react-native/typescript-config@0.73.1":
+"@react-native/typescript-config@^0.73.1":
version "0.73.1"
resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.73.1.tgz#c97a42f5cd264069bfe86b737c531ed2f042ae6d"
integrity sha512-7Wrmdp972ZO7xvDid+xRGtvX6xz47cpGj7Y7VKlUhSVFFqbOGfB5WCpY1vMr6R/fjl+Og2fRw+TETN2+JnJi0w==
-"@react-native/virtualized-lists@0.73.4":
+"@react-native/virtualized-lists@0.73.4", "@react-native/virtualized-lists@^0.73.4":
version "0.73.4"
resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz#640e594775806f63685435b5d9c3d05c378ccd8c"
integrity sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==
@@ -4394,6 +4319,13 @@ dedent@^1.0.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff"
integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==
+deep-assign@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-3.0.0.tgz#c8e4c4d401cba25550a2f0f486a2e75bc5f219a2"
+ integrity sha512-YX2i9XjJ7h5q/aQ/IM9PEwEnDqETAIYbggmdDB3HLTlSgo1CxPsj6pvhPG68rq6SVE0+p+6Ywsm5fTYNrYtBWw==
+ dependencies:
+ is-obj "^1.0.0"
+
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
@@ -5186,13 +5118,13 @@ expo-status-bar@~1.11.1:
resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.11.1.tgz#a11318741d361048c11db2b16c4364a79a74af30"
integrity sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg==
-expo@~50.0.5:
- version "50.0.5"
- resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.5.tgz#16c13eca981990fce2c884e974885935aca74da8"
- integrity sha512-gfZbJv8eqVG1xX8QqlQHF4Mn6HnLFuE14Kq5FRUVZQWE+IhlrP+mr+un7Zdp/3a63Bp/VkPzHi77G1bVP1pM7A==
+expo@~50.0.3:
+ version "50.0.4"
+ resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.4.tgz#3ec5349a58b8b3264bc2f218d85b673beb352a99"
+ integrity sha512-8QWBvYZyKFd7pHxbtri8/ZITBR19QbrW2IkezAhs3ZOHR2kluSgNfyo9ojAe7GnOnE8hCB6Xe83Dbm0R3Ealhw==
dependencies:
"@babel/runtime" "^7.20.0"
- "@expo/cli" "0.17.4"
+ "@expo/cli" "0.17.3"
"@expo/config" "8.5.4"
"@expo/config-plugins" "7.8.4"
"@expo/metro-config" "0.17.3"
@@ -6156,6 +6088,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-obj@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==
+
is-path-cwd@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
@@ -6166,11 +6103,6 @@ is-path-inside@^3.0.2, is-path-inside@^3.0.3:
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-is-plain-obj@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
- integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
-
is-plain-object@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
@@ -6764,7 +6696,7 @@ jest-worker@^29.6.3, jest-worker@^29.7.0:
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^29.6.3, jest@^29.7.0:
+jest@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
@@ -7237,13 +7169,6 @@ memory-cache@~0.2.0:
resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a"
integrity sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==
-merge-options@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7"
- integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==
- dependencies:
- is-plain-obj "^2.1.0"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -7276,7 +7201,7 @@ metro-cache@0.80.5:
metro-core "0.80.5"
rimraf "^3.0.2"
-metro-config@0.80.5, metro-config@^0.80.3:
+metro-config@0.80.5, metro-config@^0.80.0, metro-config@^0.80.3:
version "0.80.5"
resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.5.tgz#859e2ce307372f583bc8ebfe69bd233dd9328a8b"
integrity sha512-elqo/lwvF+VjZ1OPyvmW/9hSiGlmcqu+rQvDKw5F5WMX48ZC+ySTD1WcaD7e97pkgAlJHVYqZ98FCjRAYOAFRQ==
@@ -7289,7 +7214,7 @@ metro-config@0.80.5, metro-config@^0.80.3:
metro-core "0.80.5"
metro-runtime "0.80.5"
-metro-core@0.80.5, metro-core@^0.80.3:
+metro-core@0.80.5, metro-core@^0.80.0, metro-core@^0.80.3:
version "0.80.5"
resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.5.tgz#3ead635dcecfa6d0b380f8a80d3e5406f70846a9"
integrity sha512-vkLuaBhnZxTVpaZO8ZJVEHzjaqSXpOdpAiztSZ+NDaYM6jEFgle3/XIbLW91jTSf2+T8Pj5yB1G7KuOX+BcVwg==
@@ -7327,14 +7252,14 @@ metro-resolver@0.80.5:
resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.5.tgz#3915be3b2bcf4f3e9e2f24bdde8d8c9ac26bb134"
integrity sha512-haJ/Hveio3zv/Fr4eXVdKzjUeHHDogYok7OpRqPSXGhTXisNXB+sLN7CpcUrCddFRUDLnVaqQOYwhYsFndgUwA==
-metro-runtime@0.80.5, metro-runtime@^0.80.3:
+metro-runtime@0.80.5, metro-runtime@^0.80.0, metro-runtime@^0.80.3:
version "0.80.5"
resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.5.tgz#48ac4c732be195e0ebdefb5ac5d32c7da76305ad"
integrity sha512-L0syTWJUdWzfUmKgkScr6fSBVTh6QDr8eKEkRtn40OBd8LPagrJGySBboWSgbyn9eIb4ayW3Y347HxgXBSAjmg==
dependencies:
"@babel/runtime" "^7.0.0"
-metro-source-map@0.80.5, metro-source-map@^0.80.3:
+metro-source-map@0.80.5, metro-source-map@^0.80.0, metro-source-map@^0.80.3:
version "0.80.5"
resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.5.tgz#21acdc1d5417cf3009209555d84cbeb61de5d6d5"
integrity sha512-DwSF4l03mKPNqCtyQ6K23I43qzU1BViAXnuH81eYWdHglP+sDlPpY+/7rUahXEo6qXEHXfAJgVoo1sirbXbmsQ==
@@ -7389,7 +7314,7 @@ metro-transform-worker@0.80.5:
metro-transform-plugins "0.80.5"
nullthrows "^1.1.1"
-metro@0.80.5, metro@^0.80.3:
+metro@0.80.5, metro@^0.80.0, metro@^0.80.3:
version "0.80.5"
resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.5.tgz#94cd36df2eab434f050314a6d31529e8dc1b26df"
integrity sha512-OE/CGbOgbi8BlTN1QqJgKOBaC27dS0JBQw473JcivrpgVnqIsluROA7AavEaTVUrB9wPUZvoNVDROn5uiM2jfw==
@@ -8165,7 +8090,7 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-prettier@2.8.8, prettier@^2.8.8:
+prettier@^2.8.8:
version "2.8.8"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
@@ -8405,7 +8330,7 @@ react-native-video@6.0.0-alpha.7:
keymirror "^0.1.1"
prop-types "^15.7.2"
-react-native@*, react-native@0.73.3:
+react-native@*:
version "0.73.3"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.3.tgz#aae18b4c6da84294c1f8e1d6446b46c887bf087c"
integrity sha512-RSQDtT2DNUcmB4IgmW9NhRb5wqvXFl6DI2NEJmt0ps2OrVHpoA8Tkq+lkFOA/fvPscJKtFKEHFBDSR5UHR3PUw==
@@ -8449,22 +8374,22 @@ react-native@*, react-native@0.73.3:
ws "^6.2.2"
yargs "^17.6.2"
-react-native@0.73.2:
- version "0.73.2"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608"
- integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw==
+react-native@0.73.1:
+ version "0.73.1"
+ resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.1.tgz#5eafaa7e54feeab8b55e8b8e4efc4d21052a4fff"
+ integrity sha512-nLl9O2yKRh1nMXwsk4SUiD0ddd19RqlKgNU9AU8bTK/zD2xwnVOG56YK1/22SN67niWyoeG83vVg1eTk+S6ReA==
dependencies:
"@jest/create-cache-key-function" "^29.6.3"
"@react-native-community/cli" "12.3.0"
"@react-native-community/cli-platform-android" "12.3.0"
"@react-native-community/cli-platform-ios" "12.3.0"
- "@react-native/assets-registry" "0.73.1"
- "@react-native/codegen" "0.73.2"
- "@react-native/community-cli-plugin" "0.73.12"
- "@react-native/gradle-plugin" "0.73.4"
- "@react-native/js-polyfills" "0.73.1"
- "@react-native/normalize-colors" "0.73.2"
- "@react-native/virtualized-lists" "0.73.4"
+ "@react-native/assets-registry" "^0.73.1"
+ "@react-native/codegen" "^0.73.2"
+ "@react-native/community-cli-plugin" "0.73.11"
+ "@react-native/gradle-plugin" "^0.73.4"
+ "@react-native/js-polyfills" "^0.73.1"
+ "@react-native/normalize-colors" "^0.73.2"
+ "@react-native/virtualized-lists" "^0.73.4"
abort-controller "^3.0.0"
anser "^1.4.9"
ansi-regex "^5.0.0"
@@ -8476,8 +8401,8 @@ react-native@0.73.2:
jest-environment-node "^29.6.3"
jsc-android "^250231.0.0"
memoize-one "^5.0.0"
- metro-runtime "^0.80.3"
- metro-source-map "^0.80.3"
+ metro-runtime "^0.80.0"
+ metro-source-map "^0.80.0"
mkdirp "^0.5.1"
nullthrows "^1.1.1"
pretty-format "^26.5.2"
@@ -9745,11 +9670,6 @@ typed-array-length@^1.0.4:
for-each "^0.3.3"
is-typed-array "^1.1.9"
-typescript@5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b"
- integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==
-
typescript@5.3.3, typescript@^5.1.3:
version "5.3.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37"