diff --git a/.github/workflows/pull-request-commit.yml b/.github/workflows/pull-request-commit.yml index 796ebdf9bd..10c9a2c5ff 100644 --- a/.github/workflows/pull-request-commit.yml +++ b/.github/workflows/pull-request-commit.yml @@ -32,9 +32,6 @@ jobs: node-version-file: .nvmrc cache: yarn - - name: ⚙️ Install Dependencies - run: yarn install - - name: Ensure tracking relevant branches and checkout base run: | git checkout ${{ github.head_ref }} @@ -50,6 +47,7 @@ jobs: git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.name "github-actions[bot]" git merge --no-edit ${{ github.head_ref }} + yarn install - name: 🔦 Generate stats file for PR run: | @@ -72,6 +70,7 @@ jobs: - name: 🔦 Generate stats file from base commit if: ${{ !steps.get-base-stats.outputs.cache-hit }} run: | + yarn install yarn generate-webpack-stats-file mv stats.json stats-base.json diff --git a/package.json b/package.json index 6165d953af..433a1f80e0 100644 --- a/package.json +++ b/package.json @@ -65,9 +65,6 @@ "@miblanchard/react-native-slider": "^2.3.1", "@radix-ui/react-dropdown-menu": "^2.0.6", "@react-native-async-storage/async-storage": "1.21.0", - "@react-native-camera-roll/camera-roll": "^5.2.2", - "@react-native-clipboard/clipboard": "^1.10.0", - "@react-native-community/blur": "^4.3.0", "@react-native-masked-view/masked-view": "0.3.0", "@react-native-menu/menu": "^0.8.0", "@react-native-picker/picker": "2.6.1", @@ -108,27 +105,30 @@ "email-validator": "^2.0.4", "emoji-mart": "^5.5.2", "eventemitter3": "^5.0.1", - "expo": "^50.0.0-preview.10", - "expo-application": "~5.8.2", - "expo-build-properties": "^0.11.0", - "expo-camera": "~14.0.1", - "expo-constants": "~15.4.3", - "expo-dev-client": "~3.3.5", - "expo-device": "~5.9.2", - "expo-image": "~1.10.3", + "expo": "^50.0.8", + "expo-application": "^5.8.3", + "expo-build-properties": "^0.11.1", + "expo-camera": "~14.0.4", + "expo-clipboard": "^5.0.1", + "expo-constants": "~15.4.5", + "expo-dev-client": "~3.3.8", + "expo-device": "~5.9.3", + "expo-haptics": "^12.8.1", + "expo-image": "~1.10.6", "expo-image-manipulator": "^11.8.0", "expo-image-picker": "~14.7.1", + "expo-linear-gradient": "^12.7.2", "expo-linking": "^6.2.2", - "expo-localization": "~14.8.2", + "expo-localization": "~14.8.3", "expo-media-library": "~15.9.1", - "expo-notifications": "~0.27.3", + "expo-notifications": "~0.27.6", "expo-sharing": "^11.10.0", - "expo-splash-screen": "~0.26.2", + "expo-splash-screen": "~0.26.4", "expo-status-bar": "~1.11.1", "expo-system-ui": "~2.9.3", - "expo-task-manager": "~11.7.0", - "expo-updates": "~0.24.7", - "expo-web-browser": "~12.8.1", + "expo-task-manager": "~11.7.2", + "expo-updates": "~0.24.10", + "expo-web-browser": "~12.8.2", "fast-text-encoding": "^1.0.6", "history": "^5.3.0", "js-sha256": "^0.9.0", @@ -143,7 +143,6 @@ "lodash.samplesize": "^4.2.0", "lodash.set": "^4.3.2", "lodash.shuffle": "^4.2.0", - "lru_map": "^0.4.1", "mobx": "^6.6.1", "mobx-react-lite": "^3.4.0", "mobx-utils": "^6.0.6", @@ -154,20 +153,16 @@ "psl": "^1.9.0", "react": "18.2.0", "react-avatar-editor": "^13.0.0", - "react-circular-progressbar": "^2.1.0", "react-dom": "^18.2.0", "react-keyed-flatten-children": "^3.0.0", "react-native": "0.73.2", - "react-native-appstate-hook": "^1.0.6", "react-native-date-picker": "^4.4.0", "react-native-drawer-layout": "^4.0.0-alpha.3", "react-native-fs": "^2.20.0", "react-native-gesture-handler": "~2.14.0", - "react-native-get-random-values": "~1.8.0", - "react-native-haptic-feedback": "^1.14.0", + "react-native-get-random-values": "~1.11.0", "react-native-image-crop-picker": "^0.38.1", "react-native-ios-context-menu": "^1.15.3", - "react-native-linear-gradient": "^2.6.2", "react-native-pager-view": "6.2.3", "react-native-picker-select": "^8.1.0", "react-native-progress": "bluesky-social/react-native-progress", @@ -179,9 +174,7 @@ "react-native-uitextview": "^1.1.6", "react-native-url-polyfill": "^1.3.0", "react-native-uuid": "^2.0.1", - "react-native-version-number": "^0.3.6", "react-native-web": "~0.19.6", - "react-native-web-linear-gradient": "^1.1.2", "react-native-web-webview": "^1.0.2", "react-native-webview": "13.6.4", "react-responsive": "^9.0.2", @@ -190,7 +183,6 @@ "statsig-react-native-expo": "^4.6.1", "tippy.js": "^6.3.7", "tlds": "^1.234.0", - "use-deep-compare": "^1.1.0", "zeego": "^1.6.2", "zod": "^3.20.2" }, diff --git a/src/components/Button.tsx b/src/components/Button.tsx index ece1ad6b0f..12b3fe4cbb 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -11,7 +11,7 @@ import { View, ViewStyle, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' +import {LinearGradient} from 'expo-linear-gradient' import {Trans} from '@lingui/macro' import {android, atoms as a, flatten, tokens, useTheme} from '#/alf' diff --git a/src/components/GradientFill.tsx b/src/components/GradientFill.tsx index dc14aa72b7..3c64c8960e 100644 --- a/src/components/GradientFill.tsx +++ b/src/components/GradientFill.tsx @@ -1,5 +1,5 @@ import React from 'react' -import LinearGradient from 'react-native-linear-gradient' +import {LinearGradient} from 'expo-linear-gradient' import {atoms as a, tokens} from '#/alf' diff --git a/src/lib/app-info.ts b/src/lib/app-info.ts index 3071e031b3..83406bf2ef 100644 --- a/src/lib/app-info.ts +++ b/src/lib/app-info.ts @@ -1,9 +1,9 @@ -import VersionNumber from 'react-native-version-number' +import {nativeApplicationVersion, nativeBuildVersion} from 'expo-application' export const IS_DEV = process.env.EXPO_PUBLIC_ENV === 'development' export const IS_TESTFLIGHT = process.env.EXPO_PUBLIC_ENV === 'testflight' const UPDATES_CHANNEL = IS_TESTFLIGHT ? 'testflight' : 'production' -export const appVersion = `${VersionNumber.appVersion} (${ - VersionNumber.buildVersion -}, ${IS_DEV ? 'development' : UPDATES_CHANNEL})` +export const appVersion = `${nativeApplicationVersion} (${nativeBuildVersion}, ${ + IS_DEV ? 'development' : UPDATES_CHANNEL +})` diff --git a/src/lib/haptics.ts b/src/lib/haptics.ts index 516940c1ce..b22d69d703 100644 --- a/src/lib/haptics.ts +++ b/src/lib/haptics.ts @@ -1,28 +1,35 @@ -import {isIOS, isWeb} from 'platform/detection' -import ReactNativeHapticFeedback, { - HapticFeedbackTypes, -} from 'react-native-haptic-feedback' +import { + impactAsync, + ImpactFeedbackStyle, + notificationAsync, + NotificationFeedbackType, + selectionAsync, +} from 'expo-haptics' -const hapticImpact: HapticFeedbackTypes = isIOS ? 'impactMedium' : 'impactLight' // Users said the medium impact was too strong on Android; see APP-537s +import {isIOS, isWeb} from 'platform/detection' + +const hapticImpact: ImpactFeedbackStyle = isIOS + ? ImpactFeedbackStyle.Medium + : ImpactFeedbackStyle.Light // Users said the medium impact was too strong on Android; see APP-537s export class Haptics { static default() { if (isWeb) { return } - ReactNativeHapticFeedback.trigger(hapticImpact) + impactAsync(hapticImpact) } - static impact(type: HapticFeedbackTypes = hapticImpact) { + static impact(type: ImpactFeedbackStyle = hapticImpact) { if (isWeb) { return } - ReactNativeHapticFeedback.trigger(type) + impactAsync(type) } static selection() { if (isWeb) { return } - ReactNativeHapticFeedback.trigger('selection') + selectionAsync() } static notification = (type: 'success' | 'warning' | 'error') => { if (isWeb) { @@ -30,11 +37,11 @@ export class Haptics { } switch (type) { case 'success': - return ReactNativeHapticFeedback.trigger('notificationSuccess') + return notificationAsync(NotificationFeedbackType.Success) case 'warning': - return ReactNativeHapticFeedback.trigger('notificationWarning') + return notificationAsync(NotificationFeedbackType.Warning) case 'error': - return ReactNativeHapticFeedback.trigger('notificationError') + return notificationAsync(NotificationFeedbackType.Error) } } } diff --git a/src/lib/hooks/useOTAUpdates.ts b/src/lib/hooks/useOTAUpdates.ts index 181f0b2c66..51fd18aa04 100644 --- a/src/lib/hooks/useOTAUpdates.ts +++ b/src/lib/hooks/useOTAUpdates.ts @@ -1,6 +1,6 @@ import React from 'react' import {Alert, AppState, AppStateStatus} from 'react-native' -import app from 'react-native-version-number' +import {nativeBuildVersion} from 'expo-application' import { checkForUpdateAsync, fetchUpdateAsync, @@ -21,7 +21,7 @@ async function setExtraParams() { isIOS ? 'ios-build-number' : 'android-build-number', // Hilariously, `buildVersion` is not actually a string on Android even though the TS type says it is. // This just ensures it gets passed as a string - `${app.buildVersion}`, + `${nativeBuildVersion}`, ) await setExtraParamAsync( 'channel', diff --git a/src/lib/sentry.ts b/src/lib/sentry.ts index d0a5fe0fd5..6b6c1832d6 100644 --- a/src/lib/sentry.ts +++ b/src/lib/sentry.ts @@ -4,7 +4,7 @@ */ import {Platform} from 'react-native' -import app from 'react-native-version-number' +import {nativeApplicationVersion, nativeBuildVersion} from 'expo-application' import * as info from 'expo-updates' import {init} from 'sentry-expo' @@ -21,7 +21,7 @@ const buildChannel = (info.channel || 'development') as * - `dev` * - `1.57.0` */ -const release = app.appVersion ?? 'dev' +const release = nativeApplicationVersion ?? 'dev' /** * Examples: @@ -33,7 +33,7 @@ const release = app.appVersion ?? 'dev' * - `android.1.57.0.46` */ const dist = `${Platform.OS}.${release}${ - app.buildVersion ? `.${app.buildVersion}` : '' + nativeBuildVersion ? `.${nativeBuildVersion}` : '' }` init({ diff --git a/src/lib/sharing.ts b/src/lib/sharing.ts index c50a2734a3..b59e3f9946 100644 --- a/src/lib/sharing.ts +++ b/src/lib/sharing.ts @@ -1,6 +1,6 @@ import {Share} from 'react-native' // import * as Sharing from 'expo-sharing' -import Clipboard from '@react-native-clipboard/clipboard' +import {setStringAsync} from 'expo-clipboard' import {isAndroid, isIOS} from 'platform/detection' import * as Toast from '#/view/com/util/Toast' @@ -19,7 +19,7 @@ export async function shareUrl(url: string) { } else { // React Native Share is not supported by web. Web Share API // has increasing but not full support, so default to clipboard - Clipboard.setString(url) + setStringAsync(url) Toast.show('Copied to clipboard') } } diff --git a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx index 1123f26755..06b5a145af 100644 --- a/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx +++ b/src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx @@ -1,18 +1,17 @@ import React from 'react' import {View} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' import {Image} from 'expo-image' -import {useLingui} from '@lingui/react' +import {LinearGradient} from 'expo-linear-gradient' import {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' -import {useTheme, atoms as a} from '#/alf' -import * as Toggle from '#/components/forms/Toggle' -import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed' -import {Text} from '#/components/Typography' -import {RichText} from '#/components/RichText' - -import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed' import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds' +import {atoms as a, useTheme} from '#/alf' +import * as Toggle from '#/components/forms/Toggle' +import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check' +import {RichText} from '#/components/RichText' +import {Text} from '#/components/Typography' function PrimaryFeedCardInner({ feed, diff --git a/src/screens/Profile/Header/Shell.tsx b/src/screens/Profile/Header/Shell.tsx index c470cb2861..c6063591c6 100644 --- a/src/screens/Profile/Header/Shell.tsx +++ b/src/screens/Profile/Header/Shell.tsx @@ -1,23 +1,22 @@ import React, {memo} from 'react' import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {useNavigation} from '@react-navigation/native' import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {NavigationProp} from 'lib/routes/types' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {BACK_HITSLOP} from 'lib/constants' -import {useSession} from '#/state/session' -import {Shadow} from '#/state/cache/types' -import {useLightboxControls, ProfileImageLightbox} from '#/state/lightbox' +import {useNavigation} from '@react-navigation/native' -import {atoms as a, useTheme} from '#/alf' -import {LabelsOnMe} from '#/components/moderation/LabelsOnMe' -import {BlurView} from 'view/com/util/BlurView' +import {Shadow} from '#/state/cache/types' +import {ProfileImageLightbox, useLightboxControls} from '#/state/lightbox' +import {useSession} from '#/state/session' +import {BACK_HITSLOP} from 'lib/constants' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {NavigationProp} from 'lib/routes/types' import {LoadingPlaceholder} from 'view/com/util/LoadingPlaceholder' import {UserAvatar} from 'view/com/util/UserAvatar' import {UserBanner} from 'view/com/util/UserBanner' +import {atoms as a, useTheme} from '#/alf' +import {LabelsOnMe} from '#/components/moderation/LabelsOnMe' import {ProfileHeaderAlerts} from '#/components/moderation/ProfileHeaderAlerts' interface Props { @@ -97,9 +96,7 @@ let ProfileHeaderShell = ({ accessibilityLabel={_(msg`Back`)} accessibilityHint=""> - - - + )} diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index ac6fe6fed4..05367f0704 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -11,8 +11,8 @@ import { TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {LinearGradient} from 'expo-linear-gradient' import {RichText} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' diff --git a/src/view/com/modals/AddAppPasswords.tsx b/src/view/com/modals/AddAppPasswords.tsx index a8913dd54c..e6f424ed0b 100644 --- a/src/view/com/modals/AddAppPasswords.tsx +++ b/src/view/com/modals/AddAppPasswords.tsx @@ -1,24 +1,25 @@ import React, {useState} from 'react' -import {StyleSheet, TextInput, View, TouchableOpacity} from 'react-native' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {s} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {isNative} from 'platform/detection' +import {StyleSheet, TextInput, TouchableOpacity, View} from 'react-native' +import {setStringAsync} from 'expo-clipboard' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import Clipboard from '@react-native-clipboard/clipboard' -import * as Toast from '../util/Toast' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' import {useModalControls} from '#/state/modals' import { - useAppPasswordsQuery, useAppPasswordCreateMutation, + useAppPasswordsQuery, } from '#/state/queries/app-passwords' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import {isNative} from 'platform/detection' +import {Button} from '../util/forms/Button' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' export const snapPoints = ['70%'] @@ -72,7 +73,7 @@ export function Component({}: {}) { const onCopy = React.useCallback(() => { if (appPassword) { - Clipboard.setString(appPassword) + setStringAsync(appPassword) Toast.show(_(msg`Copied to clipboard`)) setWasCopied(true) } diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx index 17ce05cda8..197a6079ea 100644 --- a/src/view/com/modals/AltImage.tsx +++ b/src/view/com/modals/AltImage.tsx @@ -1,28 +1,29 @@ -import React, {useMemo, useCallback, useState} from 'react' +import React, {useCallback, useMemo, useState} from 'react' import { ImageStyle, - StyleSheet, - TouchableOpacity, - View, - TextInput as RNTextInput, - useWindowDimensions, ScrollView as RNScrollView, + StyleSheet, + TextInput as RNTextInput, + TouchableOpacity, + useWindowDimensions, + View, } from 'react-native' -import {ScrollView, TextInput} from './util' import {Image} from 'expo-image' -import {usePalette} from 'lib/hooks/usePalette' -import {gradients, s} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' +import {LinearGradient} from 'expo-linear-gradient' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useModalControls} from '#/state/modals' import {MAX_ALT_TEXT} from 'lib/constants' -import {useTheme} from 'lib/ThemeContext' import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible' -import {Text} from '../util/text/Text' -import LinearGradient from 'react-native-linear-gradient' +import {usePalette} from 'lib/hooks/usePalette' +import {enforceLen} from 'lib/strings/helpers' +import {gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' import {isWeb} from 'platform/detection' import {ImageModel} from 'state/models/media/image' -import {useLingui} from '@lingui/react' -import {Trans, msg} from '@lingui/macro' -import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' +import {ScrollView, TextInput} from './util' export const snapPoints = ['100%'] diff --git a/src/view/com/modals/ChangeHandle.tsx b/src/view/com/modals/ChangeHandle.tsx index f04bdb0e4f..125da44be7 100644 --- a/src/view/com/modals/ChangeHandle.tsx +++ b/src/view/com/modals/ChangeHandle.tsx @@ -1,37 +1,38 @@ import React, {useState} from 'react' -import Clipboard from '@react-native-clipboard/clipboard' -import {ComAtprotoServerDescribeServer} from '@atproto/api' -import * as Toast from '../util/Toast' import { ActivityIndicator, StyleSheet, TouchableOpacity, View, } from 'react-native' +import {setStringAsync} from 'expo-clipboard' +import {ComAtprotoServerDescribeServer} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {ScrollView, TextInput} from './util' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import {SelectableBtn} from '../util/forms/SelectableBtn' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s} from 'lib/styles' -import {createFullHandle, makeValidHandle} from 'lib/strings/handles' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {cleanError} from 'lib/strings/errors' -import {logger} from '#/logger' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' import {useModalControls} from '#/state/modals' +import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle' import {useServiceQuery} from '#/state/queries/service' -import {useUpdateHandleMutation, useFetchDid} from '#/state/queries/handle' import { + getAgent, + SessionAccount, useSession, useSessionApi, - SessionAccount, - getAgent, } from '#/state/session' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {cleanError} from 'lib/strings/errors' +import {createFullHandle, makeValidHandle} from 'lib/strings/handles' +import {s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {SelectableBtn} from '../util/forms/SelectableBtn' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {ScrollView, TextInput} from './util' export const snapPoints = ['100%'] @@ -321,9 +322,7 @@ function CustomHandleForm({ // events // = const onPressCopy = React.useCallback(() => { - Clipboard.setString( - isDNSForm ? `did=${currentAccount.did}` : currentAccount.did, - ) + setStringAsync(isDNSForm ? `did=${currentAccount.did}` : currentAccount.did) Toast.show(_(msg`Copied to clipboard`)) }, [currentAccount, isDNSForm, _]) const onChangeHandle = React.useCallback( diff --git a/src/view/com/modals/CreateOrEditList.tsx b/src/view/com/modals/CreateOrEditList.tsx index 0e11fcffd5..f5f4f56db0 100644 --- a/src/view/com/modals/CreateOrEditList.tsx +++ b/src/view/com/modals/CreateOrEditList.tsx @@ -1,4 +1,4 @@ -import React, {useState, useCallback, useMemo} from 'react' +import React, {useCallback, useMemo, useState} from 'react' import { ActivityIndicator, KeyboardAvoidingView, @@ -8,35 +8,36 @@ import { TouchableOpacity, View, } from 'react-native' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {LinearGradient} from 'expo-linear-gradient' import { AppBskyGraphDefs, AppBskyRichtextFacet, RichText as RichTextAPI, } from '@atproto/api' -import LinearGradient from 'react-native-linear-gradient' -import {Image as RNImage} from 'react-native-image-crop-picker' -import {Text} from '../util/text/Text' -import {ErrorMessage} from '../util/error/ErrorMessage' -import * as Toast from '../util/Toast' -import {s, colors, gradients} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' -import {compressIfNeeded} from 'lib/media/manip' -import {EditableUserAvatar} from '../util/UserAvatar' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {cleanError, isNetworkError} from 'lib/strings/errors' -import {Trans, msg} from '@lingui/macro' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {richTextToString} from '#/lib/strings/rich-text-helpers' +import {shortenLinks} from '#/lib/strings/rich-text-manip' import {useModalControls} from '#/state/modals' import { useListCreateMutation, useListMetadataMutation, } from '#/state/queries/list' -import {richTextToString} from '#/lib/strings/rich-text-helpers' -import {shortenLinks} from '#/lib/strings/rich-text-manip' import {getAgent} from '#/state/session' +import {useAnalytics} from 'lib/analytics/analytics' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {compressIfNeeded} from 'lib/media/manip' +import {cleanError, isNetworkError} from 'lib/strings/errors' +import {enforceLen} from 'lib/strings/helpers' +import {colors, gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {EditableUserAvatar} from '../util/UserAvatar' const MAX_NAME = 64 // todo const MAX_DESCRIPTION = 300 // todo diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index a355a3f426..4c4fb20f18 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -6,7 +6,7 @@ import { TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' +import {LinearGradient} from 'expo-linear-gradient' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' diff --git a/src/view/com/modals/EditImage.tsx b/src/view/com/modals/EditImage.tsx index 3b35ffee21..b39dcd9364 100644 --- a/src/view/com/modals/EditImage.tsx +++ b/src/view/com/modals/EditImage.tsx @@ -1,26 +1,27 @@ import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react' import {Pressable, StyleSheet, View} from 'react-native' -import {usePalette} from 'lib/hooks/usePalette' import {useWindowDimensions} from 'react-native' +import {LinearGradient} from 'expo-linear-gradient' +import {MaterialIcons} from '@expo/vector-icons' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' +import {Slider} from '@miblanchard/react-native-slider' +import {observer} from 'mobx-react-lite' +import ImageEditor, {Position} from 'react-avatar-editor' + +import {useModalControls} from '#/state/modals' +import {MAX_ALT_TEXT} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' +import {enforceLen} from 'lib/strings/helpers' import {gradients, s} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' -import {Text} from '../util/text/Text' -import LinearGradient from 'react-native-linear-gradient' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import ImageEditor, {Position} from 'react-avatar-editor' -import {TextInput} from './util' -import {enforceLen} from 'lib/strings/helpers' -import {MAX_ALT_TEXT} from 'lib/constants' +import {getKeys} from 'lib/type-assertions' import {GalleryModel} from 'state/models/media/gallery' import {ImageModel} from 'state/models/media/image' -import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' -import {Slider} from '@miblanchard/react-native-slider' -import {MaterialIcons} from '@expo/vector-icons' -import {observer} from 'mobx-react-lite' -import {getKeys} from 'lib/type-assertions' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {Text} from '../util/text/Text' +import {TextInput} from './util' export const snapPoints = ['80%'] diff --git a/src/view/com/modals/EditProfile.tsx b/src/view/com/modals/EditProfile.tsx index 097b7b0d1b..4b94aeb42f 100644 --- a/src/view/com/modals/EditProfile.tsx +++ b/src/view/com/modals/EditProfile.tsx @@ -1,5 +1,4 @@ -import React, {useState, useCallback} from 'react' -import * as Toast from '../util/Toast' +import React, {useCallback, useState} from 'react' import { ActivityIndicator, KeyboardAvoidingView, @@ -9,28 +8,30 @@ import { TouchableOpacity, View, } from 'react-native' -import LinearGradient from 'react-native-linear-gradient' import {Image as RNImage} from 'react-native-image-crop-picker' -import {AppBskyActorDefs} from '@atproto/api' -import {Text} from '../util/text/Text' -import {ErrorMessage} from '../util/error/ErrorMessage' -import {s, colors, gradients} from 'lib/styles' -import {enforceLen} from 'lib/strings/helpers' -import {MAX_DISPLAY_NAME, MAX_DESCRIPTION} from 'lib/constants' -import {compressIfNeeded} from 'lib/media/manip' -import {UserBanner} from '../util/UserBanner' -import {EditableUserAvatar} from '../util/UserAvatar' -import {usePalette} from 'lib/hooks/usePalette' -import {useTheme} from 'lib/ThemeContext' -import {useAnalytics} from 'lib/analytics/analytics' -import {cleanError} from 'lib/strings/errors' import Animated, {FadeOut} from 'react-native-reanimated' -import {isWeb} from 'platform/detection' -import {Trans, msg} from '@lingui/macro' +import {LinearGradient} from 'expo-linear-gradient' +import {AppBskyActorDefs} from '@atproto/api' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' + +import {logger} from '#/logger' import {useModalControls} from '#/state/modals' import {useProfileUpdateMutation} from '#/state/queries/profile' -import {logger} from '#/logger' +import {useAnalytics} from 'lib/analytics/analytics' +import {MAX_DESCRIPTION, MAX_DISPLAY_NAME} from 'lib/constants' +import {usePalette} from 'lib/hooks/usePalette' +import {compressIfNeeded} from 'lib/media/manip' +import {cleanError} from 'lib/strings/errors' +import {enforceLen} from 'lib/strings/helpers' +import {colors, gradients, s} from 'lib/styles' +import {useTheme} from 'lib/ThemeContext' +import {isWeb} from 'platform/detection' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {EditableUserAvatar} from '../util/UserAvatar' +import {UserBanner} from '../util/UserBanner' const AnimatedTouchableOpacity = Animated.createAnimatedComponent(TouchableOpacity) diff --git a/src/view/com/modals/EmbedConsent.tsx b/src/view/com/modals/EmbedConsent.tsx index 04104c52e1..9419447288 100644 --- a/src/view/com/modals/EmbedConsent.tsx +++ b/src/view/com/modals/EmbedConsent.tsx @@ -1,20 +1,21 @@ import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' -import {Text} from '../util/text/Text' -import {ScrollView} from './util' -import {usePalette} from 'lib/hooks/usePalette' +import {LinearGradient} from 'expo-linear-gradient' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import { EmbedPlayerSource, embedPlayerSources, externalEmbedLabels, } from '#/lib/strings/embed-player' -import {msg, Trans} from '@lingui/macro' -import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' import {useSetExternalEmbedPref} from '#/state/preferences/external-embeds-prefs' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {usePalette} from 'lib/hooks/usePalette' +import {colors, gradients, s} from 'lib/styles' +import {Text} from '../util/text/Text' +import {ScrollView} from './util' export const snapPoints = [450] diff --git a/src/view/com/modals/InviteCodes.tsx b/src/view/com/modals/InviteCodes.tsx index c0318df015..f8cebec3f6 100644 --- a/src/view/com/modals/InviteCodes.tsx +++ b/src/view/com/modals/InviteCodes.tsx @@ -1,37 +1,38 @@ import React from 'react' import { + ActivityIndicator, StyleSheet, TouchableOpacity, View, - ActivityIndicator, } from 'react-native' +import {setStringAsync} from 'expo-clipboard' import {ComAtprotoServerDefs} from '@atproto/api' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' -import Clipboard from '@react-native-clipboard/clipboard' -import {Text} from '../util/text/Text' -import {Button} from '../util/forms/Button' -import * as Toast from '../util/Toast' -import {ScrollView} from './util' -import {usePalette} from 'lib/hooks/usePalette' -import {isWeb} from 'platform/detection' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {cleanError} from 'lib/strings/errors' -import {useModalControls} from '#/state/modals' -import {useInvitesState, useInvitesAPI} from '#/state/invites' -import {UserInfoText} from '../util/UserInfoText' -import {makeProfileLink} from '#/lib/routes/links' -import {Link} from '../util/Link' -import {ErrorMessage} from '../util/error/ErrorMessage' -import { - useInviteCodesQuery, - InviteCodesQueryResponse, -} from '#/state/queries/invites' +import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {makeProfileLink} from '#/lib/routes/links' +import {useInvitesAPI, useInvitesState} from '#/state/invites' +import {useModalControls} from '#/state/modals' +import { + InviteCodesQueryResponse, + useInviteCodesQuery, +} from '#/state/queries/invites' +import {usePalette} from 'lib/hooks/usePalette' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {cleanError} from 'lib/strings/errors' +import {isWeb} from 'platform/detection' +import {ErrorMessage} from '../util/error/ErrorMessage' +import {Button} from '../util/forms/Button' +import {Link} from '../util/Link' +import {Text} from '../util/text/Text' +import * as Toast from '../util/Toast' +import {UserInfoText} from '../util/UserInfoText' +import {ScrollView} from './util' + export const snapPoints = ['70%'] export function Component() { @@ -148,7 +149,7 @@ function InviteCode({ const uses = invite.uses const onPress = React.useCallback(() => { - Clipboard.setString(invite.code) + setStringAsync(invite.code) Toast.show(_(msg`Copied to clipboard`)) setInviteCopied(invite.code) }, [setInviteCopied, invite, _]) diff --git a/src/view/com/modals/Repost.tsx b/src/view/com/modals/Repost.tsx index 6e4881adcd..5dedee832b 100644 --- a/src/view/com/modals/Repost.tsx +++ b/src/view/com/modals/Repost.tsx @@ -1,14 +1,15 @@ import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' -import {Text} from '../util/text/Text' +import {LinearGradient} from 'expo-linear-gradient' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {useModalControls} from '#/state/modals' import {usePalette} from 'lib/hooks/usePalette' import {RepostIcon} from 'lib/icons' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {colors, gradients, s} from 'lib/styles' +import {Text} from '../util/text/Text' export const snapPoints = [250] diff --git a/src/view/com/modals/crop-image/CropImage.web.tsx b/src/view/com/modals/crop-image/CropImage.web.tsx index 98a2494edc..79ff5a02ab 100644 --- a/src/view/com/modals/crop-image/CropImage.web.tsx +++ b/src/view/com/modals/crop-image/CropImage.web.tsx @@ -1,18 +1,19 @@ import React from 'react' import {StyleSheet, TouchableOpacity, View} from 'react-native' -import ImageEditor from 'react-avatar-editor' +import {Image as RNImage} from 'react-native-image-crop-picker' +import {LinearGradient} from 'expo-linear-gradient' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' import {Slider} from '@miblanchard/react-native-slider' -import LinearGradient from 'react-native-linear-gradient' -import {Text} from 'view/com/util/text/Text' +import ImageEditor from 'react-avatar-editor' + +import {useModalControls} from '#/state/modals' +import {usePalette} from 'lib/hooks/usePalette' +import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons' import {Dimensions} from 'lib/media/types' import {getDataUriSize} from 'lib/media/util' -import {s, gradients} from 'lib/styles' -import {usePalette} from 'lib/hooks/usePalette' -import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons' -import {Image as RNImage} from 'react-native-image-crop-picker' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' -import {useModalControls} from '#/state/modals' +import {gradients, s} from 'lib/styles' +import {Text} from 'view/com/util/text/Text' enum AspectRatio { Square = 'square', diff --git a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx index 91e11a19ca..ab21ba65af 100644 --- a/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx +++ b/src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx @@ -1,11 +1,12 @@ import React from 'react' -import {StyleSheet, Text, View, Pressable} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {s, colors, gradients} from 'lib/styles' +import {Pressable, StyleSheet, Text, View} from 'react-native' +import {LinearGradient} from 'expo-linear-gradient' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {Trans, msg} from '@lingui/macro' -import {useLingui} from '@lingui/react' +import {colors, gradients, s} from 'lib/styles' export const ConfirmLanguagesButton = ({ onPress, diff --git a/src/view/com/util/BlurView.android.tsx b/src/view/com/util/BlurView.android.tsx deleted file mode 100644 index eee1d9d867..0000000000 --- a/src/view/com/util/BlurView.android.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react' -import {StyleSheet, View, ViewProps} from 'react-native' -import {addStyle} from 'lib/styles' - -type BlurViewProps = ViewProps & { - blurType?: 'dark' | 'light' - blurAmount?: number -} - -export const BlurView = ({ - style, - blurType, - ...props -}: React.PropsWithChildren) => { - if (blurType === 'dark') { - style = addStyle(style, styles.dark) - } else { - style = addStyle(style, styles.light) - } - return -} - -const styles = StyleSheet.create({ - dark: { - backgroundColor: '#0008', - }, - light: { - backgroundColor: '#fff8', - }, -}) diff --git a/src/view/com/util/BlurView.tsx b/src/view/com/util/BlurView.tsx deleted file mode 100644 index 66b41cc26c..0000000000 --- a/src/view/com/util/BlurView.tsx +++ /dev/null @@ -1 +0,0 @@ -export {BlurView} from '@react-native-community/blur' diff --git a/src/view/com/util/BlurView.web.tsx b/src/view/com/util/BlurView.web.tsx deleted file mode 100644 index d1fb4665fb..0000000000 --- a/src/view/com/util/BlurView.web.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import React from 'react' -import {StyleSheet, View, ViewProps} from 'react-native' -import {addStyle} from 'lib/styles' - -type BlurViewProps = ViewProps & { - blurType?: 'dark' | 'light' - blurAmount?: number -} - -export const BlurView = ({ - style, - blurType, - blurAmount, - ...props -}: React.PropsWithChildren) => { - // @ts-ignore using an RNW-specific attribute here -prf - let blur = `blur(${blurAmount || 10}px` - // @ts-ignore using an RNW-specific attribute here -prf - style = addStyle(style, {backdropFilter: blur, WebkitBackdropFilter: blur}) - if (blurType === 'dark') { - style = addStyle(style, styles.dark) - } else { - style = addStyle(style, styles.light) - } - return -} - -const styles = StyleSheet.create({ - dark: { - backgroundColor: '#0008', - }, - light: { - backgroundColor: '#fff8', - }, -}) diff --git a/src/view/com/util/fab/FABInner.tsx b/src/view/com/util/fab/FABInner.tsx index 27a16117bd..a01756da06 100644 --- a/src/view/com/util/fab/FABInner.tsx +++ b/src/view/com/util/fab/FABInner.tsx @@ -1,13 +1,14 @@ import React, {ComponentProps} from 'react' import {StyleSheet, TouchableWithoutFeedback} from 'react-native' -import LinearGradient from 'react-native-linear-gradient' -import {gradients} from 'lib/styles' -import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' -import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {clamp} from 'lib/numbers' -import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' -import {isWeb} from '#/platform/detection' import Animated from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {LinearGradient} from 'expo-linear-gradient' + +import {isWeb} from '#/platform/detection' +import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' +import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' +import {clamp} from 'lib/numbers' +import {gradients} from 'lib/styles' export interface FABProps extends ComponentProps { diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index d04672c639..959e0f692e 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,5 +1,6 @@ import React, {memo} from 'react' import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' +import {setStringAsync} from 'expo-clipboard' import { AppBskyActorDefs, AppBskyFeedPost, @@ -9,7 +10,6 @@ import { import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import Clipboard from '@react-native-clipboard/clipboard' import {useNavigation} from '@react-navigation/native' import {makeProfileLink} from '#/lib/routes/links' @@ -154,7 +154,7 @@ let PostDropdownBtn = ({ const onCopyPostText = React.useCallback(() => { const str = richTextToString(richText, true) - Clipboard.setString(str) + setStringAsync(str) Toast.show(_(msg`Copied to clipboard`)) }, [_, richText]) diff --git a/src/view/screens/Settings/index.tsx b/src/view/screens/Settings/index.tsx index 790ce5ee96..830a73ff26 100644 --- a/src/view/screens/Settings/index.tsx +++ b/src/view/screens/Settings/index.tsx @@ -10,13 +10,13 @@ import { View, ViewStyle, } from 'react-native' +import {setStringAsync} from 'expo-clipboard' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' -import Clipboard from '@react-native-clipboard/clipboard' import {useFocusEffect, useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' @@ -245,7 +245,7 @@ export function SettingsScreen({}: Props) { }, [onboardingDispatch, _]) const onPressBuildInfo = React.useCallback(() => { - Clipboard.setString( + setStringAsync( `Build version: ${AppInfo.appVersion}; Platform: ${Platform.OS}`, ) Toast.show(_(msg`Copied build version to clipboard`)) diff --git a/webpack.config.js b/webpack.config.js index f57ba2e36f..6f1de3b8b7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -20,7 +20,6 @@ module.exports = async function (env, argv) { let config = await createExpoWebpackConfigAsync(env, argv) config = withAlias(config, { 'react-native$': 'react-native-web', - 'react-native-linear-gradient': 'react-native-web-linear-gradient', 'react-native-webview': 'react-native-web-webview', }) config.module.rules = [ diff --git a/yarn.lock b/yarn.lock index 106599fc14..323ac3c106 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2995,26 +2995,25 @@ mv "~2" safe-json-stringify "~1" -"@expo/cli@0.16.7": - version "0.16.7" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.16.7.tgz#61c623d8869973bed96e9876a0ec52f3578dd76e" - integrity sha512-e2zeT2/hs2KyV/aXl/1z5kDSPgCbqPgb7S2+211a+6178eqUr6JNn6TTIFdLNe9Q7/aJaLPFgO5KJhOkg9QgJw== +"@expo/cli@0.17.8": + version "0.17.8" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.8.tgz#4abe0d8c604b73a6e1d0a10f34e993cbf1cbad42" + integrity sha512-yfkoghCltbGPDbRI71Qu3puInjXx4wO82+uhW82qbWLvosfIN7ep5Gr0Lq54liJpvlUG6M0IXM1GiGqcCyP12w== dependencies: "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "0.0.5" "@expo/config" "~8.5.0" "@expo/config-plugins" "~7.8.0" "@expo/devcert" "^1.0.0" - "@expo/env" "~0.2.0" + "@expo/env" "~0.2.2" "@expo/image-utils" "^0.4.0" "@expo/json-file" "^8.2.37" "@expo/metro-config" "~0.17.0" "@expo/osascript" "^2.0.31" "@expo/package-manager" "^1.1.1" "@expo/plist" "^0.1.0" - "@expo/prebuild-config" "6.7.3" + "@expo/prebuild-config" "6.7.4" "@expo/rudder-sdk-node" "1.1.1" - "@expo/server" "^0.3.0" "@expo/spawn-async" "1.5.0" "@expo/xcpretty" "^4.3.0" "@react-native/dev-middleware" "^0.73.6" @@ -3053,6 +3052,7 @@ npm-package-arg "^7.0.0" open "^8.3.0" ora "3.4.0" + picomatch "^3.0.1" pretty-bytes "5.6.0" progress "2.0.3" prompts "^2.3.2" @@ -3065,6 +3065,8 @@ semver "^7.5.3" send "^0.18.0" slugify "^1.3.4" + source-map-support "~0.5.21" + stacktrace-parser "^0.1.10" structured-headers "^0.4.1" tar "^6.0.5" temp-dir "^2.0.0" @@ -3105,10 +3107,10 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-plugins@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.3.tgz#f507d4b94ce11fad0bac8ba269ea95e7d1051b83" - integrity sha512-ix0pNLZgR29mNI5pcNRjuEClvioVjWCNWDiAxgZd1BXEVn7d2bqztDKQj03KU88e0KM7zKt9AbmIqn5aANZ8pg== +"@expo/config-plugins@7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.4.tgz#533b5d536c1dc8b5544d64878b51bda28f2e1a1f" + integrity sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg== dependencies: "@expo/config-types" "^50.0.0-alpha.1" "@expo/fingerprint" "^0.6.0" @@ -3182,10 +3184,10 @@ resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-50.0.0.tgz#b534d3ec997ec60f8af24f6ad56244c8afc71a0b" integrity sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw== -"@expo/config@8.5.3": - version "8.5.3" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.3.tgz#e1ce353e658f6bfefc8a1888532672c0f9f48894" - integrity sha512-wMX96aLo7AVl7voEkGXwEI2hPoMMHgxyq0CMC51I2jOnYHqB4HkG71YeXBPZR3zLnY33CNjVT+hF5CAPfiiliw== +"@expo/config@8.5.4": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.4.tgz#bb5eb06caa36e4e35dc8c7647fae63e147b830ca" + integrity sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q== dependencies: "@babel/code-frame" "~7.10.4" "@expo/config-plugins" "~7.8.2" @@ -3197,7 +3199,7 @@ resolve-from "^5.0.0" semver "7.5.3" slugify "^1.3.4" - sucrase "^3.20.0" + sucrase "3.34.0" "@expo/config@~7.0.0": version "7.0.3" @@ -3263,6 +3265,17 @@ dotenv-expand "~10.0.0" getenv "^1.0.0" +"@expo/env@~0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.2.2.tgz#49f589f32e9bae279a6509d7a02218c0f4e32a60" + integrity sha512-m9nGuaSpzdvMzevQ1H60FWgf4PG5s4J0dfKUzdAGnDu7sMUerY/yUeDaA4+OBo3vBwGVQ+UHcQS9vPSMBNaPcg== + dependencies: + chalk "^4.0.0" + debug "^4.3.4" + dotenv "~16.0.3" + dotenv-expand "~10.0.0" + getenv "^1.0.0" + "@expo/fingerprint@^0.6.0": version "0.6.0" resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.6.0.tgz#77366934673d4ecea37284109b4dd67f9e6a7487" @@ -3342,7 +3355,33 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" -"@expo/metro-config@0.17.1", "@expo/metro-config@~0.17.0": +"@expo/metro-config@0.17.6": + version "0.17.6" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.6.tgz#f1f4ef056aa357c1dba3841de465f5d319f17216" + integrity sha512-WaC1C+sLX/Wa7irwUigLhng3ckmXIEQefZczB8DfYmleV6uhfWWo2kz/HijFBpV7FKs2cW6u8J/aBQpFkxlcqg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.5" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + "@expo/config" "~8.5.0" + "@expo/env" "~0.2.2" + "@expo/json-file" "~8.3.0" + "@expo/spawn-async" "^1.7.2" + babel-preset-fbjs "^3.4.0" + chalk "^4.1.0" + debug "^4.3.2" + find-yarn-workspace-root "~2.0.0" + fs-extra "^9.1.0" + getenv "^1.0.0" + glob "^7.2.3" + jsc-safe-url "^0.2.4" + lightningcss "~1.19.0" + postcss "~8.4.32" + resolve-from "^5.0.0" + sucrase "3.34.0" + +"@expo/metro-config@~0.17.0": version "0.17.1" resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.1.tgz#8e1cd7b9f63ea84cc18696807cf23560d010e5d8" integrity sha512-ZOE0Jx0YTZyPpsGiiE09orGEFgZ5sMrOOFSgOe8zrns925g/uCuEbowyNq38IfQt//3xSl5mW3z0l4rxgi7hHQ== @@ -3427,10 +3466,10 @@ semver "7.5.3" xml2js "0.6.0" -"@expo/prebuild-config@6.7.3": - version "6.7.3" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.3.tgz#8444c1630bd92931c2d1a510791535b7282d8fa6" - integrity sha512-jZIHzlnvdg4Gnln06XR9tvirL3hSp/Jh48COhLKs51vb3THCWumUytZBS4DSMdvGwf8btnaB01Zg00xQhSDBsA== +"@expo/prebuild-config@6.7.4": + version "6.7.4" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz#b3e4c8545d7a101bf1fc263c5b7290abc4635e69" + integrity sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA== dependencies: "@expo/config" "~8.5.0" "@expo/config-plugins" "~7.8.0" @@ -3461,16 +3500,6 @@ resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c" integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ== -"@expo/server@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@expo/server/-/server-0.3.0.tgz#b16767999382b0f5ea88d86609a5ceabcff1388c" - integrity sha512-5oIqedpLVMnf1LGI9Xd5OOGmK3DjgH9VpuqVN4e/6DwLT05RZJMyI7ylfG6QSy1e44yOgjv242tLyg0e/zdZ+A== - dependencies: - "@remix-run/node" "^1.19.3" - abort-controller "^3.0.0" - debug "^4.3.4" - source-map-support "~0.5.21" - "@expo/spawn-async@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395" @@ -4828,21 +4857,6 @@ dependencies: merge-options "^3.0.4" -"@react-native-camera-roll/camera-roll@^5.2.2": - version "5.7.2" - resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.7.2.tgz#db11525ae26c8a61630c424aebd323a7c784a921" - integrity sha512-s8VAUG1Kvi+tEJkLHObmOJdXAL/uclnXJ/IdnJtx2fCKiWA3Ho0ln9gDQqCYHHHHu+sXk7wovsH/I2/AYy0brg== - -"@react-native-clipboard/clipboard@^1.10.0": - version "1.11.2" - resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.11.2.tgz#e826d0336b34e67294aaffa6878308900bc7d197" - integrity sha512-bHyZVW62TuleiZsXNHS1Pv16fWc0fh8O9WvBzl4h2fykqZRW9a+Pv/RGTH56E3X2PqzHP38K5go8zmCZUoIsoQ== - -"@react-native-community/blur@^4.3.0": - version "4.3.2" - resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.3.2.tgz#185a2c7dd03ba168cc95069bc4742e9505fd6c6c" - integrity sha512-0ID+pyZKdC4RdgC7HePxUQ6JmsbNrgz03u+6SgqYpmBoK/rE+7JffqIw7IEsfoKitLEcRNLGekIBsfwCqiEkew== - "@react-native-community/cli-clean@12.3.0": version "12.3.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" @@ -5356,81 +5370,6 @@ dependencies: type-fest "^2.19.0" -"@remix-run/node@^1.19.3": - version "1.19.3" - resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-1.19.3.tgz#d27e2f742fc45379525cb3fca466a883ca06d6c9" - integrity sha512-z5qrVL65xLXIUpU4mkR4MKlMeKARLepgHAk4W5YY3IBXOreRqOGUC70POViYmY7x38c2Ia1NwqL80H+0h7jbMw== - dependencies: - "@remix-run/server-runtime" "1.19.3" - "@remix-run/web-fetch" "^4.3.6" - "@remix-run/web-file" "^3.0.3" - "@remix-run/web-stream" "^1.0.4" - "@web3-storage/multipart-parser" "^1.0.0" - abort-controller "^3.0.0" - cookie-signature "^1.1.0" - source-map-support "^0.5.21" - stream-slice "^0.1.2" - -"@remix-run/router@1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" - integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== - -"@remix-run/server-runtime@1.19.3": - version "1.19.3" - resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-1.19.3.tgz#206b55337c266c5bc254878f8ff3cd5677cc60fb" - integrity sha512-KzQ+htUsKqpBgKE2tWo7kIIGy3MyHP58Io/itUPvV+weDjApwr9tQr9PZDPA3yAY6rAzLax7BU0NMSYCXWFY5A== - dependencies: - "@remix-run/router" "1.7.2" - "@types/cookie" "^0.4.1" - "@web3-storage/multipart-parser" "^1.0.0" - cookie "^0.4.1" - set-cookie-parser "^2.4.8" - source-map "^0.7.3" - -"@remix-run/web-blob@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@remix-run/web-blob/-/web-blob-3.1.0.tgz#e0c669934c1eb6028960047e57a13ed38bbfb434" - integrity sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g== - dependencies: - "@remix-run/web-stream" "^1.1.0" - web-encoding "1.1.5" - -"@remix-run/web-fetch@^4.3.6": - version "4.4.2" - resolved "https://registry.yarnpkg.com/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz#ce7aedef72cc26e15060e8cf84674029f92809b6" - integrity sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA== - dependencies: - "@remix-run/web-blob" "^3.1.0" - "@remix-run/web-file" "^3.1.0" - "@remix-run/web-form-data" "^3.1.0" - "@remix-run/web-stream" "^1.1.0" - "@web3-storage/multipart-parser" "^1.0.0" - abort-controller "^3.0.0" - data-uri-to-buffer "^3.0.1" - mrmime "^1.0.0" - -"@remix-run/web-file@^3.0.3", "@remix-run/web-file@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@remix-run/web-file/-/web-file-3.1.0.tgz#07219021a2910e90231bc30ca1ce693d0e9d3825" - integrity sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ== - dependencies: - "@remix-run/web-blob" "^3.1.0" - -"@remix-run/web-form-data@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz#47f9ad8ce8bf1c39ed83eab31e53967fe8e3df6a" - integrity sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A== - dependencies: - web-encoding "1.1.5" - -"@remix-run/web-stream@^1.0.4", "@remix-run/web-stream@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@remix-run/web-stream/-/web-stream-1.1.0.tgz#b93a8f806c2c22204930837c44d81fdedfde079f" - integrity sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA== - dependencies: - web-streams-polyfill "^3.1.1" - "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -7523,11 +7462,6 @@ dependencies: "@types/node" "*" -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - "@types/elliptic@^6.4.9": version "6.4.18" resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" @@ -8080,11 +8014,6 @@ "@urql/core" ">=2.3.1" wonka "^4.0.14" -"@web3-storage/multipart-parser@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" - integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== - "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -8246,7 +8175,7 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@zxing/text-encoding@0.9.0", "@zxing/text-encoding@^0.9.0": +"@zxing/text-encoding@^0.9.0": version "0.9.0" resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== @@ -10058,21 +9987,11 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie-signature@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.1.tgz#790dea2cce64638c7ae04d9fabed193bd7ccf3b4" - integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw== - cookie@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - copy-webpack-plugin@^10.2.0: version "10.2.4" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe" @@ -10463,11 +10382,6 @@ dash-get@^1.0.2: resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== -data-uri-to-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -10686,11 +10600,6 @@ deprecated-react-native-prop-types@^5.0.0: invariant "^2.2.4" prop-types "^15.8.1" -dequal@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e" - integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw== - dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" @@ -11826,16 +11735,16 @@ expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" +expo-application@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.3.tgz#43991bd81d05c987b07b2f430c036cda1572bc62" + integrity sha512-IISxzpPX+Xe4ynnwX8yY52T6dm1g9sME1GCj4lvUlrdc5xeTPM6U35x7Wj82V7lLWBaVGe+/Tg9EeKqfylCEwA== + expo-application@~5.8.0: version "5.8.0" resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.0.tgz#b82cb98a08f91d61f047f6578e883e0deb9661f2" integrity sha512-nNQ/ayC4P1ue0ZQSmUlG/K2ZHTPwHyYGsb0QtEmCFUCitsjPKIx4coNvAreZMuELvY7pD1zKr+pdtN/ULnljBA== -expo-application@~5.8.2: - version "5.8.2" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.2.tgz#3847843203b87b9b67cc3b56f3c2639199cb0b07" - integrity sha512-ySc5MzZFRnK7XxBho7kZoQcazz97y4j0Wj+p9n4UDlgQLGrp1IHFBgyZIq2y/qoED0RnFUCKUDeegvXXTiBENA== - expo-asset@~9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-9.0.2.tgz#e8a6b6da356d5fc97955599d2fa49af78c7f0bfd" @@ -11848,21 +11757,26 @@ expo-asset@~9.0.2: invariant "^2.2.4" md5-file "^3.2.3" -expo-build-properties@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.0.tgz#523e242b5db2f26b9fd397dcf2c841824aed348c" - integrity sha512-14+UjV4uKCI5KsOw/BTL++T3N1OPWnOvLGoF39/o9XjB4t0wqXoSrcEl6ZbtH/b3xzd6dj9pnDDBLWDn/7uKvQ== +expo-build-properties@^0.11.1: + version "0.11.1" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.1.tgz#dc9ab9fb1ac989b97da500b3ec75139c961d8b26" + integrity sha512-m4j4aEjFaDuBE6KWYMxDhWgLzzSmpE7uHKAwtvXyNmRK+6JKF0gjiXi0sXgI5ngNppDQpsyPFMvqG7uQpRuCuw== dependencies: ajv "^8.11.0" semver "^7.5.3" -expo-camera@~14.0.1: - version "14.0.1" - resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.1.tgz#d3567566e5f9c1a906b3ec8f66fde1e4c08fc99d" - integrity sha512-72W8T9P+oYloWwFt2/ils15OS5X0R9u1p5vjRRo5fyGhbTA3qkS8UsV1tdSNTCUBcAxXHEXTO+iM4Xzabun8tg== +expo-camera@~14.0.4: + version "14.0.6" + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.6.tgz#4d02ae2c7d734b2256111fa17a3b2c46fa712c78" + integrity sha512-PBkbAR0g/rFO9A01CmOoPHknXBBfJ1rXFm75XQY6kmMNH9BHJ89yAtlOaYJy/fw5xVxJkyVG+6uVGgbBeu7dyw== dependencies: invariant "^2.2.4" +expo-clipboard@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-5.0.1.tgz#a62a021a9444740d180d60f915cca8242a323716" + integrity sha512-JH853QJPr5W3h87If3aDTnMK+ESSIrwzU2TdfZrqZttVDY2pMIf/w37mVHHNYodXM4ATHXadtOkjKbAa0DWwUg== + expo-constants@^13.0.2: version "13.2.4" resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-13.2.4.tgz#eab4a553f074b2c60ad7a158d3b82e3484a94606" @@ -11885,24 +11799,31 @@ expo-constants@~15.4.3: dependencies: "@expo/config" "~8.5.0" -expo-dev-client@~3.3.5: - version "3.3.5" - resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-3.3.5.tgz#243719f5613ec487461da15650413a3a0c6fbadf" - integrity sha512-g1KZBfkn4jIlVCBiBaYDkacecICLFla1Cpc/eGjdZJGceInoJe25HPyrMtYr047QDQaqnzRM+hXoJFhiKDfRpg== +expo-constants@~15.4.5: + version "15.4.5" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.5.tgz#81756a4c4e1c020f840a419cd86a124a6d1fb35b" + integrity sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg== dependencies: - expo-dev-launcher "3.6.2" - expo-dev-menu "4.5.3" + "@expo/config" "~8.5.0" + +expo-dev-client@~3.3.8: + version "3.3.11" + resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-3.3.11.tgz#f2541ccbcfc2ba32bcea47293bc9beae4e10db60" + integrity sha512-9nhhbfbskfmjp/tlRS5KvDpCoW0BREJBxpu2GyjKu7nDB33W8fJLL0wXgNhP+QEb93r37o3uezKmUm2kibOvTw== + dependencies: + expo-dev-launcher "3.6.9" + expo-dev-menu "4.5.8" expo-dev-menu-interface "1.7.2" expo-manifests "~0.13.0" expo-updates-interface "~0.15.1" -expo-dev-launcher@3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-3.6.2.tgz#901e8ab2040fbfb8a7f0a4bdceb30399cf831cfd" - integrity sha512-f09rLzTdyGRlWTvt8UV5cA8bhMNbCnuXBHDVAkJ3Yz0I+dHq4oecyh6TNR2plAR+dKhMYnY7rtTCyIQvd2adfA== +expo-dev-launcher@3.6.9: + version "3.6.9" + resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-3.6.9.tgz#5e104e0533a46f3614c1691673da3351092e8d1d" + integrity sha512-MBDMAqjCMVYt1Zv47u2dJTp4d8gCZMfM4GWAFhfQy3G6XzkUlFtewaQefAqy93FcYOv6BYdC9yZOLOb06tqTfA== dependencies: ajv "8.11.0" - expo-dev-menu "4.5.3" + expo-dev-menu "4.5.8" expo-manifests "~0.13.0" resolve-from "^5.0.0" semver "^7.5.3" @@ -11912,10 +11833,10 @@ expo-dev-menu-interface@1.7.2: resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.2.tgz#772fb97c6b0a44c27965cdfcfa078f316b0930ca" integrity sha512-V/geSB9rW0IPTR+d7E5CcvkV0uVUCE7SMHZqE/J0/dH06Wo8AahB16fimXeh5/hTL2Qztq8CQ41xpFUBoA9TEw== -expo-dev-menu@4.5.3: - version "4.5.3" - resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-4.5.3.tgz#89632134eac59533b7867d3a87a71940ac7ee74b" - integrity sha512-yYXCand6eiDDtyGzcdIaSyhaIUPf7KjAKA12FJZ7Ytb3f04Nc78NI1+rDSisLmgRqXaWsc04zx9XF0vBMjSF6w== +expo-dev-menu@4.5.8: + version "4.5.8" + resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-4.5.8.tgz#21940385124c7d2745066bbcb42185ebd35f66bc" + integrity sha512-GXfI0CmYlqjOqyFjtplXO9PSoJQoy89+50lbUSNZykDsGyvzCPzl4txdQcdHHSglKYr7lWV7aeMVeehuSct60w== dependencies: expo-dev-menu-interface "1.7.2" semver "^7.5.3" @@ -11927,10 +11848,10 @@ expo-device@~4.1.1: dependencies: ua-parser-js "^0.7.19" -expo-device@~5.9.2: - version "5.9.2" - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.2.tgz#697e96f52d213a141b6f265f1e274e9d5e98c92c" - integrity sha512-QYwcLyIoZGRFXt1czVphVQBkyfCfYqg+EsaFIhwWR+/lVU7X1cslaaGjoSx2ONTw0CV5iOvpasURqHeLWaexIw== +expo-device@~5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.3.tgz#0ad61da681424aa682fa03001d0344394c01f8a1" + integrity sha512-azH5rz8krDZUJb/arqkcA6oZGaX2T5s4aaXIMFsDDzvq8TW0CttZZy2HFp6itmFdiKGdRpFX3/Gj0n6ZmPoJ/w== dependencies: ua-parser-js "^0.7.33" @@ -11944,18 +11865,23 @@ expo-file-system@~16.0.0: resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.1.tgz#326b7c2f6e53e1a0eaafc9769578aafb3f9c9f43" integrity sha512-/U6ufN2wRPgg4m2a9sqbL3dThqQsysT022qulEXWnUTmNaqnzYSk9ihjDWqoqjXLi9slQLsyok5t6CNzhM7HPw== -expo-file-system@~16.0.3: - version "16.0.3" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.3.tgz#d7f45b77b6e085a106edb5178c3cbef884f42156" - integrity sha512-F1RGwrkz70sIqdTswhsawFRSCwBgrQO0BEX8IxzWYRiucL2MnazeZ6tUx1vSQunuw49JexMcEozEccb0YEDzIw== +expo-file-system@~16.0.8: + version "16.0.8" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.8.tgz#13c79a8e06e42a8e76e9297df6920597a011d989" + integrity sha512-yDbVT0TUKd7ewQjaY5THum2VRFx2n/biskGhkUmLh3ai21xjIVtaeIzHXyv9ir537eVgt4ReqDNWi7jcXjdUcA== -expo-font@~11.10.1: - version "11.10.1" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.1.tgz#df9a853947d655c88f9286cfe6c11158958b066e" - integrity sha512-eEi/EoJWFUy5CHJudfUtS8VKQdTW04f+OaKEBYj7eLUwW8bccRkA1ADtxyxLIkKdWlt2oZuVezvcgab5pYbCtQ== +expo-font@~11.10.3: + version "11.10.3" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.3.tgz#a3115ebda8e09bd7cb8052619a4bbe606f0c17f4" + integrity sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ== dependencies: fontfaceobserver "^2.1.0" +expo-haptics@^12.8.1: + version "12.8.1" + resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.8.1.tgz#42b996763be33d661bd33bbc3b3958c3f2734b9d" + integrity sha512-ntLsHkfle8K8w9MW8pZEw92ZN3sguaGUSSIxv30fPKNeQFu7Cq/h47Qv3tONv2MO3wU48N9FbKnant6XlfptpA== + expo-image-loader@~4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.6.0.tgz#ca7d4fdf53125bff2091d3a2c34a3155f10df147" @@ -11975,10 +11901,10 @@ expo-image-picker@~14.7.1: dependencies: expo-image-loader "~4.6.0" -expo-image@~1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.3.tgz#142d2274388c2e32b9559e5e4a3513bc2bea7543" - integrity sha512-/oVFgzRnSHTdKVGPB0gSkNemVwmWTznBOs8aCAHGbTx6vG2nYCzhmjM0Yc+io+q8v4sH0U3zE0U5ZHJtCJ9Wqg== +expo-image@~1.10.6: + version "1.10.6" + resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.6.tgz#b0e54d31d97742505296c076a5f18d094ba9a8cc" + integrity sha512-vcnAIym1eU8vQgV1re1E7rVQZStJimBa4aPDhjFfzMzbddAF7heJuagyewiUkTzbZUwYzPaZAie6VJPyWx9Ueg== dependencies: "@react-native/assets-registry" "~0.73.1" @@ -11987,10 +11913,15 @@ expo-json-utils@~0.12.0: resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.12.0.tgz#15ad797e9518a6a47eae9b95599e6373e641f8f2" integrity sha512-xsUsPUZcXZWoT4RY3FhEPYGYvr2iThMNNU5drdmkC/vmkePvqy5kK4aIqlIKzQboXxj7k1dXoNSSLg5mKy8uKg== -expo-keep-awake@~12.8.1: - version "12.8.1" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.1.tgz#3c8df9d86c265741b5e7bdd36965aa0c6fc17df0" - integrity sha512-P/VZFV02Rzgj13skMwH+ceGOGZSEdaUu5n7pCS3wThh2LppZjPJ7sBxUwyzeLa3DXEVUtwLZi+BiQ91wPwy9Gg== +expo-keep-awake@~12.8.2: + version "12.8.2" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz#6cfdf8ad02b5fa130f99d4a1eb98e459d5b4332e" + integrity sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g== + +expo-linear-gradient@^12.7.2: + version "12.7.2" + resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-12.7.2.tgz#2ff9593eae8448ac5630be1a36ce6133c4a6f074" + integrity sha512-Wwb2EF18ywgrlTodcXJ6Yt/UEcKitRMdXPNyP/IokmeKh4emoq9DxZJpZdkXm3HUTLlbRpi6/t32jrFVqXB9AQ== expo-linking@^6.2.2: version "6.2.2" @@ -12000,10 +11931,10 @@ expo-linking@^6.2.2: expo-constants "~15.4.3" invariant "^2.2.4" -expo-localization@~14.8.2: - version "14.8.2" - resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.2.tgz#e0bbed2293265834d21a1c58d3a5f8d265bd04ae" - integrity sha512-ZymzPq7Zjkr0j/w2N+sNNj6EPihW99D0yCEC8CVWed5Uv7GfjwlnN0dUOlNy7y987ecV7N4/T0sEiZ966vaGmg== +expo-localization@~14.8.3: + version "14.8.3" + resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.3.tgz#c1efa8a314b6bfe38425bbc6bcce9cf9b84a802d" + integrity sha512-leg1e+7ocUgfNWa7Men/g16waXtdSpBMR9tCdv3CG4wztmFU8C+87VAnnVkvHi4CCUkTLzhP3y0FcE6KIWTwdw== dependencies: rtl-detect "^1.0.2" @@ -12020,10 +11951,10 @@ expo-media-library@~15.9.1: resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.9.1.tgz#1eaf5a0c8f51669f6f86d385a8fa411226042216" integrity sha512-Y29uKFJ3qWwNejIrjoCppXp3OgIFs/RYHWXkF9xey6evpNrUlHoP1WHG2jYAMSrss6aIRVt3tO7EtYUCZxz50Q== -expo-modules-autolinking@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.0.tgz#3ca55befdaf7bf0770d24df235be87597457ed78" - integrity sha512-3mM/pi4xVlGBr/+soD/ywBMWk9edRu/fRimocUkSrcwmFkwHDdjBaJdncKmq8ysroSn0tC8yHkKuuKitS+qoeg== +expo-modules-autolinking@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz#19f349884a90f3f27ec9d64e8f2fa6be609558c5" + integrity sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw== dependencies: "@expo/config" "~8.5.0" chalk "^4.1.0" @@ -12032,17 +11963,17 @@ expo-modules-autolinking@1.10.0: find-up "^5.0.0" fs-extra "^9.1.0" -expo-modules-core@1.11.6: - version "1.11.6" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.6.tgz#3babed3b812a696ddec15cc4107ed4a77b7aaa05" - integrity sha512-5EWAGtDNVfkqFOPO3zNmsHgBbx5Y+jLoRaTybA+iF165YFho3QjOy6FvVGNJs+P15vAgus1W8MSZZTreUulOfw== +expo-modules-core@1.11.12: + version "1.11.12" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.12.tgz#d5c7b3ed7ab57d4fb6885a0d8e10287dcf1ffe5f" + integrity sha512-/e8g4kis0pFLer7C0PLyx98AfmztIM6gU9jLkYnB1pU9JAfQf904XEi3bmszO7uoteBQwSL6FLp1m3TePKhDaA== dependencies: invariant "^2.2.4" -expo-notifications@~0.27.3: - version "0.27.3" - resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.3.tgz#18f3d6dadc14aefc32937bddc54572bbf68236a7" - integrity sha512-P4zhbVYDhTtV7xCdcxpk4tTbWh33P+A0ZTbpUrp6vcpZk8QprhjhB2okr1/R1z0fpxUPv74KYex5fnAHxTVIvw== +expo-notifications@~0.27.6: + version "0.27.6" + resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.6.tgz#ef7c95504034ac8b5fa360e13f5b037c5bf7e80d" + integrity sha512-F2iu/lzsrvfMyHA5BfnbZfE8fVLV8aQmNLk3NPztZ0g7911QEriZzH7BK/NKOZ5UHhJYI+hhYvcZCq2nFm1NLA== dependencies: "@expo/image-utils" "^0.4.0" "@ide/backoff" "^1.0.0" @@ -12068,12 +11999,12 @@ expo-sharing@^11.10.0: resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.10.0.tgz#0e85197ee4d2634b00fe201e571fbdc64cf83eef" integrity sha512-/64RyyKlZ25WfnMXa87HbPXhIIqWwNbIku/RaIYAq4SE0XTRC+KTH3v0XFkfDa+SCG/jKsAr1pJ3vQvsNo1sCQ== -expo-splash-screen@~0.26.2: - version "0.26.2" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.2.tgz#3bf733618a76efe7dc25af32254767673b13dda2" - integrity sha512-yvKjO+3WA1HSA/fRCtiRweC/LPYaB5UKjJQs7kHyZHjObvjAZC95tNorUitGQYPkrjgywsaDsXKlJt5KspmVgg== +expo-splash-screen@~0.26.4: + version "0.26.4" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.4.tgz#bc1fb226c6eae03ee351a3ebe5521a37f868cbc7" + integrity sha512-2DwofTQ0FFQCsvDysm/msENsbyNsJiAJwK3qK/oXeizECAPqD7bK19J4z9kuEbr7ORPX9MLnTQYKl6kmX3keUg== dependencies: - "@expo/prebuild-config" "6.7.3" + "@expo/prebuild-config" "6.7.4" expo-status-bar@~1.11.1: version "1.11.1" @@ -12093,10 +12024,10 @@ expo-system-ui@~2.9.3: "@react-native/normalize-color" "^2.0.0" debug "^4.3.2" -expo-task-manager@~11.7.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.0.tgz#3e87a3c3d941a60d3c4447d837b3ae95be7dcb4b" - integrity sha512-P5pmN3rQgDaIeLyEFMXixuimeRR4IDDU6nDo1kv/Y2JQrgpNKeOHjTbRdzd6iPOeqIa+/3k3tAooU8VYp534tA== +expo-task-manager@~11.7.2: + version "11.7.2" + resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.2.tgz#db09ee5ed4adf1ea586c131a60196cb387a7eb4a" + integrity sha512-cmn7xg8+mGP7gX6deYZhvrCkKMkoBRJ+E4o5aL17Z/4ihXMfo/PFcQsrpuSYRLXzgidEw0kpppxhmYm21Jswwg== dependencies: unimodules-app-loader "~4.5.0" @@ -12105,10 +12036,10 @@ expo-updates-interface@~0.15.1: resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.15.1.tgz#b0242fa7ba05768ada2f0faf83b90aa8b8fa65d7" integrity sha512-B42oOB0pw4TaPoOGE/yzt9ggwNNxo3PEJRU0kIOurQ8hW5UEUC8cAbGQDYWGbTyNGp8gLBG+T2MCg+YYaCYJUw== -expo-updates@~0.24.7: - version "0.24.7" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.7.tgz#d7d2eb12342e6c0b5afa3a64d8d4e03f933dbf30" - integrity sha512-3mrFP8TO13kD0HejsKjpc/OSEm10yETkbj+5QIlLTtWmu6MPYdXYdMhx8gxR7HWXiptDtuzGlWi2imFW1sHE/g== +expo-updates@~0.24.10: + version "0.24.12" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.12.tgz#17a708f52f999d0a7dcbf3d4401b5a481ab12730" + integrity sha512-35ZpAMSqHIyVGT5mEptaZJBxytu0mv4PIG28i3BQe+GG4ifQtY94aCOCrUwZe8Myzaf4dNVGEUXWTPo+JPCgcw== dependencies: "@expo/code-signing-certificates" "0.0.5" "@expo/config" "~8.5.0" @@ -12122,32 +12053,32 @@ expo-updates@~0.24.7: fbemitter "^3.0.0" resolve-from "^5.0.0" -expo-web-browser@~12.8.1: - version "12.8.1" - resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.1.tgz#9f56e70fc16f0508d6e36344f65873ca15920201" - integrity sha512-1x47xcOor6MRo43P3L65WTaBgsj/346pPA5v+wMb1ePH9XYfuAivKGAnn318q29yGx7VhX8K7WehmJx1muA+8Q== +expo-web-browser@~12.8.2: + version "12.8.2" + resolved "https://registry.yarnpkg.com/expo-web-browser/-/expo-web-browser-12.8.2.tgz#f34fb85c80031e0dddd4f9b9efd03cb60333b089" + integrity sha512-Mw8WoFMSADecNjtC4PZVsVj1/lYdxIAH1jOVV+F8v8SEWYxORWofoShfXg7oUxRLu0iUG8JETfO5y4m8+fOgdg== dependencies: compare-urls "^2.0.0" url "^0.11.0" -expo@^50.0.0-preview.10: - version "50.0.0-preview.10" - resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.0-preview.10.tgz#344186fc6ded29aa0aeb93eae662aac5d396acc0" - integrity sha512-E+TIIXvhnNAOHBkVSohmW3uQhsWhPbyfpj05X4CA0Tr16ZmdYAW1V43q5Au1YULaptW6BtROcMopKFLEyGBlTA== +expo@^50.0.8: + version "50.0.14" + resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.14.tgz#ddcae86aa0ba8d1be3da9ad1bdda23fa539dc97d" + integrity sha512-yLPdxCMVAbmeEIpzzyAuJ79wvr6ToDDtQmuLDMAgWtjqP8x3CGddXxUe07PpKEQgzwJabdHvCLP5Bv94wMFIjQ== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.16.7" - "@expo/config" "8.5.3" - "@expo/config-plugins" "7.8.3" - "@expo/metro-config" "0.17.1" + "@expo/cli" "0.17.8" + "@expo/config" "8.5.4" + "@expo/config-plugins" "7.8.4" + "@expo/metro-config" "0.17.6" "@expo/vector-icons" "^14.0.0" babel-preset-expo "~10.0.1" expo-asset "~9.0.2" - expo-file-system "~16.0.3" - expo-font "~11.10.1" - expo-keep-awake "~12.8.1" - expo-modules-autolinking "1.10.0" - expo-modules-core "1.11.6" + expo-file-system "~16.0.8" + expo-font "~11.10.3" + expo-keep-awake "~12.8.2" + expo-modules-autolinking "1.10.3" + expo-modules-core "1.11.12" fbemitter "^3.0.0" whatwg-url-without-unicode "8.0.0-3" @@ -15775,11 +15706,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru_map@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.4.1.tgz#f7b4046283c79fb7370c36f8fca6aee4324b0a98" - integrity sha512-I+lBvqMMFfqaV8CJCISjI3wbjmwVu/VyOoU7+qtu9d7ioW5klMgsTTiUOUp+DJvfTTzKXoPbyC6YfgkNcyPSOg== - magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" @@ -16353,11 +16279,6 @@ moo@^0.5.1: resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== - mrmime@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" @@ -16442,6 +16363,11 @@ nanoid@^3.1.23, nanoid@^3.3.1, nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + nanoid@^5.0.5: version "5.0.5" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-5.0.5.tgz#5112efb5c0caf4fc80680d66d303c65233a79fdd" @@ -17294,6 +17220,11 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2, picomatc resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-3.0.1.tgz#817033161def55ec9638567a2f3bbc876b3e7516" + integrity sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag== + pidtree@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" @@ -17999,6 +17930,15 @@ postcss@~8.4.21: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@~8.4.32: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + postgres-array@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" @@ -18543,11 +18483,6 @@ react-avatar-editor@^13.0.0: "@babel/runtime" "^7.12.5" prop-types "^15.7.2" -react-circular-progressbar@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-circular-progressbar/-/react-circular-progressbar-2.1.0.tgz#99e5ae499c21de82223b498289e96f66adb8fa3a" - integrity sha512-xp4THTrod4aLpGy68FX/k1Q3nzrfHUjUe5v6FsdwXBl3YVMwgeXYQKDrku7n/D6qsJA9CuunarAboC2xCiKs1g== - react-dev-utils@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" @@ -18626,11 +18561,6 @@ react-keyed-flatten-children@^3.0.0: dependencies: react-is "^18.2.0" -react-native-appstate-hook@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/react-native-appstate-hook/-/react-native-appstate-hook-1.0.6.tgz#cbc16e7b89cfaea034cabd999f00e99053cabd06" - integrity sha512-0hPVyf5yLxCSVrrNEuGqN1ZnSSj3Ye2gZex0NtcK/AHYwMc0rXWFNZjBKOoZSouspqu3hXBbQ6NOUSTzrME1AQ== - react-native-date-picker@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/react-native-date-picker/-/react-native-date-picker-4.4.0.tgz#fe5b6eb8d85a4a30b2991ada5169a30ce5023ead" @@ -18676,18 +18606,13 @@ react-native-get-random-values@^1.6.0: dependencies: fast-base64-decode "^1.0.0" -react-native-get-random-values@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/react-native-get-random-values/-/react-native-get-random-values-1.8.0.tgz#1cb4bd4bd3966a356e59697b8f372999fe97cb16" - integrity sha512-H/zghhun0T+UIJLmig3+ZuBCvF66rdbiWUfRSNS6kv5oDSpa1ZiVyvRWtuPesQpT8dXj+Bv7WJRQOUP+5TB1sA== +react-native-get-random-values@~1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/react-native-get-random-values/-/react-native-get-random-values-1.11.0.tgz#1ca70d1271f4b08af92958803b89dccbda78728d" + integrity sha512-4BTbDbRmS7iPdhYLRcz3PGFIpFJBwNZg9g42iwa2P6FOv9vZj/xJc678RZXnLNZzd0qd7Q3CCF6Yd+CU2eoXKQ== dependencies: fast-base64-decode "^1.0.0" -react-native-haptic-feedback@^1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/react-native-haptic-feedback/-/react-native-haptic-feedback-1.14.0.tgz#b50f49dedda4980b3c37c5780823f753cf3ee717" - integrity sha512-dSXZ6gAzl+W/L7BPjOpnT0bx0cgQiSr0sB3DjyDJbGIdVr4ISaktZC6gC9xYFTv2kMq0+KtbKi+dpd0WtxYZMw== - react-native-image-crop-picker@^0.38.1: version "0.38.1" resolved "https://registry.yarnpkg.com/react-native-image-crop-picker/-/react-native-image-crop-picker-0.38.1.tgz#5973b4a8b55835b987e6be2064de411e849ac005" @@ -18700,11 +18625,6 @@ react-native-ios-context-menu@^1.15.3: dependencies: "@dominicstop/ts-event-emitter" "^1.1.0" -react-native-linear-gradient@^2.6.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.8.2.tgz#9811c91751be673ef928ef4aa3ff3a70b82935d6" - integrity sha512-hgmCsgzd58WNcDCyPtKrvxsaoETjb/jLGxis/dmU3Aqm2u4ICIduj4ECjbil7B7pm9OnuTkmpwXu08XV2mpg8g== - react-native-pager-view@6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.3.tgz#698f6387fdf06cecc3d8d4792604419cb89cb775" @@ -18777,16 +18697,6 @@ react-native-uuid@^2.0.1: resolved "https://registry.yarnpkg.com/react-native-uuid/-/react-native-uuid-2.0.1.tgz#ed4e2dfb1683eddb66967eb5dca140dfe1abddb9" integrity sha512-cptnoIbL53GTCrWlb/+jrDC6tvb7ypIyzbXNJcpR3Vab0mkeaaVd5qnB3f0whXYzS+SMoSQLcUUB0gEWqkPC0g== -react-native-version-number@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/react-native-version-number/-/react-native-version-number-0.3.6.tgz#dd8b1435fc217df0a166d7e4a61fdc993f3e7437" - integrity sha512-TdyXiK90NiwmSbmAUlUBOV6WI1QGoqtvZZzI5zQY4fKl67B3ZrZn/h+Wy/OYIKKFMfePSiyfeIs8LtHGOZ/NgA== - -react-native-web-linear-gradient@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/react-native-web-linear-gradient/-/react-native-web-linear-gradient-1.1.2.tgz#33f85f7085a0bb5ffa5106faf02ed105b92a9ed7" - integrity sha512-SmUnpwT49CEe78pXvIvYf72Es8Pv+ZYKCnEOgb2zAKpEUDMo0+xElfRJhwt5nfI8krJ5WbFPKnoDgD0uUjAN1A== - react-native-web-webview@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/react-native-web-webview/-/react-native-web-webview-1.0.2.tgz#c215efa70c17589f2c8d640b1f1dc669b18c6e02" @@ -19760,11 +19670,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-cookie-parser@^2.4.8: - version "2.6.0" - resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" - integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== - set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -19992,6 +19897,11 @@ source-map-js@^1.0.1, source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-loader@^3.0.0, source-map-loader@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-3.0.2.tgz#af23192f9b344daa729f6772933194cc5fa54fee" @@ -20009,7 +19919,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@^0.5.6, source-map-support@~0.5.20, source-map-support@~0.5.21: +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20, source-map-support@~0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -20222,11 +20132,6 @@ stream-json@^1.7.4, stream-json@^1.7.5: dependencies: stream-chain "^2.2.5" -stream-slice@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b" - integrity sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA== - streamx@^2.15.0: version "2.15.5" resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" @@ -20484,7 +20389,7 @@ styleq@^0.1.3: resolved "https://registry.yarnpkg.com/styleq/-/styleq-0.1.3.tgz#8efb2892debd51ce7b31dc09c227ad920decab71" integrity sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA== -sucrase@^3.20.0, sucrase@^3.32.0: +sucrase@3.34.0, sucrase@^3.20.0, sucrase@^3.32.0: version "3.34.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== @@ -21351,13 +21256,6 @@ use-callback-ref@^1.3.0: dependencies: tslib "^2.0.0" -use-deep-compare@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/use-deep-compare/-/use-deep-compare-1.1.0.tgz#85580dde751f68400bf6ef7e043c7f986595cef8" - integrity sha512-6yY3zmKNCJ1jjIivfZMZMReZjr8e6iC6Uqtp701jvWJ6ejC/usXD+JjmslZDPJQgX8P4B1Oi5XSLHkOLeYSJsA== - dependencies: - dequal "1.0.0" - use-latest-callback@^0.1.5: version "0.1.6" resolved "https://registry.yarnpkg.com/use-latest-callback/-/use-latest-callback-0.1.6.tgz#3fa6e7babbb5f9bfa24b5094b22939e1e92ebcf6" @@ -21401,7 +21299,7 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@^0.12.0, util@^0.12.3: +util@^0.12.0: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -21552,20 +21450,6 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web-encoding@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" - integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== - dependencies: - util "^0.12.3" - optionalDependencies: - "@zxing/text-encoding" "0.9.0" - -web-streams-polyfill@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" - integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"