removed koa-bodyparser

Massimo Melina committed Jan 24, 2022 at 10:38 UTC 7c9bab5412c1540ac563eff635035006dcd8792d
4 files changed +39 -204
package-lock.json
+17 -193
@@ -14,7 +14,6 @@
14 "buffer-crc32": "https://github.com/rejetto/buffer-crc32.git",
15 "fast-glob": "^3.2.7",
16 "koa": "^2.13.4",
17 - "koa-bodyparser": "^4.3.0",
17 "koa-compress": "^5.1.0",
18 "koa-mount": "^4.0.0",
19 "koa-session": "^6.2.0",
@@ -33,7 +32,6 @@
32 "@types/axios": "^0.14.0",
33 "@types/koa": "^2.13.4",
34 "@types/koa__router": "^8.0.11",
36 - "@types/koa-bodyparser": "^4.3.4",
35 "@types/koa-compress": "^4.0.3",
36 "@types/koa-mount": "^4.0.1",
37 "@types/koa-session": "^5.10.4",
@@ -609,15 +607,6 @@
607 "@types/koa": "*"
608 }
609 },
612 - "node_modules/@types/koa-bodyparser": {
613 - "version": "4.3.5",
614 - "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz",
615 - "integrity": "sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ==",
616 - "dev": true,
617 - "dependencies": {
618 - "@types/koa": "*"
619 - }
620 - },
610 "node_modules/@types/koa-compose": {
611 "version": "3.2.5",
612 "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
@@ -1041,18 +1030,6 @@
1030 "node": ">=8"
1031 }
1032 },
1044 - "node_modules/call-bind": {
1045 - "version": "1.0.2",
1046 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
1047 - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
1048 - "dependencies": {
1049 - "function-bind": "^1.1.1",
1050 - "get-intrinsic": "^1.0.2"
1051 - },
1052 - "funding": {
1053 - "url": "https://github.com/sponsors/ljharb"
1054 - }
1055 - },
1033 "node_modules/camelcase": {
1034 "version": "6.2.1",
1035 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz",
@@ -1196,17 +1173,6 @@
1173 "node": ">= 0.12.0"
1174 }
1175 },
1199 - "node_modules/co-body": {
1200 - "version": "6.1.0",
1201 - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
1202 - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
1203 - "dependencies": {
1204 - "inflation": "^2.0.0",
1205 - "qs": "^6.5.2",
1206 - "raw-body": "^2.3.3",
1207 - "type-is": "^1.6.16"
1208 - }
1209 - },
1176 "node_modules/color-convert": {
1177 "version": "2.0.1",
1178 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -1299,11 +1265,6 @@
1265 "node": ">= 0.8"
1266 }
1267 },
1302 - "node_modules/copy-to": {
1303 - "version": "2.0.1",
1304 - "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
1305 - "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
1306 - },
1268 "node_modules/core-util-is": {
1269 "version": "1.0.3",
1270 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -1711,7 +1672,8 @@
1672 "node_modules/function-bind": {
1673 "version": "1.1.1",
1674 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1714 - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1675 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1676 + "dev": true
1677 },
1678 "node_modules/get-caller-file": {
1679 "version": "2.0.5",
@@ -1722,19 +1684,6 @@
1684 "node": "6.* || 8.* || >= 10.*"
1685 }
1686 },
1725 - "node_modules/get-intrinsic": {
1726 - "version": "1.1.1",
1727 - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1728 - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1729 - "dependencies": {
1730 - "function-bind": "^1.1.1",
1731 - "has": "^1.0.3",
1732 - "has-symbols": "^1.0.1"
1733 - },
1734 - "funding": {
1735 - "url": "https://github.com/sponsors/ljharb"
1736 - }
1737 - },
1687 "node_modules/get-stream": {
1688 "version": "4.1.0",
1689 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -1823,6 +1772,7 @@
1772 "version": "1.0.3",
1773 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1774 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1775 + "dev": true,
1776 "dependencies": {
1777 "function-bind": "^1.1.1"
1778 },
@@ -1939,6 +1889,7 @@
1889 "version": "0.4.24",
1890 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1891 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1892 + "dev": true,
1893 "dependencies": {
1894 "safer-buffer": ">= 2.1.2 < 3"
1895 },
@@ -1998,14 +1949,6 @@
1949 "node": ">=8"
1950 }
1951 },
2001 - "node_modules/inflation": {
2002 - "version": "2.0.0",
2003 - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
2004 - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=",
2005 - "engines": {
2006 - "node": ">= 0.8.0"
2007 - }
2008 - },
1952 "node_modules/inflight": {
1953 "version": "1.0.6",
1954 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2360,18 +2303,6 @@
2303 "node": ">=10.0.0"
2304 }
2305 },
2363 - "node_modules/koa-bodyparser": {
2364 - "version": "4.3.0",
2365 - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
2366 - "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==",
2367 - "dependencies": {
2368 - "co-body": "^6.0.0",
2369 - "copy-to": "^2.0.1"
2370 - },
2371 - "engines": {
2372 - "node": ">=8.0.0"
2373 - }
2374 - },
2306 "node_modules/koa-compose": {
2307 "version": "4.1.0",
2308 "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
@@ -3134,14 +3065,6 @@
3065 "node": ">=8"
3066 }
3067 },
3137 - "node_modules/object-inspect": {
3138 - "version": "1.12.0",
3139 - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
3140 - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
3141 - "funding": {
3142 - "url": "https://github.com/sponsors/ljharb"
3143 - }
3144 - },
3068 "node_modules/on-finished": {
3069 "version": "2.3.0",
3070 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -3364,20 +3287,6 @@
3287 "node": ">=8"
3288 }
3289 },
3367 - "node_modules/qs": {
3368 - "version": "6.10.2",
3369 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz",
3370 - "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==",
3371 - "dependencies": {
3372 - "side-channel": "^1.0.4"
3373 - },
3374 - "engines": {
3375 - "node": ">=0.6"
3376 - },
3377 - "funding": {
3378 - "url": "https://github.com/sponsors/ljharb"
3379 - }
3380 - },
3290 "node_modules/queue-microtask": {
3291 "version": "1.2.3",
3292 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -3419,6 +3328,7 @@
3328 "version": "2.4.2",
3329 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
3330 "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
3331 + "dev": true,
3332 "dependencies": {
3333 "bytes": "3.1.1",
3334 "http-errors": "1.8.1",
@@ -3641,7 +3551,8 @@
3551 "node_modules/safer-buffer": {
3552 "version": "2.1.2",
3553 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3644 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3554 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3555 + "dev": true
3556 },
3557 "node_modules/semver": {
3558 "version": "5.7.1",
@@ -3687,19 +3598,6 @@
3598 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
3599 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
3600 },
3690 - "node_modules/side-channel": {
3691 - "version": "1.0.4",
3692 - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
3693 - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
3694 - "dependencies": {
3695 - "call-bind": "^1.0.0",
3696 - "get-intrinsic": "^1.0.2",
3697 - "object-inspect": "^1.9.0"
3698 - },
3699 - "funding": {
3700 - "url": "https://github.com/sponsors/ljharb"
3701 - }
3702 - },
3601 "node_modules/signal-exit": {
3602 "version": "3.0.6",
3603 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
@@ -4007,6 +3905,7 @@
3905 "version": "1.0.0",
3906 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3907 "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
3908 + "dev": true,
3909 "engines": {
3910 "node": ">= 0.8"
3911 }
@@ -4692,15 +4591,6 @@
4591 "@types/koa": "*"
4592 }
4593 },
4695 - "@types/koa-bodyparser": {
4696 - "version": "4.3.5",
4697 - "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz",
4698 - "integrity": "sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ==",
4699 - "dev": true,
4700 - "requires": {
4701 - "@types/koa": "*"
4702 - }
4703 - },
4594 "@types/koa-compose": {
4595 "version": "3.2.5",
4596 "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
@@ -5034,15 +4924,6 @@
4924 }
4925 }
4926 },
5037 - "call-bind": {
5038 - "version": "1.0.2",
5039 - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
5040 - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
5041 - "requires": {
5042 - "function-bind": "^1.1.1",
5043 - "get-intrinsic": "^1.0.2"
5044 - }
5045 - },
4927 "camelcase": {
4928 "version": "6.2.1",
4929 "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz",
@@ -5148,17 +5029,6 @@
5029 "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
5030 "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
5031 },
5151 - "co-body": {
5152 - "version": "6.1.0",
5153 - "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
5154 - "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
5155 - "requires": {
5156 - "inflation": "^2.0.0",
5157 - "qs": "^6.5.2",
5158 - "raw-body": "^2.3.3",
5159 - "type-is": "^1.6.16"
5160 - }
5161 - },
5032 "color-convert": {
5033 "version": "2.0.1",
5034 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -5230,11 +5100,6 @@
5100 "keygrip": "~1.1.0"
5101 }
5102 },
5233 - "copy-to": {
5234 - "version": "2.0.1",
5235 - "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
5236 - "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
5237 - },
5103 "core-util-is": {
5104 "version": "1.0.3",
5105 "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -5543,7 +5408,8 @@
5408 "function-bind": {
5409 "version": "1.1.1",
5410 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
5546 - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
5411 + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
5412 + "dev": true
5413 },
5414 "get-caller-file": {
5415 "version": "2.0.5",
@@ -5551,16 +5417,6 @@
5417 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
5418 "dev": true
5419 },
5554 - "get-intrinsic": {
5555 - "version": "1.1.1",
5556 - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
5557 - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
5558 - "requires": {
5559 - "function-bind": "^1.1.1",
5560 - "has": "^1.0.3",
5561 - "has-symbols": "^1.0.1"
5562 - }
5563 - },
5420 "get-stream": {
5421 "version": "4.1.0",
5422 "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -5628,6 +5484,7 @@
5484 "version": "1.0.3",
5485 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
5486 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
5487 + "dev": true,
5488 "requires": {
5489 "function-bind": "^1.1.1"
5490 }
@@ -5710,6 +5567,7 @@
5567 "version": "0.4.24",
5568 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
5569 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
5570 + "dev": true,
5571 "requires": {
5572 "safer-buffer": ">= 2.1.2 < 3"
5573 }
@@ -5743,11 +5601,6 @@
5601 "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
5602 "dev": true
5603 },
5746 - "inflation": {
5747 - "version": "2.0.0",
5748 - "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
5749 - "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8="
5750 - },
5604 "inflight": {
5605 "version": "1.0.6",
5606 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6021,15 +5874,6 @@
5874 "winston": "^2.3.1"
5875 }
5876 },
6024 - "koa-bodyparser": {
6025 - "version": "4.3.0",
6026 - "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
6027 - "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==",
6028 - "requires": {
6029 - "co-body": "^6.0.0",
6030 - "copy-to": "^2.0.1"
6031 - }
6032 - },
5877 "koa-compose": {
5878 "version": "4.1.0",
5879 "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
@@ -6588,11 +6432,6 @@
6432 "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
6433 "dev": true
6434 },
6591 - "object-inspect": {
6592 - "version": "1.12.0",
6593 - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
6594 - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
6595 - },
6435 "on-finished": {
6436 "version": "2.3.0",
6437 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -6757,14 +6596,6 @@
6596 "escape-goat": "^2.0.0"
6597 }
6598 },
6760 - "qs": {
6761 - "version": "6.10.2",
6762 - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz",
6763 - "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==",
6764 - "requires": {
6765 - "side-channel": "^1.0.4"
6766 - }
6767 - },
6599 "queue-microtask": {
6600 "version": "1.2.3",
6601 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -6789,6 +6620,7 @@
6620 "version": "2.4.2",
6621 "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
6622 "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
6623 + "dev": true,
6624 "requires": {
6625 "bytes": "3.1.1",
6626 "http-errors": "1.8.1",
@@ -6957,7 +6789,8 @@
6789 "safer-buffer": {
6790 "version": "2.1.2",
6791 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
6960 - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
6792 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
6793 + "dev": true
6794 },
6795 "semver": {
6796 "version": "5.7.1",
@@ -6996,16 +6829,6 @@
6829 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
6830 "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
6831 },
6999 - "side-channel": {
7000 - "version": "1.0.4",
7001 - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
7002 - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
7003 - "requires": {
7004 - "call-bind": "^1.0.0",
7005 - "get-intrinsic": "^1.0.2",
7006 - "object-inspect": "^1.9.0"
7007 - }
7008 - },
6832 "signal-exit": {
6833 "version": "3.0.6",
6834 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
@@ -7224,7 +7047,8 @@
7047 "unpipe": {
7048 "version": "1.0.0",
7049 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
7227 - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
7050 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
7051 + "dev": true
7052 },
7053 "update-notifier": {
7054 "version": "5.1.0",
package.json
-2
@@ -34,7 +34,6 @@
34 "buffer-crc32": "https://github.com/rejetto/buffer-crc32.git",
35 "fast-glob": "^3.2.7",
36 "koa": "^2.13.4",
37 - "koa-bodyparser": "^4.3.0",
37 "koa-compress": "^5.1.0",
38 "koa-mount": "^4.0.0",
39 "koa-session": "^6.2.0",
@@ -50,7 +49,6 @@
49 "@types/axios": "^0.14.0",
50 "@types/koa": "^2.13.4",
51 "@types/koa__router": "^8.0.11",
53 - "@types/koa-bodyparser": "^4.3.4",
52 "@types/koa-compress": "^4.0.3",
53 "@types/koa-mount": "^4.0.1",
54 "@types/koa-session": "^5.10.4",
src/apis.ts
+18 -1
@@ -1,3 +1,4 @@
1 +import { IncomingMessage } from 'http'
2 import Koa from 'koa'
3
4 export class ApiError extends Error {
@@ -11,7 +12,7 @@ export type ApiHandlers = Record<string, ApiHandler>
12
13 export function apiMiddleware(apis: ApiHandlers) : Koa.Middleware {
14 return async (ctx, next) => {
14 - const params = ctx.method === 'POST' ? ctx.request.body : ctx.request.query
15 + const params = ctx.method === 'POST' ? await getJsonFromReq(ctx.req) : ctx.request.query
16 console.debug('API', ctx.method, ctx.path, { ...params })
17 if (!apis.hasOwnProperty(ctx.path)) {
18 ctx.body = 'invalid api'
@@ -43,3 +44,19 @@ export function apiMiddleware(apis: ApiHandlers) : Koa.Middleware {
44 }
45 }
46
47 +async function getJsonFromReq(req: IncomingMessage): Promise<any> {
48 + return new Promise((resolve, reject) => {
49 + let data = ''
50 + req.on('data', chunk =>
51 + data += chunk)
52 + req.on('error', reject)
53 + req.on('end', () => {
54 + try {
55 + resolve(JSON.parse(data))
56 + }
57 + catch(e) {
58 + reject(e)
59 + }
60 + })
61 + })
62 +}
src/index.ts
+4 -8
@@ -1,6 +1,5 @@
1 import Koa from 'koa'
2 import mount from 'koa-mount'
3 -import bodyParser from 'koa-bodyparser'
3 import { apiMiddleware } from './apis'
4 import { API_URI, DEV} from './const'
5 import { frontEndApis } from './frontEndApis'
@@ -31,18 +30,15 @@ app.use(throttler())
30 app.use(gzipper)
31
32 // serve apis
34 -app.use(mount(API_URI, new Koa()
35 - .use(bodyParser())
36 - .use(apiMiddleware(frontEndApis))
37 -))
38 -
33 +app.use(mount(API_URI, apiMiddleware(frontEndApis)))
34 app.use(frontendAndSharedFiles)
35 +app.on('error', errorHandler)
36
41 -app.on('error', err => {
37 +function errorHandler(err:Error & { code:string, path:string }) {
38 if (DEV && err.code === 'ENOENT' && err.path.endsWith('sockjs-node')) return // spam out
39 if (err.code === 'ECONNRESET' || err.code === 'ECONNABORTED') return // someone interrupted, don't care
40 console.error('server error', err)
45 -})
41 +}
42
43 process.on('uncaughtException', err => {
44 console.error(err)