diff --git a/.DS_Store b/.DS_Store index ecd4d6f..7ce85f1 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/database/router/all_movies.js b/database/router/all_movies.js index 5aa9b3f..694aa50 100644 --- a/database/router/all_movies.js +++ b/database/router/all_movies.js @@ -17,22 +17,49 @@ async function getAllMovies ( req,res ){ } } +async function searchSingleMovie ( req,res ){ + let { q } = req.query + console.log(q) + let id=q + // q=q.toLowerCase() + try { + let data = await allmoviesModel.findOne({id}) + + return res.status(200).send({ + data, + }) + } catch (error) { + return res.status(404).send({ + error:"error in fetching data" + }) + } +} - -// async function get_Top_pics ( req,res ){ -// try { -// let data = await TopMoviesModel.find() -// console.log(data) -// return res.status(200).send({ -// data, -// }) -// } catch (error) { -// return res.status(404).send({ -// error:"error in fetching data" -// }) -// } -// } -// route.get('/movies/Top_pics',get_Top_pics) +async function searchmovie ( req,res ){ + let { q } = req.query + q=q.toLowerCase() + if(q.length==0){ + return res.send({ + data:[] + }) + } + try { + let data = await allmoviesModel.find() + data = data.filter((ele)=>{ + let check = ele.fullTitle.toLowerCase() + return check.includes(q) + }) + return res.status(200).send({ + data, + }) + } catch (error) { + return res.status(404).send({ + error:"error in fetching data" + }) + } +} +route.get('/searchSingleMovie',searchSingleMovie) route.get('/allmovies',getAllMovies) +route.get('/searchmovie',searchmovie) module.exports = route; \ No newline at end of file diff --git a/imdb_frontend/.DS_Store b/imdb_frontend/.DS_Store index c663a35..36861ad 100644 Binary files a/imdb_frontend/.DS_Store and b/imdb_frontend/.DS_Store differ diff --git a/imdb_frontend/allMovies.json b/imdb_frontend/allMovies.json index 2b694f6..3bd4418 100644 --- a/imdb_frontend/allMovies.json +++ b/imdb_frontend/allMovies.json @@ -1,26 +1,26 @@ {"allMovies":[ - { "id":"1", + { "_id":"1", "title": "Spiderman1", "fullTitle": "Spider-Man:No Way Home", "year": "2021", "image":"https://bit.ly/sage-adebayo", "crew":["Tom Holland","Zendaya" ] }, - { "id":"2", + { "_id":"2", "title": "Spiderman2", "fullTitle": "Spider-Man:Far From Home", "year": "2021", "image":"https://bit.ly/sage-adebayo", "crew":["Tom Holland","Zendaya"] }, - { "id":"3", + { "_id":"3", "title": "Batman1", "fullTitle": "Spider-Man:No Way Home", "year": "2021", "image":"https://bit.ly/sage-adebayo", "crew":["Tom Holland","Zendaya" ] }, - { "id":"4", + { "_id":"4", "title": "Superman2", "fullTitle": "Spider-Man:Far From Home", "year": "2021", diff --git a/imdb_frontend/src/.DS_Store b/imdb_frontend/src/.DS_Store index 976af0e..5f20085 100644 Binary files a/imdb_frontend/src/.DS_Store and b/imdb_frontend/src/.DS_Store differ diff --git a/imdb_frontend/src/App.js b/imdb_frontend/src/App.js deleted file mode 100644 index e7c5f77..0000000 --- a/imdb_frontend/src/App.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { - ChakraProvider, - Box, - Text, - Link, - VStack, - Code, - Grid, - theme, -} from '@chakra-ui/react'; -import { ColorModeSwitcher } from './ColorModeSwitcher'; -import { Logo } from './Logo'; -import { Search } from './searchBar/search'; - -function App() { - return ( - - - - ); -} - -export default App; diff --git a/imdb_frontend/src/App.jsx b/imdb_frontend/src/App.jsx index 95784a8..b531258 100644 --- a/imdb_frontend/src/App.jsx +++ b/imdb_frontend/src/App.jsx @@ -1,31 +1,41 @@ import React from 'react'; - import { ChakraProvider, - Box, - Text, - Link, - VStack, - Code, - Grid, + theme, } from '@chakra-ui/react'; import { ColorModeSwitcher } from './ColorModeSwitcher'; import { Logo } from './Logo'; -import Signup_login from './components/SIgn_login'; -import Createaccount from './components/Createaccount/createaccount'; +// import Homepage from "./components/Homepage/homepage" +// import { Video } from './trailor&FooterComponent/video' +// import { Footer } from './trailor&FooterComponent/footer' +import { Search } from './searchBar/search'; +import { Routes, Route } from "react-router-dom" +// import SignUp from './components/Signup/singup'; +// import Createaccount from './components/Createaccount/createaccount'; +// import Login from './components/Login/login'; +import { SingleMovie } from './searchBar/singleSearch'; + function App() { return ( - - - {/* { -Signup_login() - } */} - - + + {/* { video()} */} + + + {/* } /> */} + {/* } /> */} + {/* } /> */} + {/* } /> */} + {/* } /> */} + } /> + + + + + {/* {Footer()} */} ); } -export default App; +export default App; \ No newline at end of file diff --git a/imdb_frontend/src/components/Login/login.jsx b/imdb_frontend/src/components/Login/login.jsx index 7b1376f..9cc7fae 100644 --- a/imdb_frontend/src/components/Login/login.jsx +++ b/imdb_frontend/src/components/Login/login.jsx @@ -1,72 +1,72 @@ -import React from "react"; +// import React from "react"; -import "./login.css" +// import "./login.css" -import imdblogo from "./imdbcreatelogo.png" +// import imdblogo from "./imdbcreatelogo.png" -import { - FormControl, - FormLabel, - FormErrorMessage, - FormHelperText, - Input -} from '@chakra-ui/react' +// import { +// FormControl, +// FormLabel, +// FormErrorMessage, +// FormHelperText, +// Input +// } from '@chakra-ui/react' -function Login() { - const [input, setInput] = React.useState('') +// function Login() { +// const [input, setInput] = React.useState('') - return ( -
-
- -
-
-

Sign-In

-
+// return ( +//
+//
+// +//
+//
+//

Sign-In

+//
-
-Email - +//
+// Email +// -
-
-Password - +//
+//
+// Password +// -
+//
-
- -
-
-

Already have an account? Details ►

-
-
+//
+// +//
+//
+//

Already have an account? Details ►

+//
+//
-

------------------------------- New to IMDb?-------------------------------

-
-
- -
-
-
- -
-

© 1996-2022, Amazon.com, Inc. or its affiliates

-
-
-
-
- ) -} +//

------------------------------- New to IMDb?-------------------------------

+//
+//
+// +//
+//
+//
+//
+// Help +// Conditions of Use +// Privacy Notice +//
+//
+//

© 1996-2022, Amazon.com, Inc. or its affiliates

+//
+//
+//
+//
+// ) +// } -export default Login \ No newline at end of file +// export default Login \ No newline at end of file diff --git a/imdb_frontend/src/image/.DS_Store b/imdb_frontend/src/image/.DS_Store index 5008ddf..2635d53 100644 Binary files a/imdb_frontend/src/image/.DS_Store and b/imdb_frontend/src/image/.DS_Store differ diff --git a/imdb_frontend/src/image/30days.png b/imdb_frontend/src/image/30days.png new file mode 100644 index 0000000..aa3daf4 Binary files /dev/null and b/imdb_frontend/src/image/30days.png differ diff --git a/imdb_frontend/src/image/Related news.png b/imdb_frontend/src/image/Related news.png new file mode 100644 index 0000000..e27d773 Binary files /dev/null and b/imdb_frontend/src/image/Related news.png differ diff --git a/imdb_frontend/src/image/action.png b/imdb_frontend/src/image/action.png new file mode 100644 index 0000000..d9d17ba Binary files /dev/null and b/imdb_frontend/src/image/action.png differ diff --git a/imdb_frontend/src/image/amazonPrime.png b/imdb_frontend/src/image/amazonPrime.png new file mode 100644 index 0000000..3e16041 Binary files /dev/null and b/imdb_frontend/src/image/amazonPrime.png differ diff --git a/imdb_frontend/src/image/contribute.png b/imdb_frontend/src/image/contribute.png new file mode 100644 index 0000000..a071b36 Binary files /dev/null and b/imdb_frontend/src/image/contribute.png differ diff --git a/imdb_frontend/src/image/first.png b/imdb_frontend/src/image/first.png new file mode 100644 index 0000000..a31ef34 Binary files /dev/null and b/imdb_frontend/src/image/first.png differ diff --git a/imdb_frontend/src/image/increasing.png b/imdb_frontend/src/image/increasing.png new file mode 100644 index 0000000..72f11fe Binary files /dev/null and b/imdb_frontend/src/image/increasing.png differ diff --git a/imdb_frontend/src/image/meta.png b/imdb_frontend/src/image/meta.png new file mode 100644 index 0000000..5775e67 Binary files /dev/null and b/imdb_frontend/src/image/meta.png differ diff --git a/imdb_frontend/src/image/netflix.png b/imdb_frontend/src/image/netflix.png new file mode 100644 index 0000000..177b354 Binary files /dev/null and b/imdb_frontend/src/image/netflix.png differ diff --git a/imdb_frontend/src/image/rate.png b/imdb_frontend/src/image/rate.png new file mode 100644 index 0000000..bdce418 Binary files /dev/null and b/imdb_frontend/src/image/rate.png differ diff --git a/imdb_frontend/src/image/second.png b/imdb_frontend/src/image/second.png new file mode 100644 index 0000000..d0d1161 Binary files /dev/null and b/imdb_frontend/src/image/second.png differ diff --git a/imdb_frontend/src/image/share.png b/imdb_frontend/src/image/share.png new file mode 100644 index 0000000..1a1f2e3 Binary files /dev/null and b/imdb_frontend/src/image/share.png differ diff --git a/imdb_frontend/src/image/singleImdb.png b/imdb_frontend/src/image/singleImdb.png new file mode 100644 index 0000000..21ced1e Binary files /dev/null and b/imdb_frontend/src/image/singleImdb.png differ diff --git a/imdb_frontend/src/image/sponsr.png b/imdb_frontend/src/image/sponsr.png new file mode 100644 index 0000000..effb86c Binary files /dev/null and b/imdb_frontend/src/image/sponsr.png differ diff --git a/imdb_frontend/src/image/topRated.png b/imdb_frontend/src/image/topRated.png new file mode 100644 index 0000000..e905ce6 Binary files /dev/null and b/imdb_frontend/src/image/topRated.png differ diff --git a/imdb_frontend/src/image/trailer.webp b/imdb_frontend/src/image/trailer.webp new file mode 100644 index 0000000..0c2dc2f Binary files /dev/null and b/imdb_frontend/src/image/trailer.webp differ diff --git a/imdb_frontend/src/index.js b/imdb_frontend/src/index.js index 1e21a0b..23ae131 100644 --- a/imdb_frontend/src/index.js +++ b/imdb_frontend/src/index.js @@ -2,17 +2,22 @@ import { ColorModeScript } from '@chakra-ui/react'; import React, { StrictMode } from 'react'; import * as ReactDOM from 'react-dom/client'; import App from './App'; + import {BrowserRouter as Router} from "react-router-dom"; import reportWebVitals from './reportWebVitals'; import * as serviceWorker from './serviceWorker'; - +// import { Provider } from 'react-redux'; +// import { store } from './Redux/store'; +import { BrowserRouter } from 'react-router-dom'; const container = document.getElementById('root'); const root = ReactDOM.createRoot(container); root.render( - - - - + + {/* */} + + + {/* */} + ); // If you want your app to work offline and load faster, you can change @@ -23,4 +28,4 @@ serviceWorker.unregister(); // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); +reportWebVitals(); \ No newline at end of file diff --git a/imdb_frontend/src/searchBar/inputContent.jsx b/imdb_frontend/src/searchBar/inputContent.jsx index b099973..5587208 100644 --- a/imdb_frontend/src/searchBar/inputContent.jsx +++ b/imdb_frontend/src/searchBar/inputContent.jsx @@ -1,31 +1,40 @@ -import { Image,Box,Flex,Text } from '@chakra-ui/react' +import { Image, Box, Flex, Text,Link } from '@chakra-ui/react'; +import { NavLink as RouterLink } from "react-router-dom"; + +// import {Link} from 'react'; + // import abc from '' export function InputContent(props) { - console.log(props) - let data=props.props; - return ( + // console.log('props',props) + let data = props.props; + + return data.length==0?Search for Movie or TV Series + : + ( <> - - {data.map((e)=>( - - - - - - {e.fullTitle} - - {e.year} - {/* {e.crew.map((name)=>(name+' '))} */} - {e.crew.map((name,index)=>( - ({name}{index) - - ))} - - - - ))} - + + {data.map((e) => ( + + + + + + + {e.fullTitle} + + {e.year} + {/* {e.crew.map((name)=>(name+' '))} */} + {/* {e.crew.map((name, index) => ( + ({name}{index < e.crew.length - 1 ? ', ' : ''}) + + ))} */} + {e.crew} + + + + + ))} + ) } - \ No newline at end of file diff --git a/imdb_frontend/src/searchBar/search.jsx b/imdb_frontend/src/searchBar/search.jsx index 3628b02..ad69890 100644 --- a/imdb_frontend/src/searchBar/search.jsx +++ b/imdb_frontend/src/searchBar/search.jsx @@ -10,13 +10,16 @@ import { PopoverAnchor, Menu, MenuButton, - Box, MenuList, IconButton, Divider, Link } from '@chakra-ui/react'; +// import {Link} from 'react'; +// import { Link as ReachLink } from "@reach/router"; +import { NavLink as RouterLink } from "react-router-dom"; + import imdbLogo from '../image/imdb.png'; import imdbPro from '../image/imdbPro.png'; import menu from '../image/menu.png'; @@ -26,28 +29,56 @@ import { SearchIcon, HamburgerIcon } from '@chakra-ui/icons'; import { Image } from '@chakra-ui/react'; import { useEffect, useState, useRef } from 'react'; import { InputContent } from './inputContent'; +import Login from '../components/Login/login'; // import abc from '' export function Search() { - const initialFocusRef = useRef() + // const initialFocusRef = useRef() + const [inputGiven, setInputGiven] = useState(''); const [movieList, setMovieList] = useState([]); - const [search, setSearch] = useState(0);//will be used while debouncing - const [timer, setTimer] = useState(0);//will be used for debouncing + const [timer, setTimer] = useState(0);//used for debouncing + + + + function change(){ + debounce(600) + } + function debounce(d){ + + const element = document.getElementById('input'); + if (timer>0) {clearTimeout(timer)} + + setTimer(setTimeout(()=>{ + fetchMovieDetails(inputGiven) + },d) + ) + + } + async function fetchMovieDetails(inputGiven) { - const res = await fetch(`http://localhost:3000/allMovies?q=${inputGiven}`); + + + + try{ + const res = await fetch(`http://localhost:8080/searchmovie?q=${inputGiven}`); const data = await res.json(); - setMovieList(data) + console.log('data',data.data) + setMovieList(data.data) + }catch(err){ + console.log(err) + throw err; + } } useEffect(() => { - fetchMovieDetails(inputGiven) - }, [inputGiven]) + change() + },[inputGiven]) return ( <> - + @@ -82,7 +113,12 @@ export function Search() { - + @@ -90,18 +126,18 @@ export function Search() { pointerEvents='none' children={} /> - { setInputGiven(e.target.value) }} /> + { setInputGiven(e.target.value) }} /> - + - + @@ -109,16 +145,17 @@ export function Search() { - + - - Sign In + + Sign In + - + Eng diff --git a/imdb_frontend/src/searchBar/singleSearch.jsx b/imdb_frontend/src/searchBar/singleSearch.jsx new file mode 100644 index 0000000..04a0068 --- /dev/null +++ b/imdb_frontend/src/searchBar/singleSearch.jsx @@ -0,0 +1,188 @@ +import { useParams,NavLink as RouterLink } from "react-router-dom"; +import amazonPrime from "../image/amazonPrime.png"; +import increasing from "../image/increasing.png"; +import rate from '../image/rate.png'; +import share from '../image/share.png'; +import action from '../image/action.png'; +import singleImdb from '../image/singleImdb.png'; +import netflix from '../image/netflix.png'; +import meta from '../image/meta.png'; +import releatedNews from '../image/Related news.png'; +import first from '../image/first.png'; +import second from '../image/second.png'; +import contribute from '../image/contribute.png'; +import topRated from '../image/topRated.png'; +import days from '../image/30days.png'; +import sponsr from '../image/sponsr.png'; +import trailer from '../image/trailer.webp'; +import { Box, Image, Flex, Text, Divider, Button,Link } from '@chakra-ui/react'; +import { useEffect, useState } from "react"; +// import {Link} from 'react'; + + +export function SingleMovie() { + let [data,setData]=useState({}); + let {id} = useParams(); + // console.log('id',id) + + async function getData(id) { + try{ + const res = await fetch(`http://localhost:8080/searchSingleMovie?q=${id}`); + const e = await res.json(); + // console.log('e',e) + setData(e.data) + }catch(err){ + console.log(err); + throw err + } + } + + + useEffect(()=>{ + getData(id) + },[id]) + + // let data = { + // fullTitle: "Spider Man:Far from home", + // year: "2021", + // imDbRating: "4.1", + // image: "https://via.placeholder.com/300.png" + // } + return ( + <> + + + + + + + + + + {data.fullTitle} +

{data.year}{' · '}{'PG-13 · 2h28m'}

+ +
+ + + + IMDb RATING + + ⭐{data.imDbRating} + + + + YOUR RATING + + + + + + POPULARITY + + + + +
+ + + + + + + + + + + With Spider-Man's identity now revealed, Peter asks Doctor Strange for help. When a spell goes wrong, dangerous foes from other worlds start to appear, forcing Peter to discover what it truly means to be Spider-Man. + + + + + + Director Jon Watts + + + + + + Writers Chris McKenna · Erik Sommers · Stan Lee + + + + + + Stars Tom Holland · Zendaya · Benedict Cumberbatch + + + + + + + + + + + + + + + + + ≡ More Watch Option + + + + + + Add to Watchlist + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IMDb Answers: Help fill gaps in our data + + + + Learn more about contributing + + + + + + + ) +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 715bec2..96ee859 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,19 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "express": "^4.18.1" + "express": "^4.18.1", + "react-router-dom": "^6.3.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/accepts": { @@ -269,6 +281,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "dependencies": { + "@babel/runtime": "^7.7.6" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -308,6 +328,24 @@ "node": ">= 0.10" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -452,6 +490,60 @@ "node": ">= 0.8" } }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "dependencies": { + "history": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "dependencies": { + "history": "^5.2.0", + "react-router": "6.3.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -476,6 +568,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", @@ -590,6 +691,14 @@ } }, "dependencies": { + "@babel/runtime": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -788,6 +897,14 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, + "history": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", + "requires": { + "@babel/runtime": "^7.7.6" + } + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -818,6 +935,21 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -917,6 +1049,47 @@ "unpipe": "1.0.0" } }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-router": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", + "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", + "requires": { + "history": "^5.2.0" + } + }, + "react-router-dom": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", + "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", + "requires": { + "history": "^5.2.0", + "react-router": "6.3.0" + } + }, + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -927,6 +1100,15 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "peer": true, + "requires": { + "loose-envify": "^1.1.0" + } + }, "send": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", diff --git a/package.json b/package.json index 50dd6af..e6b3c7a 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "author": "", "license": "ISC", "dependencies": { - "express": "^4.18.1" + "express": "^4.18.1", + "react-router-dom": "^6.3.0" } }