diff --git a/A4/app.json b/A4/app.json index 696ff2e..d0d2a87 100644 --- a/A4/app.json +++ b/A4/app.json @@ -1,24 +1,27 @@ { "expo": { - "name": "cs47-a3-starter-w23", - "slug": "cs47-a3-starter-w23", + "name": "FitCast", + "slug": "FitCast", + "sdkVersion": "49.0.21", + "description": "Forecasting your outfits", "version": "1.0.0", "orientation": "portrait", - "icon": "./assets/icon.png", + "icon": "./assets/Images/fitcast2.png", "userInterfaceStyle": "light", "splash": { - "image": "./assets/splash.png", + "image": "./assets/Images/fitcast2.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "scheme": "exp", "updates": { - "fallbackToCacheTimeout": 0 + "fallbackToCacheTimeout": 0, + "url": "https://u.expo.dev/2c3a7fee-8c5c-4105-b727-79d024598c77" }, - "assetBundlePatterns": ["**/*"], "ios": { - "supportsTablet": true + "supportsTablet": true, + "bundleIdentifier": "com.ashc.FitCast" }, "android": { "adaptiveIcon": { @@ -29,6 +32,17 @@ "web": { "favicon": "./assets/favicon.png" }, - "plugins": ["expo-router"] + "plugins": ["expo-router"], + "extra": { + "router": { + "origin": false + }, + "eas": { + "projectId": "2c3a7fee-8c5c-4105-b727-79d024598c77" + } + }, + "runtimeVersion": { + "policy": "appVersion" + } } } diff --git a/A4/app/_layout.js b/A4/app/_layout.js index 9293ec1..e28a126 100644 --- a/A4/app/_layout.js +++ b/A4/app/_layout.js @@ -90,7 +90,7 @@ export default function Layout() { drawerItemStyle: { height: 0 }, }} /> - - + + + + + + + + ); } diff --git a/A4/app/components/header.js b/A4/app/components/header.js index af670f6..2ce0b39 100644 --- a/A4/app/components/header.js +++ b/A4/app/components/header.js @@ -8,7 +8,7 @@ const Header = () => { const navigation = useNavigation(); const navigateHome = () => { - navigation.navigate("index"); // Replace 'Home' with the actual route name of your home screen + navigation.navigate("index"); }; return ( @@ -31,9 +31,6 @@ export { Header }; const headerStyles = StyleSheet.create({ container: { - // position: "absolute", - //borderColor: "black", - //borderWidth: 1, top: 0, left: 0, width: "100%", @@ -47,46 +44,3 @@ const headerStyles = StyleSheet.create({ justifyContent: "space-between", }, }); -// import { StyleSheet, View, Text, Dimensions } from "react-native"; - -// import { Images, Themes } from "../../assets/Themes"; -// const windowDimensions = Dimensions.get("window"); - -// export default function Header() { -// // const params = useLocalSearchParams(); -// return ( -// -// -// -// FitCast Header -// -// -// ); -// } - -// const styles = StyleSheet.create({ -// topBar: { -// flexDirection: "row", -// height: 60, -// width: Dimensions.get("window").width, -// alignItems: "center", -// justifyContent: "center", -// }, -// topBarContainer: { -// flexDirection: "row", - -// alignItems: "center", -// justifyContent: "center", -// }, -// fitCastLogo: { -// // flex: 2, -// resizeMode: "contain", -// height: 25, -// width: 25, -// }, -// fitCastText: { -// fontSize: 25, -// fontWeight: "bold", -// paddingLeft: 10, -// }, -// }); diff --git a/A4/app/index.js b/A4/app/index.js index 7bf51ff..ae3bd4a 100644 --- a/A4/app/index.js +++ b/A4/app/index.js @@ -3,13 +3,10 @@ import { StyleSheet, SafeAreaView, Text, - Pressable, - FlatList, View, ImageBackground, Dimensions, TouchableOpacity, - Button, } from "react-native"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { AppState } from "react-native"; @@ -19,12 +16,9 @@ import { LogModal } from "./screens/modals/logModal"; import { SmartModal } from "./screens/modals/smartModal"; import React, { useState, useEffect } from "react"; import { StatusBar } from "expo-status-bar"; -import BackgroundImage from "../assets/Images/dayBackground.jpg"; // Adjust the path as per your folder structure -import SunIcon from "../assets/Images/sunnyIconGreen.png"; // Adjust the path as per your folder structure -import fitcast from "../assets/Images/fitcast.png"; // Adjust the path as per your folder structure -import umbrella from "../assets/Images/umbrella.png"; -import FontAwesome from "react-native-vector-icons/FontAwesome"; -import Ionicons from "react-native-vector-icons/Ionicons"; +import BackgroundImage from "../assets/Images/dayBackground.jpg"; +import SunIcon from "../assets/Images/sunnyIconGreen.png"; + import BackgroundImageWarm from "../assets/Images/dayBackground.jpg"; import BackgroundImageCold from "../assets/Images/coldBackground.png"; import pantsIcon from "../assets/Images/pantsIcon.png"; @@ -32,10 +26,6 @@ import shirtIcon from "../assets/Images/shirtIcon.png"; import shortsIcon from "../assets/Images/shortsIcon.png"; import umbrellaIcon from "../assets/Images/umbrellaIcon.png"; import jacketIcon from "../assets/Images/jacketIcon.png"; -import bagIcon from "../assets/Images/bagIcon.png"; -import jacketUmbrellaIcon from "../assets/Images/jacketUmbrellaIcon.png"; - -import * as Font from "expo-font"; import { Header } from "./components/header"; import { Images, Themes } from "../assets/Themes"; @@ -64,6 +54,11 @@ export default function App() { const handleLogToggleModalFromComponent = () => { toggleLogModal(); }; + + const onLocationCloseModal = () => { + setLocationModalVisible(false); + }; + const handleAppStateChange = (nextAppState) => { if (nextAppState === "active" || nextAppState === "background") { resetVisitedScreenFlag(); @@ -74,7 +69,6 @@ export default function App() { try { // Reset the flag when the app is completely refreshed const hasVisitedScreen = await AsyncStorage.getItem("hasVisitedScreen"); - console.log("before refresh: ", hasVisitedScreen); await AsyncStorage.setItem("hasVisitedScreen", "false"); // await AsyncStorage.removeItem("hasVisitedScreen"); @@ -98,75 +92,41 @@ export default function App() { const checkFirstVisit = async () => { try { - const hasVisitedScreen = await AsyncStorage.getItem("hasVisitedScreen"); - console.log("visited: ", hasVisitedScreen); - var random_num = Math.floor(Math.random() * 3); + console.log("num: ", random_num); if (random_num == 0) { setLogModalVisible(true); } else if (random_num == 1) { setLocationModalVisible(true); } - - // setLocationModalVisible(true); - // setSmartModalVisible(true); - // if (hasVisitedScreen == null || hasVisitedScreen == false) { - // // The screen is being visited for the first time during this session - // // Show the modal - // // setLocationModalVisible(true); - // console.log("HIIIIII"); - // setLogModalVisible(true); - - // // Set the flag to indicate that the screen has been visited - // await AsyncStorage.setItem("hasVisitedScreen", "true"); - // const hasVisitedScreen1 = await AsyncStorage.getItem( - // "hasVisitedScreen" - // ); - // console.log("after true: ", hasVisitedScreen1); - // } else { - // // The screen has been visited during this session - // // Do not show the modal - // // setLocationModalVisible(false); - // console.log("hello"); - - // setLogModalVisible(false); - // } + //else 2: will just show blank screen } catch (error) { console.error("Error checking first visit:", error); } }; - // Call checkFirstVisit when your component mounts useEffect(() => { checkFirstVisit(); resetVisitedScreenFlag(); }, []); - const handleSmartOpenFromComponent = () => { + const handleLogSubmitFromComponent = () => { setLogModalVisible(false); + handleSmartSubmitFromComponent(); + }; + const handleSmartSubmitFromComponent = () => { setTimeout(() => { setSmartModalVisible(true); - - // Automatically close SmartModal after a delay (adjust the time as needed) setTimeout(() => { setSmartModalVisible(false); - }, 1000); // Adjust the delay as needed + }, 1000); }, 500); - // Adjust the delay as needed }; const handleLocationToggleModalFromComponent = () => { setLocationModalVisible(false); - - setTimeout(() => { - setSmartModalVisible(true); - - // Automatically close SmartModal after a delay (adjust the time as needed) - setTimeout(() => { - setSmartModalVisible(false); - }, 1000); // Adjust the delay as needed - }, 500); + handleSmartSubmitFromComponent(); }; useEffect(() => { const fetchWeather = async () => { @@ -211,13 +171,6 @@ export default function App() { const VerticalLine = () => ; - let fitCastBagItems = null; - fitCastBagItems = ( - <> - - - ); - let homescreen = ( @@ -230,6 +183,7 @@ export default function App() { @@ -242,7 +196,7 @@ export default function App() { High 75° | Low 50° @@ -252,11 +206,7 @@ export default function App() { @@ -275,7 +225,6 @@ export default function App() { source={shirtIcon} style={styles.outfitTop} > - {/* + */} - {/* + */}
- {/* - - - FitCast - - */} {homescreen} null }} /> diff --git a/A4/app/screens/locationPinner.js b/A4/app/screens/locationPinner.js index 615d1aa..65ca190 100644 --- a/A4/app/screens/locationPinner.js +++ b/A4/app/screens/locationPinner.js @@ -11,24 +11,23 @@ import { ScrollView, } from "react-native"; import React from "react"; +import { SmartModal } from "./modals/smartModal"; + import { useState, useRef } from "react"; import MapView from "react-native-maps"; import { useNavigation } from "@react-navigation/native"; -import { useLocalSearchParams } from "expo-router"; -import BackgroundImage from "../../assets/Images/dayBackground.jpg"; // Adjust the path as per your folder structure -import Location from "../../assets/Images/location.png"; // Adjust the path as per your folder structure +import BackgroundImage from "../../assets/Images/dayBackground.jpg"; import { Themes } from "../../assets/Themes"; import { Stack } from "expo-router"; import { ClothingItem } from "../components/locationClothingItem"; -import shirtIcon from "../../assets/Images/shirtIcon.png"; import { Header } from "../components/header"; const windowDimensions = Dimensions.get("window"); export default function locationPinner() { const scrollViewRef = useRef(); - // const params = useLocalSearchParams(); + const [isSmartModalVisible, setSmartModalVisible] = useState(false); const [text1, onChangeText1] = React.useState(""); const [text2, onChangeText2] = React.useState(""); const [isFeelingClicked, setIsFeelingClicked] = useState(false); @@ -40,6 +39,21 @@ export default function locationPinner() { const navigation = useNavigation(); + const onSmartSubmit = () => { + resetAllFields(); + + setTimeout(() => { + setSmartModalVisible(true); + + setTimeout(() => { + setSmartModalVisible(false); + setTimeout(() => { + navigation.navigate("index"); + }, 200); + }, 500); + }, 200); + }; + const resetAllFields = () => { onChangeText1(""); onChangeText2(""); @@ -105,7 +119,7 @@ export default function locationPinner() { />
- + Log Your Location @@ -316,12 +330,7 @@ export default function locationPinner() { - { - resetAllFields(); - navigation.navigate("index"); - }} - > + Submit diff --git a/A4/app/screens/modals/locationModal.js b/A4/app/screens/modals/locationModal.js index 61a2329..88cde24 100644 --- a/A4/app/screens/modals/locationModal.js +++ b/A4/app/screens/modals/locationModal.js @@ -23,9 +23,10 @@ const LocationModal = (props) => { let isLocationModalVisible = props.isLocationModalVisible; const onLocationToggleModal = props.onLocationToggleModal; + const onLocationCloseModal = props.onLocationCloseModal; const setLocationModalVisible = () => { - onLocationToggleModal(); + onLocationCloseModal(); }; const [text1, onChangeText1] = React.useState(""); diff --git a/A4/app/screens/modals/logModal.js b/A4/app/screens/modals/logModal.js index bc8835a..fc6020f 100644 --- a/A4/app/screens/modals/logModal.js +++ b/A4/app/screens/modals/logModal.js @@ -4,10 +4,7 @@ import { View, Text, Dimensions, - Image, TouchableOpacity, - TextInput, - ScrollView, } from "react-native"; import React, { useState } from "react"; import { Entypo } from "@expo/vector-icons"; @@ -60,14 +57,14 @@ const LogModal = (props) => { const [text, onChangeText] = React.useState(""); let isLogModalVisible = props.isLogModalVisible; const onLogToggleModal = props.onLogToggleModal; - const handleSmartOpenFromComponent = props.handleSmartOpenFromComponent; + const handleLogSubmitFromComponent = props.handleLogSubmitFromComponent; const setLogModalVisible = () => { onLogToggleModal(); }; const onSubmit = () => { - handleSmartOpenFromComponent(); + handleLogSubmitFromComponent(); }; return ( { - const [text, onChangeText] = React.useState(""); let isSmartModalVisible = props.isSmartModalVisible; - const onSmartToggleModal = props.onSmartToggleModal; - - const setSmartModalVisible = () => { - onSmartToggleModal(); - }; return ( setSmartModalVisible(false)} swipeDirection="down" style={styles.modal} animationIn="bounceIn" @@ -48,7 +27,6 @@ const styles = StyleSheet.create({ flexDirection: "column", justifyContent: "center", alignItems: "center", - // flex: 1, }, }); diff --git a/A4/app/screens/timeline.js b/A4/app/screens/timeline.js index 97fbed7..b0b0121 100644 --- a/A4/app/screens/timeline.js +++ b/A4/app/screens/timeline.js @@ -18,7 +18,7 @@ import { useLocalSearchParams } from "expo-router"; import { Themes } from "../../assets/Themes"; import { Stack } from "expo-router"; import Row from "../../utils/timelineRow"; -import BackgroundImage from "../../assets/Images/dayBackground.jpg"; // Adjust the path as per your folder structure +import BackgroundImage from "../../assets/Images/dayBackground.jpg"; const windowDimensions = Dimensions.get("window"); const testData = [ diff --git a/A4/app/screens/timelineDetail1-Sunny.js b/A4/app/screens/timelineDetail1-Sunny.js index a1774a9..50f0a76 100644 --- a/A4/app/screens/timelineDetail1-Sunny.js +++ b/A4/app/screens/timelineDetail1-Sunny.js @@ -12,7 +12,7 @@ import { useNavigation } from "@react-navigation/native"; import { ExitHeader } from "../components/exitHeader"; import { Entypo } from "@expo/vector-icons"; -import SunIcon from "../../assets/Images/sunnyIconGreen.png"; // Adjust the path as per your folder structure +import SunIcon from "../../assets/Images/sunnyIconGreen.png"; import shirtIcon from "../../assets/Images/shirtIcon.png"; import shortsIcon from "../../assets/Images/shortsIcon.png"; import emptyImage from "../../assets/Images/emptyImage.png"; diff --git a/A4/app/screens/timelineDetail2-Cloudy.js b/A4/app/screens/timelineDetail2-Cloudy.js index c8af2e1..fe87e3d 100644 --- a/A4/app/screens/timelineDetail2-Cloudy.js +++ b/A4/app/screens/timelineDetail2-Cloudy.js @@ -14,7 +14,7 @@ import { ExitHeader } from "../components/exitHeader"; import { Entypo } from "@expo/vector-icons"; import jacketIcon from "../../assets/Images/jacketIcon.png"; import { TimelineDetailComp } from "../components/timelineDetailComp"; -import CloudIcon from "../../assets/Images/cloudIconGray.png"; // Adjust the path as per your folder structure +import CloudIcon from "../../assets/Images/cloudIconGray.png"; import shirtIcon from "../../assets/Images/shirtIcon.png"; import shortsIcon from "../../assets/Images/shortsIcon.png"; import pantsIcon from "../../assets/Images/pantsIcon.png"; diff --git a/A4/app/screens/timelineDetail3-Rainy.js b/A4/app/screens/timelineDetail3-Rainy.js index 414da6f..b87576f 100644 --- a/A4/app/screens/timelineDetail3-Rainy.js +++ b/A4/app/screens/timelineDetail3-Rainy.js @@ -12,7 +12,7 @@ import { ExitHeader } from "../components/exitHeader"; import { Entypo } from "@expo/vector-icons"; import { TimelineDetailComp } from "../components/timelineDetailComp"; -import RainIcon from "../../assets/Images/rainIconYellow.png"; // Adjust the path as per your folder structure +import RainIcon from "../../assets/Images/rainIconYellow.png"; import shirtIcon from "../../assets/Images/shirtIcon.png"; import shortsIcon from "../../assets/Images/shortsIcon.png"; import pantsIcon from "../../assets/Images/pantsIcon.png"; @@ -40,7 +40,7 @@ export default function TimelineDetail3() { time: "4pm-5pm", location: "Stanford, CA", tempIcon: RainIcon, - temperature: "58°", + temperature: "59°", humidity: "Med", windspeed: "High", uv: "Low", diff --git a/A4/app/screens/timelineDetail4-Night.js b/A4/app/screens/timelineDetail4-Night.js index be843c5..2e72383 100644 --- a/A4/app/screens/timelineDetail4-Night.js +++ b/A4/app/screens/timelineDetail4-Night.js @@ -13,7 +13,7 @@ import { Entypo } from "@expo/vector-icons"; import { useNavigation } from "@react-navigation/native"; import { TimelineDetailComp } from "../components/timelineDetailComp"; -import moonIcon from "../../assets/Images/moonIcon.png"; // Adjust the path as per your folder structure +import moonIcon from "../../assets/Images/moonIcon.png"; import shirtIcon from "../../assets/Images/shirtIcon.png"; import shortsIcon from "../../assets/Images/shortsIcon.png"; import { useLocalSearchParams } from "expo-router"; @@ -36,7 +36,7 @@ export default function TimelineDetail() { time: "6pm-9pm", location: "Stanford, CA", tempIcon: moonIcon, - temperature: "50°", + temperature: "52°", humidity: "Med", windspeed: "Low", uv: "Low", diff --git a/A4/app/screens/weatherLog.js b/A4/app/screens/weatherLog.js index 6337baf..fdc7a85 100644 --- a/A4/app/screens/weatherLog.js +++ b/A4/app/screens/weatherLog.js @@ -8,6 +8,8 @@ import { TouchableOpacity, ImageBackground, } from "react-native"; +import { SmartModal } from "./modals/smartModal"; + import { Header } from "../components/header"; import { Themes } from "../../assets/Themes"; import { Stack } from "expo-router"; @@ -19,6 +21,7 @@ import BackgroundImage from "../../assets/Images/dayBackground.jpg"; export default function WeatherLog() { const navigation = useNavigation(); + const [isSmartModalVisible, setSmartModalVisible] = useState(false); // States for checkboxes const [isDressLightChecked, setIsDressLightChecked] = useState(false); @@ -47,6 +50,22 @@ export default function WeatherLog() { setIsFeelingClicked3(false); }; + const onSmartSubmit = () => { + resetAllFields(); + + setTimeout(() => { + setSmartModalVisible(true); + + // Automatically close SmartModal after a delay (adjust the time as needed) + setTimeout(() => { + setSmartModalVisible(false); + setTimeout(() => { + navigation.navigate("index"); + }, 200); + }, 500); + }, 200); + }; + const handleTemperaturePref = (preference) => { switch (preference) { case "Too Hot": @@ -88,6 +107,7 @@ export default function WeatherLog() { }} />
+ Suggestions Log @@ -222,12 +242,7 @@ export default function WeatherLog() { - { - resetAllFields(); - navigation.navigate("index"); - }} - > + Submit diff --git a/A4/assets/Themes/colors.js b/A4/assets/Themes/colors.js index 74d6ad8..5ec76b4 100644 --- a/A4/assets/Themes/colors.js +++ b/A4/assets/Themes/colors.js @@ -1,6 +1,5 @@ export const colors = { background: "#FFF", - spotify: "#1DB954", gray: "#B3B3B3", logoGreen: "#919476", white: "#FFFFFF", diff --git a/A4/eas.json b/A4/eas.json new file mode 100644 index 0000000..66a96da --- /dev/null +++ b/A4/eas.json @@ -0,0 +1,19 @@ +{ + "cli": { + "version": ">= 5.9.1" + }, + + "build": { + "development": { + "developmentClient": true, + "distribution": "internal" + }, + "preview": { + "channel": "preview" + }, + "production": {} + }, + "submit": { + "production": {} + } +} diff --git a/A4/package.json b/A4/package.json index db03595..49b4925 100644 --- a/A4/package.json +++ b/A4/package.json @@ -19,6 +19,7 @@ "expo-linking": "~5.0.2", "expo-router": "^2.0.0", "expo-status-bar": "~1.6.0", + "expo-updates": "~0.18.17", "react": "18.2.0", "react-native": "0.72.6", "react-native-gesture-handler": "~2.12.0", diff --git a/A4/utils/apiOptions.js b/A4/utils/apiOptions.js deleted file mode 100644 index e2a77a3..0000000 --- a/A4/utils/apiOptions.js +++ /dev/null @@ -1,74 +0,0 @@ -import axios from "axios"; -import getEnv from "./env"; - -const { - SPOTIFY_API: { TOP_TRACKS_API, ALBUM_TRACK_API_GETTER }, -} = getEnv(); - -const ERROR_ALERT = new Error( - "Oh no! Something went wrong; probably a malformed request or a network error.\nCheck console for more details." -); - -/* Pulls out the relevant data from the API response and puts it in a nicely structured object. */ -const formatter = (data) => - data.map((val) => { - const artists = val.artists?.map((artist) => ({ name: artist.name })); - // console.log("RES: ", JSON.stringify(val.name, null, 2)); - // returning undefined for now to not confuse students, ideally a fix would be a hosted version of this - return { - songTitle: val.name, - songArtists: artists, - albumName: val.album?.name, - imageUrl: val.album?.images[0]?.url ?? undefined, - duration: val.duration_ms, - externalUrl: val.external_urls?.spotify ?? undefined, - previewUrl: val.preview_url ?? undefined, - }; - }); - -/* Fetches data from the given endpoint URL with the access token provided. */ -const fetcher = async (url, token) => { - try { - return await axios(url, { - method: "GET", - headers: { - Accept: "application/json", - "Content-Type": "application/json", - Authorization: "Bearer " + token, - }, - }); - } catch (error) { - console.log(error); - } -}; - -/* Fetches your top tracks from the Spotify API. - * Make sure that TOP_TRACKS_API is set correctly in env.js */ -export const getMyTopTracks = async (token) => { - try { - let res = await fetcher(TOP_TRACKS_API, token); - // console.log("RES: ", JSON.stringify(res.data?.items[0], null, 2)); - return formatter(res.data?.items); - } catch (e) { - console.error(e); - alert(ERROR_ALERT); - return null; - } -}; - -/* Fetches the given album from the Spotify API. - * Make sure that ALBUM_TRACK_API_GETTER is set correctly in env.js */ -export const getAlbumTracks = async (albumId, token) => { - try { - const res = await fetcher(ALBUM_TRACK_API_GETTER(albumId), token); - const transformedResponse = res.data?.tracks?.items?.map((item) => { - item.album = { images: res.data?.images, name: res.data?.name }; - return item; - }); - return formatter(transformedResponse); - } catch (e) { - console.error(e); - alert(ERROR_ALERT); - return null; - } -}; diff --git a/A4/utils/env.js b/A4/utils/env.js deleted file mode 100644 index 1c26d09..0000000 --- a/A4/utils/env.js +++ /dev/null @@ -1,52 +0,0 @@ -import { Platform } from "react-native"; - -// ***** TODO: Fill in your constants here ***** // -const CLIENT_ID = "f027e597c2f64f3bbdec44860464bb8d"; -const REDIRECT_URI = "exp://10.35.48.120:8081"; // TODO: Replace this with your own redirect URI -const ALBUM_ID = "2nLOHgzXzwFEpl62zAgCEC?si=Vy8vkAwuT-GJ_nEKsoo2DA"; // By default, this is the Weeknd's album "DAWN FM" -// ********************************************* // -const ALBUM_API_URL = "https://api.spotify.com/v1/albums" + ALBUM_ID + "tracks"; - -const redirectUri = (uri) => { - if (!uri) { - const err = new Error( - "No redirect URI provided.\nPlease provide a redirect URI in env.js.\n You can find the file in utils/env.js." - ); - console.error(err); - alert(err); - } - return Platform.OS === "web" ? "http://localhost:19006/" : uri; -}; - -const ENV = { - CLIENT_ID: CLIENT_ID, - SCOPES: [ - "user-read-currently-playing", - "user-read-recently-played", - "user-read-playback-state", - "user-top-read", - "user-modify-playback-state", - "streaming", - "user-read-email", - "user-read-private", - ], - REDIRECT_URI: redirectUri(REDIRECT_URI), - ALBUM_ID: ALBUM_ID, - SPOTIFY_API: { - // Endpoints for auth & token flow - DISCOVERY: { - authorizationEndpoint: "https://accounts.spotify.com/authorize", - tokenEndpoint: "https://accounts.spotify.com/api/token", - }, - // ***** TODO: Fill this in ***** // - TOP_TRACKS_API: "https://api.spotify.com/v1/me/top/tracks", - // ***** TODO: Or fill this in ***** // - ALBUM_TRACK_API_GETTER: (albumId) => { - "https://api.spotify.com/v1/albums" + albumId + "tracks"; - }, - }, -}; - -const getEnv = () => ENV; -export default getEnv; -// ^ use this type of exporting to ensure compliance with webpack and expo-web diff --git a/A4/utils/index.js b/A4/utils/index.js deleted file mode 100644 index 0cf7037..0000000 --- a/A4/utils/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import useSpotifyAuth from "./useSpotifyAuth"; -import useSpotifyTracks from "./useSpotifyTracks"; - -export { useSpotifyAuth, useSpotifyTracks }; diff --git a/A4/utils/useSpotifyAuth.js b/A4/utils/useSpotifyAuth.js deleted file mode 100644 index b610a3b..0000000 --- a/A4/utils/useSpotifyAuth.js +++ /dev/null @@ -1,48 +0,0 @@ -import getEnv from "./env"; -import { useState, useEffect } from "react"; -import { - ResponseType, - useAuthRequest, - makeRedirectUri, -} from "expo-auth-session"; - -import * as WebBrowser from "expo-web-browser"; - -const { - REDIRECT_URI, - SCOPES, - CLIENT_ID, - ALBUM_ID, - SPOTIFY_API: { DISCOVERY }, -} = getEnv(); - -// needed so that the browser closes the modal after auth token -WebBrowser.maybeCompleteAuthSession(); - -const useSpotifyAuth = () => { - const [token, setToken] = useState(null); - const [request, response, promptAsync] = useAuthRequest( - { - responseType: ResponseType.Token, - clientId: CLIENT_ID, - scopes: SCOPES, - // In order to follow the "Authorization Code Flow" to fetch token after authorizationEndpoint - // this must be set to false - usePKCE: false, - redirectUri: REDIRECT_URI, - }, - DISCOVERY - ); - // console.log("request: ", request); - // console.log("response: ", JSON.stringify(response, null, 2)); - // console.log("promptAsync:", promptAsync); - - useEffect(() => { - if (response?.type === "success") { - setToken(response.params.access_token); - } - }, [response]); - return { token, getSpotifyAuth: promptAsync }; -}; - -export default useSpotifyAuth; diff --git a/A4/utils/useSpotifyTracks.js b/A4/utils/useSpotifyTracks.js deleted file mode 100644 index b8475c1..0000000 --- a/A4/utils/useSpotifyTracks.js +++ /dev/null @@ -1,50 +0,0 @@ -import { useState, useEffect } from "react"; -import getEnv from "./env"; - -import { getMyTopTracks, getAlbumTracks } from "./apiOptions"; - -const { ALBUM_ID } = getEnv(); - -// const getTracks = async (token) => { //THIS WORKS !!! -// if (token == null) { -// return null; -// } -// console.log("hiiii"); -// try { -// const tracks = await getMyTopTracks(token); -// // console.log("tracks: ", JSON.stringify(tracks)); - -// console.log("tracks: ", tracks, JSON.stringify(tracks, null, 2)); -// // return tracks; -// } catch (error) { -// console.error("Error:!! ", error); -// console.log("hi"); -// return () => {}; -// } -// }; - -const useSpotifyTracks = (token) => { - const [tracksState, setTracks] = useState(null); - // useEffect(() => { - // getTracks(token); - // }); - - useEffect(() => { - async function getTracksA(token) { - if (token != null) { - try { - const tracks = await getMyTopTracks(token); - setTracks(tracks); - // console.log("tracks: ", JSON.stringify(tracks)); - } catch (error) { - console.error("Error:!! ", error); - } - } - } - getTracksA(token); - }, [token]); - // console.log("tracks: ", tracksState, JSON.stringify(tracksState, null, 2)); - return tracksState; -}; - -export default useSpotifyTracks; diff --git a/A4/yarn.lock b/A4/yarn.lock index 1c7dbc5..f56d073 100644 --- a/A4/yarn.lock +++ b/A4/yarn.lock @@ -10,34 +10,27 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/code-frame@~7.10.4": +"@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@7.10.4": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": + version "7.22.13" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" + integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: - "@babel/highlight" "^7.10.4" + "@babel/highlight" "^7.22.13" + chalk "^2.4.2" "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.2": version "7.23.2" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz" integrity sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": +"@babel/core@^7.13.16", "@babel/core@^7.20.0": version "7.23.2" resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz" integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== @@ -332,7 +325,7 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0-0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -367,7 +360,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0-0", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.0": +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.0": version "7.21.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -543,7 +536,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.0.0-0", "@babel/plugin-transform-arrow-functions@^7.22.5": +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.22.5": version "7.22.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz" integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== @@ -923,7 +916,7 @@ babel-plugin-polyfill-regenerator "^0.5.3" semver "^6.3.1" -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.0.0-0", "@babel/plugin-transform-shorthand-properties@^7.22.5": +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.22.5": version "7.22.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz" integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== @@ -945,7 +938,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.0.0-0", "@babel/plugin-transform-template-literals@^7.22.5": +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.22.5": version "7.22.5" resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz" integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== @@ -1000,7 +993,7 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.1.6", "@babel/preset-env@^7.20.0": +"@babel/preset-env@^7.20.0": version "7.23.2" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz" integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== @@ -1184,7 +1177,7 @@ dependencies: "@types/hammerjs" "^2.0.36" -"@expo/bunyan@^4.0.0", "@expo/bunyan@4.0.0": +"@expo/bunyan@4.0.0", "@expo/bunyan@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz" integrity sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA== @@ -1270,7 +1263,7 @@ node-forge "^1.2.1" nullthrows "^1.1.1" -"@expo/config-plugins@~7.2.0", "@expo/config-plugins@7.2.5": +"@expo/config-plugins@7.2.5", "@expo/config-plugins@~7.2.0": version "7.2.5" resolved "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.2.5.tgz" integrity sha512-w+5ccu1IxBHgyQk9CPFKLZOk8yZQEyTjbJwOzESK1eR7QwosbcsLkN1c1WWUZYiCXwORu3UTwJYll4+X2xxJhQ== @@ -1296,7 +1289,7 @@ resolved "https://registry.npmjs.org/@expo/config-types/-/config-types-49.0.0.tgz" integrity sha512-8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA== -"@expo/config@~8.1.0", "@expo/config@8.1.2": +"@expo/config@8.1.2", "@expo/config@~8.1.0": version "8.1.2" resolved "https://registry.npmjs.org/@expo/config/-/config-8.1.2.tgz" integrity sha512-4e7hzPj50mQIlsrzOH6XZ36O094mPfPTIDIH4yv49bWNMc7GFLTofB/lcT+QyxiLaJuC0Wlk9yOLB8DIqmtwug== @@ -1416,7 +1409,7 @@ "@bacons/react-views" "^1.1.3" qs "^6.10.3" -"@expo/osascript@^2.0.31", "@expo/osascript@2.0.33": +"@expo/osascript@2.0.33", "@expo/osascript@^2.0.31": version "2.0.33" resolved "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.33.tgz" integrity sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ== @@ -1484,7 +1477,7 @@ resolved "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz" integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ== -"@expo/spawn-async@^1.5.0", "@expo/spawn-async@1.5.0": +"@expo/spawn-async@1.5.0", "@expo/spawn-async@^1.5.0": version "1.5.0" resolved "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz" integrity sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew== @@ -1646,7 +1639,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1930,7 +1923,7 @@ react-is "^16.13.0" use-latest-callback "^0.1.7" -"@react-navigation/drawer@^6.5.8", "@react-navigation/drawer@^6.6.6": +"@react-navigation/drawer@^6.6.6": version "6.6.6" resolved "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.6.tgz" integrity sha512-DW/oNRisSOGOqvZfCzfhKBxnzT97Teqtg1Gal85g+K3gnVbM1jOBE2PdnYsKU0fULfFtDwvp/QZSbcgjDpr12A== @@ -1952,7 +1945,7 @@ "@react-navigation/elements" "^1.3.21" warn-once "^0.1.0" -"@react-navigation/native@^6.0.0", "@react-navigation/native@^6.1.9", "@react-navigation/native@~6.1.6": +"@react-navigation/native@^6.1.9", "@react-navigation/native@~6.1.6": version "6.1.9" resolved "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.9.tgz" integrity sha512-AMuJDpwXE7UlfyhIXaUCCynXmv69Kb8NzKgKJO7v0k0L+u6xUTbt6xvshmJ79vsvaFyaEH9Jg5FMzek5/S5qNw== @@ -2099,7 +2092,7 @@ dependencies: "@types/yargs-parser" "*" -"@urql/core@>=2.3.1", "@urql/core@2.3.6": +"@urql/core@2.3.6", "@urql/core@>=2.3.1": version "2.3.6" resolved "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz" integrity sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw== @@ -2174,7 +2167,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2222,14 +2215,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -2497,13 +2483,6 @@ bplist-creator@0.1.0: dependencies: stream-buffers "2.2.x" -bplist-parser@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz" - integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== - dependencies: - big-integer "1.6.x" - bplist-parser@0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz" @@ -2511,6 +2490,13 @@ bplist-parser@0.3.1: dependencies: big-integer "1.6.x" +bplist-parser@^0.3.1: + version "0.3.2" + resolved "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz" + integrity sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ== + dependencies: + big-integer "1.6.x" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -2533,7 +2519,7 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.9, browserslist@^4.22.1, "browserslist@>= 4.21.0": +browserslist@^4.21.9, browserslist@^4.22.1: version "4.22.1" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz" integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== @@ -2672,15 +2658,7 @@ chalk@^2.0.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2688,7 +2666,7 @@ chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -charenc@~0.0.1, charenc@0.0.2: +charenc@0.0.2, charenc@~0.0.1: version "0.0.2" resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== @@ -2783,7 +2761,7 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.0.0, color-name@1.1.3: +color-name@1.1.3, color-name@^1.0.0: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== @@ -2967,7 +2945,7 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@~0.0.1, crypt@0.0.2: +crypt@0.0.2, crypt@~0.0.1: version "0.0.2" resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== @@ -2992,33 +2970,26 @@ dayjs@^1.8.15: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== -debug@^2.2.0: +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: - ms "2.0.0" + ms "^2.1.1" decamelize@^1.2.0: version "1.2.0" @@ -3208,26 +3179,21 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escape-string-regexp@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" @@ -3311,7 +3277,7 @@ expo-auth-session@~5.0.2: invariant "^2.2.4" qs "^6.11.0" -expo-constants@*, expo-constants@~14.4.2: +expo-constants@~14.4.2: version "14.4.2" resolved "https://registry.npmjs.org/expo-constants/-/expo-constants-14.4.2.tgz" integrity sha512-nOB122DOAjk+KrJT69lFQAoYVQGQjFHSigCPVBzVdko9S1xGsfiOH9+X5dygTsZTIlVLpQJDdmZ7ONiv3i+26w== @@ -3326,6 +3292,11 @@ expo-crypto@~12.4.0: dependencies: base64-js "^1.3.0" +expo-eas-client@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.6.0.tgz#b722dde0de1b8b56701b282a5fdf28d3d3e79ec4" + integrity sha512-FSPy0ThcJBvzEzOZVhpOrYyHgQ8U1jJ4v7u7tr1x0KOVRqyf25APEQZFxxRPn3zAYW0tQ+uDTCbrwNymFqhQfw== + expo-file-system@~15.4.0, expo-file-system@~15.4.5: version "15.4.5" resolved "https://registry.npmjs.org/expo-file-system/-/expo-file-system-15.4.5.tgz" @@ -3347,12 +3318,17 @@ expo-head@0.0.20: dependencies: react-helmet-async "^1.3.0" +expo-json-utils@~0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.7.1.tgz#efe315c982113204be46419cbc26d4d9a2af145f" + integrity sha512-L0lyH8diXQtV0q5BLbFlcoxTqPF5im79xDHPhybB0j36xYdm65hjwRJ4yMrPIN5lR18hj48FUZeONiDHRyEvIg== + expo-keep-awake@~12.3.0: version "12.3.0" resolved "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.3.0.tgz" integrity sha512-ujiJg1p9EdCOYS05jh5PtUrfiZnK0yyLy+UewzqrjUqIT8eAGMQbkfOn3C3fHE7AKd5AefSMzJnS3lYZcZYHDw== -expo-linking@*, expo-linking@~5.0.0, expo-linking@~5.0.2: +expo-linking@~5.0.0, expo-linking@~5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/expo-linking/-/expo-linking-5.0.2.tgz" integrity sha512-SPQus0+tYGx9c69Uw4wmdo3rkKX8vRT1vyJz/mvkpSlZN986s0NmP/V0M5vDv5Zv2qZzVdqJyuITFe0Pg5aI+A== @@ -3363,7 +3339,14 @@ expo-linking@*, expo-linking@~5.0.0, expo-linking@~5.0.2: qs "^6.11.0" url-parse "^1.5.9" -expo-modules-autolinking@>=0.8.1, expo-modules-autolinking@1.5.1: +expo-manifests@~0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.7.2.tgz#77c2d9476e8130fc9ca6d4274fa1a5495d34358e" + integrity sha512-xlhL0XI2zw3foJ0q2Ra4ieBhU0V2yz+Rv6GpVEaaIHFlIC/Dbx+mKrX5dgenZEMERr/MG7sRJaRbAVB2PaAYhA== + dependencies: + expo-json-utils "~0.7.0" + +expo-modules-autolinking@1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.5.1.tgz" integrity sha512-yt5a1VCp2BF9CrsO689PCD5oXKP14MMhnOanQMvDn4BDpURYfzAlDVGC5fZrNQKtwn/eq3bcrxIwZ7D9QjVVRg== @@ -3408,11 +3391,38 @@ expo-splash-screen@~0.20.2: dependencies: "@expo/prebuild-config" "6.2.6" -expo-status-bar@*, expo-status-bar@~1.6.0: +expo-status-bar@~1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/expo-status-bar/-/expo-status-bar-1.6.0.tgz" integrity sha512-e//Oi2WPdomMlMDD3skE4+1ZarKCJ/suvcB4Jo/nO427niKug5oppcPNYO+csR6y3ZglGuypS+3pp/hJ+Xp6fQ== +expo-structured-headers@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.3.0.tgz#9f0b041a1d243a22a4a23d9eb19f02ace3c5258c" + integrity sha512-t+h5Zqaukd3Tn97LaWPpibVsmiC/TFP8F+8sAUliwCSMzgcb5TATRs2NcAB+JcIr8EP3JJDyYXJrZle1cjs4mQ== + +expo-updates-interface@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.10.1.tgz#cab075641cd381718ccd9264bf133dc393430a44" + integrity sha512-I6JMR7EgjXwckrydDmrkBEX/iw750dcqpzQVsjznYWfi0HTEOxajLHB90fBFqQkUV5i5s4Fd3hYQ1Cn0oMzUbA== + +expo-updates@~0.18.17: + version "0.18.17" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.18.17.tgz#11ce03ee95ee19e1a1e253b2a98dd9b3dc019c71" + integrity sha512-oyBDR94nYEtVw+iBod3N9LFqTfpLHofmUjh0lP12YZINUI89hvoAyqRe56eSnlpWkzziG6g1y4NGva0D0ViK6w== + dependencies: + "@expo/code-signing-certificates" "0.0.5" + "@expo/config" "~8.1.0" + "@expo/config-plugins" "~7.2.0" + arg "4.1.0" + chalk "^4.1.2" + expo-eas-client "~0.6.0" + expo-manifests "~0.7.0" + expo-structured-headers "~3.3.0" + expo-updates-interface "~0.10.0" + fbemitter "^3.0.0" + resolve-from "^5.0.0" + expo-web-browser@~12.3.0: version "12.3.2" resolved "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-12.3.2.tgz" @@ -3421,7 +3431,7 @@ expo-web-browser@~12.3.0: compare-urls "^2.0.0" url "^0.11.0" -expo@*, expo@^49.0.0, expo@^49.0.21: +expo@^49.0.21: version "49.0.21" resolved "https://registry.npmjs.org/expo/-/expo-49.0.21.tgz" integrity sha512-JpHL6V0yt8/fzsmkAdPdtsah+lU6Si4ac7MDklLYvzEil7HAFEsN/pf06wQ21ax4C+BL27hI6JJoD34tzXUCJA== @@ -3591,7 +3601,7 @@ flow-enums-runtime@^0.0.5: resolved "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.5.tgz" integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== -flow-parser@^0.206.0, flow-parser@0.*: +flow-parser@0.*, flow-parser@^0.206.0: version "0.206.0" resolved "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz" integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== @@ -3634,6 +3644,16 @@ fresh@0.5.2: resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== +fs-extra@9.0.0: + version "9.0.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz" + integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^1.0.0" + fs-extra@^8.1.0, fs-extra@~8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" @@ -3643,7 +3663,7 @@ fs-extra@^8.1.0, fs-extra@~8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0: +fs-extra@^9.0.0, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -3653,26 +3673,6 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^9.1.0: - version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz" - integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^1.0.0" - fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" @@ -3687,7 +3687,7 @@ fs.realpath@^1.0.0: fsevents@^2.3.2: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: @@ -3744,26 +3744,26 @@ glob-parent@^5.1.2: dependencies: is-glob "^4.0.1" -glob@^6.0.1: - version "6.0.4" - resolved "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A== +glob@7.1.6, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@7.1.6: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" + integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A== dependencies: - fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "2 || 3" once "^1.3.0" path-is-absolute "^1.0.0" @@ -3814,7 +3814,7 @@ graphql-tag@^2.10.1: dependencies: tslib "^2.1.0" -"graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0", "graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", graphql@15.8.0: +graphql@15.8.0: version "15.8.0" resolved "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== @@ -3965,7 +3965,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -3983,7 +3983,7 @@ internal-ip@4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -invariant@*, invariant@^2.2.4, invariant@2.2.4: +invariant@*, invariant@2.2.4, invariant@^2.2.4: version "2.2.4" resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -4401,17 +4401,45 @@ leven@^3.1.0: resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +lightningcss-darwin-arm64@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz#56ab071e932f845dbb7667f44f5b78441175a343" + integrity sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg== lightningcss-darwin-x64@1.19.0: version "1.19.0" - resolved "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz" + resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz#c867308b88859ba61a2c46c82b1ca52ff73a1bd0" integrity sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw== -lightningcss-darwin-arm64@1.19.0: +lightningcss-linux-arm-gnueabihf@1.19.0: version "1.19.0" - resolved "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz" - integrity sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg== + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz#0f921dc45f2e5c3aea70fab98844ac0e5f2f81be" + integrity sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig== + +lightningcss-linux-arm64-gnu@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz#027f9df9c7f4ffa127c37a71726245a5794d7ba2" + integrity sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww== +lightningcss-linux-arm64-musl@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz#85ea987da868524eac6db94f8e1eaa23d0b688a3" + integrity sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA== + +lightningcss-linux-x64-gnu@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz#02bec89579ab4153dccc0def755d1fd9e3ee7f3c" + integrity sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ== + +lightningcss-linux-x64-musl@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz#e36a5df8193ae961d22974635e4c100a1823bb8c" + integrity sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg== + +lightningcss-win32-x64-msvc@1.19.0: + version "1.19.0" + resolved "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz" + integrity sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg== lightningcss@~1.19.0: version "1.19.0" @@ -4805,7 +4833,7 @@ metro-transform-worker@0.76.8: metro-transform-plugins "0.76.8" nullthrows "^1.1.1" -metro@~0.76.7, metro@0.76.8: +metro@0.76.8: version "0.76.8" resolved "https://registry.npmjs.org/metro/-/metro-0.76.8.tgz" integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg== @@ -4867,7 +4895,7 @@ micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -4879,16 +4907,16 @@ mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.24, mime-types@~2.1.34: dependencies: mime-db "1.52.0" -mime@^2.4.1, mime@^2.4.4: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mime@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.4.1, mime@^2.4.4: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" @@ -4899,7 +4927,7 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.2, minimatch@^3.0.4, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4939,7 +4967,7 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1, minipass@3.1.6: +minipass@3.1.6, minipass@^3.0.0, minipass@^3.1.1: version "3.1.6" resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz" integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== @@ -4966,26 +4994,21 @@ mkdirp@^0.5.1, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" -mkdirp@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -mkdirp@^1.0.4: +mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" @@ -5141,13 +5164,6 @@ object-inspect@^1.9.0: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -5155,6 +5171,13 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + on-headers@~1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" @@ -5197,6 +5220,18 @@ open@^8.0.4, open@^8.3.0: is-docker "^2.1.1" is-wsl "^2.2.0" +ora@3.4.0: + version "3.4.0" + resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + ora@^5.4.1: version "5.4.1" resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" @@ -5212,18 +5247,6 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -ora@3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" @@ -5247,14 +5270,7 @@ p-finally@^1.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^2.2.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -5529,7 +5545,7 @@ qrcode-terminal@0.11.0: resolved "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz" integrity sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ== -qs@^6.10.3, qs@^6.11.0, qs@6.11.0: +qs@6.11.0, qs@^6.10.3, qs@^6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -5543,16 +5559,7 @@ qs@^6.11.2: dependencies: side-channel "^1.0.4" -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^7.1.3: +query-string@7.1.3, query-string@^7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz" integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== @@ -5562,15 +5569,14 @@ query-string@^7.1.3: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" -query-string@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz" - integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== dependencies: - decode-uri-component "^0.2.2" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" querystringify@^2.1.1: version "2.2.0" @@ -5622,14 +5628,6 @@ react-devtools-core@^4.27.2: shell-quote "^1.6.1" ws "^7" -"react-dom@^16.6.0 || ^17.0.0 || ^18.0.0": - version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== - dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" - react-fast-compare@^3.2.0: version "3.2.2" resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz" @@ -5656,17 +5654,7 @@ react-helmet-async@^1.3.0: resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^16.13.0: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^16.13.1: - version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-is@^16.7.0: +react-is@^16.13.0, react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -5683,7 +5671,7 @@ react-native-animatable@1.3.3: dependencies: prop-types "^15.7.2" -react-native-gesture-handler@*, "react-native-gesture-handler@>= 1.0.0", react-native-gesture-handler@~2.12.0: +react-native-gesture-handler@~2.12.0: version "2.12.1" resolved "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.12.1.tgz" integrity sha512-deqh36bw82CFUV9EC4tTo2PP1i9HfCOORGS3Zmv71UYhEZEHkzZv18IZNPB+2Awzj45vLIidZxGYGFxHlDSQ5A== @@ -5709,7 +5697,7 @@ react-native-modal@^13.0.1: prop-types "^15.6.2" react-native-animatable "1.3.3" -react-native-reanimated@*, "react-native-reanimated@>= 1.0.0", react-native-reanimated@~3.3.0: +react-native-reanimated@~3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.3.0.tgz" integrity sha512-LzfpPZ1qXBGy5BcUHqw3pBC0qSd22qXS3t8hWSbozXNrBkzMhhOrcILE/nEg/PHpNNp1xvGOW8NwpAMF006roQ== @@ -5719,12 +5707,12 @@ react-native-reanimated@*, "react-native-reanimated@>= 1.0.0", react-native-rean convert-source-map "^2.0.0" invariant "^2.2.4" -react-native-safe-area-context@*, react-native-safe-area-context@^4.6.3, "react-native-safe-area-context@>= 3.0.0": +react-native-safe-area-context@^4.6.3: version "4.6.3" resolved "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.6.3.tgz" integrity sha512-3CeZM9HFXkuqiU9HqhOQp1yxhXw6q99axPWrT+VJkITd67gnPSU03+U27Xk2/cr9XrLUnakM07kj7H0hdPnFiQ== -react-native-screens@*, "react-native-screens@>= 3.0.0", react-native-screens@~3.22.0: +react-native-screens@~3.22.0: version "3.22.1" resolved "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.22.1.tgz" integrity sha512-ffzwUdVKf+iLqhWSzN5DXBm0s2w5sN0P+TaHHPAx42LT7+DT0g8PkHT1QDvxpR5vCEPSS1i3EswyVK4HCuhTYg== @@ -5740,7 +5728,7 @@ react-native-webview@13.2.2: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@*, "react-native@^0.0.0-0 || 0.60 - 0.72 || 1000.0.0", "react-native@>= 0.64.3", react-native@>=0.65.0, react-native@0.72.6: +react-native@0.72.6: version "0.72.6" resolved "https://registry.npmjs.org/react-native/-/react-native-0.72.6.tgz" integrity sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A== @@ -5795,7 +5783,7 @@ react-shallow-renderer@^16.15.0: object-assign "^4.1.1" react-is "^16.12.0 || ^17.0.0 || ^18.0.0" -react@*, "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, "react@>= 17.0.1", react@>=16.8, react@>=17.0.0, react@18.2.0: +react@18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -6008,7 +5996,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -6028,13 +6016,6 @@ sax@>=0.6.0: resolved "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz" integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" - scheduler@0.24.0-canary-efb381bbf-20230505: version "0.24.0-canary-efb381bbf-20230505" resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz" @@ -6052,12 +6033,19 @@ schema-utils@^4.0.1: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -semver@^5.5.0: - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== +semver@7.3.2: + version "7.3.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -semver@^5.6.0: +semver@7.5.3: + version "7.5.3" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -6067,40 +6055,14 @@ semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.2: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^7.5.3: +semver@^7.3.5, semver@^7.5.2, semver@^7.5.3: version "7.5.4" resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" -semver@7.3.2: - version "7.3.2" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@7.5.3: - version "7.5.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== - dependencies: - lru-cache "^6.0.0" - -send@^0.18.0, send@0.18.0: +send@0.18.0, send@^0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== @@ -6119,11 +6081,6 @@ send@^0.18.0, send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-error@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" - integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== - serialize-error@6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-6.0.0.tgz" @@ -6131,6 +6088,11 @@ serialize-error@6.0.0: dependencies: type-fest "^0.12.0" +serialize-error@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz" + integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== + serve-static@^1.13.1: version "1.15.0" resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" @@ -6286,7 +6248,7 @@ source-map@^0.5.6: resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0: +source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -6296,11 +6258,6 @@ source-map@^0.7.3: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz" @@ -6344,16 +6301,16 @@ stacktrace-parser@^0.1.10: dependencies: type-fest "^0.7.1" -statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stream-buffers@2.2.x: version "2.2.0" resolved "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz" @@ -6369,13 +6326,6 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== -string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -6385,6 +6335,13 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + strip-ansi@^5.0.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" @@ -6392,14 +6349,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.1: +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6444,6 +6394,11 @@ sucrase@^3.20.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" +sudo-prompt@9.1.1: + version "9.1.1" + resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz" + integrity sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA== + sudo-prompt@^8.2.0: version "8.2.5" resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz" @@ -6454,11 +6409,6 @@ sudo-prompt@^9.0.0: resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz" integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw== -sudo-prompt@9.1.1: - version "9.1.1" - resolved "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz" - integrity sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA== - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -6466,14 +6416,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -6529,6 +6472,15 @@ temp@^0.8.4: dependencies: rimraf "~2.6.2" +tempy@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + tempy@^0.7.1: version "0.7.1" resolved "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz" @@ -6540,15 +6492,6 @@ tempy@^0.7.1: type-fest "^0.16.0" unique-string "^2.0.0" -tempy@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz" - integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== - dependencies: - temp-dir "^1.0.0" - type-fest "^0.3.1" - unique-string "^1.0.0" - terminal-link@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" @@ -6591,11 +6534,6 @@ throat@^5.0.0: resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through@2: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - through2@^2.0.1: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" @@ -6604,6 +6542,11 @@ through2@^2.0.1: readable-stream "~2.3.6" xtend "~4.0.1" +through@2: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -6775,7 +6718,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -6846,12 +6789,7 @@ uuid@^7.0.3: resolved "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz" integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== -uuid@^8.0.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -6978,12 +6916,7 @@ ws@^6.2.2: dependencies: async-limiter "~1.0.0" -ws@^7: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -ws@^7.5.1: +ws@^7, ws@^7.5.1: version "7.5.9" resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== diff --git a/README.md b/README.md index 7940f58..4a793d9 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # FitCast Hi-Fi Prototype +### CS 147 Autumn 2023 +#### Class Site: https://hci.stanford.edu/courses/cs147/2023/au/projects.html +#### Project Site: https://web.stanford.edu/class/cs147/projects/UnintentionalGood/FitCast/ -access your directory -cd path/to/dir -npm install - -npx expo start +### CS 147L ReadMe +#### Since the 147 and 147L specs were a bit different, we created a version for both classes. Only the 147Lmodals branch contains the final code for the 147L version. +#### The full ReadMe as well as the exported app can be found here: https://docs.google.com/document/d/1QA855vnnBP0qiNhTy3YvgpQQELpxPBt_EKKmKkhqnnE/edit?usp=sharing diff --git a/__MACOSX/._A3 b/__MACOSX/._A3 deleted file mode 100644 index 2c6f05c..0000000 Binary files a/__MACOSX/._A3 and /dev/null differ diff --git a/__MACOSX/A3/._.DS_Store b/__MACOSX/A3/._.DS_Store deleted file mode 100644 index a5b28df..0000000 Binary files a/__MACOSX/A3/._.DS_Store and /dev/null differ diff --git a/__MACOSX/A3/._.gitignore b/__MACOSX/A3/._.gitignore deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._.gitignore and /dev/null differ diff --git a/__MACOSX/A3/._App.js b/__MACOSX/A3/._App.js deleted file mode 100644 index 25e8b4d..0000000 Binary files a/__MACOSX/A3/._App.js and /dev/null differ diff --git a/__MACOSX/A3/._app.json b/__MACOSX/A3/._app.json deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._app.json and /dev/null differ diff --git a/__MACOSX/A3/._assets b/__MACOSX/A3/._assets deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._assets and /dev/null differ diff --git a/__MACOSX/A3/._babel.config.js b/__MACOSX/A3/._babel.config.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._babel.config.js and /dev/null differ diff --git a/__MACOSX/A3/._designs b/__MACOSX/A3/._designs deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._designs and /dev/null differ diff --git a/__MACOSX/A3/._package.json b/__MACOSX/A3/._package.json deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._package.json and /dev/null differ diff --git a/__MACOSX/A3/._utils b/__MACOSX/A3/._utils deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/._utils and /dev/null differ diff --git a/__MACOSX/A3/assets/._Images b/__MACOSX/A3/assets/._Images deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._Images and /dev/null differ diff --git a/__MACOSX/A3/assets/._Themes b/__MACOSX/A3/assets/._Themes deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._Themes and /dev/null differ diff --git a/__MACOSX/A3/assets/._adaptive-icon.png b/__MACOSX/A3/assets/._adaptive-icon.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._adaptive-icon.png and /dev/null differ diff --git a/__MACOSX/A3/assets/._favicon.png b/__MACOSX/A3/assets/._favicon.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._favicon.png and /dev/null differ diff --git a/__MACOSX/A3/assets/._icon.png b/__MACOSX/A3/assets/._icon.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._icon.png and /dev/null differ diff --git a/__MACOSX/A3/assets/._splash.png b/__MACOSX/A3/assets/._splash.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._splash.png and /dev/null differ diff --git a/__MACOSX/A3/assets/._spotify-logo.png b/__MACOSX/A3/assets/._spotify-logo.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/._spotify-logo.png and /dev/null differ diff --git a/__MACOSX/A3/assets/Images/._images.js b/__MACOSX/A3/assets/Images/._images.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/Images/._images.js and /dev/null differ diff --git a/__MACOSX/A3/assets/Themes/._colors.js b/__MACOSX/A3/assets/Themes/._colors.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/Themes/._colors.js and /dev/null differ diff --git a/__MACOSX/A3/assets/Themes/._index.js b/__MACOSX/A3/assets/Themes/._index.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/Themes/._index.js and /dev/null differ diff --git a/__MACOSX/A3/assets/Themes/._themes.js b/__MACOSX/A3/assets/Themes/._themes.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/assets/Themes/._themes.js and /dev/null differ diff --git a/__MACOSX/A3/designs/._authenticationScreen.png b/__MACOSX/A3/designs/._authenticationScreen.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/designs/._authenticationScreen.png and /dev/null differ diff --git a/__MACOSX/A3/designs/._tracksScreen.png b/__MACOSX/A3/designs/._tracksScreen.png deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/designs/._tracksScreen.png and /dev/null differ diff --git a/__MACOSX/A3/utils/._apiOptions.js b/__MACOSX/A3/utils/._apiOptions.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/utils/._apiOptions.js and /dev/null differ diff --git a/__MACOSX/A3/utils/._env.js b/__MACOSX/A3/utils/._env.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/utils/._env.js and /dev/null differ diff --git a/__MACOSX/A3/utils/._index.js b/__MACOSX/A3/utils/._index.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/utils/._index.js and /dev/null differ diff --git a/__MACOSX/A3/utils/._millisToMinutesAndSeconds.js b/__MACOSX/A3/utils/._millisToMinutesAndSeconds.js deleted file mode 100644 index 1fc1eeb..0000000 Binary files a/__MACOSX/A3/utils/._millisToMinutesAndSeconds.js and /dev/null differ diff --git a/__MACOSX/A3/utils/._useSpotifyAuth.js b/__MACOSX/A3/utils/._useSpotifyAuth.js deleted file mode 100644 index 7a3933a..0000000 Binary files a/__MACOSX/A3/utils/._useSpotifyAuth.js and /dev/null differ