mioki 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +25 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -5
- package/dist/index.d.mts +4 -5
- package/dist/index.mjs +24 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EventMap, GroupMessageEvent, LogLevel, MessageEvent, NapCat, PrivateMessageEvent, RecvElement, RecvImageElement, Sendable } from "napcat-sdk";
|
|
1
|
+
import { EventMap, GroupMessageEvent, LogLevel, Logger, MessageEvent, NapCat, PrivateMessageEvent, RecvElement, RecvImageElement, Sendable } from "napcat-sdk";
|
|
3
2
|
import { Low } from "lowdb";
|
|
4
3
|
import { Jiti } from "jiti";
|
|
5
4
|
import prettyMs from "pretty-ms";
|
|
@@ -18,12 +17,12 @@ import { ScheduledTask, TaskContext } from "node-cron";
|
|
|
18
17
|
//#region rolldown:runtime
|
|
19
18
|
//#endregion
|
|
20
19
|
//#region src/logger.d.ts
|
|
21
|
-
declare const logger:
|
|
20
|
+
declare const logger: Logger;
|
|
22
21
|
/**
|
|
23
22
|
* 获取日志文件名
|
|
24
23
|
*/
|
|
25
24
|
declare function getLogFilePath(type?: string): string;
|
|
26
|
-
declare function getMiokiLogger(level: LogLevel):
|
|
25
|
+
declare function getMiokiLogger(level: LogLevel): Logger;
|
|
27
26
|
//#endregion
|
|
28
27
|
//#region src/start.d.ts
|
|
29
28
|
interface StartOptions {
|
|
@@ -614,7 +613,7 @@ interface MiokiContext extends Services, Configs, Utils, RemoveBotParam<Actions>
|
|
|
614
613
|
/** 待清理的函数集合,在插件卸载时会被调用 */
|
|
615
614
|
clears: Set<(() => any) | null | undefined>;
|
|
616
615
|
/** 日志器 */
|
|
617
|
-
logger:
|
|
616
|
+
logger: Logger;
|
|
618
617
|
}
|
|
619
618
|
declare const runtimePlugins: Map<string, {
|
|
620
619
|
name: string;
|
package/dist/index.d.mts
CHANGED
|
@@ -5,23 +5,22 @@ import { BinaryLike, BinaryToTextEncoding } from "node:crypto";
|
|
|
5
5
|
import { Low } from "lowdb";
|
|
6
6
|
import { Jiti } from "jiti";
|
|
7
7
|
import { string2argv } from "string2argv";
|
|
8
|
-
import { EventMap, GroupMessageEvent, LogLevel, MessageEvent, NapCat, PrivateMessageEvent, RecvElement, RecvImageElement, Sendable } from "napcat-sdk";
|
|
8
|
+
import { EventMap, GroupMessageEvent, LogLevel, Logger, MessageEvent, NapCat, PrivateMessageEvent, RecvElement, RecvImageElement, Sendable } from "napcat-sdk";
|
|
9
9
|
import prettyMs from "pretty-ms";
|
|
10
10
|
import { filesize } from "filesize";
|
|
11
11
|
import dayjs from "dayjs";
|
|
12
12
|
import dedent from "dedent";
|
|
13
13
|
import { box, colorize, colors, stripAnsi } from "consola/utils";
|
|
14
14
|
import systemInfo from "systeminformation";
|
|
15
|
-
import { ConsolaInstance } from "consola/core";
|
|
16
15
|
import { ScheduledTask, TaskContext } from "node-cron";
|
|
17
16
|
|
|
18
17
|
//#region src/logger.d.ts
|
|
19
|
-
declare const logger:
|
|
18
|
+
declare const logger: Logger;
|
|
20
19
|
/**
|
|
21
20
|
* 获取日志文件名
|
|
22
21
|
*/
|
|
23
22
|
declare function getLogFilePath(type?: string): string;
|
|
24
|
-
declare function getMiokiLogger(level: LogLevel):
|
|
23
|
+
declare function getMiokiLogger(level: LogLevel): Logger;
|
|
25
24
|
//#endregion
|
|
26
25
|
//#region src/start.d.ts
|
|
27
26
|
interface StartOptions {
|
|
@@ -612,7 +611,7 @@ interface MiokiContext extends Services, Configs, Utils, RemoveBotParam<Actions>
|
|
|
612
611
|
/** 待清理的函数集合,在插件卸载时会被调用 */
|
|
613
612
|
clears: Set<(() => any) | null | undefined>;
|
|
614
613
|
/** 日志器 */
|
|
615
|
-
logger:
|
|
614
|
+
logger: Logger;
|
|
616
615
|
}
|
|
617
616
|
declare const runtimePlugins: Map<string, {
|
|
618
617
|
name: string;
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { t as __export } from "./chunk-C6wwvPpM.mjs";
|
|
2
2
|
import fs, { default as fs$1 } from "node:fs";
|
|
3
|
+
import util from "node:util";
|
|
3
4
|
import path, { default as path$1 } from "node:path";
|
|
4
5
|
import mri, { default as mri$1 } from "mri";
|
|
5
6
|
import crypto from "node:crypto";
|
|
@@ -858,14 +859,21 @@ function getMiokiLogger(level) {
|
|
|
858
859
|
level: LogLevels[level],
|
|
859
860
|
defaults: { tag: "mioki" },
|
|
860
861
|
reporters: [{ log: (logObj) => {
|
|
861
|
-
const message = stripAnsi$1(logObj.message || logObj.args?.
|
|
862
|
+
const message = stripAnsi$1(logObj.message || logObj.args?.map((e) => typeof e === "string" ? e : util.inspect(e, {
|
|
863
|
+
colors: true,
|
|
864
|
+
depth: null
|
|
865
|
+
})).join(" ") || "");
|
|
862
866
|
const line = `${`[${logObj.date.toISOString()}] [${LEVEL_MAP[logObj.level].name}] ${logObj.tag ? `[${logObj.tag}] ` : ""}`}${message}`;
|
|
863
867
|
fs$1.appendFileSync(logFile, line + "\n");
|
|
864
868
|
} }, { log: (logObj) => {
|
|
865
|
-
const
|
|
866
|
-
|
|
867
|
-
|
|
869
|
+
const line = `${colors$1.gray(`[${logObj.date.toLocaleTimeString("zh-CN")}]`)} ${colors$1.bold(colors$1[LEVEL_MAP[logObj.level].color](LEVEL_MAP[logObj.level].name))} ${logObj.tag ? colors$1.dim(`[${logObj.tag}] `) : ""} ${logObj.message || logObj.args?.map((e) => typeof e === "string" ? e : util.inspect(e, {
|
|
870
|
+
colors: true,
|
|
871
|
+
depth: null
|
|
872
|
+
})).join(" ") || ""}`;
|
|
873
|
+
if (logObj.level <= LogLevels["error"]) console.error(line);
|
|
868
874
|
else if (logObj.level === LogLevels["warn"]) console.warn(line);
|
|
875
|
+
else if (logObj.level === LogLevels["log"]) console.log(line);
|
|
876
|
+
else if (logObj.level === LogLevels["info"]) console.info(line);
|
|
869
877
|
else console.debug(line);
|
|
870
878
|
} }],
|
|
871
879
|
formatOptions: {
|
|
@@ -878,7 +886,7 @@ function getMiokiLogger(level) {
|
|
|
878
886
|
|
|
879
887
|
//#endregion
|
|
880
888
|
//#region package.json
|
|
881
|
-
var version = "0.
|
|
889
|
+
var version = "0.6.0";
|
|
882
890
|
|
|
883
891
|
//#endregion
|
|
884
892
|
//#region src/actions.ts
|
|
@@ -1249,9 +1257,9 @@ async function enablePlugin(bot, plugin, type = "external") {
|
|
|
1249
1257
|
});
|
|
1250
1258
|
const end = hrtime.bigint();
|
|
1251
1259
|
const time = Math.round(Number(end - start$1)) / 1e6;
|
|
1252
|
-
bot.logger.info(
|
|
1260
|
+
bot.logger.info(`- 启用插件 ${colors$1.yellow(`[${typeDesc}]`)} ${colors$1.yellow(`${name}@${version$1}`)} => 耗时 ${colors$1.green(time.toFixed(2))} 毫秒`);
|
|
1253
1261
|
} catch (e) {
|
|
1254
|
-
throw new Error(`启用插件 ${colors$1.yellow(`[${typeDesc}]`)}${colors$1.yellow(`${name}@${version$1}`)} 失败: ${e?.message}`);
|
|
1262
|
+
throw new Error(`启用插件 ${colors$1.yellow(`[${typeDesc}]`)} ${colors$1.yellow(`${name}@${version$1}`)} 失败: ${e?.message}`);
|
|
1255
1263
|
}
|
|
1256
1264
|
return plugin;
|
|
1257
1265
|
}
|
|
@@ -1682,24 +1690,24 @@ const BUILTIN_PLUGINS = [core_default];
|
|
|
1682
1690
|
//#region src/start.ts
|
|
1683
1691
|
async function start(options = {}) {
|
|
1684
1692
|
const { cwd = process.cwd() } = options;
|
|
1685
|
-
if (cwd !== BOT_CWD.value) updateBotCWD(cwd);
|
|
1693
|
+
if (cwd !== BOT_CWD.value) updateBotCWD(path$1.resolve(cwd));
|
|
1686
1694
|
process.title = `mioki v${version}`;
|
|
1687
1695
|
const plugin_dir = getAbsPluginDir();
|
|
1688
1696
|
logger.info(colors$1.dim("=".repeat(40)));
|
|
1689
|
-
logger.info(`欢迎使用 ${colors$1.bold(colors$1.cyan("mioki"))} ${colors$1.bold(colors$1.green(`v${version}`))}`);
|
|
1697
|
+
logger.info(`欢迎使用 ${colors$1.bold(colors$1.cyan("mioki"))} 💓 ${colors$1.bold(colors$1.green(`v${version}`))}`);
|
|
1690
1698
|
logger.info(colors$1.yellow(colors$1.underline(`一个基于 NapCat 和 TypeScript 的QQ 机器人框架`)));
|
|
1691
|
-
logger.info(colors$1.cyan(`轻量 * 跨平台 *
|
|
1699
|
+
logger.info(colors$1.cyan(`轻量 * 跨平台 * 插件式 * 热重载 * 注重开发体验`));
|
|
1692
1700
|
logger.info(colors$1.dim("=".repeat(40)));
|
|
1693
1701
|
logger.info(colors$1.dim(colors$1.italic(`作者: Viki <hi@viki.moe> (https://github.com/vikiboss)`)));
|
|
1694
1702
|
logger.info(colors$1.dim(colors$1.italic(`仓库: https://github.com/vikiboss/mioki`)));
|
|
1695
|
-
logger.info(colors$1.dim(colors$1.italic(`文档: https://mioki.viki.moe
|
|
1703
|
+
logger.info(colors$1.dim(colors$1.italic(`文档: https://mioki.viki.moe (还没写)`)));
|
|
1696
1704
|
logger.info(colors$1.dim("=".repeat(40)));
|
|
1697
1705
|
logger.info(`${colors$1.dim("工作目录: ")}${colors$1.blue(BOT_CWD.value)}`);
|
|
1698
1706
|
logger.info(`${colors$1.dim("插件目录: ")}${colors$1.blue(plugin_dir)}`);
|
|
1699
1707
|
logger.info(`${colors$1.dim("配置文件: ")}${colors$1.blue(`${BOT_CWD.value}/package.json`)}`);
|
|
1700
1708
|
logger.info(colors$1.dim("=".repeat(40)));
|
|
1701
1709
|
const { protocol = "ws", port = 6700, host = "localhost", token } = botConfig.napcat || {};
|
|
1702
|
-
logger.info(
|
|
1710
|
+
logger.info(`>>> 正在连接 NapCat 实例: ${colors$1.green(`${protocol}://${host}:${port}`)}`);
|
|
1703
1711
|
const napcat = new NapCat({
|
|
1704
1712
|
token,
|
|
1705
1713
|
protocol,
|
|
@@ -1709,9 +1717,11 @@ async function start(options = {}) {
|
|
|
1709
1717
|
});
|
|
1710
1718
|
napcat.on("ws.close", () => {
|
|
1711
1719
|
logger.error("连接已关闭,请确保 NapCat 实例正常运行及 token 配置正确");
|
|
1720
|
+
process.exit(1);
|
|
1712
1721
|
});
|
|
1713
1722
|
napcat.on("napcat.connected", async ({ user_id, nickname, app_name, app_version }) => {
|
|
1714
|
-
logger.info(`已连接到 NapCat 实例: ${colors$1.green(`${app_name}-v${app_version}
|
|
1723
|
+
logger.info(`已连接到 NapCat 实例: ${colors$1.green(`${app_name}-v${app_version} ${nickname}(${user_id})`)}`);
|
|
1724
|
+
process.title = `mioki v${version} ${app_name}-v${app_version}-${user_id}`;
|
|
1715
1725
|
let lastNoticeTime = 0;
|
|
1716
1726
|
process.on("uncaughtException", async (err) => {
|
|
1717
1727
|
const msg = stringifyError(err);
|
|
@@ -1775,7 +1785,7 @@ async function start(options = {}) {
|
|
|
1775
1785
|
const sortedGroups = Array.from(pluginGroups.entries()).toSorted(([a], [b]) => a - b);
|
|
1776
1786
|
const failedEnablePlugins = [];
|
|
1777
1787
|
try {
|
|
1778
|
-
napcat.logger.info(
|
|
1788
|
+
napcat.logger.info(`>>> 加载 mioki 内置插件: ${BUILTIN_PLUGINS.map((p) => colors$1.cyan(p.name)).join(", ")}`);
|
|
1779
1789
|
await Promise.all(BUILTIN_PLUGINS.map((p) => enablePlugin(napcat, p, "builtin")));
|
|
1780
1790
|
for (const [_, plugins$1] of sortedGroups) await Promise.all(plugins$1.map(async (p) => {
|
|
1781
1791
|
try {
|