diff --git a/TERMTERM/.gitignore b/TERMTERM/.gitignore index 3b7954d0..2bbe3aaf 100644 --- a/TERMTERM/.gitignore +++ b/TERMTERM/.gitignore @@ -10,6 +10,9 @@ npm-debug.* *.orig.* web-build/ secret.ts +environment.js +ios/ +android/ # macOS .DS_Store diff --git a/TERMTERM/GoogleService-Info.plist b/TERMTERM/GoogleService-Info.plist new file mode 100644 index 00000000..af16043e --- /dev/null +++ b/TERMTERM/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyC8f2gCV1a-crdjF_qJMda1RP-boKqcs-I + GCM_SENDER_ID + 25902704158 + PLIST_VERSION + 1 + BUNDLE_ID + io.omz.termterm + PROJECT_ID + termterm-f2dd0 + STORAGE_BUCKET + termterm-f2dd0.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:25902704158:ios:9ead1313d399eb97ea300f + + \ No newline at end of file diff --git a/TERMTERM/app.json b/TERMTERM/app.json index 1a8b6e09..e00c7bb7 100644 --- a/TERMTERM/app.json +++ b/TERMTERM/app.json @@ -14,7 +14,9 @@ "updates": { "fallbackToCacheTimeout": 0 }, - "assetBundlePatterns": ["**/*"], + "assetBundlePatterns": [ + "**/*" + ], "ios": { "supportsTablet": true, "usesAppleSignIn": true, @@ -28,6 +30,9 @@ }, "web": { "favicon": "./assets/favicon.png" - } + }, + "plugins": [ + "expo-build-properties" + ] } } diff --git a/TERMTERM/index.js b/TERMTERM/index.js new file mode 100644 index 00000000..1d6e981e --- /dev/null +++ b/TERMTERM/index.js @@ -0,0 +1,8 @@ +import { registerRootComponent } from 'expo'; + +import App from './App'; + +// registerRootComponent calls AppRegistry.registerComponent('main', () => App); +// It also ensures that whether you load the app in Expo Go or in a native build, +// the environment is set up appropriately +registerRootComponent(App); diff --git a/TERMTERM/metro.config.js b/TERMTERM/metro.config.js new file mode 100644 index 00000000..ba170af8 --- /dev/null +++ b/TERMTERM/metro.config.js @@ -0,0 +1,7 @@ +// Learn more https://docs.expo.io/guides/customizing-metro +const { getDefaultConfig } = require("expo/metro-config"); + +const defaultConfig = getDefaultConfig(__dirname); +defaultConfig.resolver.sourceExts.push("cjs"); + +module.exports = defaultConfig; diff --git a/TERMTERM/package.json b/TERMTERM/package.json index 0c5bfa4d..875a62cf 100644 --- a/TERMTERM/package.json +++ b/TERMTERM/package.json @@ -1,18 +1,21 @@ { "name": "termterm", "version": "1.0.0", - "main": "node_modules/expo/AppEntry.js", "scripts": { - "start": "expo start", - "android": "expo start --android", - "ios": "expo start --ios", - "web": "expo start --web" + "start": "expo start --dev-client", + "android": "expo run:android", + "ios": "expo run:ios", + "web": "expo start --web", + "build:preview": "eas build --profile preview --platform ios", + "build:production": "eas build --profile production --platform ios" }, "dependencies": { "@expo/react-native-action-sheet": "^4.0.1", "@gorhom/bottom-sheet": "^4", "@react-native-async-storage/async-storage": "~1.17.3", "@react-native-community/masked-view": "^0.1.11", + "@react-native-firebase/analytics": "^18.5.0", + "@react-native-firebase/app": "^18.5.0", "@react-navigation/bottom-tabs": "^6.5.7", "@react-navigation/native": "^6.1.4", "@react-navigation/stack": "^6.3.14", @@ -21,17 +24,20 @@ "@types/styled-components": "^5.1.26", "@types/styled-components-react-native": "^5.2.1", "axios": "^1.4.0", - "expo": "~47.0.12", + "expo": "~47.0.14", "expo-apple-authentication": "~5.0.1", + "expo-build-properties": "~0.4.1", + "expo-dev-client": "~2.0.1", "expo-haptics": "~12.0.1", "expo-image-picker": "^14.1.1", "expo-sharing": "~11.0.1", - "expo-splash-screen": "^0.17.5", + "expo-splash-screen": "~0.17.5", "expo-status-bar": "~1.4.2", + "expo-updates": "~0.15.6", "lottie-react-native": "5.1.4", "react": "18.1.0", "react-dom": "18.1.0", - "react-native": "0.70.5", + "react-native": "0.70.8", "react-native-dropdown-picker": "^5.4.4", "react-native-gesture-handler": "~2.8.0", "react-native-modal": "^13.0.1", diff --git a/TERMTERM/src/components/OtherThink/Commnet.tsx b/TERMTERM/src/components/OtherThink/Commnet.tsx index ffbbc30f..aad89559 100644 --- a/TERMTERM/src/components/OtherThink/Commnet.tsx +++ b/TERMTERM/src/components/OtherThink/Commnet.tsx @@ -148,15 +148,15 @@ const Content = styled.Text<{ COLOR: colorTheme }>` width: 100%; ${TYPO_STYLE.Subheading[1].Regular}; color: ${(props) => props.COLOR.Text.active}; - text-align: start; + text-align: left; white-space: pre-line; - line-height: 20.5%; + /* line-height: 20.5%; */ `; const Source = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Caption[2].Medium}; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.disabled}; margin-top: 7px; `; @@ -180,7 +180,7 @@ const DefaultInfoWrapper = styled.View` const ProfileImageWrapper = styled.View` width: 22px; height: 22px; - border-radius: 100%; + border-radius: 100px; overflow: hidden; display: flex; align-items: center; @@ -220,7 +220,7 @@ const Likes = styled.Text<{ COLOR: colorTheme }>` const LikeButtonWrapper = styled.TouchableOpacity` width: 34px; height: 34px; - border-radius: 100%; + border-radius: 100px; overflow: hidden; margin-right: 7px; `; diff --git a/TERMTERM/src/components/apply/style.tsx b/TERMTERM/src/components/apply/style.tsx index 4c092546..2a644b5e 100644 --- a/TERMTERM/src/components/apply/style.tsx +++ b/TERMTERM/src/components/apply/style.tsx @@ -32,7 +32,7 @@ export const TitleWrapper = styled.View` export const Title = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Body[1].ExtraBold}; color: ${(props) => props.COLOR.Text.active}; - text-align: start; + text-align: left; `; export const TitleObjet = styled.View` @@ -46,7 +46,7 @@ export const TitleObjet = styled.View` export const Content = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Subheading[1].Regular}; - text-align: start; + text-align: left; white-space: pre-line; line-height: 20px; color: ${(props) => props.COLOR.Text.active}; diff --git a/TERMTERM/src/components/archive/default/index.tsx b/TERMTERM/src/components/archive/default/index.tsx index 3de3c404..96932ef8 100644 --- a/TERMTERM/src/components/archive/default/index.tsx +++ b/TERMTERM/src/components/archive/default/index.tsx @@ -63,7 +63,6 @@ const Title = styled.Text<{ COLOR: colorTheme }>` text-align: center; white-space: pre-line; margin-top: 20px; - line-height: 37%; `; const Subtitle = styled.Text<{ COLOR: colorTheme }>` diff --git a/TERMTERM/src/components/cards/EmptyWordCard.tsx b/TERMTERM/src/components/cards/EmptyWordCard.tsx index ac9831d3..e4330ebd 100644 --- a/TERMTERM/src/components/cards/EmptyWordCard.tsx +++ b/TERMTERM/src/components/cards/EmptyWordCard.tsx @@ -90,7 +90,6 @@ const Title = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Body[1].ExtraBold}; color: ${(props) => props.COLOR.Text.active}; text-align: center; - line-height: 37%; `; const SubTitle = styled.Text<{ COLOR: colorTheme }>` @@ -107,7 +106,7 @@ const WordButton = styled.TouchableOpacity<{ COLOR: colorTheme }>` height: 45px; z-index: 2; background-color: ${(props) => props.COLOR.THEME.primary[130]}; - border-radius: 50%; + border-radius: 50px; margin-top: 30px; display: flex; flex-direction: row; diff --git a/TERMTERM/src/components/cards/WordCard.tsx b/TERMTERM/src/components/cards/WordCard.tsx index b9068d7b..a2f20880 100644 --- a/TERMTERM/src/components/cards/WordCard.tsx +++ b/TERMTERM/src/components/cards/WordCard.tsx @@ -85,7 +85,7 @@ const WordButton = styled.TouchableOpacity` height: 44px; z-index: 2; background-color: #19d24d; - border-radius: 50%; + border-radius: 50px; margin-top: 30px; `; diff --git a/TERMTERM/src/components/common/Bookmark.tsx b/TERMTERM/src/components/common/Bookmark.tsx index 8d26e30b..2c0afc0a 100644 --- a/TERMTERM/src/components/common/Bookmark.tsx +++ b/TERMTERM/src/components/common/Bookmark.tsx @@ -9,7 +9,7 @@ export const BookmarkButton = styled.TouchableOpacity` right: 10px; width: 38px; height: 38px; - border-radius: 100%; + border-radius: 100px; display: flex; align-items: center; justify-content: center; @@ -27,7 +27,7 @@ export const PreviewBookmark = styled.TouchableOpacity` export const BookmarkWrapper = styled.TouchableOpacity` width: 38px; height: 38px; - border-radius: 100%; + border-radius: 100px; display: flex; align-items: center; justify-content: center; diff --git a/TERMTERM/src/components/common/CustomEmailInput.tsx b/TERMTERM/src/components/common/CustomEmailInput.tsx index 9609c334..8fd5ba43 100644 --- a/TERMTERM/src/components/common/CustomEmailInput.tsx +++ b/TERMTERM/src/components/common/CustomEmailInput.tsx @@ -50,7 +50,7 @@ const Input = styled.TextInput<{ COLOR: colorTheme }>` ${TYPO_STYLE.Subheading[1].Regular}; width: 100%; height: 100%; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.active}; margin-bottom: 2px; `; diff --git a/TERMTERM/src/components/common/CustomTextInput.tsx b/TERMTERM/src/components/common/CustomTextInput.tsx index 0741976b..bd4384b7 100644 --- a/TERMTERM/src/components/common/CustomTextInput.tsx +++ b/TERMTERM/src/components/common/CustomTextInput.tsx @@ -58,7 +58,7 @@ const InputBox = styled.View` const Input = styled.TextInput<{ COLOR: colorTheme }>` width: 100%; height: 100%; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.active}; margin-bottom: 2px; `; diff --git a/TERMTERM/src/components/common/CustomTextarea.tsx b/TERMTERM/src/components/common/CustomTextarea.tsx index 6e665b8f..8e277911 100644 --- a/TERMTERM/src/components/common/CustomTextarea.tsx +++ b/TERMTERM/src/components/common/CustomTextarea.tsx @@ -46,7 +46,7 @@ const Input = styled.TextInput<{ COLOR: colorTheme }>` padding: 15px 20px; outline: none; border: none; - text-align: start; + text-align: left; ${TYPO_STYLE.Subheading[1].Regular}; `; diff --git a/TERMTERM/src/components/common/Filter/index.tsx b/TERMTERM/src/components/common/Filter/index.tsx index 21cdf82c..1868dbef 100644 --- a/TERMTERM/src/components/common/Filter/index.tsx +++ b/TERMTERM/src/components/common/Filter/index.tsx @@ -52,7 +52,7 @@ const FilterButton = styled.TouchableOpacity` const CilrcleWrapper = styled.View<{ COLOR: colorTheme }>` width: 11px; height: 11px; - border-radius: 100%; + border-radius: 100px; background-color: ${(props) => props.COLOR.THEME.primary[130]}; display: flex; align-items: center; diff --git a/TERMTERM/src/components/common/Input.tsx b/TERMTERM/src/components/common/Input.tsx index 9deb32de..c6968b1f 100644 --- a/TERMTERM/src/components/common/Input.tsx +++ b/TERMTERM/src/components/common/Input.tsx @@ -73,7 +73,7 @@ const InputBox = styled.View` const Input = styled.TextInput<{ COLOR: colorTheme }>` width: 100%; height: 100%; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.active}; margin-bottom: 2px; `; diff --git a/TERMTERM/src/components/common/TermBox/index.tsx b/TERMTERM/src/components/common/TermBox/index.tsx index 2e1d7f5f..97ad907c 100644 --- a/TERMTERM/src/components/common/TermBox/index.tsx +++ b/TERMTERM/src/components/common/TermBox/index.tsx @@ -98,7 +98,7 @@ const BookmarkButton = styled.TouchableOpacity<{ mode: boolean }>` align-items: center; justify-content: center; background-color: ${(props) => (props.mode ? "#e2e2e261" : "#0000003b")}; - border-radius: 100%; + border-radius: 100px; `; const ResultTitle = styled.Text<{ COLOR: colorTheme }>` diff --git a/TERMTERM/src/components/home/DailyTermBox.tsx b/TERMTERM/src/components/home/DailyTermBox.tsx index 2042f1c4..227544f9 100644 --- a/TERMTERM/src/components/home/DailyTermBox.tsx +++ b/TERMTERM/src/components/home/DailyTermBox.tsx @@ -92,9 +92,9 @@ const Content = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Caption[1].Regular}; //TODO : line-height 수정 flex: 1; - line-height: 17.5%; + /* line-height: 17.5%; */ color: ${(props) => props.COLOR.Text.default}; - text-align: start; + text-align: left; white-space: pre-line; `; diff --git a/TERMTERM/src/components/my/Point/HistoryWrapper.tsx b/TERMTERM/src/components/my/Point/HistoryWrapper.tsx index 5af9a448..7d579373 100644 --- a/TERMTERM/src/components/my/Point/HistoryWrapper.tsx +++ b/TERMTERM/src/components/my/Point/HistoryWrapper.tsx @@ -94,7 +94,7 @@ const Container = styled.View` const TitleBox = styled.Text<{ COLOR: colorTheme }>` width: 100%; - text-align: start; + text-align: left; ${TYPO_STYLE.Body[2].Bold}; color: ${(props) => props.COLOR.Text.active}; `; diff --git a/TERMTERM/src/screens/CompleteQuiz.tsx b/TERMTERM/src/screens/CompleteQuiz.tsx index 71589971..d2cd7809 100644 --- a/TERMTERM/src/screens/CompleteQuiz.tsx +++ b/TERMTERM/src/screens/CompleteQuiz.tsx @@ -240,7 +240,7 @@ const CompleteButton = styled.TouchableOpacity<{ z-index: 2; background-color: ${(props) => props.mode ? props.COLOR.Neutral[100] : props.COLOR.Background.onSurface}; - border-radius: 50%; + border-radius: 50px; margin-top: 40px; `; diff --git a/TERMTERM/src/screens/MakeFolder.tsx b/TERMTERM/src/screens/MakeFolder.tsx index 64787306..cd62cd50 100644 --- a/TERMTERM/src/screens/MakeFolder.tsx +++ b/TERMTERM/src/screens/MakeFolder.tsx @@ -9,6 +9,7 @@ import { Keyboard } from "react-native"; import CompleteButton from "@components/makefolder/CompleteButton"; import { useHaptics } from "@hooks/useHaptics"; import { useFolder } from "@hooks/useFolder"; +import { logGAevent } from "@utils/analytics"; export type Props = StackScreenProps; @@ -27,7 +28,7 @@ const MakeFolder = ({ navigation }: Props) => { const onComplete = () => { if (info.name !== "") { const res = createFolder({ description: info.desc, title: info.name }); - + logGAevent("make_folder"); getUsersFolderList(); navigation.pop(); } else { diff --git a/TERMTERM/src/screens/QuizResult.tsx b/TERMTERM/src/screens/QuizResult.tsx index b9908edf..21fa4336 100644 --- a/TERMTERM/src/screens/QuizResult.tsx +++ b/TERMTERM/src/screens/QuizResult.tsx @@ -15,6 +15,7 @@ import { import QuizAnswerCard from "@components/terms/QuizAnswerCard"; import { eachQuizAnswerResult, quizState } from "@recoil/quizState"; import { useRecoilValue, useSetRecoilState } from "recoil"; +import { logGAevent } from "@utils/analytics"; export type Props = StackScreenProps; @@ -44,11 +45,18 @@ const QuizResult = ({ navigation, route }: Props) => { theme={mode} type={mode ? BUTTON_TYPE.primary : BUTTON_TYPE.secondary} state={BUTTON_STATE.active} - onPress={() => - currIdx === 5 - ? navigation.navigate("CompleteQuiz", {id: quizResult.statusCode}) - : navigation.navigate("DailyQuiz") - } + onPress={() => { + if (currIdx === 5) { + logGAevent("daily_quiz_complete", { + status_code: quizResult.statusCode, + }); + navigation.navigate("CompleteQuiz", { + id: quizResult.statusCode, + }); + } else { + navigation.navigate("DailyQuiz"); + } + }} style={{ width: "90%", alignSelf: "center", marginTop: "7%" }} /> diff --git a/TERMTERM/src/screens/ReportWord.tsx b/TERMTERM/src/screens/ReportWord.tsx index f5503b64..5f0ea87f 100644 --- a/TERMTERM/src/screens/ReportWord.tsx +++ b/TERMTERM/src/screens/ReportWord.tsx @@ -23,17 +23,17 @@ const ReportWord = ({ route, navigation }: Props) => { const [COLOR, mode] = useThemeStyle(); const [reasonType, setReasonType] = useState([ - {label: "저작권 침해, 명예훼손", value: "COPYRIGHT"}, - {label: "개인정보 유출", value: "PERSONAL_INFORMATION"}, - {label: "광고 및 홍보성 내용", value: "ADVERTISEMENT"}, - {label: "용어와 무관한 내용", value: "IRRELEVANT_CONTENT"}, - {label: "사기 또는 거짓 정보", value: "FRAUD"}, - {label: "잘못된 정보 포함", value: "INCORRECT_CONTENT"}, - {label: "혐오 발언 또는 상징", value: "DISGUST"}, - {label: "욕설, 비방, 선정성 등 미풍양속을 해치는 내용", value: "ABUSE"}, - {label: "스팸", value: "SPAM"}, - {label: "기타", value: "OTHER"}, - ]) + { label: "저작권 침해, 명예훼손", value: "COPYRIGHT" }, + { label: "개인정보 유출", value: "PERSONAL_INFORMATION" }, + { label: "광고 및 홍보성 내용", value: "ADVERTISEMENT" }, + { label: "용어와 무관한 내용", value: "IRRELEVANT_CONTENT" }, + { label: "사기 또는 거짓 정보", value: "FRAUD" }, + { label: "잘못된 정보 포함", value: "INCORRECT_CONTENT" }, + { label: "혐오 발언 또는 상징", value: "DISGUST" }, + { label: "욕설, 비방, 선정성 등 미풍양속을 해치는 내용", value: "ABUSE" }, + { label: "스팸", value: "SPAM" }, + { label: "기타", value: "OTHER" }, + ]); const [selectedReason, setSelectedReason] = useState(""); const [etc, setEtc] = useState(""); const [btnPosition, setBtnPosition] = useState(70); @@ -219,7 +219,7 @@ const LightTitleWrapper = styled.View` const Title = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Body[1].ExtraBold}; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.active}; `; diff --git a/TERMTERM/src/screens/ReviewQuizResult.tsx b/TERMTERM/src/screens/ReviewQuizResult.tsx index 0ba125fc..a4ea87e8 100644 --- a/TERMTERM/src/screens/ReviewQuizResult.tsx +++ b/TERMTERM/src/screens/ReviewQuizResult.tsx @@ -16,6 +16,7 @@ import { import QuizAnswerCard from "@components/terms/QuizAnswerCard"; import { eachQuizAnswerResult, quizState } from "@recoil/quizState"; import { useRecoilValue, useSetRecoilState } from "recoil"; +import { logGAevent } from "@utils/analytics"; export type Props = StackScreenProps; @@ -29,11 +30,17 @@ const ReviewQuizResult = ({ navigation, route }: Props) => { const handleCompleteButton = () => { setCurrReviewIdx((prev) => ({ ...prev, currReviewIdx: 0 })); - navigation.navigate("CompleteQuiz", {id: quizResult.statusCode}); + logGAevent("review_quiz_complete", { + status_code: quizResult.statusCode, + }); + navigation.navigate("CompleteQuiz", { id: quizResult.statusCode }); }; const handleReviewButton = () => { - setCurrReviewIdx((prev) => ({ ...prev, currReviewIdx: curr.currReviewIdx })); + setCurrReviewIdx((prev) => ({ + ...prev, + currReviewIdx: curr.currReviewIdx, + })); navigation.navigate("ReviewQuiz"); }; diff --git a/TERMTERM/src/screens/SelectFolder.tsx b/TERMTERM/src/screens/SelectFolder.tsx index 9b94bb98..f95944fc 100644 --- a/TERMTERM/src/screens/SelectFolder.tsx +++ b/TERMTERM/src/screens/SelectFolder.tsx @@ -100,7 +100,7 @@ const TitleWrapper = styled.View` `; const Title = styled.Text<{ COLOR: colorTheme }>` - text-align: start; + text-align: left; white-space: pre-line; word-break: keep-all; ${TYPO_STYLE.Body[1].ExtraBold}; diff --git a/TERMTERM/src/screens/Support/First.tsx b/TERMTERM/src/screens/Support/First.tsx index 03d1c55c..7ac6ac9c 100644 --- a/TERMTERM/src/screens/Support/First.tsx +++ b/TERMTERM/src/screens/Support/First.tsx @@ -188,7 +188,7 @@ const TitleWrapper = styled.View` const Title = styled.Text<{ COLOR: colorTheme }>` ${TYPO_STYLE.Body[1].ExtraBold}; - text-align: start; + text-align: left; color: ${(props) => props.COLOR.Text.active}; `; diff --git a/TERMTERM/src/screens/Toolbar/Search.tsx b/TERMTERM/src/screens/Toolbar/Search.tsx index 92a36b5e..4c8c2ba3 100644 --- a/TERMTERM/src/screens/Toolbar/Search.tsx +++ b/TERMTERM/src/screens/Toolbar/Search.tsx @@ -18,6 +18,7 @@ import { useFolder } from "@hooks/useFolder"; import { useCuration } from "@hooks/useCuration"; import { useMember } from "@hooks/useMember"; import { Category } from "Curation"; +import { logGAevent } from "@utils/analytics"; export type Props = StackScreenProps; @@ -34,6 +35,7 @@ const Search = ({ navigation }: Props) => { const handleSearch = async (keyword: string) => { await searchTerm(keyword); + logGAevent("search_query_cnt"); if (keyword !== "") setRecords([...records, keyword]); }; diff --git a/TERMTERM/src/utils/analytics.ts b/TERMTERM/src/utils/analytics.ts new file mode 100644 index 00000000..e1753c9e --- /dev/null +++ b/TERMTERM/src/utils/analytics.ts @@ -0,0 +1,8 @@ +import analytics from "@react-native-firebase/analytics"; + +export const logGAevent = async ( + eventName: string, + params?: Record +) => { + await analytics().logEvent(eventName, params); +}; diff --git a/TERMTERM/yarn.lock b/TERMTERM/yarn.lock index f806daf3..e49e0752 100644 --- a/TERMTERM/yarn.lock +++ b/TERMTERM/yarn.lock @@ -1539,19 +1539,12 @@ dependencies: "@hapi/hoek" "^11.0.2" -"@jest/create-cache-key-function@^29.0.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.4.3.tgz#ea37769f69523019d81ee089a25a62550f209eb7" - integrity sha512-AJVFQTTy6jnZAQiAZrdOaTAPzJUrvAE/4IMe+Foav6WPhypFszqg7a4lOTyuzYQEEiT5RSrGYg9IY+/ivxiyXw== - dependencies: - "@jest/types" "^29.4.3" - -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== +"@jest/create-cache-key-function@^27.0.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz#7448fae15602ea95c828f5eceed35c202a820b31" + integrity sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ== dependencies: - "@sinclair/typebox" "^0.25.16" + "@jest/types" "^27.5.1" "@jest/types@^26.6.2": version "26.6.2" @@ -1575,18 +1568,6 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" - integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== - dependencies: - "@jest/schemas" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -1731,7 +1712,7 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@^9.2.1": +"@react-native-community/cli-doctor@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz#8817a3fd564453467def5b5bc8aecdc4205eff50" integrity sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA== @@ -1753,31 +1734,18 @@ sudo-prompt "^9.0.0" wcwidth "^1.0.1" -"@react-native-community/cli-hermes@^9.2.1": - version "9.3.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz#569d27c1effd684ba451ad4614e29a99228cec49" - integrity sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ== +"@react-native-community/cli-hermes@^9.3.1": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-9.3.4.tgz#47851847c4990272687883bd8bf53733d5f3c341" + integrity sha512-VqTPA7kknCXgtYlRf+sDWW4yxZ6Gtg1Ga+Rdrn1qSKuo09iJ8YKPoQYOu5nqbIYJQAEhorWQyo1VvNgd0wd49w== dependencies: - "@react-native-community/cli-platform-android" "^9.3.1" + "@react-native-community/cli-platform-android" "^9.3.4" "@react-native-community/cli-tools" "^9.2.1" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz#cd73cb6bbaeb478cafbed10bd12dfc01b484d488" - integrity sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg== - dependencies: - "@react-native-community/cli-tools" "^9.2.1" - chalk "^4.1.2" - execa "^1.0.0" - fs-extra "^8.1.0" - glob "^7.1.3" - logkitty "^0.7.1" - slash "^3.0.0" - -"@react-native-community/cli-platform-android@^9.3.1": +"@react-native-community/cli-platform-android@9.3.1": version "9.3.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz#378cd72249653cc74672094400657139f21bafb8" integrity sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew== @@ -1790,18 +1758,20 @@ logkitty "^0.7.1" slash "^3.0.0" -"@react-native-community/cli-platform-ios@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz#d90740472216ffae5527dfc5f49063ede18a621f" - integrity sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg== +"@react-native-community/cli-platform-android@^9.3.4": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.4.tgz#42f22943b6ee15713add6af8608c1d0ebf79d774" + integrity sha512-BTKmTMYFuWtMqimFQJfhRyhIWw1m+5N5svR1S5+DqPcyFuSXrpNYDWNSFR8E105xUbFANmsCZZQh6n1WlwMpOA== dependencies: "@react-native-community/cli-tools" "^9.2.1" chalk "^4.1.2" execa "^1.0.0" + fs-extra "^8.1.0" glob "^7.1.3" - ora "^5.4.1" + logkitty "^0.7.1" + slash "^3.0.0" -"@react-native-community/cli-platform-ios@^9.3.0": +"@react-native-community/cli-platform-ios@9.3.0", "@react-native-community/cli-platform-ios@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz#45abde2a395fddd7cf71e8b746c1dc1ee2260f9a" integrity sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw== @@ -1865,16 +1835,16 @@ dependencies: joi "^17.2.1" -"@react-native-community/cli@9.2.1": - version "9.2.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.2.1.tgz#15cc32531fc323d4232d57b1f2d7c571816305ac" - integrity sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ== +"@react-native-community/cli@9.3.2": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.3.2.tgz#81761880af00c1894d85380d8c9a358659865204" + integrity sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w== dependencies: "@react-native-community/cli-clean" "^9.2.1" "@react-native-community/cli-config" "^9.2.1" "@react-native-community/cli-debugger-ui" "^9.0.0" - "@react-native-community/cli-doctor" "^9.2.1" - "@react-native-community/cli-hermes" "^9.2.1" + "@react-native-community/cli-doctor" "^9.3.0" + "@react-native-community/cli-hermes" "^9.3.1" "@react-native-community/cli-plugin-metro" "^9.2.1" "@react-native-community/cli-server-api" "^9.2.1" "@react-native-community/cli-tools" "^9.2.1" @@ -1893,6 +1863,19 @@ 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-firebase/analytics@^18.5.0": + version "18.5.0" + resolved "https://registry.yarnpkg.com/@react-native-firebase/analytics/-/analytics-18.5.0.tgz#cca5858e44f3f8cbf387fa7cd6debb95fbcf8023" + integrity sha512-+8fkDedcftieOBEkNdqEW0lS/FB9SKzfUc3yYXnJcLTy3Ceg9JZga/tWz4BGbbxPddUy1Sm2UuWDuOxsdkFUyA== + +"@react-native-firebase/app@^18.5.0": + version "18.5.0" + resolved "https://registry.yarnpkg.com/@react-native-firebase/app/-/app-18.5.0.tgz#198a133229d1b8710f257e76d9703dcb7e4cd6e0" + integrity sha512-AhHQi5KFDlKZn/lH7rEYtLfpsGamEq+P/cXZWcNPcP0WGlmi++abk7Pxnn4MjnG7TNhEyG/C9uq//qb6VhXaZg== + dependencies: + opencollective-postinstall "^2.0.1" + superstruct "^0.6.2" + "@react-native/assets@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" @@ -1995,11 +1978,6 @@ component-type "^1.2.1" join-component "^1.1.0" -"@sinclair/typebox@^0.25.16": - version "0.25.23" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.23.tgz#1c15b0d2b872d89cc0f47c7243eacb447df8b8bd" - integrity sha512-VEB8ygeP42CFLWyAJhN5OklpxUliqdNEUcXb4xZ/CINqtYGTjL5ukluKdKzQ0iWdUxyQ7B0539PAUhHKrCNWSQ== - "@types/hammerjs@^2.0.36": version "2.0.41" resolved "https://registry.yarnpkg.com/@types/hammerjs/-/hammerjs-2.0.41.tgz#f6ecf57d1b12d2befcce00e928a6a097c22980aa" @@ -2125,13 +2103,6 @@ dependencies: "@types/yargs-parser" "*" -"@types/yargs@^17.0.8": - version "17.0.22" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" - integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== - dependencies: - "@types/yargs-parser" "*" - "@urql/core@2.3.6": version "2.3.6" resolved "https://registry.yarnpkg.com/@urql/core/-/core-2.3.6.tgz#ee0a6f8fde02251e9560c5f17dce5cd90f948552" @@ -2195,6 +2166,16 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" +ajv@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + anser@^1.4.9: version "1.4.10" resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b" @@ -2868,6 +2849,16 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -3559,6 +3550,14 @@ expo-asset@~8.7.0: path-browserify "^1.0.0" url-parse "^1.5.9" +expo-build-properties@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.4.1.tgz#f2511d281898657b225710051860d71c63b9ad5e" + integrity sha512-Y492KoSfb8Jj5y8qA+J0Wu0HjuCmJuqCB7fxOAxqNDS5V8JJNUU9106ESDnlQ7xyxkjMlGmVZN1/oRUoC0zBJg== + dependencies: + ajv "^8.11.0" + semver "^7.3.5" + expo-constants@~14.0.0, expo-constants@~14.0.2: version "14.0.2" resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.0.2.tgz#2cb1dec8f41a64c2fc5b4eecaf77d7661cad01cc" @@ -3567,6 +3566,44 @@ expo-constants@~14.0.0, expo-constants@~14.0.2: "@expo/config" "~7.0.2" uuid "^3.3.2" +expo-dev-client@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-2.0.1.tgz#f5878807c96a60d90fc219b6535654cb6ddb9214" + integrity sha512-+OXXZKKo/CplqklpaZasHAX7qaRrzC83biqXTFa1z5NiFW41uqtAqTFx6gmPi4kx3YgwtD+ep6R3SRrKjdCukg== + dependencies: + expo-dev-launcher "2.0.2" + expo-dev-menu "2.0.2" + expo-dev-menu-interface "1.0.0" + expo-manifests "~0.4.0" + expo-updates-interface "~0.8.0" + +expo-dev-launcher@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-2.0.2.tgz#bbcde0dd35e81ed6a415dc5b246da68e9b365255" + integrity sha512-MQT7VSOHJQrEs3YAv5BQLYs3Uk7P1dNqBw6kKrj3jKBq0z92k2LLg1aCk7nP8OGJVDvrb2jTXBka8VXVqF0ECg== + dependencies: + expo-dev-menu "2.0.2" + resolve-from "^5.0.0" + semver "^7.3.5" + +expo-dev-menu-interface@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.0.0.tgz#00204cb7e1c43cc8a4eee9cb74f6e5760b512d75" + integrity sha512-4lsVofTwV9oBM+zo7XhtmvbfiXD4I7I3Rqns6U0i6IOnH7OGBDpKvGZ5YikWPFGn6NOu8loqqd8S7inFIaxC0A== + +expo-dev-menu@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-2.0.2.tgz#9a2d7a00097d4eafe54cf8e9a5c727174e101e4c" + integrity sha512-SxR5riXgm+VVKsDKC/bOLuOJ0CKutW07G+OqJ9eYfxwGfxa8omLJHwagbCsd8FwUPGkzvzgfRJRGLo5J6REMow== + dependencies: + expo-dev-menu-interface "1.0.0" + semver "^7.3.5" + +expo-eas-client@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.4.1.tgz#4ccdafb5faeac97394fb3fa4c777ec22b2017f1d" + integrity sha512-bIj2rm6lw/iZAOAW5CSAxshSXi2oY+ORpHRp4ZdqSDuwA0RIa9jGyMm1Jhostjjz5y9k2uur5vtVqq6P3Bwx/Q== + expo-error-recovery@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz#3e3333e134c992c234539d3773fe78915c883755" @@ -3603,11 +3640,23 @@ expo-image-picker@^14.1.1: dependencies: expo-image-loader "~4.1.0" +expo-json-utils@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.4.0.tgz#47ae83a1cc973101d62371f94790e9ad39491751" + integrity sha512-lK6gjea72XTYafpKNNJaMrBK5dYAX8LFLXrp/M1MKJU4Zy7EHd2rKrLwop3GZts8VdwLHeVcMko79SAbhe3i5Q== + expo-keep-awake@~11.0.1: version "11.0.1" resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz#ee354465892a94040ffe09901b85b469e7d54fb3" integrity sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A== +expo-manifests@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.4.0.tgz#6fd44b6427e113f2eb9409ca46df95cbbea068df" + integrity sha512-IdZjIYDxx4nH0Gb3X4T4/2YknmR/jSLxymAS0m7SfJ9V7Vlu/y0p3lNwUys9/JzihxX9PDIuOi/Y4/uqL6TlXg== + dependencies: + expo-json-utils "~0.4.0" + expo-modules-autolinking@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.0.2.tgz#f072f342ab797e43b16ddcdef251fcd4db851e1a" @@ -3632,7 +3681,7 @@ expo-sharing@~11.0.1: resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.0.1.tgz#a2c6beb7458e04762a53b584c3b7b79ae422e2da" integrity sha512-GlI2+fRxfdCNUftFPfqhbCSd6OQaVf/WNAADWZnRanRQRbQdQjM6L0oMmUTwQStc36cmzl+vGgNlouwdmTDseA== -expo-splash-screen@^0.17.5: +expo-splash-screen@~0.17.5: version "0.17.5" resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.17.5.tgz#a18dc59c1cc28ebbedbf0a7529a419d18ab0b311" integrity sha512-ejSO78hwHXz8T9u8kh8t4r6CR4h70iBvA65gX8GK+dYxZl6/IANPbIb2VnUpND9vqfW+JnkDw+ZFst+gDnkpcQ== @@ -3645,10 +3694,38 @@ expo-status-bar@~1.4.2: resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.4.2.tgz#14f2b9a6dc7d550578421f07e0046f5fafc2b403" integrity sha512-ZWjO6D4ARGYfAd3SWDD3STNudHDhyBZDZjhhseqoEmsf7bS9ykny8KKOhlzJW24qIQNPhkgdvHhaw9fQwMJy3Q== -expo@~47.0.12: - version "47.0.13" - resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.13.tgz#f53f82e7f9e209f8a8b25f2493f58439958368cb" - integrity sha512-9VjjGdViCJ9NfWbUE7brkwFBDvKuA35V345vMtHFYNKoGJjXib36yitmawreMDQFv0kMTqTnzc7T2191Pod7Ng== +expo-structured-headers@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.0.1.tgz#291596c61acd2a45839ad6c6798c3d5cfc1eb4e9" + integrity sha512-x6hkzuQL5HJoyB+xQyBf9M04ZUmrjFWqEW7gzIYWN/6LA+dgyaV4fF6U9++Re+GgGjF03vHJFqR1xYaosKKZYQ== + +expo-updates-interface@~0.8.0: + version "0.8.1" + resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.8.1.tgz#baeeeb01a77439682432be83ba78bc2e00547c4e" + integrity sha512-1TPFCTQFHMZbltFGnxig3PbN/b6nO4T0RyL8XqdmYvQY0ElOCprZXQQ8vNDqeLYHgausG1lD4OyJwFzh2SNBSA== + +expo-updates@~0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.15.6.tgz#99e3faa3e38312ebddb77afb697863fa1f1f6a03" + integrity sha512-g5BuCmWdyiLqFaVkVz+m7r6U7MHJrLKvqybs04H6ArMNpTEf6FhUwSzmnCyOkSSP35KFNkC/I0dYlgW3Vcf1sw== + dependencies: + "@expo/code-signing-certificates" "0.0.5" + "@expo/config" "~7.0.2" + "@expo/config-plugins" "~5.0.3" + "@expo/metro-config" "~0.5.0" + arg "4.1.0" + expo-eas-client "~0.4.0" + expo-manifests "~0.4.0" + expo-structured-headers "~3.0.0" + expo-updates-interface "~0.8.0" + fbemitter "^3.0.0" + resolve-from "^5.0.0" + uuid "^3.4.0" + +expo@~47.0.14: + version "47.0.14" + resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.14.tgz#3386d82d56f0827d1c5661aec5eae7d2b7dea43e" + integrity sha512-WA6BbLI00R9TweBHRVm+kAFoYqkYOK4oMizNV2CmpxEJaRm8J4R9KI2+WnfkYVPiW6dzDTUR4bG6yAwgzSowEA== dependencies: "@babel/runtime" "^7.14.0" "@expo/cli" "0.4.11" @@ -3704,7 +3781,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -fast-deep-equal@^3.1.3: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3879,11 +3956,23 @@ fontfaceobserver@^2.1.0: resolved "https://registry.yarnpkg.com/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz#5fb392116e75d5024b7ec8e4f2ce92106d1488c8" integrity sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg== -for-in@^1.0.2: +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g== + +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== + dependencies: + for-in "^1.0.1" + form-data@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -4721,6 +4810,11 @@ json-schema-deref-sync@^0.13.0: traverse "~0.6.6" valid-url "~1.0.9" +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -4780,7 +4874,7 @@ kind-of@^5.0.0: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.0, kind-of@^6.0.1, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -5400,6 +5494,14 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA== + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -5676,6 +5778,11 @@ open@^8.0.4, open@^8.3.0: is-docker "^2.1.1" is-wsl "^2.2.0" +opencollective-postinstall@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" + integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== + ora@3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" @@ -5945,7 +6052,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -promise@^8.0.3: +promise@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== @@ -5982,6 +6089,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== + qrcode-terminal@0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz#ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e" @@ -6233,15 +6345,15 @@ react-native-webview@11.23.1: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.70.5: - version "0.70.5" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.5.tgz#f60540b21d338891086e0a834e331c124dd1f55c" - integrity sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw== +react-native@0.70.8: + version "0.70.8" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.8.tgz#aa9aae8e6291589908db74fe69e0ec1d9a9c5490" + integrity sha512-O3ONJed9W/VEEVWsbZcwyMDhnEvw7v9l9enqWqgbSGLzHfh6HeIGMCNmjz+kRsHnC7AiF47fupWfgYX7hNnhoQ== dependencies: - "@jest/create-cache-key-function" "^29.0.3" - "@react-native-community/cli" "9.2.1" - "@react-native-community/cli-platform-android" "9.2.1" - "@react-native-community/cli-platform-ios" "9.2.1" + "@jest/create-cache-key-function" "^27.0.1" + "@react-native-community/cli" "9.3.2" + "@react-native-community/cli-platform-android" "9.3.1" + "@react-native-community/cli-platform-ios" "9.3.0" "@react-native/assets" "1.0.0" "@react-native/normalize-color" "2.0.0" "@react-native/polyfills" "2.0.0" @@ -6258,7 +6370,7 @@ react-native@0.70.5: mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" - promise "^8.0.3" + promise "^8.3.0" react-devtools-core "4.24.0" react-native-codegen "^0.70.6" react-native-gradle-plugin "^0.70.3" @@ -6659,6 +6771,15 @@ setprototypeof@1.2.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -7008,6 +7129,14 @@ sudo-prompt@^9.0.0: resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd" integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== +superstruct@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.6.2.tgz#c5eb034806a17ff98d036674169ef85e4c7f6a1c" + integrity sha512-lvA97MFAJng3rfjcafT/zGTSWm6Tbpk++DP6It4Qg7oNaeM+2tdJMuVgGje21/bIpBEs6iQql1PJH6dKTjl4Ig== + dependencies: + clone-deep "^2.0.1" + kind-of "^6.0.1" + supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -7371,6 +7500,13 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + urijs@^1.19.6: version "1.19.11" resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"