Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
I_Helmet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
21_22-J 62
I_Helmet
Commits
da4148ab
Commit
da4148ab
authored
May 26, 2022
by
Balasuriya D.A.M.
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Create Group Chat Modal Part 1
parent
a70b4c26
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
4821 additions
and
3734 deletions
+4821
-3734
IT18021080/Telemedicine-Chat-App/backend/config/db.js
IT18021080/Telemedicine-Chat-App/backend/config/db.js
+1
-1
IT18021080/Telemedicine-Chat-App/backend/config/generateToken.js
...080/Telemedicine-Chat-App/backend/config/generateToken.js
+2
-2
IT18021080/Telemedicine-Chat-App/backend/controllers/chatControllers.js
...emedicine-Chat-App/backend/controllers/chatControllers.js
+5
-1
IT18021080/Telemedicine-Chat-App/backend/controllers/userControllers.js
...emedicine-Chat-App/backend/controllers/userControllers.js
+9
-4
IT18021080/Telemedicine-Chat-App/backend/data/data.js
IT18021080/Telemedicine-Chat-App/backend/data/data.js
+0
-1
IT18021080/Telemedicine-Chat-App/backend/middleware/authMiddleware.js
...elemedicine-Chat-App/backend/middleware/authMiddleware.js
+1
-1
IT18021080/Telemedicine-Chat-App/backend/middleware/errorMiddleware.js
...lemedicine-Chat-App/backend/middleware/errorMiddleware.js
+1
-1
IT18021080/Telemedicine-Chat-App/backend/models/messageModel.js
...1080/Telemedicine-Chat-App/backend/models/messageModel.js
+1
-1
IT18021080/Telemedicine-Chat-App/backend/models/userModel.js
IT18021080/Telemedicine-Chat-App/backend/models/userModel.js
+4
-1
IT18021080/Telemedicine-Chat-App/backend/routes/chatRoutes.js
...021080/Telemedicine-Chat-App/backend/routes/chatRoutes.js
+1
-3
IT18021080/Telemedicine-Chat-App/backend/routes/userRoutes.js
...021080/Telemedicine-Chat-App/backend/routes/userRoutes.js
+1
-3
IT18021080/Telemedicine-Chat-App/backend/server.js
IT18021080/Telemedicine-Chat-App/backend/server.js
+7
-6
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
+3477
-3371
IT18021080/Telemedicine-Chat-App/frontend/package.json
IT18021080/Telemedicine-Chat-App/frontend/package.json
+10
-12
IT18021080/Telemedicine-Chat-App/frontend/public/index.html
IT18021080/Telemedicine-Chat-App/frontend/public/index.html
+8
-5
IT18021080/Telemedicine-Chat-App/frontend/src/App.css
IT18021080/Telemedicine-Chat-App/frontend/src/App.css
+2
-2
IT18021080/Telemedicine-Chat-App/frontend/src/App.js
IT18021080/Telemedicine-Chat-App/frontend/src/App.js
+2
-4
IT18021080/Telemedicine-Chat-App/frontend/src/Context/ChatProvider.js
...elemedicine-Chat-App/frontend/src/Context/ChatProvider.js
+1
-2
IT18021080/Telemedicine-Chat-App/frontend/src/Pages/ChatPage.js
...1080/Telemedicine-Chat-App/frontend/src/Pages/ChatPage.js
+14
-12
IT18021080/Telemedicine-Chat-App/frontend/src/Pages/Homepage.js
...1080/Telemedicine-Chat-App/frontend/src/Pages/Homepage.js
+7
-2
IT18021080/Telemedicine-Chat-App/frontend/src/components/Authentication/Login.js
...-Chat-App/frontend/src/components/Authentication/Login.js
+19
-10
IT18021080/Telemedicine-Chat-App/frontend/src/components/Authentication/Signup.js
...Chat-App/frontend/src/components/Authentication/Signup.js
+12
-4
IT18021080/Telemedicine-Chat-App/frontend/src/components/ChatBox.js
.../Telemedicine-Chat-App/frontend/src/components/ChatBox.js
+1
-1
IT18021080/Telemedicine-Chat-App/frontend/src/components/ChatLoading.js
...emedicine-Chat-App/frontend/src/components/ChatLoading.js
+16
-15
IT18021080/Telemedicine-Chat-App/frontend/src/components/MyChats.js
.../Telemedicine-Chat-App/frontend/src/components/MyChats.js
+22
-23
IT18021080/Telemedicine-Chat-App/frontend/src/components/UserAvatar/UserListItem.js
...at-App/frontend/src/components/UserAvatar/UserListItem.js
+6
-10
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/GroupChatModal.js
...p/frontend/src/components/miscellaneous/GroupChatModal.js
+117
-0
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/ProfileModal.js
...App/frontend/src/components/miscellaneous/ProfileModal.js
+5
-13
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/SideDrawer.js
...t-App/frontend/src/components/miscellaneous/SideDrawer.js
+33
-53
IT18021080/Telemedicine-Chat-App/frontend/src/config/ChatLogics.js
...0/Telemedicine-Chat-App/frontend/src/config/ChatLogics.js
+0
-2
IT18021080/Telemedicine-Chat-App/frontend/src/index.js
IT18021080/Telemedicine-Chat-App/frontend/src/index.js
+5
-1
IT18021080/Telemedicine-Chat-App/package-lock.json
IT18021080/Telemedicine-Chat-App/package-lock.json
+1022
-163
IT18021080/Telemedicine-Chat-App/package.json
IT18021080/Telemedicine-Chat-App/package.json
+9
-4
No files found.
IT18021080/Telemedicine-Chat-App/backend/config/db.js
View file @
da4148ab
...
...
@@ -19,4 +19,4 @@ const connectDB = async () => {
}
};
module
.
exports
=
connectDB
;
\ No newline at end of file
module
.
exports
=
connectDB
;
IT18021080/Telemedicine-Chat-App/backend/config/generateToken.js
View file @
da4148ab
...
...
@@ -5,10 +5,10 @@ const generateToken = (id) => {
//add jwt secret from .env
return
jwt
.
sign
({
id
},
process
.
env
.
JWT_SECRET
,
{
//can change the count of days as i want (secret days)
expiresIn
:
"
3
0d
"
,
expiresIn
:
"
20
0d
"
,
});
};
module
.
exports
=
generateToken
;
//JWT use for pass user data to backend through JWT
\ No newline at end of file
//JWT use for pass user data to backend through JWT
IT18021080/Telemedicine-Chat-App/backend/controllers/chatControllers.js
View file @
da4148ab
...
...
@@ -172,4 +172,8 @@ const removeFromGroup = asyncHandler(async (req, res) => {
}
});
module
.
exports
=
{
accessChat
,
fetchChats
,
createGroupChat
,
renameGroup
,
addToGroup
,
removeFromGroup
};
\ No newline at end of file
module
.
exports
=
{
accessChat
,
fetchChats
,
createGroupChat
,
renameGroup
,
addToGroup
,
removeFromGroup
};
IT18021080/Telemedicine-Chat-App/backend/controllers/userControllers.js
View file @
da4148ab
...
...
@@ -25,7 +25,9 @@ const registerUser = asyncHandler(async (req, res) => {
password
,
pic
,
});
//after register..also want send JWT token
//after register..also want send JWT token
if
(
user
)
{
res
.
status
(
201
).
json
({
_id
:
user
.
_id
,
...
...
@@ -49,7 +51,7 @@ const authUser = asyncHandler(async (req, res) => {
const
user
=
await
User
.
findOne
({
email
});
//If user is already exist check it with DB data such as password
if
(
user
&&
(
await
user
.
matchPassword
(
password
)))
{
if
(
user
&&
(
await
user
.
matchPassword
(
password
)))
{
res
.
json
({
_id
:
user
.
_id
,
name
:
user
.
name
,
...
...
@@ -63,11 +65,13 @@ const authUser = asyncHandler(async (req, res) => {
}
});
// /api/user?search = minosh - goint to creat search query
//This is how to access the query (search query)
const
allUsers
=
asyncHandler
(
async
(
req
,
res
)
=>
{
const
keyword
=
req
.
query
.
search
?
{
//use $or operation
$or
:
[
//references from MongoDB pages.can get more information from that about $regex
...
...
@@ -79,11 +83,12 @@ const allUsers = asyncHandler(async (req, res) => {
:
{};
//query write to database
const
users
=
await
User
.
find
(
keyword
).
find
({
_id
:
{
$ne
:
req
.
user
.
_id
}
});
const
users
=
await
User
.
find
(
keyword
).
find
({
_id
:
{
$ne
:
req
.
user
.
_id
}
});
// find({_id:{$ne:req.user._id}}) - current id user loged in
res
.
send
(
users
);
//to return
});
module
.
exports
=
{
registerUser
,
authUser
,
allUsers
};
\ No newline at end of file
module
.
exports
=
{
registerUser
,
authUser
,
allUsers
};
IT18021080/Telemedicine-Chat-App/backend/data/data.js
View file @
da4148ab
...
...
@@ -107,5 +107,4 @@ const chats = [
},
];
module
.
exports
=
{
chats
};
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/backend/middleware/authMiddleware.js
View file @
da4148ab
...
...
@@ -35,4 +35,4 @@ const protect = asyncHandler(async (req, res, next) => {
}
});
module
.
exports
=
{
protect
};
\ No newline at end of file
module
.
exports
=
{
protect
};
IT18021080/Telemedicine-Chat-App/backend/middleware/errorMiddleware.js
View file @
da4148ab
...
...
@@ -15,4 +15,4 @@ const errorHandler = (err, req, res, next) => {
});
};
module
.
exports
=
{
notFound
,
errorHandler
};
\ No newline at end of file
module
.
exports
=
{
notFound
,
errorHandler
};
IT18021080/Telemedicine-Chat-App/backend/models/messageModel.js
View file @
da4148ab
...
...
@@ -15,4 +15,4 @@ const messageModel = mongoose.Schema({
const
Message
=
mongoose
.
model
(
"
Message
"
,
messageModel
);
module
.
exports
=
Message
;
\ No newline at end of file
module
.
exports
=
Message
;
IT18021080/Telemedicine-Chat-App/backend/models/userModel.js
View file @
da4148ab
const
mongoose
=
require
(
"
mongoose
"
);
const
bcrypt
=
require
(
"
bcryptjs
"
);
const
userSchema
=
mongoose
.
Schema
({
name
:
{
type
:
String
,
required
:
true
},
email
:
{
type
:
String
,
required
:
true
,
unique
:
true
},
...
...
@@ -8,6 +9,7 @@ const userSchema = mongoose.Schema({
pic
:
{
type
:
String
,
//required: true, if it is required i can use this reuired as true
default
:
"
https://icon-library.com/images/anonymous-avatar-icon/anonymous-avatar-icon-25.jpg
"
,
},
...
...
@@ -31,6 +33,7 @@ userSchema.pre("save", async function (next) {
this
.
password
=
await
bcrypt
.
hash
(
this
.
password
,
salt
);
//add Hash and bcrypt
});
const
User
=
mongoose
.
model
(
"
User
"
,
userSchema
);
module
.
exports
=
User
;
\ No newline at end of file
module
.
exports
=
User
;
IT18021080/Telemedicine-Chat-App/backend/routes/chatRoutes.js
View file @
da4148ab
...
...
@@ -3,18 +3,16 @@ const { accessChat, fetchChats, createGroupChat, renameGroup, addToGroup, remove
const
{
protect
}
=
require
(
"
../middleware/authMiddleware
"
);
//create router object
const
router
=
express
.
Router
();
//only login user can access this route.
router
.
route
(
"
/
"
).
post
(
protect
,
accessChat
);
//API route for one on one chat
router
.
route
(
"
/
"
).
post
(
protect
,
accessChat
);
router
.
route
(
"
/
"
).
get
(
protect
,
fetchChats
);
router
.
route
(
"
/group
"
).
post
(
protect
,
createGroupChat
);
//create group
router
.
route
(
"
/rename
"
).
put
(
protect
,
renameGroup
);
//update group
router
.
route
(
"
/groupadd
"
).
put
(
protect
,
addToGroup
);
//add someone to group
router
.
route
(
"
/groupremove
"
).
put
(
protect
,
removeFromGroup
);
//remove from group
module
.
exports
=
router
;
IT18021080/Telemedicine-Chat-App/backend/routes/userRoutes.js
View file @
da4148ab
...
...
@@ -3,12 +3,10 @@ const { registerUser, authUser, allUsers } = require("../controllers/userControl
const
{
protect
}
=
require
(
"
../middleware/authMiddleware
"
);
const
router
=
express
.
Router
();
router
.
route
(
"
/
"
).
post
(
registerUser
).
get
(
protect
,
allUsers
);
//User searching API end point
router
.
post
(
"
/login
"
,
authUser
);
router
.
post
(
"
/login
"
,
authUser
);
module
.
exports
=
router
;
IT18021080/Telemedicine-Chat-App/backend/server.js
View file @
da4148ab
const
express
=
require
(
"
express
"
);
const
dotenv
=
require
(
"
dotenv
"
);
const
{
chats
}
=
require
(
"
./data/data
"
);
...
...
@@ -6,22 +5,22 @@ const connectDB = require("./config/db");
const
colors
=
require
(
"
colors
"
);
const
userRoutes
=
require
(
"
./routes/userRoutes
"
);
const
chatRoutes
=
require
(
"
./routes/chatRoutes
"
);
const
{
notFound
,
errorHandler
}
=
require
(
"
./middleware/errorMiddleware
"
);
dotenv
.
config
();
dotenv
.
config
();
connectDB
();
const
app
=
express
();
app
.
use
(
express
.
json
());
//to accept JSON data
app
.
get
(
"
/
"
,
(
req
,
res
)
=>
{
res
.
send
(
"
API is Running Suc
c
essfully
"
);
res
.
send
(
"
API is Running Sucessfully
"
);
});
//create API end points
app
.
use
(
"
/api/user
"
,
userRoutes
);
app
.
use
(
"
/api/chat
"
,
chatRoutes
);
...
...
@@ -29,6 +28,8 @@ app.use("/api/chat", chatRoutes);
app
.
use
(
notFound
);
app
.
use
(
errorHandler
);
const
PORT
=
process
.
env
.
PORT
||
5000
;
app
.
listen
(
5000
,
console
.
log
(
`Server Started on PORT
${
PORT
}
`
.
yellow
.
bold
));
\ No newline at end of file
app
.
listen
(
5000
,
console
.
log
(
`Server Started on PORT
${
PORT
}
`
.
yellow
.
bold
));
IT18021080/Telemedicine-Chat-App/frontend/package-lock.json
View file @
da4148ab
This source diff could not be displayed because it is too large. You can
view the blob
instead.
IT18021080/Telemedicine-Chat-App/frontend/package.json
View file @
da4148ab
...
...
@@ -4,21 +4,19 @@
"private"
:
true
,
"proxy"
:
"http://127.0.0.1:5000"
,
"dependencies"
:
{
"@chakra-ui/button"
:
"^1.5.10"
,
"@chakra-ui/icons"
:
"^1.1.7"
,
"@chakra-ui/layout"
:
"^1.8.0"
,
"@chakra-ui/react"
:
"^1.8.8"
,
"@chakra-ui/icons"
:
"^2.0.0"
,
"@chakra-ui/react"
:
"^2.0.0"
,
"@emotion/react"
:
"^11.9.0"
,
"@emotion/styled"
:
"^11.8.1"
,
"@testing-library/jest-dom"
:
"^5.16.
3
"
,
"@testing-library/react"
:
"^1
2.1.4
"
,
"@testing-library/jest-dom"
:
"^5.16.
4
"
,
"@testing-library/react"
:
"^1
3.2.0
"
,
"@testing-library/user-event"
:
"^13.5.0"
,
"axios"
:
"^0.2
6.1
"
,
"framer-motion"
:
"^
6.2.10
"
,
"react"
:
"^18.
0
.0"
,
"react-dom"
:
"^18.
0
.0"
,
"react-router-dom"
:
"^5.3.
0
"
,
"react-scripts"
:
"5.0.
0
"
,
"axios"
:
"^0.2
7.2
"
,
"framer-motion"
:
"^
4.1.17
"
,
"react"
:
"^18.
1
.0"
,
"react-dom"
:
"^18.
1
.0"
,
"react-router-dom"
:
"^5.3.
1
"
,
"react-scripts"
:
"5.0.
1
"
,
"web-vitals"
:
"^2.1.4"
},
"scripts"
:
{
...
...
IT18021080/Telemedicine-Chat-App/frontend/public/index.html
View file @
da4148ab
...
...
@@ -15,11 +15,14 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link
rel=
"manifest"
href=
"%PUBLIC_URL%/manifest.json"
/>
<link
rel=
"stylesheet"
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
integrity=
"sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
crossorigin=
"anonymous"
referrerpolicy=
"no-referrer"
/>
<link
rel=
"stylesheet"
href=
"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"
integrity=
"sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w=="
crossorigin=
"anonymous"
referrerpolicy=
"no-referrer"
/>
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
...
...
IT18021080/Telemedicine-Chat-App/frontend/src/App.css
View file @
da4148ab
@import
url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@300&display=swap')
;
.App
{
.App
{
min-height
:
100vh
;
display
:
flex
;
background-image
:
url("./background.jpg")
;
background-size
:
cover
;
background-position
:
center
;
color
:
black
;
color
:
black
;
}
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/frontend/src/App.js
View file @
da4148ab
import
"
./App.css
"
;
import
{
Route
}
from
"
react-router-dom
"
;
import
Homepage
from
"
./Pages/Homepage
"
;
import
ChatPage
from
"
./Pages/ChatPage
"
;
function
App
()
{
return
(
<
div
className
=
"
App
"
>
<
Route
path
=
"
/
"
component
=
{
Homepage
}
exact
/>
<
Route
path
=
"
/chats
"
component
=
{
ChatPage
}
/
>
<
Route
path
=
"
/
"
component
=
{
Homepage
}
exact
/>
<
Route
path
=
"
/chats
"
component
=
{
ChatPage
}
/>
<
/div
>
);
...
...
IT18021080/Telemedicine-Chat-App/frontend/src/Context/ChatProvider.js
View file @
da4148ab
...
...
@@ -22,8 +22,7 @@ const ChatProvider = ({ children }) => {
},
[
history
]);
return
(
<
ChatContext
.
Provider
value
=
{{
user
,
setUser
,
selectedChat
,
setSelectedChat
,
chats
,
setChats
}}
>
<
ChatContext
.
Provider
value
=
{{
user
,
setUser
,
selectedChat
,
setSelectedChat
,
chats
,
setChats
}}
>
{
children
}
<
/ChatContext.Provider
>
);
...
...
IT18021080/Telemedicine-Chat-App/frontend/src/Pages/ChatPage.js
View file @
da4148ab
//import React from "react";
import
{
Box
}
from
"
@chakra-ui/react
"
;
import
{
ChatState
}
from
"
../Context/ChatProvider
"
;
import
SideDrawer
from
"
../components/miscellaneous/SideDrawer
"
;
import
MyChats
from
"
../components/MyChats
"
;
import
ChatBox
from
"
../components/ChatBox
"
;
const
ChatPage
=
()
=>
{
const
{
user
}
=
ChatState
();
return
(
<
div
style
=
{{
width
:
"
100%
"
}}
>
{
user
&&
<
SideDrawer
/>
}
{
user
&&
<
SideDrawer
/>
}
<
Box
d
=
"
flex
"
d
isplay
=
"
flex
"
justifyContent
=
"
space-between
"
w
=
"
100%
"
h
=
"
91.5vh
"
p
=
"
10px
"
width
=
"
100%
"
height
=
"
91.5vh
"
padding
=
"
10px
"
>
{
user
&&
<
MyChats
/>
}
{
user
&&
<
ChatBox
/>
}
<
/Box
>
{
user
&&
<
MyChats
/>
}
{
user
&&
<
ChatBox
/>
}
<
/Box
>
<
/div
>
);
};
export
default
ChatPage
;
\ No newline at end of file
export
default
ChatPage
;
IT18021080/Telemedicine-Chat-App/frontend/src/Pages/Homepage.js
View file @
da4148ab
...
...
@@ -14,6 +14,8 @@ import Login from "../components/Authentication/Login";
import
Signup
from
"
../components/Authentication/Signup
"
;
import
{
useHistory
}
from
"
react-router-dom
"
;
const
Homepage
=
()
=>
{
const
history
=
useHistory
();
...
...
@@ -21,12 +23,13 @@ const Homepage = () => {
useEffect
(()
=>
{
const
user
=
JSON
.
parse
(
localStorage
.
getItem
(
"
userInfo
"
));
//check if user is loged in
push back to the chat page
//check if user is loged in
if
(
user
)
history
.
push
(
"
/chats
"
);
},
[
history
]);
return
(
//use container from chakra ui and remove div
<
Container
maxW
=
"
xl
"
centerContent
>
...
...
@@ -66,8 +69,10 @@ const Homepage = () => {
<
/TabPanels
>
<
/Tabs
>
<
/Box
>
<
/Container
>
);
};
export
default
Homepage
;
\ No newline at end of file
export
default
Homepage
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/Authentication/Login.js
View file @
da4148ab
...
...
@@ -9,18 +9,22 @@ import { useToast } from "@chakra-ui/react";
import
axios
from
"
axios
"
;
import
{
useHistory
}
from
"
react-router-dom
"
;
const
Login
=
()
=>
{
const
[
show
,
setShow
]
=
useState
(
false
);
const
[
email
,
setEmail
]
=
useState
();
const
[
password
,
setPassword
]
=
useState
();
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
show
,
setShow
]
=
useState
(
false
);
const
[
email
,
setEmail
]
=
useState
();
const
[
password
,
setPassword
]
=
useState
();
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
toast
=
useToast
();
const
history
=
useHistory
();
const
toast
=
useToast
();
const
history
=
useHistory
();
const
handleClick
=
()
=>
setShow
(
!
show
);
const
submitHandler
=
async
()
=>
{
const
submitHandler
=
async
()
=>
{
setLoading
(
true
);
if
(
!
email
||
!
password
)
{
toast
({
...
...
@@ -77,6 +81,8 @@ const Login = () => {
}
};
return
(
//Use vstack to allign verticaly
<
VStack
spacing
=
"
5px
"
color
=
"
black
"
>
...
...
@@ -84,8 +90,9 @@ const Login = () => {
<
FormControl
id
=
"
email
"
isRequired
>
<
FormLabel
>
Email
<
/FormLabel
>
<
Input
<
Input
value
=
{
email
}
placeholder
=
"
Enter Your Email
"
onChange
=
{(
e
)
=>
setEmail
(
e
.
target
.
value
)}
...
...
@@ -100,7 +107,7 @@ const Login = () => {
<
Input
type
=
{
show
?
"
text
"
:
"
password
"
}
placeholder
=
"
Enter Your Password
"
value
=
{
password
}
value
=
{
password
}
onChange
=
{(
e
)
=>
setPassword
(
e
.
target
.
value
)}
/
>
...
...
@@ -120,6 +127,7 @@ const Login = () => {
style
=
{{
marginTop
:
15
}}
onClick
=
{
submitHandler
}
isLoading
=
{
loading
}
>
Login
...
...
@@ -137,7 +145,8 @@ const Login = () => {
<
/Button
>
<
/VStack
>
);
}
export
default
Login
;
\ No newline at end of file
export
default
Login
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/Authentication/Signup.js
View file @
da4148ab
...
...
@@ -9,9 +9,11 @@ import { useToast } from "@chakra-ui/react";
import
axios
from
"
axios
"
;
import
{
useHistory
}
from
"
react-router-dom
"
;
const
Signup
=
()
=>
{
const
[
show
,
setShow
]
=
useState
(
false
);
const
[
show
,
setShow
]
=
useState
(
false
);
const
[
name
,
setName
]
=
useState
();
const
[
email
,
setEmail
]
=
useState
();
const
[
confirmpassword
,
setConfirmpassword
]
=
useState
();
...
...
@@ -21,6 +23,7 @@ const Signup = () => {
const
toast
=
useToast
();
const
history
=
useHistory
();
const
handleClick
=
()
=>
setShow
(
!
show
);
const
postDetails
=
(
pics
)
=>
{
...
...
@@ -133,10 +136,14 @@ const Signup = () => {
});
setLoading
(
false
);
}
};
return
(
//Use vstack to allign verticaly
return
(
//Use vstack to allign verticaly
<
VStack
spacing
=
"
5px
"
color
=
"
black
"
>
<
FormControl
id
=
"
first-name
"
isRequired
>
<
FormLabel
>
Name
<
/FormLabel
>
...
...
@@ -220,7 +227,8 @@ const Signup = () => {
<
/VStack
>
);
}
export
default
Signup
;
\ No newline at end of file
export
default
Signup
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/ChatBox.js
View file @
da4148ab
...
...
@@ -6,4 +6,4 @@ const ChatBox = () => {
);
};
export
default
ChatBox
;
\ No newline at end of file
export
default
ChatBox
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/ChatLoading.js
View file @
da4148ab
import
{
Stack
}
from
"
@chakra-ui/layout
"
;
import
{
Skeleton
}
from
"
@chakra-ui/react
"
;
import
{
Stack
,
Skeleton
}
from
"
@chakra-ui/react
"
;
import
React
from
"
react
"
;
const
ChatLoading
=
()
=>
{
return
(
<
Stack
>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
"
45px
"
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
Skeleton
height
=
'
40px
'
/>
<
/Stack
>
);
};
export
default
ChatLoading
;
\ No newline at end of file
export
default
ChatLoading
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/frontend/src/components/MyChats.js
View file @
da4148ab
import
{
useToast
}
from
"
@chakra-ui/react
"
;
import
{
AddIcon
}
from
"
@chakra-ui/icons
"
;
import
{
Box
,
Button
,
Stack
,
useToast
,
Text
}
from
"
@chakra-ui/react
"
;
import
axios
from
"
axios
"
;
import
React
,
{
useEffect
,
useState
}
from
"
react
"
;
import
{
ChatState
}
from
"
../Context/ChatProvider
"
;
import
{
Box
,
Stack
,
Text
}
from
"
@chakra-ui/layout
"
;
import
{
Button
}
from
"
@chakra-ui/button
"
;
import
{
AddIcon
}
from
"
@chakra-ui/icons
"
;
import
ChatLoading
from
"
./ChatLoading
"
;
import
{
getSender
}
from
"
../config/ChatLogics
"
;
import
GroupChatModal
from
"
./miscellaneous/GroupChatModal
"
;
const
MyChats
=
()
=>
{
const
[
loggedUser
,
setLoggedUser
]
=
useState
();
const
{
selectedChat
,
setSelectedChat
,
user
,
chats
,
setChats
}
=
ChatState
();
const
{
user
,
selectedChat
,
setSelectedChat
,
chats
,
setChats
}
=
ChatState
();
const
toast
=
useToast
();
...
...
@@ -22,11 +20,13 @@ const MyChats = () => {
const
config
=
{
headers
:
{
Authorization
:
`Bearer
${
user
.
token
}
`
,
},
};
const
{
data
}
=
await
axios
.
get
(
"
/api/chat
"
,
config
);
console
.
log
(
data
);
setChats
(
data
);
//setting all of the chats
setChats
(
data
);
}
catch
(
error
)
{
toast
({
title
:
"
Error Occured!
"
,
...
...
@@ -35,7 +35,6 @@ const MyChats = () => {
duration
:
5000
,
isClosable
:
true
,
position
:
"
bottom-left
"
,
});
}
};
...
...
@@ -43,11 +42,11 @@ const MyChats = () => {
useEffect
(()
=>
{
setLoggedUser
(
JSON
.
parse
(
localStorage
.
getItem
(
"
userInfo
"
)));
fetchChats
();
},
[]);
},
[])
return
(
<
Box
d
=
{{
base
:
selectedChat
?
"
none
"
:
"
flex
"
,
md
:
"
flex
"
}}
d
isplay
=
{{
base
:
selectedChat
?
"
none
"
:
"
flex
"
,
md
:
"
flex
"
}}
flexDir
=
"
column
"
alignItems
=
"
center
"
p
=
{
3
}
...
...
@@ -61,23 +60,25 @@ const MyChats = () => {
px
=
{
3
}
fontSize
=
{{
base
:
"
28px
"
,
md
:
"
30px
"
}}
fontFamily
=
"
Work sans
"
d
=
"
flex
"
d
isplay
=
"
flex
"
w
=
"
100%
"
justifyContent
=
"
space-between
"
alignItems
=
"
center
"
>
My
Chats
<
GroupChatModal
>
<
Button
d
=
"
flex
"
d
isplay
=
"
flex
"
fontSize
=
{{
base
:
"
17px
"
,
md
:
"
10px
"
,
lg
:
"
17px
"
}}
rightIcon
=
{
<
AddIcon
/>
}
>
New
Organization
Chat
<
/
Button
>
New
Organization
Chat
<
/Button
>
<
/
GroupChatModal
>
<
/Box
>
<
Box
d
=
"
flex
"
d
isplay
=
"
flex
"
flexDir
=
"
column
"
p
=
{
3
}
bg
=
"
#F8F8F8
"
...
...
@@ -100,21 +101,19 @@ const MyChats = () => {
key
=
{
chat
.
_id
}
>
<
Text
>
{
!
chat
.
isGroupChat
?
getSender
(
loggedUser
,
chat
.
users
)
:
chat
.
chatName
}
{
!
chat
.
isGoupChat
?
getSender
(
loggedUser
,
chat
.
users
):
chat
.
chatName
}
<
/Text
>
<
/Box
>
))}
<
/Stack
>
):
(
<
ChatLoading
/>
<
ChatLoading
/>
)}
<
/Box
>
<
/Box
>
<
/Box
>
);
};
export
default
MyChats
;
\ No newline at end of file
export
default
MyChats
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/UserAvatar/UserListItem.js
View file @
da4148ab
import
{
Box
,
Text
}
from
"
@chakra-ui/layout
"
;
import
{
Avatar
}
from
"
@chakra-ui/react
"
;
import
{
Avatar
,
Box
,
Text
}
from
"
@chakra-ui/react
"
;
import
React
from
"
react
"
;
import
{
ChatState
}
from
"
../../Context/ChatProvider
"
;
const
UserListItem
=
({
user
,
handleFunction
})
=>
{
const
UserListItem
=
({
user
,
handleFunction
})
=>
{
return
(
<
Box
onClick
=
{
handleFunction
}
cursor
=
"
pointer
"
bg
=
"
#E8E8E8
"
_hover
=
{{
background
:
"
#38BAC
"
,
background
:
"
#38B
2
AC
"
,
color
:
"
white
"
,
}}
w
=
"
100%
"
d
=
"
flex
"
alignItems
=
"
center
"
color
=
"
black
"
px
=
{
3
}
...
...
@@ -32,7 +29,6 @@ const UserListItem = ({user, handleFunction }) => {
cursor
=
"
pointer
"
name
=
{
user
.
name
}
src
=
{
user
.
pic
}
/
>
<
Box
>
<
Text
>
{
user
.
name
}
<
/Text
>
...
...
@@ -47,4 +43,4 @@ const UserListItem = ({user, handleFunction }) => {
);
};
export
default
UserListItem
;
\ No newline at end of file
export
default
UserListItem
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/GroupChatModal.js
0 → 100644
View file @
da4148ab
import
React
,
{
useState
}
from
"
react
"
;
import
{
useDisclosure
,
Modal
,
ModalBody
,
ModalCloseButton
,
ModalContent
,
ModalFooter
,
ModalHeader
,
ModalOverlay
,
Button
,
useToast
,
FormControl
,
Input
}
from
"
@chakra-ui/react
"
;
import
{
ChatState
}
from
"
../../Context/ChatProvider
"
;
import
axios
from
"
axios
"
;
import
UserListItem
from
"
../UserAvatar/UserListItem
"
;
const
GroupChatModal
=
({
children
})
=>
{
const
{
isOpen
,
onOpen
,
onClose
}
=
useDisclosure
();
const
[
groupChatName
,
setGroupChatName
]
=
useState
();
const
[
selectedUsers
,
setSelectedUsers
]
=
useState
([]);
const
[
search
,
setSearch
]
=
useState
(
""
);
const
[
searchResult
,
setSearchResult
]
=
useState
([]);
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
toast
=
useToast
();
const
{
user
,
chats
,
setChats
}
=
ChatState
();
const
handleSearch
=
async
(
query
)
=>
{
setSearch
(
query
);
if
(
!
query
){
return
;
}
try
{
setLoading
(
true
);
const
config
=
{
headers
:
{
Authorization
:
`Bearer
${
user
.
token
}
`
,
},
};
const
{
data
}
=
await
axios
.
get
(
`/api/user?search=
${
search
}
`
,
config
);
console
.
log
(
data
);
setLoading
(
false
);
setSearchResult
(
data
);
}
catch
(
error
)
{
toast
({
title
:
"
Error Occured!
"
,
description
:
"
Failed to Load the Search Result
"
,
status
:
"
error
"
,
duration
:
5000
,
isClosable
:
true
,
position
:
"
bottom-left
"
,
});
}
};
const
handleSubmit
=
()
=>
{
};
const
handleGroup
=
()
=>
{
};
return
(
<>
<
span
onClick
=
{
onOpen
}
>
{
children
}
<
/span
>
<
Modal
isOpen
=
{
isOpen
}
onClose
=
{
onClose
}
>
<
ModalOverlay
/>
<
ModalContent
>
<
ModalHeader
fontSize
=
"
35px
"
fontFamily
=
"
Work sans
"
display
=
"
flex
"
justifyContent
=
"
center
"
>
Create
Organization
Chat
<
/ModalHeader
>
<
ModalCloseButton
/>
<
ModalBody
display
=
"
flex
"
flexDir
=
"
column
"
alignItems
=
"
center
"
>
<
FormControl
>
<
Input
placeholder
=
"
Organization Name
"
marginBottom
=
{
3
}
onChange
=
{(
e
)
=>
setGroupChatName
(
e
.
target
.
value
)}
/>
<
/FormControl
>
<
FormControl
>
<
Input
placeholder
=
"
Add Users eg:Doctors,Mining Engineers,Emergency Units
"
marginBottom
=
{
1
}
onChange
=
{(
e
)
=>
handleSearch
(
e
.
target
.
value
)}
/>
<
/FormControl
>
{
/* selected users */
}
{
loading
?
(
<
div
>
loading
<
/div
>
)
:
(
searchResult
?.
slice
(
0
,
4
)
.
map
((
user
)
=>
(
<
UserListItem
key
=
{
user
.
_id
}
user
=
{
user
}
handleFunction
=
{()
=>
handleGroup
(
user
)}
/
>
))
)}
<
/ModalBody
>
<
ModalFooter
>
<
Button
colorScheme
=
"
blue
"
onClick
=
{
handleSubmit
}
>
Create
Organization
<
/Button
>
<
/ModalFooter
>
<
/ModalContent
>
<
/Modal
>
<
/
>
);
};
export
default
GroupChatModal
;
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/ProfileModal.js
View file @
da4148ab
import
{
ViewIcon
}
from
"
@chakra-ui/icons
"
;
import
{
useDisclosure
}
from
"
@chakra-ui/react
"
;
import
React
from
"
react
"
;
import
{
IconButton
}
from
"
@chakra-ui/button
"
;
import
{
Modal
}
from
"
@chakra-ui/react
"
;
import
{
ModalOverlay
}
from
"
@chakra-ui/react
"
;
import
{
ModalContent
}
from
"
@chakra-ui/react
"
;
import
{
ModalHeader
}
from
"
@chakra-ui/react
"
;
import
{
ModalCloseButton
}
from
"
@chakra-ui/react
"
;
import
{
ModalBody
}
from
"
@chakra-ui/react
"
;
import
{
Button
}
from
"
@chakra-ui/button
"
;
import
{
ModalFooter
}
from
"
@chakra-ui/react
"
;
import
{
Image
,
Text
}
from
"
@chakra-ui/react
"
;
import
{
ViewIcon
}
from
"
@chakra-ui/icons
"
;
import
{
useDisclosure
,
IconButton
,
Modal
,
ModalOverlay
,
ModalContent
,
ModalHeader
,
ModalCloseButton
,
ModalBody
,
Button
,
ModalFooter
,
Image
,
Text
}
from
"
@chakra-ui/react
"
;
...
...
@@ -72,4 +64,4 @@ const ProfileModal = ({user, children}) => {
);
};
export
default
ProfileModal
;
\ No newline at end of file
export
default
ProfileModal
;
IT18021080/Telemedicine-Chat-App/frontend/src/components/miscellaneous/SideDrawer.js
View file @
da4148ab
import
{
Tooltip
,
Menu
,
MenuButton
,
MenuList
,
Avatar
,
MenuItem
,
MenuDivider
,
Drawer
,
useDisclosure
,
DrawerOverlay
,
DrawerContent
,
DrawerHeader
,
DrawerBody
,
Input
,
useToast
,
Spinner
,
}
from
"
@chakra-ui/react
"
;
//import React from "react";
import
{
Tooltip
,
Menu
,
MenuButton
,
MenuList
,
Avatar
,
MenuItem
,
MenuDivider
,
Box
,
Text
,
Button
,
Drawer
,
useDisclosure
,
DrawerOverlay
,
DrawerContent
,
DrawerHeader
,
DrawerBody
,
Input
,
useToast
,
Spinner
}
from
"
@chakra-ui/react
"
;
import
React
,
{
useState
}
from
"
react
"
;
import
{
BellIcon
,
ChevronDownIcon
}
from
"
@chakra-ui/icons
"
;
import
{
Box
,
Text
}
from
"
@chakra-ui/layout
"
;
import
{
Button
}
from
"
@chakra-ui/button
"
;
import
{
ChatState
}
from
"
../../Context/ChatProvider
"
;
import
ProfileModal
from
"
./ProfileModal
"
;
import
{
useHistory
}
from
"
react-router-dom
"
;
import
axios
from
"
axios
"
;
import
ChatLoading
from
"
../ChatLoading
"
;
import
axios
from
"
axios
"
;
import
UserListItem
from
"
../UserAvatar/UserListItem
"
;
const
SideDrawer
=
()
=>
{
const
[
search
,
setSearch
]
=
useState
(
""
);
const
[
searchResult
,
setSearchResult
]
=
useState
([]);
const
[
loading
,
setLoading
]
=
useState
(
false
);
const
[
loadingChat
,
setLoadingChat
]
=
useState
();
const
{
user
,
setSelectedChat
,
chats
,
setChats
}
=
ChatState
();
const
{
user
,
setSelectedChat
,
chats
,
setChats
}
=
ChatState
();
const
history
=
useHistory
();
const
{
isOpen
,
onOpen
,
onClose
}
=
useDisclosure
();
const
logoutHandler
=
()
=>
{
localStorage
.
removeItem
(
"
userInfo
"
);
history
.
push
(
"
/
"
);
localStorage
.
removeItem
(
"
userInfo
"
);
history
.
push
(
"
/
"
);
};
const
toast
=
useToast
();
const
handleSearch
=
async
()
=>
{
const
handleSearch
=
async
()
=>
{
if
(
!
search
)
{
toast
({
title
:
"
Please Enter something in search
"
,
...
...
@@ -59,7 +43,7 @@ const SideDrawer = () => {
}
try
{
setLoading
(
true
)
setLoading
(
true
)
;
const
config
=
{
headers
:
{
...
...
@@ -68,7 +52,7 @@ const SideDrawer = () => {
};
const
{
data
}
=
await
axios
.
get
(
`/api/user?search=
${
search
}
`
,
config
);
setLoading
(
false
);
setSearchResult
(
data
);
}
catch
(
error
)
{
...
...
@@ -82,20 +66,21 @@ const SideDrawer = () => {
});
}
};
const
accessChat
=
async
(
userId
)
=>
{
const
accessChat
=
async
(
userId
)
=>
{
try
{
setLoadingChat
(
true
);
const
config
=
{
headers
:
{
"
Content-type
"
:
"
application/json
"
,
"
Content-type
"
:
"
application/json
"
,
Authorization
:
`Bearer
${
user
.
token
}
`
,
},
};
const
{
data
}
=
await
axios
.
post
(
"
/api/chat
"
,
{
userId
},
config
);
if
(
!
chats
.
find
((
c
)
=>
c
.
_id
===
data
.
_id
))
setChats
([
data
,
...
chats
]);
//normal find function in java scripts
//normal find function in java script
if
(
!
chats
.
find
((
c
)
=>
c
.
_id
===
data
.
_id
))
setChats
([
data
,
...
chats
]);
setSelectedChat
(
data
);
setLoadingChat
(
false
);
...
...
@@ -105,30 +90,26 @@ const SideDrawer = () => {
title
:
"
Error fetching the chat
"
,
description
:
error
.
message
,
status
:
"
error
"
,
duration
:
5000
,
duration
:
"
5000
"
,
isClosable
:
true
,
position
:
"
bottom-left
"
,
});
}
};
};
return
(
<>
<>
<
Box
d
=
"
flex
"
d
isplay
=
"
flex
"
justifyContent
=
"
space-between
"
alignItems
=
"
center
"
bg
=
"
white
"
w
=
"
100%
"
p
=
"
5px 10px 5px 10px
"
bg
Color
=
"
white
"
w
idth
=
"
100%
"
p
adding
=
"
5px 10px 5px 10px
"
borderWidth
=
"
5px
"
>
<
Tooltip
label
=
"
Search User to chat
"
hasArrow
placement
=
"
bottom-end
"
>
<
Tooltip
label
=
"
Search User to chat
"
hasArrow
placement
=
"
bottom-end
"
>
<
Button
variant
=
"
ghost
"
onClick
=
{
onOpen
}
>
<
i
class
=
"
fas fa-search
"
><
/i
>
<
Text
d
=
{{
base
:
"
none
"
,
md
:
"
flex
"
}}
px
=
"
4
"
>
...
...
@@ -174,19 +155,17 @@ const SideDrawer = () => {
<
DrawerOverlay
/>
<
DrawerContent
>
<
DrawerHeader
borderBottomWidth
=
"
1px
"
>
Search
User
<
/DrawerHeader
>
<
DrawerBody
>
<
Box
d
=
"
flex
"
pb
=
{
2
}
>
<
DrawerBody
>
<
Box
d
isplay
=
"
flex
"
paddingBottom
=
{
2
}
>
<
Input
placeholder
=
"
Search by name or email
"
m
r
=
{
2
}
m
argin
=
{
2
}
value
=
{
search
}
onChange
=
{(
e
)
=>
setSearch
(
e
.
target
.
value
)}
/
>
<
Button
onClick
=
{
handleSearch
}
>
Go
<
/Button
>
>
Go
<
/Button
>
<
/Box
>
{
loading
?
<
ChatLoading
/>
:
(
...
...
@@ -199,13 +178,14 @@ const SideDrawer = () => {
))
)
}
{
loadingChat
&&
<
Spinner
ml
=
"
auto
"
d
=
"
flex
"
/>
}
{
loadingChat
&&
<
Spinner
ml
=
"
auto
"
d
isplay
=
"
flex
"
/>
}
<
/DrawerBody
>
<
/DrawerContent
>
<
/Drawer
>
<
/
>
);
};
export
default
SideDrawer
;
\ No newline at end of file
export
default
SideDrawer
;
IT18021080/Telemedicine-Chat-App/frontend/src/config/ChatLogics.js
View file @
da4148ab
export
const
getSender
=
(
loggedUser
,
users
)
=>
{
//if it is not a organization chat nelow logic will helpfull
return
users
[
0
].
_id
===
loggedUser
.
_id
?
users
[
1
].
name
:
users
[
0
].
name
;
};
\ No newline at end of file
IT18021080/Telemedicine-Chat-App/frontend/src/index.js
View file @
da4148ab
...
...
@@ -7,15 +7,19 @@ import { BrowserRouter } from "react-router-dom";
import
ChatProvider
from
"
./Context/ChatProvider
"
;
ReactDOM
.
render
(
<
ChatProvider
>
<
BrowserRouter
>
<
ChakraProvider
>
<
App
/>
<
/ChakraProvider
>
<
/BrowserRouter
>
<
/ChatProvider>
,
document
.
getElementById
(
"
root
"
)
//rendering everything on root tag
);
IT18021080/Telemedicine-Chat-App/package-lock.json
View file @
da4148ab
{
"name"
:
"
tele-medicine
"
,
"name"
:
"
miner-doc
"
,
"version"
:
"1.0.0"
,
"lockfileVersion"
:
2
,
"requires"
:
true
,
"packages"
:
{
""
:
{
"name"
:
"
tele-medicine
"
,
"name"
:
"
miner-doc
"
,
"version"
:
"1.0.0"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dotenv"
:
"^16.0.0"
,
"express"
:
"^4.17.3"
,
"nodemon"
:
"^2.0.15"
"bcryptjs"
:
"^2.4.3"
,
"colors"
:
"^1.4.0"
,
"dotenv"
:
"^16.0.1"
,
"express"
:
"^4.18.1"
,
"express-async-handler"
:
"^1.2.0"
,
"jsonwebtoken"
:
"^8.5.1"
,
"mongoose"
:
"^6.3.3"
,
"nodemon"
:
"^2.0.16"
}
},
"node_modules/@sindresorhus/is"
:
{
...
...
@@ -33,6 +38,25 @@
"node"
:
">=6"
}
},
"node_modules/@types/node"
:
{
"version"
:
"17.0.33"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz"
,
"integrity"
:
"sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ=="
},
"node_modules/@types/webidl-conversions"
:
{
"version"
:
"6.1.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz"
,
"integrity"
:
"sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
},
"node_modules/@types/whatwg-url"
:
{
"version"
:
"8.2.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz"
,
"integrity"
:
"sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ=="
,
"dependencies"
:
{
"@types/node"
:
"*"
,
"@types/webidl-conversions"
:
"*"
}
},
"node_modules/abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
...
...
@@ -102,6 +126,30 @@
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-js"
:
{
"version"
:
"1.5.1"
,
"resolved"
:
"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
,
"integrity"
:
"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/feross"
},
{
"type"
:
"patreon"
,
"url"
:
"https://www.patreon.com/feross"
},
{
"type"
:
"consulting"
,
"url"
:
"https://feross.org/support"
}
]
},
"node_modules/bcryptjs"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz"
,
"integrity"
:
"sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
},
"node_modules/binary-extensions"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
,
...
...
@@ -111,23 +159,26 @@
}
},
"node_modules/body-parser"
:
{
"version"
:
"1.
19.2
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.
19.2
.tgz"
,
"integrity"
:
"sha512-
SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw
=="
,
"version"
:
"1.
20.0
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.
20.0
.tgz"
,
"integrity"
:
"sha512-
DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg
=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~1.1.2"
,
"http-errors"
:
"1.8.1"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"~2.3.0"
,
"qs"
:
"6.9.7"
,
"raw-body"
:
"2.4.3"
,
"type-is"
:
"~1.6.18"
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.10.3"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/boxen"
:
{
...
...
@@ -171,6 +222,45 @@
"node"
:
">=8"
}
},
"node_modules/bson"
:
{
"version"
:
"4.6.3"
,
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-4.6.3.tgz"
,
"integrity"
:
"sha512-rAqP5hcUVJhXP2MCSNVsf0oM2OGU1So6A9pVRDYayvJ5+hygXHQApf87wd5NlhPM1J9RJnbqxIG/f8QTzRoQ4A=="
,
"dependencies"
:
{
"buffer"
:
"^5.6.0"
},
"engines"
:
{
"node"
:
">=6.9.0"
}
},
"node_modules/buffer"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
,
"integrity"
:
"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/feross"
},
{
"type"
:
"patreon"
,
"url"
:
"https://www.patreon.com/feross"
},
{
"type"
:
"consulting"
,
"url"
:
"https://feross.org/support"
}
],
"dependencies"
:
{
"base64-js"
:
"^1.3.1"
,
"ieee754"
:
"^1.1.13"
}
},
"node_modules/buffer-equal-constant-time"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
,
"integrity"
:
"sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"node_modules/bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
...
...
@@ -218,6 +308,18 @@
"node"
:
">=8"
}
},
"node_modules/call-bind"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
,
"integrity"
:
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
,
"get-intrinsic"
:
"^1.0.2"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/camelcase"
:
{
"version"
:
"6.3.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
,
...
...
@@ -329,6 +431,14 @@
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
,
"integrity"
:
"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/colors"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"
,
"integrity"
:
"sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
,
"engines"
:
{
"node"
:
">=0.1.90"
}
},
"node_modules/concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
...
...
@@ -370,9 +480,9 @@
}
},
"node_modules/cookie"
:
{
"version"
:
"0.
4.2
"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.
4.2
.tgz"
,
"integrity"
:
"sha512-
aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA
=="
,
"version"
:
"0.
5.0
"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.
5.0
.tgz"
,
"integrity"
:
"sha512-
YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw
=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
...
...
@@ -422,18 +532,30 @@
"resolved"
:
"https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz"
,
"integrity"
:
"sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
},
"node_modules/denque"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-2.0.1.tgz"
,
"integrity"
:
"sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
,
"engines"
:
{
"node"
:
">=0.10"
}
},
"node_modules/depd"
:
{
"version"
:
"
1.1.2
"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-
1.1.2
.tgz"
,
"integrity"
:
"sha
1-m81S4UwJd2PnSbJ0xDRu0uVgtak
="
,
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-
2.0.0
.tgz"
,
"integrity"
:
"sha
512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=
="
,
"engines"
:
{
"node"
:
">= 0.
6
"
"node"
:
">= 0.
8
"
}
},
"node_modules/destroy"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"
,
"integrity"
:
"sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
,
"integrity"
:
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
,
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/dot-prop"
:
{
"version"
:
"5.3.0"
,
...
...
@@ -447,9 +569,9 @@
}
},
"node_modules/dotenv"
:
{
"version"
:
"16.0.
0
"
,
"resolved"
:
"https://registry.npmjs.org/dotenv/-/dotenv-16.0.
0
.tgz"
,
"integrity"
:
"sha512-
qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2
Q=="
,
"version"
:
"16.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/dotenv/-/dotenv-16.0.
1
.tgz"
,
"integrity"
:
"sha512-
1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsK
Q=="
,
"engines"
:
{
"node"
:
">=12"
}
...
...
@@ -459,6 +581,14 @@
"resolved"
:
"https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"
,
"integrity"
:
"sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
"node_modules/ecdsa-sig-formatter"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz"
,
"integrity"
:
"sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="
,
"dependencies"
:
{
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
...
...
@@ -507,37 +637,38 @@
}
},
"node_modules/express"
:
{
"version"
:
"4.1
7.3
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.1
7.3
.tgz"
,
"integrity"
:
"sha512-
yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg
=="
,
"version"
:
"4.1
8.1
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.1
8.1
.tgz"
,
"integrity"
:
"sha512-
zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q
=="
,
"dependencies"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.
19.2
"
,
"body-parser"
:
"1.
20.0
"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.
4.2
"
,
"cookie"
:
"0.
5.0
"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"
~1.1.2
"
,
"depd"
:
"
2.0.0
"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"
~1.1.2
"
,
"finalhandler"
:
"
1.2.0
"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.
9.7
"
,
"qs"
:
"6.
10.3
"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.1
7.2
"
,
"serve-static"
:
"1.1
4.2
"
,
"send"
:
"0.1
8.0
"
,
"serve-static"
:
"1.1
5.0
"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"
~1.5.0
"
,
"statuses"
:
"
2.0.1
"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
...
...
@@ -546,6 +677,11 @@
"node"
:
">= 0.10.0"
}
},
"node_modules/express-async-handler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz"
,
"integrity"
:
"sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w=="
},
"node_modules/fill-range"
:
{
"version"
:
"7.0.1"
,
"resolved"
:
"https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
,
...
...
@@ -558,16 +694,16 @@
}
},
"node_modules/finalhandler"
:
{
"version"
:
"1.
1.2
"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.
1.2
.tgz"
,
"integrity"
:
"sha512-
aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA
=="
,
"version"
:
"1.
2.0
"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.
2.0
.tgz"
,
"integrity"
:
"sha512-
5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg
=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"
~1.5.0
"
,
"statuses"
:
"
2.0.1
"
,
"unpipe"
:
"~1.0.0"
},
"engines"
:
{
...
...
@@ -603,6 +739,24 @@
"node"
:
"^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
"integrity"
:
"sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
,
"has"
:
"^1.0.3"
,
"has-symbols"
:
"^1.0.1"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/get-stream"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
,
...
...
@@ -661,9 +815,20 @@
}
},
"node_modules/graceful-fs"
:
{
"version"
:
"4.2.9"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
,
"integrity"
:
"sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
"version"
:
"4.2.10"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
,
"integrity"
:
"sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/has"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has/-/has-1.0.3.tgz"
,
"integrity"
:
"sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
},
"engines"
:
{
"node"
:
">= 0.4.0"
}
},
"node_modules/has-flag"
:
{
"version"
:
"3.0.0"
,
...
...
@@ -673,6 +838,17 @@
"node"
:
">=4"
}
},
"node_modules/has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-yarn"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz"
,
...
...
@@ -687,18 +863,18 @@
"integrity"
:
"sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"node_modules/http-errors"
:
{
"version"
:
"
1.8.1
"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-
1.8.1
.tgz"
,
"integrity"
:
"sha512-
Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g
=="
,
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-
2.0.0
.tgz"
,
"integrity"
:
"sha512-
FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ
=="
,
"dependencies"
:
{
"depd"
:
"
~1.1.2
"
,
"depd"
:
"
2.0.0
"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"
>= 1.5.0 < 2
"
,
"statuses"
:
"
2.0.1
"
,
"toidentifier"
:
"1.0.1"
},
"engines"
:
{
"node"
:
">= 0.
6
"
"node"
:
">= 0.
8
"
}
},
"node_modules/iconv-lite"
:
{
...
...
@@ -712,6 +888,25 @@
"node"
:
">=0.10.0"
}
},
"node_modules/ieee754"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
,
"integrity"
:
"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/feross"
},
{
"type"
:
"patreon"
,
"url"
:
"https://www.patreon.com/feross"
},
{
"type"
:
"consulting"
,
"url"
:
"https://feross.org/support"
}
]
},
"node_modules/ignore-by-default"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
,
...
...
@@ -746,6 +941,11 @@
"node"
:
">=10"
}
},
"node_modules/ip"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"https://registry.npmjs.org/ip/-/ip-1.1.8.tgz"
,
"integrity"
:
"sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"node_modules/ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
...
...
@@ -868,6 +1068,56 @@
"resolved"
:
"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz"
,
"integrity"
:
"sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
"node_modules/jsonwebtoken"
:
{
"version"
:
"8.5.1"
,
"resolved"
:
"https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz"
,
"integrity"
:
"sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w=="
,
"dependencies"
:
{
"jws"
:
"^3.2.2"
,
"lodash.includes"
:
"^4.3.0"
,
"lodash.isboolean"
:
"^3.0.3"
,
"lodash.isinteger"
:
"^4.0.4"
,
"lodash.isnumber"
:
"^3.0.3"
,
"lodash.isplainobject"
:
"^4.0.6"
,
"lodash.isstring"
:
"^4.0.1"
,
"lodash.once"
:
"^4.0.0"
,
"ms"
:
"^2.1.1"
,
"semver"
:
"^5.6.0"
},
"engines"
:
{
"node"
:
">=4"
,
"npm"
:
">=1.4.28"
}
},
"node_modules/jsonwebtoken/node_modules/ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/jwa"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"
,
"integrity"
:
"sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="
,
"dependencies"
:
{
"buffer-equal-constant-time"
:
"1.0.1"
,
"ecdsa-sig-formatter"
:
"1.0.11"
,
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/jws"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"
,
"integrity"
:
"sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="
,
"dependencies"
:
{
"jwa"
:
"^1.4.1"
,
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/kareem"
:
{
"version"
:
"2.3.5"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz"
,
"integrity"
:
"sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
},
"node_modules/keyv"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz"
,
...
...
@@ -887,6 +1137,41 @@
"node"
:
">=8"
}
},
"node_modules/lodash.includes"
:
{
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz"
,
"integrity"
:
"sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
},
"node_modules/lodash.isboolean"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz"
,
"integrity"
:
"sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
},
"node_modules/lodash.isinteger"
:
{
"version"
:
"4.0.4"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz"
,
"integrity"
:
"sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
},
"node_modules/lodash.isnumber"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz"
,
"integrity"
:
"sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
},
"node_modules/lodash.isplainobject"
:
{
"version"
:
"4.0.6"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"
,
"integrity"
:
"sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"node_modules/lodash.isstring"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz"
,
"integrity"
:
"sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"node_modules/lodash.once"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"
,
"integrity"
:
"sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"node_modules/lowercase-keys"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz"
,
...
...
@@ -936,6 +1221,12 @@
"node"
:
">= 0.6"
}
},
"node_modules/memory-pager"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
,
"integrity"
:
"sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
,
"optional"
:
true
},
"node_modules/merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
...
@@ -1003,6 +1294,98 @@
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
,
"integrity"
:
"sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/mongodb"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz"
,
"integrity"
:
"sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA=="
,
"dependencies"
:
{
"bson"
:
"^4.6.2"
,
"denque"
:
"^2.0.1"
,
"mongodb-connection-string-url"
:
"^2.5.2"
,
"socks"
:
"^2.6.2"
},
"engines"
:
{
"node"
:
">=12.9.0"
},
"optionalDependencies"
:
{
"saslprep"
:
"^1.0.3"
}
},
"node_modules/mongodb-connection-string-url"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz"
,
"integrity"
:
"sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA=="
,
"dependencies"
:
{
"@types/whatwg-url"
:
"^8.2.1"
,
"whatwg-url"
:
"^11.0.0"
}
},
"node_modules/mongoose"
:
{
"version"
:
"6.3.3"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-6.3.3.tgz"
,
"integrity"
:
"sha512-bAGuf+6mXuVjKReNcOGjdI05y9g0JXnRpZ3/PBN3kVXIn3rbhbFwR/lPbuwtsBsWhlblMK8tieDeFAVzV6yhww=="
,
"dependencies"
:
{
"bson"
:
"^4.6.2"
,
"kareem"
:
"2.3.5"
,
"mongodb"
:
"4.5.0"
,
"mpath"
:
"0.9.0"
,
"mquery"
:
"4.0.2"
,
"ms"
:
"2.1.3"
,
"sift"
:
"16.0.0"
},
"engines"
:
{
"node"
:
">=12.0.0"
},
"funding"
:
{
"type"
:
"opencollective"
,
"url"
:
"https://opencollective.com/mongoose"
}
},
"node_modules/mongoose/node_modules/ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/mpath"
:
{
"version"
:
"0.9.0"
,
"resolved"
:
"https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz"
,
"integrity"
:
"sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew=="
,
"engines"
:
{
"node"
:
">=4.0.0"
}
},
"node_modules/mquery"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz"
,
"integrity"
:
"sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA=="
,
"dependencies"
:
{
"debug"
:
"4.x"
},
"engines"
:
{
"node"
:
">=12.0.0"
}
},
"node_modules/mquery/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/mquery/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
...
...
@@ -1017,9 +1400,9 @@
}
},
"node_modules/nodemon"
:
{
"version"
:
"2.0.1
5
"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-2.0.1
5
.tgz"
,
"integrity"
:
"sha512-
gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA
=="
,
"version"
:
"2.0.1
6
"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-2.0.1
6
.tgz"
,
"integrity"
:
"sha512-
zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w
=="
,
"hasInstallScript"
:
true
,
"dependencies"
:
{
"chokidar"
:
"^3.5.2"
,
...
...
@@ -1087,10 +1470,18 @@
"node"
:
">=8"
}
},
"node_modules/object-inspect"
:
{
"version"
:
"1.12.0"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz"
,
"integrity"
:
"sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/on-finished"
:
{
"version"
:
"2.
3.0
"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.
3.0
.tgz"
,
"integrity"
:
"sha
1-IPEzZIGwg811M3mSoWlxqi2QaUc
="
,
"version"
:
"2.
4.1
"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.
4.1
.tgz"
,
"integrity"
:
"sha
512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=
="
,
"dependencies"
:
{
"ee-first"
:
"1.1.1"
},
...
...
@@ -1194,6 +1585,14 @@
"once"
:
"^1.3.1"
}
},
"node_modules/punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/pupa"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz"
,
...
...
@@ -1206,9 +1605,12 @@
}
},
"node_modules/qs"
:
{
"version"
:
"6.9.7"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.9.7.tgz"
,
"integrity"
:
"sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
,
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
"integrity"
:
"sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ=="
,
"dependencies"
:
{
"side-channel"
:
"^1.0.4"
},
"engines"
:
{
"node"
:
">=0.6"
},
...
...
@@ -1225,12 +1627,12 @@
}
},
"node_modules/raw-body"
:
{
"version"
:
"2.
4.3
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
4.3
.tgz"
,
"integrity"
:
"sha512-
UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07
g=="
,
"version"
:
"2.
5.1
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
5.1
.tgz"
,
"integrity"
:
"sha512-
qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXi
g=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"
1.8.1
"
,
"http-errors"
:
"
2.0.0
"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
},
...
...
@@ -1322,6 +1724,18 @@
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/saslprep"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"
,
"integrity"
:
"sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="
,
"optional"
:
true
,
"dependencies"
:
{
"sparse-bitfield"
:
"^3.0.3"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/semver"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
,
...
...
@@ -1350,23 +1764,23 @@
}
},
"node_modules/send"
:
{
"version"
:
"0.1
7.2
"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.1
7.2
.tgz"
,
"integrity"
:
"sha512-
UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww
=="
,
"version"
:
"0.1
8.0
"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.1
8.0
.tgz"
,
"integrity"
:
"sha512-
qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg
=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"
~1.1.2
"
,
"destroy"
:
"
~1.0.4
"
,
"depd"
:
"
2.0.0
"
,
"destroy"
:
"
1.2.0
"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"
1.8.1
"
,
"http-errors"
:
"
2.0.0
"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"
~1.5.0
"
"statuses"
:
"
2.0.1
"
},
"engines"
:
{
"node"
:
">= 0.8.0"
...
...
@@ -1378,14 +1792,14 @@
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static"
:
{
"version"
:
"1.1
4.2
"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.1
4.2
.tgz"
,
"integrity"
:
"sha512-
+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ
=="
,
"version"
:
"1.1
5.0
"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.1
5.0
.tgz"
,
"integrity"
:
"sha512-
XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g
=="
,
"dependencies"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.1
7.2
"
"send"
:
"0.1
8.0
"
},
"engines"
:
{
"node"
:
">= 0.8.0"
...
...
@@ -1396,17 +1810,66 @@
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/side-channel"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
,
"integrity"
:
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
,
"dependencies"
:
{
"call-bind"
:
"^1.0.0"
,
"get-intrinsic"
:
"^1.0.2"
,
"object-inspect"
:
"^1.9.0"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/sift"
:
{
"version"
:
"16.0.0"
,
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-16.0.0.tgz"
,
"integrity"
:
"sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
},
"node_modules/signal-exit"
:
{
"version"
:
"3.0.7"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
,
"integrity"
:
"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/smart-buffer"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz"
,
"integrity"
:
"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
,
"engines"
:
{
"node"
:
">= 6.0.0"
,
"npm"
:
">= 3.0.0"
}
},
"node_modules/socks"
:
{
"version"
:
"2.6.2"
,
"resolved"
:
"https://registry.npmjs.org/socks/-/socks-2.6.2.tgz"
,
"integrity"
:
"sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA=="
,
"dependencies"
:
{
"ip"
:
"^1.1.5"
,
"smart-buffer"
:
"^4.2.0"
},
"engines"
:
{
"node"
:
">= 10.13.0"
,
"npm"
:
">= 3.0.0"
}
},
"node_modules/sparse-bitfield"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
,
"integrity"
:
"sha1-/0rm5oZWBWuks+eSqzM004JzyhE="
,
"optional"
:
true
,
"dependencies"
:
{
"memory-pager"
:
"^1.0.2"
}
},
"node_modules/statuses"
:
{
"version"
:
"
1.5.0
"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-
1.5.0
.tgz"
,
"integrity"
:
"sha
1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow
="
,
"version"
:
"
2.0.1
"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-
2.0.1
.tgz"
,
"integrity"
:
"sha
512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=
="
,
"engines"
:
{
"node"
:
">= 0.
6
"
"node"
:
">= 0.
8
"
}
},
"node_modules/string-width"
:
{
...
...
@@ -1490,6 +1953,17 @@
"nodetouch"
:
"bin/nodetouch.js"
}
},
"node_modules/tr46"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz"
,
"integrity"
:
"sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA=="
,
"dependencies"
:
{
"punycode"
:
"^2.1.1"
},
"engines"
:
{
"node"
:
">=12"
}
},
"node_modules/type-fest"
:
{
"version"
:
"0.20.2"
,
"resolved"
:
"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
,
...
...
@@ -1573,9 +2047,9 @@
}
},
"node_modules/update-notifier/node_modules/semver"
:
{
"version"
:
"7.3.
5
"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.3.
5
.tgz"
,
"integrity"
:
"sha512-
PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ
=="
,
"version"
:
"7.3.
7
"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.3.
7
.tgz"
,
"integrity"
:
"sha512-
QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g
=="
,
"dependencies"
:
{
"lru-cache"
:
"^6.0.0"
},
...
...
@@ -1613,6 +2087,26 @@
"node"
:
">= 0.8"
}
},
"node_modules/webidl-conversions"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
,
"integrity"
:
"sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
,
"engines"
:
{
"node"
:
">=12"
}
},
"node_modules/whatwg-url"
:
{
"version"
:
"11.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz"
,
"integrity"
:
"sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ=="
,
"dependencies"
:
{
"tr46"
:
"^3.0.0"
,
"webidl-conversions"
:
"^7.0.0"
},
"engines"
:
{
"node"
:
">=12"
}
},
"node_modules/widest-line"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz"
,
...
...
@@ -1684,6 +2178,25 @@
"defer-to-connect"
:
"^1.0.1"
}
},
"@types/node"
:
{
"version"
:
"17.0.33"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-17.0.33.tgz"
,
"integrity"
:
"sha512-miWq2m2FiQZmaHfdZNcbpp9PuXg34W5JZ5CrJ/BaS70VuhoJENBEQybeiYSaPBRNq6KQGnjfEnc/F3PN++D+XQ=="
},
"@types/webidl-conversions"
:
{
"version"
:
"6.1.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz"
,
"integrity"
:
"sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
},
"@types/whatwg-url"
:
{
"version"
:
"8.2.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz"
,
"integrity"
:
"sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ=="
,
"requires"
:
{
"@types/node"
:
"*"
,
"@types/webidl-conversions"
:
"*"
}
},
"abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
...
...
@@ -1738,26 +2251,38 @@
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base64-js"
:
{
"version"
:
"1.5.1"
,
"resolved"
:
"https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
,
"integrity"
:
"sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bcryptjs"
:
{
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz"
,
"integrity"
:
"sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms="
},
"binary-extensions"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
,
"integrity"
:
"sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
},
"body-parser"
:
{
"version"
:
"1.
19.2
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.
19.2
.tgz"
,
"integrity"
:
"sha512-
SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw
=="
,
"version"
:
"1.
20.0
"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.
20.0
.tgz"
,
"integrity"
:
"sha512-
DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg
=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~1.1.2"
,
"http-errors"
:
"1.8.1"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"~2.3.0"
,
"qs"
:
"6.9.7"
,
"raw-body"
:
"2.4.3"
,
"type-is"
:
"~1.6.18"
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.10.3"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
}
},
"boxen"
:
{
...
...
@@ -1792,6 +2317,28 @@
"fill-range"
:
"^7.0.1"
}
},
"bson"
:
{
"version"
:
"4.6.3"
,
"resolved"
:
"https://registry.npmjs.org/bson/-/bson-4.6.3.tgz"
,
"integrity"
:
"sha512-rAqP5hcUVJhXP2MCSNVsf0oM2OGU1So6A9pVRDYayvJ5+hygXHQApf87wd5NlhPM1J9RJnbqxIG/f8QTzRoQ4A=="
,
"requires"
:
{
"buffer"
:
"^5.6.0"
}
},
"buffer"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
,
"integrity"
:
"sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="
,
"requires"
:
{
"base64-js"
:
"^1.3.1"
,
"ieee754"
:
"^1.1.13"
}
},
"buffer-equal-constant-time"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
,
"integrity"
:
"sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
...
...
@@ -1826,6 +2373,15 @@
}
}
},
"call-bind"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
,
"integrity"
:
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"get-intrinsic"
:
"^1.0.2"
}
},
"camelcase"
:
{
"version"
:
"6.3.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
,
...
...
@@ -1901,6 +2457,11 @@
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
,
"integrity"
:
"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"colors"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"
,
"integrity"
:
"sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
},
"concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
...
...
@@ -1933,9 +2494,9 @@
"integrity"
:
"sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"cookie"
:
{
"version"
:
"0.
4.2
"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.
4.2
.tgz"
,
"integrity"
:
"sha512-
aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA
=="
"version"
:
"0.
5.0
"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.
5.0
.tgz"
,
"integrity"
:
"sha512-
YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw
=="
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
...
...
@@ -1973,15 +2534,20 @@
"resolved"
:
"https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz"
,
"integrity"
:
"sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
},
"denque"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-2.0.1.tgz"
,
"integrity"
:
"sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
},
"depd"
:
{
"version"
:
"
1.1.2
"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-
1.1.2
.tgz"
,
"integrity"
:
"sha
1-m81S4UwJd2PnSbJ0xDRu0uVgtak
="
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-
2.0.0
.tgz"
,
"integrity"
:
"sha
512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=
="
},
"destroy"
:
{
"version"
:
"1.
0.4
"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.
0.4
.tgz"
,
"integrity"
:
"sha
1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA
="
"version"
:
"1.
2.0
"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.
2.0
.tgz"
,
"integrity"
:
"sha
512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=
="
},
"dot-prop"
:
{
"version"
:
"5.3.0"
,
...
...
@@ -1992,15 +2558,23 @@
}
},
"dotenv"
:
{
"version"
:
"16.0.
0
"
,
"resolved"
:
"https://registry.npmjs.org/dotenv/-/dotenv-16.0.
0
.tgz"
,
"integrity"
:
"sha512-
qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2
Q=="
"version"
:
"16.0.
1
"
,
"resolved"
:
"https://registry.npmjs.org/dotenv/-/dotenv-16.0.
1
.tgz"
,
"integrity"
:
"sha512-
1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsK
Q=="
},
"duplexer3"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz"
,
"integrity"
:
"sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
},
"ecdsa-sig-formatter"
:
{
"version"
:
"1.0.11"
,
"resolved"
:
"https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz"
,
"integrity"
:
"sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ=="
,
"requires"
:
{
"safe-buffer"
:
"^5.0.1"
}
},
"ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
...
...
@@ -2040,42 +2614,48 @@
"integrity"
:
"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express"
:
{
"version"
:
"4.1
7.3
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.1
7.3
.tgz"
,
"integrity"
:
"sha512-
yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg
=="
,
"version"
:
"4.1
8.1
"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.1
8.1
.tgz"
,
"integrity"
:
"sha512-
zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q
=="
,
"requires"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.
19.2
"
,
"body-parser"
:
"1.
20.0
"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.
4.2
"
,
"cookie"
:
"0.
5.0
"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"
~1.1.2
"
,
"depd"
:
"
2.0.0
"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"
~1.1.2
"
,
"finalhandler"
:
"
1.2.0
"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.
9.7
"
,
"qs"
:
"6.
10.3
"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.1
7.2
"
,
"serve-static"
:
"1.1
4.2
"
,
"send"
:
"0.1
8.0
"
,
"serve-static"
:
"1.1
5.0
"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"
~1.5.0
"
,
"statuses"
:
"
2.0.1
"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
}
},
"express-async-handler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/express-async-handler/-/express-async-handler-1.2.0.tgz"
,
"integrity"
:
"sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w=="
},
"fill-range"
:
{
"version"
:
"7.0.1"
,
"resolved"
:
"https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
,
...
...
@@ -2085,16 +2665,16 @@
}
},
"finalhandler"
:
{
"version"
:
"1.
1.2
"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.
1.2
.tgz"
,
"integrity"
:
"sha512-
aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA
=="
,
"version"
:
"1.
2.0
"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.
2.0
.tgz"
,
"integrity"
:
"sha512-
5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg
=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"
~1.5.0
"
,
"statuses"
:
"
2.0.1
"
,
"unpipe"
:
"~1.0.0"
}
},
...
...
@@ -2114,6 +2694,21 @@
"integrity"
:
"sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
,
"optional"
:
true
},
"function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
"integrity"
:
"sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"has"
:
"^1.0.3"
,
"has-symbols"
:
"^1.0.1"
}
},
"get-stream"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
,
...
...
@@ -2157,15 +2752,28 @@
}
},
"graceful-fs"
:
{
"version"
:
"4.2.9"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz"
,
"integrity"
:
"sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
"version"
:
"4.2.10"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz"
,
"integrity"
:
"sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"has"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has/-/has-1.0.3.tgz"
,
"integrity"
:
"sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
}
},
"has-flag"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
,
"integrity"
:
"sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-yarn"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz"
,
...
...
@@ -2177,14 +2785,14 @@
"integrity"
:
"sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-errors"
:
{
"version"
:
"
1.8.1
"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-
1.8.1
.tgz"
,
"integrity"
:
"sha512-
Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g
=="
,
"version"
:
"
2.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-
2.0.0
.tgz"
,
"integrity"
:
"sha512-
FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ
=="
,
"requires"
:
{
"depd"
:
"
~1.1.2
"
,
"depd"
:
"
2.0.0
"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"
>= 1.5.0 < 2
"
,
"statuses"
:
"
2.0.1
"
,
"toidentifier"
:
"1.0.1"
}
},
...
...
@@ -2196,6 +2804,11 @@
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"ieee754"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
,
"integrity"
:
"sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"ignore-by-default"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz"
,
...
...
@@ -2221,6 +2834,11 @@
"resolved"
:
"https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
,
"integrity"
:
"sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
},
"ip"
:
{
"version"
:
"1.1.8"
,
"resolved"
:
"https://registry.npmjs.org/ip/-/ip-1.1.8.tgz"
,
"integrity"
:
"sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
...
...
@@ -2304,6 +2922,54 @@
"resolved"
:
"https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz"
,
"integrity"
:
"sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
},
"jsonwebtoken"
:
{
"version"
:
"8.5.1"
,
"resolved"
:
"https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz"
,
"integrity"
:
"sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w=="
,
"requires"
:
{
"jws"
:
"^3.2.2"
,
"lodash.includes"
:
"^4.3.0"
,
"lodash.isboolean"
:
"^3.0.3"
,
"lodash.isinteger"
:
"^4.0.4"
,
"lodash.isnumber"
:
"^3.0.3"
,
"lodash.isplainobject"
:
"^4.0.6"
,
"lodash.isstring"
:
"^4.0.1"
,
"lodash.once"
:
"^4.0.0"
,
"ms"
:
"^2.1.1"
,
"semver"
:
"^5.6.0"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"jwa"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"
,
"integrity"
:
"sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="
,
"requires"
:
{
"buffer-equal-constant-time"
:
"1.0.1"
,
"ecdsa-sig-formatter"
:
"1.0.11"
,
"safe-buffer"
:
"^5.0.1"
}
},
"jws"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"
,
"integrity"
:
"sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="
,
"requires"
:
{
"jwa"
:
"^1.4.1"
,
"safe-buffer"
:
"^5.0.1"
}
},
"kareem"
:
{
"version"
:
"2.3.5"
,
"resolved"
:
"https://registry.npmjs.org/kareem/-/kareem-2.3.5.tgz"
,
"integrity"
:
"sha512-qxCyQtp3ioawkiRNQr/v8xw9KIviMSSNmy+63Wubj7KmMn3g7noRXIZB4vPCAP+ETi2SR8eH6CvmlKZuGpoHOg=="
},
"keyv"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz"
,
...
...
@@ -2320,6 +2986,41 @@
"package-json"
:
"^6.3.0"
}
},
"lodash.includes"
:
{
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz"
,
"integrity"
:
"sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
},
"lodash.isboolean"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz"
,
"integrity"
:
"sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
},
"lodash.isinteger"
:
{
"version"
:
"4.0.4"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz"
,
"integrity"
:
"sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
},
"lodash.isnumber"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz"
,
"integrity"
:
"sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
},
"lodash.isplainobject"
:
{
"version"
:
"4.0.6"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz"
,
"integrity"
:
"sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"lodash.isstring"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz"
,
"integrity"
:
"sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"lodash.once"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"
,
"integrity"
:
"sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
},
"lowercase-keys"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz"
,
...
...
@@ -2353,6 +3054,12 @@
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"memory-pager"
:
{
"version"
:
"1.5.0"
,
"resolved"
:
"https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz"
,
"integrity"
:
"sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg=="
,
"optional"
:
true
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
...
@@ -2399,6 +3106,76 @@
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
,
"integrity"
:
"sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"mongodb"
:
{
"version"
:
"4.5.0"
,
"resolved"
:
"https://registry.npmjs.org/mongodb/-/mongodb-4.5.0.tgz"
,
"integrity"
:
"sha512-A2l8MjEpKojnhbCM0MK3+UOGUSGvTNNSv7AkP1fsT7tkambrkkqN/5F2y+PhzsV0Nbv58u04TETpkaSEdI2zKA=="
,
"requires"
:
{
"bson"
:
"^4.6.2"
,
"denque"
:
"^2.0.1"
,
"mongodb-connection-string-url"
:
"^2.5.2"
,
"saslprep"
:
"^1.0.3"
,
"socks"
:
"^2.6.2"
}
},
"mongodb-connection-string-url"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz"
,
"integrity"
:
"sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA=="
,
"requires"
:
{
"@types/whatwg-url"
:
"^8.2.1"
,
"whatwg-url"
:
"^11.0.0"
}
},
"mongoose"
:
{
"version"
:
"6.3.3"
,
"resolved"
:
"https://registry.npmjs.org/mongoose/-/mongoose-6.3.3.tgz"
,
"integrity"
:
"sha512-bAGuf+6mXuVjKReNcOGjdI05y9g0JXnRpZ3/PBN3kVXIn3rbhbFwR/lPbuwtsBsWhlblMK8tieDeFAVzV6yhww=="
,
"requires"
:
{
"bson"
:
"^4.6.2"
,
"kareem"
:
"2.3.5"
,
"mongodb"
:
"4.5.0"
,
"mpath"
:
"0.9.0"
,
"mquery"
:
"4.0.2"
,
"ms"
:
"2.1.3"
,
"sift"
:
"16.0.0"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"mpath"
:
{
"version"
:
"0.9.0"
,
"resolved"
:
"https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz"
,
"integrity"
:
"sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew=="
},
"mquery"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/mquery/-/mquery-4.0.2.tgz"
,
"integrity"
:
"sha512-oAVF0Nil1mT3rxty6Zln4YiD6x6QsUWYz927jZzjMxOK2aqmhEz5JQ7xmrKK7xRFA2dwV+YaOpKU/S+vfNqKxA=="
,
"requires"
:
{
"debug"
:
"4.x"
},
"dependencies"
:
{
"debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"requires"
:
{
"ms"
:
"2.1.2"
}
},
"ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
...
...
@@ -2410,9 +3187,9 @@
"integrity"
:
"sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"nodemon"
:
{
"version"
:
"2.0.1
5
"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-2.0.1
5
.tgz"
,
"integrity"
:
"sha512-
gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA
=="
,
"version"
:
"2.0.1
6
"
,
"resolved"
:
"https://registry.npmjs.org/nodemon/-/nodemon-2.0.1
6
.tgz"
,
"integrity"
:
"sha512-
zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w
=="
,
"requires"
:
{
"chokidar"
:
"^3.5.2"
,
"debug"
:
"^3.2.7"
,
...
...
@@ -2459,10 +3236,15 @@
"resolved"
:
"https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz"
,
"integrity"
:
"sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
},
"object-inspect"
:
{
"version"
:
"1.12.0"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz"
,
"integrity"
:
"sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
},
"on-finished"
:
{
"version"
:
"2.
3.0
"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.
3.0
.tgz"
,
"integrity"
:
"sha
1-IPEzZIGwg811M3mSoWlxqi2QaUc
="
,
"version"
:
"2.
4.1
"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.
4.1
.tgz"
,
"integrity"
:
"sha
512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=
="
,
"requires"
:
{
"ee-first"
:
"1.1.1"
}
...
...
@@ -2541,6 +3323,11 @@
"once"
:
"^1.3.1"
}
},
"punycode"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"pupa"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz"
,
...
...
@@ -2550,9 +3337,12 @@
}
},
"qs"
:
{
"version"
:
"6.9.7"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.9.7.tgz"
,
"integrity"
:
"sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
"integrity"
:
"sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ=="
,
"requires"
:
{
"side-channel"
:
"^1.0.4"
}
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
...
...
@@ -2560,12 +3350,12 @@
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body"
:
{
"version"
:
"2.
4.3
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
4.3
.tgz"
,
"integrity"
:
"sha512-
UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07
g=="
,
"version"
:
"2.
5.1
"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.
5.1
.tgz"
,
"integrity"
:
"sha512-
qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXi
g=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"
1.8.1
"
,
"http-errors"
:
"
2.0.0
"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
}
...
...
@@ -2630,6 +3420,15 @@
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"saslprep"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz"
,
"integrity"
:
"sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag=="
,
"optional"
:
true
,
"requires"
:
{
"sparse-bitfield"
:
"^3.0.3"
}
},
"semver"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
,
...
...
@@ -2651,23 +3450,23 @@
}
},
"send"
:
{
"version"
:
"0.1
7.2
"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.1
7.2
.tgz"
,
"integrity"
:
"sha512-
UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww
=="
,
"version"
:
"0.1
8.0
"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.1
8.0
.tgz"
,
"integrity"
:
"sha512-
qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg
=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"
~1.1.2
"
,
"destroy"
:
"
~1.0.4
"
,
"depd"
:
"
2.0.0
"
,
"destroy"
:
"
1.2.0
"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"
1.8.1
"
,
"http-errors"
:
"
2.0.0
"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"
~2.3.0
"
,
"on-finished"
:
"
2.4.1
"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"
~1.5.0
"
"statuses"
:
"
2.0.1
"
},
"dependencies"
:
{
"ms"
:
{
...
...
@@ -2678,14 +3477,14 @@
}
},
"serve-static"
:
{
"version"
:
"1.1
4.2
"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.1
4.2
.tgz"
,
"integrity"
:
"sha512-
+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ
=="
,
"version"
:
"1.1
5.0
"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.1
5.0
.tgz"
,
"integrity"
:
"sha512-
XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g
=="
,
"requires"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.1
7.2
"
"send"
:
"0.1
8.0
"
}
},
"setprototypeof"
:
{
...
...
@@ -2693,15 +3492,53 @@
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"side-channel"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
,
"integrity"
:
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
,
"requires"
:
{
"call-bind"
:
"^1.0.0"
,
"get-intrinsic"
:
"^1.0.2"
,
"object-inspect"
:
"^1.9.0"
}
},
"sift"
:
{
"version"
:
"16.0.0"
,
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-16.0.0.tgz"
,
"integrity"
:
"sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
},
"signal-exit"
:
{
"version"
:
"3.0.7"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
,
"integrity"
:
"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"smart-buffer"
:
{
"version"
:
"4.2.0"
,
"resolved"
:
"https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz"
,
"integrity"
:
"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
},
"socks"
:
{
"version"
:
"2.6.2"
,
"resolved"
:
"https://registry.npmjs.org/socks/-/socks-2.6.2.tgz"
,
"integrity"
:
"sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA=="
,
"requires"
:
{
"ip"
:
"^1.1.5"
,
"smart-buffer"
:
"^4.2.0"
}
},
"sparse-bitfield"
:
{
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz"
,
"integrity"
:
"sha1-/0rm5oZWBWuks+eSqzM004JzyhE="
,
"optional"
:
true
,
"requires"
:
{
"memory-pager"
:
"^1.0.2"
}
},
"statuses"
:
{
"version"
:
"
1.5.0
"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-
1.5.0
.tgz"
,
"integrity"
:
"sha
1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow
="
"version"
:
"
2.0.1
"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-
2.0.1
.tgz"
,
"integrity"
:
"sha
512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=
="
},
"string-width"
:
{
"version"
:
"4.2.3"
,
...
...
@@ -2760,6 +3597,14 @@
"nopt"
:
"~1.0.10"
}
},
"tr46"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz"
,
"integrity"
:
"sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA=="
,
"requires"
:
{
"punycode"
:
"^2.1.1"
}
},
"type-fest"
:
{
"version"
:
"0.20.2"
,
"resolved"
:
"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
,
...
...
@@ -2822,9 +3667,9 @@
},
"dependencies"
:
{
"semver"
:
{
"version"
:
"7.3.
5
"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.3.
5
.tgz"
,
"integrity"
:
"sha512-
PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ
=="
,
"version"
:
"7.3.
7
"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.3.
7
.tgz"
,
"integrity"
:
"sha512-
QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g
=="
,
"requires"
:
{
"lru-cache"
:
"^6.0.0"
}
...
...
@@ -2849,6 +3694,20 @@
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"webidl-conversions"
:
{
"version"
:
"7.0.0"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz"
,
"integrity"
:
"sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
},
"whatwg-url"
:
{
"version"
:
"11.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz"
,
"integrity"
:
"sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ=="
,
"requires"
:
{
"tr46"
:
"^3.0.0"
,
"webidl-conversions"
:
"^7.0.0"
}
},
"widest-line"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz"
,
...
...
IT18021080/Telemedicine-Chat-App/package.json
View file @
da4148ab
{
"name"
:
"
tele-medicine
"
,
"name"
:
"
miner-doc
"
,
"version"
:
"1.0.0"
,
"description"
:
""
,
"main"
:
"server.js"
,
...
...
@@ -9,8 +9,13 @@
"author"
:
"Minosh Balasuriya"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"dotenv"
:
"^16.0.0"
,
"express"
:
"^4.17.3"
,
"nodemon"
:
"^2.0.15"
"bcryptjs"
:
"^2.4.3"
,
"colors"
:
"^1.4.0"
,
"dotenv"
:
"^16.0.1"
,
"express"
:
"^4.18.1"
,
"express-async-handler"
:
"^1.2.0"
,
"jsonwebtoken"
:
"^8.5.1"
,
"mongoose"
:
"^6.3.3"
,
"nodemon"
:
"^2.0.16"
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment