Commit 3b23fc5d authored by nanahira's avatar nanahira

rework with http server

parent 7eecf9c8
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^9.0.3 || ^8.0.0", "@nestjs/common": "^9.0.3 || ^8.0.0",
"@nestjs/core": "^9.0.3 || ^8.0.0", "@nestjs/core": "^9.0.3 || ^8.0.0",
"koishi": "^4.11.1", "koishi": "^4.11.4",
"rxjs": "^7.5.5" "rxjs": "^7.5.5"
} }
}, },
...@@ -1241,23 +1241,23 @@ ...@@ -1241,23 +1241,23 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.11.1", "version": "4.11.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.4.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==", "integrity": "sha512-biwbprUTBreFgCyRaJc46Oenp/xcrWkxrrQ/9+YxWgSTQ7AF/a1Qz5XW3fN5wGdeHV/MhBTNdoS2y/+0V8Ew0g==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.1", "@minatojs/core": "^2.1.2",
"@satorijs/core": "^2.0.1", "@satorijs/core": "^2.1.0",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
"node_modules/@koishijs/loader": { "node_modules/@koishijs/loader": {
"version": "2.5.1", "version": "2.5.4",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.4.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==", "integrity": "sha512-MAXhmVsXch7d4RkO3enXC/RG2GXcdu8wm/Vsmv1/G7B21e3UUSr6fubY/b84NA8mfxlpW11jYPh8Y51j7vCsVQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
...@@ -1265,7 +1265,7 @@ ...@@ -1265,7 +1265,7 @@
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
}, },
"peerDependencies": { "peerDependencies": {
"@koishijs/core": "^4.11.1" "@koishijs/core": "4.11.4"
} }
}, },
"node_modules/@koishijs/loader/node_modules/argparse": { "node_modules/@koishijs/loader/node_modules/argparse": {
...@@ -1287,21 +1287,19 @@ ...@@ -1287,21 +1287,19 @@
} }
}, },
"node_modules/@koishijs/utils": { "node_modules/@koishijs/utils": {
"version": "6.4.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==", "integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"inaba": "^1.1.1", "inaba": "^1.1.1"
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
} }
}, },
"node_modules/@minatojs/core": { "node_modules/@minatojs/core": {
"version": "2.1.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.2.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==", "integrity": "sha512-7VDn+G2QybsDVlmZ0wcYeB0IN8q//qO5WZSdYizTcsXx1bCKEU+AUn/UPWN3eHRXvhVNI3YRBAoEKxkp357lDw==",
"dependencies": { "dependencies": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
...@@ -1573,17 +1571,17 @@ ...@@ -1573,17 +1571,17 @@
} }
}, },
"node_modules/@satorijs/core": { "node_modules/@satorijs/core": {
"version": "2.0.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.0.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==", "integrity": "sha512-2LduZz57SRyJ/Op5iqO1UUv0Q3UkuDIz3gk8j94orDYchN397MfxTv+uy3awGwKUlgfdCw2s3FloE7FL9UgopA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@satorijs/element": "^2.3.1", "@satorijs/element": "^2.3.1",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cordis-axios": "^2.2.1", "cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"reggol": "^1.3.4", "reggol": "^1.3.5",
"schemastery": "^3.6.1", "schemastery": "^3.7.0",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
...@@ -1597,13 +1595,13 @@ ...@@ -1597,13 +1595,13 @@
} }
}, },
"node_modules/@satorijs/satori": { "node_modules/@satorijs/satori": {
"version": "2.0.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.0.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==", "integrity": "sha512-VZX3cJvuxxWCYpp4hok0NFRsGZL+5jE5EbfyibKL3XjsC/9MmtPSdbECfPstQS1PmGcoOAaq15DCSTy/rnSalA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1", "@satorijs/core": "2.1.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -1615,7 +1613,6 @@ ...@@ -1615,7 +1613,6 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
...@@ -2932,30 +2929,29 @@ ...@@ -2932,30 +2929,29 @@
"integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
}, },
"node_modules/cordis": { "node_modules/cordis": {
"version": "2.6.0", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==", "integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.3" "cosmokit": "^1.4.0"
} }
}, },
"node_modules/cordis-axios": { "node_modules/cordis-axios": {
"version": "2.2.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==", "integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"mime-db": "^1.52.0", "mime-db": "^1.52.0"
"schemastery": "^3.6.1"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"cordis": "^2.6.0" "cordis": "^2.7.2"
} }
}, },
"node_modules/cordis-decorators": { "node_modules/cordis-decorators": {
...@@ -5344,15 +5340,15 @@ ...@@ -5344,15 +5340,15 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.11.1", "version": "4.11.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.4.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==", "integrity": "sha512-FLngGwsCHvoPdEbzVCGB0KExxh0yJcQ5ivaepTTusqPH7oQeZHo9ROb02ncVAw7ZPpWrUDOzqlyIFdtS6OPcRg==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/core": "4.11.1", "@koishijs/core": "4.11.4",
"@koishijs/loader": "^2.5.1", "@koishijs/loader": "2.5.4",
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.0.1", "@satorijs/satori": "^2.1.0",
"cac": "^6.7.14", "cac": "^6.7.14",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"kleur": "^4.1.5", "kleur": "^4.1.5",
...@@ -6389,12 +6385,12 @@ ...@@ -6389,12 +6385,12 @@
} }
}, },
"node_modules/reggol": { "node_modules/reggol": {
"version": "1.3.4", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==", "integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.6", "cosmokit": "^1.4.0",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
} }
...@@ -6602,12 +6598,12 @@ ...@@ -6602,12 +6598,12 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"node_modules/schemastery": { "node_modules/schemastery": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==", "integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.4" "cosmokit": "^1.4.0"
} }
}, },
"node_modules/schemastery-gen": { "node_modules/schemastery-gen": {
...@@ -8592,23 +8588,23 @@ ...@@ -8592,23 +8588,23 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.11.1", "version": "4.11.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.4.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==", "integrity": "sha512-biwbprUTBreFgCyRaJc46Oenp/xcrWkxrrQ/9+YxWgSTQ7AF/a1Qz5XW3fN5wGdeHV/MhBTNdoS2y/+0V8Ew0g==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.1", "@minatojs/core": "^2.1.2",
"@satorijs/core": "^2.0.1", "@satorijs/core": "^2.1.0",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
"@koishijs/loader": { "@koishijs/loader": {
"version": "2.5.1", "version": "2.5.4",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz", "resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.4.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==", "integrity": "sha512-MAXhmVsXch7d4RkO3enXC/RG2GXcdu8wm/Vsmv1/G7B21e3UUSr6fubY/b84NA8mfxlpW11jYPh8Y51j7vCsVQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"dotenv": "^16.0.3", "dotenv": "^16.0.3",
...@@ -8634,21 +8630,19 @@ ...@@ -8634,21 +8630,19 @@
} }
}, },
"@koishijs/utils": { "@koishijs/utils": {
"version": "6.4.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==", "integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"inaba": "^1.1.1", "inaba": "^1.1.1"
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
} }
}, },
"@minatojs/core": { "@minatojs/core": {
"version": "2.1.1", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.2.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==", "integrity": "sha512-7VDn+G2QybsDVlmZ0wcYeB0IN8q//qO5WZSdYizTcsXx1bCKEU+AUn/UPWN3eHRXvhVNI3YRBAoEKxkp357lDw==",
"requires": { "requires": {
"cosmokit": "^1.4.0" "cosmokit": "^1.4.0"
} }
...@@ -8781,17 +8775,17 @@ ...@@ -8781,17 +8775,17 @@
} }
}, },
"@satorijs/core": { "@satorijs/core": {
"version": "2.0.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.0.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==", "integrity": "sha512-2LduZz57SRyJ/Op5iqO1UUv0Q3UkuDIz3gk8j94orDYchN397MfxTv+uy3awGwKUlgfdCw2s3FloE7FL9UgopA==",
"peer": true, "peer": true,
"requires": { "requires": {
"@satorijs/element": "^2.3.1", "@satorijs/element": "^2.3.1",
"cordis": "^2.6.0", "cordis": "^2.7.2",
"cordis-axios": "^2.2.1", "cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"reggol": "^1.3.4", "reggol": "^1.3.5",
"schemastery": "^3.6.1", "schemastery": "^3.7.0",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
...@@ -8805,13 +8799,13 @@ ...@@ -8805,13 +8799,13 @@
} }
}, },
"@satorijs/satori": { "@satorijs/satori": {
"version": "2.0.1", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.0.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==", "integrity": "sha512-VZX3cJvuxxWCYpp4hok0NFRsGZL+5jE5EbfyibKL3XjsC/9MmtPSdbECfPstQS1PmGcoOAaq15DCSTy/rnSalA==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1", "@satorijs/core": "2.1.0",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -8823,7 +8817,6 @@ ...@@ -8823,7 +8817,6 @@
"koa-bodyparser": "^4.3.0", "koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3", "parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1", "path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
...@@ -9870,24 +9863,23 @@ ...@@ -9870,24 +9863,23 @@
"integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==" "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
}, },
"cordis": { "cordis": {
"version": "2.6.0", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz", "resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==", "integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.3" "cosmokit": "^1.4.0"
} }
}, },
"cordis-axios": { "cordis-axios": {
"version": "2.2.1", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==", "integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true, "peer": true,
"requires": { "requires": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.4.0", "cosmokit": "^1.4.0",
"mime-db": "^1.52.0", "mime-db": "^1.52.0"
"schemastery": "^3.6.1"
} }
}, },
"cordis-decorators": { "cordis-decorators": {
...@@ -11705,15 +11697,15 @@ ...@@ -11705,15 +11697,15 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.11.1", "version": "4.11.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.4.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==", "integrity": "sha512-FLngGwsCHvoPdEbzVCGB0KExxh0yJcQ5ivaepTTusqPH7oQeZHo9ROb02ncVAw7ZPpWrUDOzqlyIFdtS6OPcRg==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/core": "4.11.1", "@koishijs/core": "4.11.4",
"@koishijs/loader": "^2.5.1", "@koishijs/loader": "2.5.4",
"@koishijs/utils": "^6.4.0", "@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.0.1", "@satorijs/satori": "^2.1.0",
"cac": "^6.7.14", "cac": "^6.7.14",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"kleur": "^4.1.5", "kleur": "^4.1.5",
...@@ -12505,12 +12497,12 @@ ...@@ -12505,12 +12497,12 @@
"dev": true "dev": true
}, },
"reggol": { "reggol": {
"version": "1.3.4", "version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==", "integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.6", "cosmokit": "^1.4.0",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
}, },
...@@ -12648,12 +12640,12 @@ ...@@ -12648,12 +12640,12 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
}, },
"schemastery": { "schemastery": {
"version": "3.6.1", "version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==", "integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.4" "cosmokit": "^1.4.0"
} }
}, },
"schemastery-gen": { "schemastery-gen": {
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^9.0.3 || ^8.0.0", "@nestjs/common": "^9.0.3 || ^8.0.0",
"@nestjs/core": "^9.0.3 || ^8.0.0", "@nestjs/core": "^9.0.3 || ^8.0.0",
"koishi": "^4.11.1", "koishi": "^4.11.4",
"rxjs": "^7.5.5" "rxjs": "^7.5.5"
}, },
"devDependencies": { "devDependencies": {
......
import { Command, Context } from 'koishi'; import { Command, Context, Router } from 'koishi';
import { import {
Inject, Inject,
Injectable, Injectable,
...@@ -10,15 +10,13 @@ import { ...@@ -10,15 +10,13 @@ import {
KoishiCommandInterceptorRegistration, KoishiCommandInterceptorRegistration,
KoishiModuleOptions, KoishiModuleOptions,
} from './utility/koishi.interfaces'; } from './utility/koishi.interfaces';
import { createServer, Server } from 'http'; import { Server } from 'http';
import Koa from 'koa'; import Koa from 'koa';
import KoaBodyParser from 'koa-bodyparser'; import KoaBodyParser from 'koa-bodyparser';
import { KoishiMetascanService } from './providers/koishi-metascan.service'; import { KoishiMetascanService } from './providers/koishi-metascan.service';
import { KOISHI_MODULE_OPTIONS, KoishiIpSym } from './utility/koishi.constants'; import { KOISHI_MODULE_OPTIONS, KoishiIpSym } from './utility/koishi.constants';
import { KoishiLoggerService } from './providers/koishi-logger.service'; import { KoishiLoggerService } from './providers/koishi-logger.service';
import { KoishiHttpDiscoveryService } from './koishi-http-discovery/koishi-http-discovery.service'; import { KoishiHttpDiscoveryService } from './koishi-http-discovery/koishi-http-discovery.service';
import WebSocket from 'ws';
import { KoishiNestRouter } from './utility/koa-router';
import './utility/koishi.workarounds'; import './utility/koishi.workarounds';
import './utility/koishi.declares'; import './utility/koishi.declares';
import { selectContext } from 'koishi-thirdeye'; import { selectContext } from 'koishi-thirdeye';
...@@ -43,7 +41,6 @@ export class KoishiService ...@@ -43,7 +41,6 @@ export class KoishiService
}); });
this.baseDir ??= process.cwd(); this.baseDir ??= process.cwd();
this.interceptors = this.koishiModuleOptions.globalInterceptors; this.interceptors = this.koishiModuleOptions.globalInterceptors;
this.router = new KoishiNestRouter();
this._nestKoaTmpInstance.use((ctx, next) => { this._nestKoaTmpInstance.use((ctx, next) => {
ctx.request.ip = ctx.req[KoishiIpSym]; ctx.request.ip = ctx.req[KoishiIpSym];
return next(); return next();
...@@ -63,18 +60,6 @@ export class KoishiService ...@@ -63,18 +60,6 @@ export class KoishiService
this.router._http = httpServer; this.router._http = httpServer;
} else { } else {
this.logger('app').info('No http adapters found from Nest application.'); this.logger('app').info('No http adapters found from Nest application.');
const tmpServer = createServer(this._nestKoaTmpInstance.callback());
this.router._http = tmpServer;
this.router._ws = new WebSocket.Server({
server: tmpServer,
});
this.router._ws.on('connection', (socket, request) => {
for (const manager of this.router.wsStack) {
if (manager.accept(socket, request)) return;
}
socket.close();
});
} }
} }
......
import KoaRouter from '@koa/router';
import { Context, MaybeArray, remove, WebSocketLayer } from 'koishi';
import { IncomingMessage } from 'http';
import WebSocket from 'ws';
export class KoishiNestRouter extends KoaRouter {
wsStack: WebSocketLayer[] = [];
/**
* hack into router methods to make sure that koa middlewares are disposable
*/
override register(...args: Parameters<KoaRouter['register']>) {
const layer = super.register(...args);
const context: Context = this[Context.current];
context?.state.disposables.push(() => {
remove(this.stack, layer);
});
return layer;
}
ws(
path: MaybeArray<string | RegExp>,
callback?: (socket: WebSocket, request: IncomingMessage) => void,
) {
const layer = new WebSocketLayer(this, path, callback);
this.wsStack.push(layer);
const context: Context = this[Context.current];
context?.state.disposables.push(() => layer.close());
return layer;
}
}
...@@ -186,13 +186,4 @@ describe('Koishi in Nest.js', () => { ...@@ -186,13 +186,4 @@ describe('Koishi in Nest.js', () => {
expect(command).toBeDefined(); expect(command).toBeDefined();
expect(command.execute({ options: {} })).resolves.toBe('miiii'); expect(command.execute({ options: {} })).resolves.toBe('miiii');
}); });
it('should handle partial dep', async () => {
koishiApp['ping'] = { ping: 'pong' };
expect(await koishiApp.waterfall(<EventName>'ping')).toBe('pong');
koishiApp['ping'] = undefined;
expect(await koishiApp.waterfall(<EventName>'ping')).toBeUndefined();
koishiApp['ping'] = { ping: 'pong' };
expect(await koishiApp.waterfall(<EventName>'ping')).toBe('pong');
});
}); });
...@@ -96,14 +96,6 @@ export class KoishiTestService { ...@@ -96,14 +96,6 @@ export class KoishiTestService {
async onAbstract(@PutValue('{{abstract.content}}') content: string) { async onAbstract(@PutValue('{{abstract.content}}') content: string) {
return content; return content;
} }
@UsingService('ping')
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
@UseEvent('ping')
async onPing() {
return 'pong';
}
} }
@RegisterSchema() @RegisterSchema()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment