Commit 8f3b36a4 authored by nanahira's avatar nanahira

migrate to ReplySession

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