Commit 3b23fc5d authored by nanahira's avatar nanahira

rework with http server

parent 7eecf9c8
......@@ -44,7 +44,7 @@
"peerDependencies": {
"@nestjs/common": "^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"
}
},
......@@ -1241,23 +1241,23 @@
}
},
"node_modules/@koishijs/core": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==",
"version": "4.11.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.4.tgz",
"integrity": "sha512-biwbprUTBreFgCyRaJc46Oenp/xcrWkxrrQ/9+YxWgSTQ7AF/a1Qz5XW3fN5wGdeHV/MhBTNdoS2y/+0V8Ew0g==",
"peer": true,
"dependencies": {
"@koishijs/utils": "^6.4.0",
"@minatojs/core": "^2.1.1",
"@satorijs/core": "^2.0.1",
"cordis": "^2.6.0",
"@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.2",
"@satorijs/core": "^2.1.0",
"cordis": "^2.7.2",
"cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16"
}
},
"node_modules/@koishijs/loader": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==",
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.4.tgz",
"integrity": "sha512-MAXhmVsXch7d4RkO3enXC/RG2GXcdu8wm/Vsmv1/G7B21e3UUSr6fubY/b84NA8mfxlpW11jYPh8Y51j7vCsVQ==",
"peer": true,
"dependencies": {
"dotenv": "^16.0.3",
......@@ -1265,7 +1265,7 @@
"ns-require": "^1.1.4"
},
"peerDependencies": {
"@koishijs/core": "^4.11.1"
"@koishijs/core": "4.11.4"
}
},
"node_modules/@koishijs/loader/node_modules/argparse": {
......@@ -1287,21 +1287,19 @@
}
},
"node_modules/@koishijs/utils": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true,
"dependencies": {
"cosmokit": "^1.4.0",
"inaba": "^1.1.1",
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
"inaba": "^1.1.1"
}
},
"node_modules/@minatojs/core": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.2.tgz",
"integrity": "sha512-7VDn+G2QybsDVlmZ0wcYeB0IN8q//qO5WZSdYizTcsXx1bCKEU+AUn/UPWN3eHRXvhVNI3YRBAoEKxkp357lDw==",
"dependencies": {
"cosmokit": "^1.4.0"
}
......@@ -1573,17 +1571,17 @@
}
},
"node_modules/@satorijs/core": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.0.tgz",
"integrity": "sha512-2LduZz57SRyJ/Op5iqO1UUv0Q3UkuDIz3gk8j94orDYchN397MfxTv+uy3awGwKUlgfdCw2s3FloE7FL9UgopA==",
"peer": true,
"dependencies": {
"@satorijs/element": "^2.3.1",
"cordis": "^2.6.0",
"cordis-axios": "^2.2.1",
"cordis": "^2.7.2",
"cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0",
"reggol": "^1.3.4",
"schemastery": "^3.6.1",
"reggol": "^1.3.5",
"schemastery": "^3.7.0",
"ws": "^8.11.0"
}
},
......@@ -1597,13 +1595,13 @@
}
},
"node_modules/@satorijs/satori": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.0.tgz",
"integrity": "sha512-VZX3cJvuxxWCYpp4hok0NFRsGZL+5jE5EbfyibKL3XjsC/9MmtPSdbECfPstQS1PmGcoOAaq15DCSTy/rnSalA==",
"peer": true,
"dependencies": {
"@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1",
"@satorijs/core": "2.1.0",
"@types/koa": "*",
"@types/koa__router": "*",
"@types/ws": "^8.5.3",
......@@ -1615,7 +1613,6 @@
"koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0"
},
......@@ -2932,30 +2929,29 @@
"integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
},
"node_modules/cordis": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==",
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.3"
"cosmokit": "^1.4.0"
}
},
"node_modules/cordis-axios": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true,
"dependencies": {
"axios": "~1.1.3",
"cosmokit": "^1.4.0",
"mime-db": "^1.52.0",
"schemastery": "^3.6.1"
"mime-db": "^1.52.0"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"cordis": "^2.6.0"
"cordis": "^2.7.2"
}
},
"node_modules/cordis-decorators": {
......@@ -5344,15 +5340,15 @@
}
},
"node_modules/koishi": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==",
"version": "4.11.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.4.tgz",
"integrity": "sha512-FLngGwsCHvoPdEbzVCGB0KExxh0yJcQ5ivaepTTusqPH7oQeZHo9ROb02ncVAw7ZPpWrUDOzqlyIFdtS6OPcRg==",
"peer": true,
"dependencies": {
"@koishijs/core": "4.11.1",
"@koishijs/loader": "^2.5.1",
"@koishijs/utils": "^6.4.0",
"@satorijs/satori": "^2.0.1",
"@koishijs/core": "4.11.4",
"@koishijs/loader": "2.5.4",
"@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.1.0",
"cac": "^6.7.14",
"chokidar": "^3.5.3",
"kleur": "^4.1.5",
......@@ -6389,12 +6385,12 @@
}
},
"node_modules/reggol": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==",
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"object-inspect": "^1.12.2",
"supports-color": "^8.1.1"
}
......@@ -6602,12 +6598,12 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/schemastery": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==",
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
},
"node_modules/schemastery-gen": {
......@@ -8592,23 +8588,23 @@
}
},
"@koishijs/core": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.1.tgz",
"integrity": "sha512-HrzgBnimg/fgIzxTyH8BJb7nZpgt912i4zcfvRN9kNcPwbdOpjGllCVRuhRxSEBR21OJvCYTmT0dzf1qNPd3Vg==",
"version": "4.11.4",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.4.tgz",
"integrity": "sha512-biwbprUTBreFgCyRaJc46Oenp/xcrWkxrrQ/9+YxWgSTQ7AF/a1Qz5XW3fN5wGdeHV/MhBTNdoS2y/+0V8Ew0g==",
"peer": true,
"requires": {
"@koishijs/utils": "^6.4.0",
"@minatojs/core": "^2.1.1",
"@satorijs/core": "^2.0.1",
"cordis": "^2.6.0",
"@koishijs/utils": "^7.0.0",
"@minatojs/core": "^2.1.2",
"@satorijs/core": "^2.1.0",
"cordis": "^2.7.2",
"cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16"
}
},
"@koishijs/loader": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.1.tgz",
"integrity": "sha512-ZNyzmL/sCTENPegZBx5rPs1mb+7YOxCb9Il0vyul9zuGzSJoJklSAIoTpBRt1v6BH/eUHEwY6ngcomkxQlf6xQ==",
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.4.tgz",
"integrity": "sha512-MAXhmVsXch7d4RkO3enXC/RG2GXcdu8wm/Vsmv1/G7B21e3UUSr6fubY/b84NA8mfxlpW11jYPh8Y51j7vCsVQ==",
"peer": true,
"requires": {
"dotenv": "^16.0.3",
......@@ -8634,21 +8630,19 @@
}
},
"@koishijs/utils": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==",
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-7.0.0.tgz",
"integrity": "sha512-xfz6aoLoCVoX+OiVsy3mpiXPS7hUPiEaTVnPqHpELu9At8Hb2yhexDSBUWmWLvZ70jmJOUNUtCTbkDd+I0S2Ig==",
"peer": true,
"requires": {
"cosmokit": "^1.4.0",
"inaba": "^1.1.1",
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
"inaba": "^1.1.1"
}
},
"@minatojs/core": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.1.tgz",
"integrity": "sha512-iGx1eydevDiuhaUhO/BkI0L2d+028wsVUMZ/pXi1z5IP1xZJvlr3LMrjr3zG4XdyKPO3JsdZy96G+wQSu6Jltg==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.2.tgz",
"integrity": "sha512-7VDn+G2QybsDVlmZ0wcYeB0IN8q//qO5WZSdYizTcsXx1bCKEU+AUn/UPWN3eHRXvhVNI3YRBAoEKxkp357lDw==",
"requires": {
"cosmokit": "^1.4.0"
}
......@@ -8781,17 +8775,17 @@
}
},
"@satorijs/core": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.0.1.tgz",
"integrity": "sha512-K+nNmUtFrU1uDJEn6Xov6TcaKhn8+Q9qtp6iBUh5DIhHO4hzoIHaPntvpoKJ5dfg5EyQyAi+JShTGl4voN5Ung==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-2.1.0.tgz",
"integrity": "sha512-2LduZz57SRyJ/Op5iqO1UUv0Q3UkuDIz3gk8j94orDYchN397MfxTv+uy3awGwKUlgfdCw2s3FloE7FL9UgopA==",
"peer": true,
"requires": {
"@satorijs/element": "^2.3.1",
"cordis": "^2.6.0",
"cordis-axios": "^2.2.1",
"cordis": "^2.7.2",
"cordis-axios": "^3.0.0",
"cosmokit": "^1.4.0",
"reggol": "^1.3.4",
"schemastery": "^3.6.1",
"reggol": "^1.3.5",
"schemastery": "^3.7.0",
"ws": "^8.11.0"
}
},
......@@ -8805,13 +8799,13 @@
}
},
"@satorijs/satori": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.0.1.tgz",
"integrity": "sha512-Mt8r8rYr7IOWgCKMTfyXaIvZIFQ2FAUXsDlOMnhWu6Sf/Q0KFS/o/aiXFlerhSnii1ptuGAZmSxaBhsGMkPmwg==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-2.1.0.tgz",
"integrity": "sha512-VZX3cJvuxxWCYpp4hok0NFRsGZL+5jE5EbfyibKL3XjsC/9MmtPSdbECfPstQS1PmGcoOAaq15DCSTy/rnSalA==",
"peer": true,
"requires": {
"@koa/router": "^10.1.1",
"@satorijs/core": "2.0.1",
"@satorijs/core": "2.1.0",
"@types/koa": "*",
"@types/koa__router": "*",
"@types/ws": "^8.5.3",
......@@ -8823,7 +8817,6 @@
"koa-bodyparser": "^4.3.0",
"parseurl": "^1.3.3",
"path-to-regexp": "^6.2.1",
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0"
},
......@@ -9870,24 +9863,23 @@
"integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
},
"cordis": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.6.0.tgz",
"integrity": "sha512-4VUY2x6ufctBr1zYAML3c+b1eXwgY94nkqLP7/icb3QVGXMBJuH4Nztakf6ADVonN5MvgJ06RRawRvmWdx3LxA==",
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/cordis/-/cordis-2.7.2.tgz",
"integrity": "sha512-bM+4P1bhIawrXRLvBMoxfWwSHebm0B3n0sM+T/FCED/iMUnEs6N9Y7lwJ2gDo2fm0wvu4JzU8cuMKrxqroq16Q==",
"peer": true,
"requires": {
"cosmokit": "^1.3.3"
"cosmokit": "^1.4.0"
}
},
"cordis-axios": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.1.tgz",
"integrity": "sha512-1OBl1FKLkYa1kEYeX56E13B4VdrxUve4poEYBfsBAygYn0IvcrUauvsdW9cl1rihBXtA/X6/K8BUY9O5KyOSQg==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-3.0.0.tgz",
"integrity": "sha512-fYFw6vezgDP9n8GMCHUW+n8hPkWueX0RpGipu5lU/aRDwNzeGQaYdSv737cRh/N7cPsGqZqGJcZUgYBPzxrB7A==",
"peer": true,
"requires": {
"axios": "~1.1.3",
"cosmokit": "^1.4.0",
"mime-db": "^1.52.0",
"schemastery": "^3.6.1"
"mime-db": "^1.52.0"
}
},
"cordis-decorators": {
......@@ -11705,15 +11697,15 @@
}
},
"koishi": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.1.tgz",
"integrity": "sha512-sHMa8okx+kl5jHBwzT2gb4qGeOJRKG8AfLt4w5BLJwOPpvdo6cW9RiRy1uBwkXM7zf4yOvtr0+6WEu+AuD6bXQ==",
"version": "4.11.4",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.4.tgz",
"integrity": "sha512-FLngGwsCHvoPdEbzVCGB0KExxh0yJcQ5ivaepTTusqPH7oQeZHo9ROb02ncVAw7ZPpWrUDOzqlyIFdtS6OPcRg==",
"peer": true,
"requires": {
"@koishijs/core": "4.11.1",
"@koishijs/loader": "^2.5.1",
"@koishijs/utils": "^6.4.0",
"@satorijs/satori": "^2.0.1",
"@koishijs/core": "4.11.4",
"@koishijs/loader": "2.5.4",
"@koishijs/utils": "^7.0.0",
"@satorijs/satori": "^2.1.0",
"cac": "^6.7.14",
"chokidar": "^3.5.3",
"kleur": "^4.1.5",
......@@ -12505,12 +12497,12 @@
"dev": true
},
"reggol": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==",
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.5.tgz",
"integrity": "sha512-kzkzs4nhZeiphyh+amekq25/3PndZDq+5Yt8qCJqPSyMXPC1pkwhfYCQyJdXxoRz3/uqt0+VqHulagUCVY84vA==",
"peer": true,
"requires": {
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"object-inspect": "^1.12.2",
"supports-color": "^8.1.1"
},
......@@ -12648,12 +12640,12 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"schemastery": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz",
"integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==",
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.7.0.tgz",
"integrity": "sha512-vUs5HcWdtpqlL/Z1AwvFApllJk0jLtuItkwH5DDpie3Lw71DIA0Z7ohlnPF+fVN17QxJAI5xJtud62E3/EBoBQ==",
"peer": true,
"requires": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
},
"schemastery-gen": {
......
......@@ -33,7 +33,7 @@
"peerDependencies": {
"@nestjs/common": "^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"
},
"devDependencies": {
......
import { Command, Context } from 'koishi';
import { Command, Context, Router } from 'koishi';
import {
Inject,
Injectable,
......@@ -10,15 +10,13 @@ import {
KoishiCommandInterceptorRegistration,
KoishiModuleOptions,
} from './utility/koishi.interfaces';
import { createServer, Server } from 'http';
import { Server } from 'http';
import Koa from 'koa';
import KoaBodyParser from 'koa-bodyparser';
import { KoishiMetascanService } from './providers/koishi-metascan.service';
import { KOISHI_MODULE_OPTIONS, KoishiIpSym } from './utility/koishi.constants';
import { KoishiLoggerService } from './providers/koishi-logger.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.declares';
import { selectContext } from 'koishi-thirdeye';
......@@ -43,7 +41,6 @@ export class KoishiService
});
this.baseDir ??= process.cwd();
this.interceptors = this.koishiModuleOptions.globalInterceptors;
this.router = new KoishiNestRouter();
this._nestKoaTmpInstance.use((ctx, next) => {
ctx.request.ip = ctx.req[KoishiIpSym];
return next();
......@@ -63,18 +60,6 @@ export class KoishiService
this.router._http = httpServer;
} else {
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', () => {
expect(command).toBeDefined();
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 {
async onAbstract(@PutValue('{{abstract.content}}') content: string) {
return content;
}
@UsingService('ping')
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
@UseEvent('ping')
async onPing() {
return 'pong';
}
}
@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