Mingyu

Express server

1 +var express = require('express')
2 + , http = require('http')
3 + , path = require('path');
4 +
5 +var bodyParser = require('body-parser')
6 + , static = require('serve-static');
7 +
8 +var expressErrorHandler = require('express-error-handler');
9 +
10 +var app = express();
11 +//라우터 객체 참조
12 +var router = express.Router();
13 +
14 +//라우팅 함수 등록
15 +router.route('/process/login/:name').post(function (req, res) {
16 + console.log('/process/login/:name 처리함');
17 +
18 + var paramName = req.params.name;
19 +
20 + var paramId = req.body.id || req.query.id;
21 + var paramPassword = req.body.password || req.query.password;
22 + //GET, POST 모두 고려해서 둘 다 검사
23 +
24 + res.writeHead('200', { 'Content-Type': 'text/html;charset=utf8' });
25 + res.write('<h1>Result form Express Server</h1>');
26 + res.write('<div><p>Param name : ' + paramName + '</p></div>');
27 + res.write('<div><p>Param id : ' + paramId + '</p></div>');
28 + res.write('<div><p>Param password : ' + paramPassword + '</p></div>');
29 + res.write("<br><br><a href ='/login3.html'>로그인 페이지로 돌아가기</a>");
30 + res.end();
31 +
32 +});
33 +
34 +app.set('port', process.env.PORT || 3000);
35 +
36 +app.use(bodyParser.urlencoded({ extended: false }));
37 +
38 +app.use(static(path.join(__dirname, 'public')));
39 +
40 +app.use('/', router);
41 +
42 +//모든 router 처리가 끝난 후 404 오류 페이지 처리
43 +var errorHandler = expressErrorHandler({
44 + static: {
45 + '404': 'C:/Users/mingyu/Desktop/git/rest_stop_list/app/public/404.html'
46 + }
47 +});
48 +
49 +app.use(expressErrorHandler.httpError(404));
50 +app.use(errorHandler);
51 +
52 +http.createServer(app).listen(app.get('port'), function () {
53 + console.log('익스프레스 서버를 시작했습니다.');
54 +});
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 + <head>
4 + <meta charset="UTF-8">
5 + <tilte>오류 페이지</tilte>
6 + </head>
7 + <body>
8 + <h3>ERROR - 페이지를 찾을 수 없습니다.</h3>
9 + <hr/>
10 + <p>/public/404.html 파일의 오류 페이지</p>
11 + </body>
12 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html>
3 + <head>
4 + <meta charset="UTF-8">
5 + <tilte>로그인 테스트</tilte>
6 + </head>
7 + <body>
8 + <h1>로그인</h1>
9 + <br>
10 + <form method="post" action="/process/login/rest_list">
11 + <table>
12 + <tr>
13 + <td><label>아이디</label></td>
14 + <td><input type="text" name="id"></td>
15 + </tr>
16 + <tr>
17 + <td><label>비밀번호</label></td>
18 + <td><input type="text" name="password"></td>
19 + </tr>
20 + </table>
21 + <input type="submit" value="전송" name="">
22 + </form>
23 + </body>
24 +</html>
...\ No newline at end of file ...\ No newline at end of file
1 +{
2 + "name": "node",
3 + "version": "1.0.0",
4 + "lockfileVersion": 2,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "node",
9 + "version": "1.0.0",
10 + "license": "ISC",
11 + "dependencies": {
12 + "body-parser": "^1.20.0",
13 + "express": "^4.18.1",
14 + "express-error-handler": "^1.1.0",
15 + "http": "^0.0.1-security",
16 + "path": "^0.12.7",
17 + "serve-static": "^1.15.0"
18 + }
19 + },
20 + "node_modules/accepts": {
21 + "version": "1.3.8",
22 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
23 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
24 + "dependencies": {
25 + "mime-types": "~2.1.34",
26 + "negotiator": "0.6.3"
27 + },
28 + "engines": {
29 + "node": ">= 0.6"
30 + }
31 + },
32 + "node_modules/array-flatten": {
33 + "version": "1.1.1",
34 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
35 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
36 + },
37 + "node_modules/body-parser": {
38 + "version": "1.20.0",
39 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
40 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
41 + "dependencies": {
42 + "bytes": "3.1.2",
43 + "content-type": "~1.0.4",
44 + "debug": "2.6.9",
45 + "depd": "2.0.0",
46 + "destroy": "1.2.0",
47 + "http-errors": "2.0.0",
48 + "iconv-lite": "0.4.24",
49 + "on-finished": "2.4.1",
50 + "qs": "6.10.3",
51 + "raw-body": "2.5.1",
52 + "type-is": "~1.6.18",
53 + "unpipe": "1.0.0"
54 + },
55 + "engines": {
56 + "node": ">= 0.8",
57 + "npm": "1.2.8000 || >= 1.4.16"
58 + }
59 + },
60 + "node_modules/bytes": {
61 + "version": "3.1.2",
62 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
63 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
64 + "engines": {
65 + "node": ">= 0.8"
66 + }
67 + },
68 + "node_modules/call-bind": {
69 + "version": "1.0.2",
70 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
71 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
72 + "dependencies": {
73 + "function-bind": "^1.1.1",
74 + "get-intrinsic": "^1.0.2"
75 + },
76 + "funding": {
77 + "url": "https://github.com/sponsors/ljharb"
78 + }
79 + },
80 + "node_modules/content-disposition": {
81 + "version": "0.5.4",
82 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
83 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
84 + "dependencies": {
85 + "safe-buffer": "5.2.1"
86 + },
87 + "engines": {
88 + "node": ">= 0.6"
89 + }
90 + },
91 + "node_modules/content-type": {
92 + "version": "1.0.4",
93 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
94 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
95 + "engines": {
96 + "node": ">= 0.6"
97 + }
98 + },
99 + "node_modules/cookie": {
100 + "version": "0.5.0",
101 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
102 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
103 + "engines": {
104 + "node": ">= 0.6"
105 + }
106 + },
107 + "node_modules/cookie-signature": {
108 + "version": "1.0.6",
109 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
110 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
111 + },
112 + "node_modules/debug": {
113 + "version": "2.6.9",
114 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
115 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
116 + "dependencies": {
117 + "ms": "2.0.0"
118 + }
119 + },
120 + "node_modules/depd": {
121 + "version": "2.0.0",
122 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
123 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
124 + "engines": {
125 + "node": ">= 0.8"
126 + }
127 + },
128 + "node_modules/destroy": {
129 + "version": "1.2.0",
130 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
131 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
132 + "engines": {
133 + "node": ">= 0.8",
134 + "npm": "1.2.8000 || >= 1.4.16"
135 + }
136 + },
137 + "node_modules/ee-first": {
138 + "version": "1.1.1",
139 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
140 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
141 + },
142 + "node_modules/encodeurl": {
143 + "version": "1.0.2",
144 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
145 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
146 + "engines": {
147 + "node": ">= 0.8"
148 + }
149 + },
150 + "node_modules/escape-html": {
151 + "version": "1.0.3",
152 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
153 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
154 + },
155 + "node_modules/etag": {
156 + "version": "1.8.1",
157 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
158 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
159 + "engines": {
160 + "node": ">= 0.6"
161 + }
162 + },
163 + "node_modules/express": {
164 + "version": "4.18.1",
165 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
166 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
167 + "dependencies": {
168 + "accepts": "~1.3.8",
169 + "array-flatten": "1.1.1",
170 + "body-parser": "1.20.0",
171 + "content-disposition": "0.5.4",
172 + "content-type": "~1.0.4",
173 + "cookie": "0.5.0",
174 + "cookie-signature": "1.0.6",
175 + "debug": "2.6.9",
176 + "depd": "2.0.0",
177 + "encodeurl": "~1.0.2",
178 + "escape-html": "~1.0.3",
179 + "etag": "~1.8.1",
180 + "finalhandler": "1.2.0",
181 + "fresh": "0.5.2",
182 + "http-errors": "2.0.0",
183 + "merge-descriptors": "1.0.1",
184 + "methods": "~1.1.2",
185 + "on-finished": "2.4.1",
186 + "parseurl": "~1.3.3",
187 + "path-to-regexp": "0.1.7",
188 + "proxy-addr": "~2.0.7",
189 + "qs": "6.10.3",
190 + "range-parser": "~1.2.1",
191 + "safe-buffer": "5.2.1",
192 + "send": "0.18.0",
193 + "serve-static": "1.15.0",
194 + "setprototypeof": "1.2.0",
195 + "statuses": "2.0.1",
196 + "type-is": "~1.6.18",
197 + "utils-merge": "1.0.1",
198 + "vary": "~1.1.2"
199 + },
200 + "engines": {
201 + "node": ">= 0.10.0"
202 + }
203 + },
204 + "node_modules/express-error-handler": {
205 + "version": "1.1.0",
206 + "resolved": "https://registry.npmjs.org/express-error-handler/-/express-error-handler-1.1.0.tgz",
207 + "integrity": "sha1-/y7bH+3PyrHmAcYKqzVUmC8fZJc=",
208 + "dependencies": {
209 + "mout": "0.12.0"
210 + }
211 + },
212 + "node_modules/finalhandler": {
213 + "version": "1.2.0",
214 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
215 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
216 + "dependencies": {
217 + "debug": "2.6.9",
218 + "encodeurl": "~1.0.2",
219 + "escape-html": "~1.0.3",
220 + "on-finished": "2.4.1",
221 + "parseurl": "~1.3.3",
222 + "statuses": "2.0.1",
223 + "unpipe": "~1.0.0"
224 + },
225 + "engines": {
226 + "node": ">= 0.8"
227 + }
228 + },
229 + "node_modules/forwarded": {
230 + "version": "0.2.0",
231 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
232 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
233 + "engines": {
234 + "node": ">= 0.6"
235 + }
236 + },
237 + "node_modules/fresh": {
238 + "version": "0.5.2",
239 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
240 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
241 + "engines": {
242 + "node": ">= 0.6"
243 + }
244 + },
245 + "node_modules/function-bind": {
246 + "version": "1.1.1",
247 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
248 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
249 + },
250 + "node_modules/get-intrinsic": {
251 + "version": "1.1.1",
252 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
253 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
254 + "dependencies": {
255 + "function-bind": "^1.1.1",
256 + "has": "^1.0.3",
257 + "has-symbols": "^1.0.1"
258 + },
259 + "funding": {
260 + "url": "https://github.com/sponsors/ljharb"
261 + }
262 + },
263 + "node_modules/has": {
264 + "version": "1.0.3",
265 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
266 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
267 + "dependencies": {
268 + "function-bind": "^1.1.1"
269 + },
270 + "engines": {
271 + "node": ">= 0.4.0"
272 + }
273 + },
274 + "node_modules/has-symbols": {
275 + "version": "1.0.3",
276 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
277 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
278 + "engines": {
279 + "node": ">= 0.4"
280 + },
281 + "funding": {
282 + "url": "https://github.com/sponsors/ljharb"
283 + }
284 + },
285 + "node_modules/http": {
286 + "version": "0.0.1-security",
287 + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
288 + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
289 + },
290 + "node_modules/http-errors": {
291 + "version": "2.0.0",
292 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
293 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
294 + "dependencies": {
295 + "depd": "2.0.0",
296 + "inherits": "2.0.4",
297 + "setprototypeof": "1.2.0",
298 + "statuses": "2.0.1",
299 + "toidentifier": "1.0.1"
300 + },
301 + "engines": {
302 + "node": ">= 0.8"
303 + }
304 + },
305 + "node_modules/iconv-lite": {
306 + "version": "0.4.24",
307 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
308 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
309 + "dependencies": {
310 + "safer-buffer": ">= 2.1.2 < 3"
311 + },
312 + "engines": {
313 + "node": ">=0.10.0"
314 + }
315 + },
316 + "node_modules/inherits": {
317 + "version": "2.0.4",
318 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
319 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
320 + },
321 + "node_modules/ipaddr.js": {
322 + "version": "1.9.1",
323 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
324 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
325 + "engines": {
326 + "node": ">= 0.10"
327 + }
328 + },
329 + "node_modules/media-typer": {
330 + "version": "0.3.0",
331 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
332 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
333 + "engines": {
334 + "node": ">= 0.6"
335 + }
336 + },
337 + "node_modules/merge-descriptors": {
338 + "version": "1.0.1",
339 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
340 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
341 + },
342 + "node_modules/methods": {
343 + "version": "1.1.2",
344 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
345 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
346 + "engines": {
347 + "node": ">= 0.6"
348 + }
349 + },
350 + "node_modules/mime": {
351 + "version": "1.6.0",
352 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
353 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
354 + "bin": {
355 + "mime": "cli.js"
356 + },
357 + "engines": {
358 + "node": ">=4"
359 + }
360 + },
361 + "node_modules/mime-db": {
362 + "version": "1.52.0",
363 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
364 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
365 + "engines": {
366 + "node": ">= 0.6"
367 + }
368 + },
369 + "node_modules/mime-types": {
370 + "version": "2.1.35",
371 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
372 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
373 + "dependencies": {
374 + "mime-db": "1.52.0"
375 + },
376 + "engines": {
377 + "node": ">= 0.6"
378 + }
379 + },
380 + "node_modules/mout": {
381 + "version": "0.12.0",
382 + "resolved": "https://registry.npmjs.org/mout/-/mout-0.12.0.tgz",
383 + "integrity": "sha1-bVskLuMx+dBMaOWPd6kaMGDoyss="
384 + },
385 + "node_modules/ms": {
386 + "version": "2.0.0",
387 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
388 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
389 + },
390 + "node_modules/negotiator": {
391 + "version": "0.6.3",
392 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
393 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
394 + "engines": {
395 + "node": ">= 0.6"
396 + }
397 + },
398 + "node_modules/object-inspect": {
399 + "version": "1.12.0",
400 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
401 + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
402 + "funding": {
403 + "url": "https://github.com/sponsors/ljharb"
404 + }
405 + },
406 + "node_modules/on-finished": {
407 + "version": "2.4.1",
408 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
409 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
410 + "dependencies": {
411 + "ee-first": "1.1.1"
412 + },
413 + "engines": {
414 + "node": ">= 0.8"
415 + }
416 + },
417 + "node_modules/parseurl": {
418 + "version": "1.3.3",
419 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
420 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
421 + "engines": {
422 + "node": ">= 0.8"
423 + }
424 + },
425 + "node_modules/path": {
426 + "version": "0.12.7",
427 + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
428 + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
429 + "dependencies": {
430 + "process": "^0.11.1",
431 + "util": "^0.10.3"
432 + }
433 + },
434 + "node_modules/path-to-regexp": {
435 + "version": "0.1.7",
436 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
437 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
438 + },
439 + "node_modules/process": {
440 + "version": "0.11.10",
441 + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
442 + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
443 + "engines": {
444 + "node": ">= 0.6.0"
445 + }
446 + },
447 + "node_modules/proxy-addr": {
448 + "version": "2.0.7",
449 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
450 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
451 + "dependencies": {
452 + "forwarded": "0.2.0",
453 + "ipaddr.js": "1.9.1"
454 + },
455 + "engines": {
456 + "node": ">= 0.10"
457 + }
458 + },
459 + "node_modules/qs": {
460 + "version": "6.10.3",
461 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
462 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
463 + "dependencies": {
464 + "side-channel": "^1.0.4"
465 + },
466 + "engines": {
467 + "node": ">=0.6"
468 + },
469 + "funding": {
470 + "url": "https://github.com/sponsors/ljharb"
471 + }
472 + },
473 + "node_modules/range-parser": {
474 + "version": "1.2.1",
475 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
476 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
477 + "engines": {
478 + "node": ">= 0.6"
479 + }
480 + },
481 + "node_modules/raw-body": {
482 + "version": "2.5.1",
483 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
484 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
485 + "dependencies": {
486 + "bytes": "3.1.2",
487 + "http-errors": "2.0.0",
488 + "iconv-lite": "0.4.24",
489 + "unpipe": "1.0.0"
490 + },
491 + "engines": {
492 + "node": ">= 0.8"
493 + }
494 + },
495 + "node_modules/safe-buffer": {
496 + "version": "5.2.1",
497 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
498 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
499 + "funding": [
500 + {
501 + "type": "github",
502 + "url": "https://github.com/sponsors/feross"
503 + },
504 + {
505 + "type": "patreon",
506 + "url": "https://www.patreon.com/feross"
507 + },
508 + {
509 + "type": "consulting",
510 + "url": "https://feross.org/support"
511 + }
512 + ]
513 + },
514 + "node_modules/safer-buffer": {
515 + "version": "2.1.2",
516 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
517 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
518 + },
519 + "node_modules/send": {
520 + "version": "0.18.0",
521 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
522 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
523 + "dependencies": {
524 + "debug": "2.6.9",
525 + "depd": "2.0.0",
526 + "destroy": "1.2.0",
527 + "encodeurl": "~1.0.2",
528 + "escape-html": "~1.0.3",
529 + "etag": "~1.8.1",
530 + "fresh": "0.5.2",
531 + "http-errors": "2.0.0",
532 + "mime": "1.6.0",
533 + "ms": "2.1.3",
534 + "on-finished": "2.4.1",
535 + "range-parser": "~1.2.1",
536 + "statuses": "2.0.1"
537 + },
538 + "engines": {
539 + "node": ">= 0.8.0"
540 + }
541 + },
542 + "node_modules/send/node_modules/ms": {
543 + "version": "2.1.3",
544 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
545 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
546 + },
547 + "node_modules/serve-static": {
548 + "version": "1.15.0",
549 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
550 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
551 + "dependencies": {
552 + "encodeurl": "~1.0.2",
553 + "escape-html": "~1.0.3",
554 + "parseurl": "~1.3.3",
555 + "send": "0.18.0"
556 + },
557 + "engines": {
558 + "node": ">= 0.8.0"
559 + }
560 + },
561 + "node_modules/setprototypeof": {
562 + "version": "1.2.0",
563 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
564 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
565 + },
566 + "node_modules/side-channel": {
567 + "version": "1.0.4",
568 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
569 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
570 + "dependencies": {
571 + "call-bind": "^1.0.0",
572 + "get-intrinsic": "^1.0.2",
573 + "object-inspect": "^1.9.0"
574 + },
575 + "funding": {
576 + "url": "https://github.com/sponsors/ljharb"
577 + }
578 + },
579 + "node_modules/statuses": {
580 + "version": "2.0.1",
581 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
582 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
583 + "engines": {
584 + "node": ">= 0.8"
585 + }
586 + },
587 + "node_modules/toidentifier": {
588 + "version": "1.0.1",
589 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
590 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
591 + "engines": {
592 + "node": ">=0.6"
593 + }
594 + },
595 + "node_modules/type-is": {
596 + "version": "1.6.18",
597 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
598 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
599 + "dependencies": {
600 + "media-typer": "0.3.0",
601 + "mime-types": "~2.1.24"
602 + },
603 + "engines": {
604 + "node": ">= 0.6"
605 + }
606 + },
607 + "node_modules/unpipe": {
608 + "version": "1.0.0",
609 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
610 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
611 + "engines": {
612 + "node": ">= 0.8"
613 + }
614 + },
615 + "node_modules/util": {
616 + "version": "0.10.4",
617 + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
618 + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
619 + "dependencies": {
620 + "inherits": "2.0.3"
621 + }
622 + },
623 + "node_modules/util/node_modules/inherits": {
624 + "version": "2.0.3",
625 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
626 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
627 + },
628 + "node_modules/utils-merge": {
629 + "version": "1.0.1",
630 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
631 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
632 + "engines": {
633 + "node": ">= 0.4.0"
634 + }
635 + },
636 + "node_modules/vary": {
637 + "version": "1.1.2",
638 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
639 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
640 + "engines": {
641 + "node": ">= 0.8"
642 + }
643 + }
644 + },
645 + "dependencies": {
646 + "accepts": {
647 + "version": "1.3.8",
648 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
649 + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
650 + "requires": {
651 + "mime-types": "~2.1.34",
652 + "negotiator": "0.6.3"
653 + }
654 + },
655 + "array-flatten": {
656 + "version": "1.1.1",
657 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
658 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
659 + },
660 + "body-parser": {
661 + "version": "1.20.0",
662 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
663 + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
664 + "requires": {
665 + "bytes": "3.1.2",
666 + "content-type": "~1.0.4",
667 + "debug": "2.6.9",
668 + "depd": "2.0.0",
669 + "destroy": "1.2.0",
670 + "http-errors": "2.0.0",
671 + "iconv-lite": "0.4.24",
672 + "on-finished": "2.4.1",
673 + "qs": "6.10.3",
674 + "raw-body": "2.5.1",
675 + "type-is": "~1.6.18",
676 + "unpipe": "1.0.0"
677 + }
678 + },
679 + "bytes": {
680 + "version": "3.1.2",
681 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
682 + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
683 + },
684 + "call-bind": {
685 + "version": "1.0.2",
686 + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
687 + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
688 + "requires": {
689 + "function-bind": "^1.1.1",
690 + "get-intrinsic": "^1.0.2"
691 + }
692 + },
693 + "content-disposition": {
694 + "version": "0.5.4",
695 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
696 + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
697 + "requires": {
698 + "safe-buffer": "5.2.1"
699 + }
700 + },
701 + "content-type": {
702 + "version": "1.0.4",
703 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
704 + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
705 + },
706 + "cookie": {
707 + "version": "0.5.0",
708 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
709 + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
710 + },
711 + "cookie-signature": {
712 + "version": "1.0.6",
713 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
714 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
715 + },
716 + "debug": {
717 + "version": "2.6.9",
718 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
719 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
720 + "requires": {
721 + "ms": "2.0.0"
722 + }
723 + },
724 + "depd": {
725 + "version": "2.0.0",
726 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
727 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
728 + },
729 + "destroy": {
730 + "version": "1.2.0",
731 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
732 + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
733 + },
734 + "ee-first": {
735 + "version": "1.1.1",
736 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
737 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
738 + },
739 + "encodeurl": {
740 + "version": "1.0.2",
741 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
742 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
743 + },
744 + "escape-html": {
745 + "version": "1.0.3",
746 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
747 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
748 + },
749 + "etag": {
750 + "version": "1.8.1",
751 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
752 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
753 + },
754 + "express": {
755 + "version": "4.18.1",
756 + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
757 + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
758 + "requires": {
759 + "accepts": "~1.3.8",
760 + "array-flatten": "1.1.1",
761 + "body-parser": "1.20.0",
762 + "content-disposition": "0.5.4",
763 + "content-type": "~1.0.4",
764 + "cookie": "0.5.0",
765 + "cookie-signature": "1.0.6",
766 + "debug": "2.6.9",
767 + "depd": "2.0.0",
768 + "encodeurl": "~1.0.2",
769 + "escape-html": "~1.0.3",
770 + "etag": "~1.8.1",
771 + "finalhandler": "1.2.0",
772 + "fresh": "0.5.2",
773 + "http-errors": "2.0.0",
774 + "merge-descriptors": "1.0.1",
775 + "methods": "~1.1.2",
776 + "on-finished": "2.4.1",
777 + "parseurl": "~1.3.3",
778 + "path-to-regexp": "0.1.7",
779 + "proxy-addr": "~2.0.7",
780 + "qs": "6.10.3",
781 + "range-parser": "~1.2.1",
782 + "safe-buffer": "5.2.1",
783 + "send": "0.18.0",
784 + "serve-static": "1.15.0",
785 + "setprototypeof": "1.2.0",
786 + "statuses": "2.0.1",
787 + "type-is": "~1.6.18",
788 + "utils-merge": "1.0.1",
789 + "vary": "~1.1.2"
790 + }
791 + },
792 + "express-error-handler": {
793 + "version": "1.1.0",
794 + "resolved": "https://registry.npmjs.org/express-error-handler/-/express-error-handler-1.1.0.tgz",
795 + "integrity": "sha1-/y7bH+3PyrHmAcYKqzVUmC8fZJc=",
796 + "requires": {
797 + "mout": "0.12.0"
798 + }
799 + },
800 + "finalhandler": {
801 + "version": "1.2.0",
802 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
803 + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
804 + "requires": {
805 + "debug": "2.6.9",
806 + "encodeurl": "~1.0.2",
807 + "escape-html": "~1.0.3",
808 + "on-finished": "2.4.1",
809 + "parseurl": "~1.3.3",
810 + "statuses": "2.0.1",
811 + "unpipe": "~1.0.0"
812 + }
813 + },
814 + "forwarded": {
815 + "version": "0.2.0",
816 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
817 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
818 + },
819 + "fresh": {
820 + "version": "0.5.2",
821 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
822 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
823 + },
824 + "function-bind": {
825 + "version": "1.1.1",
826 + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
827 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
828 + },
829 + "get-intrinsic": {
830 + "version": "1.1.1",
831 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
832 + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
833 + "requires": {
834 + "function-bind": "^1.1.1",
835 + "has": "^1.0.3",
836 + "has-symbols": "^1.0.1"
837 + }
838 + },
839 + "has": {
840 + "version": "1.0.3",
841 + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
842 + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
843 + "requires": {
844 + "function-bind": "^1.1.1"
845 + }
846 + },
847 + "has-symbols": {
848 + "version": "1.0.3",
849 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
850 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
851 + },
852 + "http": {
853 + "version": "0.0.1-security",
854 + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz",
855 + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g=="
856 + },
857 + "http-errors": {
858 + "version": "2.0.0",
859 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
860 + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
861 + "requires": {
862 + "depd": "2.0.0",
863 + "inherits": "2.0.4",
864 + "setprototypeof": "1.2.0",
865 + "statuses": "2.0.1",
866 + "toidentifier": "1.0.1"
867 + }
868 + },
869 + "iconv-lite": {
870 + "version": "0.4.24",
871 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
872 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
873 + "requires": {
874 + "safer-buffer": ">= 2.1.2 < 3"
875 + }
876 + },
877 + "inherits": {
878 + "version": "2.0.4",
879 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
880 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
881 + },
882 + "ipaddr.js": {
883 + "version": "1.9.1",
884 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
885 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
886 + },
887 + "media-typer": {
888 + "version": "0.3.0",
889 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
890 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
891 + },
892 + "merge-descriptors": {
893 + "version": "1.0.1",
894 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
895 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
896 + },
897 + "methods": {
898 + "version": "1.1.2",
899 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
900 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
901 + },
902 + "mime": {
903 + "version": "1.6.0",
904 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
905 + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
906 + },
907 + "mime-db": {
908 + "version": "1.52.0",
909 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
910 + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
911 + },
912 + "mime-types": {
913 + "version": "2.1.35",
914 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
915 + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
916 + "requires": {
917 + "mime-db": "1.52.0"
918 + }
919 + },
920 + "mout": {
921 + "version": "0.12.0",
922 + "resolved": "https://registry.npmjs.org/mout/-/mout-0.12.0.tgz",
923 + "integrity": "sha1-bVskLuMx+dBMaOWPd6kaMGDoyss="
924 + },
925 + "ms": {
926 + "version": "2.0.0",
927 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
928 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
929 + },
930 + "negotiator": {
931 + "version": "0.6.3",
932 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
933 + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
934 + },
935 + "object-inspect": {
936 + "version": "1.12.0",
937 + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
938 + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
939 + },
940 + "on-finished": {
941 + "version": "2.4.1",
942 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
943 + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
944 + "requires": {
945 + "ee-first": "1.1.1"
946 + }
947 + },
948 + "parseurl": {
949 + "version": "1.3.3",
950 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
951 + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
952 + },
953 + "path": {
954 + "version": "0.12.7",
955 + "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
956 + "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
957 + "requires": {
958 + "process": "^0.11.1",
959 + "util": "^0.10.3"
960 + }
961 + },
962 + "path-to-regexp": {
963 + "version": "0.1.7",
964 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
965 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
966 + },
967 + "process": {
968 + "version": "0.11.10",
969 + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
970 + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
971 + },
972 + "proxy-addr": {
973 + "version": "2.0.7",
974 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
975 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
976 + "requires": {
977 + "forwarded": "0.2.0",
978 + "ipaddr.js": "1.9.1"
979 + }
980 + },
981 + "qs": {
982 + "version": "6.10.3",
983 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
984 + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
985 + "requires": {
986 + "side-channel": "^1.0.4"
987 + }
988 + },
989 + "range-parser": {
990 + "version": "1.2.1",
991 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
992 + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
993 + },
994 + "raw-body": {
995 + "version": "2.5.1",
996 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
997 + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
998 + "requires": {
999 + "bytes": "3.1.2",
1000 + "http-errors": "2.0.0",
1001 + "iconv-lite": "0.4.24",
1002 + "unpipe": "1.0.0"
1003 + }
1004 + },
1005 + "safe-buffer": {
1006 + "version": "5.2.1",
1007 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1008 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1009 + },
1010 + "safer-buffer": {
1011 + "version": "2.1.2",
1012 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1013 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1014 + },
1015 + "send": {
1016 + "version": "0.18.0",
1017 + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1018 + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1019 + "requires": {
1020 + "debug": "2.6.9",
1021 + "depd": "2.0.0",
1022 + "destroy": "1.2.0",
1023 + "encodeurl": "~1.0.2",
1024 + "escape-html": "~1.0.3",
1025 + "etag": "~1.8.1",
1026 + "fresh": "0.5.2",
1027 + "http-errors": "2.0.0",
1028 + "mime": "1.6.0",
1029 + "ms": "2.1.3",
1030 + "on-finished": "2.4.1",
1031 + "range-parser": "~1.2.1",
1032 + "statuses": "2.0.1"
1033 + },
1034 + "dependencies": {
1035 + "ms": {
1036 + "version": "2.1.3",
1037 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1038 + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1039 + }
1040 + }
1041 + },
1042 + "serve-static": {
1043 + "version": "1.15.0",
1044 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1045 + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1046 + "requires": {
1047 + "encodeurl": "~1.0.2",
1048 + "escape-html": "~1.0.3",
1049 + "parseurl": "~1.3.3",
1050 + "send": "0.18.0"
1051 + }
1052 + },
1053 + "setprototypeof": {
1054 + "version": "1.2.0",
1055 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1056 + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1057 + },
1058 + "side-channel": {
1059 + "version": "1.0.4",
1060 + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1061 + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1062 + "requires": {
1063 + "call-bind": "^1.0.0",
1064 + "get-intrinsic": "^1.0.2",
1065 + "object-inspect": "^1.9.0"
1066 + }
1067 + },
1068 + "statuses": {
1069 + "version": "2.0.1",
1070 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1071 + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1072 + },
1073 + "toidentifier": {
1074 + "version": "1.0.1",
1075 + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1076 + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1077 + },
1078 + "type-is": {
1079 + "version": "1.6.18",
1080 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1081 + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1082 + "requires": {
1083 + "media-typer": "0.3.0",
1084 + "mime-types": "~2.1.24"
1085 + }
1086 + },
1087 + "unpipe": {
1088 + "version": "1.0.0",
1089 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1090 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
1091 + },
1092 + "util": {
1093 + "version": "0.10.4",
1094 + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
1095 + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
1096 + "requires": {
1097 + "inherits": "2.0.3"
1098 + },
1099 + "dependencies": {
1100 + "inherits": {
1101 + "version": "2.0.3",
1102 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1103 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
1104 + }
1105 + }
1106 + },
1107 + "utils-merge": {
1108 + "version": "1.0.1",
1109 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1110 + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
1111 + },
1112 + "vary": {
1113 + "version": "1.1.2",
1114 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1115 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
1116 + }
1117 + }
1118 +}
1 +{
2 + "name": "node",
3 + "version": "1.0.0",
4 + "description": "",
5 + "main": "index.js",
6 + "scripts": {
7 + "test": "echo \"Error: no test specified\" && exit 1"
8 + },
9 + "author": "",
10 + "license": "ISC",
11 + "dependencies": {
12 + "body-parser": "^1.20.0",
13 + "express": "^4.18.1",
14 + "express-error-handler": "^1.1.0",
15 + "http": "^0.0.1-security",
16 + "path": "^0.12.7",
17 + "serve-static": "^1.15.0"
18 + }
19 +}