Commit f5d61070 authored by nanahira's avatar nanahira

improve url handling

parent bd23db52
......@@ -10,12 +10,14 @@
"license": "MIT",
"dependencies": {
"@koishijs/assets": "^1.0.1",
"koishi-thirdeye": "^11.1.17",
"ext2mime": "^1.0.1",
"file-type": "16.5.3",
"koishi-thirdeye": "^11.1.20",
"lodash": "^4.17.21"
},
"devDependencies": {
"@koishijs/plugin-console": "^5.0.0",
"@koishijs/plugin-database-memory": "^2.0.1",
"@koishijs/plugin-console": "^5.0.2",
"@koishijs/plugin-database-memory": "^2.2.0",
"@koishijs/plugin-sandbox": "^2.5.0",
"@types/jest": "^29.2.0",
"@types/lodash": "^4.14.176",
......@@ -33,13 +35,13 @@
"ts-jest": "^29.0.3",
"ts-loader": "^9.3.1",
"ts-node": "^10.9.1",
"typescript": "^4.8.4",
"typescript": "^4.9.4",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"ws": "^8.3.0"
},
"peerDependencies": {
"koishi": "^4.10.10"
"koishi": "^4.11.0"
}
},
"node_modules/@ampproject/remapping": {
......@@ -1397,24 +1399,72 @@
"koishi": "^4.10.1"
}
},
"node_modules/@koishijs/assets/node_modules/file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"dependencies": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
}
},
"node_modules/@koishijs/core": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.10.tgz",
"integrity": "sha512-LooBZCQSm91TL7aBBECjaFaROn+udCAavOwi+AWzbFPBfcuF4ZHFGpQ112yWK70xbQ7YhHUueueqJpkAGOy4RA==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.0.tgz",
"integrity": "sha512-urQGWpqifyFAqJuhfkbZVnO+OdFw/p+PZcMEelfrFi6iaKCLVXVlIO4zK4yEu+lHTwQiYwBszqu5NeoE9Z2kuA==",
"peer": true,
"dependencies": {
"@koishijs/utils": "^6.3.4",
"@minatojs/core": "^2.0.3",
"@satorijs/core": "^1.4.11",
"@koishijs/utils": "^6.4.0",
"@minatojs/core": "^2.1.0",
"@satorijs/core": "^1.5.2",
"cordis": "^2.6.0",
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16"
}
},
"node_modules/@koishijs/loader": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.0.tgz",
"integrity": "sha512-8StBIK7+/sDr65d+MEm8htXblVCrIZORXcEO/O7Wupn0eMyktm7GI0kL7C7uLhHT5Yoiby36T5LeNbaKWeKWlg==",
"peer": true,
"dependencies": {
"dotenv": "^16.0.3",
"js-yaml": "^4.1.0",
"ns-require": "^1.1.4"
},
"peerDependencies": {
"@koishijs/core": "^4.11.0"
}
},
"node_modules/@koishijs/loader/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"peer": true
},
"node_modules/@koishijs/loader/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"peer": true,
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/@koishijs/plugin-console": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-console/-/plugin-console-5.0.0.tgz",
"integrity": "sha512-6jLYse2EYgoNcOvOfKWWBnMXEfY8E9NCKpLrr8ts7PmY+8ot9ZsO4SbEEDYB1VgKMfkKm1zY12Jsa+ziNIiG1Q==",
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-console/-/plugin-console-5.0.2.tgz",
"integrity": "sha512-ax4U7fC4YBMXIoB+5aIRxuiQY8Q1nwUsK2+gWCkqE7QbPhUm5OEElQdcdM6f1I0rDpe60IXjSABPs/XEl5rfDA==",
"dev": true,
"dependencies": {
"open": "^8.4.0",
......@@ -1422,19 +1472,19 @@
"ws": "^8.11.0"
},
"peerDependencies": {
"koishi": "^4.10.6"
"koishi": "^4.10.10"
}
},
"node_modules/@koishijs/plugin-database-memory": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-database-memory/-/plugin-database-memory-2.0.1.tgz",
"integrity": "sha512-QIkycpWksRipUXjfRMHvGN1I4qNnLDiO9kyAYAGHVLdCRmNg9mkiXANAmtnpPGgpZB9wxnyBR0bbBEfwVxAZsw==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-database-memory/-/plugin-database-memory-2.2.0.tgz",
"integrity": "sha512-0O7KmYve3AWjkPOjITRBgdVWXg7Zn72pEkTMNN4Enn7OsRiXcPSaEt+qZeFY/7XmYcZkIzs72yCtDAERJ6CPaw==",
"dev": true,
"dependencies": {
"@minatojs/driver-memory": "^2.0.1"
"@minatojs/driver-memory": "^2.1.0"
},
"peerDependencies": {
"koishi": "^4.10.4"
"koishi": "^4.10.10"
}
},
"node_modules/@koishijs/plugin-sandbox": {
......@@ -1448,35 +1498,35 @@
}
},
"node_modules/@koishijs/utils": {
"version": "6.3.4",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.3.4.tgz",
"integrity": "sha512-P8hQOTVYsk5rCkBcYbIKKKBm58etGlY/Q3xOuMEyz6BlTe0V8A6lFv56nInuPIaTOf4XprTceZBE6Oe3lC8RuQ==",
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"inaba": "^1.1.1",
"reggol": "^1.3.3",
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
}
},
"node_modules/@minatojs/core": {
"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==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.0.tgz",
"integrity": "sha512-buMhprBZoMmH5vcy98YDKyBSDrt/C6VSNgbPKILPEJf0jikVmURHniqV1zZ+KL7M1jbOIHcyJE5w3+cMe4ifLQ==",
"dependencies": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
},
"node_modules/@minatojs/driver-memory": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@minatojs/driver-memory/-/driver-memory-2.0.1.tgz",
"integrity": "sha512-kby08dhomI8tYWUXTzZwiUDWGfsVhCxzHLIN3riEciaJFGmCxHwvRXiVthAsUfwcWthfRZRKJ0jxVv54NQ3uRw==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@minatojs/driver-memory/-/driver-memory-2.1.0.tgz",
"integrity": "sha512-7g0SpzDP9CgIRPhSsFoB6t35xnLp8QRiiuCUESTGRfWBOwPERmfuI8/8r3UJfKHxqE0W+sPDWGe+lw3hqsPw2g==",
"dev": true,
"dependencies": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
},
"peerDependencies": {
"@minatojs/core": "^2.0.2"
"@minatojs/core": "^2.1.0"
}
},
"node_modules/@nodelib/fs.scandir": {
......@@ -1515,41 +1565,42 @@
}
},
"node_modules/@satorijs/core": {
"version": "1.4.11",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.11.tgz",
"integrity": "sha512-8EsVA5esShEqYMwwXipGwx7obwVb3Lc0NwBmjZWNj2++WYKYg+jQ0Iatgd2jcJhNX2H9ziqnwu05aHtWo+mSsA==",
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.5.2.tgz",
"integrity": "sha512-5hnqwI6mSpDyzSHHIaaJBCwoiDjvDDBeD81rIwYW4JDKEKBOGWgVqNi4g+ru2s8gyR+M8cTvH71a1B2iOQiQTQ==",
"peer": true,
"dependencies": {
"@satorijs/element": "^2.2.2",
"@satorijs/element": "^2.3.1",
"cordis": "^2.6.0",
"cordis-axios": "^2.1.6",
"cosmokit": "^1.3.6",
"reggol": "^1.3.3",
"cordis-axios": "^2.2.0",
"cosmokit": "^1.4.0",
"reggol": "^1.3.4",
"schemastery": "^3.6.1",
"ws": "^8.11.0"
}
},
"node_modules/@satorijs/element": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.2.2.tgz",
"integrity": "sha512-t6K0weO+GwqHhP/C9GTchck0jDk8c63kiAr9hHEVQX3nx/+fjGquTDGzBc4WzOVc105wePWRvV1UtvRaa0I9FQ==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.1.tgz",
"integrity": "sha512-p1hQVy56nfJ2dw1noEHkV7hKpC9yqe5u3Vla+CSPqXU12uB4zqv96rjT9n4WulNGl8XTzqWxp8q8KWqhSI8JFA==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.6"
"cosmokit": "^1.4.0"
}
},
"node_modules/@satorijs/satori": {
"version": "1.4.11",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.11.tgz",
"integrity": "sha512-nQHch/Ya1ClsNO9anJYfNnpiMFHCc1ihxdWuVKKpGOXRxuGMOtnbkB/Qa+NuBT+887E2NsFfTBoFgt8vuExxew==",
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.5.2.tgz",
"integrity": "sha512-e5l1NH9VVU8+4CeyKUWtr0mZ0E8WutvUzzqSuA5NCYkMMJ8A8xjqlHDOZtoEjtbp/AF9vnYVGHZC25DJw0zhig==",
"peer": true,
"dependencies": {
"@koa/router": "^10.1.1",
"@satorijs/core": "1.4.11",
"@satorijs/core": "1.5.2",
"@types/koa": "*",
"@types/koa__router": "*",
"@types/ws": "^8.5.3",
"agent-base": "^6.0.2",
"file-type": "^16.5.4",
"http-proxy-agent": "^5.0.0",
"https-proxy-agent": "^5.0.1",
"koa": "^2.14.1",
......@@ -1564,6 +1615,23 @@
"node": ">=12.0.0"
}
},
"node_modules/@satorijs/satori/node_modules/file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"peer": true,
"dependencies": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sindresorhus/file-type?sponsor=1"
}
},
"node_modules/@sinclair/typebox": {
"version": "0.24.51",
"resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
......@@ -1898,9 +1966,9 @@
"dev": true
},
"node_modules/@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
"integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
"version": "8.5.4",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz",
"integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==",
"peer": true,
"dependencies": {
"@types/node": "*"
......@@ -2425,7 +2493,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
......@@ -2536,6 +2603,15 @@
"node": "*"
}
},
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"peer": true,
"engines": {
"node": ">=8"
}
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
......@@ -2550,7 +2626,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"dependencies": {
"fill-range": "^7.0.1"
},
......@@ -2617,6 +2692,15 @@
"node": ">= 0.8"
}
},
"node_modules/cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"peer": true,
"engines": {
"node": ">=8"
}
},
"node_modules/cache-content-type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
......@@ -2696,6 +2780,33 @@
"node": ">=10"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
"peer": true,
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
},
"engines": {
"node": ">= 8.10.0"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
}
},
"node_modules/chrome-trace-event": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
......@@ -2907,14 +3018,13 @@
}
},
"node_modules/cordis-axios": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.6.tgz",
"integrity": "sha512-GaJq5zoh4XRAFHEOyCLyU7kIcRrV7hqDVEh5kF4t047TmROAUaLukPKSMeMVMNohpKW4Vz+tj2FGEqMx5NuBQg==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.0.tgz",
"integrity": "sha512-gpFyu+nZoTSiPD1H8LsUxq2H7rtLFnm8UL5jOtwaTor20EmyVXiaSRV8Cc0yIcnobqmMmcY3VYVcXTir++DLtQ==",
"peer": true,
"dependencies": {
"axios": "~1.1.3",
"cosmokit": "^1.3.4",
"file-type": "^16.5.4",
"cosmokit": "^1.4.0",
"mime-db": "^1.52.0",
"schemastery": "^3.6.1"
},
......@@ -2943,9 +3053,9 @@
}
},
"node_modules/cosmokit": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.6.tgz",
"integrity": "sha512-buZvC7fuqBbSimJfkaaTJmlelpgj56L7VybjNkCy5UVvShMVQHi/bTZcuBfYLBwpuebSfvDZPwwHS5IfcoAnxg=="
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.4.0.tgz",
"integrity": "sha512-9Y5epwkPxnWDSjweuWoFATY8GKg9N1/r/3wL32Cjs7FIvo0S9syyY39xmNKq7+SZjbw+9bZUSbeQSbJaqufV3Q=="
},
"node_modules/create-require": {
"version": "1.1.1",
......@@ -3094,6 +3204,15 @@
"node": ">=6.0.0"
}
},
"node_modules/dotenv": {
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
"integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
"peer": true,
"engines": {
"node": ">=12"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
......@@ -3916,6 +4035,11 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/ext2mime": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ext2mime/-/ext2mime-1.0.1.tgz",
"integrity": "sha512-Tg+YETHbPl/ycMhrCuo/G2N5iK4Rc6vWI0MfBxTTpkSnBjbxdmPeNSQJRYn1OMGLfWqVi+eCbCRgbT0/ioVE+Q=="
},
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
......@@ -3995,9 +4119,9 @@
}
},
"node_modules/file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"version": "16.5.3",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==",
"dependencies": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
......@@ -4014,7 +4138,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
......@@ -4105,7 +4228,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
......@@ -4203,7 +4325,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
......@@ -4507,6 +4628,18 @@
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
"node_modules/is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"peer": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/is-core-module": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
......@@ -4538,7 +4671,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
......@@ -4580,7 +4712,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"dependencies": {
"is-extglob": "^2.1.1"
},
......@@ -4592,7 +4723,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
"engines": {
"node": ">=0.12.0"
}
......@@ -6099,32 +6229,48 @@
}
},
"node_modules/koishi": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.10.tgz",
"integrity": "sha512-92VxR/7AL8l2eyd0MOWi5Nc/nLe2lX9ftglsMkqHvvImFkQma+2kSuexuxVLjcDmkAL6LWI27VxyuUH35jl5PQ==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.0.tgz",
"integrity": "sha512-1XGqZRRZxkUn3a0RYY8/hQ2B5/8T7eWyH8C93VYLiLKpYoPZleh47mx4rpd/fI1zBBQC3VEym0m8ApfEqwGIkg==",
"peer": true,
"dependencies": {
"@koishijs/core": "^4.10.10",
"@koishijs/utils": "^6.3.4",
"@satorijs/satori": "^1.4.11",
"file-type": "^16.5.4",
"ns-require": "^1.1.4"
"@koishijs/core": "^4.11.0",
"@koishijs/loader": "^2.5.0",
"@koishijs/utils": "^6.4.0",
"@satorijs/satori": "^1.5.2",
"cac": "^6.7.14",
"chokidar": "^3.5.3",
"kleur": "^4.1.5",
"ns-require": "^1.1.4",
"throttle-debounce": "^3.0.1"
},
"bin": {
"koishi": "lib/cli/index.js"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/koishi-thirdeye": {
"version": "11.1.17",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.17.tgz",
"integrity": "sha512-Ij65qf1pLO1kQMrs2RNRVUdalmb2lL8tcxGVl79cDqW/V6ECjPgaSVIPuUT3uxI6FAaQHq9dXHMF54Iw05W8+Q==",
"version": "11.1.20",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.20.tgz",
"integrity": "sha512-vWeK44PHhiLTbHTqK/h0ztcIidq7sQ3kNpersv7wSkSn6JYgZTRSdPMSOy+JNIpye+M7RXWz2y35Ua1OhNiyEw==",
"dependencies": {
"minato-decorators": "^2.2.1",
"rxjs": "^7.5.6",
"satori-decorators": "^1.1.1"
"satori-decorators": "^1.1.3"
},
"peerDependencies": {
"koishi": "^4.10.10"
"koishi": "^4.11.0"
}
},
"node_modules/koishi/node_modules/kleur": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
"peer": true,
"engines": {
"node": ">=6"
}
},
"node_modules/leven": {
......@@ -6416,7 +6562,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
......@@ -6684,7 +6829,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
"dev": true,
"engines": {
"node": ">=8.6"
},
......@@ -6955,6 +7099,18 @@
"url": "https://github.com/sponsors/Borewit"
}
},
"node_modules/readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"peer": true,
"dependencies": {
"picomatch": "^2.2.1"
},
"engines": {
"node": ">=8.10.0"
}
},
"node_modules/rechoir": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
......@@ -6985,9 +7141,9 @@
}
},
"node_modules/reggol": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.3.tgz",
"integrity": "sha512-AmFo4aBBLwd1IosfkQ9cnWJF+RDXjrfmY2pFeRXSLlvi1UoqMYLsltR/514R8Dr/ZfAYdcD75V/vFDK60hgyOQ==",
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==",
"peer": true,
"dependencies": {
"cosmokit": "^1.3.6",
......@@ -7129,9 +7285,9 @@
}
},
"node_modules/rxjs": {
"version": "7.5.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz",
"integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==",
"version": "7.8.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
"integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
"dependencies": {
"tslib": "^2.1.0"
}
......@@ -7149,9 +7305,9 @@
"peer": true
},
"node_modules/satori-decorators": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.1.1.tgz",
"integrity": "sha512-1DHj12xFkVhAeS5Qh7MAWXYhMfwl0k/3VwtQrsoVNwPOyRCbid0ik3l16QwFZvHeoV+VJmEuOAFj/Vw+qDASuw==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.1.3.tgz",
"integrity": "sha512-GTUiU7MiyXy+d6C3XFaFscrc9w3VkCbjUzS1MJG8yFZTaqwHK7QXEnugXXc5YBFx2SiBS1K93ElY3kkrSpB1kw==",
"dependencies": {
"@types/koa": "^2.13.5",
"@types/koa__router": "^8.0.11",
......@@ -7159,7 +7315,7 @@
"lodash": "^4.17.21"
},
"peerDependencies": {
"koishi": "^4.9.7"
"koishi": "^4.11.0"
}
},
"node_modules/schema-utils": {
......@@ -7669,6 +7825,15 @@
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"dev": true
},
"node_modules/throttle-debounce": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
"integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
"peer": true,
"engines": {
"node": ">=10"
}
},
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
......@@ -7688,7 +7853,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
......@@ -7848,9 +8012,9 @@
}
},
"node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/tsscmp": {
"version": "1.0.6",
......@@ -7937,9 +8101,9 @@
}
},
"node_modules/typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
......@@ -9403,26 +9567,66 @@
"integrity": "sha512-rTg8W6LzjCBnMAwJ2CgU80hu/yWTw7QJipw+oHoBLrJbI3Ws5VzMGlu+XOOIYakgps7BtSZOYadCUnEWr9QLvw==",
"requires": {
"file-type": "^16.5.4"
},
"dependencies": {
"file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"requires": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
}
}
}
},
"@koishijs/core": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.10.10.tgz",
"integrity": "sha512-LooBZCQSm91TL7aBBECjaFaROn+udCAavOwi+AWzbFPBfcuF4ZHFGpQ112yWK70xbQ7YhHUueueqJpkAGOy4RA==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@koishijs/core/-/core-4.11.0.tgz",
"integrity": "sha512-urQGWpqifyFAqJuhfkbZVnO+OdFw/p+PZcMEelfrFi6iaKCLVXVlIO4zK4yEu+lHTwQiYwBszqu5NeoE9Z2kuA==",
"peer": true,
"requires": {
"@koishijs/utils": "^6.3.4",
"@minatojs/core": "^2.0.3",
"@satorijs/core": "^1.4.11",
"@koishijs/utils": "^6.4.0",
"@minatojs/core": "^2.1.0",
"@satorijs/core": "^1.5.2",
"cordis": "^2.6.0",
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"fastest-levenshtein": "^1.0.16"
}
},
"@koishijs/loader": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/@koishijs/loader/-/loader-2.5.0.tgz",
"integrity": "sha512-8StBIK7+/sDr65d+MEm8htXblVCrIZORXcEO/O7Wupn0eMyktm7GI0kL7C7uLhHT5Yoiby36T5LeNbaKWeKWlg==",
"peer": true,
"requires": {
"dotenv": "^16.0.3",
"js-yaml": "^4.1.0",
"ns-require": "^1.1.4"
},
"dependencies": {
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"peer": true
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"peer": true,
"requires": {
"argparse": "^2.0.1"
}
}
}
},
"@koishijs/plugin-console": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-console/-/plugin-console-5.0.0.tgz",
"integrity": "sha512-6jLYse2EYgoNcOvOfKWWBnMXEfY8E9NCKpLrr8ts7PmY+8ot9ZsO4SbEEDYB1VgKMfkKm1zY12Jsa+ziNIiG1Q==",
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-console/-/plugin-console-5.0.2.tgz",
"integrity": "sha512-ax4U7fC4YBMXIoB+5aIRxuiQY8Q1nwUsK2+gWCkqE7QbPhUm5OEElQdcdM6f1I0rDpe60IXjSABPs/XEl5rfDA==",
"dev": true,
"requires": {
"open": "^8.4.0",
......@@ -9431,12 +9635,12 @@
}
},
"@koishijs/plugin-database-memory": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-database-memory/-/plugin-database-memory-2.0.1.tgz",
"integrity": "sha512-QIkycpWksRipUXjfRMHvGN1I4qNnLDiO9kyAYAGHVLdCRmNg9mkiXANAmtnpPGgpZB9wxnyBR0bbBEfwVxAZsw==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@koishijs/plugin-database-memory/-/plugin-database-memory-2.2.0.tgz",
"integrity": "sha512-0O7KmYve3AWjkPOjITRBgdVWXg7Zn72pEkTMNN4Enn7OsRiXcPSaEt+qZeFY/7XmYcZkIzs72yCtDAERJ6CPaw==",
"dev": true,
"requires": {
"@minatojs/driver-memory": "^2.0.1"
"@minatojs/driver-memory": "^2.1.0"
}
},
"@koishijs/plugin-sandbox": {
......@@ -9447,32 +9651,32 @@
"requires": {}
},
"@koishijs/utils": {
"version": "6.3.4",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.3.4.tgz",
"integrity": "sha512-P8hQOTVYsk5rCkBcYbIKKKBm58etGlY/Q3xOuMEyz6BlTe0V8A6lFv56nInuPIaTOf4XprTceZBE6Oe3lC8RuQ==",
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/@koishijs/utils/-/utils-6.4.0.tgz",
"integrity": "sha512-GMIBnr4W6JZST5hB8u1sVH3+MH7ZcGIUy3IJU538Z4j/JbCoRnydNnCKggs7tB1JFHqq/7eHAsks/2WrfA/1ng==",
"peer": true,
"requires": {
"cosmokit": "^1.3.6",
"cosmokit": "^1.4.0",
"inaba": "^1.1.1",
"reggol": "^1.3.3",
"reggol": "^1.3.4",
"schemastery": "^3.6.1"
}
},
"@minatojs/core": {
"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==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@minatojs/core/-/core-2.1.0.tgz",
"integrity": "sha512-buMhprBZoMmH5vcy98YDKyBSDrt/C6VSNgbPKILPEJf0jikVmURHniqV1zZ+KL7M1jbOIHcyJE5w3+cMe4ifLQ==",
"requires": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
},
"@minatojs/driver-memory": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@minatojs/driver-memory/-/driver-memory-2.0.1.tgz",
"integrity": "sha512-kby08dhomI8tYWUXTzZwiUDWGfsVhCxzHLIN3riEciaJFGmCxHwvRXiVthAsUfwcWthfRZRKJ0jxVv54NQ3uRw==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@minatojs/driver-memory/-/driver-memory-2.1.0.tgz",
"integrity": "sha512-7g0SpzDP9CgIRPhSsFoB6t35xnLp8QRiiuCUESTGRfWBOwPERmfuI8/8r3UJfKHxqE0W+sPDWGe+lw3hqsPw2g==",
"dev": true,
"requires": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
},
"@nodelib/fs.scandir": {
......@@ -9502,41 +9706,42 @@
}
},
"@satorijs/core": {
"version": "1.4.11",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.4.11.tgz",
"integrity": "sha512-8EsVA5esShEqYMwwXipGwx7obwVb3Lc0NwBmjZWNj2++WYKYg+jQ0Iatgd2jcJhNX2H9ziqnwu05aHtWo+mSsA==",
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@satorijs/core/-/core-1.5.2.tgz",
"integrity": "sha512-5hnqwI6mSpDyzSHHIaaJBCwoiDjvDDBeD81rIwYW4JDKEKBOGWgVqNi4g+ru2s8gyR+M8cTvH71a1B2iOQiQTQ==",
"peer": true,
"requires": {
"@satorijs/element": "^2.2.2",
"@satorijs/element": "^2.3.1",
"cordis": "^2.6.0",
"cordis-axios": "^2.1.6",
"cosmokit": "^1.3.6",
"reggol": "^1.3.3",
"cordis-axios": "^2.2.0",
"cosmokit": "^1.4.0",
"reggol": "^1.3.4",
"schemastery": "^3.6.1",
"ws": "^8.11.0"
}
},
"@satorijs/element": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.2.2.tgz",
"integrity": "sha512-t6K0weO+GwqHhP/C9GTchck0jDk8c63kiAr9hHEVQX3nx/+fjGquTDGzBc4WzOVc105wePWRvV1UtvRaa0I9FQ==",
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/@satorijs/element/-/element-2.3.1.tgz",
"integrity": "sha512-p1hQVy56nfJ2dw1noEHkV7hKpC9yqe5u3Vla+CSPqXU12uB4zqv96rjT9n4WulNGl8XTzqWxp8q8KWqhSI8JFA==",
"peer": true,
"requires": {
"cosmokit": "^1.3.6"
"cosmokit": "^1.4.0"
}
},
"@satorijs/satori": {
"version": "1.4.11",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.4.11.tgz",
"integrity": "sha512-nQHch/Ya1ClsNO9anJYfNnpiMFHCc1ihxdWuVKKpGOXRxuGMOtnbkB/Qa+NuBT+887E2NsFfTBoFgt8vuExxew==",
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/@satorijs/satori/-/satori-1.5.2.tgz",
"integrity": "sha512-e5l1NH9VVU8+4CeyKUWtr0mZ0E8WutvUzzqSuA5NCYkMMJ8A8xjqlHDOZtoEjtbp/AF9vnYVGHZC25DJw0zhig==",
"peer": true,
"requires": {
"@koa/router": "^10.1.1",
"@satorijs/core": "1.4.11",
"@satorijs/core": "1.5.2",
"@types/koa": "*",
"@types/koa__router": "*",
"@types/ws": "^8.5.3",
"agent-base": "^6.0.2",
"file-type": "^16.5.4",
"http-proxy-agent": "^5.0.0",
"https-proxy-agent": "^5.0.1",
"koa": "^2.14.1",
......@@ -9546,6 +9751,19 @@
"schemastery": "^3.6.1",
"socks-proxy-agent": "^5.0.1",
"ws": "^8.11.0"
},
"dependencies": {
"file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"peer": true,
"requires": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
"token-types": "^4.1.1"
}
}
}
},
"@sinclair/typebox": {
......@@ -9879,9 +10097,9 @@
"dev": true
},
"@types/ws": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
"integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
"version": "8.5.4",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz",
"integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==",
"peer": true,
"requires": {
"@types/node": "*"
......@@ -10270,7 +10488,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
......@@ -10363,6 +10580,12 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"peer": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
......@@ -10377,7 +10600,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
}
......@@ -10425,6 +10647,12 @@
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"peer": true
},
"cac": {
"version": "6.7.14",
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
"peer": true
},
"cache-content-type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
......@@ -10479,6 +10707,22 @@
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true
},
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"peer": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
"fsevents": "~2.3.2",
"glob-parent": "~5.1.2",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.6.0"
}
},
"chrome-trace-event": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
......@@ -10649,14 +10893,13 @@
}
},
"cordis-axios": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.1.6.tgz",
"integrity": "sha512-GaJq5zoh4XRAFHEOyCLyU7kIcRrV7hqDVEh5kF4t047TmROAUaLukPKSMeMVMNohpKW4Vz+tj2FGEqMx5NuBQg==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cordis-axios/-/cordis-axios-2.2.0.tgz",
"integrity": "sha512-gpFyu+nZoTSiPD1H8LsUxq2H7rtLFnm8UL5jOtwaTor20EmyVXiaSRV8Cc0yIcnobqmMmcY3VYVcXTir++DLtQ==",
"peer": true,
"requires": {
"axios": "~1.1.3",
"cosmokit": "^1.3.4",
"file-type": "^16.5.4",
"cosmokit": "^1.4.0",
"mime-db": "^1.52.0",
"schemastery": "^3.6.1"
}
......@@ -10675,9 +10918,9 @@
}
},
"cosmokit": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.3.6.tgz",
"integrity": "sha512-buZvC7fuqBbSimJfkaaTJmlelpgj56L7VybjNkCy5UVvShMVQHi/bTZcuBfYLBwpuebSfvDZPwwHS5IfcoAnxg=="
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/cosmokit/-/cosmokit-1.4.0.tgz",
"integrity": "sha512-9Y5epwkPxnWDSjweuWoFATY8GKg9N1/r/3wL32Cjs7FIvo0S9syyY39xmNKq7+SZjbw+9bZUSbeQSbJaqufV3Q=="
},
"create-require": {
"version": "1.1.1",
......@@ -10787,6 +11030,12 @@
"esutils": "^2.0.2"
}
},
"dotenv": {
"version": "16.0.3",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
"integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
"peer": true
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
......@@ -11301,6 +11550,11 @@
}
}
},
"ext2mime": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ext2mime/-/ext2mime-1.0.1.tgz",
"integrity": "sha512-Tg+YETHbPl/ycMhrCuo/G2N5iK4Rc6vWI0MfBxTTpkSnBjbxdmPeNSQJRYn1OMGLfWqVi+eCbCRgbT0/ioVE+Q=="
},
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
......@@ -11371,9 +11625,9 @@
}
},
"file-type": {
"version": "16.5.4",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz",
"integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
"version": "16.5.3",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz",
"integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==",
"requires": {
"readable-web-to-node-stream": "^3.0.0",
"strtok3": "^6.2.4",
......@@ -11384,7 +11638,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
......@@ -11446,7 +11699,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
"function-bind": {
......@@ -11513,7 +11765,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
......@@ -11728,6 +11979,15 @@
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
"dev": true
},
"is-binary-path": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"peer": true,
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-core-module": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz",
......@@ -11746,8 +12006,7 @@
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
},
"is-fullwidth-code-point": {
"version": "3.0.0",
......@@ -11774,7 +12033,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
......@@ -11782,8 +12040,7 @@
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-plain-object": {
"version": "2.0.4",
......@@ -12964,26 +13221,38 @@
}
},
"koishi": {
"version": "4.10.10",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.10.10.tgz",
"integrity": "sha512-92VxR/7AL8l2eyd0MOWi5Nc/nLe2lX9ftglsMkqHvvImFkQma+2kSuexuxVLjcDmkAL6LWI27VxyuUH35jl5PQ==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/koishi/-/koishi-4.11.0.tgz",
"integrity": "sha512-1XGqZRRZxkUn3a0RYY8/hQ2B5/8T7eWyH8C93VYLiLKpYoPZleh47mx4rpd/fI1zBBQC3VEym0m8ApfEqwGIkg==",
"peer": true,
"requires": {
"@koishijs/core": "^4.10.10",
"@koishijs/utils": "^6.3.4",
"@satorijs/satori": "^1.4.11",
"file-type": "^16.5.4",
"ns-require": "^1.1.4"
"@koishijs/core": "^4.11.0",
"@koishijs/loader": "^2.5.0",
"@koishijs/utils": "^6.4.0",
"@satorijs/satori": "^1.5.2",
"cac": "^6.7.14",
"chokidar": "^3.5.3",
"kleur": "^4.1.5",
"ns-require": "^1.1.4",
"throttle-debounce": "^3.0.1"
},
"dependencies": {
"kleur": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
"peer": true
}
}
},
"koishi-thirdeye": {
"version": "11.1.17",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.17.tgz",
"integrity": "sha512-Ij65qf1pLO1kQMrs2RNRVUdalmb2lL8tcxGVl79cDqW/V6ECjPgaSVIPuUT3uxI6FAaQHq9dXHMF54Iw05W8+Q==",
"version": "11.1.20",
"resolved": "https://registry.npmjs.org/koishi-thirdeye/-/koishi-thirdeye-11.1.20.tgz",
"integrity": "sha512-vWeK44PHhiLTbHTqK/h0ztcIidq7sQ3kNpersv7wSkSn6JYgZTRSdPMSOy+JNIpye+M7RXWz2y35Ua1OhNiyEw==",
"requires": {
"minato-decorators": "^2.2.1",
"rxjs": "^7.5.6",
"satori-decorators": "^1.1.1"
"satori-decorators": "^1.1.3"
}
},
"leven": {
......@@ -13219,8 +13488,7 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"dev": true
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"npm-run-path": {
"version": "4.0.1",
......@@ -13413,8 +13681,7 @@
"picomatch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
"dev": true
"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
},
"pirates": {
"version": "4.0.5",
......@@ -13595,6 +13862,15 @@
"readable-stream": "^3.6.0"
}
},
"readdirp": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"peer": true,
"requires": {
"picomatch": "^2.2.1"
}
},
"rechoir": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
......@@ -13616,9 +13892,9 @@
"dev": true
},
"reggol": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.3.tgz",
"integrity": "sha512-AmFo4aBBLwd1IosfkQ9cnWJF+RDXjrfmY2pFeRXSLlvi1UoqMYLsltR/514R8Dr/ZfAYdcD75V/vFDK60hgyOQ==",
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/reggol/-/reggol-1.3.4.tgz",
"integrity": "sha512-E/sL4WovP0kR5EHQx3YF4ZDsI5D5baTROXaELCN1mOCB8tEOVOR3PHr807yVcGit2BfmXMSW5KyRaUAV5K8Vzw==",
"peer": true,
"requires": {
"cosmokit": "^1.3.6",
......@@ -13713,9 +13989,9 @@
}
},
"rxjs": {
"version": "7.5.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz",
"integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==",
"version": "7.8.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz",
"integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==",
"requires": {
"tslib": "^2.1.0"
}
......@@ -13733,9 +14009,9 @@
"peer": true
},
"satori-decorators": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.1.1.tgz",
"integrity": "sha512-1DHj12xFkVhAeS5Qh7MAWXYhMfwl0k/3VwtQrsoVNwPOyRCbid0ik3l16QwFZvHeoV+VJmEuOAFj/Vw+qDASuw==",
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/satori-decorators/-/satori-decorators-1.1.3.tgz",
"integrity": "sha512-GTUiU7MiyXy+d6C3XFaFscrc9w3VkCbjUzS1MJG8yFZTaqwHK7QXEnugXXc5YBFx2SiBS1K93ElY3kkrSpB1kw==",
"requires": {
"@types/koa": "^2.13.5",
"@types/koa__router": "^8.0.11",
......@@ -14110,6 +14386,12 @@
"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"dev": true
},
"throttle-debounce": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz",
"integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==",
"peer": true
},
"tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
......@@ -14126,7 +14408,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
}
......@@ -14210,9 +14491,9 @@
}
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"tsscmp": {
"version": "1.0.6",
......@@ -14277,9 +14558,9 @@
}
},
"typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"version": "4.9.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
"integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
"dev": true
},
"unpipe": {
......
......@@ -28,12 +28,14 @@
"homepage": "https://github.com/koishijs/koishi-plugin-pics",
"dependencies": {
"@koishijs/assets": "^1.0.1",
"koishi-thirdeye": "^11.1.17",
"ext2mime": "^1.0.1",
"file-type": "16.5.3",
"koishi-thirdeye": "^11.1.20",
"lodash": "^4.17.21"
},
"devDependencies": {
"@koishijs/plugin-console": "^5.0.0",
"@koishijs/plugin-database-memory": "^2.0.1",
"@koishijs/plugin-console": "^5.0.2",
"@koishijs/plugin-database-memory": "^2.2.0",
"@koishijs/plugin-sandbox": "^2.5.0",
"@types/jest": "^29.2.0",
"@types/lodash": "^4.14.176",
......@@ -51,13 +53,13 @@
"ts-jest": "^29.0.3",
"ts-loader": "^9.3.1",
"ts-node": "^10.9.1",
"typescript": "^4.8.4",
"typescript": "^4.9.4",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"ws": "^8.3.0"
},
"peerDependencies": {
"koishi": "^4.10.10"
"koishi": "^4.11.0"
},
"jest": {
"moduleFileExtensions": [
......
// import 'source-map-support/register';
import { Context, Random, Logger, Bot, remove, Session, Dict } from 'koishi';
import { Context, Random, Logger, remove, Session, Dict } from 'koishi';
import { PicsPluginConfig } from './config';
import _ from 'lodash';
import { segment, Quester, Element } from 'koishi';
......@@ -20,11 +20,14 @@ import {
UseCommand,
UseComponent,
} from 'koishi-thirdeye';
import { AxiosRequestConfig } from 'axios';
import { PicAssetsTransformMiddleware } from './middlewares/assets';
import { PicDownloaderMiddleware } from './middlewares/download';
import { PicMiddleware, PicNext, PicResult } from './def';
import { PicSource } from './picsource';
import FileType from 'file-type';
import path from 'path';
import ext2mime from 'ext2mime';
import * as fs from 'fs';
export * from './config';
export * from './middleware';
export * from './picsource';
......@@ -174,38 +177,45 @@ export default class PicsContainer
return this.fetchPicsWithSources(sources, picTags);
}
isOneBotBot(bot?: Bot) {
return (
bot &&
(bot.platform === 'onebot' ||
(bot.platform === 'qqguild' && bot['parentBot']?.platform === 'onebot'))
);
}
async urlToBuffer(
url: string,
extraConfig: AxiosRequestConfig = {},
): Promise<Buffer> {
async urlToBuffer(url: string): Promise<{ buffer: Buffer; mime: string }> {
if (url.startsWith('base64://')) {
return Buffer.from(url.slice(9), 'base64');
const buf = Buffer.from(url.slice(9), 'base64');
const type = await FileType.fromBuffer(buf);
return { buffer: buf, mime: type?.mime || 'application/octet-stream' };
}
const data = await this._http.get<Buffer>(url, {
responseType: 'arraybuffer',
...extraConfig,
});
return data as Buffer;
if (url.startsWith('file://')) {
const filePath = url.slice(7);
const buf = await fs.promises.readFile(filePath);
const mime =
ext2mime(path.extname(filePath)) ||
(await FileType.fromBuffer(buf)).mime;
return { buffer: buf, mime };
}
const data = await this._http.file(url);
return {
buffer: data.data as Buffer,
mime: data.mime,
};
}
bufferToUrl(buffer: Buffer) {
return `base64://${buffer.toString('base64')}`;
async bufferToUrl(buffer: Buffer, mime?: string) {
if (!mime) {
const result = await FileType.fromBuffer(buffer);
if (result) {
mime = result.mime;
} else {
mime = 'application/octet-stream';
}
}
return `data:${mime};base64,${buffer.toString('base64')}`;
}
async download(url: string, extraConfig: AxiosRequestConfig = {}) {
async download(url: string) {
if (url.startsWith('base64://')) {
return url;
return this.bufferToUrl(Buffer.from(url.slice(9), 'base64'));
}
const buffer = await this.urlToBuffer(url, extraConfig);
return this.bufferToUrl(buffer);
const data = await this.urlToBuffer(url);
return this.bufferToUrl(data.buffer, data.mime);
}
async resolveUrl(url: string, middlewares = this.picMiddlewares) {
......
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