Commit 8f3b36a4 authored by nanahira's avatar nanahira

migrate to ReplySession

parent 9f1eb497
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
"version": "4.4.1", "version": "4.4.1",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"koishi-thirdeye": "^11.1.14" "koishi-thirdeye": "^11.1.15"
}, },
"devDependencies": { "devDependencies": {
"@koishijs/plugin-console": "^4.7.1", "@koishijs/plugin-console": "^4.7.1",
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
"ws": "^8.5.0" "ws": "^8.5.0"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.10.4" "koishi": "^4.10.6"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
...@@ -1340,16 +1340,16 @@ ...@@ -1340,16 +1340,16 @@
} }
}, },
"node_modules/@koishijs/core": { "node_modules/@koishijs/core": {
"version": "4.10.4", "version": "4.10.6",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.4.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.6.tgz",
"integrity": "sha512-uhR2RoslHs3ynhElWP+jIwzqn8PprlPGF10qWQvTpW1l5XmPr+PiWgf5HmAGt1XucWcuij9n1Z179yqZs6xLNg==", "integrity": "sha512-5rOr40u41SZzCvQObqGf2DANakFWWRvDditZG+0Z1/zczX6o+UJy9TXZUHEpTMfvMMEG7+DNECPZz8F6X8drLw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/utils": "^6.2.6", "@koishijs/utils": "^6.3.4",
"@minatojs/core": "^2.0.1", "@minatojs/core": "^2.0.3",
"@satorijs/core": "^1.4.3", "@satorijs/core": "^1.4.10",
"cordis": "^2.6.0", "cordis": "^2.6.0",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
...@@ -1390,21 +1390,21 @@ ...@@ -1390,21 +1390,21 @@
} }
}, },
"node_modules/@koishijs/utils": { "node_modules/@koishijs/utils": {
"version": "6.2.6", "version": "6.3.4",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.2.6.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.3.4.tgz",
"integrity": "sha512-JAqzAmTLwLwd4LHRoLjMvCojHeyDiGaKqgpd7p3/PMeXL7aHtN+owPv0xtn9jB375llGHYQT51PMkiLMbAIpYw==", "integrity": "sha512-P8hQOTVYsk5rCkBcYbIKKKBm58etGlY/Q3xOuMEyz6BlTe0V8A6lFv56nInuPIaTOf4XprTceZBE6Oe3lC8RuQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"inaba": "^1.1.1", "inaba": "^1.1.1",
"reggol": "^1.3.2", "reggol": "^1.3.3",
"schemastery": "^3.5.4" "schemastery": "^3.6.1"
} }
}, },
"node_modules/@minatojs/core": { "node_modules/@minatojs/core": {
"version": "2.0.2", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.0.2.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.0.3.tgz",
"integrity": "sha512-pkjdHhcTuQ1QQdBCTXQLKudm2l4JBtxwLdAtmYqCK+dUxJlAod2t7eDkCFpzcUXbQzsXWJplvs7uYSIPQUYSyA==", "integrity": "sha512-VZo1sDl9jLcejMyEfd/A+yZt/qre3vB+woSIZmWCm78zBR+CkFPk56y5EAMnu0cW9kgtq0p/KHa2VUVXyN71Bw==",
"dependencies": { "dependencies": {
"cosmokit": "^1.3.4" "cosmokit": "^1.3.4"
} }
...@@ -1457,37 +1457,37 @@ ...@@ -1457,37 +1457,37 @@
} }
}, },
"node_modules/@satorijs/core": { "node_modules/@satorijs/core": {
"version": "1.4.3", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.3.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.10.tgz",
"integrity": "sha512-L0VJVq3jlb8r4IaYlNBMfh4A3vskDMeQwl9Y5lgXBlShxsMzn2XcgtDKfa4WgNH4HzRFjS8iLkVBSo9jDW+3TA==", "integrity": "sha512-eTHYuoW6KAh6Fko874b9/50hq+CGD2FMFTT2K2htNdMFhKdGYkum3vpqmudPlThCefH4608rR5jU1vsebsKTrQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@satorijs/element": "^2.1.7", "@satorijs/element": "^2.2.1",
"cordis": "^2.6.0", "cordis": "^2.6.0",
"cordis-axios": "^2.1.5", "cordis-axios": "^2.1.6",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"reggol": "^1.3.2", "reggol": "^1.3.3",
"schemastery": "^3.5.4", "schemastery": "^3.6.1",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
"node_modules/@satorijs/element": { "node_modules/@satorijs/element": {
"version": "2.1.8", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.1.8.tgz", "resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.2.1.tgz",
"integrity": "sha512-a1/ClyPKJQdv07RgUANdOahULTiJE7H7TRaP6w6d+DB46rh9KAvZyhp3tDgMBKBm/3bOvfpieXWExgDdQVgsBA==", "integrity": "sha512-4oINBNinlxUQL+lsGKkGYgITNSGRfDeUUmE2lzHYbg/WSVg2eK11pNHtwGbud0KxnmNG687NxyF9czgd7t/4hg==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.3" "cosmokit": "^1.3.6"
} }
}, },
"node_modules/@satorijs/satori": { "node_modules/@satorijs/satori": {
"version": "1.4.3", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.3.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.10.tgz",
"integrity": "sha512-XgMolxa9/9gWf4+VKqLioBkzuZA0QXQIMWZHFET1dVvQjbxNhaETF0NBmwFSjbVBOWvTN8vecTGTSLc3pQn+Rw==", "integrity": "sha512-6rT02tmMyv/Tw0o9xaCH+uW8c947LcvLI2pDD/RG01X+hyh8OfGbeAK59GtKcIY9lnA3Rma7jCIB7dkMjPpt0w==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "1.4.3", "@satorijs/core": "1.4.10",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -1498,7 +1498,7 @@ ...@@ -1498,7 +1498,7 @@
"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.5.4", "schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
}, },
...@@ -2897,16 +2897,16 @@ ...@@ -2897,16 +2897,16 @@
} }
}, },
"node_modules/cordis-axios": { "node_modules/cordis-axios": {
"version": "2.1.5", "version": "2.1.6",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.5.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.6.tgz",
"integrity": "sha512-L5cHolNBlo4MxhfWRETpz1G20jF6J0Hu+5zPxebo0XJthqO0eI6U/2DrbQvXARnyMhuQIIZfoPJLvSNgd0Rjzw==", "integrity": "sha512-GaJq5zoh4XRAFHEOyCLyU7kIcRrV7hqDVEh5kF4t047TmROAUaLukPKSMeMVMNohpKW4Vz+tj2FGEqMx5NuBQg==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.4",
"file-type": "^16.5.4", "file-type": "^16.5.4",
"mime-db": "^1.52.0", "mime-db": "^1.52.0",
"schemastery": "^3.5.4" "schemastery": "^3.6.1"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=12.0.0"
...@@ -2933,9 +2933,9 @@ ...@@ -2933,9 +2933,9 @@
} }
}, },
"node_modules/cosmokit": { "node_modules/cosmokit": {
"version": "1.3.4", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.4.tgz", "resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.6.tgz",
"integrity": "sha512-E4G29C9xwvi1mcihAYz1R0NGbu8lYkxi/MRtnfG8qJ10OGJNhgdvgE3X7XgpMHEFkhEGT+YTnjUvQA53gI7Vog==" "integrity": "sha512-buZvC7fuqBbSimJfkaaTJmlelpgj56L7VybjNkCy5UVvShMVQHi/bTZcuBfYLBwpuebSfvDZPwwHS5IfcoAnxg=="
}, },
"node_modules/create-require": { "node_modules/create-require": {
"version": "1.1.1", "version": "1.1.1",
...@@ -6172,9 +6172,9 @@ ...@@ -6172,9 +6172,9 @@
} }
}, },
"node_modules/koa": { "node_modules/koa": {
"version": "2.13.4", "version": "2.14.1",
"resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz",
"integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"accepts": "^1.3.5", "accepts": "^1.3.5",
...@@ -6247,14 +6247,14 @@ ...@@ -6247,14 +6247,14 @@
} }
}, },
"node_modules/koishi": { "node_modules/koishi": {
"version": "4.10.4", "version": "4.10.6",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.4.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.6.tgz",
"integrity": "sha512-06ylHCmyyj8buQxPcnuSap7Yco6HtzC0o61AwBuBOikdILQj2WicexztohuLhQ/9ElA3pEOsJaHzDa/9Lh71Ng==", "integrity": "sha512-s/VDoMKihMsjodSU9Vhs1Kkk3psQ6/sNx7MNuxAFo5KsXIJOgAQnJ+5TZxiqyGgxNT7NVNB4RHdQVDkYydbG1Q==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"@koishijs/core": "^4.10.4", "@koishijs/core": "^4.10.6",
"@koishijs/utils": "^6.2.6", "@koishijs/utils": "^6.3.4",
"@satorijs/satori": "^1.4.3", "@satorijs/satori": "^1.4.10",
"file-type": "^16.5.4", "file-type": "^16.5.4",
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
}, },
...@@ -6263,16 +6263,16 @@ ...@@ -6263,16 +6263,16 @@
} }
}, },
"node_modules/koishi-thirdeye": { "node_modules/koishi-thirdeye": {
"version": "11.1.14", "version": "11.1.15",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.14.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.15.tgz",
"integrity": "sha512-poQZwMfkiurvDMdEhfa0TnhRhe/7VNismNDo6xcZAZVUfDl4Q8USCYEVwlmUvi6GSWl4X+4a51YL3VUZQX+GrA==", "integrity": "sha512-cKkeeZlg8OhGlxu7Ue5Zn++uPnujOsCdNTUp3jA43CO/xOmsyxYC/KjkgVr1ZakA6toQxsN1Rs0hxKC1eWulpA==",
"dependencies": { "dependencies": {
"minato-decorators": "^2.2.1", "minato-decorators": "^2.2.1",
"rxjs": "^7.5.6", "rxjs": "^7.5.6",
"satori-decorators": "^1.1.1" "satori-decorators": "^1.1.1"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.10.4" "koishi": "^4.10.6"
} }
}, },
"node_modules/leven": { "node_modules/leven": {
...@@ -7076,12 +7076,12 @@ ...@@ -7076,12 +7076,12 @@
} }
}, },
"node_modules/reggol": { "node_modules/reggol": {
"version": "1.3.2", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.2.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.3.tgz",
"integrity": "sha512-vI+nWzdBJlO9OsrDCJ/z5NS4/o1mzHjwrZcn6LoESHn2get7LrbZ0TZB/dEkCtUlah324rxd5E2zciT/98Op1Q==", "integrity": "sha512-AmFo4aBBLwd1IosfkQ9cnWJF+RDXjrfmY2pFeRXSLlvi1UoqMYLsltR/514R8Dr/ZfAYdcD75V/vFDK60hgyOQ==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
} }
...@@ -7274,12 +7274,12 @@ ...@@ -7274,12 +7274,12 @@
} }
}, },
"node_modules/schemastery": { "node_modules/schemastery": {
"version": "3.5.4", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.5.4.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz",
"integrity": "sha512-YPr+tR4fFt/d1gH0AXQjlr+Luw5+3Hz75tWT8g8Iqt1wnNTys3+TB2wAaekrTKhgnWhQPCHwDfLF1KZHNTNquw==", "integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==",
"peer": true, "peer": true,
"dependencies": { "dependencies": {
"cosmokit": "^1.2.1" "cosmokit": "^1.3.4"
} }
}, },
"node_modules/schemastery-gen": { "node_modules/schemastery-gen": {
...@@ -9448,16 +9448,16 @@ ...@@ -9448,16 +9448,16 @@
} }
}, },
"@koishijs/core": { "@koishijs/core": {
"version": "4.10.4", "version": "4.10.6",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.4.tgz", "resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.6.tgz",
"integrity": "sha512-uhR2RoslHs3ynhElWP+jIwzqn8PprlPGF10qWQvTpW1l5XmPr+PiWgf5HmAGt1XucWcuij9n1Z179yqZs6xLNg==", "integrity": "sha512-5rOr40u41SZzCvQObqGf2DANakFWWRvDditZG+0Z1/zczX6o+UJy9TXZUHEpTMfvMMEG7+DNECPZz8F6X8drLw==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/utils": "^6.2.6", "@koishijs/utils": "^6.3.4",
"@minatojs/core": "^2.0.1", "@minatojs/core": "^2.0.3",
"@satorijs/core": "^1.4.3", "@satorijs/core": "^1.4.10",
"cordis": "^2.6.0", "cordis": "^2.6.0",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"fastest-levenshtein": "^1.0.16" "fastest-levenshtein": "^1.0.16"
} }
}, },
...@@ -9489,21 +9489,21 @@ ...@@ -9489,21 +9489,21 @@
"requires": {} "requires": {}
}, },
"@koishijs/utils": { "@koishijs/utils": {
"version": "6.2.6", "version": "6.3.4",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.2.6.tgz", "resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.3.4.tgz",
"integrity": "sha512-JAqzAmTLwLwd4LHRoLjMvCojHeyDiGaKqgpd7p3/PMeXL7aHtN+owPv0xtn9jB375llGHYQT51PMkiLMbAIpYw==", "integrity": "sha512-P8hQOTVYsk5rCkBcYbIKKKBm58etGlY/Q3xOuMEyz6BlTe0V8A6lFv56nInuPIaTOf4XprTceZBE6Oe3lC8RuQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"inaba": "^1.1.1", "inaba": "^1.1.1",
"reggol": "^1.3.2", "reggol": "^1.3.3",
"schemastery": "^3.5.4" "schemastery": "^3.6.1"
} }
}, },
"@minatojs/core": { "@minatojs/core": {
"version": "2.0.2", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.0.2.tgz", "resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.0.3.tgz",
"integrity": "sha512-pkjdHhcTuQ1QQdBCTXQLKudm2l4JBtxwLdAtmYqCK+dUxJlAod2t7eDkCFpzcUXbQzsXWJplvs7uYSIPQUYSyA==", "integrity": "sha512-VZo1sDl9jLcejMyEfd/A+yZt/qre3vB+woSIZmWCm78zBR+CkFPk56y5EAMnu0cW9kgtq0p/KHa2VUVXyN71Bw==",
"requires": { "requires": {
"cosmokit": "^1.3.4" "cosmokit": "^1.3.4"
} }
...@@ -9544,37 +9544,37 @@ ...@@ -9544,37 +9544,37 @@
} }
}, },
"@satorijs/core": { "@satorijs/core": {
"version": "1.4.3", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.3.tgz", "resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.10.tgz",
"integrity": "sha512-L0VJVq3jlb8r4IaYlNBMfh4A3vskDMeQwl9Y5lgXBlShxsMzn2XcgtDKfa4WgNH4HzRFjS8iLkVBSo9jDW+3TA==", "integrity": "sha512-eTHYuoW6KAh6Fko874b9/50hq+CGD2FMFTT2K2htNdMFhKdGYkum3vpqmudPlThCefH4608rR5jU1vsebsKTrQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"@satorijs/element": "^2.1.7", "@satorijs/element": "^2.2.1",
"cordis": "^2.6.0", "cordis": "^2.6.0",
"cordis-axios": "^2.1.5", "cordis-axios": "^2.1.6",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"reggol": "^1.3.2", "reggol": "^1.3.3",
"schemastery": "^3.5.4", "schemastery": "^3.6.1",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
}, },
"@satorijs/element": { "@satorijs/element": {
"version": "2.1.8", "version": "2.2.1",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.1.8.tgz", "resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.2.1.tgz",
"integrity": "sha512-a1/ClyPKJQdv07RgUANdOahULTiJE7H7TRaP6w6d+DB46rh9KAvZyhp3tDgMBKBm/3bOvfpieXWExgDdQVgsBA==", "integrity": "sha512-4oINBNinlxUQL+lsGKkGYgITNSGRfDeUUmE2lzHYbg/WSVg2eK11pNHtwGbud0KxnmNG687NxyF9czgd7t/4hg==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.3" "cosmokit": "^1.3.6"
} }
}, },
"@satorijs/satori": { "@satorijs/satori": {
"version": "1.4.3", "version": "1.4.10",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.3.tgz", "resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.10.tgz",
"integrity": "sha512-XgMolxa9/9gWf4+VKqLioBkzuZA0QXQIMWZHFET1dVvQjbxNhaETF0NBmwFSjbVBOWvTN8vecTGTSLc3pQn+Rw==", "integrity": "sha512-6rT02tmMyv/Tw0o9xaCH+uW8c947LcvLI2pDD/RG01X+hyh8OfGbeAK59GtKcIY9lnA3Rma7jCIB7dkMjPpt0w==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koa/router": "^10.1.1", "@koa/router": "^10.1.1",
"@satorijs/core": "1.4.3", "@satorijs/core": "1.4.10",
"@types/koa": "*", "@types/koa": "*",
"@types/koa__router": "*", "@types/koa__router": "*",
"@types/ws": "^8.5.3", "@types/ws": "^8.5.3",
...@@ -9585,7 +9585,7 @@ ...@@ -9585,7 +9585,7 @@
"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.5.4", "schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1", "socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0" "ws": "^8.11.0"
} }
...@@ -10742,16 +10742,16 @@ ...@@ -10742,16 +10742,16 @@
} }
}, },
"cordis-axios": { "cordis-axios": {
"version": "2.1.5", "version": "2.1.6",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.5.tgz", "resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.6.tgz",
"integrity": "sha512-L5cHolNBlo4MxhfWRETpz1G20jF6J0Hu+5zPxebo0XJthqO0eI6U/2DrbQvXARnyMhuQIIZfoPJLvSNgd0Rjzw==", "integrity": "sha512-GaJq5zoh4XRAFHEOyCLyU7kIcRrV7hqDVEh5kF4t047TmROAUaLukPKSMeMVMNohpKW4Vz+tj2FGEqMx5NuBQg==",
"peer": true, "peer": true,
"requires": { "requires": {
"axios": "~1.1.3", "axios": "~1.1.3",
"cosmokit": "^1.3.3", "cosmokit": "^1.3.4",
"file-type": "^16.5.4", "file-type": "^16.5.4",
"mime-db": "^1.52.0", "mime-db": "^1.52.0",
"schemastery": "^3.5.4" "schemastery": "^3.6.1"
} }
}, },
"cordis-decorators": { "cordis-decorators": {
...@@ -10768,9 +10768,9 @@ ...@@ -10768,9 +10768,9 @@
} }
}, },
"cosmokit": { "cosmokit": {
"version": "1.3.4", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.4.tgz", "resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.6.tgz",
"integrity": "sha512-E4G29C9xwvi1mcihAYz1R0NGbu8lYkxi/MRtnfG8qJ10OGJNhgdvgE3X7XgpMHEFkhEGT+YTnjUvQA53gI7Vog==" "integrity": "sha512-buZvC7fuqBbSimJfkaaTJmlelpgj56L7VybjNkCy5UVvShMVQHi/bTZcuBfYLBwpuebSfvDZPwwHS5IfcoAnxg=="
}, },
"create-require": { "create-require": {
"version": "1.1.1", "version": "1.1.1",
...@@ -13115,9 +13115,9 @@ ...@@ -13115,9 +13115,9 @@
"dev": true "dev": true
}, },
"koa": { "koa": {
"version": "2.13.4", "version": "2.14.1",
"resolved": "https://registry.npmjs.org/koa/-/koa-2.13.4.tgz", "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz",
"integrity": "sha512-43zkIKubNbnrULWlHdN5h1g3SEKXOEzoAlRsHOTFpnlDu8JlAOZSMJBLULusuXRequboiwJcj5vtYXKB3k7+2g==", "integrity": "sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==",
"peer": true, "peer": true,
"requires": { "requires": {
"accepts": "^1.3.5", "accepts": "^1.3.5",
...@@ -13180,22 +13180,22 @@ ...@@ -13180,22 +13180,22 @@
} }
}, },
"koishi": { "koishi": {
"version": "4.10.4", "version": "4.10.6",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.4.tgz", "resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.6.tgz",
"integrity": "sha512-06ylHCmyyj8buQxPcnuSap7Yco6HtzC0o61AwBuBOikdILQj2WicexztohuLhQ/9ElA3pEOsJaHzDa/9Lh71Ng==", "integrity": "sha512-s/VDoMKihMsjodSU9Vhs1Kkk3psQ6/sNx7MNuxAFo5KsXIJOgAQnJ+5TZxiqyGgxNT7NVNB4RHdQVDkYydbG1Q==",
"peer": true, "peer": true,
"requires": { "requires": {
"@koishijs/core": "^4.10.4", "@koishijs/core": "^4.10.6",
"@koishijs/utils": "^6.2.6", "@koishijs/utils": "^6.3.4",
"@satorijs/satori": "^1.4.3", "@satorijs/satori": "^1.4.10",
"file-type": "^16.5.4", "file-type": "^16.5.4",
"ns-require": "^1.1.4" "ns-require": "^1.1.4"
} }
}, },
"koishi-thirdeye": { "koishi-thirdeye": {
"version": "11.1.14", "version": "11.1.15",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.14.tgz", "resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.15.tgz",
"integrity": "sha512-poQZwMfkiurvDMdEhfa0TnhRhe/7VNismNDo6xcZAZVUfDl4Q8USCYEVwlmUvi6GSWl4X+4a51YL3VUZQX+GrA==", "integrity": "sha512-cKkeeZlg8OhGlxu7Ue5Zn++uPnujOsCdNTUp3jA43CO/xOmsyxYC/KjkgVr1ZakA6toQxsN1Rs0hxKC1eWulpA==",
"requires": { "requires": {
"minato-decorators": "^2.2.1", "minato-decorators": "^2.2.1",
"rxjs": "^7.5.6", "rxjs": "^7.5.6",
...@@ -13782,12 +13782,12 @@ ...@@ -13782,12 +13782,12 @@
"dev": true "dev": true
}, },
"reggol": { "reggol": {
"version": "1.3.2", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.2.tgz", "resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.3.tgz",
"integrity": "sha512-vI+nWzdBJlO9OsrDCJ/z5NS4/o1mzHjwrZcn6LoESHn2get7LrbZ0TZB/dEkCtUlah324rxd5E2zciT/98Op1Q==", "integrity": "sha512-AmFo4aBBLwd1IosfkQ9cnWJF+RDXjrfmY2pFeRXSLlvi1UoqMYLsltR/514R8Dr/ZfAYdcD75V/vFDK60hgyOQ==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.3.3", "cosmokit": "^1.3.6",
"object-inspect": "^1.12.2", "object-inspect": "^1.12.2",
"supports-color": "^8.1.1" "supports-color": "^8.1.1"
} }
...@@ -13910,12 +13910,12 @@ ...@@ -13910,12 +13910,12 @@
} }
}, },
"schemastery": { "schemastery": {
"version": "3.5.4", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.5.4.tgz", "resolved": "https://registry.npmjs.org/schemastery/-/schemastery-3.6.1.tgz",
"integrity": "sha512-YPr+tR4fFt/d1gH0AXQjlr+Luw5+3Hz75tWT8g8Iqt1wnNTys3+TB2wAaekrTKhgnWhQPCHwDfLF1KZHNTNquw==", "integrity": "sha512-Igh4oqaHco1AYmqpSgYgg411gNomSI9xE35Xo/FuzJZTMYWA5W1o+82Q5qMnt9FAQ76gZig0pea9OcHl0AM/Lw==",
"peer": true, "peer": true,
"requires": { "requires": {
"cosmokit": "^1.2.1" "cosmokit": "^1.3.4"
} }
}, },
"schemastery-gen": { "schemastery-gen": {
......
...@@ -44,10 +44,10 @@ ...@@ -44,10 +44,10 @@
"testEnvironment": "node" "testEnvironment": "node"
}, },
"dependencies": { "dependencies": {
"koishi-thirdeye": "^11.1.14" "koishi-thirdeye": "^11.1.15"
}, },
"peerDependencies": { "peerDependencies": {
"koishi": "^4.10.4" "koishi": "^4.10.6"
}, },
"devDependencies": { "devDependencies": {
"@koishijs/plugin-console": "^4.7.1", "@koishijs/plugin-console": "^4.7.1",
......
import {
Fragment,
PromptOptions,
Random,
segment,
SendOptions,
Session,
} from 'koishi';
import ApiBot from './index';
import { Prompt } from './def/prompt';
export class ApiSession extends Session {
storedMessages: string[] = [];
private midResolver: () => void;
bot: ApiBot;
currentPromise: Promise<void>;
midPromise = new Promise<void>((resolve) => {
this.midResolver = resolve;
});
async waitForPattern() {
await Promise.race([
this.currentPromise.then(() => this.midResolve(true)),
this.midPromise,
]);
return this.gatherResponseMessages();
}
getIdentifier() {
return '' + this.userId + this.channelId;
}
midResolve(finish = false) {
if (!this.midResolver) {
return;
}
this.midResolver();
if (finish) {
delete this.midResolver;
} else {
this.midPromise = new Promise<void>((resolve) => {
this.midResolver = resolve;
});
}
}
async send(content: Fragment, options: SendOptions = {}) {
if (!content) return;
options.session = this;
const children = await this.transform(segment.normalize(content));
this.storedMessages.push(
children.map((child) => child.toString()).join(''),
);
return [Random.id()];
}
gatherResponseMessages() {
const result = this.storedMessages.filter((m) => !!m);
this.storedMessages = [];
return result;
}
prompt(...args: any[]) {
const callback: (session: Session) => any =
typeof args[0] === 'function'
? args.shift()
: (session) => session.content;
const options: PromptOptions =
typeof args[0] === 'number' ? { timeout: args[0] } : args[0] ?? {};
const timeout = options.timeout ?? this.app.config.delay.prompt;
const identifier = this.getIdentifier();
const prom = new Promise<string>((resolve) => {
const prompt: Prompt = {
resolver: resolve,
timeout: setTimeout(() => {
this.bot.resolvePrompt(identifier, undefined);
}, timeout),
session: this,
contentCallback: callback,
};
this.bot.prompts.set(identifier, prompt);
});
this.midResolve();
return prom;
}
}
import { ApiSession } from '../api-session';
export interface Prompt {
resolver: (value: string) => void;
timeout: NodeJS.Timeout;
session: ApiSession;
contentCallback: (session: ApiSession) => any;
}
...@@ -3,17 +3,14 @@ import { ApiPluginConfig, ApiPluginConfigLike } from './config'; ...@@ -3,17 +3,14 @@ import { ApiPluginConfig, ApiPluginConfigLike } from './config';
import { import {
DefinePlugin, DefinePlugin,
InjectConfig, InjectConfig,
OnPlatform,
UseMiddleware,
Post,
KoaContext, KoaContext,
PluginSchema, PluginSchema,
OnSelf, Post,
Reusable, Reusable,
ReplySession,
} from 'koishi-thirdeye'; } from 'koishi-thirdeye';
import { Bot, Context, Fragment, Next, Random } from 'koishi'; import { Bot, Context, Fragment, Random } from 'koishi';
import { ApiSession } from './api-session';
import { Prompt } from './def/prompt';
export * from './config'; export * from './config';
@Reusable() @Reusable()
...@@ -23,38 +20,11 @@ export default class ApiBot extends Bot { ...@@ -23,38 +20,11 @@ export default class ApiBot extends Bot {
username = 'koishi'; username = 'koishi';
selfId = 'koishi'; selfId = 'koishi';
hidden = true; hidden = true;
prompts = new Map<string, Prompt>();
constructor(public ctx: Context, config: ApiPluginConfigLike) { constructor(public ctx: Context, config: ApiPluginConfigLike) {
super(ctx, { platform: 'api', selfId: config.selfId }); super(ctx, { platform: 'api', selfId: config.selfId });
} }
resolvePrompt(key: string, session: ApiSession) {
const prompt = this.prompts.get(key);
if (prompt) {
prompt.resolver(prompt.contentCallback(session));
clearTimeout(prompt.timeout);
this.prompts.delete(key);
return prompt;
}
return;
}
@OnSelf('{{selfId}}')
@OnPlatform('api')
@UseMiddleware()
private async handlePrompt(session: ApiSession, next: Next) {
const identifier = session.getIdentifier();
const prompt = this.resolvePrompt(identifier, session);
if (!prompt) {
return next();
}
session.storedMessages = session.storedMessages.concat(
await prompt.session.waitForPattern(),
);
return;
}
@InjectConfig() @InjectConfig()
private pluginConfig: ApiPluginConfig; private pluginConfig: ApiPluginConfig;
...@@ -83,7 +53,7 @@ export default class ApiBot extends Bot { ...@@ -83,7 +53,7 @@ export default class ApiBot extends Bot {
return; return;
} }
const userId = body.userId || ctx.request.ip; const userId = body.userId || ctx.request.ip;
const session = new ApiSession(this, { const session = new ReplySession(this, {
userId, userId,
channelId: body.channelId || `private:${userId}`, channelId: body.channelId || `private:${userId}`,
guildId: body.guildId, guildId: body.guildId,
...@@ -104,10 +74,10 @@ export default class ApiBot extends Bot { ...@@ -104,10 +74,10 @@ export default class ApiBot extends Bot {
ctx.body = { messages: [] }; ctx.body = { messages: [] };
return; return;
} }
const currentPromise = this.ctx.app.parallel('message', session);
session.currentPromise = currentPromise;
ctx.status = 200; ctx.status = 200;
ctx.body = { messages: await session.waitForPattern() }; ctx.body = {
messages: (await session.process()).map((e) => e.toString()),
};
} }
async sendMessage(channelId: string, content: Fragment) { async sendMessage(channelId: string, content: Fragment) {
......
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