ankpan18 commited on
Commit
4bc7d02
·
0 Parent(s):

First Commit

Browse files
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ node_modules
2
+ .env
Dockerfile ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ FROM node:18-alpine
2
+
3
+ COPY . /app
4
+ WORKDIR /app
5
+ EXPOSE 5000
6
+
7
+ RUN npm install;
8
+ CMD node main.js
README.md ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Node Server
3
+ emoji: 🌖
4
+ colorFrom: pink
5
+ colorTo: red
6
+ sdk: docker
7
+ pinned: false
8
+ app_port: 5000
9
+ ---
10
+
11
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
configurations/database.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ const mongoose = require('mongoose');
3
+ const dotenv = require('dotenv');
4
+ dotenv.config();
5
+
6
+ const databaseURL = process.env.DATABASE_URL;
7
+
8
+ const databaseConfiguration = async () => {
9
+ try {
10
+ await mongoose.connect(databaseURL, {
11
+ useNewUrlParser: true,
12
+ useUnifiedTopology: true,
13
+ });
14
+ console.log('Database connected');
15
+ } catch (err) {
16
+ console.log(err);
17
+ process.exit(1);
18
+ }
19
+ };
20
+
21
+ module.exports = databaseConfiguration;
controllers/vendor.controller.js ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //Controller File
2
+
3
+ const VendorApp = require("../models/models.js");
4
+
5
+ exports.createOneVendor = (req, res) => {
6
+ VendorApp.create(req.body)
7
+ .then((vendor) => {
8
+ console.log({ vendor });
9
+ res.json({
10
+ message: "Cheers!! You have successfully added Vendor Info",
11
+ vendor,
12
+ });
13
+ })
14
+ .catch((err) => {
15
+ res.status(404).json({
16
+ message: "Sorry your Vendor information cannot be added due to error",
17
+ error: err.message,
18
+ });
19
+ });
20
+ };
21
+
22
+ exports.listAllVendor = (req, res) => {
23
+ VendorApp.find()
24
+ .then((vendor) => {
25
+ console.log({ vendor });
26
+ res.json(vendor);
27
+ })
28
+ .catch((err) => {
29
+ res
30
+ .status(404)
31
+ .json({ message: "There isnt any vendor list available", error: err.message });
32
+ });
33
+
34
+ };
35
+
36
+
37
+
38
+ exports.updateOneVendor = (req, res) => {
39
+ VendorApp.findByIdAndUpdate(req.params.id, req.body)
40
+ .then((vendor) => {
41
+ console.log({ vendor });
42
+ return res.json({
43
+ message: "Wohoo! You have successfully updated vendor item",
44
+ vendor,
45
+ });
46
+ })
47
+ .catch((err) => {
48
+ res.status(404).json({
49
+ message: "Sorry your vendor list cannot be updated due to error",
50
+ error: err.message,
51
+ });
52
+ });
53
+ };
54
+
55
+ exports.deleteVendor = (req, res) => {
56
+ VendorApp.findByIdAndRemove(req.params.id, req.body)
57
+ .then((vendor) => {
58
+ console.log({ vendor });
59
+ res.json({
60
+ message: "Success! You have successfully deleted your vendor item",
61
+ vendor,
62
+ });
63
+ })
64
+ .catch((err) => {
65
+ res.status(404).json({
66
+ message: "Sorry your todo is not there",
67
+ error: err.message,
68
+ });
69
+ });
70
+ };
71
+
72
+
73
+ exports.getOneVendor = (req, res) => {
74
+ VendorApp.findById(req.params.id)
75
+ .then((vendor) => {
76
+ console.log({ vendor });
77
+ res.json({
78
+ message: "Success! You have successfully fetched particular vendor item by ID",
79
+ vendor,
80
+ });
81
+ })
82
+ .catch((err) => {
83
+ res.status(404).json({
84
+ message: "Sorry your Vendor list is not there",
85
+ error: err.message,
86
+ });
87
+ });
88
+ };
89
+
90
+ exports.getVendorByPage = (req, res) => {
91
+ let page = parseInt(req.params.page);
92
+ let pageSize = 5;
93
+ VendorApp.find()
94
+ .then((vendors) => {
95
+ let totalCount = vendors.length;
96
+ let vendorPage = vendors.slice((page - 1) * pageSize, page * pageSize);
97
+ console.log({ vendorPage });
98
+ res.status(200).json({vendor:vendorPage,
99
+ page:totalCount});
100
+ })
101
+ .catch((err) => {
102
+ res.status(404).json({
103
+ message: "Sorry your Vendor list is not there",
104
+ error: err.message,
105
+ });
106
+ });
107
+ };
main.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const express = require("express");
2
+ const cors = require("cors");
3
+ const databaseConfiguration = require('./configurations/database.js');
4
+ const banking = require("./routes/vendor.routes.js");
5
+ const dotenv = require("dotenv");
6
+ const BASE_URL=process.env.BASE_URL;
7
+
8
+ dotenv.config();
9
+
10
+ const app = express();
11
+
12
+ const PORT = process.env.PORT || 5000;
13
+
14
+ //Connecting to the Mongodb database
15
+ databaseConfiguration();
16
+
17
+ //Adding CORS Support
18
+ app.use(cors({origin:true, credentials:true}));
19
+
20
+ // add the middlewares
21
+ app.use(express.json({ extended: false }));
22
+ app.get('/', (req, res) => res.send('<h1>Server is up and running</h1>'));
23
+
24
+ //Using Banking model for our route
25
+ app.use("/api/vendorapp",banking);
26
+
27
+ // Listen
28
+ app.listen(PORT, () =>
29
+ console.log(`Server is running on ${BASE_URL}:${PORT}`)
30
+ );
models/models.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Models.js
2
+ const mongoose = require('mongoose');
3
+
4
+ const VendorSchema = new mongoose.Schema({
5
+ name: {
6
+ type: String,
7
+ required: true,
8
+ },
9
+ accno: {
10
+ type: Number,
11
+ required: true,
12
+ unique:true,
13
+ },
14
+ bankname:{
15
+ type: String,
16
+ required: true
17
+ },
18
+ address1: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ address2: {
23
+ type: String,
24
+ required: false,
25
+ },
26
+ city: {
27
+ type: String,
28
+ required: true,
29
+ },
30
+ country: {
31
+ type: String,
32
+ required: true,
33
+ },
34
+ zipcode:{
35
+ type: Number,
36
+ required: true,
37
+ }
38
+ });
39
+
40
+ const Vendor = mongoose.model('banking', VendorSchema);
41
+
42
+ module.exports = Vendor;
package-lock.json ADDED
@@ -0,0 +1,1230 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "server",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "server",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "cors": "^2.8.5",
13
+ "dotenv": "^16.3.1",
14
+ "express": "^4.18.2",
15
+ "mongoose": "^7.5.3",
16
+ "nodemon": "^3.0.1"
17
+ }
18
+ },
19
+ "node_modules/@mongodb-js/saslprep": {
20
+ "version": "1.1.0",
21
+ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.0.tgz",
22
+ "integrity": "sha512-Xfijy7HvfzzqiOAhAepF4SGN5e9leLkMvg/OPOF97XemjfVCYN/oWa75wnkc6mltMSTwY+XlbhWgUOJmkFspSw==",
23
+ "optional": true,
24
+ "dependencies": {
25
+ "sparse-bitfield": "^3.0.3"
26
+ }
27
+ },
28
+ "node_modules/@types/node": {
29
+ "version": "20.8.0",
30
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.0.tgz",
31
+ "integrity": "sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ=="
32
+ },
33
+ "node_modules/@types/webidl-conversions": {
34
+ "version": "7.0.1",
35
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.1.tgz",
36
+ "integrity": "sha512-8hKOnOan+Uu+NgMaCouhg3cT9x5fFZ92Jwf+uDLXLu/MFRbXxlWwGeQY7KVHkeSft6RvY+tdxklUBuyY9eIEKg=="
37
+ },
38
+ "node_modules/@types/whatwg-url": {
39
+ "version": "8.2.2",
40
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz",
41
+ "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==",
42
+ "dependencies": {
43
+ "@types/node": "*",
44
+ "@types/webidl-conversions": "*"
45
+ }
46
+ },
47
+ "node_modules/abbrev": {
48
+ "version": "1.1.1",
49
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
50
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
51
+ },
52
+ "node_modules/accepts": {
53
+ "version": "1.3.8",
54
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
55
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
56
+ "dependencies": {
57
+ "mime-types": "~2.1.34",
58
+ "negotiator": "0.6.3"
59
+ },
60
+ "engines": {
61
+ "node": ">= 0.6"
62
+ }
63
+ },
64
+ "node_modules/anymatch": {
65
+ "version": "3.1.3",
66
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
67
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
68
+ "dependencies": {
69
+ "normalize-path": "^3.0.0",
70
+ "picomatch": "^2.0.4"
71
+ },
72
+ "engines": {
73
+ "node": ">= 8"
74
+ }
75
+ },
76
+ "node_modules/array-flatten": {
77
+ "version": "1.1.1",
78
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
79
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
80
+ },
81
+ "node_modules/balanced-match": {
82
+ "version": "1.0.2",
83
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
84
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
85
+ },
86
+ "node_modules/binary-extensions": {
87
+ "version": "2.2.0",
88
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
89
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
90
+ "engines": {
91
+ "node": ">=8"
92
+ }
93
+ },
94
+ "node_modules/body-parser": {
95
+ "version": "1.20.1",
96
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
97
+ "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
98
+ "dependencies": {
99
+ "bytes": "3.1.2",
100
+ "content-type": "~1.0.4",
101
+ "debug": "2.6.9",
102
+ "depd": "2.0.0",
103
+ "destroy": "1.2.0",
104
+ "http-errors": "2.0.0",
105
+ "iconv-lite": "0.4.24",
106
+ "on-finished": "2.4.1",
107
+ "qs": "6.11.0",
108
+ "raw-body": "2.5.1",
109
+ "type-is": "~1.6.18",
110
+ "unpipe": "1.0.0"
111
+ },
112
+ "engines": {
113
+ "node": ">= 0.8",
114
+ "npm": "1.2.8000 || >= 1.4.16"
115
+ }
116
+ },
117
+ "node_modules/brace-expansion": {
118
+ "version": "1.1.11",
119
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
120
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
121
+ "dependencies": {
122
+ "balanced-match": "^1.0.0",
123
+ "concat-map": "0.0.1"
124
+ }
125
+ },
126
+ "node_modules/braces": {
127
+ "version": "3.0.2",
128
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
129
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
130
+ "dependencies": {
131
+ "fill-range": "^7.0.1"
132
+ },
133
+ "engines": {
134
+ "node": ">=8"
135
+ }
136
+ },
137
+ "node_modules/bson": {
138
+ "version": "5.5.0",
139
+ "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.0.tgz",
140
+ "integrity": "sha512-B+QB4YmDx9RStKv8LLSl/aVIEV3nYJc3cJNNTK2Cd1TL+7P+cNpw9mAPeCgc5K+j01Dv6sxUzcITXDx7ZU3F0w==",
141
+ "engines": {
142
+ "node": ">=14.20.1"
143
+ }
144
+ },
145
+ "node_modules/bytes": {
146
+ "version": "3.1.2",
147
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
148
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
149
+ "engines": {
150
+ "node": ">= 0.8"
151
+ }
152
+ },
153
+ "node_modules/call-bind": {
154
+ "version": "1.0.2",
155
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
156
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
157
+ "dependencies": {
158
+ "function-bind": "^1.1.1",
159
+ "get-intrinsic": "^1.0.2"
160
+ },
161
+ "funding": {
162
+ "url": "https://github.com/sponsors/ljharb"
163
+ }
164
+ },
165
+ "node_modules/chokidar": {
166
+ "version": "3.5.3",
167
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
168
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
169
+ "funding": [
170
+ {
171
+ "type": "individual",
172
+ "url": "https://paulmillr.com/funding/"
173
+ }
174
+ ],
175
+ "dependencies": {
176
+ "anymatch": "~3.1.2",
177
+ "braces": "~3.0.2",
178
+ "glob-parent": "~5.1.2",
179
+ "is-binary-path": "~2.1.0",
180
+ "is-glob": "~4.0.1",
181
+ "normalize-path": "~3.0.0",
182
+ "readdirp": "~3.6.0"
183
+ },
184
+ "engines": {
185
+ "node": ">= 8.10.0"
186
+ },
187
+ "optionalDependencies": {
188
+ "fsevents": "~2.3.2"
189
+ }
190
+ },
191
+ "node_modules/concat-map": {
192
+ "version": "0.0.1",
193
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
194
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
195
+ },
196
+ "node_modules/content-disposition": {
197
+ "version": "0.5.4",
198
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
199
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
200
+ "dependencies": {
201
+ "safe-buffer": "5.2.1"
202
+ },
203
+ "engines": {
204
+ "node": ">= 0.6"
205
+ }
206
+ },
207
+ "node_modules/content-type": {
208
+ "version": "1.0.5",
209
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
210
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
211
+ "engines": {
212
+ "node": ">= 0.6"
213
+ }
214
+ },
215
+ "node_modules/cookie": {
216
+ "version": "0.5.0",
217
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
218
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
219
+ "engines": {
220
+ "node": ">= 0.6"
221
+ }
222
+ },
223
+ "node_modules/cookie-signature": {
224
+ "version": "1.0.6",
225
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
226
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
227
+ },
228
+ "node_modules/cors": {
229
+ "version": "2.8.5",
230
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
231
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
232
+ "dependencies": {
233
+ "object-assign": "^4",
234
+ "vary": "^1"
235
+ },
236
+ "engines": {
237
+ "node": ">= 0.10"
238
+ }
239
+ },
240
+ "node_modules/debug": {
241
+ "version": "2.6.9",
242
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
243
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
244
+ "dependencies": {
245
+ "ms": "2.0.0"
246
+ }
247
+ },
248
+ "node_modules/depd": {
249
+ "version": "2.0.0",
250
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
251
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
252
+ "engines": {
253
+ "node": ">= 0.8"
254
+ }
255
+ },
256
+ "node_modules/destroy": {
257
+ "version": "1.2.0",
258
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
259
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
260
+ "engines": {
261
+ "node": ">= 0.8",
262
+ "npm": "1.2.8000 || >= 1.4.16"
263
+ }
264
+ },
265
+ "node_modules/dotenv": {
266
+ "version": "16.3.1",
267
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
268
+ "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
269
+ "engines": {
270
+ "node": ">=12"
271
+ },
272
+ "funding": {
273
+ "url": "https://github.com/motdotla/dotenv?sponsor=1"
274
+ }
275
+ },
276
+ "node_modules/ee-first": {
277
+ "version": "1.1.1",
278
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
279
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
280
+ },
281
+ "node_modules/encodeurl": {
282
+ "version": "1.0.2",
283
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
284
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
285
+ "engines": {
286
+ "node": ">= 0.8"
287
+ }
288
+ },
289
+ "node_modules/escape-html": {
290
+ "version": "1.0.3",
291
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
292
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
293
+ },
294
+ "node_modules/etag": {
295
+ "version": "1.8.1",
296
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
297
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
298
+ "engines": {
299
+ "node": ">= 0.6"
300
+ }
301
+ },
302
+ "node_modules/express": {
303
+ "version": "4.18.2",
304
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
305
+ "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
306
+ "dependencies": {
307
+ "accepts": "~1.3.8",
308
+ "array-flatten": "1.1.1",
309
+ "body-parser": "1.20.1",
310
+ "content-disposition": "0.5.4",
311
+ "content-type": "~1.0.4",
312
+ "cookie": "0.5.0",
313
+ "cookie-signature": "1.0.6",
314
+ "debug": "2.6.9",
315
+ "depd": "2.0.0",
316
+ "encodeurl": "~1.0.2",
317
+ "escape-html": "~1.0.3",
318
+ "etag": "~1.8.1",
319
+ "finalhandler": "1.2.0",
320
+ "fresh": "0.5.2",
321
+ "http-errors": "2.0.0",
322
+ "merge-descriptors": "1.0.1",
323
+ "methods": "~1.1.2",
324
+ "on-finished": "2.4.1",
325
+ "parseurl": "~1.3.3",
326
+ "path-to-regexp": "0.1.7",
327
+ "proxy-addr": "~2.0.7",
328
+ "qs": "6.11.0",
329
+ "range-parser": "~1.2.1",
330
+ "safe-buffer": "5.2.1",
331
+ "send": "0.18.0",
332
+ "serve-static": "1.15.0",
333
+ "setprototypeof": "1.2.0",
334
+ "statuses": "2.0.1",
335
+ "type-is": "~1.6.18",
336
+ "utils-merge": "1.0.1",
337
+ "vary": "~1.1.2"
338
+ },
339
+ "engines": {
340
+ "node": ">= 0.10.0"
341
+ }
342
+ },
343
+ "node_modules/fill-range": {
344
+ "version": "7.0.1",
345
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
346
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
347
+ "dependencies": {
348
+ "to-regex-range": "^5.0.1"
349
+ },
350
+ "engines": {
351
+ "node": ">=8"
352
+ }
353
+ },
354
+ "node_modules/finalhandler": {
355
+ "version": "1.2.0",
356
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
357
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
358
+ "dependencies": {
359
+ "debug": "2.6.9",
360
+ "encodeurl": "~1.0.2",
361
+ "escape-html": "~1.0.3",
362
+ "on-finished": "2.4.1",
363
+ "parseurl": "~1.3.3",
364
+ "statuses": "2.0.1",
365
+ "unpipe": "~1.0.0"
366
+ },
367
+ "engines": {
368
+ "node": ">= 0.8"
369
+ }
370
+ },
371
+ "node_modules/forwarded": {
372
+ "version": "0.2.0",
373
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
374
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
375
+ "engines": {
376
+ "node": ">= 0.6"
377
+ }
378
+ },
379
+ "node_modules/fresh": {
380
+ "version": "0.5.2",
381
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
382
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
383
+ "engines": {
384
+ "node": ">= 0.6"
385
+ }
386
+ },
387
+ "node_modules/fsevents": {
388
+ "version": "2.3.3",
389
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
390
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
391
+ "hasInstallScript": true,
392
+ "optional": true,
393
+ "os": [
394
+ "darwin"
395
+ ],
396
+ "engines": {
397
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
398
+ }
399
+ },
400
+ "node_modules/function-bind": {
401
+ "version": "1.1.1",
402
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
403
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
404
+ },
405
+ "node_modules/get-intrinsic": {
406
+ "version": "1.2.1",
407
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
408
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
409
+ "dependencies": {
410
+ "function-bind": "^1.1.1",
411
+ "has": "^1.0.3",
412
+ "has-proto": "^1.0.1",
413
+ "has-symbols": "^1.0.3"
414
+ },
415
+ "funding": {
416
+ "url": "https://github.com/sponsors/ljharb"
417
+ }
418
+ },
419
+ "node_modules/glob-parent": {
420
+ "version": "5.1.2",
421
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
422
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
423
+ "dependencies": {
424
+ "is-glob": "^4.0.1"
425
+ },
426
+ "engines": {
427
+ "node": ">= 6"
428
+ }
429
+ },
430
+ "node_modules/has": {
431
+ "version": "1.0.3",
432
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
433
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
434
+ "dependencies": {
435
+ "function-bind": "^1.1.1"
436
+ },
437
+ "engines": {
438
+ "node": ">= 0.4.0"
439
+ }
440
+ },
441
+ "node_modules/has-flag": {
442
+ "version": "3.0.0",
443
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
444
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
445
+ "engines": {
446
+ "node": ">=4"
447
+ }
448
+ },
449
+ "node_modules/has-proto": {
450
+ "version": "1.0.1",
451
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
452
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
453
+ "engines": {
454
+ "node": ">= 0.4"
455
+ },
456
+ "funding": {
457
+ "url": "https://github.com/sponsors/ljharb"
458
+ }
459
+ },
460
+ "node_modules/has-symbols": {
461
+ "version": "1.0.3",
462
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
463
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
464
+ "engines": {
465
+ "node": ">= 0.4"
466
+ },
467
+ "funding": {
468
+ "url": "https://github.com/sponsors/ljharb"
469
+ }
470
+ },
471
+ "node_modules/http-errors": {
472
+ "version": "2.0.0",
473
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
474
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
475
+ "dependencies": {
476
+ "depd": "2.0.0",
477
+ "inherits": "2.0.4",
478
+ "setprototypeof": "1.2.0",
479
+ "statuses": "2.0.1",
480
+ "toidentifier": "1.0.1"
481
+ },
482
+ "engines": {
483
+ "node": ">= 0.8"
484
+ }
485
+ },
486
+ "node_modules/iconv-lite": {
487
+ "version": "0.4.24",
488
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
489
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
490
+ "dependencies": {
491
+ "safer-buffer": ">= 2.1.2 < 3"
492
+ },
493
+ "engines": {
494
+ "node": ">=0.10.0"
495
+ }
496
+ },
497
+ "node_modules/ignore-by-default": {
498
+ "version": "1.0.1",
499
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
500
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
501
+ },
502
+ "node_modules/inherits": {
503
+ "version": "2.0.4",
504
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
505
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
506
+ },
507
+ "node_modules/ip": {
508
+ "version": "2.0.0",
509
+ "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
510
+ "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ=="
511
+ },
512
+ "node_modules/ipaddr.js": {
513
+ "version": "1.9.1",
514
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
515
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
516
+ "engines": {
517
+ "node": ">= 0.10"
518
+ }
519
+ },
520
+ "node_modules/is-binary-path": {
521
+ "version": "2.1.0",
522
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
523
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
524
+ "dependencies": {
525
+ "binary-extensions": "^2.0.0"
526
+ },
527
+ "engines": {
528
+ "node": ">=8"
529
+ }
530
+ },
531
+ "node_modules/is-extglob": {
532
+ "version": "2.1.1",
533
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
534
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
535
+ "engines": {
536
+ "node": ">=0.10.0"
537
+ }
538
+ },
539
+ "node_modules/is-glob": {
540
+ "version": "4.0.3",
541
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
542
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
543
+ "dependencies": {
544
+ "is-extglob": "^2.1.1"
545
+ },
546
+ "engines": {
547
+ "node": ">=0.10.0"
548
+ }
549
+ },
550
+ "node_modules/is-number": {
551
+ "version": "7.0.0",
552
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
553
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
554
+ "engines": {
555
+ "node": ">=0.12.0"
556
+ }
557
+ },
558
+ "node_modules/kareem": {
559
+ "version": "2.5.1",
560
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz",
561
+ "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==",
562
+ "engines": {
563
+ "node": ">=12.0.0"
564
+ }
565
+ },
566
+ "node_modules/lru-cache": {
567
+ "version": "6.0.0",
568
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
569
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
570
+ "dependencies": {
571
+ "yallist": "^4.0.0"
572
+ },
573
+ "engines": {
574
+ "node": ">=10"
575
+ }
576
+ },
577
+ "node_modules/media-typer": {
578
+ "version": "0.3.0",
579
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
580
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
581
+ "engines": {
582
+ "node": ">= 0.6"
583
+ }
584
+ },
585
+ "node_modules/memory-pager": {
586
+ "version": "1.5.0",
587
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
588
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
589
+ "optional": true
590
+ },
591
+ "node_modules/merge-descriptors": {
592
+ "version": "1.0.1",
593
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
594
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
595
+ },
596
+ "node_modules/methods": {
597
+ "version": "1.1.2",
598
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
599
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
600
+ "engines": {
601
+ "node": ">= 0.6"
602
+ }
603
+ },
604
+ "node_modules/mime": {
605
+ "version": "1.6.0",
606
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
607
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
608
+ "bin": {
609
+ "mime": "cli.js"
610
+ },
611
+ "engines": {
612
+ "node": ">=4"
613
+ }
614
+ },
615
+ "node_modules/mime-db": {
616
+ "version": "1.52.0",
617
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
618
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
619
+ "engines": {
620
+ "node": ">= 0.6"
621
+ }
622
+ },
623
+ "node_modules/mime-types": {
624
+ "version": "2.1.35",
625
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
626
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
627
+ "dependencies": {
628
+ "mime-db": "1.52.0"
629
+ },
630
+ "engines": {
631
+ "node": ">= 0.6"
632
+ }
633
+ },
634
+ "node_modules/minimatch": {
635
+ "version": "3.1.2",
636
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
637
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
638
+ "dependencies": {
639
+ "brace-expansion": "^1.1.7"
640
+ },
641
+ "engines": {
642
+ "node": "*"
643
+ }
644
+ },
645
+ "node_modules/mongodb": {
646
+ "version": "5.8.1",
647
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.8.1.tgz",
648
+ "integrity": "sha512-wKyh4kZvm6NrCPH8AxyzXm3JBoEf4Xulo0aUWh3hCgwgYJxyQ1KLST86ZZaSWdj6/kxYUA3+YZuyADCE61CMSg==",
649
+ "dependencies": {
650
+ "bson": "^5.4.0",
651
+ "mongodb-connection-string-url": "^2.6.0",
652
+ "socks": "^2.7.1"
653
+ },
654
+ "engines": {
655
+ "node": ">=14.20.1"
656
+ },
657
+ "optionalDependencies": {
658
+ "@mongodb-js/saslprep": "^1.1.0"
659
+ },
660
+ "peerDependencies": {
661
+ "@aws-sdk/credential-providers": "^3.188.0",
662
+ "@mongodb-js/zstd": "^1.0.0",
663
+ "kerberos": "^1.0.0 || ^2.0.0",
664
+ "mongodb-client-encryption": ">=2.3.0 <3",
665
+ "snappy": "^7.2.2"
666
+ },
667
+ "peerDependenciesMeta": {
668
+ "@aws-sdk/credential-providers": {
669
+ "optional": true
670
+ },
671
+ "@mongodb-js/zstd": {
672
+ "optional": true
673
+ },
674
+ "kerberos": {
675
+ "optional": true
676
+ },
677
+ "mongodb-client-encryption": {
678
+ "optional": true
679
+ },
680
+ "snappy": {
681
+ "optional": true
682
+ }
683
+ }
684
+ },
685
+ "node_modules/mongodb-connection-string-url": {
686
+ "version": "2.6.0",
687
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz",
688
+ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==",
689
+ "dependencies": {
690
+ "@types/whatwg-url": "^8.2.1",
691
+ "whatwg-url": "^11.0.0"
692
+ }
693
+ },
694
+ "node_modules/mongoose": {
695
+ "version": "7.5.3",
696
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.5.3.tgz",
697
+ "integrity": "sha512-QyYzhZusux0wIJs+4rYyHvel0kJm0CT887trNd1WAB3iQnDuJow0xEnjETvuS/cTjHQUVPihOpN7OHLlpJc52w==",
698
+ "dependencies": {
699
+ "bson": "^5.4.0",
700
+ "kareem": "2.5.1",
701
+ "mongodb": "5.8.1",
702
+ "mpath": "0.9.0",
703
+ "mquery": "5.0.0",
704
+ "ms": "2.1.3",
705
+ "sift": "16.0.1"
706
+ },
707
+ "engines": {
708
+ "node": ">=14.20.1"
709
+ },
710
+ "funding": {
711
+ "type": "opencollective",
712
+ "url": "https://opencollective.com/mongoose"
713
+ }
714
+ },
715
+ "node_modules/mongoose/node_modules/ms": {
716
+ "version": "2.1.3",
717
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
718
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
719
+ },
720
+ "node_modules/mpath": {
721
+ "version": "0.9.0",
722
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
723
+ "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
724
+ "engines": {
725
+ "node": ">=4.0.0"
726
+ }
727
+ },
728
+ "node_modules/mquery": {
729
+ "version": "5.0.0",
730
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
731
+ "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
732
+ "dependencies": {
733
+ "debug": "4.x"
734
+ },
735
+ "engines": {
736
+ "node": ">=14.0.0"
737
+ }
738
+ },
739
+ "node_modules/mquery/node_modules/debug": {
740
+ "version": "4.3.4",
741
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
742
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
743
+ "dependencies": {
744
+ "ms": "2.1.2"
745
+ },
746
+ "engines": {
747
+ "node": ">=6.0"
748
+ },
749
+ "peerDependenciesMeta": {
750
+ "supports-color": {
751
+ "optional": true
752
+ }
753
+ }
754
+ },
755
+ "node_modules/mquery/node_modules/ms": {
756
+ "version": "2.1.2",
757
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
758
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
759
+ },
760
+ "node_modules/ms": {
761
+ "version": "2.0.0",
762
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
763
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
764
+ },
765
+ "node_modules/negotiator": {
766
+ "version": "0.6.3",
767
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
768
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
769
+ "engines": {
770
+ "node": ">= 0.6"
771
+ }
772
+ },
773
+ "node_modules/nodemon": {
774
+ "version": "3.0.1",
775
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz",
776
+ "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==",
777
+ "dependencies": {
778
+ "chokidar": "^3.5.2",
779
+ "debug": "^3.2.7",
780
+ "ignore-by-default": "^1.0.1",
781
+ "minimatch": "^3.1.2",
782
+ "pstree.remy": "^1.1.8",
783
+ "semver": "^7.5.3",
784
+ "simple-update-notifier": "^2.0.0",
785
+ "supports-color": "^5.5.0",
786
+ "touch": "^3.1.0",
787
+ "undefsafe": "^2.0.5"
788
+ },
789
+ "bin": {
790
+ "nodemon": "bin/nodemon.js"
791
+ },
792
+ "engines": {
793
+ "node": ">=10"
794
+ },
795
+ "funding": {
796
+ "type": "opencollective",
797
+ "url": "https://opencollective.com/nodemon"
798
+ }
799
+ },
800
+ "node_modules/nodemon/node_modules/debug": {
801
+ "version": "3.2.7",
802
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
803
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
804
+ "dependencies": {
805
+ "ms": "^2.1.1"
806
+ }
807
+ },
808
+ "node_modules/nodemon/node_modules/ms": {
809
+ "version": "2.1.3",
810
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
811
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
812
+ },
813
+ "node_modules/nopt": {
814
+ "version": "1.0.10",
815
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
816
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
817
+ "dependencies": {
818
+ "abbrev": "1"
819
+ },
820
+ "bin": {
821
+ "nopt": "bin/nopt.js"
822
+ },
823
+ "engines": {
824
+ "node": "*"
825
+ }
826
+ },
827
+ "node_modules/normalize-path": {
828
+ "version": "3.0.0",
829
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
830
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
831
+ "engines": {
832
+ "node": ">=0.10.0"
833
+ }
834
+ },
835
+ "node_modules/object-assign": {
836
+ "version": "4.1.1",
837
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
838
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
839
+ "engines": {
840
+ "node": ">=0.10.0"
841
+ }
842
+ },
843
+ "node_modules/object-inspect": {
844
+ "version": "1.12.3",
845
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
846
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
847
+ "funding": {
848
+ "url": "https://github.com/sponsors/ljharb"
849
+ }
850
+ },
851
+ "node_modules/on-finished": {
852
+ "version": "2.4.1",
853
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
854
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
855
+ "dependencies": {
856
+ "ee-first": "1.1.1"
857
+ },
858
+ "engines": {
859
+ "node": ">= 0.8"
860
+ }
861
+ },
862
+ "node_modules/parseurl": {
863
+ "version": "1.3.3",
864
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
865
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
866
+ "engines": {
867
+ "node": ">= 0.8"
868
+ }
869
+ },
870
+ "node_modules/path-to-regexp": {
871
+ "version": "0.1.7",
872
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
873
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
874
+ },
875
+ "node_modules/picomatch": {
876
+ "version": "2.3.1",
877
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
878
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
879
+ "engines": {
880
+ "node": ">=8.6"
881
+ },
882
+ "funding": {
883
+ "url": "https://github.com/sponsors/jonschlinkert"
884
+ }
885
+ },
886
+ "node_modules/proxy-addr": {
887
+ "version": "2.0.7",
888
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
889
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
890
+ "dependencies": {
891
+ "forwarded": "0.2.0",
892
+ "ipaddr.js": "1.9.1"
893
+ },
894
+ "engines": {
895
+ "node": ">= 0.10"
896
+ }
897
+ },
898
+ "node_modules/pstree.remy": {
899
+ "version": "1.1.8",
900
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
901
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
902
+ },
903
+ "node_modules/punycode": {
904
+ "version": "2.3.0",
905
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
906
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
907
+ "engines": {
908
+ "node": ">=6"
909
+ }
910
+ },
911
+ "node_modules/qs": {
912
+ "version": "6.11.0",
913
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
914
+ "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
915
+ "dependencies": {
916
+ "side-channel": "^1.0.4"
917
+ },
918
+ "engines": {
919
+ "node": ">=0.6"
920
+ },
921
+ "funding": {
922
+ "url": "https://github.com/sponsors/ljharb"
923
+ }
924
+ },
925
+ "node_modules/range-parser": {
926
+ "version": "1.2.1",
927
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
928
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
929
+ "engines": {
930
+ "node": ">= 0.6"
931
+ }
932
+ },
933
+ "node_modules/raw-body": {
934
+ "version": "2.5.1",
935
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
936
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
937
+ "dependencies": {
938
+ "bytes": "3.1.2",
939
+ "http-errors": "2.0.0",
940
+ "iconv-lite": "0.4.24",
941
+ "unpipe": "1.0.0"
942
+ },
943
+ "engines": {
944
+ "node": ">= 0.8"
945
+ }
946
+ },
947
+ "node_modules/readdirp": {
948
+ "version": "3.6.0",
949
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
950
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
951
+ "dependencies": {
952
+ "picomatch": "^2.2.1"
953
+ },
954
+ "engines": {
955
+ "node": ">=8.10.0"
956
+ }
957
+ },
958
+ "node_modules/safe-buffer": {
959
+ "version": "5.2.1",
960
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
961
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
962
+ "funding": [
963
+ {
964
+ "type": "github",
965
+ "url": "https://github.com/sponsors/feross"
966
+ },
967
+ {
968
+ "type": "patreon",
969
+ "url": "https://www.patreon.com/feross"
970
+ },
971
+ {
972
+ "type": "consulting",
973
+ "url": "https://feross.org/support"
974
+ }
975
+ ]
976
+ },
977
+ "node_modules/safer-buffer": {
978
+ "version": "2.1.2",
979
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
980
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
981
+ },
982
+ "node_modules/semver": {
983
+ "version": "7.5.4",
984
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
985
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
986
+ "dependencies": {
987
+ "lru-cache": "^6.0.0"
988
+ },
989
+ "bin": {
990
+ "semver": "bin/semver.js"
991
+ },
992
+ "engines": {
993
+ "node": ">=10"
994
+ }
995
+ },
996
+ "node_modules/send": {
997
+ "version": "0.18.0",
998
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
999
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1000
+ "dependencies": {
1001
+ "debug": "2.6.9",
1002
+ "depd": "2.0.0",
1003
+ "destroy": "1.2.0",
1004
+ "encodeurl": "~1.0.2",
1005
+ "escape-html": "~1.0.3",
1006
+ "etag": "~1.8.1",
1007
+ "fresh": "0.5.2",
1008
+ "http-errors": "2.0.0",
1009
+ "mime": "1.6.0",
1010
+ "ms": "2.1.3",
1011
+ "on-finished": "2.4.1",
1012
+ "range-parser": "~1.2.1",
1013
+ "statuses": "2.0.1"
1014
+ },
1015
+ "engines": {
1016
+ "node": ">= 0.8.0"
1017
+ }
1018
+ },
1019
+ "node_modules/send/node_modules/ms": {
1020
+ "version": "2.1.3",
1021
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1022
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1023
+ },
1024
+ "node_modules/serve-static": {
1025
+ "version": "1.15.0",
1026
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1027
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1028
+ "dependencies": {
1029
+ "encodeurl": "~1.0.2",
1030
+ "escape-html": "~1.0.3",
1031
+ "parseurl": "~1.3.3",
1032
+ "send": "0.18.0"
1033
+ },
1034
+ "engines": {
1035
+ "node": ">= 0.8.0"
1036
+ }
1037
+ },
1038
+ "node_modules/setprototypeof": {
1039
+ "version": "1.2.0",
1040
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1041
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1042
+ },
1043
+ "node_modules/side-channel": {
1044
+ "version": "1.0.4",
1045
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1046
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1047
+ "dependencies": {
1048
+ "call-bind": "^1.0.0",
1049
+ "get-intrinsic": "^1.0.2",
1050
+ "object-inspect": "^1.9.0"
1051
+ },
1052
+ "funding": {
1053
+ "url": "https://github.com/sponsors/ljharb"
1054
+ }
1055
+ },
1056
+ "node_modules/sift": {
1057
+ "version": "16.0.1",
1058
+ "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz",
1059
+ "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ=="
1060
+ },
1061
+ "node_modules/simple-update-notifier": {
1062
+ "version": "2.0.0",
1063
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
1064
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
1065
+ "dependencies": {
1066
+ "semver": "^7.5.3"
1067
+ },
1068
+ "engines": {
1069
+ "node": ">=10"
1070
+ }
1071
+ },
1072
+ "node_modules/smart-buffer": {
1073
+ "version": "4.2.0",
1074
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
1075
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
1076
+ "engines": {
1077
+ "node": ">= 6.0.0",
1078
+ "npm": ">= 3.0.0"
1079
+ }
1080
+ },
1081
+ "node_modules/socks": {
1082
+ "version": "2.7.1",
1083
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz",
1084
+ "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==",
1085
+ "dependencies": {
1086
+ "ip": "^2.0.0",
1087
+ "smart-buffer": "^4.2.0"
1088
+ },
1089
+ "engines": {
1090
+ "node": ">= 10.13.0",
1091
+ "npm": ">= 3.0.0"
1092
+ }
1093
+ },
1094
+ "node_modules/sparse-bitfield": {
1095
+ "version": "3.0.3",
1096
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
1097
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
1098
+ "optional": true,
1099
+ "dependencies": {
1100
+ "memory-pager": "^1.0.2"
1101
+ }
1102
+ },
1103
+ "node_modules/statuses": {
1104
+ "version": "2.0.1",
1105
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1106
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1107
+ "engines": {
1108
+ "node": ">= 0.8"
1109
+ }
1110
+ },
1111
+ "node_modules/supports-color": {
1112
+ "version": "5.5.0",
1113
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1114
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1115
+ "dependencies": {
1116
+ "has-flag": "^3.0.0"
1117
+ },
1118
+ "engines": {
1119
+ "node": ">=4"
1120
+ }
1121
+ },
1122
+ "node_modules/to-regex-range": {
1123
+ "version": "5.0.1",
1124
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1125
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1126
+ "dependencies": {
1127
+ "is-number": "^7.0.0"
1128
+ },
1129
+ "engines": {
1130
+ "node": ">=8.0"
1131
+ }
1132
+ },
1133
+ "node_modules/toidentifier": {
1134
+ "version": "1.0.1",
1135
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1136
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1137
+ "engines": {
1138
+ "node": ">=0.6"
1139
+ }
1140
+ },
1141
+ "node_modules/touch": {
1142
+ "version": "3.1.0",
1143
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
1144
+ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
1145
+ "dependencies": {
1146
+ "nopt": "~1.0.10"
1147
+ },
1148
+ "bin": {
1149
+ "nodetouch": "bin/nodetouch.js"
1150
+ }
1151
+ },
1152
+ "node_modules/tr46": {
1153
+ "version": "3.0.0",
1154
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
1155
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
1156
+ "dependencies": {
1157
+ "punycode": "^2.1.1"
1158
+ },
1159
+ "engines": {
1160
+ "node": ">=12"
1161
+ }
1162
+ },
1163
+ "node_modules/type-is": {
1164
+ "version": "1.6.18",
1165
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1166
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1167
+ "dependencies": {
1168
+ "media-typer": "0.3.0",
1169
+ "mime-types": "~2.1.24"
1170
+ },
1171
+ "engines": {
1172
+ "node": ">= 0.6"
1173
+ }
1174
+ },
1175
+ "node_modules/undefsafe": {
1176
+ "version": "2.0.5",
1177
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
1178
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
1179
+ },
1180
+ "node_modules/unpipe": {
1181
+ "version": "1.0.0",
1182
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1183
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1184
+ "engines": {
1185
+ "node": ">= 0.8"
1186
+ }
1187
+ },
1188
+ "node_modules/utils-merge": {
1189
+ "version": "1.0.1",
1190
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1191
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
1192
+ "engines": {
1193
+ "node": ">= 0.4.0"
1194
+ }
1195
+ },
1196
+ "node_modules/vary": {
1197
+ "version": "1.1.2",
1198
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1199
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1200
+ "engines": {
1201
+ "node": ">= 0.8"
1202
+ }
1203
+ },
1204
+ "node_modules/webidl-conversions": {
1205
+ "version": "7.0.0",
1206
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
1207
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
1208
+ "engines": {
1209
+ "node": ">=12"
1210
+ }
1211
+ },
1212
+ "node_modules/whatwg-url": {
1213
+ "version": "11.0.0",
1214
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
1215
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
1216
+ "dependencies": {
1217
+ "tr46": "^3.0.0",
1218
+ "webidl-conversions": "^7.0.0"
1219
+ },
1220
+ "engines": {
1221
+ "node": ">=12"
1222
+ }
1223
+ },
1224
+ "node_modules/yallist": {
1225
+ "version": "4.0.0",
1226
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1227
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1228
+ }
1229
+ }
1230
+ }
package.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "server",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "main.js",
6
+ "engines": {
7
+ "node": "18.16.0"
8
+ },
9
+ "scripts": {
10
+ "start": "nodemon main.js"
11
+ },
12
+ "keywords": [],
13
+ "author": "",
14
+ "license": "ISC",
15
+ "dependencies": {
16
+ "cors": "^2.8.5",
17
+ "dotenv": "^16.3.1",
18
+ "express": "^4.18.2",
19
+ "mongoose": "^7.5.3",
20
+ "nodemon": "^3.0.1"
21
+ }
22
+ }
routes/vendor.routes.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //todo.routes.js
2
+
3
+ const express = require("express");
4
+
5
+ const router = express.Router();
6
+
7
+ const {
8
+ listAllVendor,
9
+ createOneVendor,
10
+ updateOneVendor,
11
+ deleteVendor,
12
+ getOneVendor,
13
+ getVendorByPage
14
+ } = require("../controllers/vendor.controller.js");
15
+
16
+ router.get("/", listAllVendor);
17
+
18
+ router.post("/", createOneVendor);
19
+
20
+ router.put("/:id", updateOneVendor);
21
+
22
+ router.delete("/:id", deleteVendor);
23
+
24
+ router.get("/:id", getOneVendor);
25
+
26
+ router.get("/page/:page", getVendorByPage);
27
+
28
+ module.exports = router;