sanjay7178 commited on
Commit
c6be938
1 Parent(s): 754a2a7

Synced repo using 'sync_with_huggingface' Github Action

Browse files
Files changed (8) hide show
  1. Caddyfile +3 -0
  2. Dockerfile +20 -0
  3. PrismaClient.js +14 -0
  4. package-lock.json +1167 -0
  5. package.json +28 -0
  6. pnpm-lock.yaml +995 -0
  7. prisma/schema.prisma +126 -0
  8. server.js +37 -0
Caddyfile ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ :7860 {
2
+ reverse_proxy localhost:3000
3
+ }
Dockerfile ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:18
2
+
3
+ # Install Caddy
4
+ RUN apt-get update && apt-get install -y debian-keyring debian-archive-keyring apt-transport-https
5
+ RUN curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
6
+ RUN curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
7
+ RUN apt-get update && apt-get install -y caddy
8
+
9
+ WORKDIR /usr/src/app
10
+
11
+ COPY package*.json ./
12
+ RUN npm install
13
+ COPY . .
14
+ RUN npx prisma generate
15
+
16
+ EXPOSE 7860
17
+
18
+ CMD ["sh", "-c", "node server.js & caddy run --config /usr/src/app/Caddyfile"]
19
+
20
+
PrismaClient.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { PrismaClient } from '@prisma/client'
2
+
3
+ let prisma
4
+
5
+ if (process.env.NODE_ENV === 'production') {
6
+ prisma = new PrismaClient()
7
+ } else {
8
+ if (!global.prisma) {
9
+ global.prisma = new PrismaClient()
10
+ }
11
+ prisma = global.prisma
12
+ }
13
+
14
+ export default prisma
package-lock.json ADDED
@@ -0,0 +1,1167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "erp-express-server",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "erp-express-server",
9
+ "version": "1.0.0",
10
+ "license": "ISC",
11
+ "dependencies": {
12
+ "@prisma/client": "^5.20.0",
13
+ "cors": "^2.8.5",
14
+ "dotenv": "^16.4.5",
15
+ "express": "^4.21.0",
16
+ "jsonwebtoken": "^9.0.2",
17
+ "nodemon": "^3.1.7"
18
+ }
19
+ },
20
+ "node_modules/@prisma/client": {
21
+ "version": "5.20.0",
22
+ "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.20.0.tgz",
23
+ "integrity": "sha512-CLv55ZuMuUawMsxoqxGtLT3bEZoa2W8L3Qnp6rDIFWy+ZBrUcOFKdoeGPSnbBqxc3SkdxJrF+D1veN/WNynZYA==",
24
+ "hasInstallScript": true,
25
+ "engines": {
26
+ "node": ">=16.13"
27
+ },
28
+ "peerDependencies": {
29
+ "prisma": "*"
30
+ },
31
+ "peerDependenciesMeta": {
32
+ "prisma": {
33
+ "optional": true
34
+ }
35
+ }
36
+ },
37
+ "node_modules/accepts": {
38
+ "version": "1.3.8",
39
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
40
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
41
+ "dependencies": {
42
+ "mime-types": "~2.1.34",
43
+ "negotiator": "0.6.3"
44
+ },
45
+ "engines": {
46
+ "node": ">= 0.6"
47
+ }
48
+ },
49
+ "node_modules/anymatch": {
50
+ "version": "3.1.3",
51
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
52
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
53
+ "dependencies": {
54
+ "normalize-path": "^3.0.0",
55
+ "picomatch": "^2.0.4"
56
+ },
57
+ "engines": {
58
+ "node": ">= 8"
59
+ }
60
+ },
61
+ "node_modules/array-flatten": {
62
+ "version": "1.1.1",
63
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
64
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
65
+ },
66
+ "node_modules/balanced-match": {
67
+ "version": "1.0.2",
68
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
69
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
70
+ },
71
+ "node_modules/binary-extensions": {
72
+ "version": "2.3.0",
73
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
74
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
75
+ "engines": {
76
+ "node": ">=8"
77
+ },
78
+ "funding": {
79
+ "url": "https://github.com/sponsors/sindresorhus"
80
+ }
81
+ },
82
+ "node_modules/body-parser": {
83
+ "version": "1.20.3",
84
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
85
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
86
+ "dependencies": {
87
+ "bytes": "3.1.2",
88
+ "content-type": "~1.0.5",
89
+ "debug": "2.6.9",
90
+ "depd": "2.0.0",
91
+ "destroy": "1.2.0",
92
+ "http-errors": "2.0.0",
93
+ "iconv-lite": "0.4.24",
94
+ "on-finished": "2.4.1",
95
+ "qs": "6.13.0",
96
+ "raw-body": "2.5.2",
97
+ "type-is": "~1.6.18",
98
+ "unpipe": "1.0.0"
99
+ },
100
+ "engines": {
101
+ "node": ">= 0.8",
102
+ "npm": "1.2.8000 || >= 1.4.16"
103
+ }
104
+ },
105
+ "node_modules/brace-expansion": {
106
+ "version": "1.1.11",
107
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
108
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
109
+ "dependencies": {
110
+ "balanced-match": "^1.0.0",
111
+ "concat-map": "0.0.1"
112
+ }
113
+ },
114
+ "node_modules/braces": {
115
+ "version": "3.0.3",
116
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
117
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
118
+ "dependencies": {
119
+ "fill-range": "^7.1.1"
120
+ },
121
+ "engines": {
122
+ "node": ">=8"
123
+ }
124
+ },
125
+ "node_modules/buffer-equal-constant-time": {
126
+ "version": "1.0.1",
127
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
128
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
129
+ },
130
+ "node_modules/bytes": {
131
+ "version": "3.1.2",
132
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
133
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
134
+ "engines": {
135
+ "node": ">= 0.8"
136
+ }
137
+ },
138
+ "node_modules/call-bind": {
139
+ "version": "1.0.7",
140
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
141
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
142
+ "dependencies": {
143
+ "es-define-property": "^1.0.0",
144
+ "es-errors": "^1.3.0",
145
+ "function-bind": "^1.1.2",
146
+ "get-intrinsic": "^1.2.4",
147
+ "set-function-length": "^1.2.1"
148
+ },
149
+ "engines": {
150
+ "node": ">= 0.4"
151
+ },
152
+ "funding": {
153
+ "url": "https://github.com/sponsors/ljharb"
154
+ }
155
+ },
156
+ "node_modules/chokidar": {
157
+ "version": "3.6.0",
158
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
159
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
160
+ "dependencies": {
161
+ "anymatch": "~3.1.2",
162
+ "braces": "~3.0.2",
163
+ "glob-parent": "~5.1.2",
164
+ "is-binary-path": "~2.1.0",
165
+ "is-glob": "~4.0.1",
166
+ "normalize-path": "~3.0.0",
167
+ "readdirp": "~3.6.0"
168
+ },
169
+ "engines": {
170
+ "node": ">= 8.10.0"
171
+ },
172
+ "funding": {
173
+ "url": "https://paulmillr.com/funding/"
174
+ },
175
+ "optionalDependencies": {
176
+ "fsevents": "~2.3.2"
177
+ }
178
+ },
179
+ "node_modules/concat-map": {
180
+ "version": "0.0.1",
181
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
182
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
183
+ },
184
+ "node_modules/content-disposition": {
185
+ "version": "0.5.4",
186
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
187
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
188
+ "dependencies": {
189
+ "safe-buffer": "5.2.1"
190
+ },
191
+ "engines": {
192
+ "node": ">= 0.6"
193
+ }
194
+ },
195
+ "node_modules/content-type": {
196
+ "version": "1.0.5",
197
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
198
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
199
+ "engines": {
200
+ "node": ">= 0.6"
201
+ }
202
+ },
203
+ "node_modules/cookie": {
204
+ "version": "0.6.0",
205
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
206
+ "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
207
+ "engines": {
208
+ "node": ">= 0.6"
209
+ }
210
+ },
211
+ "node_modules/cookie-signature": {
212
+ "version": "1.0.6",
213
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
214
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
215
+ },
216
+ "node_modules/cors": {
217
+ "version": "2.8.5",
218
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
219
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
220
+ "dependencies": {
221
+ "object-assign": "^4",
222
+ "vary": "^1"
223
+ },
224
+ "engines": {
225
+ "node": ">= 0.10"
226
+ }
227
+ },
228
+ "node_modules/debug": {
229
+ "version": "2.6.9",
230
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
231
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
232
+ "dependencies": {
233
+ "ms": "2.0.0"
234
+ }
235
+ },
236
+ "node_modules/define-data-property": {
237
+ "version": "1.1.4",
238
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
239
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
240
+ "dependencies": {
241
+ "es-define-property": "^1.0.0",
242
+ "es-errors": "^1.3.0",
243
+ "gopd": "^1.0.1"
244
+ },
245
+ "engines": {
246
+ "node": ">= 0.4"
247
+ },
248
+ "funding": {
249
+ "url": "https://github.com/sponsors/ljharb"
250
+ }
251
+ },
252
+ "node_modules/depd": {
253
+ "version": "2.0.0",
254
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
255
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
256
+ "engines": {
257
+ "node": ">= 0.8"
258
+ }
259
+ },
260
+ "node_modules/destroy": {
261
+ "version": "1.2.0",
262
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
263
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
264
+ "engines": {
265
+ "node": ">= 0.8",
266
+ "npm": "1.2.8000 || >= 1.4.16"
267
+ }
268
+ },
269
+ "node_modules/dotenv": {
270
+ "version": "16.4.5",
271
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
272
+ "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
273
+ "engines": {
274
+ "node": ">=12"
275
+ },
276
+ "funding": {
277
+ "url": "https://dotenvx.com"
278
+ }
279
+ },
280
+ "node_modules/ecdsa-sig-formatter": {
281
+ "version": "1.0.11",
282
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
283
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
284
+ "dependencies": {
285
+ "safe-buffer": "^5.0.1"
286
+ }
287
+ },
288
+ "node_modules/ee-first": {
289
+ "version": "1.1.1",
290
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
291
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
292
+ },
293
+ "node_modules/encodeurl": {
294
+ "version": "2.0.0",
295
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
296
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
297
+ "engines": {
298
+ "node": ">= 0.8"
299
+ }
300
+ },
301
+ "node_modules/es-define-property": {
302
+ "version": "1.0.0",
303
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
304
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
305
+ "dependencies": {
306
+ "get-intrinsic": "^1.2.4"
307
+ },
308
+ "engines": {
309
+ "node": ">= 0.4"
310
+ }
311
+ },
312
+ "node_modules/es-errors": {
313
+ "version": "1.3.0",
314
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
315
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
316
+ "engines": {
317
+ "node": ">= 0.4"
318
+ }
319
+ },
320
+ "node_modules/escape-html": {
321
+ "version": "1.0.3",
322
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
323
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
324
+ },
325
+ "node_modules/etag": {
326
+ "version": "1.8.1",
327
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
328
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
329
+ "engines": {
330
+ "node": ">= 0.6"
331
+ }
332
+ },
333
+ "node_modules/express": {
334
+ "version": "4.21.0",
335
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
336
+ "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
337
+ "dependencies": {
338
+ "accepts": "~1.3.8",
339
+ "array-flatten": "1.1.1",
340
+ "body-parser": "1.20.3",
341
+ "content-disposition": "0.5.4",
342
+ "content-type": "~1.0.4",
343
+ "cookie": "0.6.0",
344
+ "cookie-signature": "1.0.6",
345
+ "debug": "2.6.9",
346
+ "depd": "2.0.0",
347
+ "encodeurl": "~2.0.0",
348
+ "escape-html": "~1.0.3",
349
+ "etag": "~1.8.1",
350
+ "finalhandler": "1.3.1",
351
+ "fresh": "0.5.2",
352
+ "http-errors": "2.0.0",
353
+ "merge-descriptors": "1.0.3",
354
+ "methods": "~1.1.2",
355
+ "on-finished": "2.4.1",
356
+ "parseurl": "~1.3.3",
357
+ "path-to-regexp": "0.1.10",
358
+ "proxy-addr": "~2.0.7",
359
+ "qs": "6.13.0",
360
+ "range-parser": "~1.2.1",
361
+ "safe-buffer": "5.2.1",
362
+ "send": "0.19.0",
363
+ "serve-static": "1.16.2",
364
+ "setprototypeof": "1.2.0",
365
+ "statuses": "2.0.1",
366
+ "type-is": "~1.6.18",
367
+ "utils-merge": "1.0.1",
368
+ "vary": "~1.1.2"
369
+ },
370
+ "engines": {
371
+ "node": ">= 0.10.0"
372
+ }
373
+ },
374
+ "node_modules/fill-range": {
375
+ "version": "7.1.1",
376
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
377
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
378
+ "dependencies": {
379
+ "to-regex-range": "^5.0.1"
380
+ },
381
+ "engines": {
382
+ "node": ">=8"
383
+ }
384
+ },
385
+ "node_modules/finalhandler": {
386
+ "version": "1.3.1",
387
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
388
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
389
+ "dependencies": {
390
+ "debug": "2.6.9",
391
+ "encodeurl": "~2.0.0",
392
+ "escape-html": "~1.0.3",
393
+ "on-finished": "2.4.1",
394
+ "parseurl": "~1.3.3",
395
+ "statuses": "2.0.1",
396
+ "unpipe": "~1.0.0"
397
+ },
398
+ "engines": {
399
+ "node": ">= 0.8"
400
+ }
401
+ },
402
+ "node_modules/forwarded": {
403
+ "version": "0.2.0",
404
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
405
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
406
+ "engines": {
407
+ "node": ">= 0.6"
408
+ }
409
+ },
410
+ "node_modules/fresh": {
411
+ "version": "0.5.2",
412
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
413
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
414
+ "engines": {
415
+ "node": ">= 0.6"
416
+ }
417
+ },
418
+ "node_modules/fsevents": {
419
+ "version": "2.3.3",
420
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
421
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
422
+ "hasInstallScript": true,
423
+ "optional": true,
424
+ "os": [
425
+ "darwin"
426
+ ],
427
+ "engines": {
428
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
429
+ }
430
+ },
431
+ "node_modules/function-bind": {
432
+ "version": "1.1.2",
433
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
434
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
435
+ "funding": {
436
+ "url": "https://github.com/sponsors/ljharb"
437
+ }
438
+ },
439
+ "node_modules/get-intrinsic": {
440
+ "version": "1.2.4",
441
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
442
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
443
+ "dependencies": {
444
+ "es-errors": "^1.3.0",
445
+ "function-bind": "^1.1.2",
446
+ "has-proto": "^1.0.1",
447
+ "has-symbols": "^1.0.3",
448
+ "hasown": "^2.0.0"
449
+ },
450
+ "engines": {
451
+ "node": ">= 0.4"
452
+ },
453
+ "funding": {
454
+ "url": "https://github.com/sponsors/ljharb"
455
+ }
456
+ },
457
+ "node_modules/glob-parent": {
458
+ "version": "5.1.2",
459
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
460
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
461
+ "dependencies": {
462
+ "is-glob": "^4.0.1"
463
+ },
464
+ "engines": {
465
+ "node": ">= 6"
466
+ }
467
+ },
468
+ "node_modules/gopd": {
469
+ "version": "1.0.1",
470
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
471
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
472
+ "dependencies": {
473
+ "get-intrinsic": "^1.1.3"
474
+ },
475
+ "funding": {
476
+ "url": "https://github.com/sponsors/ljharb"
477
+ }
478
+ },
479
+ "node_modules/has-flag": {
480
+ "version": "3.0.0",
481
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
482
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
483
+ "engines": {
484
+ "node": ">=4"
485
+ }
486
+ },
487
+ "node_modules/has-property-descriptors": {
488
+ "version": "1.0.2",
489
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
490
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
491
+ "dependencies": {
492
+ "es-define-property": "^1.0.0"
493
+ },
494
+ "funding": {
495
+ "url": "https://github.com/sponsors/ljharb"
496
+ }
497
+ },
498
+ "node_modules/has-proto": {
499
+ "version": "1.0.3",
500
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
501
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
502
+ "engines": {
503
+ "node": ">= 0.4"
504
+ },
505
+ "funding": {
506
+ "url": "https://github.com/sponsors/ljharb"
507
+ }
508
+ },
509
+ "node_modules/has-symbols": {
510
+ "version": "1.0.3",
511
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
512
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
513
+ "engines": {
514
+ "node": ">= 0.4"
515
+ },
516
+ "funding": {
517
+ "url": "https://github.com/sponsors/ljharb"
518
+ }
519
+ },
520
+ "node_modules/hasown": {
521
+ "version": "2.0.2",
522
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
523
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
524
+ "dependencies": {
525
+ "function-bind": "^1.1.2"
526
+ },
527
+ "engines": {
528
+ "node": ">= 0.4"
529
+ }
530
+ },
531
+ "node_modules/http-errors": {
532
+ "version": "2.0.0",
533
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
534
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
535
+ "dependencies": {
536
+ "depd": "2.0.0",
537
+ "inherits": "2.0.4",
538
+ "setprototypeof": "1.2.0",
539
+ "statuses": "2.0.1",
540
+ "toidentifier": "1.0.1"
541
+ },
542
+ "engines": {
543
+ "node": ">= 0.8"
544
+ }
545
+ },
546
+ "node_modules/iconv-lite": {
547
+ "version": "0.4.24",
548
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
549
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
550
+ "dependencies": {
551
+ "safer-buffer": ">= 2.1.2 < 3"
552
+ },
553
+ "engines": {
554
+ "node": ">=0.10.0"
555
+ }
556
+ },
557
+ "node_modules/ignore-by-default": {
558
+ "version": "1.0.1",
559
+ "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
560
+ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
561
+ },
562
+ "node_modules/inherits": {
563
+ "version": "2.0.4",
564
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
565
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
566
+ },
567
+ "node_modules/ipaddr.js": {
568
+ "version": "1.9.1",
569
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
570
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
571
+ "engines": {
572
+ "node": ">= 0.10"
573
+ }
574
+ },
575
+ "node_modules/is-binary-path": {
576
+ "version": "2.1.0",
577
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
578
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
579
+ "dependencies": {
580
+ "binary-extensions": "^2.0.0"
581
+ },
582
+ "engines": {
583
+ "node": ">=8"
584
+ }
585
+ },
586
+ "node_modules/is-extglob": {
587
+ "version": "2.1.1",
588
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
589
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
590
+ "engines": {
591
+ "node": ">=0.10.0"
592
+ }
593
+ },
594
+ "node_modules/is-glob": {
595
+ "version": "4.0.3",
596
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
597
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
598
+ "dependencies": {
599
+ "is-extglob": "^2.1.1"
600
+ },
601
+ "engines": {
602
+ "node": ">=0.10.0"
603
+ }
604
+ },
605
+ "node_modules/is-number": {
606
+ "version": "7.0.0",
607
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
608
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
609
+ "engines": {
610
+ "node": ">=0.12.0"
611
+ }
612
+ },
613
+ "node_modules/jsonwebtoken": {
614
+ "version": "9.0.2",
615
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
616
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
617
+ "dependencies": {
618
+ "jws": "^3.2.2",
619
+ "lodash.includes": "^4.3.0",
620
+ "lodash.isboolean": "^3.0.3",
621
+ "lodash.isinteger": "^4.0.4",
622
+ "lodash.isnumber": "^3.0.3",
623
+ "lodash.isplainobject": "^4.0.6",
624
+ "lodash.isstring": "^4.0.1",
625
+ "lodash.once": "^4.0.0",
626
+ "ms": "^2.1.1",
627
+ "semver": "^7.5.4"
628
+ },
629
+ "engines": {
630
+ "node": ">=12",
631
+ "npm": ">=6"
632
+ }
633
+ },
634
+ "node_modules/jsonwebtoken/node_modules/ms": {
635
+ "version": "2.1.3",
636
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
637
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
638
+ },
639
+ "node_modules/jwa": {
640
+ "version": "1.4.1",
641
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
642
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
643
+ "dependencies": {
644
+ "buffer-equal-constant-time": "1.0.1",
645
+ "ecdsa-sig-formatter": "1.0.11",
646
+ "safe-buffer": "^5.0.1"
647
+ }
648
+ },
649
+ "node_modules/jws": {
650
+ "version": "3.2.2",
651
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
652
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
653
+ "dependencies": {
654
+ "jwa": "^1.4.1",
655
+ "safe-buffer": "^5.0.1"
656
+ }
657
+ },
658
+ "node_modules/lodash.includes": {
659
+ "version": "4.3.0",
660
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
661
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
662
+ },
663
+ "node_modules/lodash.isboolean": {
664
+ "version": "3.0.3",
665
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
666
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
667
+ },
668
+ "node_modules/lodash.isinteger": {
669
+ "version": "4.0.4",
670
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
671
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
672
+ },
673
+ "node_modules/lodash.isnumber": {
674
+ "version": "3.0.3",
675
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
676
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
677
+ },
678
+ "node_modules/lodash.isplainobject": {
679
+ "version": "4.0.6",
680
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
681
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
682
+ },
683
+ "node_modules/lodash.isstring": {
684
+ "version": "4.0.1",
685
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
686
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
687
+ },
688
+ "node_modules/lodash.once": {
689
+ "version": "4.1.1",
690
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
691
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
692
+ },
693
+ "node_modules/media-typer": {
694
+ "version": "0.3.0",
695
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
696
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
697
+ "engines": {
698
+ "node": ">= 0.6"
699
+ }
700
+ },
701
+ "node_modules/merge-descriptors": {
702
+ "version": "1.0.3",
703
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
704
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
705
+ "funding": {
706
+ "url": "https://github.com/sponsors/sindresorhus"
707
+ }
708
+ },
709
+ "node_modules/methods": {
710
+ "version": "1.1.2",
711
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
712
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
713
+ "engines": {
714
+ "node": ">= 0.6"
715
+ }
716
+ },
717
+ "node_modules/mime": {
718
+ "version": "1.6.0",
719
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
720
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
721
+ "bin": {
722
+ "mime": "cli.js"
723
+ },
724
+ "engines": {
725
+ "node": ">=4"
726
+ }
727
+ },
728
+ "node_modules/mime-db": {
729
+ "version": "1.52.0",
730
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
731
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
732
+ "engines": {
733
+ "node": ">= 0.6"
734
+ }
735
+ },
736
+ "node_modules/mime-types": {
737
+ "version": "2.1.35",
738
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
739
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
740
+ "dependencies": {
741
+ "mime-db": "1.52.0"
742
+ },
743
+ "engines": {
744
+ "node": ">= 0.6"
745
+ }
746
+ },
747
+ "node_modules/minimatch": {
748
+ "version": "3.1.2",
749
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
750
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
751
+ "dependencies": {
752
+ "brace-expansion": "^1.1.7"
753
+ },
754
+ "engines": {
755
+ "node": "*"
756
+ }
757
+ },
758
+ "node_modules/ms": {
759
+ "version": "2.0.0",
760
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
761
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
762
+ },
763
+ "node_modules/negotiator": {
764
+ "version": "0.6.3",
765
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
766
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
767
+ "engines": {
768
+ "node": ">= 0.6"
769
+ }
770
+ },
771
+ "node_modules/nodemon": {
772
+ "version": "3.1.7",
773
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz",
774
+ "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==",
775
+ "dependencies": {
776
+ "chokidar": "^3.5.2",
777
+ "debug": "^4",
778
+ "ignore-by-default": "^1.0.1",
779
+ "minimatch": "^3.1.2",
780
+ "pstree.remy": "^1.1.8",
781
+ "semver": "^7.5.3",
782
+ "simple-update-notifier": "^2.0.0",
783
+ "supports-color": "^5.5.0",
784
+ "touch": "^3.1.0",
785
+ "undefsafe": "^2.0.5"
786
+ },
787
+ "bin": {
788
+ "nodemon": "bin/nodemon.js"
789
+ },
790
+ "engines": {
791
+ "node": ">=10"
792
+ },
793
+ "funding": {
794
+ "type": "opencollective",
795
+ "url": "https://opencollective.com/nodemon"
796
+ }
797
+ },
798
+ "node_modules/nodemon/node_modules/debug": {
799
+ "version": "4.3.7",
800
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
801
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
802
+ "dependencies": {
803
+ "ms": "^2.1.3"
804
+ },
805
+ "engines": {
806
+ "node": ">=6.0"
807
+ },
808
+ "peerDependenciesMeta": {
809
+ "supports-color": {
810
+ "optional": true
811
+ }
812
+ }
813
+ },
814
+ "node_modules/nodemon/node_modules/ms": {
815
+ "version": "2.1.3",
816
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
817
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
818
+ },
819
+ "node_modules/normalize-path": {
820
+ "version": "3.0.0",
821
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
822
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
823
+ "engines": {
824
+ "node": ">=0.10.0"
825
+ }
826
+ },
827
+ "node_modules/object-assign": {
828
+ "version": "4.1.1",
829
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
830
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
831
+ "engines": {
832
+ "node": ">=0.10.0"
833
+ }
834
+ },
835
+ "node_modules/object-inspect": {
836
+ "version": "1.13.2",
837
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
838
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
839
+ "engines": {
840
+ "node": ">= 0.4"
841
+ },
842
+ "funding": {
843
+ "url": "https://github.com/sponsors/ljharb"
844
+ }
845
+ },
846
+ "node_modules/on-finished": {
847
+ "version": "2.4.1",
848
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
849
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
850
+ "dependencies": {
851
+ "ee-first": "1.1.1"
852
+ },
853
+ "engines": {
854
+ "node": ">= 0.8"
855
+ }
856
+ },
857
+ "node_modules/parseurl": {
858
+ "version": "1.3.3",
859
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
860
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
861
+ "engines": {
862
+ "node": ">= 0.8"
863
+ }
864
+ },
865
+ "node_modules/path-to-regexp": {
866
+ "version": "0.1.10",
867
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
868
+ "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
869
+ },
870
+ "node_modules/picomatch": {
871
+ "version": "2.3.1",
872
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
873
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
874
+ "engines": {
875
+ "node": ">=8.6"
876
+ },
877
+ "funding": {
878
+ "url": "https://github.com/sponsors/jonschlinkert"
879
+ }
880
+ },
881
+ "node_modules/proxy-addr": {
882
+ "version": "2.0.7",
883
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
884
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
885
+ "dependencies": {
886
+ "forwarded": "0.2.0",
887
+ "ipaddr.js": "1.9.1"
888
+ },
889
+ "engines": {
890
+ "node": ">= 0.10"
891
+ }
892
+ },
893
+ "node_modules/pstree.remy": {
894
+ "version": "1.1.8",
895
+ "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
896
+ "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
897
+ },
898
+ "node_modules/qs": {
899
+ "version": "6.13.0",
900
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
901
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
902
+ "dependencies": {
903
+ "side-channel": "^1.0.6"
904
+ },
905
+ "engines": {
906
+ "node": ">=0.6"
907
+ },
908
+ "funding": {
909
+ "url": "https://github.com/sponsors/ljharb"
910
+ }
911
+ },
912
+ "node_modules/range-parser": {
913
+ "version": "1.2.1",
914
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
915
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
916
+ "engines": {
917
+ "node": ">= 0.6"
918
+ }
919
+ },
920
+ "node_modules/raw-body": {
921
+ "version": "2.5.2",
922
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
923
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
924
+ "dependencies": {
925
+ "bytes": "3.1.2",
926
+ "http-errors": "2.0.0",
927
+ "iconv-lite": "0.4.24",
928
+ "unpipe": "1.0.0"
929
+ },
930
+ "engines": {
931
+ "node": ">= 0.8"
932
+ }
933
+ },
934
+ "node_modules/readdirp": {
935
+ "version": "3.6.0",
936
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
937
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
938
+ "dependencies": {
939
+ "picomatch": "^2.2.1"
940
+ },
941
+ "engines": {
942
+ "node": ">=8.10.0"
943
+ }
944
+ },
945
+ "node_modules/safe-buffer": {
946
+ "version": "5.2.1",
947
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
948
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
949
+ "funding": [
950
+ {
951
+ "type": "github",
952
+ "url": "https://github.com/sponsors/feross"
953
+ },
954
+ {
955
+ "type": "patreon",
956
+ "url": "https://www.patreon.com/feross"
957
+ },
958
+ {
959
+ "type": "consulting",
960
+ "url": "https://feross.org/support"
961
+ }
962
+ ]
963
+ },
964
+ "node_modules/safer-buffer": {
965
+ "version": "2.1.2",
966
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
967
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
968
+ },
969
+ "node_modules/semver": {
970
+ "version": "7.6.3",
971
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
972
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
973
+ "bin": {
974
+ "semver": "bin/semver.js"
975
+ },
976
+ "engines": {
977
+ "node": ">=10"
978
+ }
979
+ },
980
+ "node_modules/send": {
981
+ "version": "0.19.0",
982
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
983
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
984
+ "dependencies": {
985
+ "debug": "2.6.9",
986
+ "depd": "2.0.0",
987
+ "destroy": "1.2.0",
988
+ "encodeurl": "~1.0.2",
989
+ "escape-html": "~1.0.3",
990
+ "etag": "~1.8.1",
991
+ "fresh": "0.5.2",
992
+ "http-errors": "2.0.0",
993
+ "mime": "1.6.0",
994
+ "ms": "2.1.3",
995
+ "on-finished": "2.4.1",
996
+ "range-parser": "~1.2.1",
997
+ "statuses": "2.0.1"
998
+ },
999
+ "engines": {
1000
+ "node": ">= 0.8.0"
1001
+ }
1002
+ },
1003
+ "node_modules/send/node_modules/encodeurl": {
1004
+ "version": "1.0.2",
1005
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
1006
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
1007
+ "engines": {
1008
+ "node": ">= 0.8"
1009
+ }
1010
+ },
1011
+ "node_modules/send/node_modules/ms": {
1012
+ "version": "2.1.3",
1013
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1014
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1015
+ },
1016
+ "node_modules/serve-static": {
1017
+ "version": "1.16.2",
1018
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
1019
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
1020
+ "dependencies": {
1021
+ "encodeurl": "~2.0.0",
1022
+ "escape-html": "~1.0.3",
1023
+ "parseurl": "~1.3.3",
1024
+ "send": "0.19.0"
1025
+ },
1026
+ "engines": {
1027
+ "node": ">= 0.8.0"
1028
+ }
1029
+ },
1030
+ "node_modules/set-function-length": {
1031
+ "version": "1.2.2",
1032
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
1033
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
1034
+ "dependencies": {
1035
+ "define-data-property": "^1.1.4",
1036
+ "es-errors": "^1.3.0",
1037
+ "function-bind": "^1.1.2",
1038
+ "get-intrinsic": "^1.2.4",
1039
+ "gopd": "^1.0.1",
1040
+ "has-property-descriptors": "^1.0.2"
1041
+ },
1042
+ "engines": {
1043
+ "node": ">= 0.4"
1044
+ }
1045
+ },
1046
+ "node_modules/setprototypeof": {
1047
+ "version": "1.2.0",
1048
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1049
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1050
+ },
1051
+ "node_modules/side-channel": {
1052
+ "version": "1.0.6",
1053
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
1054
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
1055
+ "dependencies": {
1056
+ "call-bind": "^1.0.7",
1057
+ "es-errors": "^1.3.0",
1058
+ "get-intrinsic": "^1.2.4",
1059
+ "object-inspect": "^1.13.1"
1060
+ },
1061
+ "engines": {
1062
+ "node": ">= 0.4"
1063
+ },
1064
+ "funding": {
1065
+ "url": "https://github.com/sponsors/ljharb"
1066
+ }
1067
+ },
1068
+ "node_modules/simple-update-notifier": {
1069
+ "version": "2.0.0",
1070
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
1071
+ "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
1072
+ "dependencies": {
1073
+ "semver": "^7.5.3"
1074
+ },
1075
+ "engines": {
1076
+ "node": ">=10"
1077
+ }
1078
+ },
1079
+ "node_modules/statuses": {
1080
+ "version": "2.0.1",
1081
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1082
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1083
+ "engines": {
1084
+ "node": ">= 0.8"
1085
+ }
1086
+ },
1087
+ "node_modules/supports-color": {
1088
+ "version": "5.5.0",
1089
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1090
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1091
+ "dependencies": {
1092
+ "has-flag": "^3.0.0"
1093
+ },
1094
+ "engines": {
1095
+ "node": ">=4"
1096
+ }
1097
+ },
1098
+ "node_modules/to-regex-range": {
1099
+ "version": "5.0.1",
1100
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1101
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1102
+ "dependencies": {
1103
+ "is-number": "^7.0.0"
1104
+ },
1105
+ "engines": {
1106
+ "node": ">=8.0"
1107
+ }
1108
+ },
1109
+ "node_modules/toidentifier": {
1110
+ "version": "1.0.1",
1111
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1112
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1113
+ "engines": {
1114
+ "node": ">=0.6"
1115
+ }
1116
+ },
1117
+ "node_modules/touch": {
1118
+ "version": "3.1.1",
1119
+ "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz",
1120
+ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==",
1121
+ "bin": {
1122
+ "nodetouch": "bin/nodetouch.js"
1123
+ }
1124
+ },
1125
+ "node_modules/type-is": {
1126
+ "version": "1.6.18",
1127
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1128
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1129
+ "dependencies": {
1130
+ "media-typer": "0.3.0",
1131
+ "mime-types": "~2.1.24"
1132
+ },
1133
+ "engines": {
1134
+ "node": ">= 0.6"
1135
+ }
1136
+ },
1137
+ "node_modules/undefsafe": {
1138
+ "version": "2.0.5",
1139
+ "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
1140
+ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA=="
1141
+ },
1142
+ "node_modules/unpipe": {
1143
+ "version": "1.0.0",
1144
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1145
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1146
+ "engines": {
1147
+ "node": ">= 0.8"
1148
+ }
1149
+ },
1150
+ "node_modules/utils-merge": {
1151
+ "version": "1.0.1",
1152
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1153
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
1154
+ "engines": {
1155
+ "node": ">= 0.4.0"
1156
+ }
1157
+ },
1158
+ "node_modules/vary": {
1159
+ "version": "1.1.2",
1160
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1161
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1162
+ "engines": {
1163
+ "node": ">= 0.8"
1164
+ }
1165
+ }
1166
+ }
1167
+ }
package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "erp-express-server",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "server.js",
6
+ "type": "module",
7
+ "scripts": {
8
+ "start": "node server.js",
9
+ "dev": "nodemon server.js",
10
+ "postinstall": "prisma generate",
11
+ "vercel-build": "prisma generate"
12
+ },
13
+ "author": "",
14
+ "license": "ISC",
15
+ "dependencies": {
16
+ "@netlify/functions": "^2.8.1",
17
+ "@prisma/client": "^5.20.0",
18
+ "cors": "^2.8.5",
19
+ "dotenv": "^16.4.5",
20
+ "express": "^4.21.0",
21
+ "jsonwebtoken": "^9.0.2",
22
+ "nodemon": "^3.1.7",
23
+ "serverless-http": "^3.2.0"
24
+ },
25
+ "devDependencies": {
26
+ "prisma": "^5.20.0"
27
+ }
28
+ }
pnpm-lock.yaml ADDED
@@ -0,0 +1,995 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ dependencies:
11
+ '@netlify/functions':
12
+ specifier: ^2.8.1
13
+ version: 2.8.1
14
+ '@prisma/client':
15
+ specifier: ^5.20.0
16
+ version: 5.20.0(prisma@5.20.0)
17
+ cors:
18
+ specifier: ^2.8.5
19
+ version: 2.8.5
20
+ dotenv:
21
+ specifier: ^16.4.5
22
+ version: 16.4.5
23
+ express:
24
+ specifier: ^4.21.0
25
+ version: 4.21.0
26
+ jsonwebtoken:
27
+ specifier: ^9.0.2
28
+ version: 9.0.2
29
+ nodemon:
30
+ specifier: ^3.1.7
31
+ version: 3.1.7
32
+ serverless-http:
33
+ specifier: ^3.2.0
34
+ version: 3.2.0
35
+ devDependencies:
36
+ prisma:
37
+ specifier: ^5.20.0
38
+ version: 5.20.0
39
+
40
+ packages:
41
+
42
+ '@netlify/functions@2.8.1':
43
+ resolution: {integrity: sha512-+6wtYdoz0yE06dSa9XkP47tw5zm6g13QMeCwM3MmHx1vn8hzwFa51JtmfraprdkL7amvb7gaNM+OOhQU1h6T8A==}
44
+ engines: {node: '>=14.0.0'}
45
+
46
+ '@netlify/node-cookies@0.1.0':
47
+ resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==}
48
+ engines: {node: ^14.16.0 || >=16.0.0}
49
+
50
+ '@netlify/serverless-functions-api@1.19.1':
51
+ resolution: {integrity: sha512-2KYkyluThg1AKfd0JWI7FzpS4A/fzVVGYIf6AM4ydWyNj8eI/86GQVLeRgDoH7CNOxt243R5tutWlmHpVq0/Ew==}
52
+ engines: {node: '>=18.0.0'}
53
+
54
+ '@prisma/client@5.20.0':
55
+ resolution: {integrity: sha512-CLv55ZuMuUawMsxoqxGtLT3bEZoa2W8L3Qnp6rDIFWy+ZBrUcOFKdoeGPSnbBqxc3SkdxJrF+D1veN/WNynZYA==}
56
+ engines: {node: '>=16.13'}
57
+ peerDependencies:
58
+ prisma: '*'
59
+ peerDependenciesMeta:
60
+ prisma:
61
+ optional: true
62
+
63
+ '@prisma/debug@5.20.0':
64
+ resolution: {integrity: sha512-oCx79MJ4HSujokA8S1g0xgZUGybD4SyIOydoHMngFYiwEwYDQ5tBQkK5XoEHuwOYDKUOKRn/J0MEymckc4IgsQ==}
65
+
66
+ '@prisma/engines-version@5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284':
67
+ resolution: {integrity: sha512-Lg8AS5lpi0auZe2Mn4gjuCg081UZf88k3cn0RCwHgR+6cyHHpttPZBElJTHf83ZGsRNAmVCZCfUGA57WB4u4JA==}
68
+
69
+ '@prisma/engines@5.20.0':
70
+ resolution: {integrity: sha512-DtqkP+hcZvPEbj8t8dK5df2b7d3B8GNauKqaddRRqQBBlgkbdhJkxhoJTrOowlS3vaRt2iMCkU0+CSNn0KhqAQ==}
71
+
72
+ '@prisma/fetch-engine@5.20.0':
73
+ resolution: {integrity: sha512-JVcaPXC940wOGpCOwuqQRTz6I9SaBK0c1BAyC1pcz9xBi+dzFgUu3G/p9GV1FhFs9OKpfSpIhQfUJE9y00zhqw==}
74
+
75
+ '@prisma/get-platform@5.20.0':
76
+ resolution: {integrity: sha512-8/+CehTZZNzJlvuryRgc77hZCWrUDYd/PmlZ7p2yNXtmf2Una4BWnTbak3us6WVdqoz5wmptk6IhsXdG2v5fmA==}
77
+
78
+ accepts@1.3.8:
79
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
80
+ engines: {node: '>= 0.6'}
81
+
82
+ anymatch@3.1.3:
83
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
84
+ engines: {node: '>= 8'}
85
+
86
+ array-flatten@1.1.1:
87
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
88
+
89
+ balanced-match@1.0.2:
90
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
91
+
92
+ binary-extensions@2.3.0:
93
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
94
+ engines: {node: '>=8'}
95
+
96
+ body-parser@1.20.3:
97
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
98
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
99
+
100
+ brace-expansion@1.1.11:
101
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
102
+
103
+ braces@3.0.3:
104
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
105
+ engines: {node: '>=8'}
106
+
107
+ buffer-equal-constant-time@1.0.1:
108
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
109
+
110
+ bytes@3.1.2:
111
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
112
+ engines: {node: '>= 0.8'}
113
+
114
+ call-bind@1.0.7:
115
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
116
+ engines: {node: '>= 0.4'}
117
+
118
+ chokidar@3.6.0:
119
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
120
+ engines: {node: '>= 8.10.0'}
121
+
122
+ concat-map@0.0.1:
123
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
124
+
125
+ content-disposition@0.5.4:
126
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
127
+ engines: {node: '>= 0.6'}
128
+
129
+ content-type@1.0.5:
130
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
131
+ engines: {node: '>= 0.6'}
132
+
133
+ cookie-signature@1.0.6:
134
+ resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
135
+
136
+ cookie@0.6.0:
137
+ resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
138
+ engines: {node: '>= 0.6'}
139
+
140
+ cors@2.8.5:
141
+ resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
142
+ engines: {node: '>= 0.10'}
143
+
144
+ debug@2.6.9:
145
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
146
+ peerDependencies:
147
+ supports-color: '*'
148
+ peerDependenciesMeta:
149
+ supports-color:
150
+ optional: true
151
+
152
+ debug@4.3.7:
153
+ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
154
+ engines: {node: '>=6.0'}
155
+ peerDependencies:
156
+ supports-color: '*'
157
+ peerDependenciesMeta:
158
+ supports-color:
159
+ optional: true
160
+
161
+ define-data-property@1.1.4:
162
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
163
+ engines: {node: '>= 0.4'}
164
+
165
+ depd@2.0.0:
166
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
167
+ engines: {node: '>= 0.8'}
168
+
169
+ destroy@1.2.0:
170
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
171
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
172
+
173
+ dotenv@16.4.5:
174
+ resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
175
+ engines: {node: '>=12'}
176
+
177
+ ecdsa-sig-formatter@1.0.11:
178
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
179
+
180
+ ee-first@1.1.1:
181
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
182
+
183
+ encodeurl@1.0.2:
184
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
185
+ engines: {node: '>= 0.8'}
186
+
187
+ encodeurl@2.0.0:
188
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
189
+ engines: {node: '>= 0.8'}
190
+
191
+ es-define-property@1.0.0:
192
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
193
+ engines: {node: '>= 0.4'}
194
+
195
+ es-errors@1.3.0:
196
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
197
+ engines: {node: '>= 0.4'}
198
+
199
+ escape-html@1.0.3:
200
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
201
+
202
+ etag@1.8.1:
203
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
204
+ engines: {node: '>= 0.6'}
205
+
206
+ express@4.21.0:
207
+ resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==}
208
+ engines: {node: '>= 0.10.0'}
209
+
210
+ fill-range@7.1.1:
211
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
212
+ engines: {node: '>=8'}
213
+
214
+ finalhandler@1.3.1:
215
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
216
+ engines: {node: '>= 0.8'}
217
+
218
+ forwarded@0.2.0:
219
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
220
+ engines: {node: '>= 0.6'}
221
+
222
+ fresh@0.5.2:
223
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
224
+ engines: {node: '>= 0.6'}
225
+
226
+ fsevents@2.3.3:
227
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
228
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
229
+ os: [darwin]
230
+
231
+ function-bind@1.1.2:
232
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
233
+
234
+ get-intrinsic@1.2.4:
235
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
236
+ engines: {node: '>= 0.4'}
237
+
238
+ glob-parent@5.1.2:
239
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
240
+ engines: {node: '>= 6'}
241
+
242
+ gopd@1.0.1:
243
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
244
+
245
+ has-flag@3.0.0:
246
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
247
+ engines: {node: '>=4'}
248
+
249
+ has-property-descriptors@1.0.2:
250
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
251
+
252
+ has-proto@1.0.3:
253
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
254
+ engines: {node: '>= 0.4'}
255
+
256
+ has-symbols@1.0.3:
257
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
258
+ engines: {node: '>= 0.4'}
259
+
260
+ hasown@2.0.2:
261
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
262
+ engines: {node: '>= 0.4'}
263
+
264
+ http-errors@2.0.0:
265
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
266
+ engines: {node: '>= 0.8'}
267
+
268
+ iconv-lite@0.4.24:
269
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
270
+ engines: {node: '>=0.10.0'}
271
+
272
+ ignore-by-default@1.0.1:
273
+ resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
274
+
275
+ inherits@2.0.4:
276
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
277
+
278
+ ipaddr.js@1.9.1:
279
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
280
+ engines: {node: '>= 0.10'}
281
+
282
+ is-binary-path@2.1.0:
283
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
284
+ engines: {node: '>=8'}
285
+
286
+ is-extglob@2.1.1:
287
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
288
+ engines: {node: '>=0.10.0'}
289
+
290
+ is-glob@4.0.3:
291
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
292
+ engines: {node: '>=0.10.0'}
293
+
294
+ is-number@7.0.0:
295
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
296
+ engines: {node: '>=0.12.0'}
297
+
298
+ jsonwebtoken@9.0.2:
299
+ resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
300
+ engines: {node: '>=12', npm: '>=6'}
301
+
302
+ jwa@1.4.1:
303
+ resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
304
+
305
+ jws@3.2.2:
306
+ resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
307
+
308
+ lodash.includes@4.3.0:
309
+ resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
310
+
311
+ lodash.isboolean@3.0.3:
312
+ resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
313
+
314
+ lodash.isinteger@4.0.4:
315
+ resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
316
+
317
+ lodash.isnumber@3.0.3:
318
+ resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
319
+
320
+ lodash.isplainobject@4.0.6:
321
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
322
+
323
+ lodash.isstring@4.0.1:
324
+ resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
325
+
326
+ lodash.once@4.1.1:
327
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
328
+
329
+ media-typer@0.3.0:
330
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
331
+ engines: {node: '>= 0.6'}
332
+
333
+ merge-descriptors@1.0.3:
334
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
335
+
336
+ methods@1.1.2:
337
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
338
+ engines: {node: '>= 0.6'}
339
+
340
+ mime-db@1.52.0:
341
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
342
+ engines: {node: '>= 0.6'}
343
+
344
+ mime-types@2.1.35:
345
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
346
+ engines: {node: '>= 0.6'}
347
+
348
+ mime@1.6.0:
349
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
350
+ engines: {node: '>=4'}
351
+ hasBin: true
352
+
353
+ minimatch@3.1.2:
354
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
355
+
356
+ ms@2.0.0:
357
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
358
+
359
+ ms@2.1.3:
360
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
361
+
362
+ negotiator@0.6.3:
363
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
364
+ engines: {node: '>= 0.6'}
365
+
366
+ nodemon@3.1.7:
367
+ resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==}
368
+ engines: {node: '>=10'}
369
+ hasBin: true
370
+
371
+ normalize-path@3.0.0:
372
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
373
+ engines: {node: '>=0.10.0'}
374
+
375
+ object-assign@4.1.1:
376
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
377
+ engines: {node: '>=0.10.0'}
378
+
379
+ object-inspect@1.13.2:
380
+ resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
381
+ engines: {node: '>= 0.4'}
382
+
383
+ on-finished@2.4.1:
384
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
385
+ engines: {node: '>= 0.8'}
386
+
387
+ parseurl@1.3.3:
388
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
389
+ engines: {node: '>= 0.8'}
390
+
391
+ path-to-regexp@0.1.10:
392
+ resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==}
393
+
394
+ picomatch@2.3.1:
395
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
396
+ engines: {node: '>=8.6'}
397
+
398
+ prisma@5.20.0:
399
+ resolution: {integrity: sha512-6obb3ucKgAnsGS9x9gLOe8qa51XxvJ3vLQtmyf52CTey1Qcez3A6W6ROH5HIz5Q5bW+0VpmZb8WBohieMFGpig==}
400
+ engines: {node: '>=16.13'}
401
+ hasBin: true
402
+
403
+ proxy-addr@2.0.7:
404
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
405
+ engines: {node: '>= 0.10'}
406
+
407
+ pstree.remy@1.1.8:
408
+ resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
409
+
410
+ qs@6.13.0:
411
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
412
+ engines: {node: '>=0.6'}
413
+
414
+ range-parser@1.2.1:
415
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
416
+ engines: {node: '>= 0.6'}
417
+
418
+ raw-body@2.5.2:
419
+ resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
420
+ engines: {node: '>= 0.8'}
421
+
422
+ readdirp@3.6.0:
423
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
424
+ engines: {node: '>=8.10.0'}
425
+
426
+ safe-buffer@5.2.1:
427
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
428
+
429
+ safer-buffer@2.1.2:
430
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
431
+
432
+ semver@7.6.3:
433
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
434
+ engines: {node: '>=10'}
435
+ hasBin: true
436
+
437
+ send@0.19.0:
438
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
439
+ engines: {node: '>= 0.8.0'}
440
+
441
+ serve-static@1.16.2:
442
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
443
+ engines: {node: '>= 0.8.0'}
444
+
445
+ serverless-http@3.2.0:
446
+ resolution: {integrity: sha512-QvSyZXljRLIGqwcJ4xsKJXwkZnAVkse1OajepxfjkBXV0BMvRS5R546Z4kCBI8IygDzkQY0foNPC/rnipaE9pQ==}
447
+ engines: {node: '>=12.0'}
448
+
449
+ set-function-length@1.2.2:
450
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
451
+ engines: {node: '>= 0.4'}
452
+
453
+ setprototypeof@1.2.0:
454
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
455
+
456
+ side-channel@1.0.6:
457
+ resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
458
+ engines: {node: '>= 0.4'}
459
+
460
+ simple-update-notifier@2.0.0:
461
+ resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
462
+ engines: {node: '>=10'}
463
+
464
+ statuses@2.0.1:
465
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
466
+ engines: {node: '>= 0.8'}
467
+
468
+ supports-color@5.5.0:
469
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
470
+ engines: {node: '>=4'}
471
+
472
+ to-regex-range@5.0.1:
473
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
474
+ engines: {node: '>=8.0'}
475
+
476
+ toidentifier@1.0.1:
477
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
478
+ engines: {node: '>=0.6'}
479
+
480
+ touch@3.1.1:
481
+ resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==}
482
+ hasBin: true
483
+
484
+ type-is@1.6.18:
485
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
486
+ engines: {node: '>= 0.6'}
487
+
488
+ undefsafe@2.0.5:
489
+ resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
490
+
491
+ unpipe@1.0.0:
492
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
493
+ engines: {node: '>= 0.8'}
494
+
495
+ urlpattern-polyfill@8.0.2:
496
+ resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==}
497
+
498
+ utils-merge@1.0.1:
499
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
500
+ engines: {node: '>= 0.4.0'}
501
+
502
+ vary@1.1.2:
503
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
504
+ engines: {node: '>= 0.8'}
505
+
506
+ snapshots:
507
+
508
+ '@netlify/functions@2.8.1':
509
+ dependencies:
510
+ '@netlify/serverless-functions-api': 1.19.1
511
+
512
+ '@netlify/node-cookies@0.1.0': {}
513
+
514
+ '@netlify/serverless-functions-api@1.19.1':
515
+ dependencies:
516
+ '@netlify/node-cookies': 0.1.0
517
+ urlpattern-polyfill: 8.0.2
518
+
519
+ '@prisma/client@5.20.0(prisma@5.20.0)':
520
+ optionalDependencies:
521
+ prisma: 5.20.0
522
+
523
+ '@prisma/debug@5.20.0': {}
524
+
525
+ '@prisma/engines-version@5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284': {}
526
+
527
+ '@prisma/engines@5.20.0':
528
+ dependencies:
529
+ '@prisma/debug': 5.20.0
530
+ '@prisma/engines-version': 5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284
531
+ '@prisma/fetch-engine': 5.20.0
532
+ '@prisma/get-platform': 5.20.0
533
+
534
+ '@prisma/fetch-engine@5.20.0':
535
+ dependencies:
536
+ '@prisma/debug': 5.20.0
537
+ '@prisma/engines-version': 5.20.0-12.06fc58a368dc7be9fbbbe894adf8d445d208c284
538
+ '@prisma/get-platform': 5.20.0
539
+
540
+ '@prisma/get-platform@5.20.0':
541
+ dependencies:
542
+ '@prisma/debug': 5.20.0
543
+
544
+ accepts@1.3.8:
545
+ dependencies:
546
+ mime-types: 2.1.35
547
+ negotiator: 0.6.3
548
+
549
+ anymatch@3.1.3:
550
+ dependencies:
551
+ normalize-path: 3.0.0
552
+ picomatch: 2.3.1
553
+
554
+ array-flatten@1.1.1: {}
555
+
556
+ balanced-match@1.0.2: {}
557
+
558
+ binary-extensions@2.3.0: {}
559
+
560
+ body-parser@1.20.3:
561
+ dependencies:
562
+ bytes: 3.1.2
563
+ content-type: 1.0.5
564
+ debug: 2.6.9
565
+ depd: 2.0.0
566
+ destroy: 1.2.0
567
+ http-errors: 2.0.0
568
+ iconv-lite: 0.4.24
569
+ on-finished: 2.4.1
570
+ qs: 6.13.0
571
+ raw-body: 2.5.2
572
+ type-is: 1.6.18
573
+ unpipe: 1.0.0
574
+ transitivePeerDependencies:
575
+ - supports-color
576
+
577
+ brace-expansion@1.1.11:
578
+ dependencies:
579
+ balanced-match: 1.0.2
580
+ concat-map: 0.0.1
581
+
582
+ braces@3.0.3:
583
+ dependencies:
584
+ fill-range: 7.1.1
585
+
586
+ buffer-equal-constant-time@1.0.1: {}
587
+
588
+ bytes@3.1.2: {}
589
+
590
+ call-bind@1.0.7:
591
+ dependencies:
592
+ es-define-property: 1.0.0
593
+ es-errors: 1.3.0
594
+ function-bind: 1.1.2
595
+ get-intrinsic: 1.2.4
596
+ set-function-length: 1.2.2
597
+
598
+ chokidar@3.6.0:
599
+ dependencies:
600
+ anymatch: 3.1.3
601
+ braces: 3.0.3
602
+ glob-parent: 5.1.2
603
+ is-binary-path: 2.1.0
604
+ is-glob: 4.0.3
605
+ normalize-path: 3.0.0
606
+ readdirp: 3.6.0
607
+ optionalDependencies:
608
+ fsevents: 2.3.3
609
+
610
+ concat-map@0.0.1: {}
611
+
612
+ content-disposition@0.5.4:
613
+ dependencies:
614
+ safe-buffer: 5.2.1
615
+
616
+ content-type@1.0.5: {}
617
+
618
+ cookie-signature@1.0.6: {}
619
+
620
+ cookie@0.6.0: {}
621
+
622
+ cors@2.8.5:
623
+ dependencies:
624
+ object-assign: 4.1.1
625
+ vary: 1.1.2
626
+
627
+ debug@2.6.9:
628
+ dependencies:
629
+ ms: 2.0.0
630
+
631
+ debug@4.3.7(supports-color@5.5.0):
632
+ dependencies:
633
+ ms: 2.1.3
634
+ optionalDependencies:
635
+ supports-color: 5.5.0
636
+
637
+ define-data-property@1.1.4:
638
+ dependencies:
639
+ es-define-property: 1.0.0
640
+ es-errors: 1.3.0
641
+ gopd: 1.0.1
642
+
643
+ depd@2.0.0: {}
644
+
645
+ destroy@1.2.0: {}
646
+
647
+ dotenv@16.4.5: {}
648
+
649
+ ecdsa-sig-formatter@1.0.11:
650
+ dependencies:
651
+ safe-buffer: 5.2.1
652
+
653
+ ee-first@1.1.1: {}
654
+
655
+ encodeurl@1.0.2: {}
656
+
657
+ encodeurl@2.0.0: {}
658
+
659
+ es-define-property@1.0.0:
660
+ dependencies:
661
+ get-intrinsic: 1.2.4
662
+
663
+ es-errors@1.3.0: {}
664
+
665
+ escape-html@1.0.3: {}
666
+
667
+ etag@1.8.1: {}
668
+
669
+ express@4.21.0:
670
+ dependencies:
671
+ accepts: 1.3.8
672
+ array-flatten: 1.1.1
673
+ body-parser: 1.20.3
674
+ content-disposition: 0.5.4
675
+ content-type: 1.0.5
676
+ cookie: 0.6.0
677
+ cookie-signature: 1.0.6
678
+ debug: 2.6.9
679
+ depd: 2.0.0
680
+ encodeurl: 2.0.0
681
+ escape-html: 1.0.3
682
+ etag: 1.8.1
683
+ finalhandler: 1.3.1
684
+ fresh: 0.5.2
685
+ http-errors: 2.0.0
686
+ merge-descriptors: 1.0.3
687
+ methods: 1.1.2
688
+ on-finished: 2.4.1
689
+ parseurl: 1.3.3
690
+ path-to-regexp: 0.1.10
691
+ proxy-addr: 2.0.7
692
+ qs: 6.13.0
693
+ range-parser: 1.2.1
694
+ safe-buffer: 5.2.1
695
+ send: 0.19.0
696
+ serve-static: 1.16.2
697
+ setprototypeof: 1.2.0
698
+ statuses: 2.0.1
699
+ type-is: 1.6.18
700
+ utils-merge: 1.0.1
701
+ vary: 1.1.2
702
+ transitivePeerDependencies:
703
+ - supports-color
704
+
705
+ fill-range@7.1.1:
706
+ dependencies:
707
+ to-regex-range: 5.0.1
708
+
709
+ finalhandler@1.3.1:
710
+ dependencies:
711
+ debug: 2.6.9
712
+ encodeurl: 2.0.0
713
+ escape-html: 1.0.3
714
+ on-finished: 2.4.1
715
+ parseurl: 1.3.3
716
+ statuses: 2.0.1
717
+ unpipe: 1.0.0
718
+ transitivePeerDependencies:
719
+ - supports-color
720
+
721
+ forwarded@0.2.0: {}
722
+
723
+ fresh@0.5.2: {}
724
+
725
+ fsevents@2.3.3:
726
+ optional: true
727
+
728
+ function-bind@1.1.2: {}
729
+
730
+ get-intrinsic@1.2.4:
731
+ dependencies:
732
+ es-errors: 1.3.0
733
+ function-bind: 1.1.2
734
+ has-proto: 1.0.3
735
+ has-symbols: 1.0.3
736
+ hasown: 2.0.2
737
+
738
+ glob-parent@5.1.2:
739
+ dependencies:
740
+ is-glob: 4.0.3
741
+
742
+ gopd@1.0.1:
743
+ dependencies:
744
+ get-intrinsic: 1.2.4
745
+
746
+ has-flag@3.0.0: {}
747
+
748
+ has-property-descriptors@1.0.2:
749
+ dependencies:
750
+ es-define-property: 1.0.0
751
+
752
+ has-proto@1.0.3: {}
753
+
754
+ has-symbols@1.0.3: {}
755
+
756
+ hasown@2.0.2:
757
+ dependencies:
758
+ function-bind: 1.1.2
759
+
760
+ http-errors@2.0.0:
761
+ dependencies:
762
+ depd: 2.0.0
763
+ inherits: 2.0.4
764
+ setprototypeof: 1.2.0
765
+ statuses: 2.0.1
766
+ toidentifier: 1.0.1
767
+
768
+ iconv-lite@0.4.24:
769
+ dependencies:
770
+ safer-buffer: 2.1.2
771
+
772
+ ignore-by-default@1.0.1: {}
773
+
774
+ inherits@2.0.4: {}
775
+
776
+ ipaddr.js@1.9.1: {}
777
+
778
+ is-binary-path@2.1.0:
779
+ dependencies:
780
+ binary-extensions: 2.3.0
781
+
782
+ is-extglob@2.1.1: {}
783
+
784
+ is-glob@4.0.3:
785
+ dependencies:
786
+ is-extglob: 2.1.1
787
+
788
+ is-number@7.0.0: {}
789
+
790
+ jsonwebtoken@9.0.2:
791
+ dependencies:
792
+ jws: 3.2.2
793
+ lodash.includes: 4.3.0
794
+ lodash.isboolean: 3.0.3
795
+ lodash.isinteger: 4.0.4
796
+ lodash.isnumber: 3.0.3
797
+ lodash.isplainobject: 4.0.6
798
+ lodash.isstring: 4.0.1
799
+ lodash.once: 4.1.1
800
+ ms: 2.1.3
801
+ semver: 7.6.3
802
+
803
+ jwa@1.4.1:
804
+ dependencies:
805
+ buffer-equal-constant-time: 1.0.1
806
+ ecdsa-sig-formatter: 1.0.11
807
+ safe-buffer: 5.2.1
808
+
809
+ jws@3.2.2:
810
+ dependencies:
811
+ jwa: 1.4.1
812
+ safe-buffer: 5.2.1
813
+
814
+ lodash.includes@4.3.0: {}
815
+
816
+ lodash.isboolean@3.0.3: {}
817
+
818
+ lodash.isinteger@4.0.4: {}
819
+
820
+ lodash.isnumber@3.0.3: {}
821
+
822
+ lodash.isplainobject@4.0.6: {}
823
+
824
+ lodash.isstring@4.0.1: {}
825
+
826
+ lodash.once@4.1.1: {}
827
+
828
+ media-typer@0.3.0: {}
829
+
830
+ merge-descriptors@1.0.3: {}
831
+
832
+ methods@1.1.2: {}
833
+
834
+ mime-db@1.52.0: {}
835
+
836
+ mime-types@2.1.35:
837
+ dependencies:
838
+ mime-db: 1.52.0
839
+
840
+ mime@1.6.0: {}
841
+
842
+ minimatch@3.1.2:
843
+ dependencies:
844
+ brace-expansion: 1.1.11
845
+
846
+ ms@2.0.0: {}
847
+
848
+ ms@2.1.3: {}
849
+
850
+ negotiator@0.6.3: {}
851
+
852
+ nodemon@3.1.7:
853
+ dependencies:
854
+ chokidar: 3.6.0
855
+ debug: 4.3.7(supports-color@5.5.0)
856
+ ignore-by-default: 1.0.1
857
+ minimatch: 3.1.2
858
+ pstree.remy: 1.1.8
859
+ semver: 7.6.3
860
+ simple-update-notifier: 2.0.0
861
+ supports-color: 5.5.0
862
+ touch: 3.1.1
863
+ undefsafe: 2.0.5
864
+
865
+ normalize-path@3.0.0: {}
866
+
867
+ object-assign@4.1.1: {}
868
+
869
+ object-inspect@1.13.2: {}
870
+
871
+ on-finished@2.4.1:
872
+ dependencies:
873
+ ee-first: 1.1.1
874
+
875
+ parseurl@1.3.3: {}
876
+
877
+ path-to-regexp@0.1.10: {}
878
+
879
+ picomatch@2.3.1: {}
880
+
881
+ prisma@5.20.0:
882
+ dependencies:
883
+ '@prisma/engines': 5.20.0
884
+ optionalDependencies:
885
+ fsevents: 2.3.3
886
+
887
+ proxy-addr@2.0.7:
888
+ dependencies:
889
+ forwarded: 0.2.0
890
+ ipaddr.js: 1.9.1
891
+
892
+ pstree.remy@1.1.8: {}
893
+
894
+ qs@6.13.0:
895
+ dependencies:
896
+ side-channel: 1.0.6
897
+
898
+ range-parser@1.2.1: {}
899
+
900
+ raw-body@2.5.2:
901
+ dependencies:
902
+ bytes: 3.1.2
903
+ http-errors: 2.0.0
904
+ iconv-lite: 0.4.24
905
+ unpipe: 1.0.0
906
+
907
+ readdirp@3.6.0:
908
+ dependencies:
909
+ picomatch: 2.3.1
910
+
911
+ safe-buffer@5.2.1: {}
912
+
913
+ safer-buffer@2.1.2: {}
914
+
915
+ semver@7.6.3: {}
916
+
917
+ send@0.19.0:
918
+ dependencies:
919
+ debug: 2.6.9
920
+ depd: 2.0.0
921
+ destroy: 1.2.0
922
+ encodeurl: 1.0.2
923
+ escape-html: 1.0.3
924
+ etag: 1.8.1
925
+ fresh: 0.5.2
926
+ http-errors: 2.0.0
927
+ mime: 1.6.0
928
+ ms: 2.1.3
929
+ on-finished: 2.4.1
930
+ range-parser: 1.2.1
931
+ statuses: 2.0.1
932
+ transitivePeerDependencies:
933
+ - supports-color
934
+
935
+ serve-static@1.16.2:
936
+ dependencies:
937
+ encodeurl: 2.0.0
938
+ escape-html: 1.0.3
939
+ parseurl: 1.3.3
940
+ send: 0.19.0
941
+ transitivePeerDependencies:
942
+ - supports-color
943
+
944
+ serverless-http@3.2.0: {}
945
+
946
+ set-function-length@1.2.2:
947
+ dependencies:
948
+ define-data-property: 1.1.4
949
+ es-errors: 1.3.0
950
+ function-bind: 1.1.2
951
+ get-intrinsic: 1.2.4
952
+ gopd: 1.0.1
953
+ has-property-descriptors: 1.0.2
954
+
955
+ setprototypeof@1.2.0: {}
956
+
957
+ side-channel@1.0.6:
958
+ dependencies:
959
+ call-bind: 1.0.7
960
+ es-errors: 1.3.0
961
+ get-intrinsic: 1.2.4
962
+ object-inspect: 1.13.2
963
+
964
+ simple-update-notifier@2.0.0:
965
+ dependencies:
966
+ semver: 7.6.3
967
+
968
+ statuses@2.0.1: {}
969
+
970
+ supports-color@5.5.0:
971
+ dependencies:
972
+ has-flag: 3.0.0
973
+
974
+ to-regex-range@5.0.1:
975
+ dependencies:
976
+ is-number: 7.0.0
977
+
978
+ toidentifier@1.0.1: {}
979
+
980
+ touch@3.1.1: {}
981
+
982
+ type-is@1.6.18:
983
+ dependencies:
984
+ media-typer: 0.3.0
985
+ mime-types: 2.1.35
986
+
987
+ undefsafe@2.0.5: {}
988
+
989
+ unpipe@1.0.0: {}
990
+
991
+ urlpattern-polyfill@8.0.2: {}
992
+
993
+ utils-merge@1.0.1: {}
994
+
995
+ vary@1.1.2: {}
prisma/schema.prisma ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ generator client {
2
+ provider = "prisma-client-js"
3
+ output = "./generated/client"
4
+ }
5
+
6
+ datasource db {
7
+ provider = "postgresql"
8
+ url = env("DATABASE_URL")
9
+ }
10
+
11
+ model Account {
12
+ id String @id
13
+ user_id String
14
+ type String
15
+ provider String
16
+ providerAccountId String
17
+ refresh_token String?
18
+ access_token String?
19
+ expires_at Int?
20
+ token_type String?
21
+ scope String?
22
+ id_token String?
23
+ session_state String?
24
+ User User @relation(fields: [user_id], references: [id], onDelete: Cascade)
25
+
26
+ @@unique([provider, providerAccountId])
27
+ }
28
+
29
+ model Session {
30
+ id String @id
31
+ sessionToken String @unique
32
+ expires DateTime
33
+ user_id String
34
+ User User @relation(fields: [user_id], references: [id], onDelete: Cascade)
35
+ }
36
+
37
+ model User {
38
+ id String @id
39
+ name String?
40
+ email String? @unique
41
+ emailVerified DateTime?
42
+ image String?
43
+ full_name String
44
+ password String?
45
+ registration_id String? @unique
46
+ Account Account[]
47
+ Session Session[]
48
+ active_ticket active_ticket[]
49
+ chat_message chat_message[]
50
+ closed_ticket closed_ticket[]
51
+ }
52
+
53
+ model VerificationToken {
54
+ identifier String
55
+ token String @unique
56
+ expires DateTime
57
+
58
+ @@unique([identifier, token])
59
+ }
60
+
61
+ model active_ticket {
62
+ id Int @id @default(autoincrement())
63
+ subject String
64
+ category String
65
+ user_id String
66
+ opened_time DateTime @default(now())
67
+ hostel_block String?
68
+ room_no String?
69
+ contact_no String?
70
+ chat_id Int
71
+ body String
72
+ chat_history chat_history @relation(fields: [chat_id], references: [id])
73
+ User User @relation(fields: [user_id], references: [id])
74
+ }
75
+
76
+ model admin {
77
+ id Int @id @default(autoincrement())
78
+ email String @unique
79
+ full_name String
80
+ password String
81
+ employee_id String @unique
82
+ }
83
+
84
+ model chat_history {
85
+ id Int @id @default(autoincrement())
86
+ active_ticket active_ticket[]
87
+ chat_message chat_message[]
88
+ closed_ticket closed_ticket[]
89
+ }
90
+
91
+ model chat_message {
92
+ id Int @id @default(autoincrement())
93
+ chat_history_id Int
94
+ body_text String
95
+ sent_time DateTime @default(now())
96
+ user_id String?
97
+ complaint_manager_id Int?
98
+ chat_history chat_history @relation(fields: [chat_history_id], references: [id])
99
+ complaint_manager complaint_manager? @relation(fields: [complaint_manager_id], references: [id])
100
+ User User? @relation(fields: [user_id], references: [id])
101
+ }
102
+
103
+ model closed_ticket {
104
+ id Int @id @default(autoincrement())
105
+ subject String
106
+ category String
107
+ user_id String
108
+ opened_time DateTime
109
+ hostel_block String?
110
+ room_no String?
111
+ contact_no String?
112
+ closed_time DateTime
113
+ chat_id Int
114
+ body String
115
+ chat_history chat_history @relation(fields: [chat_id], references: [id])
116
+ User User @relation(fields: [user_id], references: [id])
117
+ }
118
+
119
+ model complaint_manager {
120
+ id Int @id @default(autoincrement())
121
+ email String @unique
122
+ full_name String
123
+ password String
124
+ employee_id String @unique
125
+ chat_message chat_message[]
126
+ }
server.js ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import express from "express";
2
+ import cors from "cors";
3
+ import dotenv from "dotenv";
4
+ import prisma from "./PrismaClient.js";
5
+
6
+ // Load environment variables
7
+ dotenv.config();
8
+
9
+ // App config
10
+ const app = express();
11
+ const port = process.env.PORT || 3010;
12
+
13
+ // Middleware
14
+ app.use(express.json());
15
+ app.use(cors());
16
+
17
+ app.get("/", (req, res) => {
18
+ res.send("Hello World!");
19
+ });
20
+
21
+ // Routes
22
+ app.get("/api/users", async (req, res) => {
23
+ try {
24
+ const users = await prisma.user.findMany();
25
+ res.json(users);
26
+ } catch (error) {
27
+ console.error("Error fetching users:", error);
28
+ res.status(500).json({ error: "An error occurred while fetching users." });
29
+ }
30
+ });
31
+
32
+ // Start server
33
+ app.listen(port, () => {
34
+ console.log(`Server started on port ${port}`);
35
+ });
36
+
37
+ export default app;