Anuj-Panthri commited on
Commit
a7e7c00
·
1 Parent(s): 0c2dfb6

added a new server main.js file

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