Toggle navigation
Toggle navigation
This project
Loading...
Sign in
김성욱
/
Test
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
김성욱
2022-06-03 14:54:25 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
8eeb88c6ef6321f1f19bc6d095a283765f672b77
8eeb88c6
1 parent
8cf4a8e2
dafadfa
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
798 additions
and
1208 deletions
index.js
package-lock.json
package.json
index.js
View file @
8eeb88c
...
...
@@ -41,6 +41,36 @@ apiRouter.post('/sayHello', function(req, res) {
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/test'
,
(
req
,
res
)
=>
{
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'재밌는 MBTI 테스트'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"할래!"
,
message
:
"할래!"
,
blockId
:
"6294c3ecf591aa1905548230"
},
{
action
:
"block"
,
label
:
"안 할래"
,
message
:
"안 할래"
,
blockId
:
"628b7ef293b31d5b60ab4b29"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question1'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
;
...
...
@@ -53,7 +83,409 @@ apiRouter.post('/question1', (req, res) => {
outputs
:
[
{
simpleText
:
{
text
:
'금방 새로운 직장 사람들과 어울리기 시작합니다.'
text
:
'금방 새로운 직장 사람들과 어울리기 시작합니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b11ae7a0253c7662ccea"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b11ae7a0253c7662ccea"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question2'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'E'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'I'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'평소 깻잎논쟁에 대해 1시간 이상을 생각해 보는 편입니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b122ab89e678ee86b331"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b122ab89e678ee86b331"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question3'
,
function
(
req
,
res
)
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q3:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
'네'
)
{
mbti
=
'N'
;
}
else
if
(
mesg
==
'아니오'
)
{
mbti
=
'S'
;
}
userDB
[
userId
][
1
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
"simpleText"
:
{
"text"
:
"토론 시 사람들의 민감한 반응보다 보다 진실을 더 중요시해야 합니다."
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b1275ceed96c38544a08"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b1275ceed96c38544a08"
}
]
}
};
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question4'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q4:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'T'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'F'
;
}
userDB
[
userId
][
2
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
"주의깊게 미리 계획하기 보다는 즉흥적으로 움직입니다."
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b12be7a0253c7662ccec"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b12be7a0253c7662ccec"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question5'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
;
console
.
log
(
'[q1:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'P'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'J'
;
}
userDB
[
userId
][
3
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'주목받는 것을 좋아합니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b130e7a0253c7662ccee"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b130e7a0253c7662ccee"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question6'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'E'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'I'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'종종 인간 실존에 대한 이유를 생각합니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b133f591aa190554a260"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b133f591aa190554a260"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question7'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'N'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'S'
;
}
userDB
[
userId
][
1
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'어떤 일에서 성과를 냈을 때 “고생했어”보다 “잘했어”라는 말이 더 좋습니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b3505ceed96c38544a0a"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b3505ceed96c38544a0a"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question8'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
userDB
[
userId
]
=
[
''
,
''
,
''
,
''
,
''
];
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[question8]\n여행 계획을 어떻게 세우시나요?'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"테마만 정한다(ex.맛집 방문하는 날, 사진 찍는 날)"
,
message
:
"테마만 정한다(ex.맛집 방문하는 날, 사진 찍는 날)"
,
blockId
:
"629780e9e7a0253c7662cca6"
},
{
action
:
"block"
,
label
:
"시간과 장소를 자세하게 정한다"
,
message
:
"시간과 장소를 자세하게 정한다"
,
blockId
:
"629780e9e7a0253c7662cca6"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question9'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
"테마만 정한다(ex.맛집 방문하는 날, 사진 찍는 날)"
){
mbti
=
'P'
;
}
else
if
(
mesg
==
"시간과 장소를 자세하게 정한다"
)
{
mbti
=
'J'
;
}
userDB
[
userId
][
3
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[question9]\n재미있는 책이나 비디오 게임이 사교 모임보다 더 낫습니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"629780f4ab89e678ee86b2de"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"629780f4ab89e678ee86b2de"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question10'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
"네"
){
mbti
=
'I'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'E'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[question10]\n본인이 창의적이기보다 현실적인 사람이라고 생각합니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"629781015ceed96c385449c8"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"629781015ceed96c385449c8"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question11'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
"네"
){
mbti
=
'S'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'N'
;
}
userDB
[
userId
][
1
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[question11]\n팀플을 하는 경우, 충실하지만 실적을 못 내는 팀원을 제명하기 어려워합니다.'
}
}
],
...
...
@@ -62,39 +494,39 @@ apiRouter.post('/question1', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b11ae7a0253c7662ccea
"
blockId
:
"6297810fe7a0253c7662cca8
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b11ae7a0253c7662ccea
"
blockId
:
"6297810fe7a0253c7662cca8
"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
});
apiRouter
.
post
(
'/question2'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
apiRouter
.
post
(
'/question12'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
)
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'E'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'I'
;
if
(
mesg
==
"네"
){
mbti
=
'F'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'T'
;
}
userDB
[
userId
][
2
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'평소 깻잎논쟁에 대해 1시간 이상을 생각해 보는 편입
니다.'
text
:
'[question12]\n집과 업무 환경이 잘 정돈되어 있습
니다.'
}
}
],
...
...
@@ -103,39 +535,80 @@ apiRouter.post('/question2', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b122ab89e678ee86b331
"
blockId
:
"6297811bf591aa190554a22e
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b122ab89e678ee86b331
"
blockId
:
"6297811bf591aa190554a22e
"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
});
apiRouter
.
post
(
'/question3'
,
function
(
req
,
res
)
{
apiRouter
.
post
(
'/question13'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
"네"
){
mbti
=
'J'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'P'
;
}
userDB
[
userId
][
3
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[question13]\n친구 관계가 좁고 깊은 편입니다.'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"62978127ab89e678ee86b2e2"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"62978127ab89e678ee86b2e2"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question14'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q3:user message] '
,
mesg
)
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mbti
=
''
;
if
(
mesg
==
'네'
)
{
mbti
=
'N'
;
}
else
if
(
mesg
==
'아니오'
)
{
mbti
=
'S'
;
if
(
mesg
==
"네"
){
mbti
=
'I'
;
}
userDB
[
userId
][
1
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'E'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
"simpleText"
:
{
"text"
:
"토론 시 사람들의 민감한 반응보다 보다 진실을 더 중요시해야 합니다."
simpleText
:
{
text
:
'[question14]\n공부하기 싫을 때 공부는 왜 해야 하는 것인지 고민에 빠질 때가 있습니다.'
}
}
],
...
...
@@ -144,29 +617,60 @@ apiRouter.post('/question3', function(req, res) {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297
b1275ceed96c38544a08
"
blockId
:
"6297
9c9ce7a0253c7662ccd4
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297
b1275ceed96c38544a08
"
blockId
:
"6297
9c9ce7a0253c7662ccd4
"
}
]
}
};
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question15'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
userDB
[
userId
]
=
[
''
,
''
,
''
,
''
,
''
];
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[Question 15/20]\n친구: 우울해서 아이패드 샀어'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"왜ㅠㅠ무슨일 있었어?"
,
message
:
"왜ㅠㅠ무슨일 있었어?"
,
blockId
:
"6294c467e7a0253c7662acac"
},
{
action
:
"block"
,
label
:
"어떤 기종샀어?"
,
message
:
"어떤 기종샀어?"
,
blockId
:
"6294c467e7a0253c7662acac"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question
4
'
,
(
req
,
res
)
=>
{
apiRouter
.
post
(
'/question
16
'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q4:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'T'
;
}
else
if
(
mesg
==
"아니오"
)
{
if
(
mesg
==
"왜ㅠㅠ무슨일 있었어?"
)
{
mbti
=
'F'
;
}
else
if
(
mesg
==
"어떤 기종샀어?"
)
{
mbti
=
'T'
;
}
userDB
[
userId
][
2
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
...
...
@@ -176,7 +680,7 @@ apiRouter.post('/question4', (req, res) => {
outputs
:
[
{
simpleText
:
{
text
:
"주의깊게 미리 계획하기 보다는 즉흥적으로 움직입니다."
text
:
'[Question 16/20]\n이메일에 가능한 빨리 회신하려고 하고 지저분한 편지함을 참을 수 없다.'
}
}
],
...
...
@@ -185,13 +689,13 @@ apiRouter.post('/question4', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b12be7a0253c7662ccec
"
blockId
:
"6294c4755ceed96c38542a53
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b12be7a0253c7662ccec
"
blockId
:
"6294c4755ceed96c38542a53
"
}
]
}
...
...
@@ -199,15 +703,14 @@ apiRouter.post('/question4', (req, res) => {
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question
5
'
,
(
req
,
res
)
=>
{
apiRouter
.
post
(
'/question
17
'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
;
console
.
log
(
'[q1:user message] '
,
mesg
);
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'P'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'J'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'P'
;
}
userDB
[
userId
][
3
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
...
...
@@ -217,7 +720,7 @@ apiRouter.post('/question5', (req, res) => {
outputs
:
[
{
simpleText
:
{
text
:
'주목받는 것을 좋아합니
다.'
text
:
'[Question 17/20]\n당일에 갑자기 잡히는 약속이 부담스럽
다.'
}
}
],
...
...
@@ -226,13 +729,13 @@ apiRouter.post('/question5', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b130e7a0253c7662ccee
"
blockId
:
"6294c4aff591aa1905548236
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b130e7a0253c7662ccee
"
blockId
:
"6294c4aff591aa1905548236
"
}
]
}
...
...
@@ -240,15 +743,14 @@ apiRouter.post('/question5', (req, res) => {
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question
6
'
,
(
req
,
res
)
=>
{
apiRouter
.
post
(
'/question
18
'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'E'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'I'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'E'
;
}
userDB
[
userId
][
0
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
...
...
@@ -258,7 +760,7 @@ apiRouter.post('/question6', (req, res) => {
outputs
:
[
{
simpleText
:
{
text
:
'종종 인간 실존에 대한 이유를 생각합니
다.'
text
:
'[Question 18/20]\n비행기에 타기 전 만약 비행기에 테러범이 있으면 어떻게 행동할지 상상해봤
다.'
}
}
],
...
...
@@ -267,13 +769,13 @@ apiRouter.post('/question6', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b133f591aa190554a260
"
blockId
:
"6294c4c2e7a0253c7662acb1
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b133f591aa190554a260
"
blockId
:
"6294c4c2e7a0253c7662acb1
"
}
]
}
...
...
@@ -281,10 +783,9 @@ apiRouter.post('/question6', (req, res) => {
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question
7
'
,
(
req
,
res
)
=>
{
apiRouter
.
post
(
'/question
19
'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
console
.
log
(
'[q2:user message] '
,
mesg
);
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'N'
;
...
...
@@ -299,7 +800,47 @@ apiRouter.post('/question7', (req, res) => {
outputs
:
[
{
simpleText
:
{
text
:
'어떤 일에서 성과를 냈을 때 “고생했어”보다 “잘했어”라는 말이 더 좋습니다.'
text
:
'[Question 19/20]\n친구가 취업이 안돼서 힘들어하는 상황에 당신의 반응은?'
}
}
],
quickReplies
:
[
{
action
:
"block"
,
label
:
"요즘 취업 어렵지 힘들겠다ㅠㅠ"
,
message
:
"요즘 취업 어렵지 힘들겠다ㅠㅠ"
,
blockId
:
"6294c4c8e7a0253c7662acb3"
},
{
action
:
"block"
,
label
:
"무슨 준비하고있어? 이력서는 넣어봤어?"
,
message
:
"무슨 준비하고있어? 이력서는 넣어봤어?"
,
blockId
:
"6294c4c8e7a0253c7662acb3"
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/question20'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
mbti
=
''
;
if
(
mesg
==
"요즘 취업 어렵지 힘들겠다ㅠㅠ"
)
{
mbti
=
'F'
;
}
else
if
(
mesg
==
"무슨 준비하고있어? 이력서는 넣어봤어?"
)
{
mbti
=
'T'
;
}
userDB
[
userId
][
2
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'[Question 20/20]\n마지막 여행지를 향해 가던 중 흥미로운 장소를 발견했을 때, 남은 일정을 고려하는 편이다.'
}
}
],
...
...
@@ -308,13 +849,13 @@ apiRouter.post('/question7', (req, res) => {
action
:
"block"
,
label
:
"네"
,
message
:
"네"
,
blockId
:
"6297b3505ceed96c38544a0a
"
blockId
:
"6293885b7bd2fd4333583df0
"
},
{
action
:
"block"
,
label
:
"아니오"
,
message
:
"아니오"
,
blockId
:
"6297b3505ceed96c38544a0a
"
blockId
:
"6293885b7bd2fd4333583df0
"
}
]
}
...
...
@@ -334,7 +875,7 @@ apiRouter.post('/result', (req, res) => {
}
userDB
[
userId
][
2
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
result
(
userDB
);
result
(
userDB
[
userId
]
);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
...
...
@@ -439,7 +980,7 @@ function result(Array){
for
(
let
j
=
0
;
j
<
4
;
j
++
){
for
(
let
i
=
0
;
i
<
3
;
i
++
){
if
(
j
==
0
){
if
(
userDB
[
userId
]
[
j
][
i
]
==
"E"
){
if
(
Array
[
j
][
i
]
==
"E"
){
E
++
;
}
else
{
...
...
@@ -447,7 +988,7 @@ function result(Array){
}
}
else
if
(
j
==
1
){
if
(
userDB
[
userId
]
[
j
][
i
]
==
"N"
){
if
(
Array
[
j
][
i
]
==
"N"
){
N
++
;
}
else
{
...
...
@@ -455,7 +996,7 @@ function result(Array){
}
}
else
if
(
j
==
2
){
if
(
userDB
[
userId
]
[
j
][
i
]
==
"F"
){
if
(
Array
[
j
][
i
]
==
"F"
){
F
++
;
}
else
{
...
...
@@ -463,7 +1004,7 @@ function result(Array){
}
}
else
if
(
j
==
3
){
if
(
userDB
[
userId
]
[
j
][
i
]
==
"N"
){
if
(
Array
[
j
][
i
]
==
"N"
){
P
++
;
}
else
{
...
...
@@ -474,24 +1015,210 @@ function result(Array){
}
if
(
E
>
I
)
userDB
[
userId
]
[
4
]
+=
'E'
;
Array
[
4
]
+=
'E'
;
else
userDB
[
userId
]
[
4
]
+=
'I'
;
Array
[
4
]
+=
'I'
;
if
(
N
>
S
)
userDB
[
userId
]
[
4
]
+=
'N'
;
Array
[
4
]
+=
'N'
;
else
userDB
[
userId
]
[
4
]
+=
'S'
;
Array
[
4
]
+=
'S'
;
if
(
F
>
T
)
userDB
[
userId
]
[
4
]
+=
'F'
;
Array
[
4
]
+=
'F'
;
else
userDB
[
userId
]
[
4
]
+=
'T'
;
Array
[
4
]
+=
'T'
;
if
(
P
>
J
)
userDB
[
userId
]
[
4
]
+=
'P'
;
Array
[
4
]
+=
'P'
;
else
userDB
[
userId
][
4
]
+=
'J'
;
Array
[
4
]
+=
'J'
;
}
apiRouter
.
post
(
'/result'
,
(
req
,
res
)
=>
{
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
mbtiper
=
[
''
,
''
,
''
,
''
,
''
,
''
,
''
,
''
];
var
mbti
=
''
;
if
(
mesg
==
"네"
){
mbti
=
'N'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'S'
;
}
userDB
[
userId
][
1
]
+=
mbti
;
var
e
=
0
;
var
n
=
0
;
var
f
=
0
;
var
j
=
0
;
for
(
i
=
0
;
i
<
2
;
i
++
){
if
(
userDB
[
userId
][
0
][
i
]
==
"E"
){
e
++
;
}
}
for
(
i
=
0
;
i
<
2
;
i
++
){
if
(
userDB
[
userId
][
1
][
i
]
==
"N"
){
n
++
;
}
}
for
(
i
=
0
;
i
<
1
;
i
++
){
if
(
userDB
[
userId
][
2
][
i
]
==
"F"
){
f
++
;
}
}
for
(
i
=
0
;
i
<
2
;
i
++
){
if
(
userDB
[
userId
][
3
][
i
]
==
"J"
){
j
++
;
}
}
var
i
=
2
-
e
;
var
s
=
2
-
n
;
var
t
=
1
-
f
;
var
p
=
2
-
j
;
mbtiper
[
0
]
+=
20
*
e
;
mbtiper
[
1
]
+=
20
*
i
;
mbtiper
[
2
]
+=
20
*
n
;
mbtiper
[
3
]
+=
20
*
s
;
mbtiper
[
4
]
+=
20
*
t
;
mbtiper
[
5
]
+=
20
*
f
;
mbtiper
[
6
]
+=
20
*
j
;
mbtiper
[
7
]
+=
20
*
p
;
if
(
mbtiper
[
0
]
>
mbtiper
[
1
]){
userDB
[
userId
][
4
]
+=
'E'
;
}
else
{
userDB
[
userId
][
4
]
+=
'I'
;
}
if
(
mbtiper
[
2
]
>
mbtiper
[
3
]){
userDB
[
userId
][
4
]
+=
'N'
;
}
else
{
userDB
[
userId
][
4
]
+=
'S'
;
}
if
(
mbtiper
[
4
]
>
mbtiper
[
5
]){
userDB
[
userId
][
4
]
+=
'T'
;
}
else
{
userDB
[
userId
][
4
]
+=
'F'
;
}
if
(
mbtiper
[
6
]
>
mbtiper
[
7
]){
userDB
[
userId
][
4
]
+=
'J'
;
}
else
{
userDB
[
userId
][
4
]
+=
'P'
;
}
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
"당신의 MBTI는 : "
+
userDB
[
userId
][
4
]
}
}
],
quickReplies
:
[{
action
:
"block"
,
label
:
"MBTI 테스트 다시하기"
,
message
:
"MBTI 테스트 다시하기"
,
blockId
:
"62977ff05ceed96c385449b9"
},
{
action
:
"block"
,
label
:
"결과 상세보기"
,
message
:
"결과 상세보기"
,
blockId
:
"62987b78e7a0253c7662dcd9"
}]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/percent'
,
(
req
,
res
)
=>
{
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
'E: '
+
mbtiper
[
0
]
+
'%\nI: '
+
mbtiper
[
1
]
+
'%\nN: '
+
mbtiper
[
2
]
+
'%\nS: '
+
mbtiper
[
3
]
+
'%\nT: '
+
mbtiper
[
4
]
+
'%\nF: '
+
mbtiper
[
5
]
+
'%\nJ: '
+
mbtiper
[
6
]
+
'%\nP: '
+
mbtiper
[
7
]
+
'%'
}
}
]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
apiRouter
.
post
(
'/result'
,
(
req
,
res
)
=>
{
var
userId
=
req
.
body
.
userRequest
.
user
.
id
;
var
mesg
=
req
.
body
.
userRequest
.
utterance
;
var
mbti
=
''
;
if
(
mesg
==
"네"
)
{
mbti
=
'J'
;
}
else
if
(
mesg
==
"아니오"
)
{
mbti
=
'P'
;
}
userDB
[
userId
][
3
]
+=
mbti
;
console
.
log
(
userDB
[
userId
]);
analysis_mbti
(
userDB
[
userId
]);
const
responseBody
=
{
version
:
"2.0"
,
template
:
{
outputs
:
[
{
simpleText
:
{
text
:
"당신의 MBTI는 : "
+
userDB
[
userId
][
4
]
}
}
],
quickReplies
:
[{
action
:
"block"
,
label
:
"MBTI 테스트 다시하기"
,
message
:
"MBTI 테스트 다시하기"
,
blockId
:
"628b7ef293b31d5b60ab4b29"
//to question 1
}]
}
}
res
.
status
(
200
).
send
(
responseBody
);
});
function
analysis_mbti
(
userdb
)
{
var
e
=
count_mbti
(
userdb
[
0
],
'E'
);
var
i
=
1
-
e
;
//-> 5
var
n
=
count_mbti
(
userdb
[
1
],
'N'
);
var
s
=
1
-
n
;
//-> 5
var
f
=
count_mbti
(
userdb
[
2
],
'F'
);
var
t
=
2
-
f
;
//-> 5
var
j
=
count_mbti
(
userdb
[
3
],
'J'
);
var
p
=
2
-
j
;
//-> 5
if
(
e
>
i
)
{
userdb
[
4
]
+=
'E'
;
}
else
{
userdb
[
4
]
+=
'I'
;
}
if
(
n
>
s
)
{
userdb
[
4
]
+=
'N'
;
}
else
{
userdb
[
4
]
+=
'S'
;
}
if
(
f
>
t
)
{
userdb
[
4
]
+=
'F'
;
}
else
{
userdb
[
4
]
+=
'T'
;
}
if
(
j
>
p
)
{
userdb
[
4
]
+=
'J'
;
}
else
{
userdb
[
4
]
+=
'P'
;
}
}
function
count_mbti
(
item_list
,
mbti_ch
)
{
var
result
=
0
;
for
(
var
i
=
0
;
i
<
5
;
i
++
)
{
if
(
item_list
[
i
]
==
'mbti_ch'
){
result
+=
1
;
}
}
return
result
;
}
app
.
listen
((
process
.
env
.
PORT
||
3000
),
function
()
{
...
...
package-lock.json
deleted
100644 → 0
View file @
8cf4a8e
{
"name"
:
"example"
,
"version"
:
"1.0.0"
,
"lockfileVersion"
:
2
,
"requires"
:
true
,
"packages"
:
{
""
:
{
"name"
:
"example"
,
"version"
:
"1.0.0"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"body-parser"
:
"^1.20.0"
,
"express"
:
"^4.18.1"
,
"morgan"
:
"^1.10.0"
},
"engines"
:
{
"node"
:
"16.14.2"
,
"npm"
:
"8.5.0"
}
},
"node_modules/accepts"
:
{
"version"
:
"1.3.8"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
,
"integrity"
:
"sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
,
"dependencies"
:
{
"mime-types"
:
"~2.1.34"
,
"negotiator"
:
"0.6.3"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/basic-auth"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"
,
"integrity"
:
"sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="
,
"dependencies"
:
{
"safe-buffer"
:
"5.1.2"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/basic-auth/node_modules/safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
"integrity"
:
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/body-parser"
:
{
"version"
:
"1.20.0"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz"
,
"integrity"
:
"sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.10.3"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
"integrity"
:
"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/call-bind"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
,
"integrity"
:
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
,
"get-intrinsic"
:
"^1.0.2"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
"integrity"
:
"sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="
,
"dependencies"
:
{
"safe-buffer"
:
"5.2.1"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/content-type"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
,
"integrity"
:
"sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie"
:
{
"version"
:
"0.5.0"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
,
"integrity"
:
"sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"node_modules/debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
"integrity"
:
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
,
"dependencies"
:
{
"ms"
:
"2.0.0"
}
},
"node_modules/depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
"integrity"
:
"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/destroy"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
,
"integrity"
:
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
,
"engines"
:
{
"node"
:
">= 0.8"
,
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"node_modules/encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
"integrity"
:
"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
"integrity"
:
"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"node_modules/etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
"integrity"
:
"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/express"
:
{
"version"
:
"4.18.1"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.18.1.tgz"
,
"integrity"
:
"sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q=="
,
"dependencies"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.20.0"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.5.0"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"1.2.0"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.10.3"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.18.0"
,
"serve-static"
:
"1.15.0"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
},
"engines"
:
{
"node"
:
">= 0.10.0"
}
},
"node_modules/finalhandler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
,
"integrity"
:
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"2.0.1"
,
"unpipe"
:
"~1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/forwarded"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
,
"integrity"
:
"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/fresh"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
"integrity"
:
"sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
,
"has"
:
"^1.0.3"
,
"has-symbols"
:
"^1.0.1"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has/-/has-1.0.3.tgz"
,
"integrity"
:
"sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
,
"dependencies"
:
{
"function-bind"
:
"^1.1.1"
},
"engines"
:
{
"node"
:
">= 0.4.0"
}
},
"node_modules/has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
,
"engines"
:
{
"node"
:
">= 0.4"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
"integrity"
:
"sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
,
"dependencies"
:
{
"depd"
:
"2.0.0"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"toidentifier"
:
"1.0.1"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
"integrity"
:
"sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
,
"dependencies"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
},
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
"integrity"
:
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
,
"engines"
:
{
"node"
:
">= 0.10"
}
},
"node_modules/media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"integrity"
:
"sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"node_modules/methods"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
,
"integrity"
:
"sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
,
"integrity"
:
"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
,
"bin"
:
{
"mime"
:
"cli.js"
},
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/mime-db"
:
{
"version"
:
"1.52.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
,
"integrity"
:
"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime-types"
:
{
"version"
:
"2.1.35"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
,
"integrity"
:
"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
,
"dependencies"
:
{
"mime-db"
:
"1.52.0"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/morgan"
:
{
"version"
:
"1.10.0"
,
"resolved"
:
"https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"
,
"integrity"
:
"sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="
,
"dependencies"
:
{
"basic-auth"
:
"~2.0.1"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~2.0.0"
,
"on-finished"
:
"~2.3.0"
,
"on-headers"
:
"~1.0.2"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/morgan/node_modules/on-finished"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
,
"integrity"
:
"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc="
,
"dependencies"
:
{
"ee-first"
:
"1.1.1"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"node_modules/negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
"integrity"
:
"sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/object-inspect"
:
{
"version"
:
"1.12.1"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz"
,
"integrity"
:
"sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA=="
,
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/on-finished"
:
{
"version"
:
"2.4.1"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
,
"integrity"
:
"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
,
"dependencies"
:
{
"ee-first"
:
"1.1.1"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/on-headers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
,
"integrity"
:
"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
"integrity"
:
"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"node_modules/proxy-addr"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
"integrity"
:
"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
,
"dependencies"
:
{
"forwarded"
:
"0.2.0"
,
"ipaddr.js"
:
"1.9.1"
},
"engines"
:
{
"node"
:
">= 0.10"
}
},
"node_modules/qs"
:
{
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
"integrity"
:
"sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ=="
,
"dependencies"
:
{
"side-channel"
:
"^1.0.4"
},
"engines"
:
{
"node"
:
">=0.6"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/raw-body"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
,
"integrity"
:
"sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig=="
,
"dependencies"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
},
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
"integrity"
:
"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
,
"funding"
:
[
{
"type"
:
"github"
,
"url"
:
"https://github.com/sponsors/feross"
},
{
"type"
:
"patreon"
,
"url"
:
"https://www.patreon.com/feross"
},
{
"type"
:
"consulting"
,
"url"
:
"https://feross.org/support"
}
]
},
"node_modules/safer-buffer"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/send"
:
{
"version"
:
"0.18.0"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.18.0.tgz"
,
"integrity"
:
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
,
"dependencies"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"2.4.1"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"2.0.1"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/send/node_modules/ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serve-static"
:
{
"version"
:
"1.15.0"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
,
"integrity"
:
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
,
"dependencies"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.18.0"
},
"engines"
:
{
"node"
:
">= 0.8.0"
}
},
"node_modules/setprototypeof"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/side-channel"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
,
"integrity"
:
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
,
"dependencies"
:
{
"call-bind"
:
"^1.0.0"
,
"get-intrinsic"
:
"^1.0.2"
,
"object-inspect"
:
"^1.9.0"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/statuses"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/toidentifier"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
,
"integrity"
:
"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
,
"engines"
:
{
"node"
:
">=0.6"
}
},
"node_modules/type-is"
:
{
"version"
:
"1.6.18"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
,
"integrity"
:
"sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
,
"dependencies"
:
{
"media-typer"
:
"0.3.0"
,
"mime-types"
:
"~2.1.24"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
,
"engines"
:
{
"node"
:
">= 0.8"
}
},
"node_modules/utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
"integrity"
:
"sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
,
"engines"
:
{
"node"
:
">= 0.4.0"
}
},
"node_modules/vary"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
,
"engines"
:
{
"node"
:
">= 0.8"
}
}
},
"dependencies"
:
{
"accepts"
:
{
"version"
:
"1.3.8"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz"
,
"integrity"
:
"sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="
,
"requires"
:
{
"mime-types"
:
"~2.1.34"
,
"negotiator"
:
"0.6.3"
}
},
"array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
"integrity"
:
"sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"basic-auth"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"
,
"integrity"
:
"sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="
,
"requires"
:
{
"safe-buffer"
:
"5.1.2"
},
"dependencies"
:
{
"safe-buffer"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
"integrity"
:
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"body-parser"
:
{
"version"
:
"1.20.0"
,
"resolved"
:
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz"
,
"integrity"
:
"sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"content-type"
:
"~1.0.4"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"on-finished"
:
"2.4.1"
,
"qs"
:
"6.10.3"
,
"raw-body"
:
"2.5.1"
,
"type-is"
:
"~1.6.18"
,
"unpipe"
:
"1.0.0"
}
},
"bytes"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
,
"integrity"
:
"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"call-bind"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
,
"integrity"
:
"sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"get-intrinsic"
:
"^1.0.2"
}
},
"content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
"integrity"
:
"sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ=="
,
"requires"
:
{
"safe-buffer"
:
"5.2.1"
}
},
"content-type"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"
,
"integrity"
:
"sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"cookie"
:
{
"version"
:
"0.5.0"
,
"resolved"
:
"https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz"
,
"integrity"
:
"sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
"cookie-signature"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
,
"integrity"
:
"sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"debug"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
,
"integrity"
:
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="
,
"requires"
:
{
"ms"
:
"2.0.0"
}
},
"depd"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"
,
"integrity"
:
"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
,
"integrity"
:
"sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
"integrity"
:
"sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
"integrity"
:
"sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"escape-html"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
,
"integrity"
:
"sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"etag"
:
{
"version"
:
"1.8.1"
,
"resolved"
:
"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
,
"integrity"
:
"sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express"
:
{
"version"
:
"4.18.1"
,
"resolved"
:
"https://registry.npmjs.org/express/-/express-4.18.1.tgz"
,
"integrity"
:
"sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q=="
,
"requires"
:
{
"accepts"
:
"~1.3.8"
,
"array-flatten"
:
"1.1.1"
,
"body-parser"
:
"1.20.0"
,
"content-disposition"
:
"0.5.4"
,
"content-type"
:
"~1.0.4"
,
"cookie"
:
"0.5.0"
,
"cookie-signature"
:
"1.0.6"
,
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"finalhandler"
:
"1.2.0"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"merge-descriptors"
:
"1.0.1"
,
"methods"
:
"~1.1.2"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"path-to-regexp"
:
"0.1.7"
,
"proxy-addr"
:
"~2.0.7"
,
"qs"
:
"6.10.3"
,
"range-parser"
:
"~1.2.1"
,
"safe-buffer"
:
"5.2.1"
,
"send"
:
"0.18.0"
,
"serve-static"
:
"1.15.0"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"type-is"
:
"~1.6.18"
,
"utils-merge"
:
"1.0.1"
,
"vary"
:
"~1.1.2"
}
},
"finalhandler"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz"
,
"integrity"
:
"sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"on-finished"
:
"2.4.1"
,
"parseurl"
:
"~1.3.3"
,
"statuses"
:
"2.0.1"
,
"unpipe"
:
"~1.0.0"
}
},
"forwarded"
:
{
"version"
:
"0.2.0"
,
"resolved"
:
"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
,
"integrity"
:
"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fresh"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
,
"integrity"
:
"sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
"integrity"
:
"sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
,
"has"
:
"^1.0.3"
,
"has-symbols"
:
"^1.0.1"
}
},
"has"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has/-/has-1.0.3.tgz"
,
"integrity"
:
"sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw=="
,
"requires"
:
{
"function-bind"
:
"^1.1.1"
}
},
"has-symbols"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
,
"integrity"
:
"sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
"integrity"
:
"sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="
,
"requires"
:
{
"depd"
:
"2.0.0"
,
"inherits"
:
"2.0.4"
,
"setprototypeof"
:
"1.2.0"
,
"statuses"
:
"2.0.1"
,
"toidentifier"
:
"1.0.1"
}
},
"iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
"integrity"
:
"sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="
,
"requires"
:
{
"safer-buffer"
:
">= 2.1.2 < 3"
}
},
"inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
"integrity"
:
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ipaddr.js"
:
{
"version"
:
"1.9.1"
,
"resolved"
:
"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
,
"integrity"
:
"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"integrity"
:
"sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
,
"integrity"
:
"sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"mime"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
,
"integrity"
:
"sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db"
:
{
"version"
:
"1.52.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz"
,
"integrity"
:
"sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types"
:
{
"version"
:
"2.1.35"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz"
,
"integrity"
:
"sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="
,
"requires"
:
{
"mime-db"
:
"1.52.0"
}
},
"morgan"
:
{
"version"
:
"1.10.0"
,
"resolved"
:
"https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"
,
"integrity"
:
"sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="
,
"requires"
:
{
"basic-auth"
:
"~2.0.1"
,
"debug"
:
"2.6.9"
,
"depd"
:
"~2.0.0"
,
"on-finished"
:
"~2.3.0"
,
"on-headers"
:
"~1.0.2"
},
"dependencies"
:
{
"on-finished"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"
,
"integrity"
:
"sha1-IPEzZIGwg811M3mSoWlxqi2QaUc="
,
"requires"
:
{
"ee-first"
:
"1.1.1"
}
}
}
},
"ms"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
,
"integrity"
:
"sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"negotiator"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
,
"integrity"
:
"sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"object-inspect"
:
{
"version"
:
"1.12.1"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz"
,
"integrity"
:
"sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA=="
},
"on-finished"
:
{
"version"
:
"2.4.1"
,
"resolved"
:
"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
,
"integrity"
:
"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="
,
"requires"
:
{
"ee-first"
:
"1.1.1"
}
},
"on-headers"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"
,
"integrity"
:
"sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
},
"parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
"integrity"
:
"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
"integrity"
:
"sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"proxy-addr"
:
{
"version"
:
"2.0.7"
,
"resolved"
:
"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
,
"integrity"
:
"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
,
"requires"
:
{
"forwarded"
:
"0.2.0"
,
"ipaddr.js"
:
"1.9.1"
}
},
"qs"
:
{
"version"
:
"6.10.3"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.3.tgz"
,
"integrity"
:
"sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ=="
,
"requires"
:
{
"side-channel"
:
"^1.0.4"
}
},
"range-parser"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"
,
"integrity"
:
"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz"
,
"integrity"
:
"sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig=="
,
"requires"
:
{
"bytes"
:
"3.1.2"
,
"http-errors"
:
"2.0.0"
,
"iconv-lite"
:
"0.4.24"
,
"unpipe"
:
"1.0.0"
}
},
"safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
"integrity"
:
"sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safer-buffer"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
,
"integrity"
:
"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"send"
:
{
"version"
:
"0.18.0"
,
"resolved"
:
"https://registry.npmjs.org/send/-/send-0.18.0.tgz"
,
"integrity"
:
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg=="
,
"requires"
:
{
"debug"
:
"2.6.9"
,
"depd"
:
"2.0.0"
,
"destroy"
:
"1.2.0"
,
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"etag"
:
"~1.8.1"
,
"fresh"
:
"0.5.2"
,
"http-errors"
:
"2.0.0"
,
"mime"
:
"1.6.0"
,
"ms"
:
"2.1.3"
,
"on-finished"
:
"2.4.1"
,
"range-parser"
:
"~1.2.1"
,
"statuses"
:
"2.0.1"
},
"dependencies"
:
{
"ms"
:
{
"version"
:
"2.1.3"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
,
"integrity"
:
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serve-static"
:
{
"version"
:
"1.15.0"
,
"resolved"
:
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz"
,
"integrity"
:
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g=="
,
"requires"
:
{
"encodeurl"
:
"~1.0.2"
,
"escape-html"
:
"~1.0.3"
,
"parseurl"
:
"~1.3.3"
,
"send"
:
"0.18.0"
}
},
"setprototypeof"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
"integrity"
:
"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"side-channel"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
,
"integrity"
:
"sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw=="
,
"requires"
:
{
"call-bind"
:
"^1.0.0"
,
"get-intrinsic"
:
"^1.0.2"
,
"object-inspect"
:
"^1.9.0"
}
},
"statuses"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz"
,
"integrity"
:
"sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"toidentifier"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
,
"integrity"
:
"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"type-is"
:
{
"version"
:
"1.6.18"
,
"resolved"
:
"https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
,
"integrity"
:
"sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="
,
"requires"
:
{
"media-typer"
:
"0.3.0"
,
"mime-types"
:
"~2.1.24"
}
},
"unpipe"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
,
"integrity"
:
"sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"utils-merge"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
,
"integrity"
:
"sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"vary"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
}
}
}
package.json
deleted
100644 → 0
View file @
8cf4a8e
{
"name"
:
"example"
,
"version"
:
"1.0.0"
,
"description"
:
""
,
"main"
:
"index.js"
,
"scripts"
:
{
"start"
:
"node index.js"
,
"test"
:
"echo
\"
Error: no test specified
\"
&& exit 1"
},
"author"
:
""
,
"license"
:
"ISC"
,
"engines"
:
{
"node"
:
"16.14.2"
,
"npm"
:
"8.5.0"
},
"dependencies"
:
{
"body-parser"
:
"^1.20.0"
,
"express"
:
"^4.18.1"
,
"morgan"
:
"^1.10.0"
}
}
Please
register
or
login
to post a comment