diff --git a/bob_party/App.tsx b/bob_party/App.tsx
index 654dfe5..bdd8a2f 100644
--- a/bob_party/App.tsx
+++ b/bob_party/App.tsx
@@ -6,9 +6,9 @@ import { useFonts } from 'expo-font';
-
export default function App() {
+
const [fontsLoaded] = useFonts({
'Helvetica': require('./assets/fonts/Helvetica.ttf'),
});
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasCookie.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasCookie.png
new file mode 100644
index 0000000..05956be
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasCookie.png differ
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFactory.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFactory.png
new file mode 100644
index 0000000..d018586
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFactory.png differ
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFarm.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFarm.png
new file mode 100644
index 0000000..c7243da
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasFarm.png differ
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasGrandma.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasGrandma.png
new file mode 100644
index 0000000..2d73fbe
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasGrandma.png differ
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasPortal.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasPortal.png
new file mode 100644
index 0000000..4bfb874
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasPortal.png differ
diff --git a/bob_party/assets/ImagesJeux/CookieClicker/ChristmasTower.png b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasTower.png
new file mode 100644
index 0000000..670b9d0
Binary files /dev/null and b/bob_party/assets/ImagesJeux/CookieClicker/ChristmasTower.png differ
diff --git a/bob_party/index.js b/bob_party/index.js
deleted file mode 100644
index 925b4d7..0000000
--- a/bob_party/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import React from 'react'
-import App from './App'
-// export for others scripts to use
-
-
-
-export default function Index(){
- return(
-
- )
-}
\ No newline at end of file
diff --git a/bob_party/package.json b/bob_party/package.json
index 3074f8a..0b1dc8d 100644
--- a/bob_party/package.json
+++ b/bob_party/package.json
@@ -24,11 +24,14 @@
"babel-preset-env": "^1.7.0",
"babel-preset-typescript": "^7.0.0-alpha.19",
"babel-test": "^0.2.4",
+ "cors": "^2.8.5",
"expo": "^46.0.17",
"expo-status-bar": "~1.4.0",
+ "express": "^4.18.2",
"jest": "^29.3.1",
"jquery": "^3.6.1",
"node": "^18.10.0",
+ "nodemon": "^2.0.20",
"react": "18.0.0",
"react-dom": "18.0.0",
"react-native": "^0.69.6",
@@ -40,6 +43,8 @@
"react-native-safe-area-context": "4.3.1",
"react-native-web": "~0.18.7",
"react-redux": "^8.0.4",
+ "socket.io": "^4.5.4",
+ "socket.io-client": "^4.5.4",
"ts-node": "^10.9.1",
"zustand": "^4.1.4"
},
diff --git a/bob_party/server.js b/bob_party/server.js
new file mode 100644
index 0000000..1b7de9e
--- /dev/null
+++ b/bob_party/server.js
@@ -0,0 +1,28 @@
+
+const express = require('express');
+const app = express();
+const http = require('http');
+const server = http.createServer(app);
+const { Server } = require("socket.io");
+const io = new Server(server);
+
+const connectUsers = [];
+
+io.on('connection', (socket) => {
+ console.log(socket.id)
+
+
+ socket.on('inConv', (conv) => {
+ socket.join("C" + conv.id);
+ });
+
+ socket.on("messageSent", (conv) =>{
+ socket.to("C"+conv.id).emit("messageReceived");
+ console.log("Message envoyé");
+ });
+
+});
+
+server.listen(3000, () => {
+ console.log('listening on *:3000');
+});
\ No newline at end of file
diff --git a/bob_party/socketConfig.js b/bob_party/socketConfig.js
new file mode 100644
index 0000000..f059af2
--- /dev/null
+++ b/bob_party/socketConfig.js
@@ -0,0 +1,4 @@
+const { io } = require("socket.io-client");
+
+
+export const socket = io("http://localhost:3000");
\ No newline at end of file
diff --git a/bob_party/src/Games/CookieClicker/cookieClicker.tsx b/bob_party/src/Games/CookieClicker/cookieClicker.tsx
index 7b4b3ec..3c1f534 100644
--- a/bob_party/src/Games/CookieClicker/cookieClicker.tsx
+++ b/bob_party/src/Games/CookieClicker/cookieClicker.tsx
@@ -8,6 +8,7 @@ import {
Image,
TouchableHighlight,
Alert,
+ ImageBackground,
} from 'react-native'
import { MANAGER_MATCH, MANAGER_USER } from '../../../appManagers';
import { useMatchStore } from '../../context/matchContext';
@@ -16,12 +17,12 @@ import { Match } from '../../core/Match/match';
import { User } from '../../core/User/user';
-let points=0;
+let points = 0;
-function CookieClicker(props: { navigation: any}){
+function CookieClicker(props: { navigation: any }) {
const { navigation } = props
- const GAMING_TIME=120;
+ const GAMING_TIME = 120;
const setUser = useUserStore((state) => state.setUser);
@@ -39,149 +40,157 @@ function CookieClicker(props: { navigation: any}){
const [timer, setTimer] = useState(GAMING_TIME);
- function onPressCookie(){
- setMoney(money+clickSpeed);
- setCount(count+clickSpeed);
- points=count+clickSpeed;
+ function onPressCookie() {
+ setMoney(money + clickSpeed);
+ setCount(count + clickSpeed);
+ points = count + clickSpeed;
}
- function onPressGrandma(){
- if (money>=grandmaCost){
- setMoney(money-grandmaCost);
- setClickSpeed(clickSpeed+1);
- setGrandmaCost(grandmaCost+10);
+ function onPressGrandma() {
+ if (money >= grandmaCost) {
+ setMoney(money - grandmaCost);
+ setClickSpeed(clickSpeed + 1);
+ setGrandmaCost(grandmaCost + 10);
}
}
- function onPressFarm(){
- if (money>=farmCost){
- setMoney(money-farmCost);
- setClickSpeed(clickSpeed+25);
- setFarmCost(farmCost+250);
+ function onPressFarm() {
+ if (money >= farmCost) {
+ setMoney(money - farmCost);
+ setClickSpeed(clickSpeed + 25);
+ setFarmCost(farmCost + 250);
}
}
- function onPressFactory(){
- if (money>=factoryCost){
- setMoney(money-factoryCost);
- setClickSpeed(clickSpeed+200);
- setFactoryCost(factoryCost+2000);
+ function onPressFactory() {
+ if (money >= factoryCost) {
+ setMoney(money - factoryCost);
+ setClickSpeed(clickSpeed + 200);
+ setFactoryCost(factoryCost + 2000);
}
}
- function onPressWizard(){
- if (money>=wizardCost){
- setMoney(money-wizardCost);
- setClickSpeed(clickSpeed+2500);
- setWizardCost(wizardCost+25000);
+ function onPressWizard() {
+ if (money >= wizardCost) {
+ setMoney(money - wizardCost);
+ setClickSpeed(clickSpeed + 2500);
+ setWizardCost(wizardCost + 25000);
}
}
- function onPressPortal(){
- if (money>=portalCost){
- setMoney(money-portalCost);
- setClickSpeed(clickSpeed+20000);
- setPortalCost(portalCost+200000);
+ function onPressPortal() {
+ if (money >= portalCost) {
+ setMoney(money - portalCost);
+ setClickSpeed(clickSpeed + 20000);
+ setPortalCost(portalCost + 200000);
}
}
- function endGame(){
- const tmp=MANAGER_USER.getCurrentUser();
- if (tmp!==null){
- if (MANAGER_MATCH.getCurrentMatch()?.getTabUsers().includes(tmp)){
+ function endGame() {
+ const tmp = MANAGER_USER.getCurrentUser();
+ if (tmp !== null) {
+ if (MANAGER_MATCH.getCurrentMatch()?.getTabUsers().includes(tmp)) {
MANAGER_MATCH.getCurrentMatch()?.updatePostMatch(tmp, points);
- setUser(tmp);
+ setUser(tmp);
}
}
- resetMatch();
+ resetMatch();
}
useEffect(() => {
- let counter=GAMING_TIME;
+ let counter = GAMING_TIME;
var oneSecInterval = setInterval(() => {
setTimer(timer => timer - 1);
- counter --;
+ counter--;
if (counter == 0) {
- clearInterval(oneSecInterval);
- endGame();
- Alert.alert("fin du jeu");
- navigation.navigate('Home');
+ clearInterval(oneSecInterval);
+ endGame();
+ Alert.alert("fin du jeu");
+ navigation.navigate('Home');
}
}, 1000);
- },[]);
-
+ }, []);
+
+
+ return (
+
+
+
+
+ Timer: {timer}
+
+
+
+
+
+ Argent {money}
+
+
+ Points {count}
+
+
+
+
+
+
+
+
+ Cost {grandmaCost}
+
+
- return (
-
-
-
- Timer: {timer}
+
+
+
+
+
+ Cost {farmCost}
-
-
-
-
- Argent {money}
+
+
+
+
+
+
+
+ Cost {factoryCost}
-
- Points {count}
+
+
+
+
+
+
+
+ Cost {wizardCost}
-
-
-
-
-
-
- Cost {grandmaCost}
-
-
-
-
-
-
-
-
- Cost {farmCost}
-
-
-
-
-
-
-
-
- Cost {factoryCost}
-
-
-
-
-
-
-
-
- Cost {wizardCost}
-
-
-
-
-
-
-
-
- Cost {portalCost}
-
-
+
+
+
+
+
+ Cost {portalCost}
+
+
+
- )
- }
+
+
+ )
+}
const styles = StyleSheet.create({
container: {
- top: 75,
+ height: window.innerHeight,
+ width: window.innerWidth,
+ flex: 1,
+ },
+ containerTop:{
+ top: "5%",
margin: 10,
flex: 1,
justifyContent: 'center',
@@ -190,7 +199,6 @@ const styles = StyleSheet.create({
containerRight: {
flex: 1,
flexWrap: "wrap",
- top: 100,
marginBottom: 20,
left: 100,
},
@@ -208,12 +216,18 @@ const styles = StyleSheet.create({
marginBottom: 10
},
photo: {
- width: 50,
- height: 50
+ width: 75,
+ height: 75
},
cout: {
- marginBottom: 20
- }
+ marginBottom: 20,
+ color: "white",
+ fontSize: 15
+ },
+ image: {
+ flex: 1,
+ justifyContent: "center"
+ },
})
diff --git a/bob_party/src/Games/Tic-Tac-Toe/tic-tac-toe.tsx b/bob_party/src/Games/Tic-Tac-Toe/tic-tac-toe.tsx
new file mode 100644
index 0000000..61e8f54
--- /dev/null
+++ b/bob_party/src/Games/Tic-Tac-Toe/tic-tac-toe.tsx
@@ -0,0 +1,212 @@
+import {Alert, ImageBackground, Pressable, StyleSheet, Text, View } from "react-native";
+import React, {useState} from "react";
+import { useMatchStore } from "../../context/matchContext";
+
+
+export default function tic_tac_toe(props: { navigation: any}){
+ const [map,setMap]=useState([
+ ['','',''],
+ ['','',''],
+ ['','',''],
+ ]);
+
+ const {navigation}=props;
+
+ const [currentTurn,setCurrentTurn] = useState("x");
+
+ //const resetMatch = useMatchStore((state) => state.resetMatch);
+
+ const onPressCell = (rowIndex:number,columnIndex:number) => {
+ if(map[rowIndex][columnIndex]==""){
+ setMap((existingMap) =>{
+ const updateMap = [...existingMap]
+ updateMap[rowIndex][columnIndex]=currentTurn;
+ return updateMap;
+ });
+ }else{
+ Alert.alert("Case déjà prise");
+ }
+ setCurrentTurn(currentTurn === "x"? "o" : "x");
+ checkWinning();
+ checkComplete();
+ };
+
+ const checkWinning = () =>{
+ // Checks rows
+ for (let i=0; i<3; i++){
+ const isRowXWinning = map[i].every((cell)=> cell==="x");
+ const isRowOWinning = map[i] .every((cell)=>cell==="o");
+ if(isRowXWinning==true){
+ Alert.alert("X won !");
+ navigation.goBack();
+ }
+ else if(isRowOWinning==true){
+ Alert.alert("X won !");
+ navigation.goBack();
+ }
+ }
+ // Checks columns
+ for (let col=0;col<3;col++){
+ let isColumnXWinning=true;
+ let isColumnOWinning=true;
+
+ for(let row=0;row<3;row++){
+ if(map[row][col] !== "x"){
+ isColumnXWinning=false;
+ }
+ if(map[row][col] !== "o"){
+ isColumnOWinning=false;
+ }
+ }
+ if (isColumnXWinning == true){
+ Alert.alert("X won !");
+ navigation.goBack();
+ }
+ if(isColumnOWinning==true){
+ Alert.alert("O won !");
+ navigation.goBack();
+ }
+
+ }
+ // Checks diag
+ let isDiag1XWinning=true;
+ let isDiag1OWinning=true;
+ let isDiag2XWinning=true;
+ let isDiag2OWinning=true;
+ for (let i=0;i<3;i++){
+ if(map[i][i]!=="x"){
+ isDiag1XWinning=false;
+ }
+ if(map[i][i]!=="o"){
+ isDiag1OWinning=false;
+ }
+ if(map[i][2-i]!=="x"){
+ isDiag2XWinning=false;
+ }
+ if(map[i][2-i]!=="o"){
+ isDiag2OWinning=false;
+ }
+ }
+ if(isDiag1OWinning==true || isDiag2OWinning==true){
+ Alert.alert("O won !");
+ navigation.goBack();
+ }
+ if(isDiag1XWinning==true || isDiag2XWinning==true){
+ Alert.alert("X won !");
+ navigation.goBack();
+ }
+ };
+
+ const checkComplete = () =>{
+ /*let isFull;
+ for (let row=0; row<3; row++){
+ for(let col=0;col<3;col++){
+ if(map[row][col]==="o" || map[row][col]==="x"){
+ isFull=false;
+ }
+ }
+ }
+ if (isFull!=false){
+ Alert.alert("Draw !");
+ navigation.goBack();
+ }*/
+ const isRow0Full = map[0].every((cell)=> cell!=="");
+ const isRow1Full = map[1] .every((cell)=>cell!=="");
+ const isRow2Full = map[2] .every((cell)=>cell!=="");
+ if(isRow0Full==true && isRow1Full==true && isRow2Full==true){
+ Alert.alert("Draw !");
+ navigation.goBack();
+ }
+ };
+
+ return(
+
+ TIC TAC TOE
+
+
+ {map.map((row, rowIndex)=>(
+
+ {row.map((cell, columnIndex)=> (
+ onPressCell(rowIndex,columnIndex)}
+ style={styles.cell}
+ key={`row-${rowIndex}-col-${columnIndex}`}
+ >
+ {cell === "o" && }
+ {cell === "x" &&(
+
+
+
+
+ )}
+
+ ))}
+
+ ))}
+
+
+
+ );
+}
+
+const styles= StyleSheet.create({
+ container:{
+ height:"100%",
+ width:"100%",
+ flex:1,
+ backgroundColor:"#45444E",
+ alignItems:"center",
+ justifyContent:"center",
+ },
+ grid:{
+ width:375,
+ height:375,
+ alignItems:"center",
+ justifyContent:"center",
+ },
+ row:{
+ flex:1,
+ flexDirection:"row",
+ },
+ cell:{
+ width:100,
+ flex:1,
+ },
+ circle:{
+ left:15,
+ top:15,
+ width:90,
+ height:90,
+ backgroundColor:"#0085FF",
+ borderRadius:50
+ },
+ cross:{
+ width:"100%",
+ height:"100%",
+ },
+ crossLine:{
+ left:52,
+ top:15,
+ position:"absolute",
+ width:15,
+ height:100,
+ borderRadius:50,
+ backgroundColor:"#EE9433",
+ transform:[{rotate:"45deg"},],
+ },
+ crossLineReversed:{
+ transform:[{rotate:"-45deg"},],
+ },
+ map:{
+ aspectRatio:1,
+ padding:5
+ },
+ text:{
+ fontSize: 26,
+ lineHeight: 21,
+ fontWeight: 'bold',
+ letterSpacing: 0.25,
+ color: 'white',
+ marginBottom:25
+ }
+})
\ No newline at end of file
diff --git a/bob_party/src/components/BotBar.tsx b/bob_party/src/components/BotBar.tsx
index fdd5444..fd9bc49 100644
--- a/bob_party/src/components/BotBar.tsx
+++ b/bob_party/src/components/BotBar.tsx
@@ -10,6 +10,7 @@ import { useStoreStore } from "../context/storeContext";
import tabSkinApp from "../constSkin";
import { useConversationStore } from "../context/conversationContext";
import { MANAGER_CONVERSATION, MANAGER_USER } from "../../appManagers";
+import { socket } from "../../socketConfig";
/*
Images that are required to create a bottom bar
@@ -30,23 +31,26 @@ const smessage = require('../../assets/Icons/Selected/SChat.png');
const sstore = require('../../assets/Icons/Selected/SStore.png');
+
+
+
export const BotBar:
/* Parameters :
* nav : tool needed to allow the navigation between the screens
* state : optional parameter that indicates from which screen the component has been called
(the string must be the name of the screen)
*/
+
+
FC<{ nav: any, state?: String }> =
({ nav, state }) => {
+
const setTabSkin = useStoreStore((state) => state.setTabSkin);
- const setTabConv = useConversationStore((state) => state.setTabConv);
const handleStoreChange = useCallback(async () => {
let tabSkinStore = [...tabSkinApp];
- // const tmp=MANAGER_USER.getCurrentUser()?.getTabSkin();
- // if (tmp!==undefined){
MANAGER_USER.getCurrentUser()?.getTabSkin()?.forEach(skin => {
for (let i = 0; i < tabSkinStore.length; i++) {
if (skin.isEqual(tabSkinStore[i])) {
@@ -55,19 +59,11 @@ export const BotBar:
}
});
setTabSkin(tabSkinStore);
- // }
}, []);
- const handleConversationChange = useCallback(async () => {
- const tmp = MANAGER_USER.getCurrentUser();
- if (tmp !== null) {
- await MANAGER_CONVERSATION.getLoaderConversation().loadByUser(tmp).then((res) => {
- MANAGER_CONVERSATION.setCurrentTabConv(res);
- setTabConv(res);
- });
- }
- }, []);
+
+
/*
By default, all the images are the white ones
@@ -100,7 +96,7 @@ export const BotBar:
*/
return (
- { handleConversationChange(); nav.navigate('ChatTab') }}>
+ { nav.navigate('ChatTab') }}>
=
+({user}) =>
+{
+ return (
+
+
+ {user.getUsername()}
+
+ )
+
+
+}
\ No newline at end of file
diff --git a/bob_party/src/components/TopBar.tsx b/bob_party/src/components/TopBar.tsx
index 31492bd..6bb8b10 100644
--- a/bob_party/src/components/TopBar.tsx
+++ b/bob_party/src/components/TopBar.tsx
@@ -11,6 +11,7 @@ import { User } from "../core/User/user"
import styles from './style/TopBar.style';
import { useMatchStore } from "../context/matchContext"
import { MANAGER_USER } from "../../appManagers"
+import { useUserStore } from "../context/userContext"
/*
Images required
@@ -68,7 +69,7 @@ FC<{nav: any, state?: string}> =
return (
nav.navigate('ProfileTab', {screen: 'Profile'})}>
-
+
BOB PARTY
nav.navigate('Settings')}>
diff --git a/bob_party/src/context/conversationContext.tsx b/bob_party/src/context/conversationContext.tsx
index 0391530..03a507b 100644
--- a/bob_party/src/context/conversationContext.tsx
+++ b/bob_party/src/context/conversationContext.tsx
@@ -5,15 +5,15 @@ import { Conversation } from "../core/conversation";
// Define store types
interface ConversationState {
- tabConv: Conversation[] | undefined;
+ tabConv: Conversation[] | null;
setTabConv: (tabConv: Conversation[]) => void;
resetTabConv: () => void;
}
// Define store data and methods
export const useConversationStore = create()((set, get) => ({
- tabConv: undefined,
+ tabConv: null,
setTabConv: (tabConv) => set((state) => ({ tabConv: tabConv })),
- resetTabConv: () => set((state) => ({tabConv: undefined})),
+ resetTabConv: () => set((state) => ({tabConv: null})),
}));
diff --git a/bob_party/src/core/tests/matchSolo.test.ts b/bob_party/src/core/tests/matchSolo.test.ts
index c2cc7b8..027b58b 100644
--- a/bob_party/src/core/tests/matchSolo.test.ts
+++ b/bob_party/src/core/tests/matchSolo.test.ts
@@ -1,5 +1,4 @@
import MatchSolo from '../Match/matchSolo';
-import { Conversation } from '../Conversation';
import { Skin } from '../Skin';
import { User } from '../User/user';
import { GameSolo } from '../GameSolo';
@@ -21,10 +20,12 @@ let myMap = new Map([
[100, 5],
[150, 6]
]);
-let game=new GameSolo(1, "bo jeu", img, "super jeu", 1, 1, myMap);
-let match = new MatchSolo(1, false, tabU, game);
let tabU2:User[] = [];
+let game=new GameSolo(1, "bo jeu", img, "super jeu", 1, 1, myMap);
let game2 = new GameSolo(2, "jeu magnifique", img, "wow jeu", 1, 1, myMap)
+let match = new MatchSolo(1, false, tabU, game);
+let match2 = new MatchSolo(1, false, tabU2, game2);
+let match3 = new MatchSolo(1, false, tabU, game);
// Get tests
@@ -36,50 +37,47 @@ describe('Match get tests', () => {
expect(match.getInGame()).toBe(false);
})
it('should return tabU [usr] (users)', () => {
- expect(match.getTabUsers()).toBe(tabU);
+ expect(match.getTabUsers()).toEqual(match3.getTabUsers());
})
it('should return game', () => {
- expect(match.getGame).toBe(game);
+ expect(match.getGame()).toEqual(match3.getGame());
})
})
-// Setting new values
-match.setGame(game2);
-match.setInGame(true);
-match.setTabUser(tabU2);
-
-
// Set tests
describe('Match set tests', () => {
it('should return tabU2 [] (users)', () => {
- expect(match.getTabUsers()).toBe(tabU2);
+ match.setTabUser(tabU2);
+ expect(match.getTabUsers()).toEqual(match2.getTabUsers());
})
it('should return true', () => {
+ match.setInGame(true);
expect(match.getInGame()).toBe(true);
})
it('should return game2', () => {
- expect(match.getGame).toBe(game2);
+ match.setGame(game2);
+ expect(match.getGame()).toEqual(match2.getGame());
})
})
// Update Post-Match tests
describe('Update post-match tests', () => {
- it('should return 3', () => {
- match.updatePostMatch(tabU[0],50);
- expect(tabU[0].getCurrentCoins()).toBe(3);
+ it('should return 50', () => {
+ match.updatePostMatch(tabU[0],3);
+ expect(tabU[0].getCurrentCoins()).toBe(50);
})
- it('should return 8', () => {
- match.updatePostMatch(tabU[0],100);
- expect(tabU[0].getCurrentCoins()).toBe(8);
+ it('should return 75', () => {
+ match.updatePostMatch(usr2,4);
+ expect(usr2.getCurrentCoins()).toBe(75);
})
- it('should return 4', () => {
- match.updatePostMatch(usr2,75);
- expect(usr2.getCurrentCoins()).toBe(4);
+ it('should return 150', () => {
+ match.updatePostMatch(tabU[0],5);
+ expect(tabU[0].getCurrentCoins()).toBe(150);
})
- it('should return 10', () => {
- match.updatePostMatch(usr2,150);
- expect(usr2.getCurrentCoins()).toBe(10);
+ it('should return 225', () => {
+ match.updatePostMatch(usr2,6);
+ expect(usr2.getCurrentCoins()).toBe(225);
})
})
\ No newline at end of file
diff --git a/bob_party/src/navigation/AppNavigator.tsx b/bob_party/src/navigation/AppNavigator.tsx
index 5342ee7..f6b1697 100644
--- a/bob_party/src/navigation/AppNavigator.tsx
+++ b/bob_party/src/navigation/AppNavigator.tsx
@@ -17,6 +17,8 @@ import CookieClicker from '../Games/CookieClicker/cookieClicker'
import Conversation from '../screens/Conversation'
import Test from '../screens/Test'
+import MatchMaking from '../screens/MatchMaking'
+import TicTacToe from '../Games/Tic-Tac-Toe/tic-tac-toe'
const HomeStack = createStackNavigator();
@@ -97,8 +99,9 @@ const GameSoloStack = createStackNavigator();
function GameSoloStackScreen() {
return (
-
+
+
);
}
diff --git a/bob_party/src/redux/features/currentUserSlice.ts b/bob_party/src/redux/features/currentUserSlice.ts
index 042b047..60c1c4a 100644
--- a/bob_party/src/redux/features/currentUserSlice.ts
+++ b/bob_party/src/redux/features/currentUserSlice.ts
@@ -1,10 +1,11 @@
+/*
import { createSlice, PayloadAction } from "@reduxjs/toolkit"
import { Skin } from "../../core/Skin";
import { User } from "../../core/User/user";
const dateNull = new Date();
-const userNull:User= new User("","","","","",dateNull);
+const userNull:User | null= null;
var currentUser:User = userNull;
@@ -71,4 +72,5 @@ export const { updatePassword } = currentUserSlice.actions
export const { updateNationality } = currentUserSlice.actions
export const { updateSex } = currentUserSlice.actions
-export default currentUserSlice.reducer;
\ No newline at end of file
+export default currentUserSlice.reducer;
+*/
\ No newline at end of file
diff --git a/bob_party/src/screens/MatchMaking.tsx b/bob_party/src/screens/MatchMaking.tsx
new file mode 100644
index 0000000..c425628
--- /dev/null
+++ b/bob_party/src/screens/MatchMaking.tsx
@@ -0,0 +1,47 @@
+import { StatusBar } from 'expo-status-bar'
+import { View, Image, Text, Button} from 'react-native'
+import React from 'react';
+import stylesScreen from './style/screens.style';
+import styles from './style/Settings.style';
+import { TopBar } from '../components/TopBar';
+import { BotBar } from '../components/BotBar';
+import { Conversation } from '../core/conversation';
+import { ButtonGameTypeChoice } from '../components/ButtonGameTypeChoice';
+import { useMatchStore } from '../context/matchContext';
+import { FlatList, TextInput } from 'react-native-gesture-handler';
+import { PlayerBox } from '../components/PlayerBox';
+
+
+function MatchMaking(props: { navigation: any; }) {
+
+ const { navigation } = props
+
+ const match = useMatchStore().match;
+
+ return (
+
+
+ usr.getUsername()}
+ renderItem={({item}) => }
+ />
+
+
+
+
+
+ );
+}
+
+export default MatchMaking
\ No newline at end of file
diff --git a/bob_party/src/screens/SignIn.tsx b/bob_party/src/screens/SignIn.tsx
index 9579961..0759f70 100644
--- a/bob_party/src/screens/SignIn.tsx
+++ b/bob_party/src/screens/SignIn.tsx
@@ -5,12 +5,13 @@ import stylesScreen from './style/screens.style'
import { TextInput } from 'react-native-gesture-handler';
import styles from "./style/SignIn.style";
import { useDispatch, useSelector } from 'react-redux';
-import { loginUser } from '../redux/features/currentUserSlice';
import { RootState } from '../redux/store';
import { updateIncorrectCredentials } from '../redux/features/credentialErrorsSlice';
import Dialog from "react-native-dialog";
import { useUserStore } from '../context/userContext';
-import { MANAGER_USER } from '../../appManagers';
+import { MANAGER_CONVERSATION, MANAGER_USER } from '../../appManagers';
+import { socket } from "../../socketConfig";
+import { useConversationStore } from '../context/conversationContext';
@@ -18,6 +19,8 @@ import { MANAGER_USER } from '../../appManagers';
function SignIn(props: { navigation: any; }) {
const { navigation } = props
const setUser = useUserStore((state) => state.setUser);
+ const setTabConv = useConversationStore((state) => state.setTabConv);
+
const errorList = useSelector((state: RootState) => state.credentialErrors.loginErrorList);
const [pseudo, setPseudo] = useState('');
@@ -29,20 +32,47 @@ function SignIn(props: { navigation: any; }) {
dispatch(updateIncorrectCredentials(true));
}
+ let waitConnect=0;
- const handleUserConnect = useCallback(async (pseudo: string, password: string) => {
+ async function handleUserConnect(username: string, password: string){
- await MANAGER_USER.getLoaderUser().loadByUsernamePassword(pseudo, password).then((res) => {
- if (res!=null){
- MANAGER_USER.setCurrentUser(res);
- setUser(MANAGER_USER.getCurrentUser());
- navigation.navigate('HomeTab');
- }
+ if (waitConnect==0){
+ waitConnect=1;
+ await MANAGER_USER.getLoaderUser().loadByUsernamePassword(username, password).then(async (res) => {
+ if (res!=null){
+ MANAGER_USER.setCurrentUser(res);
+ setUser(MANAGER_USER.getCurrentUser());
+ socket.emit("signIn", res);
+ await handleConversationLoad();
+ MANAGER_CONVERSATION.getCurrentTabConv()?.forEach( conv =>{
+ socket.emit("inConv", conv);
+ socket.emit("messageSent", conv);
+ });
+ navigation.navigate('HomeTab');
- });
+ }
+
+ });
+ waitConnect=0;
+ }
+ return;
+ }
+
+ async function handleConversationLoad(){
+ const tmp = MANAGER_USER.getCurrentUser();
+ if (tmp !== null) {
+ await MANAGER_CONVERSATION.getLoaderConversation().loadByUser(tmp).then((res) => {
+ MANAGER_CONVERSATION.setCurrentTabConv(res);
+ setTabConv(res);
+ });
+ }
+ }
+
+ socket.on("messageReceived", () =>{
+ console.log("Message reçu");
+ handleConversationLoad();
+ });
- }, []);
-
return (
diff --git a/bob_party/src/screens/style/screens.style.js b/bob_party/src/screens/style/screens.style.js
index 529bc4b..b5d028d 100644
--- a/bob_party/src/screens/style/screens.style.js
+++ b/bob_party/src/screens/style/screens.style.js
@@ -2,6 +2,7 @@ import { StyleSheet } from "react-native";
export default StyleSheet.create({
container: {
+ top: window.innerHeight,
flex: 1,
backgroundColor: '#45444E',
flexDirection: "column",
diff --git a/bob_party/src/services/conversationService/loaderConversationApi.ts b/bob_party/src/services/conversationService/loaderConversationApi.ts
index 2dab3f1..a2868e1 100644
--- a/bob_party/src/services/conversationService/loaderConversationApi.ts
+++ b/bob_party/src/services/conversationService/loaderConversationApi.ts
@@ -27,18 +27,11 @@ export class LoaderConversationApi implements ILoaderConversation{
})
.then(function (response: any) {
let skin= new Skin(1, "Bob","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobClassic.png", 0);
- let skin2= new Skin(1, "Bob","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobBlue.png", 0);
- let user1 = new User(1, "Alban", "oui", "ouioui", "homme", new Date(2022,12,12), 555, 667, 12, skin, [skin]);
- let user2 = new User(3, "Fefe63", "jesuishm", "ouioui", "homme", new Date(2022,12,12), 12222, 123324, 12, skin2, [skin]);
- tabConv=[new Conversation(1,
- [user1, user2],
- [
- new Message(1, "bonjour", user1, new Date(2022,12,12)),
- new Message(2, "test", user2, new Date(2022,12,13)),
- new Message(3, "Je m'appelle alban et j'aime trop faire les messages quand ça marche mais ya encore qq trucs qui marche pas donc un peu cool mais pas trop", user1, new Date(2022,12,14)),
- new Message(4, "Fefe63 est dans la place", user2, new Date(2022,12,15)),
- ]
- , user1.getUsername()+user2.getUsername())];
+ tabConv=[new Conversation(40,
+ [new User(1, "Alban", "oui", "ouioui", "homme", new Date(2022,12,12), 555, 667, 12, skin, [skin]),
+ new User(3, "Fefe63", "jesuishm", "ouioui", "homme", new Date(2022,12,12), 12222, 123324, 12, skin, [skin])],
+ [new Message(1, "bonjour", new User(1, "Alban", "oui", "ouioui", "homme", new Date(2022,12,12), 555, 667, 12, skin, [skin]), new Date(2022,12,12)),
+ new Message(2, "test", new User(2, "Fefe63", "oui", "ouioui", "homme", new Date(2022,12,12), 555, 667, 12, skin, [skin]), new Date(2022,12,13))], "leNom")];
});
return tabConv;
}
diff --git a/bob_party/src/services/gameService/loaderGameApi.ts b/bob_party/src/services/gameService/loaderGameApi.ts
index 2529784..49d5660 100644
--- a/bob_party/src/services/gameService/loaderGameApi.ts
+++ b/bob_party/src/services/gameService/loaderGameApi.ts
@@ -24,7 +24,9 @@ export default class LoaderGameApi implements ILoaderGame{
map.set(300,150);
map.set(450,1000);
const cookieClicker= new GameSolo(1, "Cookie Clicker", "https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/ImagesJeux/Pong.png", "/Games/CookieClicker/cookieClicker.tsx", 1, 1, map);
- tab=[cookieClicker];
+ const ticTacToe= new GameSolo(2,"TicTacToe", "https://is3-ssl.mzstatic.com/image/thumb/Purple123/v4/f2/06/ef/f206ef53-7206-ffae-af6b-52460ba5636f/source/256x256bb.jpg", "/Games/Tic-Tac-Toe/tic-tac-toe.tsx", 1, 1, map);
+ tab=[cookieClicker,ticTacToe];
+
});
return tab;
diff --git a/bob_party/src/services/tests/loaderUserApi.test.ts b/bob_party/src/services/tests/loaderUserApi.test.ts
deleted file mode 100644
index 8b82af6..0000000
--- a/bob_party/src/services/tests/loaderUserApi.test.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import LoaderUserApi from '../userServices/loaderUserApi';
-import ILoaderUser from '../userServices/ILoaderUser';
-import { Match } from '../../core/Match/match';
-import MatchSolo from '../../core/Match/matchSolo';
-import { GameSolo } from '../../core/gameSolo';
-import tabUS from '../../constUser';
-import { Conversation } from '../../core/conversation';
-
-// Instances
-const img = "";
-let loader:ILoaderUser = new LoaderUserApi();
-let map = new Map([
- [50, 3],
- [75, 4],
- [100, 5],
- [150, 6]
-]);
-let game:GameSolo = new GameSolo(1, 'SuperJeu', img, 'source', 1, 1, map);
-let match:Match = new MatchSolo(1, false, tabUS, game);
-let convo:Conversation = new Conversation(1, tabUS, [], 'superConvo');
-
-
-// Tests
-describe('LoaderUserApi tests', () => {
- describe('loadById tests', () => {
- it('should return UserTest (id: 48)', () => {
- expect(loader.loadByID(48)).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(loader.loadByID(99999999999)).toBe(null);
- })
- })
- describe('loadByUserName tests', () => {
- it('should return USerTest (name: WeshWesh)', () => {
- expect(loader.loadByUsername('WeshWesh')).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(loader.loadByUsername('jExistePas')).toBe(null);
- })
- })
- describe('loadByUserNamePassword tests', () => {
- it('should return UserTest (name: WeshWesh, password: MdpDeOuf)', () => {
- expect(loader.loadByUsernamePassword('WeshWesh', 'MdpDeOuf')).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(loader.loadByUsernamePassword('jExistePas', 'jExistePas')).toBe(null);
- })
- })
- describe('loadUserByMatch tests', () => {
- it('should return tabUS', () => {
- expect(loader.loadUserByMatch(match)).toEqual(tabUS);
- })
- it('should return null', () => {
- expect(loader.loadByUsernamePassword('jExistePas', 'jExistePas')).toEqual(null);
- })
- })
- describe('loadUserByConversation tests', () => {
- it('should return tabUS', () => {
- expect(loader.loadUserByConversation(convo)).toEqual(tabUS);
- })
- })
-})
\ No newline at end of file
diff --git a/bob_party/src/services/tests/saverUserApi.test.ts b/bob_party/src/services/tests/saverUserApi.test.ts
deleted file mode 100644
index f56e5e6..0000000
--- a/bob_party/src/services/tests/saverUserApi.test.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-import LoaderUserApi from '../userServices/loaderUserApi';
-import SaverUserApi from '../userServices/saverUserApi';
-
-
-// Instances
-let saver:SaverUserApi = new SaverUserApi();
-let loader = new LoaderUserApi();
-
-
-// Tests
-
-describe('SaverUserApi tests', () => {
- describe('saverUser tests', () => {
- })
-})
-*/
-
-it('should return true', () => {
- expect(1+1).toBe(2);
-})
\ No newline at end of file
diff --git a/bob_party/src/services/tests/stubUser.test.ts b/bob_party/src/services/tests/stubUser.test.ts
deleted file mode 100644
index 04295e0..0000000
--- a/bob_party/src/services/tests/stubUser.test.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-import StubUser from '../userServices/stub';
-import { User } from '../../core/User/user';
-import { Skin } from '../../core/skin';
-import { GameSolo } from '../../core/gameSolo';
-import MatchSolo from '../../core/Match/matchSolo';
-import { Match } from '../../core/Match/match';
-import { Conversation } from '../../core/conversation';
-
-// Instances
-const img = "";
-let stub:StubUser = new StubUser();
-let map = new Map([
- [50, 3],
- [75, 4],
- [100, 5],
- [150, 6]
-]);
-let tabUS:User[] = [
- new User(1, "WeshWesh", "MdpDeOuf", "ouioui", "grand", new Date(2022,12,12), 12222, 123324, 12, new Skin(1, "Bob", img, 0), [new Skin(1, "Bob", img, 0)]),
- new User(2, "leBg", "MdpDeOuf", "ouioui", "grand", new Date(2022,12,12), 12222, 123324, 12, new Skin(1, "Bob", img, 0), [new Skin(1, "Bob", img, 0)]),
- new User(3, "Alban", "oui", "ouioui", "homme", new Date(2022,12,12), 555, 667, 12, new Skin(1, "Bob", img, 0), [new Skin(1, "Bob", img, 0)],),
- new User(4, "Fefe63", "jesuishm", "ouioui", "homme", new Date(2022,12,12), 12222, 123324, 12, new Skin(1, "Bob", img, 0), [new Skin(1, "Bob", img, 0)]),
-];
-let game:GameSolo = new GameSolo(1, 'SuperJeu', img, 'source', 1, 1, map);
-let match:Match = new MatchSolo(1, false, tabUS, game);
-let convo:Conversation = new Conversation(1, tabUS, [], 'superConvo');
-
-
-// Tests
-describe('StubUser tests', () => {
- describe('loadAllUser tests', () => {
- it('should return tabUS', () => {
- expect(stub.loadAllUser()).toEqual(tabUS);
- })
- })
- describe('loadById tests', () => {
- it('should return UserTest (id: 48)', () => {
- expect(stub.loadByID(48)).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(stub.loadByID(999999999999)).toBe(null);
- })
- })
- describe('loadByUserName tests', () => {
- it('should return USerTest (name: WeshWesh)', () => {
- expect(stub.loadByUsername('WeshWesh')).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(stub.loadByUsername('jExistePas')).toBe(null);
- })
- })
- describe('loadByUserNamePassword tests', () => {
- it('should return UserTest (name: WeshWesh, password: MdpDeOuf)', () => {
- expect(stub.loadByUsernamePassword('WeshWesh', 'MdpDeOuf')).toEqual(tabUS[0]);
- })
- it('should return null', () => {
- expect(stub.loadByUsernamePassword('jExistePas', 'jExistePas')).toBe(null);
- })
- })
- describe('loadUserByMatch tests', () => {
- it('should return tabUS', () => {
- expect(stub.loadUserByMatch(match)).toEqual(tabUS);
- })
- it('should return null', () => {
- expect(stub.loadByUsernamePassword('jExistePas', 'jExistePas')).toEqual(null);
- })
- })
- describe('loadUserByConversation tests', () => {
- it('should return tabUS', () => {
- expect(stub.loadUserByConversation(convo)).toEqual(tabUS);
- })
- })
- describe('loadLastId', () => {
- it('should return U0005', () => {
- expect(stub.loadLastId()).toBe('U0005');
- })
- })
-})
\ No newline at end of file
diff --git a/bob_party/src/services/userServices/ILoaderUser.ts b/bob_party/src/services/userServices/ILoaderUser.ts
index 46eafbf..7f30e04 100644
--- a/bob_party/src/services/userServices/ILoaderUser.ts
+++ b/bob_party/src/services/userServices/ILoaderUser.ts
@@ -43,10 +43,4 @@ export default interface ILoaderUser{
* return an array of User
*/
loadUserByConversation(c:Conversation): Promise;
-
- /**
- * loadLastId methode that load the last id used to create a user
- * return a String
- */
- loadLastId(): Promise;
}
\ No newline at end of file
diff --git a/bob_party/src/services/userServices/loaderUserApi.ts b/bob_party/src/services/userServices/loaderUserApi.ts
index 70a102e..33e29ce 100644
--- a/bob_party/src/services/userServices/loaderUserApi.ts
+++ b/bob_party/src/services/userServices/loaderUserApi.ts
@@ -104,7 +104,7 @@ export default class LoaderUserApi implements ILoaderUser{
.then(function (response: any) {
const tabTest=[new Skin(1, "Bob","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobClassic.png", 0),
new Skin(2, "Bob Blue","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobBlue.png", 100)];
- user=new User(1, username, password, "ouioui", "homme", new Date(2022,12,12), 200, 123324, 12, new Skin(1, "Bob","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobClassic.png", 0), tabTest);
+ user=new User(1, username, password, "ouioui", "homme", new Date(2022,12,12), 0, 0, 12, tabTest[0], tabTest);
});
return user;
}
@@ -129,8 +129,4 @@ export default class LoaderUserApi implements ILoaderUser{
}
return 1;
}
-
-
-
-
}
\ No newline at end of file
diff --git a/bob_party/src/services/userServices/stub.ts b/bob_party/src/services/userServices/stub.ts
index 6843696..e1af498 100644
--- a/bob_party/src/services/userServices/stub.ts
+++ b/bob_party/src/services/userServices/stub.ts
@@ -1,5 +1,7 @@
import { Conversation } from "../../core/conversation";
+import { GameSolo } from "../../core/gameSolo";
import { Match } from "../../core/Match/match";
+import MatchSolo from "../../core/Match/matchSolo";
import { Skin } from "../../core/skin";
import { User } from "../../core/User/user";
import ILoaderUser from "./ILoaderUser";
@@ -8,12 +10,24 @@ export default class StubUser implements ILoaderUser{
skin:Skin=new Skin(1, "Bob","https://codefirst.iut.uca.fr/git/BOB_PARTEAM/BOB_PARTY/raw/branch/typescript/bob_party/assets/BobsSkins/BobClassic.png", 0);
-
tabUS:User[]=[
new User(1, "leBg", "MdpDeOuf", "ouioui", "grand", new Date(2022,12,12), 12222, 123324, 12, this.skin, [this.skin]),
new User(2, "WeshWesh", "MdpDeOuf", "ouioui", "grand", new Date(2022,12,12), 12222, 123324, 12, this.skin, [this.skin]),
];
+ convo:Conversation = new Conversation(1, this.tabUS, [], 'superConvo');
+
+ map = new Map([
+ [50, 3],
+ [75, 4],
+ [100, 5],
+ [150, 6]
+ ]);
+
+ game:GameSolo = new GameSolo(1, 'SuperJeu', "", 'source', 1, 1, this.map);
+
+ match:Match = new MatchSolo(1, false, this.tabUS, this.game);
+
async loadAllUser(): Promise {
return this.tabUS;
}
@@ -57,9 +71,5 @@ export default class StubUser implements ILoaderUser{
});
return tabUser;
}
-
- async loadLastId(): Promise {
- throw new Error("Method not implemented.");
- }
}
\ No newline at end of file
diff --git a/bob_party/src/testGameSolo.ts b/bob_party/src/testGameSolo.ts
index 5121644..c8cfbb3 100644
--- a/bob_party/src/testGameSolo.ts
+++ b/bob_party/src/testGameSolo.ts
@@ -9,4 +9,5 @@ let myMap = new Map([
let game=new GameSolo(1, "bo jeu", "", "super jeu", 1, 1, myMap);
+
export default game;
\ No newline at end of file
diff --git a/bob_party/tsconfig.json b/bob_party/tsconfig.json
index a624735..53124e9 100644
--- a/bob_party/tsconfig.json
+++ b/bob_party/tsconfig.json
@@ -22,6 +22,6 @@
"include": [
"**/*.ts",
"**/*.tsx"
- ],
+, "socketConfig.js", "server.js" ],
"extends": "expo/tsconfig.base"
}
diff --git a/bob_party/yarn.lock b/bob_party/yarn.lock
index 6a268ae..f8e8532 100644
--- a/bob_party/yarn.lock
+++ b/bob_party/yarn.lock
@@ -59,15 +59,6 @@
"@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
-"@babel/generator@^7.20.5":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
- integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==
- dependencies:
- "@babel/types" "^7.20.5"
- "@jridgewell/gen-mapping" "^0.3.2"
- 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"
@@ -193,11 +184,6 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
-"@babel/helper-plugin-utils@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
- integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
-
"@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
@@ -274,15 +260,6 @@
"@babel/traverse" "^7.20.5"
"@babel/types" "^7.20.5"
-"@babel/helpers@^7.20.5":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763"
- integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.5"
- "@babel/types" "^7.20.5"
-
"@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"
@@ -297,11 +274,6 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
-"@babel/parser@^7.20.5":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
- integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
-
"@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"
@@ -328,16 +300,6 @@
"@babel/helper-remap-async-to-generator" "^7.18.9"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-async-generator-functions@^7.20.1":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9"
- integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/helper-remap-async-to-generator" "^7.18.9"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
-
"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
@@ -433,17 +395,6 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-transform-parameters" "^7.20.1"
-"@babel/plugin-proposal-object-rest-spread@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d"
- integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==
- dependencies:
- "@babel/compat-data" "^7.20.1"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.20.1"
-
"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
@@ -557,13 +508,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.19.0"
-"@babel/plugin-syntax-import-assertions@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4"
- integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
-
"@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
@@ -693,21 +637,6 @@
"@babel/helper-split-export-declaration" "^7.18.6"
globals "^11.1.0"
-"@babel/plugin-transform-classes@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2"
- integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-replace-supers" "^7.19.1"
- "@babel/helper-split-export-declaration" "^7.18.6"
- globals "^11.1.0"
-
"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e"
@@ -722,13 +651,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-destructuring@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792"
- integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
@@ -817,16 +739,6 @@
"@babel/helper-plugin-utils" "^7.19.0"
"@babel/helper-validator-identifier" "^7.19.1"
-"@babel/plugin-transform-modules-systemjs@^7.19.6":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d"
- integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==
- dependencies:
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-module-transforms" "^7.19.6"
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/helper-validator-identifier" "^7.19.1"
-
"@babel/plugin-transform-modules-umd@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
@@ -865,13 +777,6 @@
dependencies:
"@babel/helper-plugin-utils" "^7.20.2"
-"@babel/plugin-transform-parameters@^7.20.1":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e"
- integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
@@ -1079,87 +984,6 @@
core-js-compat "^3.25.1"
semver "^6.3.0"
-"@babel/preset-env@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506"
- integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==
- dependencies:
- "@babel/compat-data" "^7.20.1"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-validator-option" "^7.18.6"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
- "@babel/plugin-proposal-async-generator-functions" "^7.20.1"
- "@babel/plugin-proposal-class-properties" "^7.18.6"
- "@babel/plugin-proposal-class-static-block" "^7.18.6"
- "@babel/plugin-proposal-dynamic-import" "^7.18.6"
- "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
- "@babel/plugin-proposal-json-strings" "^7.18.6"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
- "@babel/plugin-proposal-numeric-separator" "^7.18.6"
- "@babel/plugin-proposal-object-rest-spread" "^7.20.2"
- "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
- "@babel/plugin-proposal-optional-chaining" "^7.18.9"
- "@babel/plugin-proposal-private-methods" "^7.18.6"
- "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
- "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-class-properties" "^7.12.13"
- "@babel/plugin-syntax-class-static-block" "^7.14.5"
- "@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.20.0"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.10.4"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
- "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
- "@babel/plugin-syntax-top-level-await" "^7.14.5"
- "@babel/plugin-transform-arrow-functions" "^7.18.6"
- "@babel/plugin-transform-async-to-generator" "^7.18.6"
- "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
- "@babel/plugin-transform-block-scoping" "^7.20.2"
- "@babel/plugin-transform-classes" "^7.20.2"
- "@babel/plugin-transform-computed-properties" "^7.18.9"
- "@babel/plugin-transform-destructuring" "^7.20.2"
- "@babel/plugin-transform-dotall-regex" "^7.18.6"
- "@babel/plugin-transform-duplicate-keys" "^7.18.9"
- "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
- "@babel/plugin-transform-for-of" "^7.18.8"
- "@babel/plugin-transform-function-name" "^7.18.9"
- "@babel/plugin-transform-literals" "^7.18.9"
- "@babel/plugin-transform-member-expression-literals" "^7.18.6"
- "@babel/plugin-transform-modules-amd" "^7.19.6"
- "@babel/plugin-transform-modules-commonjs" "^7.19.6"
- "@babel/plugin-transform-modules-systemjs" "^7.19.6"
- "@babel/plugin-transform-modules-umd" "^7.18.6"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
- "@babel/plugin-transform-new-target" "^7.18.6"
- "@babel/plugin-transform-object-super" "^7.18.6"
- "@babel/plugin-transform-parameters" "^7.20.1"
- "@babel/plugin-transform-property-literals" "^7.18.6"
- "@babel/plugin-transform-regenerator" "^7.18.6"
- "@babel/plugin-transform-reserved-words" "^7.18.6"
- "@babel/plugin-transform-shorthand-properties" "^7.18.6"
- "@babel/plugin-transform-spread" "^7.19.0"
- "@babel/plugin-transform-sticky-regex" "^7.18.6"
- "@babel/plugin-transform-template-literals" "^7.18.9"
- "@babel/plugin-transform-typeof-symbol" "^7.18.9"
- "@babel/plugin-transform-unicode-escapes" "^7.18.10"
- "@babel/plugin-transform-unicode-regex" "^7.18.6"
- "@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.20.2"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
- core-js-compat "^3.25.1"
- semver "^6.3.0"
-
"@babel/preset-flow@^7.13.13":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb"
@@ -1241,15 +1065,6 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
-"@babel/types@^7.20.5":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84"
- integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==
- dependencies:
- "@babel/helper-string-parser" "^7.19.4"
- "@babel/helper-validator-identifier" "^7.19.1"
- to-fast-properties "^2.0.0"
-
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -2266,6 +2081,11 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
+"@socket.io/component-emitter@~3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
+ integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==
+
"@tsconfig/node10@^1.0.7":
version "1.0.9"
resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz"
@@ -2319,6 +2139,18 @@
dependencies:
"@babel/types" "^7.3.0"
+"@types/cookie@^0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d"
+ integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==
+
+"@types/cors@^2.8.12":
+ version "2.8.13"
+ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.13.tgz#b8ade22ba455a1b8cb3b5d3f35910fd204f84f94"
+ integrity sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==
+ dependencies:
+ "@types/node" "*"
+
"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3":
version "4.1.5"
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
@@ -2383,6 +2215,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.12.tgz#89e7f8aa8c88abf432f9bd594888144d7dba10aa"
integrity sha512-FgD3NtTAKvyMmD44T07zz2fEf+OKwutgBCEVM8GcvMGVGaDktiLNTDvPwC/LUe3PinMW+X6CuLOF2Ui1mAlSXg==
+"@types/node@>=10.0.0":
+ version "18.11.15"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d"
+ integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==
+
"@types/prettier@^2.1.5":
version "2.7.1"
resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz"
@@ -2483,6 +2320,11 @@
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.9.tgz#7f9278a50e737920e21b297b8a35286e9942c056"
integrity sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
abort-controller@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
@@ -2495,7 +2337,7 @@ absolute-path@^0.0.0:
resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
integrity sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==
-accepts@^1.3.7, accepts@^1.3.8, accepts@~1.3.5, accepts@~1.3.7:
+accepts@^1.3.7, accepts@^1.3.8, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
@@ -2591,7 +2433,7 @@ any-promise@^1.0.0:
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
-anymatch@^3.0.3:
+anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
@@ -2641,6 +2483,11 @@ arr-union@^3.1.0:
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
+array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+ integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -3555,6 +3402,11 @@ base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1:
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+base64id@2.0.0, base64id@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
+ integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
+
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -3580,6 +3432,11 @@ big-integer@1.6.x:
resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
bl@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
@@ -3610,6 +3467,24 @@ body-parser@1.19.0:
raw-body "2.4.0"
type-is "~1.6.17"
+body-parser@1.20.1:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
+ integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
+ dependencies:
+ bytes "3.1.2"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "2.0.0"
+ destroy "1.2.0"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ on-finished "2.4.1"
+ qs "6.11.0"
+ raw-body "2.5.1"
+ type-is "~1.6.18"
+ unpipe "1.0.0"
+
bplist-creator@0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e"
@@ -3655,7 +3530,7 @@ braces@^2.3.1:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.2:
+braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -3740,6 +3615,11 @@ bytes@3.1.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
cacache@^15.3.0:
version "15.3.0"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
@@ -3779,6 +3659,14 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
+call-bind@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
caller-callsite@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
@@ -3861,6 +3749,21 @@ charenc@0.0.2, charenc@~0.0.1:
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
+chokidar@^3.5.2:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
@@ -4102,6 +4005,13 @@ connect@^3.6.5, connect@^3.7.0:
parseurl "~1.3.3"
utils-merge "1.0.1"
+content-disposition@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
@@ -4117,6 +4027,21 @@ convert-source-map@^2.0.0:
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+ integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
+
+cookie@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+
+cookie@~0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
copy-descriptor@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
@@ -4139,6 +4064,14 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+cors@^2.8.5, cors@~2.8.5:
+ version "2.8.5"
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
+ dependencies:
+ object-assign "^4"
+ vary "^1"
+
cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
@@ -4233,14 +4166,14 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@^3.1.0:
+debug@^3.1.0, debug@^3.2.7:
version "3.2.7"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
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.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
@@ -4429,6 +4362,38 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
+engine.io-client@~6.2.3:
+ version "6.2.3"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.2.3.tgz#a8cbdab003162529db85e9de31575097f6d29458"
+ integrity sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.1"
+ engine.io-parser "~5.0.3"
+ ws "~8.2.3"
+ xmlhttprequest-ssl "~2.0.0"
+
+engine.io-parser@~5.0.3:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.0.4.tgz#0b13f704fa9271b3ec4f33112410d8f3f41d0fc0"
+ integrity sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==
+
+engine.io@~6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.2.1.tgz#e3f7826ebc4140db9bbaa9021ad6b1efb175878f"
+ integrity sha512-ECceEFcAaNRybd3lsGQKas3ZlMVjN3cyWwMP25D2i0zWfyiytVbTpRPa34qrr+FHddtpBVOmq4H/DCv1O0lZRA==
+ dependencies:
+ "@types/cookie" "^0.4.1"
+ "@types/cors" "^2.8.12"
+ "@types/node" ">=10.0.0"
+ accepts "~1.3.4"
+ base64id "2.0.0"
+ cookie "~0.4.1"
+ cors "~2.8.5"
+ debug "~4.3.1"
+ engine.io-parser "~5.0.3"
+ ws "~8.2.3"
+
env-editor@^0.4.1:
version "0.4.2"
resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-0.4.2.tgz#4e76568d0bd8f5c2b6d314a9412c8fe9aa3ae861"
@@ -4691,6 +4656,43 @@ expo@^46.0.17:
optionalDependencies:
expo-error-recovery "~3.2.0"
+express@^4.18.2:
+ version "4.18.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
+ integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+ dependencies:
+ accepts "~1.3.8"
+ array-flatten "1.1.1"
+ body-parser "1.20.1"
+ content-disposition "0.5.4"
+ content-type "~1.0.4"
+ cookie "0.5.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "2.0.0"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "1.2.0"
+ fresh "0.5.2"
+ http-errors "2.0.0"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.7"
+ qs "6.11.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.2.1"
+ send "0.18.0"
+ serve-static "1.15.0"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
@@ -4825,6 +4827,19 @@ finalhandler@1.1.2:
statuses "~1.5.0"
unpipe "~1.0.0"
+finalhandler@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
+ integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "2.4.1"
+ parseurl "~1.3.3"
+ statuses "2.0.1"
+ unpipe "~1.0.0"
+
find-babel-config@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2"
@@ -4915,6 +4930,11 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+forwarded@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
+ integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
@@ -4982,7 +5002,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@^2.3.2:
+fsevents@^2.3.2, fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
@@ -5002,6 +5022,15 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+get-intrinsic@^1.0.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
+ integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ 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"
@@ -5034,7 +5063,7 @@ getenv@^1.0.0:
resolved "https://registry.yarnpkg.com/getenv/-/getenv-1.0.0.tgz#874f2e7544fbca53c7a4738f37de8605c3fcfc31"
integrity sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==
-glob-parent@^5.1.2:
+glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -5140,6 +5169,11 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
has-value@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
@@ -5273,6 +5307,11 @@ ieee754@^1.1.13:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+ignore-by-default@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+ integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
+
ignore@^5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c"
@@ -5375,7 +5414,7 @@ ip@^1.1.5:
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
-ipaddr.js@^1.9.0:
+ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
@@ -5404,6 +5443,13 @@ is-arrayish@^0.3.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
is-buffer@^1.1.5, is-buffer@~1.1.1, is-buffer@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -5507,7 +5553,7 @@ is-glob@^2.0.0:
dependencies:
is-extglob "^1.0.0"
-is-glob@^4.0.1:
+is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -6475,6 +6521,11 @@ memory-cache@~0.2.0:
resolved "https://registry.yarnpkg.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a"
integrity sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==
+merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+ integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -6485,6 +6536,11 @@ merge2@^1.3.0, merge2@^1.4.1:
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+ integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
+
metro-babel-transformer@0.70.3:
version "0.70.3"
resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.70.3.tgz#dca61852be273824a4b641bd1ecafff07ff3ad1f"
@@ -6846,7 +6902,7 @@ min-document@^2.19.0:
dependencies:
dom-walk "^0.1.0"
-"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1:
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -7064,12 +7120,35 @@ node@^18.10.0:
dependencies:
node-bin-setup "^1.0.0"
+nodemon@^2.0.20:
+ version "2.0.20"
+ resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.20.tgz#e3537de768a492e8d74da5c5813cb0c7486fc701"
+ integrity sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==
+ dependencies:
+ chokidar "^3.5.2"
+ debug "^3.2.7"
+ ignore-by-default "^1.0.1"
+ minimatch "^3.1.2"
+ pstree.remy "^1.1.8"
+ semver "^5.7.1"
+ simple-update-notifier "^1.0.7"
+ supports-color "^5.5.0"
+ touch "^3.1.0"
+ undefsafe "^2.0.5"
+
+nopt@~1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+ integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==
+ dependencies:
+ abbrev "1"
+
normalize-css-color@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/normalize-css-color/-/normalize-css-color-1.0.2.tgz#02991e97cccec6623fe573afbbf0de6a1f3e9f8d"
integrity sha512-jPJ/V7Cp1UytdidsPqviKEElFQJs22hUUgK5BOPHTwOonNCk7/2qOxhhqzEajmFrWJowADFfOFh1V+aWkRfy+w==
-normalize-path@^3.0.0:
+normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
@@ -7108,7 +7187,7 @@ ob1@0.70.3:
resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.70.3.tgz#f48cd5a5abf54b0c423b1b06b6d4ff4d049816cb"
integrity sha512-Vy9GGhuXgDRY01QA6kdhToPd8AkLdLpX9GjH5kpqluVqTu70mgOm7tpGoJDZGaNbr9nJlJgnipqHJQRPORixIQ==
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
@@ -7122,6 +7201,11 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
+object-inspect@^1.9.0:
+ version "1.12.2"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
+ integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
+
object-visit@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -7367,6 +7451,11 @@ path-parse@^1.0.5, path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+ integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+
path-type@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
@@ -7377,7 +7466,7 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1:
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
@@ -7516,11 +7605,24 @@ prop-types@^15.7.2, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+proxy-addr@~2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
+ integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
+ dependencies:
+ forwarded "0.2.0"
+ ipaddr.js "1.9.1"
+
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+pstree.remy@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
+ integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -7534,6 +7636,13 @@ qrcode-terminal@0.11.0:
resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz#ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e"
integrity sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==
+qs@6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+ dependencies:
+ side-channel "^1.0.4"
+
qs@6.7.0:
version "6.7.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
@@ -7574,6 +7683,16 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
+raw-body@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
+ integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
rc@~1.2.7:
version "1.2.8"
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
@@ -7798,6 +7917,13 @@ readable-stream@~2.3.6:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
+readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
readline@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/readline/-/readline-1.3.0.tgz#c580d77ef2cfc8752b132498060dc9793a7ac01c"
@@ -8086,7 +8212,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@~5.2.0:
+safe-buffer@5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
@@ -8132,7 +8258,7 @@ semver@7.x, semver@^7.3.5:
dependencies:
lru-cache "^6.0.0"
-semver@^5.3.0, semver@^5.5.0, semver@^5.6.0:
+semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -8142,6 +8268,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@~7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
+
send@0.18.0, send@^0.18.0:
version "0.18.0"
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
@@ -8173,7 +8304,7 @@ serialize-error@^2.1.0:
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==
-serve-static@^1.13.1:
+serve-static@1.15.0, serve-static@^1.13.1:
version "1.15.0"
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
@@ -8249,6 +8380,15 @@ shell-quote@^1.6.1, shell-quote@^1.7.3:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8"
integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==
+side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
@@ -8270,6 +8410,13 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
+simple-update-notifier@^1.0.7:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82"
+ integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==
+ dependencies:
+ semver "~7.0.0"
+
sisteransi@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
@@ -8329,6 +8476,41 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+socket.io-adapter@~2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz#b50a4a9ecdd00c34d4c8c808224daa1a786152a6"
+ integrity sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==
+
+socket.io-client@^4.5.4:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.5.4.tgz#d3cde8a06a6250041ba7390f08d2468ccebc5ac9"
+ integrity sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.2"
+ engine.io-client "~6.2.3"
+ socket.io-parser "~4.2.1"
+
+socket.io-parser@~4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.1.tgz#01c96efa11ded938dcb21cbe590c26af5eff65e5"
+ integrity sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==
+ dependencies:
+ "@socket.io/component-emitter" "~3.1.0"
+ debug "~4.3.1"
+
+socket.io@^4.5.4:
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.5.4.tgz#a4513f06e87451c17013b8d13fdfaf8da5a86a90"
+ integrity sha512-m3GC94iK9MfIEeIBfbhJs5BqFibMtkRk8ZpKwG2QwxV0m/eEhPIV4ara6XCF1LWNAus7z58RodiZlAH71U3EhQ==
+ dependencies:
+ accepts "~1.3.4"
+ base64id "~2.0.0"
+ debug "~4.3.2"
+ engine.io "~6.2.1"
+ socket.io-adapter "~2.4.0"
+ socket.io-parser "~4.2.1"
+
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -8580,7 +8762,7 @@ supports-color@^2.0.0:
resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==
-supports-color@^5.3.0:
+supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
@@ -8789,6 +8971,13 @@ toidentifier@1.0.1:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+touch@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
+ integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
+ dependencies:
+ nopt "~1.0.10"
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -8877,7 +9066,7 @@ type-fest@^0.7.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-type-is@~1.6.17:
+type-is@~1.6.17, type-is@~1.6.18:
version "1.6.18"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
@@ -8885,11 +9074,6 @@ type-is@~1.6.17:
media-typer "0.3.0"
mime-types "~2.1.24"
-typescript-jest@^0.0.0:
- version "0.0.0"
- resolved "https://registry.npmjs.org/typescript-jest/-/typescript-jest-0.0.0.tgz"
- integrity sha512-RXApkYpBTzoGatNP9rj5HJaXykGFneauaM9ivJXAADqmIfg4YLSnkKJ9LwWdZ286qhyVC7GGV6uBRVrYgAcWqQ==
-
typescript@^4.9.3:
version "4.9.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78"
@@ -8908,6 +9092,11 @@ uglify-es@^3.1.9:
commander "~2.13.0"
source-map "~0.6.1"
+undefsafe@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
+ integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
+
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
@@ -9089,7 +9278,7 @@ validate-npm-package-name@^3.0.0:
dependencies:
builtins "^1.0.3"
-vary@~1.1.2:
+vary@^1, vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
@@ -9217,6 +9406,11 @@ ws@^7, ws@^7.5.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
+ws@~8.2.3:
+ version "8.2.3"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
+ integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
+
xcode@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c"
@@ -9248,6 +9442,11 @@ xmlbuilder@~11.0.0:
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3"
integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==
+xmlhttprequest-ssl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67"
+ integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==
+
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"