송용우

Merge commit '24bb25e9' into develop

...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
27 | friend | 유저 친구 등록 | POST | api/friend | 바로가기 | JWT Token | 27 | friend | 유저 친구 등록 | POST | api/friend | 바로가기 | JWT Token |
28 | friend | 유저의 친구 조회 | GET | api/friend:id | 바로가기 | None | 28 | friend | 유저의 친구 조회 | GET | api/friend:id | 바로가기 | None |
29 | profile | 유저가 푼 문제 조회 | GET | api/profile/solved:id | 바로가기 | None | 29 | profile | 유저가 푼 문제 조회 | GET | api/profile/solved:id | 바로가기 | None |
30 +| profile | 유저가 푼 문제 동기화 | Update | api/profile/solved:id | 바로가기 | None |
30 | profile | 유저가 푼 문제 개수 조회 | GET | api/profile/solvednum:id | 바로가기 | None | 31 | profile | 유저가 푼 문제 개수 조회 | GET | api/profile/solvednum:id | 바로가기 | None |
31 | profile | 추천 문제 조회 | GET | api/profile/recommendps:id | 바로가기 | None | 32 | profile | 추천 문제 조회 | GET | api/profile/recommendps:id | 바로가기 | None |
32 | notify | 슬랙 메시지 전송 요청 | POST | api/notify/slack | 바로가기 | Jwt Token | 33 | notify | 슬랙 메시지 전송 요청 | POST | api/notify/slack | 바로가기 | Jwt Token |
......
1 -const express = require("express"); 1 +const Koa = require("koa");
2 -const morgan = require("morgan"); 2 +const Router = require("koa-router");
3 +const bodyParser = require("koa-bodyparser");
3 const mongoose = require("mongoose"); 4 const mongoose = require("mongoose");
4 -const app = express();
5 -const bodyParser = require("body-parser");
6 -const api = require("./src/api");
7 const jwtMiddleware = require("./src/lib/jwtMiddleware"); 5 const jwtMiddleware = require("./src/lib/jwtMiddleware");
6 +const app = new Koa();
7 +const router = new Router();
8 require("dotenv").config(); 8 require("dotenv").config();
9 -const { SERVER_PORT, MONGO_URL } = process.env;
10 -app.use(morgan("dev"));
11 -app.use(express.json());
12 -app.use(express.urlencoded({ extended: false }));
13 app.use(bodyParser()); 9 app.use(bodyParser());
14 app.use(jwtMiddleware); 10 app.use(jwtMiddleware);
11 +const api = require("./src/api");
12 +const { SERVER_PORT, MONGO_URL } = process.env;
13 +
14 +router.use("/api", api.routes());
15 +app.use(router.routes()).use(router.allowedMethods());
15 16
16 -app.use("/api", api);
17 mongoose 17 mongoose
18 - .connect(MONGO_URL, { useNewUrlParser: true, useFindAndModify: false }) 18 + .connect(MONGO_URL, {
19 + useNewUrlParser: true,
20 + useFindAndModify: false,
21 + useUnifiedTopology: true,
22 + })
19 .then(() => { 23 .then(() => {
20 console.log("Connected to MongoDB"); 24 console.log("Connected to MongoDB");
21 }) 25 })
......
...@@ -285,6 +285,11 @@ ...@@ -285,6 +285,11 @@
285 "color-convert": "^1.9.0" 285 "color-convert": "^1.9.0"
286 } 286 }
287 }, 287 },
288 + "any-promise": {
289 + "version": "1.3.0",
290 + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
291 + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
292 + },
288 "anymatch": { 293 "anymatch": {
289 "version": "3.1.1", 294 "version": "3.1.1",
290 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 295 "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
...@@ -318,11 +323,6 @@ ...@@ -318,11 +323,6 @@
318 "sprintf-js": "~1.0.2" 323 "sprintf-js": "~1.0.2"
319 } 324 }
320 }, 325 },
321 - "array-flatten": {
322 - "version": "1.1.1",
323 - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
324 - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
325 - },
326 "astral-regex": { 326 "astral-regex": {
327 "version": "1.0.0", 327 "version": "1.0.0",
328 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 328 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
...@@ -393,6 +393,23 @@ ...@@ -393,6 +393,23 @@
393 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", 393 "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
394 "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" 394 "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
395 }, 395 },
396 + "body-parser": {
397 + "version": "1.19.0",
398 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
399 + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
400 + "requires": {
401 + "bytes": "3.1.0",
402 + "content-type": "~1.0.4",
403 + "debug": "2.6.9",
404 + "depd": "~1.1.2",
405 + "http-errors": "1.7.2",
406 + "iconv-lite": "0.4.24",
407 + "on-finished": "~2.3.0",
408 + "qs": "6.7.0",
409 + "raw-body": "2.4.0",
410 + "type-is": "~1.6.17"
411 + }
412 + },
396 "boolbase": { 413 "boolbase": {
397 "version": "1.0.0", 414 "version": "1.0.0",
398 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", 415 "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
...@@ -447,6 +464,15 @@ ...@@ -447,6 +464,15 @@
447 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 464 "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
448 "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 465 "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
449 }, 466 },
467 + "cache-content-type": {
468 + "version": "1.0.1",
469 + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
470 + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
471 + "requires": {
472 + "mime-types": "^2.1.18",
473 + "ylru": "^1.2.0"
474 + }
475 + },
450 "cacheable-request": { 476 "cacheable-request": {
451 "version": "6.1.0", 477 "version": "6.1.0",
452 "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 478 "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
...@@ -619,6 +645,11 @@ ...@@ -619,6 +645,11 @@
619 "mimic-response": "^1.0.0" 645 "mimic-response": "^1.0.0"
620 } 646 }
621 }, 647 },
648 + "co": {
649 + "version": "4.6.0",
650 + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
651 + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
652 + },
622 "code-point-at": { 653 "code-point-at": {
623 "version": "1.1.0", 654 "version": "1.1.0",
624 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 655 "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
...@@ -681,11 +712,41 @@ ...@@ -681,11 +712,41 @@
681 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 712 "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
682 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 713 "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
683 }, 714 },
715 + "cookie-parser": {
716 + "version": "1.4.5",
717 + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
718 + "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
719 + "requires": {
720 + "cookie": "0.4.0",
721 + "cookie-signature": "1.0.6"
722 + }
723 + },
684 "cookie-signature": { 724 "cookie-signature": {
685 "version": "1.0.6", 725 "version": "1.0.6",
686 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 726 "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
687 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 727 "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
688 }, 728 },
729 + "cookies": {
730 + "version": "0.8.0",
731 + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
732 + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
733 + "requires": {
734 + "depd": "~2.0.0",
735 + "keygrip": "~1.1.0"
736 + },
737 + "dependencies": {
738 + "depd": {
739 + "version": "2.0.0",
740 + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
741 + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
742 + }
743 + }
744 + },
745 + "copy-to": {
746 + "version": "2.0.1",
747 + "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
748 + "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
749 + },
689 "core-util-is": { 750 "core-util-is": {
690 "version": "1.0.2", 751 "version": "1.0.2",
691 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 752 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
...@@ -748,6 +809,11 @@ ...@@ -748,6 +809,11 @@
748 "mimic-response": "^1.0.0" 809 "mimic-response": "^1.0.0"
749 } 810 }
750 }, 811 },
812 + "deep-equal": {
813 + "version": "1.0.1",
814 + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
815 + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
816 + },
751 "deep-extend": { 817 "deep-extend": {
752 "version": "0.6.0", 818 "version": "0.6.0",
753 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 819 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
...@@ -1104,67 +1170,6 @@ ...@@ -1104,67 +1170,6 @@
1104 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1170 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1105 "dev": true 1171 "dev": true
1106 }, 1172 },
1107 - "etag": {
1108 - "version": "1.8.1",
1109 - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
1110 - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
1111 - },
1112 - "express": {
1113 - "version": "4.17.1",
1114 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
1115 - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
1116 - "requires": {
1117 - "accepts": "~1.3.7",
1118 - "array-flatten": "1.1.1",
1119 - "body-parser": "1.19.0",
1120 - "content-disposition": "0.5.3",
1121 - "content-type": "~1.0.4",
1122 - "cookie": "0.4.0",
1123 - "cookie-signature": "1.0.6",
1124 - "debug": "2.6.9",
1125 - "depd": "~1.1.2",
1126 - "encodeurl": "~1.0.2",
1127 - "escape-html": "~1.0.3",
1128 - "etag": "~1.8.1",
1129 - "finalhandler": "~1.1.2",
1130 - "fresh": "0.5.2",
1131 - "merge-descriptors": "1.0.1",
1132 - "methods": "~1.1.2",
1133 - "on-finished": "~2.3.0",
1134 - "parseurl": "~1.3.3",
1135 - "path-to-regexp": "0.1.7",
1136 - "proxy-addr": "~2.0.5",
1137 - "qs": "6.7.0",
1138 - "range-parser": "~1.2.1",
1139 - "safe-buffer": "5.1.2",
1140 - "send": "0.17.1",
1141 - "serve-static": "1.14.1",
1142 - "setprototypeof": "1.1.1",
1143 - "statuses": "~1.5.0",
1144 - "type-is": "~1.6.18",
1145 - "utils-merge": "1.0.1",
1146 - "vary": "~1.1.2"
1147 - },
1148 - "dependencies": {
1149 - "body-parser": {
1150 - "version": "1.19.0",
1151 - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
1152 - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
1153 - "requires": {
1154 - "bytes": "3.1.0",
1155 - "content-type": "~1.0.4",
1156 - "debug": "2.6.9",
1157 - "depd": "~1.1.2",
1158 - "http-errors": "1.7.2",
1159 - "iconv-lite": "0.4.24",
1160 - "on-finished": "~2.3.0",
1161 - "qs": "6.7.0",
1162 - "raw-body": "2.4.0",
1163 - "type-is": "~1.6.17"
1164 - }
1165 - }
1166 - }
1167 - },
1168 "external-editor": { 1173 "external-editor": {
1169 "version": "3.1.0", 1174 "version": "3.1.0",
1170 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 1175 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
...@@ -1221,20 +1226,6 @@ ...@@ -1221,20 +1226,6 @@
1221 "to-regex-range": "^5.0.1" 1226 "to-regex-range": "^5.0.1"
1222 } 1227 }
1223 }, 1228 },
1224 - "finalhandler": {
1225 - "version": "1.1.2",
1226 - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
1227 - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
1228 - "requires": {
1229 - "debug": "2.6.9",
1230 - "encodeurl": "~1.0.2",
1231 - "escape-html": "~1.0.3",
1232 - "on-finished": "~2.3.0",
1233 - "parseurl": "~1.3.3",
1234 - "statuses": "~1.5.0",
1235 - "unpipe": "~1.0.0"
1236 - }
1237 - },
1238 "flat-cache": { 1229 "flat-cache": {
1239 "version": "2.0.1", 1230 "version": "2.0.1",
1240 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 1231 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
...@@ -1286,11 +1277,6 @@ ...@@ -1286,11 +1277,6 @@
1286 } 1277 }
1287 } 1278 }
1288 }, 1279 },
1289 - "forwarded": {
1290 - "version": "0.1.2",
1291 - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1292 - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
1293 - },
1294 "fresh": { 1280 "fresh": {
1295 "version": "0.5.2", 1281 "version": "0.5.2",
1296 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 1282 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
...@@ -1493,6 +1479,15 @@ ...@@ -1493,6 +1479,15 @@
1493 } 1479 }
1494 } 1480 }
1495 }, 1481 },
1482 + "http-assert": {
1483 + "version": "1.4.1",
1484 + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz",
1485 + "integrity": "sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==",
1486 + "requires": {
1487 + "deep-equal": "~1.0.1",
1488 + "http-errors": "~1.7.2"
1489 + }
1490 + },
1496 "http-cache-semantics": { 1491 "http-cache-semantics": {
1497 "version": "4.1.0", 1492 "version": "4.1.0",
1498 "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", 1493 "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
...@@ -1573,6 +1568,11 @@ ...@@ -1573,6 +1568,11 @@
1573 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1568 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1574 "dev": true 1569 "dev": true
1575 }, 1570 },
1571 + "inflation": {
1572 + "version": "2.0.0",
1573 + "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
1574 + "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8="
1575 + },
1576 "inflight": { 1576 "inflight": {
1577 "version": "1.0.6", 1577 "version": "1.0.6",
1578 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1578 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
...@@ -1613,11 +1613,6 @@ ...@@ -1613,11 +1613,6 @@
1613 "through": "^2.3.6" 1613 "through": "^2.3.6"
1614 } 1614 }
1615 }, 1615 },
1616 - "ipaddr.js": {
1617 - "version": "1.9.1",
1618 - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1619 - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1620 - },
1621 "is-binary-path": { 1616 "is-binary-path": {
1622 "version": "2.1.0", 1617 "version": "2.1.0",
1623 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1618 "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
...@@ -1650,6 +1645,11 @@ ...@@ -1650,6 +1645,11 @@
1650 "number-is-nan": "^1.0.0" 1645 "number-is-nan": "^1.0.0"
1651 } 1646 }
1652 }, 1647 },
1648 + "is-generator-function": {
1649 + "version": "1.0.7",
1650 + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",
1651 + "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw=="
1652 + },
1653 "is-glob": { 1653 "is-glob": {
1654 "version": "4.0.1", 1654 "version": "4.0.1",
1655 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1655 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
...@@ -1815,6 +1815,14 @@ ...@@ -1815,6 +1815,14 @@
1815 "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz", 1815 "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.1.tgz",
1816 "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==" 1816 "integrity": "sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw=="
1817 }, 1817 },
1818 + "keygrip": {
1819 + "version": "1.1.0",
1820 + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
1821 + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
1822 + "requires": {
1823 + "tsscmp": "1.0.6"
1824 + }
1825 + },
1818 "keyv": { 1826 "keyv": {
1819 "version": "3.1.0", 1827 "version": "3.1.0",
1820 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 1828 "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
...@@ -1824,6 +1832,136 @@ ...@@ -1824,6 +1832,136 @@
1824 "json-buffer": "3.0.0" 1832 "json-buffer": "3.0.0"
1825 } 1833 }
1826 }, 1834 },
1835 + "koa": {
1836 + "version": "2.12.0",
1837 + "resolved": "https://registry.npmjs.org/koa/-/koa-2.12.0.tgz",
1838 + "integrity": "sha512-WlUBj6PXoVhjI5ljMmlyK+eqkbVFW5XQu8twz6bd4WM2E67IwKgPMu5wIFXGxAsZT7sW5xAB54KhY8WAEkLPug==",
1839 + "requires": {
1840 + "accepts": "^1.3.5",
1841 + "cache-content-type": "^1.0.0",
1842 + "content-disposition": "~0.5.2",
1843 + "content-type": "^1.0.4",
1844 + "cookies": "~0.8.0",
1845 + "debug": "~3.1.0",
1846 + "delegates": "^1.0.0",
1847 + "depd": "^1.1.2",
1848 + "destroy": "^1.0.4",
1849 + "encodeurl": "^1.0.2",
1850 + "escape-html": "^1.0.3",
1851 + "fresh": "~0.5.2",
1852 + "http-assert": "^1.3.0",
1853 + "http-errors": "^1.6.3",
1854 + "is-generator-function": "^1.0.7",
1855 + "koa-compose": "^4.1.0",
1856 + "koa-convert": "^1.2.0",
1857 + "on-finished": "^2.3.0",
1858 + "only": "~0.0.2",
1859 + "parseurl": "^1.3.2",
1860 + "statuses": "^1.5.0",
1861 + "type-is": "^1.6.16",
1862 + "vary": "^1.1.2"
1863 + },
1864 + "dependencies": {
1865 + "debug": {
1866 + "version": "3.1.0",
1867 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1868 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1869 + "requires": {
1870 + "ms": "2.0.0"
1871 + }
1872 + },
1873 + "ms": {
1874 + "version": "2.0.0",
1875 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1876 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1877 + }
1878 + }
1879 + },
1880 + "koa-bodyparser": {
1881 + "version": "4.3.0",
1882 + "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
1883 + "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==",
1884 + "requires": {
1885 + "co-body": "^6.0.0",
1886 + "copy-to": "^2.0.1"
1887 + },
1888 + "dependencies": {
1889 + "co-body": {
1890 + "version": "6.0.0",
1891 + "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.0.0.tgz",
1892 + "integrity": "sha512-9ZIcixguuuKIptnY8yemEOuhb71L/lLf+Rl5JfJEUiDNJk0e02MBt7BPxR2GEh5mw8dPthQYR4jPI/BnS1MQgw==",
1893 + "requires": {
1894 + "inflation": "^2.0.0",
1895 + "qs": "^6.5.2",
1896 + "raw-body": "^2.3.3",
1897 + "type-is": "^1.6.16"
1898 + }
1899 + }
1900 + }
1901 + },
1902 + "koa-compose": {
1903 + "version": "4.1.0",
1904 + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
1905 + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
1906 + },
1907 + "koa-convert": {
1908 + "version": "1.2.0",
1909 + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz",
1910 + "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=",
1911 + "requires": {
1912 + "co": "^4.6.0",
1913 + "koa-compose": "^3.0.0"
1914 + },
1915 + "dependencies": {
1916 + "koa-compose": {
1917 + "version": "3.2.1",
1918 + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz",
1919 + "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=",
1920 + "requires": {
1921 + "any-promise": "^1.1.0"
1922 + }
1923 + }
1924 + }
1925 + },
1926 + "koa-router": {
1927 + "version": "9.0.1",
1928 + "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-9.0.1.tgz",
1929 + "integrity": "sha512-KXCXDID3cMpfGb5QjCOUfkodWKQYIEYFK0aGSpeAZKZt2ebdV4TLq3cgtmnxvoaAQoPkSzev2kSLFOdPbpLdqg==",
1930 + "requires": {
1931 + "debug": "^4.1.1",
1932 + "http-errors": "^1.7.3",
1933 + "koa-compose": "^4.1.0",
1934 + "methods": "^1.1.2",
1935 + "path-to-regexp": "^6.1.0"
1936 + },
1937 + "dependencies": {
1938 + "debug": {
1939 + "version": "4.1.1",
1940 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1941 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1942 + "requires": {
1943 + "ms": "^2.1.1"
1944 + }
1945 + },
1946 + "http-errors": {
1947 + "version": "1.7.3",
1948 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz",
1949 + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==",
1950 + "requires": {
1951 + "depd": "~1.1.2",
1952 + "inherits": "2.0.4",
1953 + "setprototypeof": "1.1.1",
1954 + "statuses": ">= 1.5.0 < 2",
1955 + "toidentifier": "1.0.0"
1956 + }
1957 + },
1958 + "path-to-regexp": {
1959 + "version": "6.1.0",
1960 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz",
1961 + "integrity": "sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw=="
1962 + }
1963 + }
1964 + },
1827 "latest-version": { 1965 "latest-version": {
1828 "version": "5.1.0", 1966 "version": "5.1.0",
1829 "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", 1967 "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
...@@ -1917,21 +2055,11 @@ ...@@ -1917,21 +2055,11 @@
1917 "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", 2055 "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
1918 "optional": true 2056 "optional": true
1919 }, 2057 },
1920 - "merge-descriptors": {
1921 - "version": "1.0.1",
1922 - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1923 - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1924 - },
1925 "methods": { 2058 "methods": {
1926 "version": "1.1.2", 2059 "version": "1.1.2",
1927 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 2060 "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1928 "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 2061 "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
1929 }, 2062 },
1930 - "mime": {
1931 - "version": "1.6.0",
1932 - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1933 - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1934 - },
1935 "mime-db": { 2063 "mime-db": {
1936 "version": "1.44.0", 2064 "version": "1.44.0",
1937 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 2065 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
...@@ -2278,6 +2406,11 @@ ...@@ -2278,6 +2406,11 @@
2278 "mimic-fn": "^2.1.0" 2406 "mimic-fn": "^2.1.0"
2279 } 2407 }
2280 }, 2408 },
2409 + "only": {
2410 + "version": "0.0.2",
2411 + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
2412 + "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q="
2413 + },
2281 "optionator": { 2414 "optionator": {
2282 "version": "0.9.1", 2415 "version": "0.9.1",
2283 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", 2416 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
...@@ -2385,11 +2518,6 @@ ...@@ -2385,11 +2518,6 @@
2385 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 2518 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
2386 "dev": true 2519 "dev": true
2387 }, 2520 },
2388 - "path-to-regexp": {
2389 - "version": "0.1.7",
2390 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
2391 - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
2392 - },
2393 "picomatch": { 2521 "picomatch": {
2394 "version": "2.2.2", 2522 "version": "2.2.2",
2395 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 2523 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
...@@ -2424,15 +2552,6 @@ ...@@ -2424,15 +2552,6 @@
2424 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 2552 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2425 "dev": true 2553 "dev": true
2426 }, 2554 },
2427 - "proxy-addr": {
2428 - "version": "2.0.6",
2429 - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
2430 - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
2431 - "requires": {
2432 - "forwarded": "~0.1.2",
2433 - "ipaddr.js": "1.9.1"
2434 - }
2435 - },
2436 "pstree.remy": { 2555 "pstree.remy": {
2437 "version": "1.1.8", 2556 "version": "1.1.8",
2438 "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 2557 "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
...@@ -2468,11 +2587,6 @@ ...@@ -2468,11 +2587,6 @@
2468 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 2587 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
2469 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 2588 "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
2470 }, 2589 },
2471 - "range-parser": {
2472 - "version": "1.2.1",
2473 - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
2474 - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
2475 - },
2476 "raw-body": { 2590 "raw-body": {
2477 "version": "2.4.0", 2591 "version": "2.4.0",
2478 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 2592 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
...@@ -2673,44 +2787,6 @@ ...@@ -2673,44 +2787,6 @@
2673 } 2787 }
2674 } 2788 }
2675 }, 2789 },
2676 - "send": {
2677 - "version": "0.17.1",
2678 - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
2679 - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
2680 - "requires": {
2681 - "debug": "2.6.9",
2682 - "depd": "~1.1.2",
2683 - "destroy": "~1.0.4",
2684 - "encodeurl": "~1.0.2",
2685 - "escape-html": "~1.0.3",
2686 - "etag": "~1.8.1",
2687 - "fresh": "0.5.2",
2688 - "http-errors": "~1.7.2",
2689 - "mime": "1.6.0",
2690 - "ms": "2.1.1",
2691 - "on-finished": "~2.3.0",
2692 - "range-parser": "~1.2.1",
2693 - "statuses": "~1.5.0"
2694 - },
2695 - "dependencies": {
2696 - "ms": {
2697 - "version": "2.1.1",
2698 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2699 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
2700 - }
2701 - }
2702 - },
2703 - "serve-static": {
2704 - "version": "1.14.1",
2705 - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
2706 - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
2707 - "requires": {
2708 - "encodeurl": "~1.0.2",
2709 - "escape-html": "~1.0.3",
2710 - "parseurl": "~1.3.3",
2711 - "send": "0.17.1"
2712 - }
2713 - },
2714 "set-blocking": { 2790 "set-blocking": {
2715 "version": "2.0.0", 2791 "version": "2.0.0",
2716 "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2792 "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
...@@ -3000,6 +3076,11 @@ ...@@ -3000,6 +3076,11 @@
3000 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", 3076 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
3001 "dev": true 3077 "dev": true
3002 }, 3078 },
3079 + "tsscmp": {
3080 + "version": "1.0.6",
3081 + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
3082 + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
3083 + },
3003 "type-check": { 3084 "type-check": {
3004 "version": "0.4.0", 3085 "version": "0.4.0",
3005 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3086 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
...@@ -3115,11 +3196,6 @@ ...@@ -3115,11 +3196,6 @@
3115 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3196 "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3116 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 3197 "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
3117 }, 3198 },
3118 - "utils-merge": {
3119 - "version": "1.0.1",
3120 - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
3121 - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
3122 - },
3123 "v8-compile-cache": { 3199 "v8-compile-cache": {
3124 "version": "2.1.0", 3200 "version": "2.1.0",
3125 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", 3201 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
...@@ -3233,6 +3309,11 @@ ...@@ -3233,6 +3309,11 @@
3233 "version": "3.1.1", 3309 "version": "3.1.1",
3234 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 3310 "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
3235 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" 3311 "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
3312 + },
3313 + "ylru": {
3314 + "version": "1.2.1",
3315 + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz",
3316 + "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ=="
3236 } 3317 }
3237 } 3318 }
3238 } 3319 }
......
...@@ -8,13 +8,16 @@ ...@@ -8,13 +8,16 @@
8 "bcrypt": "^4.0.1", 8 "bcrypt": "^4.0.1",
9 "body-parser": "^1.19.0", 9 "body-parser": "^1.19.0",
10 "cheerio": "^1.0.0-rc.3", 10 "cheerio": "^1.0.0-rc.3",
11 + "cookie-parser": "^1.4.5",
11 "dotenv": "^8.2.0", 12 "dotenv": "^8.2.0",
12 "eslint-config-prettier": "^6.11.0", 13 "eslint-config-prettier": "^6.11.0",
13 - "express": "^4.17.1",
14 "fs": "^0.0.1-security", 14 "fs": "^0.0.1-security",
15 "iconv": "^3.0.0", 15 "iconv": "^3.0.0",
16 "joi": "^14.3.1", 16 "joi": "^14.3.1",
17 "jsonwebtoken": "^8.5.1", 17 "jsonwebtoken": "^8.5.1",
18 + "koa": "^2.12.0",
19 + "koa-bodyparser": "^4.3.0",
20 + "koa-router": "^9.0.1",
18 "mongoose": "^5.9.17", 21 "mongoose": "^5.9.17",
19 "morgan": "^1.10.0", 22 "morgan": "^1.10.0",
20 "path": "^0.12.7", 23 "path": "^0.12.7",
......
...@@ -12,6 +12,7 @@ exports.register = async (ctx) => { ...@@ -12,6 +12,7 @@ exports.register = async (ctx) => {
12 username: Joi.string().alphanum().min(3).max(20).required(), 12 username: Joi.string().alphanum().min(3).max(20).required(),
13 password: Joi.string().required(), 13 password: Joi.string().required(),
14 }); 14 });
15 +
15 const result = Joi.validate(ctx.request.body, schema); 16 const result = Joi.validate(ctx.request.body, schema);
16 if (result.error) { 17 if (result.error) {
17 ctx.status = 400; 18 ctx.status = 400;
...@@ -33,7 +34,7 @@ exports.register = async (ctx) => { ...@@ -33,7 +34,7 @@ exports.register = async (ctx) => {
33 await user.save(); 34 await user.save();
34 ctx.body = user.serialize(); 35 ctx.body = user.serialize();
35 36
36 - const token = user.generateToekn(); 37 + const token = user.generateToken();
37 ctx.cookies.set("acces_token", token, { 38 ctx.cookies.set("acces_token", token, {
38 //3일동안 유효 39 //3일동안 유효
39 maxAge: 1000 * 60 * 60 * 24 * 3, 40 maxAge: 1000 * 60 * 60 * 24 * 3,
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const router = express.Router(); 2 +const auth = new Router();
3 - 3 +const authCtrl = require("./auth.ctrl");
4 -router.post("/login"); 4 +auth.post("/login", authCtrl.login);
5 -router.get("/logout"); 5 +auth.get("/logout", authCtrl.logout);
6 -router.post("/register"); 6 +auth.post("/register", authCtrl.register);
7 - 7 +
8 - 8 +module.exports = auth;
9 -
10 -
11 -module.exports = router;
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const router = express.Router(); 2 +const friend = new Router();
3 3
4 -router.post("/"); 4 +friend.post("/");
5 -router.delete("/:id"); 5 +friend.delete("/:id");
6 -router.get("/:id"); 6 +friend.get("/:id");
7 -router.get(""); 7 +friend.get("");
8 8
9 -module.exports = router; 9 +module.exports = friend;
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const app = express(); 2 +const api = new Router();
3 3
4 const auth = require("./auth"); 4 const auth = require("./auth");
5 const friend = require("./friend"); 5 const friend = require("./friend");
...@@ -7,10 +7,10 @@ const notify = require("./profile"); ...@@ -7,10 +7,10 @@ const notify = require("./profile");
7 const user = require("./user"); 7 const user = require("./user");
8 const profile = require("./profile"); 8 const profile = require("./profile");
9 9
10 -app.use("/auth", auth); 10 +api.use("/auth", auth.routes());
11 -app.use("/friend", friend); 11 +api.use("/friend", friend.routes());
12 -app.use("/notify", notify); 12 +api.use("/notify", notify.routes());
13 -app.use("/user", user); 13 +api.use("/user", user.routes());
14 -app.use("/profile", profile); 14 +api.use("/profile", profile.routes());
15 15
16 -module.exports = app; 16 +module.exports = api;
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const router = express.Router(); 2 +const notify = new Router();
3 3
4 -router.post("/slack"); 4 +notify.post("/slack");
5 5
6 -module.exports = router; 6 +module.exports = notify;
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const router = express.Router(); 2 +const profile = new Router();
3 3
4 -router.post("/solved:id"); 4 +profile.post("/solved:id");
5 -router.get("/solvednum:id"); 5 +profile.get("/solvednum:id");
6 -router.get("recommendps:id"); 6 +profile.get("recommendps:id");
7 7
8 -module.exports = router; 8 +module.exports = profile;
......
1 -const express = require("express"); 1 +const Router = require("koa-router");
2 -const router = express.Router(); 2 +const user = new Router();
3 +user.post("/");
4 +user.delete("/:id");
5 +user.get("/:id");
6 +user.get("");
3 7
4 -router.post("/"); 8 +module.exports = user;
5 -router.delete("/:id");
6 -router.get("/:id");
7 -router.get("");
8 -
9 -module.exports = router;
......
1 const mongoose = require("mongoose"); 1 const mongoose = require("mongoose");
2 const bcrypt = require("bcrypt"); 2 const bcrypt = require("bcrypt");
3 const jwt = require("jsonwebtoken"); 3 const jwt = require("jsonwebtoken");
4 +
4 const Schema = mongoose.Schema; 5 const Schema = mongoose.Schema;
5 6
6 const UserSchema = new Schema({ 7 const UserSchema = new Schema({
...@@ -12,7 +13,7 @@ UserSchema.methods.setPassword = async function (password) { ...@@ -12,7 +13,7 @@ UserSchema.methods.setPassword = async function (password) {
12 const hash = await bcrypt.hash(password, 10); 13 const hash = await bcrypt.hash(password, 10);
13 this.hashedPassword = hash; 14 this.hashedPassword = hash;
14 }; 15 };
15 -UserSchema.methodss.checkPassword = async function (password) { 16 +UserSchema.methods.checkPassword = async function (password) {
16 const result = await bcrypt.compare(password, this.hashedPassword); 17 const result = await bcrypt.compare(password, this.hashedPassword);
17 return result; 18 return result;
18 }; 19 };
......
...@@ -111,12 +111,17 @@ ...@@ -111,12 +111,17 @@
111 resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 111 resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
112 integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 112 integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
113 113
114 +"@types/node@*":
115 + version "14.0.13"
116 + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9"
117 + integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==
118 +
114 abbrev@1: 119 abbrev@1:
115 version "1.1.1" 120 version "1.1.1"
116 resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 121 resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
117 integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 122 integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
118 123
119 -accepts@~1.3.7: 124 +accepts@^1.3.5, accepts@~1.3.7:
120 version "1.3.7" 125 version "1.3.7"
121 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 126 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
122 integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 127 integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
...@@ -193,6 +198,11 @@ ansi-styles@^4.1.0: ...@@ -193,6 +198,11 @@ ansi-styles@^4.1.0:
193 "@types/color-name" "^1.1.1" 198 "@types/color-name" "^1.1.1"
194 color-convert "^2.0.1" 199 color-convert "^2.0.1"
195 200
201 +any-promise@^1.1.0:
202 + version "1.3.0"
203 + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
204 + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
205 +
196 anymatch@~3.1.1: 206 anymatch@~3.1.1:
197 version "3.1.1" 207 version "3.1.1"
198 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 208 resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
...@@ -231,6 +241,13 @@ astral-regex@^1.0.0: ...@@ -231,6 +241,13 @@ astral-regex@^1.0.0:
231 resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 241 resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
232 integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 242 integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
233 243
244 +axios@^0.19.2:
245 + version "0.19.2"
246 + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
247 + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
248 + dependencies:
249 + follow-redirects "1.5.10"
250 +
234 babel-eslint@^10.1.0: 251 babel-eslint@^10.1.0:
235 version "10.1.0" 252 version "10.1.0"
236 resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" 253 resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
...@@ -297,6 +314,11 @@ body-parser@1.19.0, body-parser@^1.19.0: ...@@ -297,6 +314,11 @@ body-parser@1.19.0, body-parser@^1.19.0:
297 raw-body "2.4.0" 314 raw-body "2.4.0"
298 type-is "~1.6.17" 315 type-is "~1.6.17"
299 316
317 +boolbase@~1.0.0:
318 + version "1.0.0"
319 + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
320 + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
321 +
300 boxen@^4.2.0: 322 boxen@^4.2.0:
301 version "4.2.0" 323 version "4.2.0"
302 resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" 324 resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
...@@ -336,11 +358,24 @@ buffer-equal-constant-time@1.0.1: ...@@ -336,11 +358,24 @@ buffer-equal-constant-time@1.0.1:
336 resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 358 resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
337 integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 359 integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=
338 360
361 +bytes@1.0.0:
362 + version "1.0.0"
363 + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8"
364 + integrity sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=
365 +
339 bytes@3.1.0: 366 bytes@3.1.0:
340 version "3.1.0" 367 version "3.1.0"
341 resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 368 resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
342 integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 369 integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
343 370
371 +cache-content-type@^1.0.0:
372 + version "1.0.1"
373 + resolved "https://registry.yarnpkg.com/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
374 + integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
375 + dependencies:
376 + mime-types "^2.1.18"
377 + ylru "^1.2.0"
378 +
344 cacheable-request@^6.0.0: 379 cacheable-request@^6.0.0:
345 version "6.1.0" 380 version "6.1.0"
346 resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 381 resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
...@@ -394,6 +429,18 @@ chardet@^0.7.0: ...@@ -394,6 +429,18 @@ chardet@^0.7.0:
394 resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 429 resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
395 integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 430 integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
396 431
432 +cheerio@^1.0.0-rc.3:
433 + version "1.0.0-rc.3"
434 + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6"
435 + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==
436 + dependencies:
437 + css-select "~1.2.0"
438 + dom-serializer "~0.1.1"
439 + entities "~1.1.1"
440 + htmlparser2 "^3.9.1"
441 + lodash "^4.15.0"
442 + parse5 "^3.0.1"
443 +
397 chokidar@^3.2.2: 444 chokidar@^3.2.2:
398 version "3.4.0" 445 version "3.4.0"
399 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8" 446 resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz#b30611423ce376357c765b9b8f904b9fba3c0be8"
...@@ -443,6 +490,19 @@ clone-response@^1.0.2: ...@@ -443,6 +490,19 @@ clone-response@^1.0.2:
443 dependencies: 490 dependencies:
444 mimic-response "^1.0.0" 491 mimic-response "^1.0.0"
445 492
493 +co-body@^2.0.0:
494 + version "2.0.0"
495 + resolved "https://registry.yarnpkg.com/co-body/-/co-body-2.0.0.tgz#7302abb8e88a2ce084f67ca4f3162c1b54a64b67"
496 + integrity sha1-cwKruOiKLOCE9nyk8xYsG1SmS2c=
497 + dependencies:
498 + qs "~2.4.1"
499 + raw-body "~1.3.4"
500 +
501 +co@^4.6.0:
502 + version "4.6.0"
503 + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
504 + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
505 +
446 code-point-at@^1.0.0: 506 code-point-at@^1.0.0:
447 version "1.1.0" 507 version "1.1.0"
448 resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 508 resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
...@@ -494,18 +554,26 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: ...@@ -494,18 +554,26 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0:
494 resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 554 resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
495 integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= 555 integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
496 556
497 -content-disposition@0.5.3: 557 +content-disposition@0.5.3, content-disposition@~0.5.2:
498 version "0.5.3" 558 version "0.5.3"
499 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 559 resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
500 integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 560 integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
501 dependencies: 561 dependencies:
502 safe-buffer "5.1.2" 562 safe-buffer "5.1.2"
503 563
504 -content-type@~1.0.4: 564 +content-type@^1.0.4, content-type@~1.0.4:
505 version "1.0.4" 565 version "1.0.4"
506 resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 566 resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
507 integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 567 integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
508 568
569 +cookie-parser@^1.4.5:
570 + version "1.4.5"
571 + resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.5.tgz#3e572d4b7c0c80f9c61daf604e4336831b5d1d49"
572 + integrity sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==
573 + dependencies:
574 + cookie "0.4.0"
575 + cookie-signature "1.0.6"
576 +
509 cookie-signature@1.0.6: 577 cookie-signature@1.0.6:
510 version "1.0.6" 578 version "1.0.6"
511 resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 579 resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
...@@ -516,6 +584,14 @@ cookie@0.4.0: ...@@ -516,6 +584,14 @@ cookie@0.4.0:
516 resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 584 resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
517 integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 585 integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
518 586
587 +cookies@~0.8.0:
588 + version "0.8.0"
589 + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
590 + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
591 + dependencies:
592 + depd "~2.0.0"
593 + keygrip "~1.1.0"
594 +
519 core-util-is@~1.0.0: 595 core-util-is@~1.0.0:
520 version "1.0.2" 596 version "1.0.2"
521 resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 597 resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
...@@ -535,6 +611,21 @@ crypto-random-string@^2.0.0: ...@@ -535,6 +611,21 @@ crypto-random-string@^2.0.0:
535 resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 611 resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
536 integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 612 integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
537 613
614 +css-select@~1.2.0:
615 + version "1.2.0"
616 + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
617 + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
618 + dependencies:
619 + boolbase "~1.0.0"
620 + css-what "2.1"
621 + domutils "1.5.1"
622 + nth-check "~1.0.1"
623 +
624 +css-what@2.1:
625 + version "2.1.3"
626 + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
627 + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
628 +
538 debug@2.6.9, debug@^2.2.0: 629 debug@2.6.9, debug@^2.2.0:
539 version "2.6.9" 630 version "2.6.9"
540 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 631 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
...@@ -542,7 +633,7 @@ debug@2.6.9, debug@^2.2.0: ...@@ -542,7 +633,7 @@ debug@2.6.9, debug@^2.2.0:
542 dependencies: 633 dependencies:
543 ms "2.0.0" 634 ms "2.0.0"
544 635
545 -debug@3.1.0: 636 +debug@3.1.0, debug@=3.1.0, debug@~3.1.0:
546 version "3.1.0" 637 version "3.1.0"
547 resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 638 resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
548 integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 639 integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
...@@ -556,7 +647,7 @@ debug@^3.2.6: ...@@ -556,7 +647,7 @@ debug@^3.2.6:
556 dependencies: 647 dependencies:
557 ms "^2.1.1" 648 ms "^2.1.1"
558 649
559 -debug@^4.0.1, debug@^4.1.0: 650 +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
560 version "4.1.1" 651 version "4.1.1"
561 resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 652 resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
562 integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 653 integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
...@@ -570,6 +661,11 @@ decompress-response@^3.3.0: ...@@ -570,6 +661,11 @@ decompress-response@^3.3.0:
570 dependencies: 661 dependencies:
571 mimic-response "^1.0.0" 662 mimic-response "^1.0.0"
572 663
664 +deep-equal@~1.0.1:
665 + version "1.0.1"
666 + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
667 + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
668 +
573 deep-extend@^0.6.0: 669 deep-extend@^0.6.0:
574 version "0.6.0" 670 version "0.6.0"
575 resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 671 resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
...@@ -595,7 +691,7 @@ denque@^1.4.1: ...@@ -595,7 +691,7 @@ denque@^1.4.1:
595 resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" 691 resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf"
596 integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== 692 integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==
597 693
598 -depd@~1.1.2: 694 +depd@^1.1.2, depd@~1.1.2:
599 version "1.1.2" 695 version "1.1.2"
600 resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 696 resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
601 integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 697 integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
...@@ -605,7 +701,7 @@ depd@~2.0.0: ...@@ -605,7 +701,7 @@ depd@~2.0.0:
605 resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 701 resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
606 integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 702 integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
607 703
608 -destroy@~1.0.4: 704 +destroy@^1.0.4, destroy@~1.0.4:
609 version "1.0.4" 705 version "1.0.4"
610 resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 706 resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
611 integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 707 integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
...@@ -622,6 +718,55 @@ doctrine@^3.0.0: ...@@ -622,6 +718,55 @@ doctrine@^3.0.0:
622 dependencies: 718 dependencies:
623 esutils "^2.0.2" 719 esutils "^2.0.2"
624 720
721 +dom-serializer@0:
722 + version "0.2.2"
723 + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
724 + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
725 + dependencies:
726 + domelementtype "^2.0.1"
727 + entities "^2.0.0"
728 +
729 +dom-serializer@~0.1.1:
730 + version "0.1.1"
731 + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
732 + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
733 + dependencies:
734 + domelementtype "^1.3.0"
735 + entities "^1.1.1"
736 +
737 +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
738 + version "1.3.1"
739 + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
740 + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
741 +
742 +domelementtype@^2.0.1:
743 + version "2.0.1"
744 + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
745 + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
746 +
747 +domhandler@^2.3.0:
748 + version "2.4.2"
749 + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
750 + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
751 + dependencies:
752 + domelementtype "1"
753 +
754 +domutils@1.5.1:
755 + version "1.5.1"
756 + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
757 + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
758 + dependencies:
759 + dom-serializer "0"
760 + domelementtype "1"
761 +
762 +domutils@^1.5.1:
763 + version "1.7.0"
764 + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
765 + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
766 + dependencies:
767 + dom-serializer "0"
768 + domelementtype "1"
769 +
625 dot-prop@^5.2.0: 770 dot-prop@^5.2.0:
626 version "5.2.0" 771 version "5.2.0"
627 resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" 772 resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
...@@ -661,7 +806,7 @@ emoji-regex@^8.0.0: ...@@ -661,7 +806,7 @@ emoji-regex@^8.0.0:
661 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 806 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
662 integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 807 integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
663 808
664 -encodeurl@~1.0.2: 809 +encodeurl@^1.0.2, encodeurl@~1.0.2:
665 version "1.0.2" 810 version "1.0.2"
666 resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 811 resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
667 integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 812 integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
...@@ -673,12 +818,22 @@ end-of-stream@^1.1.0: ...@@ -673,12 +818,22 @@ end-of-stream@^1.1.0:
673 dependencies: 818 dependencies:
674 once "^1.4.0" 819 once "^1.4.0"
675 820
821 +entities@^1.1.1, entities@~1.1.1:
822 + version "1.1.2"
823 + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
824 + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
825 +
826 +entities@^2.0.0:
827 + version "2.0.3"
828 + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
829 + integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
830 +
676 escape-goat@^2.0.0: 831 escape-goat@^2.0.0:
677 version "2.1.1" 832 version "2.1.1"
678 resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" 833 resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
679 integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 834 integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
680 835
681 -escape-html@~1.0.3: 836 +escape-html@^1.0.3, escape-html@~1.0.3:
682 version "1.0.3" 837 version "1.0.3"
683 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 838 resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
684 integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 839 integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
...@@ -913,12 +1068,19 @@ flatted@^2.0.0: ...@@ -913,12 +1068,19 @@ flatted@^2.0.0:
913 resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 1068 resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
914 integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 1069 integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
915 1070
1071 +follow-redirects@1.5.10:
1072 + version "1.5.10"
1073 + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
1074 + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
1075 + dependencies:
1076 + debug "=3.1.0"
1077 +
916 forwarded@~0.1.2: 1078 forwarded@~0.1.2:
917 version "0.1.2" 1079 version "0.1.2"
918 resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" 1080 resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
919 integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= 1081 integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
920 1082
921 -fresh@0.5.2: 1083 +fresh@0.5.2, fresh@~0.5.2:
922 version "0.5.2" 1084 version "0.5.2"
923 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1085 resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
924 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1086 integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
...@@ -1068,6 +1230,26 @@ hoek@6.x.x: ...@@ -1068,6 +1230,26 @@ hoek@6.x.x:
1068 resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" 1230 resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c"
1069 integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== 1231 integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ==
1070 1232
1233 +htmlparser2@^3.9.1:
1234 + version "3.10.1"
1235 + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
1236 + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
1237 + dependencies:
1238 + domelementtype "^1.3.1"
1239 + domhandler "^2.3.0"
1240 + domutils "^1.5.1"
1241 + entities "^1.1.1"
1242 + inherits "^2.0.1"
1243 + readable-stream "^3.1.1"
1244 +
1245 +http-assert@^1.3.0:
1246 + version "1.4.1"
1247 + resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
1248 + integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
1249 + dependencies:
1250 + deep-equal "~1.0.1"
1251 + http-errors "~1.7.2"
1252 +
1071 http-cache-semantics@^4.0.0: 1253 http-cache-semantics@^4.0.0:
1072 version "4.1.0" 1254 version "4.1.0"
1073 resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 1255 resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
...@@ -1084,7 +1266,7 @@ http-errors@1.7.2: ...@@ -1084,7 +1266,7 @@ http-errors@1.7.2:
1084 statuses ">= 1.5.0 < 2" 1266 statuses ">= 1.5.0 < 2"
1085 toidentifier "1.0.0" 1267 toidentifier "1.0.0"
1086 1268
1087 -http-errors@~1.7.2: 1269 +http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.7.2:
1088 version "1.7.3" 1270 version "1.7.3"
1089 resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 1271 resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
1090 integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 1272 integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
...@@ -1102,6 +1284,16 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: ...@@ -1102,6 +1284,16 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
1102 dependencies: 1284 dependencies:
1103 safer-buffer ">= 2.1.2 < 3" 1285 safer-buffer ">= 2.1.2 < 3"
1104 1286
1287 +iconv-lite@0.4.8:
1288 + version "0.4.8"
1289 + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.8.tgz#c6019a7595f2cefca702eab694a010bcd9298d20"
1290 + integrity sha1-xgGadZXyzvynAuq2lKAQvNkpjSA=
1291 +
1292 +iconv@^3.0.0:
1293 + version "3.0.0"
1294 + resolved "https://registry.yarnpkg.com/iconv/-/iconv-3.0.0.tgz#9a293ec123b16b4717e450714ddbb07f985b7d9c"
1295 + integrity sha512-bKTEP55J/e+UutBE3BDBWq6KukPWh3GBYCZGbLEY9vxRDUU2F3bqvPsp/a/DEdIamgF2MvW5lF0Rj1U/7KRL+g==
1296 +
1105 ignore-by-default@^1.0.1: 1297 ignore-by-default@^1.0.1:
1106 version "1.0.1" 1298 version "1.0.1"
1107 resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1299 resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
...@@ -1145,7 +1337,7 @@ inflight@^1.0.4: ...@@ -1145,7 +1337,7 @@ inflight@^1.0.4:
1145 once "^1.3.0" 1337 once "^1.3.0"
1146 wrappy "1" 1338 wrappy "1"
1147 1339
1148 -inherits@2, inherits@2.0.4, inherits@~2.0.3: 1340 +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
1149 version "2.0.4" 1341 version "2.0.4"
1150 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1342 resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1151 integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1343 integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
...@@ -1220,6 +1412,11 @@ is-fullwidth-code-point@^3.0.0: ...@@ -1220,6 +1412,11 @@ is-fullwidth-code-point@^3.0.0:
1220 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1412 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1221 integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1413 integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1222 1414
1415 +is-generator-function@^1.0.7:
1416 + version "1.0.7"
1417 + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522"
1418 + integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==
1419 +
1223 is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: 1420 is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
1224 version "4.0.1" 1421 version "4.0.1"
1225 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 1422 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
...@@ -1362,6 +1559,13 @@ kareem@2.3.1: ...@@ -1362,6 +1559,13 @@ kareem@2.3.1:
1362 resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87" 1559 resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.1.tgz#def12d9c941017fabfb00f873af95e9c99e1be87"
1363 integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw== 1560 integrity sha512-l3hLhffs9zqoDe8zjmb/mAN4B8VT3L56EUvKNqLFVs9YlFA+zx7ke1DO8STAdDyYNkeSo1nKmjuvQeI12So8Xw==
1364 1561
1562 +keygrip@~1.1.0:
1563 + version "1.1.0"
1564 + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
1565 + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
1566 + dependencies:
1567 + tsscmp "1.0.6"
1568 +
1365 keyv@^3.0.0: 1569 keyv@^3.0.0:
1366 version "3.1.0" 1570 version "3.1.0"
1367 resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 1571 resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
...@@ -1369,6 +1573,73 @@ keyv@^3.0.0: ...@@ -1369,6 +1573,73 @@ keyv@^3.0.0:
1369 dependencies: 1573 dependencies:
1370 json-buffer "3.0.0" 1574 json-buffer "3.0.0"
1371 1575
1576 +koa-body-parser@^1.1.2:
1577 + version "1.1.2"
1578 + resolved "https://registry.yarnpkg.com/koa-body-parser/-/koa-body-parser-1.1.2.tgz#6698bf9cfb33b993f801a8af49a85467c402fc64"
1579 + integrity sha1-Zpi/nPszuZP4AaivSahUZ8QC/GQ=
1580 + dependencies:
1581 + co-body "^2.0.0"
1582 +
1583 +koa-compose@^3.0.0:
1584 + version "3.2.1"
1585 + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
1586 + integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
1587 + dependencies:
1588 + any-promise "^1.1.0"
1589 +
1590 +koa-compose@^4.1.0:
1591 + version "4.1.0"
1592 + resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
1593 + integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
1594 +
1595 +koa-convert@^1.2.0:
1596 + version "1.2.0"
1597 + resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
1598 + integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
1599 + dependencies:
1600 + co "^4.6.0"
1601 + koa-compose "^3.0.0"
1602 +
1603 +koa-router@^9.0.1:
1604 + version "9.0.1"
1605 + resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-9.0.1.tgz#34fb0b849624ff8ae96823e2c5d8c672f91ac19b"
1606 + integrity sha512-KXCXDID3cMpfGb5QjCOUfkodWKQYIEYFK0aGSpeAZKZt2ebdV4TLq3cgtmnxvoaAQoPkSzev2kSLFOdPbpLdqg==
1607 + dependencies:
1608 + debug "^4.1.1"
1609 + http-errors "^1.7.3"
1610 + koa-compose "^4.1.0"
1611 + methods "^1.1.2"
1612 + path-to-regexp "^6.1.0"
1613 +
1614 +koa@^2.12.0:
1615 + version "2.12.0"
1616 + resolved "https://registry.yarnpkg.com/koa/-/koa-2.12.0.tgz#c92bfb42defd86f365c31bf63fe918db11fc5c74"
1617 + integrity sha512-WlUBj6PXoVhjI5ljMmlyK+eqkbVFW5XQu8twz6bd4WM2E67IwKgPMu5wIFXGxAsZT7sW5xAB54KhY8WAEkLPug==
1618 + dependencies:
1619 + accepts "^1.3.5"
1620 + cache-content-type "^1.0.0"
1621 + content-disposition "~0.5.2"
1622 + content-type "^1.0.4"
1623 + cookies "~0.8.0"
1624 + debug "~3.1.0"
1625 + delegates "^1.0.0"
1626 + depd "^1.1.2"
1627 + destroy "^1.0.4"
1628 + encodeurl "^1.0.2"
1629 + escape-html "^1.0.3"
1630 + fresh "~0.5.2"
1631 + http-assert "^1.3.0"
1632 + http-errors "^1.6.3"
1633 + is-generator-function "^1.0.7"
1634 + koa-compose "^4.1.0"
1635 + koa-convert "^1.2.0"
1636 + on-finished "^2.3.0"
1637 + only "~0.0.2"
1638 + parseurl "^1.3.2"
1639 + statuses "^1.5.0"
1640 + type-is "^1.6.16"
1641 + vary "^1.1.2"
1642 +
1372 latest-version@^5.0.0: 1643 latest-version@^5.0.0:
1373 version "5.1.0" 1644 version "5.1.0"
1374 resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 1645 resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
...@@ -1419,7 +1690,7 @@ lodash.once@^4.0.0: ...@@ -1419,7 +1690,7 @@ lodash.once@^4.0.0:
1419 resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1690 resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
1420 integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= 1691 integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
1421 1692
1422 -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: 1693 +lodash@^4.15.0, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15:
1423 version "4.17.15" 1694 version "4.17.15"
1424 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 1695 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
1425 integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== 1696 integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
...@@ -1456,7 +1727,7 @@ merge-descriptors@1.0.1: ...@@ -1456,7 +1727,7 @@ merge-descriptors@1.0.1:
1456 resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1727 resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
1457 integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 1728 integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
1458 1729
1459 -methods@~1.1.2: 1730 +methods@^1.1.2, methods@~1.1.2:
1460 version "1.1.2" 1731 version "1.1.2"
1461 resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1732 resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
1462 integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 1733 integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
...@@ -1466,7 +1737,7 @@ mime-db@1.44.0: ...@@ -1466,7 +1737,7 @@ mime-db@1.44.0:
1466 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 1737 resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
1467 integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 1738 integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
1468 1739
1469 -mime-types@~2.1.24: 1740 +mime-types@^2.1.18, mime-types@~2.1.24:
1470 version "2.1.27" 1741 version "2.1.27"
1471 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 1742 resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
1472 integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 1743 integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
...@@ -1716,6 +1987,13 @@ npmlog@^4.0.2: ...@@ -1716,6 +1987,13 @@ npmlog@^4.0.2:
1716 gauge "~2.7.3" 1987 gauge "~2.7.3"
1717 set-blocking "~2.0.0" 1988 set-blocking "~2.0.0"
1718 1989
1990 +nth-check@~1.0.1:
1991 + version "1.0.2"
1992 + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
1993 + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
1994 + dependencies:
1995 + boolbase "~1.0.0"
1996 +
1719 number-is-nan@^1.0.0: 1997 number-is-nan@^1.0.0:
1720 version "1.0.1" 1998 version "1.0.1"
1721 resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1999 resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
...@@ -1726,7 +2004,7 @@ object-assign@^4.1.0: ...@@ -1726,7 +2004,7 @@ object-assign@^4.1.0:
1726 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2004 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1727 integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2005 integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1728 2006
1729 -on-finished@~2.3.0: 2007 +on-finished@^2.3.0, on-finished@~2.3.0:
1730 version "2.3.0" 2008 version "2.3.0"
1731 resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2009 resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
1732 integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2010 integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
...@@ -1752,6 +2030,11 @@ onetime@^5.1.0: ...@@ -1752,6 +2030,11 @@ onetime@^5.1.0:
1752 dependencies: 2030 dependencies:
1753 mimic-fn "^2.1.0" 2031 mimic-fn "^2.1.0"
1754 2032
2033 +only@~0.0.2:
2034 + version "0.0.2"
2035 + resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
2036 + integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
2037 +
1755 optionator@^0.9.1: 2038 optionator@^0.9.1:
1756 version "0.9.1" 2039 version "0.9.1"
1757 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 2040 resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
...@@ -1804,7 +2087,14 @@ parent-module@^1.0.0: ...@@ -1804,7 +2087,14 @@ parent-module@^1.0.0:
1804 dependencies: 2087 dependencies:
1805 callsites "^3.0.0" 2088 callsites "^3.0.0"
1806 2089
1807 -parseurl@~1.3.3: 2090 +parse5@^3.0.1:
2091 + version "3.0.3"
2092 + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
2093 + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==
2094 + dependencies:
2095 + "@types/node" "*"
2096 +
2097 +parseurl@^1.3.2, parseurl@~1.3.3:
1808 version "1.3.3" 2098 version "1.3.3"
1809 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2099 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
1810 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2100 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
...@@ -1829,6 +2119,11 @@ path-to-regexp@0.1.7: ...@@ -1829,6 +2119,11 @@ path-to-regexp@0.1.7:
1829 resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2119 resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
1830 integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 2120 integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
1831 2121
2122 +path-to-regexp@^6.1.0:
2123 + version "6.1.0"
2124 + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.1.0.tgz#0b18f88b7a0ce0bfae6a25990c909ab86f512427"
2125 + integrity sha512-h9DqehX3zZZDCEm+xbfU0ZmwCGFCAAraPJWMXJ4+v32NjZJilVg3k1TcKsRgIb8IQ/izZSaydDc1OhJCZvs2Dw==
2126 +
1832 path@^0.12.7: 2127 path@^0.12.7:
1833 version "0.12.7" 2128 version "0.12.7"
1834 resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" 2129 resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"
...@@ -1905,6 +2200,11 @@ qs@6.7.0: ...@@ -1905,6 +2200,11 @@ qs@6.7.0:
1905 resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 2200 resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
1906 integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 2201 integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
1907 2202
2203 +qs@~2.4.1:
2204 + version "2.4.2"
2205 + resolved "https://registry.yarnpkg.com/qs/-/qs-2.4.2.tgz#f7ce788e5777df0b5010da7f7c4e73ba32470f5a"
2206 + integrity sha1-9854jld33wtQENp/fE5zujJHD1o=
2207 +
1908 range-parser@~1.2.1: 2208 range-parser@~1.2.1:
1909 version "1.2.1" 2209 version "1.2.1"
1910 resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 2210 resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
...@@ -1920,6 +2220,14 @@ raw-body@2.4.0: ...@@ -1920,6 +2220,14 @@ raw-body@2.4.0:
1920 iconv-lite "0.4.24" 2220 iconv-lite "0.4.24"
1921 unpipe "1.0.0" 2221 unpipe "1.0.0"
1922 2222
2223 +raw-body@~1.3.4:
2224 + version "1.3.4"
2225 + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.3.4.tgz#ccc7ddfc46b72861cdd5bb433c840b70b6f27f54"
2226 + integrity sha1-zMfd/Ea3KGHN1btDPIQLcLbyf1Q=
2227 + dependencies:
2228 + bytes "1.0.0"
2229 + iconv-lite "0.4.8"
2230 +
1923 rc@^1.2.7, rc@^1.2.8: 2231 rc@^1.2.7, rc@^1.2.8:
1924 version "1.2.8" 2232 version "1.2.8"
1925 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2233 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
...@@ -1943,6 +2251,15 @@ readable-stream@^2.0.6, readable-stream@^2.3.5: ...@@ -1943,6 +2251,15 @@ readable-stream@^2.0.6, readable-stream@^2.3.5:
1943 string_decoder "~1.1.1" 2251 string_decoder "~1.1.1"
1944 util-deprecate "~1.0.1" 2252 util-deprecate "~1.0.1"
1945 2253
2254 +readable-stream@^3.1.1:
2255 + version "3.6.0"
2256 + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
2257 + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
2258 + dependencies:
2259 + inherits "^2.0.3"
2260 + string_decoder "^1.1.1"
2261 + util-deprecate "^1.0.1"
2262 +
1946 readdirp@~3.4.0: 2263 readdirp@~3.4.0:
1947 version "3.4.0" 2264 version "3.4.0"
1948 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" 2265 resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
...@@ -2045,7 +2362,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: ...@@ -2045,7 +2362,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
2045 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2362 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
2046 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2363 integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
2047 2364
2048 -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: 2365 +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
2049 version "5.2.1" 2366 version "5.2.1"
2050 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2367 resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
2051 integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2368 integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
...@@ -2181,7 +2498,7 @@ sprintf-js@~1.0.2: ...@@ -2181,7 +2498,7 @@ sprintf-js@~1.0.2:
2181 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2498 resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
2182 integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2499 integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
2183 2500
2184 -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: 2501 +"statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0:
2185 version "1.5.0" 2502 version "1.5.0"
2186 resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 2503 resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
2187 integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 2504 integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
...@@ -2221,6 +2538,13 @@ string-width@^4.0.0, string-width@^4.1.0: ...@@ -2221,6 +2538,13 @@ string-width@^4.0.0, string-width@^4.1.0:
2221 is-fullwidth-code-point "^3.0.0" 2538 is-fullwidth-code-point "^3.0.0"
2222 strip-ansi "^6.0.0" 2539 strip-ansi "^6.0.0"
2223 2540
2541 +string_decoder@^1.1.1:
2542 + version "1.3.0"
2543 + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
2544 + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
2545 + dependencies:
2546 + safe-buffer "~5.2.0"
2547 +
2224 string_decoder@~1.1.1: 2548 string_decoder@~1.1.1:
2225 version "1.1.1" 2549 version "1.1.1"
2226 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 2550 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
...@@ -2366,6 +2690,11 @@ tslib@^1.9.0: ...@@ -2366,6 +2690,11 @@ tslib@^1.9.0:
2366 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" 2690 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
2367 integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== 2691 integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
2368 2692
2693 +tsscmp@1.0.6:
2694 + version "1.0.6"
2695 + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
2696 + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
2697 +
2369 type-check@^0.4.0, type-check@~0.4.0: 2698 type-check@^0.4.0, type-check@~0.4.0:
2370 version "0.4.0" 2699 version "0.4.0"
2371 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2700 resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
...@@ -2383,7 +2712,7 @@ type-fest@^0.8.1: ...@@ -2383,7 +2712,7 @@ type-fest@^0.8.1:
2383 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 2712 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
2384 integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 2713 integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
2385 2714
2386 -type-is@~1.6.17, type-is@~1.6.18: 2715 +type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18:
2387 version "1.6.18" 2716 version "1.6.18"
2388 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2717 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
2389 integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 2718 integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
...@@ -2450,7 +2779,7 @@ url-parse-lax@^3.0.0: ...@@ -2450,7 +2779,7 @@ url-parse-lax@^3.0.0:
2450 dependencies: 2779 dependencies:
2451 prepend-http "^2.0.0" 2780 prepend-http "^2.0.0"
2452 2781
2453 -util-deprecate@~1.0.1: 2782 +util-deprecate@^1.0.1, util-deprecate@~1.0.1:
2454 version "1.0.2" 2783 version "1.0.2"
2455 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2784 resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2456 integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 2785 integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
...@@ -2472,11 +2801,16 @@ v8-compile-cache@^2.0.3: ...@@ -2472,11 +2801,16 @@ v8-compile-cache@^2.0.3:
2472 resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" 2801 resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
2473 integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== 2802 integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==
2474 2803
2475 -vary@~1.1.2: 2804 +vary@^1.1.2, vary@~1.1.2:
2476 version "1.1.2" 2805 version "1.1.2"
2477 resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2806 resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
2478 integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 2807 integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
2479 2808
2809 +voca@^1.4.0:
2810 + version "1.4.0"
2811 + resolved "https://registry.yarnpkg.com/voca/-/voca-1.4.0.tgz#e15ac58b38290b72acc0c330366b6cc7984924d7"
2812 + integrity sha512-8Xz4H3vhYRGbFupLtl6dHwMx0ojUcjt0HYkqZ9oBCfipd/5mD7Md58m2/dq7uPuZU/0T3Gb1m66KS9jn+I+14Q==
2813 +
2480 which@^2.0.1: 2814 which@^2.0.1:
2481 version "2.0.2" 2815 version "2.0.2"
2482 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2816 resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
...@@ -2534,3 +2868,8 @@ yallist@^3.0.0, yallist@^3.0.3: ...@@ -2534,3 +2868,8 @@ yallist@^3.0.0, yallist@^3.0.3:
2534 version "3.1.1" 2868 version "3.1.1"
2535 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2869 resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
2536 integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 2870 integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
2871 +
2872 +ylru@^1.2.0:
2873 + version "1.2.1"
2874 + resolved "https://registry.yarnpkg.com/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
2875 + integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==
......