diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9a0a562..bb0285d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -42,6 +42,9 @@ jobs: - name: Install dependencies run: yarn install + + - name: Type Check + run: yarn tsc - name: 🏗 Setup Expo uses: expo/expo-github-action@v7 @@ -52,7 +55,7 @@ jobs: - name: Build Android APK run: | - eas build -p android --profile debug --local --non-interactive + eas build -p android --profile production --local --non-interactive mv *.apk chromacase.apk - name: Upload Artifact diff --git a/front/App.tsx b/front/App.tsx index 49db9e3..e3b7ea4 100644 --- a/front/App.tsx +++ b/front/App.tsx @@ -8,6 +8,7 @@ import * as SplashScreen from 'expo-splash-screen'; import { PersistGate } from "redux-persist/integration/react"; import LanguageGate from "./i18n/LanguageGate"; import ThemeProvider, { ColorSchemeProvider } from './Theme'; +import 'react-native-url-polyfill/auto'; const queryClient = new QueryClient({ defaultOptions: { diff --git a/front/Dockerfile b/front/Dockerfile index cd9b918..34b510e 100644 --- a/front/Dockerfile +++ b/front/Dockerfile @@ -17,7 +17,7 @@ ENV API_URL=$API_URL ARG SCORO_URL ENV SCORO_URL=$SCORO_URL -RUN expo build:web +RUN yarn tsc && expo build:web # Serve the app FROM nginx:1.21-alpine diff --git a/front/Navigation.tsx b/front/Navigation.tsx index bc64775..ce5622e 100644 --- a/front/Navigation.tsx +++ b/front/Navigation.tsx @@ -12,7 +12,7 @@ import HomeView from './views/HomeView'; import SearchView from './views/SearchView'; import SetttingsNavigator from './views/settings/SettingsView'; import { useQuery } from 'react-query'; -import API from './API'; +import API, { APIError } from './API'; import PlayView from './views/PlayView'; import ScoreView from './views/ScoreView'; import { LoadingView } from './components/Loading'; @@ -94,7 +94,7 @@ export const Router = () => { retry: 1, refetchOnWindowFocus: false, onError: (err) => { - if (err.status === 401) { + if (err instanceof APIError && err.status === 401) { dispatch(unsetAccessToken()); } }, diff --git a/front/components/Card.tsx b/front/components/Card.tsx index 33bc255..4f4dfa3 100644 --- a/front/components/Card.tsx +++ b/front/components/Card.tsx @@ -12,14 +12,18 @@ const cardBorder = (theme: ReturnType) => ({ borderWidth: 1 }) -const Card = (props: Parameters[0] & { onPress: () => void }) => { +type CardProps = Parameters[0] & { + onPress: () => void +} + +const Card = (props: CardProps) => { const theme = useTheme(); const colorScheme = useSelector((state: RootState) => state.settings.local.colorScheme); const systemColorMode = useColorScheme(); return {({ isHovered, isPressed }) => ( - { - let actionFunction = null as null | Function; +export const Element = (props: T) => { + let actionFunction: IPressableProps['onPress'] = null; switch (props.type) { case "text": diff --git a/front/components/GtkUI/ElementList.tsx b/front/components/GtkUI/ElementList.tsx index 4a196e6..ff175c9 100644 --- a/front/components/GtkUI/ElementList.tsx +++ b/front/components/GtkUI/ElementList.tsx @@ -2,14 +2,7 @@ import React from "react"; import { StyleProp, ViewStyle } from "react-native"; import { Element } from "./Element"; import useColorScheme from "../../hooks/colorScheme"; - -import { - ElementTextProps, - ElementToggleProps, - ElementDropdownProps, - ElementRangeProps, - ElementType, -} from "./ElementTypes"; +import { ElementProps } from "./ElementTypes"; import { Box, @@ -17,21 +10,6 @@ import { Divider, } from "native-base"; -export type ElementProps = { - title: string; - icon?: React.ReactNode; - type?: ElementType; - helperText?: string; - description?: string; - disabled?: boolean; - data?: - | ElementTextProps - | ElementToggleProps - | ElementDropdownProps - | ElementRangeProps - | React.ReactNode; -}; - type ElementListProps = { elements: ElementProps[]; style?: StyleProp; @@ -42,9 +20,11 @@ const ElementList = ({ elements, style }: ElementListProps) => { const isDark = colorScheme === "dark"; const elementStyle = { borderRadius: 10, - boxShadow: isDark ? "0px 0px 3px 0px rgba(255,255,255,0.6)" : "0px 0px 3px 0px rgba(0,0,0,0.4)", + boxShadow: isDark + ? "0px 0px 3px 0px rgba(255,255,255,0.6)" + : "0px 0px 3px 0px rgba(0,0,0,0.4)", overflow: "hidden", - }; + } as const; return ( diff --git a/front/components/GtkUI/ElementTypes.tsx b/front/components/GtkUI/ElementTypes.tsx index 4d3eccf..c19edf3 100644 --- a/front/components/GtkUI/ElementTypes.tsx +++ b/front/components/GtkUI/ElementTypes.tsx @@ -1,12 +1,19 @@ import { Select, Switch, Text, Icon, Row, Slider } from "native-base"; import { MaterialIcons } from "@expo/vector-icons"; -export type ElementType = - | "custom" - | "default" - | "text" - | "toggle" - | "dropdown" - | "range"; + +export type ElementProps = { + title: string; + icon?: React.ReactNode; + helperText?: string; + description?: string; + disabled?: boolean; +} & ( + { type: 'text', data : ElementTextProps } | + { type: 'toggle', data : ElementToggleProps } | + { type: 'dropdown', data : ElementDropdownProps } | + { type: 'range', data : ElementRangeProps } | + { type: 'custom', data : React.ReactNode } +); export type DropdownOption = { label: string; diff --git a/front/components/GtkUI/RawElement.tsx b/front/components/GtkUI/RawElement.tsx index e4be9c7..12a02f1 100644 --- a/front/components/GtkUI/RawElement.tsx +++ b/front/components/GtkUI/RawElement.tsx @@ -12,7 +12,7 @@ import { } from "native-base"; import useColorScheme from "../../hooks/colorScheme"; import { Ionicons } from "@expo/vector-icons"; -import { ElementProps } from "./ElementList"; +import { ElementProps } from "./ElementTypes"; import { getElementDropdownNode, getElementTextNode, @@ -121,28 +121,15 @@ export const RawElement = ({ element, isHovered }: RawElementProps) => { {(() => { switch (type) { case "text": - return getElementTextNode( - data as ElementTextProps, - disabled ?? false - ); + return getElementTextNode(data, disabled ?? false); case "toggle": - return getElementToggleNode( - data as ElementToggleProps, - disabled ?? false - ); + return getElementToggleNode(data, disabled ?? false); case "dropdown": - return getElementDropdownNode( - data as ElementDropdownProps, - disabled ?? false - ); + return getElementDropdownNode(data, disabled ?? false); case "range": - return getElementRangeNode( - data as ElementRangeProps, - disabled ?? false, - title - ); + return getElementRangeNode(data, disabled ?? false, title); case "custom": - return data as React.ReactNode; + return data; default: return Unknown type; } diff --git a/front/components/PartitionView.tsx b/front/components/PartitionView.tsx index 0a08a4b..5c4f3ac 100644 --- a/front/components/PartitionView.tsx +++ b/front/components/PartitionView.tsx @@ -5,6 +5,7 @@ import { CursorType, Fraction, OpenSheetMusicDisplay as OSMD, IOSMDOptions, Note import useColorScheme from '../hooks/colorScheme'; import { useWindowDimensions } from 'react-native'; import SoundFont from 'soundfont-player'; +import * as SAC from 'standardized-audio-context'; type PartitionViewProps = { // The Buffer of the MusicXML file retreived from the API @@ -18,8 +19,7 @@ type PartitionViewProps = { const PartitionView = (props: PartitionViewProps) => { const [osmd, setOsmd] = useState(); const [soundPlayer, setSoundPlayer] = useState(); - const AudioContext = window.AudioContext || window.webkitAudioContext || false; - const audioContext = new AudioContext(); + const audioContext = new SAC.AudioContext(); const [wholeNoteLength, setWholeNoteLength] = useState(0); // Length of Whole note, in ms (?) const colorScheme = useColorScheme(); const dimensions = useWindowDimensions(); @@ -63,17 +63,17 @@ const PartitionView = (props: PartitionViewProps) => { // console.log('Expecting midi ' + midiNumber); let duration = getActualNoteLength(note); const gain = note.ParentVoiceEntry.ParentVoice.Volume; - soundPlayer!.play(midiNumber, audioContext.currentTime, { duration, gain }) + soundPlayer!.play(midiNumber.toString(), audioContext.currentTime, { duration, gain }) }); } const getShortedNoteUnderCursor = () => { - return osmd.cursor.NotesUnderCursor().sort((n1, n2) => n1.Length.CompareTo(n2.Length)).at(0); + return osmd!.cursor.NotesUnderCursor().sort((n1, n2) => n1.Length.CompareTo(n2.Length)).at(0); } useEffect(() => { const _osmd = new OSMD(OSMD_DIV_ID, options); Promise.all([ - SoundFont.instrument(audioContext, 'electric_piano_1'), + SoundFont.instrument(audioContext as unknown as AudioContext, 'electric_piano_1'), _osmd.load(props.file) ]).then(([player, __]) => { setSoundPlayer(player); @@ -125,7 +125,7 @@ const PartitionView = (props: PartitionViewProps) => { // Shamelessly stolen from https://github.com/jimutt/osmd-audio-player/blob/ec205a6e46ee50002c1fa8f5999389447bba7bbf/src/PlaybackEngine.ts#LL223C7-L224C1 playNotesUnderCursor(); currentCursorPosition = osmd.cursor.cursorElement.offsetLeft; - document.getElementById(OSMD_DIV_ID).scrollBy(currentCursorPosition - previousCursorPosition, 0) + document.getElementById(OSMD_DIV_ID)?.scrollBy(currentCursorPosition - previousCursorPosition, 0) shortestNote = getShortedNoteUnderCursor(); } } diff --git a/front/components/PartitionVisualizer/PartitionVisualizer.tsx b/front/components/PartitionVisualizer/PartitionVisualizer.tsx index ef716cb..7df9cfc 100644 --- a/front/components/PartitionVisualizer/PartitionVisualizer.tsx +++ b/front/components/PartitionVisualizer/PartitionVisualizer.tsx @@ -10,14 +10,7 @@ type PartitionVisualizerProps = { }; const PartitionVisualizer = ({ songId }: PartitionVisualizerProps) => { - - - if (!partitionRessources.data) { - return ; - } - return ( - - ); + return <>; }; export default PartitionVisualizer; diff --git a/front/components/VirtualPiano/Octave.tsx b/front/components/VirtualPiano/Octave.tsx index 417c1b2..d8f3052 100644 --- a/front/components/VirtualPiano/Octave.tsx +++ b/front/components/VirtualPiano/Octave.tsx @@ -123,12 +123,7 @@ const Octave = (props: OctaveProps) => { {showOctaveNumber && ( , @@ -102,7 +103,7 @@ function TabNavigator({ }, [state.index]); React.useEffect(() => { - navigation.setOptions({ + navigator.setOptions({ headerShown: !isMobileView || isPanelView, }); }, [isMobileView, isPanelView]); @@ -130,7 +131,7 @@ function TabNavigator({ return null; } const isSelected = route.key === state.routes[state.index]?.key; - const { options } = descriptors[route.key]; + const options = descriptors[route.key]?.options; return ( ); @@ -209,7 +210,7 @@ function TabNavigator({ } /> )} - {descriptors[state.routes[state.index]?.key]?.render()} + {descriptors[state.routes[state.index]!.key]?.render()} )} diff --git a/front/hooks/colorScheme.ts b/front/hooks/colorScheme.ts index d8a67f3..b0e7d87 100644 --- a/front/hooks/colorScheme.ts +++ b/front/hooks/colorScheme.ts @@ -1,9 +1,8 @@ import { Appearance } from "react-native"; -import { useSelector } from "react-redux"; -import { RootState } from "../state/Store"; +import { useSelector } from "../state/Store"; const useColorScheme = (): 'light' | 'dark' => { - const colorScheme = useSelector((state: RootState) => state.settings.local.colorScheme); + const colorScheme = useSelector((state) => state.settings.local.colorScheme); const systemColorScheme = Appearance.getColorScheme(); if (colorScheme == 'system') { diff --git a/front/models/LocalSettings.ts b/front/models/LocalSettings.ts index 6f65462..c712155 100644 --- a/front/models/LocalSettings.ts +++ b/front/models/LocalSettings.ts @@ -1,4 +1,4 @@ -interface LocalSettings { +export default interface LocalSettings { deviceId: number, micVolume: number, colorScheme: 'light' | 'dark' | 'system', diff --git a/front/package.json b/front/package.json index 08a90f9..243fa81 100644 --- a/front/package.json +++ b/front/package.json @@ -17,6 +17,7 @@ }, "dependencies": { "@expo/vector-icons": "^13.0.0", + "@motiz88/react-native-midi": "^0.0.5", "@react-native-async-storage/async-storage": "~1.17.3", "@react-navigation/native": "^6.0.11", "@react-navigation/native-stack": "^6.7.0", @@ -30,6 +31,7 @@ "expo": "^47.0.8", "expo-asset": "~8.7.0", "expo-dev-client": "~2.0.1", + "expo-linking": "~3.3.1", "expo-screen-orientation": "~5.0.1", "expo-secure-store": "~12.0.0", "expo-splash-screen": "~0.17.5", @@ -54,12 +56,14 @@ "react-native-super-grid": "^4.6.1", "react-native-svg": "13.4.0", "react-native-testing-library": "^6.0.0", + "react-native-url-polyfill": "^1.3.0", "react-native-web": "~0.18.7", "react-redux": "^8.0.2", "react-timer-hook": "^3.0.5", "react-use-precision-timer": "^3.3.1", "redux-persist": "^6.0.0", "soundfont-player": "^0.12.0", + "standardized-audio-context": "^25.3.51", "type-fest": "^3.6.0", "yup": "^0.32.11" }, diff --git a/front/state/SettingsSlice.ts b/front/state/SettingsSlice.ts index d5ef39e..cb0921d 100644 --- a/front/state/SettingsSlice.ts +++ b/front/state/SettingsSlice.ts @@ -1,4 +1,5 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"; +import LocalSettings from "../models/LocalSettings"; export const settingsSlice = createSlice({ name: 'settings', diff --git a/front/tsconfig.json b/front/tsconfig.json index e7f36ff..7230ee3 100644 --- a/front/tsconfig.json +++ b/front/tsconfig.json @@ -13,7 +13,7 @@ /* Language and Environment */ "target": "esnext", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - "lib": ["es2019"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + "lib": ["es2019", "DOM"], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ "jsx": "react-native", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ @@ -100,6 +100,8 @@ "skipLibCheck": true /* Skip type checking all .d.ts files. */ }, "exclude": [ - "node_modules", "babel.config.js", "metro.config.js", "jest.config.js" + "node_modules", "babel.config.js", "metro.config.js", + "jest.config.js", "app.config.ts", + "*/*.test.tsx" ] } diff --git a/front/views/HomeView.tsx b/front/views/HomeView.tsx index 6c2e27c..ae85d81 100644 --- a/front/views/HomeView.tsx +++ b/front/views/HomeView.tsx @@ -118,7 +118,7 @@ const HomeView = () => { navigation.navigate('Search')} + onPress={() => navigation.navigate('Search', {})} /> { } { [...(new Set(searchHistoryQuery.data.map((x) => x.query)))].slice(0, 5).map((query) => ( - + /> )) } diff --git a/front/views/PlayView.tsx b/front/views/PlayView.tsx index 3650dc9..2a0ac41 100644 --- a/front/views/PlayView.tsx +++ b/front/views/PlayView.tsx @@ -18,6 +18,10 @@ import { ColorSchemeType } from 'native-base/lib/typescript/components/types'; import { useStopwatch } from "react-use-precision-timer"; import PartitionView from '../components/PartitionView'; import TextButton from '../components/TextButton'; +import { MIDIAccess, MIDIMessageEvent, requestMIDIAccess } from "@motiz88/react-native-midi"; +import * as Linking from 'expo-linking'; +import { URL } from 'url'; +import { url } from 'inspector'; type PlayViewProps = { songId: number, @@ -34,19 +38,25 @@ type ScoreMessage = { let scoroBaseApiUrl = Constants.manifest?.extra?.scoroUrl; if (process.env.NODE_ENV != 'development' && Platform.OS === 'web') { - if (location.protocol === 'https:') { - scoroBaseApiUrl = "wss://" + location.host + "/ws"; - } else { - scoroBaseApiUrl = "ws://" + location.host + "/ws"; - } + + Linking.getInitialURL().then((url) => { + if (url !== null) { + const location = new URL(url); + if (location.protocol === 'https:') { + scoroBaseApiUrl = "wss://" + location.host + "/ws"; + } else { + scoroBaseApiUrl = "ws://" + location.host + "/ws"; + } + } + }); } -function parseMidiMessage(message) { +function parseMidiMessage(message: MIDIMessageEvent) { return { - command: message.data[0] >> 4, - channel: message.data[0] & 0xf, - note: message.data[1], - velocity: message.data[2] / 127, + command: message.data.at(0)! >> 4, + channel: message.data.at(0)! & 0xf, + note: message.data.at(1)!, + velocity: message.data.at(2)! / 127, }; } @@ -99,7 +109,7 @@ const PlayView = ({ songId, type, route }: RouteProps) => { })); } - const onMIDISuccess = (access) => { + const onMIDISuccess = (access: MIDIAccess) => { const inputs = access.inputs; if (inputs.size < 2) { @@ -159,9 +169,8 @@ const PlayView = ({ songId, type, route }: RouteProps) => { } } setLastScoreMessage({ content: formattedMessage, color: messageColor }); - // toast.show({ description: formattedMessage, placement: 'top', colorScheme: messageColor ?? 'secondary' }); } catch (e) { - console.log(e); + console.error(e); } } inputs.forEach((input) => { @@ -172,7 +181,6 @@ const PlayView = ({ songId, type, route }: RouteProps) => { const { command, channel, note, velocity } = parseMidiMessage(message); const keyIsPressed = command == 9;; const keyCode = message.data[1]; - // console.log('Playing midi ' + keyCode + ' at time ' + getElapsedTime()); webSocket.current?.send( JSON.stringify({ type: keyIsPressed ? "note_on" : "note_off", @@ -218,7 +226,7 @@ const PlayView = ({ songId, type, route }: RouteProps) => { return; } if (song.data && !webSocket.current && partitionRendered) { - navigator.requestMIDIAccess().then(onMIDISuccess, onMIDIFailure); + requestMIDIAccess().then(onMIDISuccess).catch(onMIDIFailure); } }, [song.data, partitionRendered]); @@ -231,7 +239,7 @@ const PlayView = ({ songId, type, route }: RouteProps) => { diff --git a/front/views/ProfileView.tsx b/front/views/ProfileView.tsx index a55f2f2..0a18629 100644 --- a/front/views/ProfileView.tsx +++ b/front/views/ProfileView.tsx @@ -89,8 +89,7 @@ const ProfileView = () => { navigation.navigate('Settings', {screen: 'Profile'})} - style={{margin: 10}} + onPress={() => navigation.navigate('Settings', { screen: 'Profile' })} translate={{ translationKey: 'settingsBtn' }} /> diff --git a/front/views/ScoreView.tsx b/front/views/ScoreView.tsx index 9c66aa3..288ff90 100644 --- a/front/views/ScoreView.tsx +++ b/front/views/ScoreView.tsx @@ -28,6 +28,7 @@ type ScoreViewProps = { good: number; great: number; perfect: number; + wrong: number; max_score: number; current_streak: number; max_streak: number; diff --git a/front/views/SearchView.tsx b/front/views/SearchView.tsx index 0510b99..3982d9d 100644 --- a/front/views/SearchView.tsx +++ b/front/views/SearchView.tsx @@ -44,7 +44,7 @@ type SearchViewProps = { const SearchView = (props: RouteProps) => { let isRequestSucceeded = false; const [filter, setFilter] = useState("all"); - const [stringQuery, setStringQuery] = useState(props.query || ""); + const [stringQuery, setStringQuery] = useState(props?.query ?? ""); const { isLoading: isLoadingSong, data: songData = [] } = useQuery( ["song", stringQuery], diff --git a/front/views/settings/PreferencesView.tsx b/front/views/settings/PreferencesView.tsx index 95b1f38..f53a7cb 100644 --- a/front/views/settings/PreferencesView.tsx +++ b/front/views/settings/PreferencesView.tsx @@ -11,18 +11,14 @@ import { translate, Translate, } from "../../i18n/i18n"; -import { RootState, useSelector } from "../../state/Store"; +import { useSelector } from "../../state/Store"; import { updateSettings } from "../../state/SettingsSlice"; import ElementList from "../../components/GtkUI/ElementList"; const PreferencesView = () => { const dispatch = useDispatch(); - const language: AvailableLanguages = useSelector( - (state: RootState) => state.language.value - ); - const settings = useSelector( - (state: RootState) => state.settings.local - ); + const language = useSelector((state) => state.language.value); + const settings = useSelector((state) => state.settings.local); return (
diff --git a/front/views/settings/SettingsProfileView.tsx b/front/views/settings/SettingsProfileView.tsx index 9089b0c..cc838cc 100644 --- a/front/views/settings/SettingsProfileView.tsx +++ b/front/views/settings/SettingsProfileView.tsx @@ -154,7 +154,7 @@ const ProfileSettings = ({ navigation }: { navigation: any }) => { disabled: true, data: { value: "default", - onValueChange: () => {}, + onSelect: () => {}, options: [ { label: "Default", diff --git a/front/views/settings/SettingsView.tsx b/front/views/settings/SettingsView.tsx index e0f96bb..9283bc6 100644 --- a/front/views/settings/SettingsView.tsx +++ b/front/views/settings/SettingsView.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useMemo } from 'react'; import { Center, Button, Text, Heading, Box } from "native-base"; import { createNativeStackNavigator } from '@react-navigation/native-stack'; import { unsetAccessToken } from '../../state/UserSlice'; @@ -16,9 +16,6 @@ import GuestToUserView from './GuestToUserView'; import { useQuery } from 'react-query'; import API from '../../API'; - -const SettingsStack = createNativeStackNavigator(); - const handleChangeEmail = async (newEmail: string): Promise => { try { let response = await API.updateUserEmail(newEmail); @@ -37,43 +34,7 @@ const handleChangePassword = async (oldPassword: string, newPassword: string): P } } -const MainView = ({navigation}) => { - const dispatch = useDispatch(); - - return ( -
- - - - - - - - - - - - - -
- ) -} - -export const ChangePasswordView = ({navigation}) => { +export const ChangePasswordView = () => { return (
{translate('changePassword')} @@ -82,7 +43,7 @@ export const ChangePasswordView = ({navigation}) => { ) } -export const ChangeEmailView = ({navigation}) => { +export const ChangeEmailView = () => { return (
{translate('changeEmail')} @@ -91,7 +52,7 @@ export const ChangeEmailView = ({navigation}) => { ) } -export const GoogleAccountView = ({navigation}) => { +export const GoogleAccountView = () => { return (
GoogleAccount @@ -99,7 +60,7 @@ export const GoogleAccountView = ({navigation}) => { ) } -export const PianoSettingsView = ({navigation}) => { +export const PianoSettingsView = () => { return (
Global settings for the virtual piano @@ -107,15 +68,22 @@ export const PianoSettingsView = ({navigation}) => { ) } -const TabRow = createTabRowNavigator(); +const TabRow = createTabRowNavigator(); -const SetttingsNavigator = () => { +type SetttingsNavigatorProps = { + screen?: 'Profile' | + 'Preferences' | + 'Notifications' | + 'Privacy' | + 'ChangePassword' | + 'ChangeEmail' | + 'GoogleAccount' | + 'PianoSettings' +} + +const SetttingsNavigator = (props?: SetttingsNavigatorProps) => { const userQuery = useQuery(['user'], () => API.getUserInfo()); - const user = userQuery.data; - - if (userQuery.isError) { - user.isGuest = false; - } + const user = useMemo(() => userQuery.data, [userQuery]); if (userQuery.isLoading) { return ( @@ -126,7 +94,7 @@ const SetttingsNavigator = () => { } return ( - + {/* I'm doing this to be able to land on the summary of settings when clicking on settings and directly to the wanted settings page if needed so I need to do special work with the 0 index */} diff --git a/front/yarn.lock b/front/yarn.lock index 48ab49e..97d7753 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -31,6 +31,13 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" + integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + dependencies: + "@babel/highlight" "^7.18.6" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5": version "7.20.10" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" @@ -101,7 +108,7 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.14.0", "@babel/generator@^7.20.7", "@babel/generator@^7.9.0": +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.14.0", "@babel/generator@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== @@ -110,6 +117,16 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.22.3", "@babel/generator@^7.9.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.3.tgz#0ff675d2edb93d7596c5f6728b52615cfc0df01e" + integrity sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A== + dependencies: + "@babel/types" "^7.22.3" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -189,6 +206,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.1": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz#ac3a56dbada59ed969d712cf527bd8271fe3eba8" + integrity sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA== + "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" @@ -204,6 +226,14 @@ "@babel/template" "^7.18.10" "@babel/types" "^7.19.0" +"@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== + dependencies: + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -225,7 +255,14 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.9.0": +"@babel/helper-module-imports@^7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" + integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== + dependencies: + "@babel/types" "^7.21.4" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11": version "7.20.11" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== @@ -239,6 +276,20 @@ "@babel/traverse" "^7.20.10" "@babel/types" "^7.20.7" +"@babel/helper-module-transforms@^7.9.0": + version "7.22.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz#e0cad47fedcf3cae83c11021696376e2d5a50c63" + integrity sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-module-imports" "^7.21.4" + "@babel/helper-simple-access" "^7.21.5" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.0" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -285,6 +336,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-simple-access@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" + integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== + dependencies: + "@babel/types" "^7.21.5" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" @@ -304,6 +362,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.21.5": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" + integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" @@ -324,7 +387,7 @@ "@babel/traverse" "^7.20.5" "@babel/types" "^7.20.5" -"@babel/helpers@^7.12.5", "@babel/helpers@^7.20.7", "@babel/helpers@^7.9.0": +"@babel/helpers@^7.12.5", "@babel/helpers@^7.20.7": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.13.tgz#e3cb731fb70dc5337134cadc24cbbad31cc87ad2" integrity sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg== @@ -333,6 +396,15 @@ "@babel/traverse" "^7.20.13" "@babel/types" "^7.20.7" +"@babel/helpers@^7.9.0": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.3.tgz#53b74351da9684ea2f694bf0877998da26dd830e" + integrity sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w== + dependencies: + "@babel/template" "^7.21.9" + "@babel/traverse" "^7.22.1" + "@babel/types" "^7.22.3" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -342,11 +414,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7", "@babel/parser@^7.9.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.13", "@babel/parser@^7.20.7": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.13.tgz#ddf1eb5a813588d2fb1692b70c6fce75b945c088" integrity sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw== +"@babel/parser@^7.21.9", "@babel/parser@^7.22.4", "@babel/parser@^7.9.0": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" + integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -1162,6 +1239,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.22.3": + version "7.22.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.3.tgz#0a7fce51d43adbf0f7b517a71f4c3aaca92ebcbb" + integrity sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ== + dependencies: + regenerator-runtime "^0.13.11" + "@babel/runtime@~7.5.4": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" @@ -1169,7 +1253,7 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.0.0", "@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3", "@babel/template@^7.8.6": +"@babel/template@^7.0.0", "@babel/template@^7.12.7", "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -1178,7 +1262,16 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.9.0": +"@babel/template@^7.21.9", "@babel/template@^7.8.6": + version "7.21.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.21.9.tgz#bf8dad2859130ae46088a99c1f265394877446fb" + integrity sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/parser" "^7.21.9" + "@babel/types" "^7.21.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.13", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7": version "7.20.13" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.13.tgz#817c1ba13d11accca89478bd5481b2d168d07473" integrity sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ== @@ -1194,7 +1287,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.0": +"@babel/traverse@^7.22.1", "@babel/traverse@^7.9.0": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.4.tgz#c3cf96c5c290bd13b55e29d025274057727664c0" + integrity sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ== + dependencies: + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.22.3" + "@babel/helper-environment-visitor" "^7.22.1" + "@babel/helper-function-name" "^7.21.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.22.4" + "@babel/types" "^7.22.4" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== @@ -1203,6 +1312,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.22.0", "@babel/types@^7.22.3", "@babel/types@^7.22.4", "@babel/types@^7.9.0": + version "7.22.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.4.tgz#56a2653ae7e7591365dabf20b76295410684c071" + integrity sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA== + dependencies: + "@babel/helper-string-parser" "^7.21.5" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2137,6 +2255,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.17": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" + integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + "@mdx-js/mdx@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" @@ -2225,6 +2351,13 @@ hey-listen "^1.0.8" tslib "^2.3.1" +"@motiz88/react-native-midi@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@motiz88/react-native-midi/-/react-native-midi-0.0.5.tgz#8162850a6ad501436376edef43889550e133986a" + integrity sha512-9IZeYqX1BEpI9iJZzoerEjHH4SM1whMls96A0/8dHxHydr35DkUzXxT0N99FibMT/32iRqF6cZgaPnS/duXNvw== + dependencies: + event-target-shim "^6.0.2" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -4634,7 +4767,7 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== -"@types/qs@^6.9.5": +"@types/qs@^6.5.3", "@types/qs@^6.9.5": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== @@ -5545,6 +5678,14 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -5722,6 +5863,14 @@ audio-loader@^0.5.0: resolved "https://registry.yarnpkg.com/audio-loader/-/audio-loader-0.5.0.tgz#9c125d1b25c33cd9626084054d9f6b7f31ddc908" integrity sha512-mEoYRjZhqkBSen/X9i2PNosqvafEsur8bI5MNoPr0wsJu9Nzlul3Yv1elYeMPsXxTxYhXLY8AZlScBvaK4mydg== +automation-events@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/automation-events/-/automation-events-6.0.4.tgz#a308501319b9f921de7165e0b1a201b46cd1ab59" + integrity sha512-3C/7GtIB1rEwXfSEMUaJRZJFaDJWyiZ3g+Z1HWVAZj+SYZDGKZiZKTZ+Kfq0Lmnb0hL5RXtJ5prfMXbC10evzA== + dependencies: + "@babel/runtime" "^7.22.3" + tslib "^2.5.3" + autoprefixer@^9.8.6: version "9.8.8" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" @@ -6351,7 +6500,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.5.0: +buffer@^5.4.3, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -6582,11 +6731,16 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001400: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400: version "1.0.30001448" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001448.tgz#ca7550b1587c92a392a2b377cd9c508b3b4395bf" integrity sha512-tq2YI+MJnooG96XpbTRYkBxLxklZPOdLmNIOdIhvf7SNJan6u5vCKum8iT7ZfCt70m1GPkuC7P3TtX6UuhupuA== +caniuse-lite@^1.0.30001125: + version "1.0.30001495" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001495.tgz#64a0ccef1911a9dcff647115b4430f8eff1ef2d9" + integrity sha512-F6x5IEuigtUfU5ZMQK2jsy5JqUUlEFRVZq8bO2a+ysq5K7jD6PPc9YXZj78xDNS3uNchesp1Jw47YXEqr+Viyg== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -7713,6 +7867,14 @@ define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +define-properties@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -8075,7 +8237,12 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.251: +electron-to-chromium@^1.3.564: + version "1.4.425" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.425.tgz#399df13091b836d28283a545c25c8e4d9da86da8" + integrity sha512-wv1NufHxu11zfDbY4fglYQApMswleE9FL/DSeyOyauVXDZ+Kco96JK/tPfBUaDqfRarYp2WH2hJ/5UnVywp9Jg== + +electron-to-chromium@^1.4.251: version "1.4.284" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== @@ -8229,7 +8396,47 @@ errorhandler@^1.5.0: accepts "~1.3.7" escape-html "~1.0.3" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.17.2, es-abstract@^1.21.2: + version "1.21.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" + integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== + dependencies: + array-buffer-byte-length "^1.0.0" + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.2.0" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.10" + is-weakref "^1.0.2" + object-inspect "^1.12.3" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.7" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.9" + +es-abstract@^1.19.0, es-abstract@^1.20.4: version "1.21.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6" integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg== @@ -8434,6 +8641,11 @@ event-target-shim@^5.0.0, event-target-shim@^5.0.1: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== +event-target-shim@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-6.0.2.tgz#ea5348c3618ee8b62ff1d344f01908ee2b8a2b71" + integrity sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -8644,6 +8856,17 @@ expo-keep-awake@~11.0.1: resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz#ee354465892a94040ffe09901b85b469e7d54fb3" integrity sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A== +expo-linking@~3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-3.3.1.tgz#253b183321e54cb6fa1a667a53d4594aa88a3357" + integrity sha512-T3VIZMyZhkBOpHIyfT514rweGZZMbdg1vwavsfAkm6BFJ8G0iNVGbYMTpoUiQ9xdA0ARCcZbXFFb+WhqEUITgQ== + dependencies: + "@types/qs" "^6.5.3" + expo-constants "~14.0.0" + invariant "^2.2.4" + qs "^6.9.1" + url-parse "^1.5.9" + expo-manifests@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.4.0.tgz#6fd44b6427e113f2eb9409ca46df95cbbea068df" @@ -9352,7 +9575,7 @@ function.prototype.name@^1.1.0, function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functions-have-names@^1.2.2: +functions-have-names@^1.2.2, functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== @@ -9405,6 +9628,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-proto "^1.0.1" + has-symbols "^1.0.3" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -10423,6 +10656,15 @@ internal-slot@^1.0.3, internal-slot@^1.0.4: has "^1.0.3" side-channel "^1.0.4" +internal-slot@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + dependencies: + get-intrinsic "^1.2.0" + has "^1.0.3" + side-channel "^1.0.4" + interpret@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" @@ -10519,6 +10761,15 @@ is-array-buffer@^3.0.1: get-intrinsic "^1.1.3" is-typed-array "^1.1.10" +is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -13538,7 +13789,7 @@ object-hash@^3.0.0: resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== -object-inspect@^1.12.2, object-inspect@^1.9.0: +object-inspect@^1.12.2, object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== @@ -13591,7 +13842,7 @@ object.entries@^1.1.0: define-properties "^1.1.4" es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.2: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.2: version "2.1.5" resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== @@ -13601,6 +13852,17 @@ object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0 define-properties "^1.1.4" es-abstract "^1.20.4" +object.getownpropertydescriptors@^2.1.0: + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -14896,6 +15158,13 @@ qs@6.11.0, qs@^6.10.0: dependencies: side-channel "^1.0.4" +qs@^6.9.1: + version "6.11.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" + integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== + dependencies: + side-channel "^1.0.4" + query-string@^6.13.6: version "6.14.1" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" @@ -15208,6 +15477,13 @@ react-native-testing-library@^6.0.0: dependencies: pretty-format "^26.0.1" +react-native-url-polyfill@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/react-native-url-polyfill/-/react-native-url-polyfill-1.3.0.tgz#c1763de0f2a8c22cc3e959b654c8790622b6ef6a" + integrity sha512-w9JfSkvpqqlix9UjDvJjm1EjSt652zVQ6iwCIj1cVVkwXf4jQhQgTNXY6EVTwuAmUjg6BC6k9RHCBynoLFo3IQ== + dependencies: + whatwg-url-without-unicode "8.0.0-3" + react-native-web@~0.18.7: version "0.18.12" resolved "https://registry.yarnpkg.com/react-native-web/-/react-native-web-0.18.12.tgz#d4bb3a783ece2514ba0508d7805b09c0a98f5a8e" @@ -15503,7 +15779,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.2.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" + integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + functions-have-names "^1.2.3" + +regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -15864,6 +16149,16 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -16553,6 +16848,15 @@ stacktrace-parser@^0.1.3: dependencies: type-fest "^0.7.1" +standardized-audio-context@^25.3.51: + version "25.3.51" + resolved "https://registry.yarnpkg.com/standardized-audio-context/-/standardized-audio-context-25.3.51.tgz#0eb54629355d1ddf2070897e586eaa8dfec8c0f5" + integrity sha512-+YPccvetw8wqWo0pv6lo5aDeUq+2WHL/S+8AWdrLKG1jMlhJZqK/GjNF/88q6jXAHal32Msc1xPx3uGrx8RPdQ== + dependencies: + "@babel/runtime" "^7.22.3" + automation-events "^6.0.4" + tslib "^2.5.3" + state-toggle@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" @@ -16714,6 +17018,15 @@ string.prototype.padstart@^3.0.0: define-properties "^1.1.4" es-abstract "^1.20.4" +string.prototype.trim@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + string.prototype.trimend@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" @@ -17379,6 +17692,11 @@ tslib@^2, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +tslib@^2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -18298,6 +18616,15 @@ whatwg-mimetype@^2.3.0: resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url-without-unicode@8.0.0-3: + version "8.0.0-3" + resolved "https://registry.yarnpkg.com/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz#ab6df4bf6caaa6c85a59f6e82c026151d4bb376b" + integrity sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig== + dependencies: + buffer "^5.4.3" + punycode "^2.1.1" + webidl-conversions "^5.0.0" + whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"