Showing
11 changed files
with
1636 additions
and
85 deletions
1
deleted
100644 → 0
File mode changed
11
deleted
100644 → 0
File mode changed
12
deleted
100644 → 0
File mode changed
13
deleted
100644 → 0
File mode changed
2
deleted
100644 → 0
File mode changed
3
deleted
100644 → 0
File mode changed
4
deleted
100644 → 0
File mode changed
README.md
deleted
100644 → 0
1 | -<p align="center"><img src="http://cdn.ggilbo.com/news/photo/202203/901729_732791_5437.jpg" width="300" height="300"></p> | ||
2 | - | ||
3 | -<!-- PROJECT LOGO --> | ||
4 | -<br /> | ||
5 | -<div align="center"> | ||
6 | - | ||
7 | - <h1 align="center">Find MBTI chatbot</h1> | ||
8 | - | ||
9 | -</div> | ||
10 | - | ||
11 | - | ||
12 | - | ||
13 | -<!-- TABLE OF CONTENTS --> | ||
14 | -<details> | ||
15 | - <summary>Table of Contents</summary> | ||
16 | - <ol> | ||
17 | - <li> | ||
18 | - <a href="#about-the-project">About The Project</a> | ||
19 | - </li> | ||
20 | - <li><a href="#roadmap">Roadmap</a></li> | ||
21 | - <li><a href="#contributing">Contributing</a></li> | ||
22 | - <li><a href="#contact">Contact</a></li> | ||
23 | - </ol> | ||
24 | -</details> | ||
25 | - | ||
26 | - | ||
27 | - | ||
28 | -<!-- ABOUT THE PROJECT --> | ||
29 | -## About The Project | ||
30 | - | ||
31 | -* MBTI를 알기 위해서는 딱딱한 질문식의 설문을 일일히 체크해야 합니다. | ||
32 | -* 저희는 그런 방식보다는 챗봇과의 대화를 통해 MBTI를 알아내는 방식을 챗봇에 적용하고자 합니다. | ||
33 | -* 저희 챗봇은 LINE Messaging API를 기반으로 만들어졌습니다. | ||
34 | - | ||
35 | - | ||
36 | -<p align="right">(<a href="#top">back to top</a>)</p> | ||
37 | - | ||
38 | - | ||
39 | - | ||
40 | -### Built With | ||
41 | - | ||
42 | -* [Node.js](https://nodejs.org/ko/) | ||
43 | - | ||
44 | -<p align="right">(<a href="#top">back to top</a>)</p> | ||
45 | - | ||
46 | - | ||
47 | - | ||
48 | -<!-- ROADMAP --> | ||
49 | -## Roadmap | ||
50 | - | ||
51 | -- [ ] Line/kakao 채널 만들기 | ||
52 | -- [ ] express 서버 연결 | ||
53 | -- [ ] test | ||
54 | -- [ ] MBTI설문을 챗봇에 적용시키기 | ||
55 | - | ||
56 | - | ||
57 | -<p align="right">(<a href="#top">back to top</a>)</p> | ||
58 | - | ||
59 | - | ||
60 | - | ||
61 | -<!-- CONTRIBUTING --> | ||
62 | -## Contributing | ||
63 | - | ||
64 | -1. Fork the Project | ||
65 | -2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) | ||
66 | -3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) | ||
67 | -4. Push to the Branch (`git push origin feature/AmazingFeature`) | ||
68 | -5. Open a Pull Request | ||
69 | - | ||
70 | -<p align="right">(<a href="#top">back to top</a>)</p> | ||
71 | - | ||
72 | - | ||
73 | - | ||
74 | -<!-- CONTACT --> | ||
75 | -## Contact | ||
76 | - | ||
77 | -* 김성욱 : so3659@khu.ac.kr | ||
78 | -* 공정훈 : kjhun1208@khu.ac.kr | ||
79 | -* 고민경: komg00@khu.ac.kr | ||
80 | - | ||
81 | -* Project Link : http://khuhub.khu.ac.kr/2018103692/find_mbti_bot) | ||
82 | - | ||
83 | -<p align="right">(<a href="#top">back to top</a>)</p> | ||
84 | - | ||
85 | - |
index.js
0 → 100644
1 | +const express = require('express'); | ||
2 | +const app = express(); | ||
3 | + | ||
4 | +const bodyParser = require('body-parser'); | ||
5 | + | ||
6 | +const apiRouter = express.Router(); | ||
7 | + | ||
8 | +app.use(bodyParser.json()); | ||
9 | +app.use(bodyParser.urlencoded({ | ||
10 | + extended: true | ||
11 | +})); | ||
12 | + | ||
13 | +app.use('/api', apiRouter); | ||
14 | + | ||
15 | +let userDB = new Array(); | ||
16 | + | ||
17 | +apiRouter.post('/sayHello', function(req, res) { | ||
18 | + const responseBody = { | ||
19 | + version: "2.0", | ||
20 | + template: { | ||
21 | + outputs: [ | ||
22 | + { | ||
23 | + "basicCard": { | ||
24 | + "title": "MBTI 검사 챗봇", | ||
25 | + "description": "MBTI 검사 챗봇입니다! \n당신의 MBTI를 찾아보세요!", | ||
26 | + "thumbnail": { | ||
27 | + "imageUrl": "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsnm5S%2Fbtq6cSXUkrD%2FOgk9QsUoPzQGvllliI0CSk%2Fimg.jpg" | ||
28 | + }, | ||
29 | + "buttons": [ | ||
30 | + { | ||
31 | + "action": "message", | ||
32 | + "label": "MBTI 테스트 시작하기", | ||
33 | + "messageText": "MBTI 테스트 시작하기" | ||
34 | + } | ||
35 | + ] | ||
36 | + } | ||
37 | + } | ||
38 | + ] | ||
39 | + } | ||
40 | + }; | ||
41 | + res.status(200).send(responseBody); | ||
42 | +}); | ||
43 | + | ||
44 | +apiRouter.post('/question1', (req, res) => { | ||
45 | + var userId = req.body.userRequest.user.id; | ||
46 | + var mesg = req.body.userRequest; | ||
47 | + console.log('[q1:user message] ', mesg); | ||
48 | + userDB[userId] = ['','','','','']; | ||
49 | + console.log(userDB[userId]); | ||
50 | + const responseBody = { | ||
51 | + version: "2.0", | ||
52 | + template: { | ||
53 | + outputs: [ | ||
54 | + { | ||
55 | + simpleText: { | ||
56 | + text: '금방 새로운 직장 사람들과 어울리기 시작합니다.' | ||
57 | + } | ||
58 | + } | ||
59 | + ], | ||
60 | + quickReplies: [ | ||
61 | + { | ||
62 | + action: "block", | ||
63 | + label: "네", | ||
64 | + message: "네", | ||
65 | + blockId: "6297b11ae7a0253c7662ccea" | ||
66 | + }, | ||
67 | + { | ||
68 | + action: "block", | ||
69 | + label: "아니오", | ||
70 | + message: "아니오", | ||
71 | + blockId: "6297b11ae7a0253c7662ccea" | ||
72 | + } | ||
73 | + ] | ||
74 | + } | ||
75 | + } | ||
76 | + res.status(200).send(responseBody); | ||
77 | +}); | ||
78 | + | ||
79 | +apiRouter.post('/question2', (req, res) => { | ||
80 | + var userId = req.body.userRequest.user.id; | ||
81 | + var mesg = req.body.userRequest.utterance; | ||
82 | + console.log('[q2:user message] ', mesg); | ||
83 | + var mbti = ''; | ||
84 | + if (mesg == "네") { | ||
85 | + mbti = 'E'; | ||
86 | + } else if (mesg == "아니오") { | ||
87 | + mbti = 'I'; | ||
88 | + } | ||
89 | + userDB[userId][0] += mbti; | ||
90 | + console.log(userDB[userId]); | ||
91 | + const responseBody = { | ||
92 | + version: "2.0", | ||
93 | + template: { | ||
94 | + outputs: [ | ||
95 | + { | ||
96 | + simpleText: { | ||
97 | + text: '평소 깻잎논쟁에 대해 1시간 이상을 생각해 보는 편입니다.' | ||
98 | + } | ||
99 | + } | ||
100 | + ], | ||
101 | + quickReplies: [ | ||
102 | + { | ||
103 | + action: "block", | ||
104 | + label: "네", | ||
105 | + message: "네", | ||
106 | + blockId: "6297b122ab89e678ee86b331" | ||
107 | + }, | ||
108 | + { | ||
109 | + action: "block", | ||
110 | + label: "아니오", | ||
111 | + message: "아니오", | ||
112 | + blockId: "6297b122ab89e678ee86b331" | ||
113 | + } | ||
114 | + ] | ||
115 | + } | ||
116 | + } | ||
117 | + res.status(200).send(responseBody); | ||
118 | +}); | ||
119 | + | ||
120 | +apiRouter.post('/question3', function(req, res) { | ||
121 | + var userId = req.body.userRequest.user.id; | ||
122 | + var mesg = req.body.userRequest.utterance; | ||
123 | + console.log('[q3:user message] ', mesg); | ||
124 | + var mbti = ''; | ||
125 | + if (mesg == '네') { | ||
126 | + mbti = 'N'; | ||
127 | + } else if (mesg == '아니오') { | ||
128 | + mbti = 'S'; | ||
129 | + } | ||
130 | + userDB[userId][1] += mbti; | ||
131 | + console.log(userDB[userId]); | ||
132 | + const responseBody = { | ||
133 | + version: "2.0", | ||
134 | + template: { | ||
135 | + outputs: [ | ||
136 | + { | ||
137 | + "simpleText": { | ||
138 | + "text": "토론 시 사람들의 민감한 반응보다 보다 진실을 더 중요시해야 합니다." | ||
139 | + } | ||
140 | + } | ||
141 | + ], | ||
142 | + quickReplies: [ | ||
143 | + { | ||
144 | + action: "block", | ||
145 | + label: "네", | ||
146 | + message: "네", | ||
147 | + blockId: "6297b1275ceed96c38544a08" | ||
148 | + }, | ||
149 | + { | ||
150 | + action: "block", | ||
151 | + label: "아니오", | ||
152 | + message: "아니오", | ||
153 | + blockId: "6297b1275ceed96c38544a08" | ||
154 | + } | ||
155 | + ] | ||
156 | + } | ||
157 | + }; | ||
158 | + res.status(200).send(responseBody); | ||
159 | +}); | ||
160 | + | ||
161 | +apiRouter.post('/question4', (req, res) => { | ||
162 | + var userId = req.body.userRequest.user.id; | ||
163 | + var mesg = req.body.userRequest.utterance; | ||
164 | + console.log('[q4:user message] ', mesg); | ||
165 | + var mbti = ''; | ||
166 | + if (mesg == "네") { | ||
167 | + mbti = 'T'; | ||
168 | + } else if (mesg == "아니오") { | ||
169 | + mbti = 'F'; | ||
170 | + } | ||
171 | + userDB[userId][2] += mbti; | ||
172 | + console.log(userDB[userId]); | ||
173 | + const responseBody = { | ||
174 | + version: "2.0", | ||
175 | + template: { | ||
176 | + outputs: [ | ||
177 | + { | ||
178 | + simpleText: { | ||
179 | + text: "주의깊게 미리 계획하기 보다는 즉흥적으로 움직입니다." | ||
180 | + } | ||
181 | + } | ||
182 | + ], | ||
183 | + quickReplies: [ | ||
184 | + { | ||
185 | + action: "block", | ||
186 | + label: "네", | ||
187 | + message: "네", | ||
188 | + blockId: "6297b12be7a0253c7662ccec" | ||
189 | + }, | ||
190 | + { | ||
191 | + action: "block", | ||
192 | + label: "아니오", | ||
193 | + message: "아니오", | ||
194 | + blockId: "6297b12be7a0253c7662ccec" | ||
195 | + } | ||
196 | + ] | ||
197 | + } | ||
198 | + } | ||
199 | + res.status(200).send(responseBody); | ||
200 | +}); | ||
201 | + | ||
202 | +apiRouter.post('/question5', (req, res) => { | ||
203 | + var userId = req.body.userRequest.user.id; | ||
204 | + var mesg = req.body.userRequest; | ||
205 | + console.log('[q1:user message] ', mesg); | ||
206 | + var mbti = ''; | ||
207 | + if (mesg == "네") { | ||
208 | + mbti = 'P'; | ||
209 | + } else if (mesg == "아니오") { | ||
210 | + mbti = 'J'; | ||
211 | + } | ||
212 | + userDB[userId][3] += mbti; | ||
213 | + console.log(userDB[userId]); | ||
214 | + const responseBody = { | ||
215 | + version: "2.0", | ||
216 | + template: { | ||
217 | + outputs: [ | ||
218 | + { | ||
219 | + simpleText: { | ||
220 | + text: '주목받는 것을 좋아합니다.' | ||
221 | + } | ||
222 | + } | ||
223 | + ], | ||
224 | + quickReplies: [ | ||
225 | + { | ||
226 | + action: "block", | ||
227 | + label: "네", | ||
228 | + message: "네", | ||
229 | + blockId: "6297b130e7a0253c7662ccee" | ||
230 | + }, | ||
231 | + { | ||
232 | + action: "block", | ||
233 | + label: "아니오", | ||
234 | + message: "아니오", | ||
235 | + blockId: "6297b130e7a0253c7662ccee" | ||
236 | + } | ||
237 | + ] | ||
238 | + } | ||
239 | + } | ||
240 | + res.status(200).send(responseBody); | ||
241 | +}); | ||
242 | + | ||
243 | +apiRouter.post('/question6', (req, res) => { | ||
244 | + var userId = req.body.userRequest.user.id; | ||
245 | + var mesg = req.body.userRequest.utterance; | ||
246 | + console.log('[q2:user message] ', mesg); | ||
247 | + var mbti = ''; | ||
248 | + if (mesg == "네") { | ||
249 | + mbti = 'E'; | ||
250 | + } else if (mesg == "아니오") { | ||
251 | + mbti = 'I'; | ||
252 | + } | ||
253 | + userDB[userId][0] += mbti; | ||
254 | + console.log(userDB[userId]); | ||
255 | + const responseBody = { | ||
256 | + version: "2.0", | ||
257 | + template: { | ||
258 | + outputs: [ | ||
259 | + { | ||
260 | + simpleText: { | ||
261 | + text: '종종 인간 실존에 대한 이유를 생각합니다.' | ||
262 | + } | ||
263 | + } | ||
264 | + ], | ||
265 | + quickReplies: [ | ||
266 | + { | ||
267 | + action: "block", | ||
268 | + label: "네", | ||
269 | + message: "네", | ||
270 | + blockId: "6297b133f591aa190554a260" | ||
271 | + }, | ||
272 | + { | ||
273 | + action: "block", | ||
274 | + label: "아니오", | ||
275 | + message: "아니오", | ||
276 | + blockId: "6297b133f591aa190554a260" | ||
277 | + } | ||
278 | + ] | ||
279 | + } | ||
280 | + } | ||
281 | + res.status(200).send(responseBody); | ||
282 | +}); | ||
283 | + | ||
284 | +apiRouter.post('/question7', (req, res) => { | ||
285 | + var userId = req.body.userRequest.user.id; | ||
286 | + var mesg = req.body.userRequest.utterance; | ||
287 | + console.log('[q2:user message] ', mesg); | ||
288 | + var mbti = ''; | ||
289 | + if (mesg == "네") { | ||
290 | + mbti = 'N'; | ||
291 | + } else if (mesg == "아니오") { | ||
292 | + mbti = 'S'; | ||
293 | + } | ||
294 | + userDB[userId][1] += mbti; | ||
295 | + console.log(userDB[userId]); | ||
296 | + const responseBody = { | ||
297 | + version: "2.0", | ||
298 | + template: { | ||
299 | + outputs: [ | ||
300 | + { | ||
301 | + simpleText: { | ||
302 | + text: '어떤 일에서 성과를 냈을 때 “고생했어”보다 “잘했어”라는 말이 더 좋습니다.' | ||
303 | + } | ||
304 | + } | ||
305 | + ], | ||
306 | + quickReplies: [ | ||
307 | + { | ||
308 | + action: "block", | ||
309 | + label: "네", | ||
310 | + message: "네", | ||
311 | + blockId: "6297b3505ceed96c38544a0a" | ||
312 | + }, | ||
313 | + { | ||
314 | + action: "block", | ||
315 | + label: "아니오", | ||
316 | + message: "아니오", | ||
317 | + blockId: "6297b3505ceed96c38544a0a" | ||
318 | + } | ||
319 | + ] | ||
320 | + } | ||
321 | + } | ||
322 | + res.status(200).send(responseBody); | ||
323 | +}); | ||
324 | + | ||
325 | +apiRouter.post('/result', (req, res) => { | ||
326 | + var userId = req.body.userRequest.user.id; | ||
327 | + var mesg = req.body.userRequest.utterance; | ||
328 | + console.log('[result:user message] ', mesg); | ||
329 | + var mbti = ''; | ||
330 | + if (mesg == "네") { | ||
331 | + mbti = 'T'; | ||
332 | + } else if (mesg == "아니오") { | ||
333 | + mbti = 'F'; | ||
334 | + } | ||
335 | + userDB[userId][2] += mbti; | ||
336 | + console.log(userDB[userId]); | ||
337 | + result(userDB); | ||
338 | + const responseBody = { | ||
339 | + version: "2.0", | ||
340 | + template: { | ||
341 | + outputs: [ | ||
342 | + { | ||
343 | + simpleText: { | ||
344 | + text: "당신의 MBTI는 : "+userDB[userId][4] | ||
345 | + } | ||
346 | + } | ||
347 | + ], | ||
348 | + quickReplies: [{ | ||
349 | + action: "block", | ||
350 | + label: "MBTI 테스트 다시하기", | ||
351 | + message: "MBTI 테스트 다시하기", | ||
352 | + blockId : "6297b10d5ceed96c38544a06" | ||
353 | + }, | ||
354 | + { | ||
355 | + action: "block", | ||
356 | + label: "자세한 결과 보기", | ||
357 | + message: "자세한 결과 보기", | ||
358 | + blockId: "6297bc58ab89e678ee86b33a" | ||
359 | + }] | ||
360 | + } | ||
361 | + } | ||
362 | + res.status(200).send(responseBody); | ||
363 | +}); | ||
364 | + | ||
365 | +apiRouter.post('/detail', (req, res) => { | ||
366 | + var userId = req.body.userRequest.user.id; | ||
367 | + var mesg = req.body.userRequest.utterance; | ||
368 | + var E=0; | ||
369 | + var I=0; | ||
370 | + var N=0; | ||
371 | + var S=0; | ||
372 | + var F=0; | ||
373 | + var T=0; | ||
374 | + var P=0; | ||
375 | + var J=0; | ||
376 | + | ||
377 | + for(let j=0;j<4;j++){ | ||
378 | + for(let i=0; i<3; i++){ | ||
379 | + if(j==0){ | ||
380 | + if(userDB[userId][j][i]=="E"){ | ||
381 | + E++; | ||
382 | + } | ||
383 | + else{ | ||
384 | + I++; | ||
385 | + } | ||
386 | + } | ||
387 | + else if(j==1){ | ||
388 | + if(userDB[userId][j][i]=="N"){ | ||
389 | + N++; | ||
390 | + } | ||
391 | + else{ | ||
392 | + S++; | ||
393 | + } | ||
394 | + } | ||
395 | + else if(j==2){ | ||
396 | + if(userDB[userId][j][i]=="F"){ | ||
397 | + F++; | ||
398 | + } | ||
399 | + else{ | ||
400 | + T++; | ||
401 | + } | ||
402 | + } | ||
403 | + else if(j==3){ | ||
404 | + if(userDB[userId][j][i]=="N"){ | ||
405 | + P++; | ||
406 | + } | ||
407 | + else{ | ||
408 | + J++; | ||
409 | + } | ||
410 | + } | ||
411 | + } | ||
412 | + } | ||
413 | + | ||
414 | + const responseBody = { | ||
415 | + version: "2.0", | ||
416 | + template: { | ||
417 | + outputs: [ | ||
418 | + { | ||
419 | + simpleText: { | ||
420 | + text: "E와 I의 비율\nE : "+(E/(E+I)*100)+"%\nI : "+(I/(E+I)*100)+"\nN와 S의 비율\nN : "+(N/(N+S)*100)+"%\nS : "+(S/(N+S)*100)+"\nF와 T의 비율\nF : "+(F/(F+T)*100)+"%\nT : "+(T/(F+T)*100)+"\nJ와 P의 비율\nJ : "+(J/(J+P)*100)+"%\nP : "+(P/(J+P)*100) | ||
421 | + } | ||
422 | + } | ||
423 | + ] | ||
424 | + } | ||
425 | + } | ||
426 | + res.status(200).send(responseBody); | ||
427 | +}); | ||
428 | + | ||
429 | +function result(Array){ | ||
430 | + var E=0; | ||
431 | + var I=0; | ||
432 | + var N=0; | ||
433 | + var S=0; | ||
434 | + var F=0; | ||
435 | + var T=0; | ||
436 | + var P=0; | ||
437 | + var J=0; | ||
438 | + | ||
439 | + for(let j=0;j<4;j++){ | ||
440 | + for(let i=0; i<3; i++){ | ||
441 | + if(j==0){ | ||
442 | + if(userDB[userId][j][i]=="E"){ | ||
443 | + E++; | ||
444 | + } | ||
445 | + else{ | ||
446 | + I++; | ||
447 | + } | ||
448 | + } | ||
449 | + else if(j==1){ | ||
450 | + if(userDB[userId][j][i]=="N"){ | ||
451 | + N++; | ||
452 | + } | ||
453 | + else{ | ||
454 | + S++; | ||
455 | + } | ||
456 | + } | ||
457 | + else if(j==2){ | ||
458 | + if(userDB[userId][j][i]=="F"){ | ||
459 | + F++; | ||
460 | + } | ||
461 | + else{ | ||
462 | + T++; | ||
463 | + } | ||
464 | + } | ||
465 | + else if(j==3){ | ||
466 | + if(userDB[userId][j][i]=="N"){ | ||
467 | + P++; | ||
468 | + } | ||
469 | + else{ | ||
470 | + J++; | ||
471 | + } | ||
472 | + } | ||
473 | + } | ||
474 | + } | ||
475 | + | ||
476 | + if(E>I) | ||
477 | + userDB[userId][4]+='E'; | ||
478 | + else | ||
479 | + userDB[userId][4]+='I'; | ||
480 | + | ||
481 | + if(N>S) | ||
482 | + userDB[userId][4]+='N'; | ||
483 | + else | ||
484 | + userDB[userId][4]+='S'; | ||
485 | + | ||
486 | + if(F>T) | ||
487 | + userDB[userId][4]+='F'; | ||
488 | + else | ||
489 | + userDB[userId][4]+='T'; | ||
490 | + | ||
491 | + if(P>J) | ||
492 | + userDB[userId][4]+='P'; | ||
493 | + else | ||
494 | + userDB[userId][4]+='J'; | ||
495 | +} | ||
496 | + | ||
497 | +app.listen((process.env.PORT || 3000), function() { | ||
498 | + console.log('Example skill server listening on port 3000!'); | ||
499 | +}); | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
package-lock.json
0 → 100644
1 | +{ | ||
2 | + "name": "example", | ||
3 | + "version": "1.0.0", | ||
4 | + "lockfileVersion": 2, | ||
5 | + "requires": true, | ||
6 | + "packages": { | ||
7 | + "": { | ||
8 | + "name": "example", | ||
9 | + "version": "1.0.0", | ||
10 | + "license": "ISC", | ||
11 | + "dependencies": { | ||
12 | + "body-parser": "^1.20.0", | ||
13 | + "express": "^4.18.1", | ||
14 | + "morgan": "^1.10.0" | ||
15 | + }, | ||
16 | + "engines": { | ||
17 | + "node": "16.14.2", | ||
18 | + "npm": "8.5.0" | ||
19 | + } | ||
20 | + }, | ||
21 | + "node_modules/accepts": { | ||
22 | + "version": "1.3.8", | ||
23 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", | ||
24 | + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", | ||
25 | + "dependencies": { | ||
26 | + "mime-types": "~2.1.34", | ||
27 | + "negotiator": "0.6.3" | ||
28 | + }, | ||
29 | + "engines": { | ||
30 | + "node": ">= 0.6" | ||
31 | + } | ||
32 | + }, | ||
33 | + "node_modules/array-flatten": { | ||
34 | + "version": "1.1.1", | ||
35 | + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||
36 | + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" | ||
37 | + }, | ||
38 | + "node_modules/basic-auth": { | ||
39 | + "version": "2.0.1", | ||
40 | + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", | ||
41 | + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", | ||
42 | + "dependencies": { | ||
43 | + "safe-buffer": "5.1.2" | ||
44 | + }, | ||
45 | + "engines": { | ||
46 | + "node": ">= 0.8" | ||
47 | + } | ||
48 | + }, | ||
49 | + "node_modules/basic-auth/node_modules/safe-buffer": { | ||
50 | + "version": "5.1.2", | ||
51 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
52 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
53 | + }, | ||
54 | + "node_modules/body-parser": { | ||
55 | + "version": "1.20.0", | ||
56 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", | ||
57 | + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", | ||
58 | + "dependencies": { | ||
59 | + "bytes": "3.1.2", | ||
60 | + "content-type": "~1.0.4", | ||
61 | + "debug": "2.6.9", | ||
62 | + "depd": "2.0.0", | ||
63 | + "destroy": "1.2.0", | ||
64 | + "http-errors": "2.0.0", | ||
65 | + "iconv-lite": "0.4.24", | ||
66 | + "on-finished": "2.4.1", | ||
67 | + "qs": "6.10.3", | ||
68 | + "raw-body": "2.5.1", | ||
69 | + "type-is": "~1.6.18", | ||
70 | + "unpipe": "1.0.0" | ||
71 | + }, | ||
72 | + "engines": { | ||
73 | + "node": ">= 0.8", | ||
74 | + "npm": "1.2.8000 || >= 1.4.16" | ||
75 | + } | ||
76 | + }, | ||
77 | + "node_modules/bytes": { | ||
78 | + "version": "3.1.2", | ||
79 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | ||
80 | + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", | ||
81 | + "engines": { | ||
82 | + "node": ">= 0.8" | ||
83 | + } | ||
84 | + }, | ||
85 | + "node_modules/call-bind": { | ||
86 | + "version": "1.0.2", | ||
87 | + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", | ||
88 | + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | ||
89 | + "dependencies": { | ||
90 | + "function-bind": "^1.1.1", | ||
91 | + "get-intrinsic": "^1.0.2" | ||
92 | + }, | ||
93 | + "funding": { | ||
94 | + "url": "https://github.com/sponsors/ljharb" | ||
95 | + } | ||
96 | + }, | ||
97 | + "node_modules/content-disposition": { | ||
98 | + "version": "0.5.4", | ||
99 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", | ||
100 | + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", | ||
101 | + "dependencies": { | ||
102 | + "safe-buffer": "5.2.1" | ||
103 | + }, | ||
104 | + "engines": { | ||
105 | + "node": ">= 0.6" | ||
106 | + } | ||
107 | + }, | ||
108 | + "node_modules/content-type": { | ||
109 | + "version": "1.0.4", | ||
110 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||
111 | + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", | ||
112 | + "engines": { | ||
113 | + "node": ">= 0.6" | ||
114 | + } | ||
115 | + }, | ||
116 | + "node_modules/cookie": { | ||
117 | + "version": "0.5.0", | ||
118 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", | ||
119 | + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", | ||
120 | + "engines": { | ||
121 | + "node": ">= 0.6" | ||
122 | + } | ||
123 | + }, | ||
124 | + "node_modules/cookie-signature": { | ||
125 | + "version": "1.0.6", | ||
126 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||
127 | + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | ||
128 | + }, | ||
129 | + "node_modules/debug": { | ||
130 | + "version": "2.6.9", | ||
131 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
132 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
133 | + "dependencies": { | ||
134 | + "ms": "2.0.0" | ||
135 | + } | ||
136 | + }, | ||
137 | + "node_modules/depd": { | ||
138 | + "version": "2.0.0", | ||
139 | + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | ||
140 | + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", | ||
141 | + "engines": { | ||
142 | + "node": ">= 0.8" | ||
143 | + } | ||
144 | + }, | ||
145 | + "node_modules/destroy": { | ||
146 | + "version": "1.2.0", | ||
147 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", | ||
148 | + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", | ||
149 | + "engines": { | ||
150 | + "node": ">= 0.8", | ||
151 | + "npm": "1.2.8000 || >= 1.4.16" | ||
152 | + } | ||
153 | + }, | ||
154 | + "node_modules/ee-first": { | ||
155 | + "version": "1.1.1", | ||
156 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
157 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | ||
158 | + }, | ||
159 | + "node_modules/encodeurl": { | ||
160 | + "version": "1.0.2", | ||
161 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
162 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", | ||
163 | + "engines": { | ||
164 | + "node": ">= 0.8" | ||
165 | + } | ||
166 | + }, | ||
167 | + "node_modules/escape-html": { | ||
168 | + "version": "1.0.3", | ||
169 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
170 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" | ||
171 | + }, | ||
172 | + "node_modules/etag": { | ||
173 | + "version": "1.8.1", | ||
174 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
175 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", | ||
176 | + "engines": { | ||
177 | + "node": ">= 0.6" | ||
178 | + } | ||
179 | + }, | ||
180 | + "node_modules/express": { | ||
181 | + "version": "4.18.1", | ||
182 | + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", | ||
183 | + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", | ||
184 | + "dependencies": { | ||
185 | + "accepts": "~1.3.8", | ||
186 | + "array-flatten": "1.1.1", | ||
187 | + "body-parser": "1.20.0", | ||
188 | + "content-disposition": "0.5.4", | ||
189 | + "content-type": "~1.0.4", | ||
190 | + "cookie": "0.5.0", | ||
191 | + "cookie-signature": "1.0.6", | ||
192 | + "debug": "2.6.9", | ||
193 | + "depd": "2.0.0", | ||
194 | + "encodeurl": "~1.0.2", | ||
195 | + "escape-html": "~1.0.3", | ||
196 | + "etag": "~1.8.1", | ||
197 | + "finalhandler": "1.2.0", | ||
198 | + "fresh": "0.5.2", | ||
199 | + "http-errors": "2.0.0", | ||
200 | + "merge-descriptors": "1.0.1", | ||
201 | + "methods": "~1.1.2", | ||
202 | + "on-finished": "2.4.1", | ||
203 | + "parseurl": "~1.3.3", | ||
204 | + "path-to-regexp": "0.1.7", | ||
205 | + "proxy-addr": "~2.0.7", | ||
206 | + "qs": "6.10.3", | ||
207 | + "range-parser": "~1.2.1", | ||
208 | + "safe-buffer": "5.2.1", | ||
209 | + "send": "0.18.0", | ||
210 | + "serve-static": "1.15.0", | ||
211 | + "setprototypeof": "1.2.0", | ||
212 | + "statuses": "2.0.1", | ||
213 | + "type-is": "~1.6.18", | ||
214 | + "utils-merge": "1.0.1", | ||
215 | + "vary": "~1.1.2" | ||
216 | + }, | ||
217 | + "engines": { | ||
218 | + "node": ">= 0.10.0" | ||
219 | + } | ||
220 | + }, | ||
221 | + "node_modules/finalhandler": { | ||
222 | + "version": "1.2.0", | ||
223 | + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", | ||
224 | + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", | ||
225 | + "dependencies": { | ||
226 | + "debug": "2.6.9", | ||
227 | + "encodeurl": "~1.0.2", | ||
228 | + "escape-html": "~1.0.3", | ||
229 | + "on-finished": "2.4.1", | ||
230 | + "parseurl": "~1.3.3", | ||
231 | + "statuses": "2.0.1", | ||
232 | + "unpipe": "~1.0.0" | ||
233 | + }, | ||
234 | + "engines": { | ||
235 | + "node": ">= 0.8" | ||
236 | + } | ||
237 | + }, | ||
238 | + "node_modules/forwarded": { | ||
239 | + "version": "0.2.0", | ||
240 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", | ||
241 | + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", | ||
242 | + "engines": { | ||
243 | + "node": ">= 0.6" | ||
244 | + } | ||
245 | + }, | ||
246 | + "node_modules/fresh": { | ||
247 | + "version": "0.5.2", | ||
248 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
249 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", | ||
250 | + "engines": { | ||
251 | + "node": ">= 0.6" | ||
252 | + } | ||
253 | + }, | ||
254 | + "node_modules/function-bind": { | ||
255 | + "version": "1.1.1", | ||
256 | + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||
257 | + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" | ||
258 | + }, | ||
259 | + "node_modules/get-intrinsic": { | ||
260 | + "version": "1.1.1", | ||
261 | + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | ||
262 | + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | ||
263 | + "dependencies": { | ||
264 | + "function-bind": "^1.1.1", | ||
265 | + "has": "^1.0.3", | ||
266 | + "has-symbols": "^1.0.1" | ||
267 | + }, | ||
268 | + "funding": { | ||
269 | + "url": "https://github.com/sponsors/ljharb" | ||
270 | + } | ||
271 | + }, | ||
272 | + "node_modules/has": { | ||
273 | + "version": "1.0.3", | ||
274 | + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||
275 | + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||
276 | + "dependencies": { | ||
277 | + "function-bind": "^1.1.1" | ||
278 | + }, | ||
279 | + "engines": { | ||
280 | + "node": ">= 0.4.0" | ||
281 | + } | ||
282 | + }, | ||
283 | + "node_modules/has-symbols": { | ||
284 | + "version": "1.0.3", | ||
285 | + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", | ||
286 | + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", | ||
287 | + "engines": { | ||
288 | + "node": ">= 0.4" | ||
289 | + }, | ||
290 | + "funding": { | ||
291 | + "url": "https://github.com/sponsors/ljharb" | ||
292 | + } | ||
293 | + }, | ||
294 | + "node_modules/http-errors": { | ||
295 | + "version": "2.0.0", | ||
296 | + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", | ||
297 | + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", | ||
298 | + "dependencies": { | ||
299 | + "depd": "2.0.0", | ||
300 | + "inherits": "2.0.4", | ||
301 | + "setprototypeof": "1.2.0", | ||
302 | + "statuses": "2.0.1", | ||
303 | + "toidentifier": "1.0.1" | ||
304 | + }, | ||
305 | + "engines": { | ||
306 | + "node": ">= 0.8" | ||
307 | + } | ||
308 | + }, | ||
309 | + "node_modules/iconv-lite": { | ||
310 | + "version": "0.4.24", | ||
311 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
312 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
313 | + "dependencies": { | ||
314 | + "safer-buffer": ">= 2.1.2 < 3" | ||
315 | + }, | ||
316 | + "engines": { | ||
317 | + "node": ">=0.10.0" | ||
318 | + } | ||
319 | + }, | ||
320 | + "node_modules/inherits": { | ||
321 | + "version": "2.0.4", | ||
322 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||
323 | + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | ||
324 | + }, | ||
325 | + "node_modules/ipaddr.js": { | ||
326 | + "version": "1.9.1", | ||
327 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | ||
328 | + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", | ||
329 | + "engines": { | ||
330 | + "node": ">= 0.10" | ||
331 | + } | ||
332 | + }, | ||
333 | + "node_modules/media-typer": { | ||
334 | + "version": "0.3.0", | ||
335 | + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||
336 | + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", | ||
337 | + "engines": { | ||
338 | + "node": ">= 0.6" | ||
339 | + } | ||
340 | + }, | ||
341 | + "node_modules/merge-descriptors": { | ||
342 | + "version": "1.0.1", | ||
343 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||
344 | + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" | ||
345 | + }, | ||
346 | + "node_modules/methods": { | ||
347 | + "version": "1.1.2", | ||
348 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | ||
349 | + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", | ||
350 | + "engines": { | ||
351 | + "node": ">= 0.6" | ||
352 | + } | ||
353 | + }, | ||
354 | + "node_modules/mime": { | ||
355 | + "version": "1.6.0", | ||
356 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", | ||
357 | + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", | ||
358 | + "bin": { | ||
359 | + "mime": "cli.js" | ||
360 | + }, | ||
361 | + "engines": { | ||
362 | + "node": ">=4" | ||
363 | + } | ||
364 | + }, | ||
365 | + "node_modules/mime-db": { | ||
366 | + "version": "1.52.0", | ||
367 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", | ||
368 | + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", | ||
369 | + "engines": { | ||
370 | + "node": ">= 0.6" | ||
371 | + } | ||
372 | + }, | ||
373 | + "node_modules/mime-types": { | ||
374 | + "version": "2.1.35", | ||
375 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", | ||
376 | + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", | ||
377 | + "dependencies": { | ||
378 | + "mime-db": "1.52.0" | ||
379 | + }, | ||
380 | + "engines": { | ||
381 | + "node": ">= 0.6" | ||
382 | + } | ||
383 | + }, | ||
384 | + "node_modules/morgan": { | ||
385 | + "version": "1.10.0", | ||
386 | + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", | ||
387 | + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", | ||
388 | + "dependencies": { | ||
389 | + "basic-auth": "~2.0.1", | ||
390 | + "debug": "2.6.9", | ||
391 | + "depd": "~2.0.0", | ||
392 | + "on-finished": "~2.3.0", | ||
393 | + "on-headers": "~1.0.2" | ||
394 | + }, | ||
395 | + "engines": { | ||
396 | + "node": ">= 0.8.0" | ||
397 | + } | ||
398 | + }, | ||
399 | + "node_modules/morgan/node_modules/on-finished": { | ||
400 | + "version": "2.3.0", | ||
401 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
402 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
403 | + "dependencies": { | ||
404 | + "ee-first": "1.1.1" | ||
405 | + }, | ||
406 | + "engines": { | ||
407 | + "node": ">= 0.8" | ||
408 | + } | ||
409 | + }, | ||
410 | + "node_modules/ms": { | ||
411 | + "version": "2.0.0", | ||
412 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
413 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||
414 | + }, | ||
415 | + "node_modules/negotiator": { | ||
416 | + "version": "0.6.3", | ||
417 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | ||
418 | + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", | ||
419 | + "engines": { | ||
420 | + "node": ">= 0.6" | ||
421 | + } | ||
422 | + }, | ||
423 | + "node_modules/object-inspect": { | ||
424 | + "version": "1.12.1", | ||
425 | + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", | ||
426 | + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==", | ||
427 | + "funding": { | ||
428 | + "url": "https://github.com/sponsors/ljharb" | ||
429 | + } | ||
430 | + }, | ||
431 | + "node_modules/on-finished": { | ||
432 | + "version": "2.4.1", | ||
433 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", | ||
434 | + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", | ||
435 | + "dependencies": { | ||
436 | + "ee-first": "1.1.1" | ||
437 | + }, | ||
438 | + "engines": { | ||
439 | + "node": ">= 0.8" | ||
440 | + } | ||
441 | + }, | ||
442 | + "node_modules/on-headers": { | ||
443 | + "version": "1.0.2", | ||
444 | + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", | ||
445 | + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", | ||
446 | + "engines": { | ||
447 | + "node": ">= 0.8" | ||
448 | + } | ||
449 | + }, | ||
450 | + "node_modules/parseurl": { | ||
451 | + "version": "1.3.3", | ||
452 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", | ||
453 | + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", | ||
454 | + "engines": { | ||
455 | + "node": ">= 0.8" | ||
456 | + } | ||
457 | + }, | ||
458 | + "node_modules/path-to-regexp": { | ||
459 | + "version": "0.1.7", | ||
460 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||
461 | + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" | ||
462 | + }, | ||
463 | + "node_modules/proxy-addr": { | ||
464 | + "version": "2.0.7", | ||
465 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||
466 | + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", | ||
467 | + "dependencies": { | ||
468 | + "forwarded": "0.2.0", | ||
469 | + "ipaddr.js": "1.9.1" | ||
470 | + }, | ||
471 | + "engines": { | ||
472 | + "node": ">= 0.10" | ||
473 | + } | ||
474 | + }, | ||
475 | + "node_modules/qs": { | ||
476 | + "version": "6.10.3", | ||
477 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", | ||
478 | + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", | ||
479 | + "dependencies": { | ||
480 | + "side-channel": "^1.0.4" | ||
481 | + }, | ||
482 | + "engines": { | ||
483 | + "node": ">=0.6" | ||
484 | + }, | ||
485 | + "funding": { | ||
486 | + "url": "https://github.com/sponsors/ljharb" | ||
487 | + } | ||
488 | + }, | ||
489 | + "node_modules/range-parser": { | ||
490 | + "version": "1.2.1", | ||
491 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", | ||
492 | + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", | ||
493 | + "engines": { | ||
494 | + "node": ">= 0.6" | ||
495 | + } | ||
496 | + }, | ||
497 | + "node_modules/raw-body": { | ||
498 | + "version": "2.5.1", | ||
499 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", | ||
500 | + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", | ||
501 | + "dependencies": { | ||
502 | + "bytes": "3.1.2", | ||
503 | + "http-errors": "2.0.0", | ||
504 | + "iconv-lite": "0.4.24", | ||
505 | + "unpipe": "1.0.0" | ||
506 | + }, | ||
507 | + "engines": { | ||
508 | + "node": ">= 0.8" | ||
509 | + } | ||
510 | + }, | ||
511 | + "node_modules/safe-buffer": { | ||
512 | + "version": "5.2.1", | ||
513 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||
514 | + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", | ||
515 | + "funding": [ | ||
516 | + { | ||
517 | + "type": "github", | ||
518 | + "url": "https://github.com/sponsors/feross" | ||
519 | + }, | ||
520 | + { | ||
521 | + "type": "patreon", | ||
522 | + "url": "https://www.patreon.com/feross" | ||
523 | + }, | ||
524 | + { | ||
525 | + "type": "consulting", | ||
526 | + "url": "https://feross.org/support" | ||
527 | + } | ||
528 | + ] | ||
529 | + }, | ||
530 | + "node_modules/safer-buffer": { | ||
531 | + "version": "2.1.2", | ||
532 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
533 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
534 | + }, | ||
535 | + "node_modules/send": { | ||
536 | + "version": "0.18.0", | ||
537 | + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", | ||
538 | + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", | ||
539 | + "dependencies": { | ||
540 | + "debug": "2.6.9", | ||
541 | + "depd": "2.0.0", | ||
542 | + "destroy": "1.2.0", | ||
543 | + "encodeurl": "~1.0.2", | ||
544 | + "escape-html": "~1.0.3", | ||
545 | + "etag": "~1.8.1", | ||
546 | + "fresh": "0.5.2", | ||
547 | + "http-errors": "2.0.0", | ||
548 | + "mime": "1.6.0", | ||
549 | + "ms": "2.1.3", | ||
550 | + "on-finished": "2.4.1", | ||
551 | + "range-parser": "~1.2.1", | ||
552 | + "statuses": "2.0.1" | ||
553 | + }, | ||
554 | + "engines": { | ||
555 | + "node": ">= 0.8.0" | ||
556 | + } | ||
557 | + }, | ||
558 | + "node_modules/send/node_modules/ms": { | ||
559 | + "version": "2.1.3", | ||
560 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
561 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
562 | + }, | ||
563 | + "node_modules/serve-static": { | ||
564 | + "version": "1.15.0", | ||
565 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", | ||
566 | + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", | ||
567 | + "dependencies": { | ||
568 | + "encodeurl": "~1.0.2", | ||
569 | + "escape-html": "~1.0.3", | ||
570 | + "parseurl": "~1.3.3", | ||
571 | + "send": "0.18.0" | ||
572 | + }, | ||
573 | + "engines": { | ||
574 | + "node": ">= 0.8.0" | ||
575 | + } | ||
576 | + }, | ||
577 | + "node_modules/setprototypeof": { | ||
578 | + "version": "1.2.0", | ||
579 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", | ||
580 | + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" | ||
581 | + }, | ||
582 | + "node_modules/side-channel": { | ||
583 | + "version": "1.0.4", | ||
584 | + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", | ||
585 | + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", | ||
586 | + "dependencies": { | ||
587 | + "call-bind": "^1.0.0", | ||
588 | + "get-intrinsic": "^1.0.2", | ||
589 | + "object-inspect": "^1.9.0" | ||
590 | + }, | ||
591 | + "funding": { | ||
592 | + "url": "https://github.com/sponsors/ljharb" | ||
593 | + } | ||
594 | + }, | ||
595 | + "node_modules/statuses": { | ||
596 | + "version": "2.0.1", | ||
597 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | ||
598 | + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", | ||
599 | + "engines": { | ||
600 | + "node": ">= 0.8" | ||
601 | + } | ||
602 | + }, | ||
603 | + "node_modules/toidentifier": { | ||
604 | + "version": "1.0.1", | ||
605 | + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | ||
606 | + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", | ||
607 | + "engines": { | ||
608 | + "node": ">=0.6" | ||
609 | + } | ||
610 | + }, | ||
611 | + "node_modules/type-is": { | ||
612 | + "version": "1.6.18", | ||
613 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", | ||
614 | + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", | ||
615 | + "dependencies": { | ||
616 | + "media-typer": "0.3.0", | ||
617 | + "mime-types": "~2.1.24" | ||
618 | + }, | ||
619 | + "engines": { | ||
620 | + "node": ">= 0.6" | ||
621 | + } | ||
622 | + }, | ||
623 | + "node_modules/unpipe": { | ||
624 | + "version": "1.0.0", | ||
625 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||
626 | + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", | ||
627 | + "engines": { | ||
628 | + "node": ">= 0.8" | ||
629 | + } | ||
630 | + }, | ||
631 | + "node_modules/utils-merge": { | ||
632 | + "version": "1.0.1", | ||
633 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||
634 | + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", | ||
635 | + "engines": { | ||
636 | + "node": ">= 0.4.0" | ||
637 | + } | ||
638 | + }, | ||
639 | + "node_modules/vary": { | ||
640 | + "version": "1.1.2", | ||
641 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | ||
642 | + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", | ||
643 | + "engines": { | ||
644 | + "node": ">= 0.8" | ||
645 | + } | ||
646 | + } | ||
647 | + }, | ||
648 | + "dependencies": { | ||
649 | + "accepts": { | ||
650 | + "version": "1.3.8", | ||
651 | + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", | ||
652 | + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", | ||
653 | + "requires": { | ||
654 | + "mime-types": "~2.1.34", | ||
655 | + "negotiator": "0.6.3" | ||
656 | + } | ||
657 | + }, | ||
658 | + "array-flatten": { | ||
659 | + "version": "1.1.1", | ||
660 | + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", | ||
661 | + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" | ||
662 | + }, | ||
663 | + "basic-auth": { | ||
664 | + "version": "2.0.1", | ||
665 | + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", | ||
666 | + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", | ||
667 | + "requires": { | ||
668 | + "safe-buffer": "5.1.2" | ||
669 | + }, | ||
670 | + "dependencies": { | ||
671 | + "safe-buffer": { | ||
672 | + "version": "5.1.2", | ||
673 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
674 | + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" | ||
675 | + } | ||
676 | + } | ||
677 | + }, | ||
678 | + "body-parser": { | ||
679 | + "version": "1.20.0", | ||
680 | + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", | ||
681 | + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", | ||
682 | + "requires": { | ||
683 | + "bytes": "3.1.2", | ||
684 | + "content-type": "~1.0.4", | ||
685 | + "debug": "2.6.9", | ||
686 | + "depd": "2.0.0", | ||
687 | + "destroy": "1.2.0", | ||
688 | + "http-errors": "2.0.0", | ||
689 | + "iconv-lite": "0.4.24", | ||
690 | + "on-finished": "2.4.1", | ||
691 | + "qs": "6.10.3", | ||
692 | + "raw-body": "2.5.1", | ||
693 | + "type-is": "~1.6.18", | ||
694 | + "unpipe": "1.0.0" | ||
695 | + } | ||
696 | + }, | ||
697 | + "bytes": { | ||
698 | + "version": "3.1.2", | ||
699 | + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", | ||
700 | + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" | ||
701 | + }, | ||
702 | + "call-bind": { | ||
703 | + "version": "1.0.2", | ||
704 | + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", | ||
705 | + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | ||
706 | + "requires": { | ||
707 | + "function-bind": "^1.1.1", | ||
708 | + "get-intrinsic": "^1.0.2" | ||
709 | + } | ||
710 | + }, | ||
711 | + "content-disposition": { | ||
712 | + "version": "0.5.4", | ||
713 | + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", | ||
714 | + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", | ||
715 | + "requires": { | ||
716 | + "safe-buffer": "5.2.1" | ||
717 | + } | ||
718 | + }, | ||
719 | + "content-type": { | ||
720 | + "version": "1.0.4", | ||
721 | + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", | ||
722 | + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" | ||
723 | + }, | ||
724 | + "cookie": { | ||
725 | + "version": "0.5.0", | ||
726 | + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", | ||
727 | + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" | ||
728 | + }, | ||
729 | + "cookie-signature": { | ||
730 | + "version": "1.0.6", | ||
731 | + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", | ||
732 | + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" | ||
733 | + }, | ||
734 | + "debug": { | ||
735 | + "version": "2.6.9", | ||
736 | + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | ||
737 | + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", | ||
738 | + "requires": { | ||
739 | + "ms": "2.0.0" | ||
740 | + } | ||
741 | + }, | ||
742 | + "depd": { | ||
743 | + "version": "2.0.0", | ||
744 | + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", | ||
745 | + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" | ||
746 | + }, | ||
747 | + "destroy": { | ||
748 | + "version": "1.2.0", | ||
749 | + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", | ||
750 | + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" | ||
751 | + }, | ||
752 | + "ee-first": { | ||
753 | + "version": "1.1.1", | ||
754 | + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", | ||
755 | + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" | ||
756 | + }, | ||
757 | + "encodeurl": { | ||
758 | + "version": "1.0.2", | ||
759 | + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", | ||
760 | + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" | ||
761 | + }, | ||
762 | + "escape-html": { | ||
763 | + "version": "1.0.3", | ||
764 | + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", | ||
765 | + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" | ||
766 | + }, | ||
767 | + "etag": { | ||
768 | + "version": "1.8.1", | ||
769 | + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", | ||
770 | + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" | ||
771 | + }, | ||
772 | + "express": { | ||
773 | + "version": "4.18.1", | ||
774 | + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", | ||
775 | + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", | ||
776 | + "requires": { | ||
777 | + "accepts": "~1.3.8", | ||
778 | + "array-flatten": "1.1.1", | ||
779 | + "body-parser": "1.20.0", | ||
780 | + "content-disposition": "0.5.4", | ||
781 | + "content-type": "~1.0.4", | ||
782 | + "cookie": "0.5.0", | ||
783 | + "cookie-signature": "1.0.6", | ||
784 | + "debug": "2.6.9", | ||
785 | + "depd": "2.0.0", | ||
786 | + "encodeurl": "~1.0.2", | ||
787 | + "escape-html": "~1.0.3", | ||
788 | + "etag": "~1.8.1", | ||
789 | + "finalhandler": "1.2.0", | ||
790 | + "fresh": "0.5.2", | ||
791 | + "http-errors": "2.0.0", | ||
792 | + "merge-descriptors": "1.0.1", | ||
793 | + "methods": "~1.1.2", | ||
794 | + "on-finished": "2.4.1", | ||
795 | + "parseurl": "~1.3.3", | ||
796 | + "path-to-regexp": "0.1.7", | ||
797 | + "proxy-addr": "~2.0.7", | ||
798 | + "qs": "6.10.3", | ||
799 | + "range-parser": "~1.2.1", | ||
800 | + "safe-buffer": "5.2.1", | ||
801 | + "send": "0.18.0", | ||
802 | + "serve-static": "1.15.0", | ||
803 | + "setprototypeof": "1.2.0", | ||
804 | + "statuses": "2.0.1", | ||
805 | + "type-is": "~1.6.18", | ||
806 | + "utils-merge": "1.0.1", | ||
807 | + "vary": "~1.1.2" | ||
808 | + } | ||
809 | + }, | ||
810 | + "finalhandler": { | ||
811 | + "version": "1.2.0", | ||
812 | + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", | ||
813 | + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", | ||
814 | + "requires": { | ||
815 | + "debug": "2.6.9", | ||
816 | + "encodeurl": "~1.0.2", | ||
817 | + "escape-html": "~1.0.3", | ||
818 | + "on-finished": "2.4.1", | ||
819 | + "parseurl": "~1.3.3", | ||
820 | + "statuses": "2.0.1", | ||
821 | + "unpipe": "~1.0.0" | ||
822 | + } | ||
823 | + }, | ||
824 | + "forwarded": { | ||
825 | + "version": "0.2.0", | ||
826 | + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", | ||
827 | + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" | ||
828 | + }, | ||
829 | + "fresh": { | ||
830 | + "version": "0.5.2", | ||
831 | + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", | ||
832 | + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" | ||
833 | + }, | ||
834 | + "function-bind": { | ||
835 | + "version": "1.1.1", | ||
836 | + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||
837 | + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" | ||
838 | + }, | ||
839 | + "get-intrinsic": { | ||
840 | + "version": "1.1.1", | ||
841 | + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | ||
842 | + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | ||
843 | + "requires": { | ||
844 | + "function-bind": "^1.1.1", | ||
845 | + "has": "^1.0.3", | ||
846 | + "has-symbols": "^1.0.1" | ||
847 | + } | ||
848 | + }, | ||
849 | + "has": { | ||
850 | + "version": "1.0.3", | ||
851 | + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||
852 | + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||
853 | + "requires": { | ||
854 | + "function-bind": "^1.1.1" | ||
855 | + } | ||
856 | + }, | ||
857 | + "has-symbols": { | ||
858 | + "version": "1.0.3", | ||
859 | + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", | ||
860 | + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" | ||
861 | + }, | ||
862 | + "http-errors": { | ||
863 | + "version": "2.0.0", | ||
864 | + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", | ||
865 | + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", | ||
866 | + "requires": { | ||
867 | + "depd": "2.0.0", | ||
868 | + "inherits": "2.0.4", | ||
869 | + "setprototypeof": "1.2.0", | ||
870 | + "statuses": "2.0.1", | ||
871 | + "toidentifier": "1.0.1" | ||
872 | + } | ||
873 | + }, | ||
874 | + "iconv-lite": { | ||
875 | + "version": "0.4.24", | ||
876 | + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", | ||
877 | + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", | ||
878 | + "requires": { | ||
879 | + "safer-buffer": ">= 2.1.2 < 3" | ||
880 | + } | ||
881 | + }, | ||
882 | + "inherits": { | ||
883 | + "version": "2.0.4", | ||
884 | + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||
885 | + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | ||
886 | + }, | ||
887 | + "ipaddr.js": { | ||
888 | + "version": "1.9.1", | ||
889 | + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", | ||
890 | + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" | ||
891 | + }, | ||
892 | + "media-typer": { | ||
893 | + "version": "0.3.0", | ||
894 | + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", | ||
895 | + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" | ||
896 | + }, | ||
897 | + "merge-descriptors": { | ||
898 | + "version": "1.0.1", | ||
899 | + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", | ||
900 | + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" | ||
901 | + }, | ||
902 | + "methods": { | ||
903 | + "version": "1.1.2", | ||
904 | + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", | ||
905 | + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" | ||
906 | + }, | ||
907 | + "mime": { | ||
908 | + "version": "1.6.0", | ||
909 | + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", | ||
910 | + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" | ||
911 | + }, | ||
912 | + "mime-db": { | ||
913 | + "version": "1.52.0", | ||
914 | + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", | ||
915 | + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" | ||
916 | + }, | ||
917 | + "mime-types": { | ||
918 | + "version": "2.1.35", | ||
919 | + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", | ||
920 | + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", | ||
921 | + "requires": { | ||
922 | + "mime-db": "1.52.0" | ||
923 | + } | ||
924 | + }, | ||
925 | + "morgan": { | ||
926 | + "version": "1.10.0", | ||
927 | + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", | ||
928 | + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", | ||
929 | + "requires": { | ||
930 | + "basic-auth": "~2.0.1", | ||
931 | + "debug": "2.6.9", | ||
932 | + "depd": "~2.0.0", | ||
933 | + "on-finished": "~2.3.0", | ||
934 | + "on-headers": "~1.0.2" | ||
935 | + }, | ||
936 | + "dependencies": { | ||
937 | + "on-finished": { | ||
938 | + "version": "2.3.0", | ||
939 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", | ||
940 | + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", | ||
941 | + "requires": { | ||
942 | + "ee-first": "1.1.1" | ||
943 | + } | ||
944 | + } | ||
945 | + } | ||
946 | + }, | ||
947 | + "ms": { | ||
948 | + "version": "2.0.0", | ||
949 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | ||
950 | + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | ||
951 | + }, | ||
952 | + "negotiator": { | ||
953 | + "version": "0.6.3", | ||
954 | + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", | ||
955 | + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" | ||
956 | + }, | ||
957 | + "object-inspect": { | ||
958 | + "version": "1.12.1", | ||
959 | + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", | ||
960 | + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==" | ||
961 | + }, | ||
962 | + "on-finished": { | ||
963 | + "version": "2.4.1", | ||
964 | + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", | ||
965 | + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", | ||
966 | + "requires": { | ||
967 | + "ee-first": "1.1.1" | ||
968 | + } | ||
969 | + }, | ||
970 | + "on-headers": { | ||
971 | + "version": "1.0.2", | ||
972 | + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", | ||
973 | + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" | ||
974 | + }, | ||
975 | + "parseurl": { | ||
976 | + "version": "1.3.3", | ||
977 | + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", | ||
978 | + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" | ||
979 | + }, | ||
980 | + "path-to-regexp": { | ||
981 | + "version": "0.1.7", | ||
982 | + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", | ||
983 | + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" | ||
984 | + }, | ||
985 | + "proxy-addr": { | ||
986 | + "version": "2.0.7", | ||
987 | + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", | ||
988 | + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", | ||
989 | + "requires": { | ||
990 | + "forwarded": "0.2.0", | ||
991 | + "ipaddr.js": "1.9.1" | ||
992 | + } | ||
993 | + }, | ||
994 | + "qs": { | ||
995 | + "version": "6.10.3", | ||
996 | + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", | ||
997 | + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", | ||
998 | + "requires": { | ||
999 | + "side-channel": "^1.0.4" | ||
1000 | + } | ||
1001 | + }, | ||
1002 | + "range-parser": { | ||
1003 | + "version": "1.2.1", | ||
1004 | + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", | ||
1005 | + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" | ||
1006 | + }, | ||
1007 | + "raw-body": { | ||
1008 | + "version": "2.5.1", | ||
1009 | + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", | ||
1010 | + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", | ||
1011 | + "requires": { | ||
1012 | + "bytes": "3.1.2", | ||
1013 | + "http-errors": "2.0.0", | ||
1014 | + "iconv-lite": "0.4.24", | ||
1015 | + "unpipe": "1.0.0" | ||
1016 | + } | ||
1017 | + }, | ||
1018 | + "safe-buffer": { | ||
1019 | + "version": "5.2.1", | ||
1020 | + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", | ||
1021 | + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" | ||
1022 | + }, | ||
1023 | + "safer-buffer": { | ||
1024 | + "version": "2.1.2", | ||
1025 | + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | ||
1026 | + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | ||
1027 | + }, | ||
1028 | + "send": { | ||
1029 | + "version": "0.18.0", | ||
1030 | + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", | ||
1031 | + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", | ||
1032 | + "requires": { | ||
1033 | + "debug": "2.6.9", | ||
1034 | + "depd": "2.0.0", | ||
1035 | + "destroy": "1.2.0", | ||
1036 | + "encodeurl": "~1.0.2", | ||
1037 | + "escape-html": "~1.0.3", | ||
1038 | + "etag": "~1.8.1", | ||
1039 | + "fresh": "0.5.2", | ||
1040 | + "http-errors": "2.0.0", | ||
1041 | + "mime": "1.6.0", | ||
1042 | + "ms": "2.1.3", | ||
1043 | + "on-finished": "2.4.1", | ||
1044 | + "range-parser": "~1.2.1", | ||
1045 | + "statuses": "2.0.1" | ||
1046 | + }, | ||
1047 | + "dependencies": { | ||
1048 | + "ms": { | ||
1049 | + "version": "2.1.3", | ||
1050 | + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", | ||
1051 | + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" | ||
1052 | + } | ||
1053 | + } | ||
1054 | + }, | ||
1055 | + "serve-static": { | ||
1056 | + "version": "1.15.0", | ||
1057 | + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", | ||
1058 | + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", | ||
1059 | + "requires": { | ||
1060 | + "encodeurl": "~1.0.2", | ||
1061 | + "escape-html": "~1.0.3", | ||
1062 | + "parseurl": "~1.3.3", | ||
1063 | + "send": "0.18.0" | ||
1064 | + } | ||
1065 | + }, | ||
1066 | + "setprototypeof": { | ||
1067 | + "version": "1.2.0", | ||
1068 | + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", | ||
1069 | + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" | ||
1070 | + }, | ||
1071 | + "side-channel": { | ||
1072 | + "version": "1.0.4", | ||
1073 | + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", | ||
1074 | + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", | ||
1075 | + "requires": { | ||
1076 | + "call-bind": "^1.0.0", | ||
1077 | + "get-intrinsic": "^1.0.2", | ||
1078 | + "object-inspect": "^1.9.0" | ||
1079 | + } | ||
1080 | + }, | ||
1081 | + "statuses": { | ||
1082 | + "version": "2.0.1", | ||
1083 | + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", | ||
1084 | + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" | ||
1085 | + }, | ||
1086 | + "toidentifier": { | ||
1087 | + "version": "1.0.1", | ||
1088 | + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", | ||
1089 | + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" | ||
1090 | + }, | ||
1091 | + "type-is": { | ||
1092 | + "version": "1.6.18", | ||
1093 | + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", | ||
1094 | + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", | ||
1095 | + "requires": { | ||
1096 | + "media-typer": "0.3.0", | ||
1097 | + "mime-types": "~2.1.24" | ||
1098 | + } | ||
1099 | + }, | ||
1100 | + "unpipe": { | ||
1101 | + "version": "1.0.0", | ||
1102 | + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", | ||
1103 | + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" | ||
1104 | + }, | ||
1105 | + "utils-merge": { | ||
1106 | + "version": "1.0.1", | ||
1107 | + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", | ||
1108 | + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" | ||
1109 | + }, | ||
1110 | + "vary": { | ||
1111 | + "version": "1.1.2", | ||
1112 | + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", | ||
1113 | + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" | ||
1114 | + } | ||
1115 | + } | ||
1116 | +} |
package.json
0 → 100644
1 | +{ | ||
2 | + "name": "example", | ||
3 | + "version": "1.0.0", | ||
4 | + "description": "", | ||
5 | + "main": "index.js", | ||
6 | + "scripts": { | ||
7 | + "start": "node index.js", | ||
8 | + "test": "echo \"Error: no test specified\" && exit 1" | ||
9 | + }, | ||
10 | + "author": "", | ||
11 | + "license": "ISC", | ||
12 | + "engines": { | ||
13 | + "node": "16.14.2", | ||
14 | + "npm": "8.5.0" | ||
15 | + }, | ||
16 | + "dependencies": { | ||
17 | + "body-parser": "^1.20.0", | ||
18 | + "express": "^4.18.1", | ||
19 | + "morgan": "^1.10.0" | ||
20 | + } | ||
21 | +} |
-
Please register or login to post a comment