mirror of
https://github.com/Rushilwiz/house-party.git
synced 2025-04-20 19:40:17 -04:00
finished basic room functionality and user auth
This commit is contained in:
parent
2238bd403c
commit
afc94bc41b
|
@ -14,11 +14,11 @@ def generate_unique_code():
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
class Room(models.Model):
|
class Room(models.Model):
|
||||||
code = models.CharField(max_length=8, default="", unique=True)
|
code = models.CharField(max_length=8, default=generate_unique_code, unique=True)
|
||||||
host = models.CharField(max_length=50, unique=True)
|
host = models.CharField(max_length=50, unique=True)
|
||||||
guest_can_pause = models.BooleanField(null=False, default=False)
|
guest_can_pause = models.BooleanField(null=False, default=False)
|
||||||
votes_to_skip = models.IntegerField(null=False, default=0)
|
votes_to_skip = models.IntegerField(null=False, default=0)
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f'Room ({self.code}'
|
return f'Room ({self.code})'
|
||||||
|
|
|
@ -5,3 +5,15 @@ class RoomSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Room
|
model = Room
|
||||||
fields = ('id', 'code', 'host', 'guest_can_pause', 'votes_to_skip', 'created_at')
|
fields = ('id', 'code', 'host', 'guest_can_pause', 'votes_to_skip', 'created_at')
|
||||||
|
|
||||||
|
class CreateRoomSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Room
|
||||||
|
fields = ('guest_can_pause', 'votes_to_skip')
|
||||||
|
|
||||||
|
class UpdateRoomSerializer(serializers.ModelSerializer):
|
||||||
|
code = serializers.CharField(validators=[])
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Room
|
||||||
|
fields = ('guest_can_pause', 'votes_to_skip', 'code')
|
|
@ -2,5 +2,11 @@ from django.urls import path
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('rooms', views.RoomView.as_view(), name="rooms")
|
path('rooms', views.RoomView.as_view(), name="rooms"),
|
||||||
|
path('rooms/create', views.CreateRoomView.as_view(), name="create-room"),
|
||||||
|
path('rooms/get', views.GetRoom.as_view(), name="get-room"),
|
||||||
|
path('rooms/join', views.JoinRoom.as_view(), name="join-room"),
|
||||||
|
path('rooms/leave', views.LeaveRoom.as_view(), name='leave-room'),
|
||||||
|
path('rooms/update', views.UpdateRoomView.as_view(), name='update-room'),
|
||||||
|
path('rooms/user-details', views.UserDetails.as_view(), name='user-details')
|
||||||
]
|
]
|
||||||
|
|
120
api/views.py
120
api/views.py
|
@ -1,16 +1,124 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from rest_framework.generics import CreateAPIView
|
from django.http import JsonResponse
|
||||||
|
from rest_framework.views import APIView
|
||||||
|
from rest_framework.generics import ListAPIView
|
||||||
|
from rest_framework import status
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from .serializers import RoomSerializer
|
from .serializers import RoomSerializer, CreateRoomSerializer, UpdateRoomSerializer
|
||||||
from .models import Room
|
from .models import Room
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
class RoomView(CreateAPIView):
|
class RoomView(ListAPIView):
|
||||||
queryset = Room.objects.all()
|
queryset = Room.objects.all()
|
||||||
serializer_class = RoomSerializer
|
serializer_class = RoomSerializer
|
||||||
|
|
||||||
|
class GetRoom(APIView):
|
||||||
|
serializer_class = RoomSerializer
|
||||||
|
lookup_url_kwarg = 'code'
|
||||||
|
|
||||||
def get(self, request, format=None):
|
def get(self, request, format=None):
|
||||||
rooms = Room.objects.all()
|
code = request.GET.get(self.lookup_url_kwarg)
|
||||||
serializer = RoomSerializer(rooms, many=True)
|
if code != None:
|
||||||
return Response(serializer.data)
|
room = Room.objects.filter(code=code)
|
||||||
|
if room.exists():
|
||||||
|
data = RoomSerializer(room[0]).data
|
||||||
|
data['is_host'] = self.request.session.session_key == room[0].host
|
||||||
|
return Response(data, status=status.HTTP_200_OK)
|
||||||
|
else:
|
||||||
|
return Response({'Room Not Found': 'Invalid Room Code.'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
class JoinRoom(APIView):
|
||||||
|
lookup_url_kwarg = 'code'
|
||||||
|
|
||||||
|
def post(self, request, format=None):
|
||||||
|
if not self.request.session.exists(self.request.session.session_key):
|
||||||
|
self.request.session.create()
|
||||||
|
|
||||||
|
code = request.data.get(self.lookup_url_kwarg)
|
||||||
|
if code != None:
|
||||||
|
room_set = Room.objects.filter(code=code)
|
||||||
|
if room_set.exists():
|
||||||
|
room = room_set[0]
|
||||||
|
self.request.session['code'] = code
|
||||||
|
return Response({'message': 'Room Joined.'}, status=status.HTTP_200_OK)
|
||||||
|
else:
|
||||||
|
return Response({'Bad Request': 'Invalid room code'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
else:
|
||||||
|
return Response({'Bad Request': 'Invalid data, did not find code'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
class LeaveRoom(APIView):
|
||||||
|
def patch(self, request, format=None):
|
||||||
|
if 'code' in self.request.session:
|
||||||
|
self.request.session.pop('code')
|
||||||
|
host = self.request.session.session_key
|
||||||
|
room_set = Room.objects.filter(host=host)
|
||||||
|
if room_set.exists():
|
||||||
|
room = room_set[0]
|
||||||
|
room.delete()
|
||||||
|
|
||||||
|
return Response({'message': 'Success'}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
class CreateRoomView(APIView):
|
||||||
|
serializer_class = CreateRoomSerializer
|
||||||
|
|
||||||
|
def post(self, request, format=None):
|
||||||
|
if not self.request.session.exists(self.request.session.session_key):
|
||||||
|
self.request.session.create()
|
||||||
|
|
||||||
|
serializer = self.serializer_class(data=request.data)
|
||||||
|
if serializer.is_valid():
|
||||||
|
guest_can_pause = serializer.data.get("guest_can_pause")
|
||||||
|
votes_to_skip = serializer.data.get("votes_to_skip")
|
||||||
|
host = self.request.session.session_key
|
||||||
|
queryset = Room.objects.filter(host=host)
|
||||||
|
if queryset.exists():
|
||||||
|
room = queryset[0]
|
||||||
|
room.guest_can_pause = guest_can_pause
|
||||||
|
room.votes_to_skip = votes_to_skip
|
||||||
|
room.save(update_fields=['guest_can_pause', 'votes_to_skip'])
|
||||||
|
self.request.session['code'] = room.code
|
||||||
|
return Response(RoomSerializer(room).data, status=status.HTTP_200_OK)
|
||||||
|
else:
|
||||||
|
room = Room(host=host, guest_can_pause=guest_can_pause, votes_to_skip=votes_to_skip)
|
||||||
|
room.save()
|
||||||
|
self.request.session['code'] = room.code
|
||||||
|
return Response(RoomSerializer(room).data, status=status.HTTP_201_CREATED)
|
||||||
|
else:
|
||||||
|
return Response({'Bad Request': 'Invalid data...'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
class UpdateRoomView(APIView):
|
||||||
|
serializer_class = UpdateRoomSerializer
|
||||||
|
def patch(self, request, format=None):
|
||||||
|
serializer = self.serializer_class(data=request.data)
|
||||||
|
if serializer.is_valid():
|
||||||
|
guest_can_pause = serializer.data.get('guest_can_pause')
|
||||||
|
votes_to_skip = serializer.data.get('votes_to_skip')
|
||||||
|
code = serializer.data.get('code')
|
||||||
|
|
||||||
|
room_set = Room.objects.filter(code=code)
|
||||||
|
if room_set.exists():
|
||||||
|
room = room_set[0]
|
||||||
|
user_id = self.request.session.session_key
|
||||||
|
if room.host != user_id:
|
||||||
|
return Response({'message': 'You are not the host of this room.'}, status = status.HTTP_403_FORBIDDEN)
|
||||||
|
|
||||||
|
room.guest_can_pause = guest_can_pause
|
||||||
|
room.votes_to_skip = votes_to_skip
|
||||||
|
room.code = code
|
||||||
|
room.save(update_fields=['guest_can_pause', 'votes_to_skip'])
|
||||||
|
return Response(RoomSerializer(room).data, status=status.HTTP_200_OK)
|
||||||
|
else:
|
||||||
|
return Response({'Bad Request': 'No room was found'}, status=status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
|
return Response({'Bad Request': 'Invalid data'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
|
class UserDetails(APIView):
|
||||||
|
def get(self, request, format=None):
|
||||||
|
if not self.request.session.exists(self.request.session.session_key):
|
||||||
|
self.request.session.create()
|
||||||
|
data = {
|
||||||
|
'code': self.request.session.get('code')
|
||||||
|
}
|
||||||
|
return JsonResponse(data, status=status.HTTP_200_OK)
|
|
@ -31,6 +31,9 @@
|
||||||
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||||
"@material-ui/core": "^4.11.2",
|
"@material-ui/core": "^4.11.2",
|
||||||
"@material-ui/icons": "^4.11.2",
|
"@material-ui/icons": "^4.11.2",
|
||||||
|
"@material-ui/lab": "^4.0.0-alpha.57",
|
||||||
|
"eslint-config-react-app": "^6.0.0",
|
||||||
|
"eslint-plugin-jest": "^24.1.3",
|
||||||
"react-router-dom": "^5.2.0"
|
"react-router-dom": "^5.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,46 +1,22 @@
|
||||||
import React, { useEffect, useState } from "react";
|
import React from "react";
|
||||||
import Hello from "./components/Hello";
|
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
|
||||||
import { useFetch } from "./useFetch";
|
import CreateRoom from "./components/CreateRoom";
|
||||||
import { useForm } from "./useForm";
|
import Home from "./components/Home";
|
||||||
|
import JoinRoom from "./components/JoinRoom";
|
||||||
|
import Room from "./components/Room";
|
||||||
|
|
||||||
const App = (props) => {
|
const App = (props) => {
|
||||||
const [values, handleChange] = useForm({
|
|
||||||
firstName: "",
|
|
||||||
email: "",
|
|
||||||
password: "",
|
|
||||||
});
|
|
||||||
|
|
||||||
const [count, setCount] = useState(0);
|
|
||||||
const { data, loading } = useFetch(`http://numbersapi.com/${count}/math`);
|
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="center">
|
||||||
<div>{!data ? "loading..." : data}</div>
|
<Router>
|
||||||
<div>count = {count}</div>
|
<Switch>
|
||||||
<button onClick={() => setCount((c) => c + 1)}>increment</button>
|
<Route path="/" exact component={Home} />
|
||||||
{/* <button onClick={() => setShowHello(!showHello)}>show/hide</button> */}
|
<Route path="/join" component={JoinRoom} />
|
||||||
{/* {showHello && <Hello />} */}
|
<Route path="/create" component={CreateRoom} />
|
||||||
<div>
|
<Route path="/room/:code" component={Room} />
|
||||||
<input
|
</Switch>
|
||||||
name="email"
|
</Router>
|
||||||
placeholder="email"
|
|
||||||
value={values.email}
|
|
||||||
onChange={handleChange}
|
|
||||||
/>
|
|
||||||
<input
|
|
||||||
name="firstName"
|
|
||||||
placeholder="first name"
|
|
||||||
value={values.firstName}
|
|
||||||
onChange={handleChange}
|
|
||||||
/>
|
|
||||||
<input
|
|
||||||
type="password"
|
|
||||||
placeholder="password"
|
|
||||||
name="password"
|
|
||||||
value={values.password}
|
|
||||||
onChange={handleChange}
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
164
frontend/src/components/CreateRoom.js
Normal file
164
frontend/src/components/CreateRoom.js
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
import React, { Component, useState } from "react";
|
||||||
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
|
import {
|
||||||
|
Button,
|
||||||
|
Grid,
|
||||||
|
Typography,
|
||||||
|
TextField,
|
||||||
|
FormHelperText,
|
||||||
|
FormControl,
|
||||||
|
Radio,
|
||||||
|
RadioGroup,
|
||||||
|
FormLabel,
|
||||||
|
FormControlLabel,
|
||||||
|
Collapse,
|
||||||
|
} from "@material-ui/core";
|
||||||
|
|
||||||
|
import { Alert } from "@material-ui/lab";
|
||||||
|
|
||||||
|
const DEFAULT_VOTES = 2;
|
||||||
|
|
||||||
|
const CreateRoom = (props) => {
|
||||||
|
const [guestCanPause, setGuestCanPause] = useState(
|
||||||
|
props.guestCanPause || true
|
||||||
|
);
|
||||||
|
|
||||||
|
const [votesToSkip, setVotesToSkip] = useState(
|
||||||
|
props.votesToSkip || DEFAULT_VOTES
|
||||||
|
);
|
||||||
|
|
||||||
|
const [error, setError] = useState("");
|
||||||
|
const [success, setSuccess] = useState("");
|
||||||
|
|
||||||
|
const onSubmitCreate = () => {
|
||||||
|
const requestOptions = {
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({
|
||||||
|
votes_to_skip: votesToSkip,
|
||||||
|
guest_can_pause: guestCanPause,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
fetch("/api/rooms/create", requestOptions)
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((data) => props.history.push(`/room/${data.code}`));
|
||||||
|
};
|
||||||
|
|
||||||
|
const onSubmitUpdate = () => {
|
||||||
|
const requestOptions = {
|
||||||
|
method: "PATCH",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({
|
||||||
|
votes_to_skip: votesToSkip,
|
||||||
|
guest_can_pause: guestCanPause,
|
||||||
|
code: props.code,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
fetch("/api/rooms/update", requestOptions).then((response) => {
|
||||||
|
if (response.ok) {
|
||||||
|
setSuccess("Room updated!");
|
||||||
|
} else {
|
||||||
|
setError("Error updating room.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
props.updateCallback();
|
||||||
|
};
|
||||||
|
|
||||||
|
const title = props.update ? "Update Room" : "Create a Room";
|
||||||
|
|
||||||
|
const createButton = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Button color="primary" variant="contained" onClick={onSubmitCreate}>
|
||||||
|
Create A room
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Button color="secondary" variant="contained" to="/" component={Link}>
|
||||||
|
Back
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const updateButton = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Button color="primary" variant="contained" onClick={onSubmitUpdate}>
|
||||||
|
Update room~
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid container spacing={1}>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Collapse in={error != "" || success != ""}>
|
||||||
|
<Alert>{success != "" ? success : error}</Alert>
|
||||||
|
</Collapse>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography component="h4" variant="h4">
|
||||||
|
{title}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<FormControl component="fieldset">
|
||||||
|
<FormHelperText>
|
||||||
|
<div align="center">Guest Control of Playback State</div>
|
||||||
|
</FormHelperText>
|
||||||
|
<RadioGroup
|
||||||
|
row
|
||||||
|
defaultValue={props.guestCanPause.toString()}
|
||||||
|
onChange={(e) => {
|
||||||
|
setGuestCanPause(e.target.value === "true" ? true : false);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<FormControlLabel
|
||||||
|
value="true"
|
||||||
|
control={<Radio color="primary" />}
|
||||||
|
label="Play/Pause"
|
||||||
|
labelPlacement="bottom"
|
||||||
|
/>
|
||||||
|
<FormControlLabel
|
||||||
|
value="false"
|
||||||
|
control={<Radio color="secondary" />}
|
||||||
|
label="No Control"
|
||||||
|
labelPlacement="bottom"
|
||||||
|
/>
|
||||||
|
</RadioGroup>
|
||||||
|
</FormControl>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<FormControl>
|
||||||
|
<TextField
|
||||||
|
required={true}
|
||||||
|
type="number"
|
||||||
|
defaultValue={props.votesToSkip}
|
||||||
|
inputProps={{
|
||||||
|
min: 1,
|
||||||
|
style: { textAlign: "center" },
|
||||||
|
}}
|
||||||
|
onChange={(e) => {
|
||||||
|
setVotesToSkip(e.target.value);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<FormHelperText>
|
||||||
|
<div align="center">Votes required to skip song</div>
|
||||||
|
</FormHelperText>
|
||||||
|
</FormControl>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
{props.update ? updateButton() : createButton()}
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CreateRoom;
|
|
@ -1,15 +0,0 @@
|
||||||
import React, { useEffect } from "react";
|
|
||||||
|
|
||||||
function Hello(props) {
|
|
||||||
useEffect(() => {
|
|
||||||
console.log("bruh");
|
|
||||||
|
|
||||||
return () => {
|
|
||||||
console.log("unmounted!");
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return <div>Hey!</div>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Hello;
|
|
41
frontend/src/components/Home.js
Normal file
41
frontend/src/components/Home.js
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import React, { useEffect, useState } from "react";
|
||||||
|
import { Link, Redirect } from "react-router-dom";
|
||||||
|
import { Grid, Button, ButtonGroup, Typography } from "@material-ui/core";
|
||||||
|
|
||||||
|
const Home = (props) => {
|
||||||
|
const [code, setCode] = useState();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
fetch("/api/rooms/user-details")
|
||||||
|
.then((response) => response.json())
|
||||||
|
.then((data) => {
|
||||||
|
setCode(data.code);
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const homepage = (
|
||||||
|
<>
|
||||||
|
<Grid container spacing={3}>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography variant="h3" compact="h3">
|
||||||
|
House Party
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<ButtonGroup disableElevation variant="contained" color="primary">
|
||||||
|
<Button color="primary" to="/join" component={Link}>
|
||||||
|
Join a room
|
||||||
|
</Button>
|
||||||
|
<Button color="secondary" to="/create" component={Link}>
|
||||||
|
Create a room
|
||||||
|
</Button>
|
||||||
|
</ButtonGroup>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
|
||||||
|
return code ? <Redirect to={`/room/${code}`} /> : homepage;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Home;
|
66
frontend/src/components/JoinRoom.js
Normal file
66
frontend/src/components/JoinRoom.js
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
import React, { useState } from "react";
|
||||||
|
import { Link } from "react-router-dom";
|
||||||
|
import { TextField, Button, Grid, Typography } from "@material-ui/core";
|
||||||
|
|
||||||
|
const JoinRoom = (props) => {
|
||||||
|
const [code, setCode] = useState();
|
||||||
|
const [error, setError] = useState();
|
||||||
|
|
||||||
|
const onSubmit = () => {
|
||||||
|
const requestOptions = {
|
||||||
|
method: "POST",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
body: JSON.stringify({
|
||||||
|
code: code,
|
||||||
|
}),
|
||||||
|
};
|
||||||
|
|
||||||
|
fetch("/api/rooms/join", requestOptions)
|
||||||
|
.then((response) => {
|
||||||
|
if (response.ok) {
|
||||||
|
props.history.push(`/room/${code}`);
|
||||||
|
} else {
|
||||||
|
setCode("");
|
||||||
|
setError("Room not found.");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid container spacing={1}>
|
||||||
|
<Grid item align="center" xs={12}>
|
||||||
|
<Typography variant="h4" component="h4">
|
||||||
|
Join a room
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item align="center" xs={12}>
|
||||||
|
<TextField
|
||||||
|
error={error}
|
||||||
|
label="Code"
|
||||||
|
placeholder="Enter a room code"
|
||||||
|
value={code}
|
||||||
|
helperText={error}
|
||||||
|
variant="outlined"
|
||||||
|
onChange={(e) => {
|
||||||
|
setCode(e.target.value);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
<Grid item align="center" xs={12}>
|
||||||
|
<Button variant="contained" color="primary" onClick={onSubmit}>
|
||||||
|
Join Room
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
<Grid item align="center" xs={12}>
|
||||||
|
<Button variant="contained" color="secondary" to="/" component={Link}>
|
||||||
|
Back
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default JoinRoom;
|
118
frontend/src/components/Room.js
Normal file
118
frontend/src/components/Room.js
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
import React, { useEffect, useState } from "react";
|
||||||
|
import { Grid, Button, Typography } from "@material-ui/core";
|
||||||
|
import "./CreateRoom";
|
||||||
|
import CreateRoom from "./CreateRoom";
|
||||||
|
|
||||||
|
const Room = (props) => {
|
||||||
|
const [votesToSkip, setVotesToSkip] = useState(2);
|
||||||
|
const [guestCanPause, setGuestCanPause] = useState(false);
|
||||||
|
const [isHost, setIsHost] = useState(false);
|
||||||
|
const [showSettings, setShowSettings] = useState(false);
|
||||||
|
const code = props.match.params.code;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getRoom();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const getRoom = () => {
|
||||||
|
fetch(`/api/rooms/get?code=${code}`)
|
||||||
|
.then((response) => {
|
||||||
|
if (response.ok) {
|
||||||
|
return response.json();
|
||||||
|
} else {
|
||||||
|
props.history.push("/");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((data) => {
|
||||||
|
setVotesToSkip(data.votes_to_skip);
|
||||||
|
setGuestCanPause(data.guest_can_pause);
|
||||||
|
setIsHost(data.is_host);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const leaveRoom = () => {
|
||||||
|
const requestOptions = {
|
||||||
|
method: "PATCH",
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
};
|
||||||
|
fetch("/api/rooms/leave", requestOptions).then((response) => {
|
||||||
|
props.history.push("/");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const settingsButton = () => {
|
||||||
|
return (
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Button
|
||||||
|
variant="contained"
|
||||||
|
color="primary"
|
||||||
|
onClick={() => setShowSettings(true)}
|
||||||
|
>
|
||||||
|
Settings
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const settings = () => {
|
||||||
|
return (
|
||||||
|
<Grid container spacing={1}>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<CreateRoom
|
||||||
|
update={true}
|
||||||
|
votesToSkip={votesToSkip}
|
||||||
|
guestCanPause={guestCanPause}
|
||||||
|
code={code}
|
||||||
|
updateCallback={getRoom}
|
||||||
|
/>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Button
|
||||||
|
variant="contained"
|
||||||
|
color="secondary"
|
||||||
|
onClick={() => setShowSettings(false)}
|
||||||
|
>
|
||||||
|
Close
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (showSettings) return settings();
|
||||||
|
else
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Grid container spacing={1}>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography variant="h2" component="h4">
|
||||||
|
Code: {code}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography variant="h4" component="h4">
|
||||||
|
Votes needed to skip: {votesToSkip}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography variant="h4" component="h4">
|
||||||
|
Guest can pause: {guestCanPause.toString()}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12} align="center">
|
||||||
|
<Typography variant="h4" component="h4">
|
||||||
|
Is Host: {isHost.toString()}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
{isHost ? settingsButton() : null}
|
||||||
|
<Grid item align="center" xs={12}>
|
||||||
|
<Button variant="contained" color="secondary" onClick={leaveRoom}>
|
||||||
|
Leave room
|
||||||
|
</Button>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Room;
|
|
@ -1,15 +0,0 @@
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
|
|
||||||
export const useFetch = (url) => {
|
|
||||||
const [state, setState] = useState({ data: null, loading: true });
|
|
||||||
useEffect(() => {
|
|
||||||
setState((state) => ({ data: state.data, loading: true }));
|
|
||||||
fetch(url)
|
|
||||||
.then((x) => x.text())
|
|
||||||
.then((y) => {
|
|
||||||
setState({ data: y, loading: false });
|
|
||||||
});
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return state;
|
|
||||||
};
|
|
|
@ -1,15 +0,0 @@
|
||||||
import { useState } from "react";
|
|
||||||
|
|
||||||
export const useForm = (initialValues) => {
|
|
||||||
const [values, setValues] = useState(initialValues);
|
|
||||||
|
|
||||||
return [
|
|
||||||
values,
|
|
||||||
(e) => {
|
|
||||||
setValues({
|
|
||||||
...values,
|
|
||||||
[e.target.name]: e.target.value,
|
|
||||||
});
|
|
||||||
},
|
|
||||||
];
|
|
||||||
};
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#root {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#app {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -6,22 +6,34 @@
|
||||||
!*** ./src/index.js ***!
|
!*** ./src/index.js ***!
|
||||||
\**********************/
|
\**********************/
|
||||||
|
|
||||||
/*!************************!*\
|
/*!********************************!*\
|
||||||
!*** ./src/useForm.js ***!
|
!*** ./src/components/Home.js ***!
|
||||||
\************************/
|
\********************************/
|
||||||
|
|
||||||
/*!*************************!*\
|
/*!********************************!*\
|
||||||
!*** ./src/useFetch.js ***!
|
!*** ./src/components/Room.js ***!
|
||||||
\*************************/
|
\********************************/
|
||||||
|
|
||||||
/*!*********************************!*\
|
/*!************************************!*\
|
||||||
!*** ./src/components/Hello.js ***!
|
!*** ./src/components/JoinRoom.js ***!
|
||||||
\*********************************/
|
\************************************/
|
||||||
|
|
||||||
/*!*************************************!*\
|
/*!*************************************!*\
|
||||||
!*** ./node_modules/react/index.js ***!
|
!*** ./node_modules/react/index.js ***!
|
||||||
\*************************************/
|
\*************************************/
|
||||||
|
|
||||||
|
/*!**************************************!*\
|
||||||
|
!*** ./src/components/CreateRoom.js ***!
|
||||||
|
\**************************************/
|
||||||
|
|
||||||
|
/*!***************************************!*\
|
||||||
|
!*** ./node_modules/isarray/index.js ***!
|
||||||
|
\***************************************/
|
||||||
|
|
||||||
|
/*!****************************************!*\
|
||||||
|
!*** ./node_modules/react-is/index.js ***!
|
||||||
|
\****************************************/
|
||||||
|
|
||||||
/*!*****************************************!*\
|
/*!*****************************************!*\
|
||||||
!*** ./node_modules/react-dom/index.js ***!
|
!*** ./node_modules/react-dom/index.js ***!
|
||||||
\*****************************************/
|
\*****************************************/
|
||||||
|
@ -30,14 +42,246 @@
|
||||||
!*** ./node_modules/scheduler/index.js ***!
|
!*** ./node_modules/scheduler/index.js ***!
|
||||||
\*****************************************/
|
\*****************************************/
|
||||||
|
|
||||||
|
/*!******************************************!*\
|
||||||
|
!*** ./node_modules/clsx/dist/clsx.m.js ***!
|
||||||
|
\******************************************/
|
||||||
|
|
||||||
|
/*!******************************************!*\
|
||||||
|
!*** ./node_modules/jss/dist/jss.esm.js ***!
|
||||||
|
\******************************************/
|
||||||
|
|
||||||
|
/*!******************************************!*\
|
||||||
|
!*** ./node_modules/prop-types/index.js ***!
|
||||||
|
\******************************************/
|
||||||
|
|
||||||
|
/*!*********************************************!*\
|
||||||
|
!*** ./node_modules/history/esm/history.js ***!
|
||||||
|
\*********************************************/
|
||||||
|
|
||||||
/*!*********************************************!*\
|
/*!*********************************************!*\
|
||||||
!*** ./node_modules/object-assign/index.js ***!
|
!*** ./node_modules/object-assign/index.js ***!
|
||||||
\*********************************************/
|
\*********************************************/
|
||||||
|
|
||||||
|
/*!**********************************************!*\
|
||||||
|
!*** ./node_modules/path-to-regexp/index.js ***!
|
||||||
|
\**********************************************/
|
||||||
|
|
||||||
|
/*!***************************************************!*\
|
||||||
|
!*** ./node_modules/is-in-browser/dist/module.js ***!
|
||||||
|
\***************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************!*\
|
||||||
|
!*** ./node_modules/hyphenate-style-name/index.js ***!
|
||||||
|
\****************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************!*\
|
||||||
|
!*** ./node_modules/value-equal/esm/value-equal.js ***!
|
||||||
|
\*****************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/system/esm/merge.js ***!
|
||||||
|
\*******************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************!*\
|
||||||
|
!*** ./node_modules/react-router/esm/react-router.js ***!
|
||||||
|
\*******************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************!*\
|
||||||
|
!*** ./node_modules/css-vendor/dist/css-vendor.esm.js ***!
|
||||||
|
\********************************************************/
|
||||||
|
|
||||||
/*!********************************************************!*\
|
/*!********************************************************!*\
|
||||||
!*** ./node_modules/react/cjs/react.production.min.js ***!
|
!*** ./node_modules/react/cjs/react.production.min.js ***!
|
||||||
\********************************************************/
|
\********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Grid/Grid.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Grow/Grow.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/List/List.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Menu/Menu.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/system/esm/memoize.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/system/esm/spacing.js ***!
|
||||||
|
\*********************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/red.js ***!
|
||||||
|
\**********************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/Alert/Alert.js ***!
|
||||||
|
\**********************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/utils/esm/deepmerge.js ***!
|
||||||
|
\**********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Input/Input.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Modal/Modal.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Paper/Paper.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Radio/Radio.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/blue.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/grey.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/pink.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************!*\
|
||||||
|
!*** ./node_modules/react-transition-group/esm/config.js ***!
|
||||||
|
\***********************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/green.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/shape.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/setRef.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************!*\
|
||||||
|
!*** ./node_modules/tiny-warning/dist/tiny-warning.esm.js ***!
|
||||||
|
\************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Button/Button.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Portal/Portal.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Select/Select.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/common.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/indigo.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/colors/orange.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/zIndex.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/system/esm/breakpoints.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/prop-types/factoryWithThrowingShims.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************!*\
|
||||||
|
!*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
|
||||||
|
\*************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/shadows.js ***!
|
||||||
|
\**************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/debounce.js ***!
|
||||||
|
\**************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************!*\
|
||||||
|
!*** ./node_modules/react-is/cjs/react-is.production.min.js ***!
|
||||||
|
\**************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/InputBase/utils.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Popover/Popover.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/useTheme.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/react-router-dom/esm/react-router-dom.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/react-transition-group/esm/Transition.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************!*\
|
||||||
|
!*** ./node_modules/resolve-pathname/esm/resolve-pathname.js ***!
|
||||||
|
\***************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/List/ListContext.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/capitalize.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/useForkRef.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
|
||||||
/*!****************************************************************!*\
|
/*!****************************************************************!*\
|
||||||
!*** ./node_modules/react-dom/cjs/react-dom.production.min.js ***!
|
!*** ./node_modules/react-dom/cjs/react-dom.production.min.js ***!
|
||||||
\****************************************************************/
|
\****************************************************************/
|
||||||
|
@ -45,3 +289,439 @@
|
||||||
/*!****************************************************************!*\
|
/*!****************************************************************!*\
|
||||||
!*** ./node_modules/scheduler/cjs/scheduler.production.min.js ***!
|
!*** ./node_modules/scheduler/cjs/scheduler.production.min.js ***!
|
||||||
\****************************************************************/
|
\****************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************!*\
|
||||||
|
!*** ./node_modules/tiny-invariant/dist/tiny-invariant.esm.js ***!
|
||||||
|
\****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/ButtonBase/Ripple.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Collapse/Collapse.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/MenuList/MenuList.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/withStyles.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/transitions/utils.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/ownerWindow.js ***!
|
||||||
|
\*****************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Modal/ModalManager.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Select/SelectInput.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/transitions.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/isMuiElement.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./node_modules/mini-create-react-context/dist/esm/index.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/InputBase/InputBase.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/TextField/TextField.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/internal/SwitchBase.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createMixins.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/defaultTheme.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/createSvgIcon.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/ownerDocument.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/useControlled.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js ***!
|
||||||
|
\*******************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createPalette.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createSpacing.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/unstable_useId.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************!*\
|
||||||
|
!*** ./node_modules/react-transition-group/esm/TransitionGroup.js ***!
|
||||||
|
\********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/IconButton/IconButton.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Typography/Typography.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createMuiTheme.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/jssPreset/jssPreset.js ***!
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/useEventCallback.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/ThemeProvider/nested.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js ***!
|
||||||
|
\**********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormControl/FormControl.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/colorManipulator.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createTypography.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/node_modules/react-is/index.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/internal/svg-icons/Close.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/useTheme/ThemeContext.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/withStyles/withStyles.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************!*\
|
||||||
|
!*** ./node_modules/react-transition-group/esm/utils/ChildMapping.js ***!
|
||||||
|
\***********************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js ***!
|
||||||
|
\************************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/styles/createBreakpoints.js ***!
|
||||||
|
\************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
|
||||||
|
\*************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js ***!
|
||||||
|
\*************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/makeStyles/indexCounter.js ***!
|
||||||
|
\*************************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormControl/useFormControl.js ***!
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/*!**************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/makeStyles/multiKeyStore.js ***!
|
||||||
|
\**************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js ***!
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js ***!
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js ***!
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************!*\
|
||||||
|
!*** ./node_modules/react-transition-group/esm/TransitionGroupContext.js ***!
|
||||||
|
\***************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***!
|
||||||
|
\****************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormControl/formControlState.js ***!
|
||||||
|
\****************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js ***!
|
||||||
|
\****************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js ***!
|
||||||
|
\****************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/getStylesCreator/noopTheme.js ***!
|
||||||
|
\****************************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js ***!
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
/*!*****************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js ***!
|
||||||
|
\*****************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/internal/svg-icons/ErrorOutline.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/internal/svg-icons/InfoOutlined.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!******************************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js ***!
|
||||||
|
\******************************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
|
||||||
|
\*******************************************************************************/
|
||||||
|
|
||||||
|
/*!*******************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/StylesProvider/StylesProvider.js ***!
|
||||||
|
\*******************************************************************************/
|
||||||
|
|
||||||
|
/*!********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js ***!
|
||||||
|
\********************************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
|
||||||
|
\*********************************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/FormControlLabel/FormControlLabel.js ***!
|
||||||
|
\*********************************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js ***!
|
||||||
|
\*********************************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/internal/svg-icons/SuccessOutlined.js ***!
|
||||||
|
\*********************************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************************!*\
|
||||||
|
!*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
|
||||||
|
\**********************************************************************************/
|
||||||
|
|
||||||
|
/*!**********************************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js ***!
|
||||||
|
\**********************************************************************************/
|
||||||
|
|
||||||
|
/*!***********************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/getStylesCreator/getStylesCreator.js ***!
|
||||||
|
\***********************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js ***!
|
||||||
|
\*************************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js ***!
|
||||||
|
\*************************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js ***!
|
||||||
|
\***************************************************************************************/
|
||||||
|
|
||||||
|
/*!***************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/lab/esm/internal/svg-icons/ReportProblemOutlined.js ***!
|
||||||
|
\***************************************************************************************/
|
||||||
|
|
||||||
|
/*!****************************************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js ***!
|
||||||
|
\****************************************************************************************/
|
||||||
|
|
||||||
|
/*!*********************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/core/node_modules/react-is/cjs/react-is.production.min.js ***!
|
||||||
|
\*********************************************************************************************/
|
||||||
|
|
||||||
|
/*!************************************************************************************************!*\
|
||||||
|
!*** ./node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js ***!
|
||||||
|
\************************************************************************************************/
|
||||||
|
|
||||||
|
/*!*************************************************************************************************!*\
|
||||||
|
!*** ./node_modules/@material-ui/styles/esm/createGenerateClassName/createGenerateClassName.js ***!
|
||||||
|
\*************************************************************************************************/
|
||||||
|
|
|
@ -2,5 +2,8 @@ from django.urls import path
|
||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.index)
|
path('', views.index),
|
||||||
|
path('create/', views.index),
|
||||||
|
path('join/', views.index),
|
||||||
|
path('room/<str:code>', views.index)
|
||||||
]
|
]
|
||||||
|
|
|
@ -2,5 +2,5 @@ from django.shortcuts import render
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def index(request):
|
def index(request, *args, **kwargs):
|
||||||
return render(request, 'frontend/index.html')
|
return render(request, 'frontend/index.html')
|
|
@ -929,6 +929,17 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.4.4"
|
"@babel/runtime" "^7.4.4"
|
||||||
|
|
||||||
|
"@material-ui/lab@^4.0.0-alpha.57":
|
||||||
|
version "4.0.0-alpha.57"
|
||||||
|
resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.57.tgz#e8961bcf6449e8a8dabe84f2700daacfcafbf83a"
|
||||||
|
integrity sha512-qo/IuIQOmEKtzmRD2E4Aa6DB4A87kmY6h0uYhjUmrrgmEAgbbw9etXpWPVXuRK6AGIQCjFzV6WO2i21m1R4FCw==
|
||||||
|
dependencies:
|
||||||
|
"@babel/runtime" "^7.4.4"
|
||||||
|
"@material-ui/utils" "^4.11.2"
|
||||||
|
clsx "^1.0.4"
|
||||||
|
prop-types "^15.7.2"
|
||||||
|
react-is "^16.8.0 || ^17.0.0"
|
||||||
|
|
||||||
"@material-ui/styles@^4.11.2":
|
"@material-ui/styles@^4.11.2":
|
||||||
version "4.11.2"
|
version "4.11.2"
|
||||||
resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.2.tgz#e70558be3f41719e8c0d63c7a3c9ae163fdc84cb"
|
resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.2.tgz#e70558be3f41719e8c0d63c7a3c9ae163fdc84cb"
|
||||||
|
@ -975,6 +986,27 @@
|
||||||
prop-types "^15.7.2"
|
prop-types "^15.7.2"
|
||||||
react-is "^16.8.0 || ^17.0.0"
|
react-is "^16.8.0 || ^17.0.0"
|
||||||
|
|
||||||
|
"@nodelib/fs.scandir@2.1.4":
|
||||||
|
version "2.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69"
|
||||||
|
integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.stat" "2.0.4"
|
||||||
|
run-parallel "^1.1.9"
|
||||||
|
|
||||||
|
"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2":
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655"
|
||||||
|
integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==
|
||||||
|
|
||||||
|
"@nodelib/fs.walk@^1.2.3":
|
||||||
|
version "1.2.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063"
|
||||||
|
integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.scandir" "2.1.4"
|
||||||
|
fastq "^1.6.0"
|
||||||
|
|
||||||
"@types/eslint-scope@^3.7.0":
|
"@types/eslint-scope@^3.7.0":
|
||||||
version "3.7.0"
|
version "3.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86"
|
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86"
|
||||||
|
@ -996,7 +1028,7 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
|
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884"
|
||||||
integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
|
integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==
|
||||||
|
|
||||||
"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
|
"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
|
||||||
version "7.0.6"
|
version "7.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
|
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0"
|
||||||
integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
|
integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==
|
||||||
|
@ -1026,6 +1058,53 @@
|
||||||
"@types/prop-types" "*"
|
"@types/prop-types" "*"
|
||||||
csstype "^3.0.2"
|
csstype "^3.0.2"
|
||||||
|
|
||||||
|
"@typescript-eslint/experimental-utils@^4.0.1":
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz#2dad3535b878c25c7424e40bfa79d899f3f485bc"
|
||||||
|
integrity sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==
|
||||||
|
dependencies:
|
||||||
|
"@types/json-schema" "^7.0.3"
|
||||||
|
"@typescript-eslint/scope-manager" "4.11.1"
|
||||||
|
"@typescript-eslint/types" "4.11.1"
|
||||||
|
"@typescript-eslint/typescript-estree" "4.11.1"
|
||||||
|
eslint-scope "^5.0.0"
|
||||||
|
eslint-utils "^2.0.0"
|
||||||
|
|
||||||
|
"@typescript-eslint/scope-manager@4.11.1":
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz#72dc2b60b0029ab0888479b12bf83034920b4b69"
|
||||||
|
integrity sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "4.11.1"
|
||||||
|
"@typescript-eslint/visitor-keys" "4.11.1"
|
||||||
|
|
||||||
|
"@typescript-eslint/types@4.11.1":
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.11.1.tgz#3ba30c965963ef9f8ced5a29938dd0c465bd3e05"
|
||||||
|
integrity sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA==
|
||||||
|
|
||||||
|
"@typescript-eslint/typescript-estree@4.11.1":
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz#a4416b4a65872a48773b9e47afabdf7519eb10bc"
|
||||||
|
integrity sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "4.11.1"
|
||||||
|
"@typescript-eslint/visitor-keys" "4.11.1"
|
||||||
|
debug "^4.1.1"
|
||||||
|
globby "^11.0.1"
|
||||||
|
is-glob "^4.0.1"
|
||||||
|
lodash "^4.17.15"
|
||||||
|
semver "^7.3.2"
|
||||||
|
tsutils "^3.17.1"
|
||||||
|
|
||||||
|
"@typescript-eslint/visitor-keys@4.11.1":
|
||||||
|
version "4.11.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz#4c050a4c1f7239786e2dd4e69691436143024e05"
|
||||||
|
integrity sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/types" "4.11.1"
|
||||||
|
eslint-visitor-keys "^2.0.0"
|
||||||
|
|
||||||
"@webassemblyjs/ast@1.9.1":
|
"@webassemblyjs/ast@1.9.1":
|
||||||
version "1.9.1"
|
version "1.9.1"
|
||||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.1.tgz#76c6937716d68bf1484c15139f5ed30b9abc8bb4"
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.1.tgz#76c6937716d68bf1484c15139f5ed30b9abc8bb4"
|
||||||
|
@ -1259,6 +1338,11 @@ array-back@^4.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90"
|
resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90"
|
||||||
integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==
|
integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==
|
||||||
|
|
||||||
|
array-union@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
||||||
|
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
||||||
|
|
||||||
astral-regex@^2.0.0:
|
astral-regex@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||||
|
@ -1299,6 +1383,13 @@ brace-expansion@^1.1.7:
|
||||||
balanced-match "^1.0.0"
|
balanced-match "^1.0.0"
|
||||||
concat-map "0.0.1"
|
concat-map "0.0.1"
|
||||||
|
|
||||||
|
braces@^3.0.1:
|
||||||
|
version "3.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||||
|
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||||
|
dependencies:
|
||||||
|
fill-range "^7.0.1"
|
||||||
|
|
||||||
browserslist@^4.14.5, browserslist@^4.15.0:
|
browserslist@^4.14.5, browserslist@^4.15.0:
|
||||||
version "4.16.0"
|
version "4.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b"
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.0.tgz#410277627500be3cb28a1bfe037586fbedf9488b"
|
||||||
|
@ -1421,6 +1512,11 @@ concat-map@0.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||||
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||||
|
|
||||||
|
confusing-browser-globals@^1.0.10:
|
||||||
|
version "1.0.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59"
|
||||||
|
integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==
|
||||||
|
|
||||||
convert-source-map@^1.7.0:
|
convert-source-map@^1.7.0:
|
||||||
version "1.7.0"
|
version "1.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
|
||||||
|
@ -1487,6 +1583,13 @@ define-properties@^1.1.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
object-keys "^1.0.12"
|
object-keys "^1.0.12"
|
||||||
|
|
||||||
|
dir-glob@^3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
|
||||||
|
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
|
||||||
|
dependencies:
|
||||||
|
path-type "^4.0.0"
|
||||||
|
|
||||||
doctrine@^3.0.0:
|
doctrine@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
||||||
|
@ -1554,7 +1657,21 @@ escape-string-regexp@^1.0.5:
|
||||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||||
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
|
||||||
|
|
||||||
eslint-scope@^5.1.1:
|
eslint-config-react-app@^6.0.0:
|
||||||
|
version "6.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e"
|
||||||
|
integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==
|
||||||
|
dependencies:
|
||||||
|
confusing-browser-globals "^1.0.10"
|
||||||
|
|
||||||
|
eslint-plugin-jest@^24.1.3:
|
||||||
|
version "24.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz#fa3db864f06c5623ff43485ca6c0e8fc5fe8ba0c"
|
||||||
|
integrity sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg==
|
||||||
|
dependencies:
|
||||||
|
"@typescript-eslint/experimental-utils" "^4.0.1"
|
||||||
|
|
||||||
|
eslint-scope@^5.0.0, eslint-scope@^5.1.1:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
||||||
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
||||||
|
@ -1562,7 +1679,7 @@ eslint-scope@^5.1.1:
|
||||||
esrecurse "^4.3.0"
|
esrecurse "^4.3.0"
|
||||||
estraverse "^4.1.1"
|
estraverse "^4.1.1"
|
||||||
|
|
||||||
eslint-utils@^2.1.0:
|
eslint-utils@^2.0.0, eslint-utils@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
|
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
|
||||||
integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
|
integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
|
||||||
|
@ -1690,6 +1807,18 @@ fast-deep-equal@^3.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
||||||
|
|
||||||
|
fast-glob@^3.1.1:
|
||||||
|
version "3.2.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
|
||||||
|
integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
|
||||||
|
dependencies:
|
||||||
|
"@nodelib/fs.stat" "^2.0.2"
|
||||||
|
"@nodelib/fs.walk" "^1.2.3"
|
||||||
|
glob-parent "^5.1.0"
|
||||||
|
merge2 "^1.3.0"
|
||||||
|
micromatch "^4.0.2"
|
||||||
|
picomatch "^2.2.1"
|
||||||
|
|
||||||
fast-json-stable-stringify@^2.0.0:
|
fast-json-stable-stringify@^2.0.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||||
|
@ -1700,6 +1829,13 @@ fast-levenshtein@^2.0.6:
|
||||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||||
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
|
||||||
|
|
||||||
|
fastq@^1.6.0:
|
||||||
|
version "1.10.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.0.tgz#74dbefccade964932cdf500473ef302719c652bb"
|
||||||
|
integrity sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==
|
||||||
|
dependencies:
|
||||||
|
reusify "^1.0.4"
|
||||||
|
|
||||||
file-entry-cache@^6.0.0:
|
file-entry-cache@^6.0.0:
|
||||||
version "6.0.0"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
|
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz#7921a89c391c6d93efec2169ac6bf300c527ea0a"
|
||||||
|
@ -1707,6 +1843,13 @@ file-entry-cache@^6.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
flat-cache "^3.0.4"
|
flat-cache "^3.0.4"
|
||||||
|
|
||||||
|
fill-range@^7.0.1:
|
||||||
|
version "7.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||||
|
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||||
|
dependencies:
|
||||||
|
to-regex-range "^5.0.1"
|
||||||
|
|
||||||
find-cache-dir@^3.3.1:
|
find-cache-dir@^3.3.1:
|
||||||
version "3.3.1"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
|
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
|
||||||
|
@ -1781,7 +1924,7 @@ get-stream@^5.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
pump "^3.0.0"
|
pump "^3.0.0"
|
||||||
|
|
||||||
glob-parent@^5.0.0:
|
glob-parent@^5.0.0, glob-parent@^5.1.0:
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
|
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
|
||||||
integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
|
integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
|
||||||
|
@ -1817,6 +1960,18 @@ globals@^12.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
type-fest "^0.8.1"
|
type-fest "^0.8.1"
|
||||||
|
|
||||||
|
globby@^11.0.1:
|
||||||
|
version "11.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
|
||||||
|
integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
|
||||||
|
dependencies:
|
||||||
|
array-union "^2.1.0"
|
||||||
|
dir-glob "^3.0.1"
|
||||||
|
fast-glob "^3.1.1"
|
||||||
|
ignore "^5.1.4"
|
||||||
|
merge2 "^1.3.0"
|
||||||
|
slash "^3.0.0"
|
||||||
|
|
||||||
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
||||||
version "4.2.4"
|
version "4.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
|
||||||
|
@ -1878,6 +2033,11 @@ ignore@^4.0.6:
|
||||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
|
||||||
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
|
||||||
|
|
||||||
|
ignore@^5.1.4:
|
||||||
|
version "5.1.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
|
||||||
|
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
|
||||||
|
|
||||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||||
version "3.3.0"
|
version "3.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||||
|
@ -1953,6 +2113,11 @@ is-in-browser@^1.0.2, is-in-browser@^1.1.3:
|
||||||
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
|
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
|
||||||
integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
|
integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=
|
||||||
|
|
||||||
|
is-number@^7.0.0:
|
||||||
|
version "7.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||||
|
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||||
|
|
||||||
is-stream@^2.0.0:
|
is-stream@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
|
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
|
||||||
|
@ -2172,6 +2337,19 @@ merge-stream@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||||
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
||||||
|
|
||||||
|
merge2@^1.3.0:
|
||||||
|
version "1.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
|
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
|
||||||
|
|
||||||
|
micromatch@^4.0.2:
|
||||||
|
version "4.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
|
||||||
|
integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
|
||||||
|
dependencies:
|
||||||
|
braces "^3.0.1"
|
||||||
|
picomatch "^2.0.5"
|
||||||
|
|
||||||
mime-db@1.44.0:
|
mime-db@1.44.0:
|
||||||
version "1.44.0"
|
version "1.44.0"
|
||||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
|
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
|
||||||
|
@ -2349,6 +2527,16 @@ path-to-regexp@^1.7.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
isarray "0.0.1"
|
isarray "0.0.1"
|
||||||
|
|
||||||
|
path-type@^4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||||
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||||
|
|
||||||
|
picomatch@^2.0.5, picomatch@^2.2.1:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
||||||
|
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
||||||
|
|
||||||
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
||||||
|
@ -2568,6 +2756,11 @@ resolve@^1.9.0:
|
||||||
is-core-module "^2.1.0"
|
is-core-module "^2.1.0"
|
||||||
path-parse "^1.0.6"
|
path-parse "^1.0.6"
|
||||||
|
|
||||||
|
reusify@^1.0.4:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||||
|
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||||
|
|
||||||
rimraf@^3.0.2:
|
rimraf@^3.0.2:
|
||||||
version "3.0.2"
|
version "3.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||||
|
@ -2575,6 +2768,11 @@ rimraf@^3.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.1.3"
|
glob "^7.1.3"
|
||||||
|
|
||||||
|
run-parallel@^1.1.9:
|
||||||
|
version "1.1.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef"
|
||||||
|
integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==
|
||||||
|
|
||||||
safe-buffer@^5.1.0:
|
safe-buffer@^5.1.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
|
@ -2626,7 +2824,7 @@ semver@^6.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||||
|
|
||||||
semver@^7.2.1:
|
semver@^7.2.1, semver@^7.3.2:
|
||||||
version "7.3.4"
|
version "7.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
|
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
|
||||||
integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
|
integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
|
||||||
|
@ -2657,6 +2855,11 @@ signal-exit@^3.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
||||||
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
|
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
|
||||||
|
|
||||||
|
slash@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
|
||||||
|
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
|
||||||
|
|
||||||
slice-ansi@^4.0.0:
|
slice-ansi@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
|
||||||
|
@ -2810,11 +3013,25 @@ to-fast-properties@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
||||||
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
|
||||||
|
|
||||||
tslib@^1.9.0:
|
to-regex-range@^5.0.1:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||||
|
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||||
|
dependencies:
|
||||||
|
is-number "^7.0.0"
|
||||||
|
|
||||||
|
tslib@^1.8.1, tslib@^1.9.0:
|
||||||
version "1.14.1"
|
version "1.14.1"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
||||||
|
tsutils@^3.17.1:
|
||||||
|
version "3.17.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
|
||||||
|
integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
|
||||||
|
dependencies:
|
||||||
|
tslib "^1.8.1"
|
||||||
|
|
||||||
type-check@^0.4.0, type-check@~0.4.0:
|
type-check@^0.4.0, type-check@~0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
|
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user