node-karin 0.12.2-5.pr.206.96ca85e → 0.12.2-5.pr.206.c0154fc
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/lib/index.d.ts +8 -154
- package/lib/index.js +12 -12
- package/package.json +1 -1
package/lib/index.d.ts
CHANGED
|
@@ -178,12 +178,14 @@ interface DirectContact extends BaseContact {
|
|
|
178
178
|
scene: 'direct';
|
|
179
179
|
/** 频道ID 虚拟ID 用于请求Api使用 */
|
|
180
180
|
peer: string;
|
|
181
|
-
/** 频道名称 */
|
|
182
|
-
name: string;
|
|
183
181
|
/** 子频道ID 虚拟ID */
|
|
184
182
|
subPeer: string;
|
|
183
|
+
/** 频道名称 */
|
|
184
|
+
name: string;
|
|
185
185
|
/** 子频道名称 */
|
|
186
186
|
subName?: string;
|
|
187
|
+
/** 来源频道ID */
|
|
188
|
+
srcGuildId: string;
|
|
187
189
|
}
|
|
188
190
|
/**
|
|
189
191
|
* 频道来源信息类型
|
|
@@ -3538,8 +3540,6 @@ type DirectMessageOptions = Omit<MessageOptions, 'subEvent' | 'contact' | 'sende
|
|
|
3538
3540
|
contact: Contact<'direct'>;
|
|
3539
3541
|
/** 频道私信发送者信息 */
|
|
3540
3542
|
sender: Sender<'direct'>;
|
|
3541
|
-
/** 来源频道ID */
|
|
3542
|
-
srcGuildId: string;
|
|
3543
3543
|
};
|
|
3544
3544
|
/** 创建群临时会话消息事件所需参数类型 */
|
|
3545
3545
|
type GroupTempMessageOptions = Omit<MessageOptions, 'subEvent' | 'contact' | 'sender'> & {
|
|
@@ -7372,7 +7372,7 @@ interface Renders {
|
|
|
7372
7372
|
* @param multiPageOrId - 多页截图参数
|
|
7373
7373
|
* @param id - 页面id
|
|
7374
7374
|
*/
|
|
7375
|
-
declare const render
|
|
7375
|
+
declare const render: <T extends Options>(options: string | T, multiPageOrId?: string | number | boolean | T, id?: string) => Promise<RenderResult<T>>;
|
|
7376
7376
|
|
|
7377
7377
|
/**
|
|
7378
7378
|
* 命令选项
|
|
@@ -7511,11 +7511,12 @@ declare const fnc_accept: typeof accept;
|
|
|
7511
7511
|
declare const fnc_command: typeof command;
|
|
7512
7512
|
declare const fnc_ctx: typeof ctx;
|
|
7513
7513
|
declare const fnc_handler: typeof handler;
|
|
7514
|
+
declare const fnc_render: typeof render;
|
|
7514
7515
|
declare const fnc_sendAdmin: typeof sendAdmin;
|
|
7515
7516
|
declare const fnc_sendMaster: typeof sendMaster;
|
|
7516
7517
|
declare const fnc_task: typeof task;
|
|
7517
7518
|
declare namespace fnc {
|
|
7518
|
-
export { type fnc_AcceptOptions as AcceptOptions, type fnc_ButtonOptions as ButtonOptions, type fnc_CommandOptions as CommandOptions, type fnc_CommandType as CommandType, type fnc_HandlerOptions as HandlerOptions, type Options$1 as Options, type fnc_Renders as Renders, type fnc_StrCommandOptions as StrCommandOptions, type fnc_TaskOptions as TaskOptions, fnc_accept as accept, button$1 as button, fnc_command as command, fnc_ctx as ctx, fnc_handler as handler,
|
|
7519
|
+
export { type fnc_AcceptOptions as AcceptOptions, type fnc_ButtonOptions as ButtonOptions, type fnc_CommandOptions as CommandOptions, type fnc_CommandType as CommandType, type fnc_HandlerOptions as HandlerOptions, type Options$1 as Options, type fnc_Renders as Renders, type fnc_StrCommandOptions as StrCommandOptions, type fnc_TaskOptions as TaskOptions, fnc_accept as accept, button$1 as button, fnc_command as command, fnc_ctx as ctx, fnc_handler as handler, fnc_render as render, fnc_sendAdmin as sendAdmin, fnc_sendMaster as sendMaster, fnc_task as task };
|
|
7519
7520
|
}
|
|
7520
7521
|
|
|
7521
7522
|
declare const karin: {
|
|
@@ -9466,151 +9467,4 @@ declare const createGroupInviteRequest: (options: GroupInviteRequestOptions) =>
|
|
|
9466
9467
|
*/
|
|
9467
9468
|
declare const createPrivateApplyRequest: (options: PrivateApplyRequestOptions) => PrivateApplyRequest;
|
|
9468
9469
|
|
|
9469
|
-
|
|
9470
|
-
* 控制台交互适配器
|
|
9471
|
-
* @class AdapterConsole
|
|
9472
|
-
*/
|
|
9473
|
-
declare class AdapterConsole extends AdapterBase implements AdapterType {
|
|
9474
|
-
constructor();
|
|
9475
|
-
get selfId(): string;
|
|
9476
|
-
createEvent(data: Buffer): void;
|
|
9477
|
-
sendMsg(contact: Contact, elements: Array<Elements>, retryCount?: number): Promise<SendMsgResults>;
|
|
9478
|
-
getUrl(data: string | Buffer, ext: string): Promise<string>;
|
|
9479
|
-
}
|
|
9480
|
-
declare const adapter: AdapterConsole;
|
|
9481
|
-
|
|
9482
|
-
/** 渲染函数类型 */
|
|
9483
|
-
type Render = <T extends Options>(options: T) => Promise<RenderResult<T>>;
|
|
9484
|
-
/**
|
|
9485
|
-
* @description 注册渲染器
|
|
9486
|
-
* @param id 渲染器ID
|
|
9487
|
-
* @param render 渲染函数
|
|
9488
|
-
* @returns 渲染器索引
|
|
9489
|
-
*/
|
|
9490
|
-
declare const registerRender: (id: string, render: Render) => number;
|
|
9491
|
-
/**
|
|
9492
|
-
* @description 卸载渲染器
|
|
9493
|
-
* @param index 渲染器索引
|
|
9494
|
-
* @returns 是否卸载成功
|
|
9495
|
-
*/
|
|
9496
|
-
declare const unregisterRender: (index: number) => boolean;
|
|
9497
|
-
/**
|
|
9498
|
-
* @description 返回渲染器实例 未键入随机
|
|
9499
|
-
* @param id 渲染器ID
|
|
9500
|
-
* @returns 渲染器实例
|
|
9501
|
-
*/
|
|
9502
|
-
declare const getRender: (id?: string | number) => {
|
|
9503
|
-
/** 渲染器索引 唯一标识符 */
|
|
9504
|
-
index: number;
|
|
9505
|
-
/** 渲染器ID */
|
|
9506
|
-
id: string;
|
|
9507
|
-
/** 渲染函数 */
|
|
9508
|
-
render: Render;
|
|
9509
|
-
};
|
|
9510
|
-
/**
|
|
9511
|
-
* @description 调用标准渲染器
|
|
9512
|
-
* @param options 渲染器参数
|
|
9513
|
-
* @param id 指定渲染器ID
|
|
9514
|
-
*/
|
|
9515
|
-
declare const callRender: <T extends Options>(options: T, id?: string) => Promise<RenderResult<T & {
|
|
9516
|
-
encoding: string;
|
|
9517
|
-
}>>;
|
|
9518
|
-
/**
|
|
9519
|
-
* @description 获取全部渲染器数量
|
|
9520
|
-
* @returns 渲染器数量
|
|
9521
|
-
*/
|
|
9522
|
-
declare const getRenderCount: () => number;
|
|
9523
|
-
/**
|
|
9524
|
-
* @description 获取全部渲染器列表
|
|
9525
|
-
* @returns 渲染器列表
|
|
9526
|
-
*/
|
|
9527
|
-
declare const getRenderList: () => {
|
|
9528
|
-
/** 渲染器索引 唯一标识符 */
|
|
9529
|
-
index: number;
|
|
9530
|
-
/** 渲染器ID */
|
|
9531
|
-
id: string;
|
|
9532
|
-
/** 渲染函数 */
|
|
9533
|
-
render: Render;
|
|
9534
|
-
}[];
|
|
9535
|
-
/**
|
|
9536
|
-
* @description 快速渲染
|
|
9537
|
-
* @param data html路径、http地址
|
|
9538
|
-
* @returns 返回图片base64或数组
|
|
9539
|
-
*/
|
|
9540
|
-
declare const renderHtml: (data: string) => Promise<string>;
|
|
9541
|
-
/**
|
|
9542
|
-
* @description 快速分片渲染
|
|
9543
|
-
* @param file html路径、http地址
|
|
9544
|
-
* @param multiPage 分片高度 未传递为自动计算
|
|
9545
|
-
*/
|
|
9546
|
-
declare const renderMultiHtml: (file: string, multiPage?: number | boolean) => Promise<string[]>;
|
|
9547
|
-
declare class RenderCache {
|
|
9548
|
-
/**
|
|
9549
|
-
* 注册渲染器
|
|
9550
|
-
* @param data 渲染器数据
|
|
9551
|
-
* @param data.id 渲染器ID
|
|
9552
|
-
* @param data.type 渲染器类型
|
|
9553
|
-
* @param ata.render 渲染器标准方法
|
|
9554
|
-
* @returns 渲染器索引
|
|
9555
|
-
*/
|
|
9556
|
-
app(data: {
|
|
9557
|
-
id: string;
|
|
9558
|
-
type?: 'image' | string;
|
|
9559
|
-
render: Render;
|
|
9560
|
-
}): number;
|
|
9561
|
-
/**
|
|
9562
|
-
* 卸载渲染器
|
|
9563
|
-
* @param index 渲染器索引
|
|
9564
|
-
* @returns 是否卸载成功
|
|
9565
|
-
*/
|
|
9566
|
-
unapp(index: number): boolean;
|
|
9567
|
-
/**
|
|
9568
|
-
* 返回渲染器实例 未键入id返回第一个
|
|
9569
|
-
* @param id 渲染器ID
|
|
9570
|
-
* @returns 渲染器实例
|
|
9571
|
-
*/
|
|
9572
|
-
App(id?: string): {
|
|
9573
|
-
/** 渲染器索引 唯一标识符 */
|
|
9574
|
-
index: number;
|
|
9575
|
-
/** 渲染器ID */
|
|
9576
|
-
id: string;
|
|
9577
|
-
/** 渲染函数 */
|
|
9578
|
-
render: Render;
|
|
9579
|
-
};
|
|
9580
|
-
/**
|
|
9581
|
-
* 调用标准渲染器
|
|
9582
|
-
*/
|
|
9583
|
-
render<T extends Options>(options: T, id?: string): Promise<RenderResult<T>>;
|
|
9584
|
-
/**
|
|
9585
|
-
* 快速渲染
|
|
9586
|
-
* @param data html路径、http地址
|
|
9587
|
-
* @returns 返回图片base64或数组
|
|
9588
|
-
*/
|
|
9589
|
-
renderHtml(data: string): Promise<string>;
|
|
9590
|
-
/**
|
|
9591
|
-
* 快速分片渲染
|
|
9592
|
-
* @param data html路径、http地址
|
|
9593
|
-
* @param multiPage 分片高度 自动计算传true
|
|
9594
|
-
*/
|
|
9595
|
-
renderMultiHtml(data: string, multiPage?: number | boolean): Promise<string[]>;
|
|
9596
|
-
}
|
|
9597
|
-
/**
|
|
9598
|
-
* 渲染器管理器
|
|
9599
|
-
*/
|
|
9600
|
-
declare const render: RenderCache;
|
|
9601
|
-
/**
|
|
9602
|
-
* @description 即将废弃,请使用 `render`
|
|
9603
|
-
*/
|
|
9604
|
-
declare const Renderer: RenderCache;
|
|
9605
|
-
|
|
9606
|
-
/**
|
|
9607
|
-
* @description 处理模板
|
|
9608
|
-
* @param options 截图参数
|
|
9609
|
-
*/
|
|
9610
|
-
declare const renderTpl: (options: Omit<Options, "name"> & {
|
|
9611
|
-
name?: string;
|
|
9612
|
-
}) => Omit<Options, "name"> & {
|
|
9613
|
-
name?: string;
|
|
9614
|
-
};
|
|
9615
|
-
|
|
9616
|
-
export { type Accept, type AccountInfo, type Adapter, AdapterBase, type AdapterCommunication, AdapterConsole, type AdapterInfo, AdapterOneBot, type AdapterOptions, type AdapterPlatform, type AdapterProtocol, type AdapterStandard, type AdapterType, type AllPluginMethods, type AnonymousSegment, type Apps, type AtElement, type AtSegment, type BaseContact, type BaseEventOptions, type BaseEventType, type BasketballElement, Bot, type BoundingBox, type BubbleFaceElement, type Button, type ButtonElement, type Cache, type CacheEntry, type CmdFnc, type Command, type CommandClass, type Config, type ConfigMap, type Contact, type ContactElement, type ContactSegment, type Count, type CreateGroupFolderResponse, type CustomMusicElement, type CustomMusicSegment, type CustomNodeElement, type CustomNodeSegments, type DiceElement, type DiceSegment, type DirectContact, type DirectMessageOptions, type DirectNodeElement, type DirectNodeSegment, type DirectSender, type DownloadFileOptions, type DownloadFileResponse, type ElementTypes, type Elements, type Event, type EventParent, type EventToSubEvent, type ExecOptions, type ExecReturn, type ExecType, type FaceElement, type FaceSegment, type FileCache, type FileSegment, type FileToUrlHandler, type FileToUrlResult, type ForwardOptions, type ForwardSegment, type FriendContact, type FriendDecreaseOptions, type FriendDirect, type FriendIncreaseOptions, type FriendMessageOptions, type FriendNoticeEventMap, type FriendRequestEventMap, type FriendSender, type GetAtAllCountResponse, type GetBot, type GetGroupFileListResponse, type GetGroupFileSystemInfoResponse, type GetGroupHighlightsResponse, type GetGroupInfo, type GetGroupMemberInfo, type GetGroupMuteListResponse, type GetMsg, type GetPluginReturn, type GetPluginType, type GiftElement, type GoToOptions, type GroupAdminChangedOptions, type GroupApplyRequestOptions, type GroupCardChangedOptions, type GroupContact, type GroupFileUploadedOptions, type GroupGuild, type GroupHlightsChangedOptions, type GroupHonorChangedOptions, type GroupInfo, type GroupInviteRequestOptions, type GroupLuckKingOptions, type GroupMemberBanOptions, type GroupMemberDecreaseOptions, type GroupMemberIncreaseOptions, type GroupMemberInfo, type GroupMemberUniqueTitleChangedOptions, type GroupMessageOptions, type GroupMessageReactionOptions, type GroupNoticeEventMap, type GroupPokeOptions, type GroupRecallOptions, type GroupRequestEventMap, type GroupSender, type GroupSignInOptions, type GroupTempContact, type GroupTempMessageOptions, type GroupTempSender, type GroupWholeBanOptions, type GuildContact, type GuildMessageOptions, type GuildSender, type Handler, type HandlerType, type HonorInfoList, type ImageElement, type ImageSegment, type JsonElement, type JsonSegment, type KarinButton, type KeyboardElement, type LocationElement, type LocationSegment, type Log, type Logger, type LoggerExpand, type LoggerLevel, type LoggerOptions, type LongMsgElement, type MarkdownElement, type MarkdownTplElement, type MarketFaceElement, type Message$2 as Message, type MessageEventMap, type MessageEventSub, type MessageOptions, type MessageResponse, type MetaEventBase, type MusicElement, type MusicPlatform, type MusicSegment, type NodeElement, type Notice, type NoticeAndRequest, type NoticeBase$1 as NoticeBase, type NoticeEventMap, type NoticeEventSub, type NoticeOptions, type OB11AllEvent, OB11ApiAction, type OB11ApiParams, type OB11ApiRequest, OB11Event, type OB11EventBase, type OB11FriendSender, type OB11GroupMessage, type OB11GroupSender, type OB11GroupTempMessage, type OB11Message, OB11MessageSubType, OB11MessageType, type OB11Meta, type OB11NodeSegment, type OB11Notice, OB11NoticeType, type OB11PrivateMessage, type OB11Request, OB11RequestType, type OB11Segment, type OB11SegmentBase, type OB11SegmentType, OB11Sex, type OB11serInfo, type OneBot11FriendAdd, type OneBot11FriendRecall, type OneBot11FriendRequest, type OneBot11GroupAdmin, type OneBot11GroupBan, type OneBot11GroupCard, type OneBot11GroupDecrease, type OneBot11GroupEssence, type OneBot11GroupIncrease, type OneBot11GroupMessageReaction, type OneBot11GroupMessageReactionLagrange, type OneBot11GroupRecall, type OneBot11GroupRequest, type OneBot11GroupUpload, type OneBot11Heartbeat, type OneBot11Honor, type OneBot11Lifecycle, type OneBot11LuckyKing, type OneBot11Poke, type Options, type OriginalFileCache, type PM2, type Package, type Parser, type PasmsgElement, type Permission, type PkgData, type PkgInfo, Plugin, type PluginFile, type PluginFncTypes, type PluginOptions, type PluginRule, type Point, type PokeSegment, type PrivateApplyRequestOptions, type PrivateFileUploadedOptions, type PrivatePokeOptions, type PrivateRecallOptions, type PuppeteerLifeCycleEvent, type QQBotButton, type QQButtonTextType, type QQGroupFileInfo, type QQGroupFolderInfo, type QQGroupHonorInfo, type RawElement, type ReadyMusicElement, type ReceiveLikeOptions, type RecordElement, type RecordSegment, type Redis, type Render, type RenderResult, Renderer, type Reply, type ReplyElement, type ReplySegment, type Request, type RequestBase$1 as RequestBase, type RequestEventMap, type RequestEventSub, type RequestOptions, type RequireFunction, type RequireFunctionSync, type RequireOptions, type Role, type RpsElement, type RpsSegment, type Scene, type ScreenshotClip, type ScreenshotOptions, type Segment, type SendElement, type SendForwardMessageResponse, type SendMessage, type SendMsgResults, type Sender, type SenderBase, type SenderGroup, type Server, type Sex, type ShakeSegment, type ShareElement, type ShareSegment, type SrcReply, type Task, type TextElement, type TextSegment, type UnregisterBot, type UserInfo, type VideoElement, type VideoSegment, type WaitForOptions, Watch, Watcher, type WeatherElement, type XmlElement, type XmlSegment, type YamlComment, YamlEditor, type YamlValue, absPath, adapter, app, applyComments, base64, buffer, buttonHandle, callRender, changelog, checkGitPluginUpdate, checkPkgUpdate, clearRequire, clearRequireFile, comment, index$1 as common, index as config, copyConfig, copyConfigSync, copyFiles, copyFilesSync, createDirectMessage, createFriendDecreaseNotice, createFriendIncreaseNotice, createFriendMessage, createGroupAdminChangedNotice, createGroupApplyRequest, createGroupCardChangedNotice, createGroupFileUploadedNotice, createGroupHlightsChangedNotice, createGroupHonorChangedNotice, createGroupInviteRequest, createGroupLuckKingNotice, createGroupMemberAddNotice, createGroupMemberBanNotice, createGroupMemberDelNotice, createGroupMemberTitleUpdatedNotice, createGroupMessage, createGroupMessageReactionNotice, createGroupPokeNotice, createGroupRecallNotice, createGroupSignInNotice, createGroupTempMessage, createGroupWholeBanNotice, createGuildMessage, createLogger, createPluginDir, createPrivateApplyRequest, createPrivateFileUploadedNotice, createPrivatePokeNotice, createPrivateRecallNotice, createRawMessage, createReceiveLikeNotice, karin as default, downFile, errorToString, exec, existToMkdir, existToMkdirSync, exists, existsSync, ffmpeg, ffplay, ffprobe, fs as file, fileToUrl, fileToUrlHandlerKey, filesByExt, formatTime$1 as formatTime, index$3 as fs, getAllBot, getAllBotID, getAllBotList, getBot, getBotCount, getCommit, getFiles, getHash, getPid, getPkgVersion, getPluginInfo, getRelPath, getRemotePkgVersion, getRender, getRenderCount, getRenderList, getRequestIp, getTime, handler$1 as handler, importModule, isClass, isDir, isDirSync, isDocker, isFile, isFileSync, isIPv4Loop, isIPv6Loop, isLinux, isLocalRequest, isLoopback, isMac, isPlugin, isRoot, isStatic, isSubPath, isWin, json$1 as json, karin, karinToQQBot, key, level, listen, lock, lockMethod, lockProp, log, logger, logs, makeForward, makeMessage, type messageType, mkdir, mkdirSync, parseChangelog, pkgRoot, qqbotToKarin, range, read, readFile, readJson, readJsonSync, redis$1 as redis, registerBot, registerRender, render, renderHtml, renderMultiHtml, renderTpl, requireFile, requireFileSync, restart, restartDirect, rmSync, save, type screenshot, segment, sendMsg, sep, server, splitPath, stream, stringifyError, index$2 as system, unregisterBot, unregisterRender, updateAllGitPlugin, updateAllPkg, updateGitPlugin, updatePkg, uptime$1 as uptime, urlToPath, watch, watchAndMerge, write, writeJson, writeJsonSync, wss, yaml };
|
|
9470
|
+
export { type Accept, type AccountInfo, type Adapter, type AdapterCommunication, type AdapterInfo, AdapterOneBot, type AdapterOptions, type AdapterPlatform, type AdapterProtocol, type AdapterStandard, type AdapterType, type AllPluginMethods, type AnonymousSegment, type Apps, type AtElement, type AtSegment, type BaseContact, type BaseEventOptions, type BaseEventType, type BasketballElement, Bot, type BubbleFaceElement, type Button, type ButtonElement, type Cache, type CacheEntry, type CmdFnc, type Command, type CommandClass, type Config, type ConfigMap, type Contact, type ContactElement, type ContactSegment, type Count, type CreateGroupFolderResponse, type CustomMusicElement, type CustomMusicSegment, type CustomNodeElement, type CustomNodeSegments, type DiceElement, type DiceSegment, type DirectContact, type DirectMessageOptions, type DirectNodeElement, type DirectNodeSegment, type DirectSender, type DownloadFileOptions, type DownloadFileResponse, type ElementTypes, type Elements, type Event, type EventParent, type EventToSubEvent, type ExecOptions, type ExecReturn, type ExecType, type FaceElement, type FaceSegment, type FileCache, type FileSegment, type FileToUrlHandler, type FileToUrlResult, type ForwardOptions, type ForwardSegment, type FriendContact, type FriendDecreaseOptions, type FriendDirect, type FriendIncreaseOptions, type FriendMessageOptions, type FriendNoticeEventMap, type FriendRequestEventMap, type FriendSender, type GetAtAllCountResponse, type GetBot, type GetGroupFileListResponse, type GetGroupFileSystemInfoResponse, type GetGroupHighlightsResponse, type GetGroupInfo, type GetGroupMemberInfo, type GetGroupMuteListResponse, type GetMsg, type GetPluginReturn, type GetPluginType, type GiftElement, type GroupAdminChangedOptions, type GroupApplyRequestOptions, type GroupCardChangedOptions, type GroupContact, type GroupFileUploadedOptions, type GroupGuild, type GroupHlightsChangedOptions, type GroupHonorChangedOptions, type GroupInfo, type GroupInviteRequestOptions, type GroupLuckKingOptions, type GroupMemberBanOptions, type GroupMemberDecreaseOptions, type GroupMemberIncreaseOptions, type GroupMemberInfo, type GroupMemberUniqueTitleChangedOptions, type GroupMessageOptions, type GroupMessageReactionOptions, type GroupNoticeEventMap, type GroupPokeOptions, type GroupRecallOptions, type GroupRequestEventMap, type GroupSender, type GroupSignInOptions, type GroupTempContact, type GroupTempMessageOptions, type GroupTempSender, type GroupWholeBanOptions, type GuildContact, type GuildMessageOptions, type GuildSender, type Handler, type HandlerType, type HonorInfoList, type ImageElement, type ImageSegment, type JsonElement, type JsonSegment, type KarinButton, type KeyboardElement, type LocationElement, type LocationSegment, type Log, type Logger, type LoggerExpand, type LoggerLevel, type LoggerOptions, type LongMsgElement, type MarkdownElement, type MarkdownTplElement, type MarketFaceElement, type Message$2 as Message, type MessageEventMap, type MessageEventSub, type MessageOptions, type MessageResponse, type MetaEventBase, type MusicElement, type MusicPlatform, type MusicSegment, type NodeElement, type Notice, type NoticeAndRequest, type NoticeBase$1 as NoticeBase, type NoticeEventMap, type NoticeEventSub, type NoticeOptions, type OB11AllEvent, OB11ApiAction, type OB11ApiParams, type OB11ApiRequest, OB11Event, type OB11EventBase, type OB11FriendSender, type OB11GroupMessage, type OB11GroupSender, type OB11GroupTempMessage, type OB11Message, OB11MessageSubType, OB11MessageType, type OB11Meta, type OB11NodeSegment, type OB11Notice, OB11NoticeType, type OB11PrivateMessage, type OB11Request, OB11RequestType, type OB11Segment, type OB11SegmentBase, type OB11SegmentType, OB11Sex, type OB11serInfo, type OneBot11FriendAdd, type OneBot11FriendRecall, type OneBot11FriendRequest, type OneBot11GroupAdmin, type OneBot11GroupBan, type OneBot11GroupCard, type OneBot11GroupDecrease, type OneBot11GroupEssence, type OneBot11GroupIncrease, type OneBot11GroupMessageReaction, type OneBot11GroupMessageReactionLagrange, type OneBot11GroupRecall, type OneBot11GroupRequest, type OneBot11GroupUpload, type OneBot11Heartbeat, type OneBot11Honor, type OneBot11Lifecycle, type OneBot11LuckyKing, type OneBot11Poke, type OriginalFileCache, type PM2, type Package, type Parser, type PasmsgElement, type Permission, type PkgData, type PkgInfo, Plugin, type PluginFile, type PluginFncTypes, type PluginOptions, type PluginRule, type PokeSegment, type PrivateApplyRequestOptions, type PrivateFileUploadedOptions, type PrivatePokeOptions, type PrivateRecallOptions, type QQBotButton, type QQButtonTextType, type QQGroupFileInfo, type QQGroupFolderInfo, type QQGroupHonorInfo, type RawElement, type ReadyMusicElement, type ReceiveLikeOptions, type RecordElement, type RecordSegment, type Redis, type Reply, type ReplyElement, type ReplySegment, type Request, type RequestBase$1 as RequestBase, type RequestEventMap, type RequestEventSub, type RequestOptions, type RequireFunction, type RequireFunctionSync, type RequireOptions, type Role, type RpsElement, type RpsSegment, type Scene, type Segment, type SendElement, type SendForwardMessageResponse, type SendMessage, type SendMsgResults, type Sender, type SenderBase, type SenderGroup, type Server, type Sex, type ShakeSegment, type ShareElement, type ShareSegment, type SrcReply, type Task, type TextElement, type TextSegment, type UnregisterBot, type UserInfo, type VideoElement, type VideoSegment, Watch, Watcher, type WeatherElement, type XmlElement, type XmlSegment, type YamlComment, YamlEditor, type YamlValue, absPath, app, applyComments, base64, buffer, buttonHandle, changelog, checkGitPluginUpdate, checkPkgUpdate, clearRequire, clearRequireFile, comment, index$1 as common, index as config, copyConfig, copyConfigSync, copyFiles, copyFilesSync, createDirectMessage, createFriendDecreaseNotice, createFriendIncreaseNotice, createFriendMessage, createGroupAdminChangedNotice, createGroupApplyRequest, createGroupCardChangedNotice, createGroupFileUploadedNotice, createGroupHlightsChangedNotice, createGroupHonorChangedNotice, createGroupInviteRequest, createGroupLuckKingNotice, createGroupMemberAddNotice, createGroupMemberBanNotice, createGroupMemberDelNotice, createGroupMemberTitleUpdatedNotice, createGroupMessage, createGroupMessageReactionNotice, createGroupPokeNotice, createGroupRecallNotice, createGroupSignInNotice, createGroupTempMessage, createGroupWholeBanNotice, createGuildMessage, createLogger, createPluginDir, createPrivateApplyRequest, createPrivateFileUploadedNotice, createPrivatePokeNotice, createPrivateRecallNotice, createRawMessage, createReceiveLikeNotice, karin as default, downFile, errorToString, exec, existToMkdir, existToMkdirSync, exists, existsSync, ffmpeg, ffplay, ffprobe, fs as file, fileToUrl, fileToUrlHandlerKey, filesByExt, formatTime$1 as formatTime, index$3 as fs, getAllBot, getAllBotID, getAllBotList, getBot, getBotCount, getCommit, getFiles, getHash, getPid, getPkgVersion, getPluginInfo, getRelPath, getRemotePkgVersion, getRequestIp, getTime, handler$1 as handler, importModule, isClass, isDir, isDirSync, isDocker, isFile, isFileSync, isIPv4Loop, isIPv6Loop, isLinux, isLocalRequest, isLoopback, isMac, isPlugin, isRoot, isStatic, isSubPath, isWin, json$1 as json, karin, karinToQQBot, key, level, listen, lock, lockMethod, lockProp, log, logger, logs, makeForward, makeMessage, type messageType, mkdir, mkdirSync, parseChangelog, pkgRoot, qqbotToKarin, range, read, readFile, readJson, readJsonSync, redis$1 as redis, registerBot, requireFile, requireFileSync, restart, restartDirect, rmSync, save, segment, sendMsg, sep, server, splitPath, stream, stringifyError, index$2 as system, unregisterBot, updateAllGitPlugin, updateAllPkg, updateGitPlugin, updatePkg, uptime$1 as uptime, urlToPath, watch, watchAndMerge, write, writeJson, writeJsonSync, wss, yaml };
|
package/lib/index.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import A,{existsSync}from'node:fs';import I from'path';import {fileURLToPath}from'url';import N from'node:path';import op,{promisify}from'node:util';import {pipeline,Readable}from'node:stream';import qo,{AxiosError}from'axios';import Rt from'lodash';import {fileURLToPath as fileURLToPath$1}from'node:url';import C,{isMap,isSeq,isPair}from'yaml';import {createRequire}from'module';import Cu from'chokidar';import {randomUUID}from'node:crypto';import {EventEmitter}from'events';import {exec}from'child_process';import Ar from'node:os';import {Level}from'level';import ae from'moment';import Kc from'node:events';import Wc from'os';import {createClient}from'redis';import ip from'node-schedule';import up from'express';import {createServer}from'node:http';import {lookup}from'dns/promises';import fu,{WebSocketServer}from'ws';import Ip from'art-template';import U from'chalk';import Ns from'log4js';var yu=Object.defineProperty;var Gt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var c=(t,e)=>()=>(t&&(e=t(t=0)),e);var R=(t,e)=>{for(var r in e)yu(t,r,{get:e[r],enumerable:true});};var Sn,or,Oo,Bn,ir,Rn=c(()=>{Sn=async t=>{try{return await A.promises.access(t,A.constants.F_OK),!0}catch{return false}},or=async t=>{try{return (await A.promises.stat(t)).isDirectory()}catch{return false}},Oo=async t=>{try{return (await A.promises.stat(t)).isFile()}catch{return false}},Bn=async t=>{try{return await A.promises.mkdir(t,{recursive:!0}),!0}catch{return false}},ir=async t=>{try{return await Sn(t)||await Bn(t),!0}catch{return false}};});var Po,To,So,$t,ze,Bo,It=c(()=>{Po=t=>A.existsSync(t),To=t=>{try{return A.statSync(t).isDirectory()}catch{return false}},So=t=>{try{return A.statSync(t).isFile()}catch{return false}},$t=t=>{try{return A.mkdirSync(t,{recursive:!0}),!0}catch{return false}},ze=t=>{try{return A.existsSync(t)||$t(t),!0}catch{return false}},Bo=A.rmSync;});var Ro,$e,Qe,Cn,Co,Ie,Xe,Fn,Ze,Fo,No,Nn,Dn,At,Ae,L=c(()=>{Ro=fileURLToPath(import.meta.url),$e=Object.freeze(I.join(Ro,"../..").replace(/\\/g,"/")),Qe=Object.freeze(I.join(process.cwd(),"plugins")),Object.freeze(Ro.includes("node_modules")),Cn=Object.freeze(I.join($e,"default","config")),Object.freeze(I.join($e,"default","view")),Co=Object.freeze(I.join($e,"default","comment")),Ie=Object.freeze(I.join(process.cwd(),"@karinjs")),Xe=Object.freeze(I.join(Ie,"config")),Fn=Object.freeze(I.join(Ie,"data")),Ze=Object.freeze(I.join(Ie,"temp")),Fo=Object.freeze(I.join(Fn,"db")),No=Object.freeze(I.join(Fo,"level")),Nn=Object.freeze(I.join(Fo,"redis-level")),Dn=Object.freeze(I.join(process.cwd(),"logs")),At=Object.freeze(I.join(Ze,"html")),Object.freeze(I.join(Xe,"pm2.yaml")),Ae=Object.freeze(I.join(Ze,"console"));});var $u,pe,ar,ur,cr,pr,jn,qn,Do,jo,et=c(()=>{L();$u=promisify(pipeline),pe=N.sep==="/"?/^file:\/\//:/^file:[/]{2,3}/,ar=async(t,e,r={})=>{try{await A.promises.mkdir(N.dirname(e),{recursive:!0});let n=await qo.get(t,{...r,responseType:"stream"});return await $u(n.data,A.createWriteStream(e)),!0}catch(n){return n instanceof AxiosError?logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n.stack}`):logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n}`),false}},ur=(t,e=true,r=false)=>(t=t.replace(/\\/g,"/"),t.startsWith("file://")&&(t=t.replace(pe,"")),t=N.normalize(t),e&&(t=N.resolve(t)),r&&(t="file://"+t),t.replace(/\\/g,"/")),cr=async(t,e)=>{if(Array.isArray(e)||(e=["config","data","resources"]),e.length===0)return;let r=N.join(Ie,t);A.existsSync(r)||await A.promises.mkdir(r,{recursive:true}),await Promise.all(e.map(n=>{let s=N.join(r,n);return A.existsSync(s)?Promise.resolve():A.promises.mkdir(s,{recursive:true})}));},pr=(t,e=[])=>{if(!A.existsSync(t))throw new Error(`\u8DEF\u5F84\u4E0D\u5B58\u5728: ${t}`);let r=A.readdirSync(t,{withFileTypes:true}).filter(n=>n.isFile()).map(n=>n.name);if(e.length){let n=e.map(s=>s.startsWith(".")?s:`.${s}`);r=r.filter(s=>{let o=N.extname(s);return o&&n.includes(o)});}return r},jn=(t,e,r)=>{t.forEach(n=>{let s=N.join(e,n),o=N.join(r,n);A.existsSync(o)||A.copyFileSync(s,o);});},qn=async(t,e,r)=>{await Promise.all(t.map(async n=>{let s=N.join(e,n),o=N.join(r,n);A.existsSync(o)||await A.promises.copyFile(s,o);}));},Do=(t,e,r=[],n=false)=>{try{let s=pr(t,r);return A.mkdirSync(e),A.mkdirSync(t),jn(s,t,e),!0}catch(s){if(n)throw s;return false}},jo=async(t,e,r=[],n=false)=>{try{let s=pr(t,r);return await Promise.all([A.promises.mkdir(e,{recursive:!0}),A.promises.mkdir(t,{recursive:!0})]),await qn(s,t,e),!0}catch(s){if(n)throw s;return false}};});var gr,tt,Oe,Ho,lr=c(()=>{et();gr=async(t,e={http:false})=>{if(typeof t!="string")return Buffer.isBuffer(t)?t.toString("base64"):t instanceof Uint8Array?Buffer.from(t).toString("base64"):t instanceof Readable?(await Oe(t)).toString("base64"):t;if(t.startsWith("base64://"))return t.replace("base64://","");if(t.startsWith("http")){if(e.http)return t;let n=await qo.get(t,{responseType:"stream"});return (await Oe(n.data)).toString("base64")}let r=t.replace(pe,"");return A.existsSync(r)?(await A.promises.readFile(r)).toString("base64"):Buffer.from(t,"base64").toString("base64")},tt=async(t,e)=>{if(typeof t!="string")return Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t):t instanceof Readable?await Oe(t):t;if(t.startsWith("base64://"))return Buffer.from(t.replace("base64://",""),"base64");if(t.startsWith("http")){if(e!=null&&e.http)return t;let n=await qo.get(t,{responseType:"arraybuffer"});return Buffer.from(n.data)}let r=t.replace(pe,"");return A.existsSync(r)?A.readFileSync(r):Buffer.from(t)},Oe=t=>new Promise((e,r)=>{let n=[];t.on("data",s=>n.push(s)),t.on("end",()=>e(Buffer.concat(n))),t.on("error",s=>r(s));}),Ho=async t=>{try{return await A.promises.readFile(t)}catch(e){return logger.error(e),null}};});var Pt,Tt,Ln,Hn,Ko,Kn=c(()=>{Pt=(t,e=false)=>{try{let r=A.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Tt=(t,e,r=false)=>{try{return A.writeFileSync(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Ln=async(t,e=false)=>{try{let r=await A.promises.readFile(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Hn=async(t,e,r=false)=>{try{return await A.promises.writeFile(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Ko={readSync:Pt,writeSync:Tt,read:Ln,write:Hn};});var rt,mr,fr,hr,yr,St=c(()=>{et();rt=(t,e,r="name")=>{if(!A.existsSync(t)||!A.statSync(t).isDirectory())return [];let n=A.readdirSync(t,{withFileTypes:true}),s=[];return Array.isArray(e)||(e=[e]),n.forEach(o=>{if(!o.isDirectory()&&e.includes(N.extname(o.name)))if(r==="name")s.push(o.name);else if(r==="rel"){let i=N.resolve(t,o.name);s.push(N.relative(process.cwd(),i));}else r==="abs"&&s.push(N.resolve(t,o.name));}),s},mr=t=>{let e=N.dirname(t).replace(pe,""),r=N.basename(t);return {dirname:e,basename:r}},fr=t=>t.replace(/\\+/g,"/").replace(/\.+\/+|\/+$/g,""),hr=t=>{let e=fileURLToPath$1(t),n=N.relative(N.dirname(e),process.cwd()).split(N.sep).length;return Rt.repeat("../",n)},yr=(t,e,r=true)=>{r&&(t=N.resolve(t),e=N.resolve(e));let n=N.relative(t,e);return n&&!n.startsWith("..")&&!N.isAbsolute(n)};});var l,V=c(()=>{l={index:{},accept:[],command:[],task:[],button:[],handler:{},missing:new Map,watcher:new Map,count:{accept:0,command:0,task:0,button:0,handler:{key:0,fnc:0}},static:[]};});var z,ge,Yo,K,j,Jo,Vo,Pu,Wo,Pe=c(()=>{z=new Map,ge=t=>{let e=N.resolve(t).replace(/\\/g,"/");return z.has(e)&&z.delete(e)},Yo=()=>z.clear(),K=async(t,e={})=>{let r=Date.now(),n=N.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=Jo(n,r,o,i);if(p!==false)return p;let g=await A.promises.readFile(n,s);return Vo(g,n,i,r,a,s,u)},j=(t,e={})=>{let r=Date.now(),n=N.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=Jo(n,r,o,i);if(p!==false)return p;let g=A.readFileSync(n,s);return Vo(g,n,i,r,a,s,u)},Jo=(t,e,r,n)=>{if(!r){let s=z.get(t);if(s){if(s.expiry===0||s.expiry>e)return n<=0||Pu(t,n),s.data;z.delete(t);}}return false},Vo=(t,e,r,n,s,o,i)=>{if(s>0&&Buffer.byteLength(t,o)>s)return Wo(e,t,i);let a=Wo(e,t,i),u=r===0?0:n+r*1e3;return z.set(e,{data:a,expiry:u}),a},Pu=async(t,e)=>{let r=z.get(t);r&&(r.expiry=Date.now()+e*1e3,z.set(t,r));},Wo=(t,e,r)=>r?r(e):t.endsWith(".json")?JSON.parse(e):t.endsWith(".yaml")||t.endsWith(".yml")?C.parse(e):e;setInterval(()=>{let t=Date.now();for(let[e,r]of z.entries())r.expiry!==0&&r.expiry<=t&&z.delete(e);},6e4);});var br,Bt,wr,Yn=c(()=>{V();Pe();br=(t,e)=>{let r;import.meta.url?r=createRequire(e||import.meta.url).resolve(t):(Gt.resolve(t),r=Gt.resolve(t));try{if(existsSync(N.join(r,"package.json")))return N.resolve(r);for(;;){if(r=N.dirname(r),existsSync(N.join(r,"package.json")))return N.resolve(r);if(r===N.dirname(r))throw new Error(`[common] \u672A\u627E\u5230\u5305${t}\u7684\u6839\u76EE\u5F55`)}}finally{delete Gt.cache[Gt.resolve(t)];}},Bt=t=>{let r=Object.values(l.index).find(s=>s.name===t);return r?Object.assign(r,{get pkg(){return r.pkgPath?j(r.pkgPath):null}}):null},wr=t=>!!Bt(t);});var Qo,Xo=c(()=>{V();St();Qo=t=>{try{for(let e of l.static)if(yr(e,t))return !0;return !1}catch(e){return logger.error("isStatic",e),false}};});var ne,st,xr,_r,Jn,Ct,Zo,Er=c(()=>{ne=class{filePath;doc;document;constructor(e){this.filePath=e;let r=C.parseDocument(A.existsSync(e)?A.readFileSync(e,"utf8"):e);this.doc=r,this.document=r;}get(e){try{return e?Rt.get(this.document.toJSON(),e):this.document.toJSON()}catch(r){return logger.error(`[YamlEditor] \u83B7\u53D6\u6570\u636E\u65F6\u51FA\u9519\uFF1A${r}`),null}}set(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.setIn(s,r),!0}catch(s){return logger.error(`[YamlEditor] \u8BBE\u7F6E\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}add(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.addIn(s,r),logger.debug(`[YamlEditor] \u5DF2\u5728 ${e} \u6DFB\u52A0\u65B0\u7684\u503C`),!0}catch(s){return logger.error(`[YamlEditor] \u6DFB\u52A0\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}del(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.deleteIn(n),!0}catch(n){return logger.error(`[YamlEditor] \u5220\u9664\u6570\u636E\u65F6\u51FA\u9519\uFF1A${n}`),false}}append(e,r,n=false,s=true){try{let o=typeof e=="string"?s?e.split("."):[e]:e,i=this.document.getIn(o);if(!i)i=new C.YAMLSeq,this.document.setIn(o,i);else if(i instanceof C.YAMLSeq)n?i.items.unshift(r):i.add(r);else return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;return logger.debug(`[YamlEditor] \u5DF2\u5411 ${e} \u6570\u7EC4${n?"\u5F00\u5934":"\u672B\u5C3E"}\u6DFB\u52A0\u65B0\u5143\u7D20\uFF1A${r}`),!0}catch(o){return logger.error(`[YamlEditor] \u5411\u6570\u7EC4\u6DFB\u52A0\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${o}`),false}}remove(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);if(!o)return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u5B58\u5728"),!1;if(!(o instanceof C.YAMLSeq))return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;let i=o.items.findIndex(a=>Rt.isEqual(a.toJSON(),r));return i<0?(logger.error("[YamlEditor] \u672A\u627E\u5230\u8981\u5220\u9664\u7684\u503C"),!1):(o.items.splice(i,1),logger.debug(`[YamlEditor] \u5DF2\u4ECE ${e} \u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF1A${r}`),!0)}catch(s){return logger.error(`[YamlEditor] \u4ECE\u6570\u7EC4\u5220\u9664\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${s}`),false}}has(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.hasIn(n)}catch(n){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5B58\u5728\u65F6\u51FA\u9519\uFF1A${n}`),false}}hasval(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);return o?o instanceof C.YAMLSeq?o.items.some(i=>Rt.isEqual(i.toJSON(),r)):o instanceof C.YAMLMap?Array.from(o.values()).some(i=>Rt.isEqual(i.toJSON(),r)):Rt.isEqual(o,r):!1}catch(s){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84 ${e} \u662F\u5426\u5305\u542B\u503C\u65F6\u51FA\u9519\uFF1A${s}`),false}}hasVal(e,r){return this.hasval(e,r)}pusharr(e){try{return this.document.contents instanceof C.YAMLSeq||(this.document.contents=new C.YAMLSeq,logger.debug("[YamlEditor] \u6839\u8282\u70B9\u5DF2\u8F6C\u6362\u4E3A\u6570\u7EC4")),this.document.contents.add(e),logger.debug("[YamlEditor] \u5DF2\u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}delarr(e){try{if(!(this.document.contents instanceof C.YAMLSeq))throw new Error("[YamlEditor] \u6839\u8282\u70B9\u4E0D\u662F\u6570\u7EC4");if(e<0||e>=this.document.contents.items.length)throw new Error("[YamlEditor] \u7D22\u5F15\u8D85\u51FA\u8303\u56F4");return this.document.contents.items.splice(e,1),logger.debug("[YamlEditor] \u5DF2\u6839\u636E\u7D22\u5F15\u4ECE\u6839\u8282\u70B9\u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF0C\u7D22\u5F15\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u6839\u636E\u7D22\u5F15\u5220\u9664\u6839\u8282\u70B9\u6570\u7EC4\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}getpair(e,r=true){if(!e)throw new Error("path is required");let n=typeof e=="string"?r?e.split("."):[e]:e,s=this.document.contents;return n.forEach(o=>{isMap(s)?s=s.items.find(i=>i.key.value===o):isSeq(s)?s=s.items.find(i=>i.value===o):isPair(s)&&(s=s.value.items.find(i=>i.key.value===o));}),s}comment(e,r,n=true,s=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let o=this.getpair(e,s);if(!o)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r=` ${r}`,n?o.key.commentBefore=r:o.key.comment=r;}uncomment(e,r="all",n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r==="all"?(delete s.key.comment,delete s.key.commentBefore):r==="before"?delete s.key.commentBefore:r==="after"&&delete s.key.comment;}hascomment(e,r,n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return r==="before"?!!s.key.commentBefore:r==="after"?!!s.key.comment:false}getcomment(e,r=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let n=this.getpair(e,r);if(!n)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return n.key.commentBefore||n.key.comment}save(){A.writeFileSync(this.filePath,this.document.toString()),logger.debug("[YamlEditor] \u6587\u4EF6\u5DF2\u4FDD\u5B58");}},st=t=>{let e=C.parse(A.readFileSync(t,"utf-8"));return st.save=r=>{try{return _r(t,e,typeof r=="string"?JSON.parse(r):r),!0}catch(n){return logger.error("[YamlEditor] \u4FDD\u5B58\u6587\u4EF6\u65F6\u51FA\u9519"),logger.error(n),false}},e},xr=(t,e)=>{try{return A.writeFileSync(t,C.stringify(e)),!0}catch{return false}},_r=(t,e,r)=>{if(!r){A.writeFileSync(t,C.stringify(e));return}let n=new ne(C.stringify(e)),s=typeof r=="string"?JSON.parse(A.readFileSync(r,"utf8")):r;Ct(n,s),A.writeFileSync(t,n.document.toString());},Jn=(t,e)=>{let r=new ne(t),n=typeof e=="string"?JSON.parse(A.readFileSync(e,"utf8")):e;Ct(r,n),r.save();},Ct=(t,e)=>{for(let r of Object.keys(e))try{let n=e[r],s=typeof n=="string"?n:n.comment,o=typeof n=="string"?!0:typeof n=="object"&&n.type==="top";t.comment(r,s,o);}catch(n){logger.error(`[YamlEditor] \u6DFB\u52A0\u6CE8\u91CA\u65F6\u51FA\u9519\uFF0C\u5DF2\u8DF3\u8FC7\uFF1A${n.stack||n.message||n}`);}},Zo=Object.assign(C,{read:st,save:_r,comment:Jn,applyComments:Ct});});var vr,Vn,ti,Ft,Nt,ri=c(()=>{Pe();vr=new Map,Vn=(t,e)=>{let r=vr.get(t);r&&(r.close(),vr.delete(t));let n=Cu.watch(t);return vr.set(t,n),n.on("change",async()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u53D8\u52A8] ${N.relative(process.cwd(),t).replace(/\\/g,"/")}`);let s=j(t);ge(t);let o=j(t);typeof e=="function"&&e(s,o);}),n.on("unlink",()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u5220\u9664] ${N.relative(process.cwd(),t).replace(/\\/g,"/")}`),ge(t);}),n.once("close",()=>{n.removeAllListeners(),vr.delete(t),ge(t);}),new Ft(t,n)},ti=(t,e,r)=>{let n=Vn(t,r);return new Nt(t,e,n.watcher)},Ft=class{watcher;file;constructor(e,r){this.watcher=r,this.file=e;}get value(){return j(this.file)}close(){return ge(this.file),this.watcher.close()}},Nt=class{watcher;dynamicFile;defaultCFile;constructor(e,r,n){this.watcher=n,this.dynamicFile=e,this.defaultCFile=r;}get value(){let e=j(this.dynamicFile),r=j(this.defaultCFile);return typeof r=="object"&&typeof e=="object"?{...r,...e}:Array.isArray(r)&&Array.isArray(e)?[...r,...e]:e}close(){return ge(this.defaultCFile),this.watcher.close()}};});var zn,Qn,Nu,Dt,jt,kr=c(()=>{zn=new Map,Qn=(t,e,r=`\u65B9\u6CD5 ${String(e)} \u5DF2\u88AB\u9501\u5B9A`)=>{if(typeof t[e]!="function")throw new Error(`\u5C5E\u6027 ${String(e)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`);let n=randomUUID();return zn.set(n,{key:String(e),fnc:t[e]}),Object.defineProperty(t,e,{enumerable:true,configurable:true,value:()=>{throw Error(r)}}),()=>Nu(t,n)},Nu=(t,e)=>{let r=zn.get(e);if(!r)return {status:false,msg:`\u672A\u627E\u5230\u88AB\u9501\u5B9A\u7684\u65B9\u6CD5 ${String(e)}`};let{key:n,fnc:s}=r;return typeof s!="function"?{status:false,msg:`\u5C5E\u6027 ${String(n)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`}:(Object.defineProperty(t,n,{enumerable:true,configurable:true,value:s.bind(t)}),zn.delete(e),{status:true,msg:`\u89E3\u9501\u65B9\u6CD5 ${String(n)} \u6210\u529F`})},Dt=(t,e)=>{let r=Object.getOwnPropertyDescriptor(t,e);if(r)Object.defineProperty(t,e,{enumerable:true,configurable:false,writable:false,value:r.value});else throw new Error(`Property ${String(e)} does not exist on the object`)},jt={prop:Dt,method:Qn};});var ni={};R(ni,{log:()=>Xn,logs:()=>Zn,parseChangelog:()=>qt,range:()=>es});var Xn,Zn,es,qt,Gr=c(()=>{Xn=(t,e)=>{let r=new RegExp(`## \\[${t}\\](.|\\n)*?(?=## \\[|$)`,"g"),n=e.match(r);return n?n[0]:null},Zn=(t,e,r=1,n=false)=>{if(typeof r!="number")throw new TypeError("\u63D0\u53D6\u957F\u5EA6\u5FC5\u987B\u4E3A\u6570\u5B57");let s=qt(e),o=Object.keys(s),i=o.indexOf(t),a=n?i-r:i,u=n?i:i+r;return o.slice(a,u).map(g=>s[g]?s[g]:"").join("")},es=(t,e,r)=>{let n=qt(t),s=Object.keys(n),o=s.indexOf(e),i=s.indexOf(r);return o>i?s.slice(i,o).map(p=>n[p]?n[p]:"").join(""):s.slice(o,i).map(u=>n[u]?n[u]:"").join("")},qt=t=>{let e=/## \[(.*?)\]([\s\S]*?)(?=## \[|$)/g,r={};for(let n of t.matchAll(e)){let s=n[1],o=n[0];r[s]=o;}return r};});var Mr={};R(Mr,{EVENT_COUNT:()=>Du,RECV_MSG:()=>ts,SEND_MSG:()=>rs});var ts,rs,Du,$r=c(()=>{ts="karin:count:recv",rs="karin:count:send",Du="karin:count:fnc";});var O={};R(O,{Watch:()=>Ft,Watcher:()=>Nt,YamlEditor:()=>ne,absPath:()=>ur,applyComments:()=>Ct,base64:()=>gr,buffer:()=>tt,clearRequire:()=>Yo,clearRequireFile:()=>ge,comment:()=>Jn,copyConfig:()=>jo,copyConfigSync:()=>Do,copyFiles:()=>qn,copyFilesSync:()=>jn,createPluginDir:()=>cr,downFile:()=>ar,existToMkdir:()=>ir,existToMkdirSync:()=>ze,exists:()=>Sn,existsSync:()=>Po,filesByExt:()=>rt,getFiles:()=>pr,getPluginInfo:()=>Bt,getRelPath:()=>fr,isDir:()=>or,isDirSync:()=>To,isFile:()=>Oo,isFileSync:()=>So,isPlugin:()=>wr,isStatic:()=>Qo,isSubPath:()=>yr,json:()=>Ko,key:()=>Mr,lock:()=>jt,lockMethod:()=>Qn,lockProp:()=>Dt,log:()=>Xn,logs:()=>Zn,mkdir:()=>Bn,mkdirSync:()=>$t,parseChangelog:()=>qt,pkgRoot:()=>br,range:()=>es,read:()=>st,readFile:()=>Ho,readJson:()=>Ln,readJsonSync:()=>Pt,requireFile:()=>K,requireFileSync:()=>j,rmSync:()=>Bo,save:()=>_r,sep:()=>pe,splitPath:()=>mr,stream:()=>Oe,urlToPath:()=>hr,watch:()=>Vn,watchAndMerge:()=>ti,write:()=>xr,writeJson:()=>Hn,writeJsonSync:()=>Tt,yaml:()=>Zo});var Ir=c(()=>{Rn();It();lr();et();Kn();St();Yn();Pe();Xo();Er();ri();kr();Gr();$r();});var si=c(()=>{Ir();});var oi,Te,ii,ai,ui,ot=c(()=>{oi=()=>process.platform==="win32",Te=()=>process.env.runtime==="tsx",ii=(t,e)=>{process.env[t]=e+"";},ai=t=>ii("karin_port",t),ui=t=>ii("karin_version",t);});var h,gi,se,ci,li,di,pi,mi,fi,hi=c(()=>{h={file:{},watcher:new Map,groupGuild:{},friendDirect:{},friendCfgDef:{cd:0,mode:0,alias:[],enable:[],disable:[],get key(){return "default"}},groupCfgDef:{cd:0,userCD:0,mode:0,alias:[],enable:[],disable:[],memberDisable:[],memberEnable:[],get key(){return "default"}}},gi=(t,e,r)=>{var s;let n;r?n=[`Bot:${r}:${t}:${e}`,`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:n=r?[`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:[t,"default"];for(let o of n)if((s=h==null?undefined:h.groupGuild)!=null&&s[o])return h.groupGuild[o].count++,{ok:true,config:h.groupGuild[o].config};return {ok:false,keys:n}},se=t=>{try{return t.map(e=>String(e))||[]}catch{return []}},ci=t=>(t.alias=se(t.alias),t.memberEnable=se(t.memberEnable),t.memberDisable=se(t.memberDisable),t),li=(t,e)=>{Object.defineProperty(t,"key",{get(){return e},enumerable:false,configurable:false});},di=(t,e)=>{var n;for(let s of t)if((n=h==null?undefined:h.groupGuild)!=null&&n[s]){if(!e[s])continue;let o=ci(e[s]);return li(o,s),h.groupGuild[s]={start:0,count:1,config:o},o}let r=ci(e.default||h.groupCfgDef);return h.groupGuild.default={start:0,count:1,config:r},r},pi=t=>(t.alias=se(t.alias),t),mi=(t,e)=>{let r;e?r=[`Bot:${e}:${t}`,`Bot:${e}`,t,"default"]:r=[t,"default"];for(let n of r)if(h.friendDirect[n])return h.friendDirect[n].count++,{ok:true,config:h.friendDirect[n].config};return {ok:false,keys:r}},fi=(t,e)=>{for(let n of t)if(h.friendDirect[n]){if(!e[n])continue;let s=pi(e[n]);return li(s,n),h.friendDirect[n]={start:0,count:1,config:s},s}let r=pi(e.default||h.friendCfgDef);return h.friendDirect.default={start:0,count:1,config:r},r};setInterval(()=>{for(let t in h.groupGuild)h.groupGuild[t].count-h.groupGuild[t].start<10?delete h.groupGuild[t]:h.groupGuild[t].start=h.groupGuild[t].count;for(let t in h.friendDirect)h.friendDirect[t].count-h.friendDirect[t].start<10?delete h.friendDirect[t]:h.friendDirect[t].start=h.friendDirect[t].count;},6e4);});var ns,m,Se=c(()=>{ns=class extends EventEmitter{on(e,r){return super.on(e,r)}once(e,r){return super.once(e,r)}off(e,r){return super.off(e,r)}emit(e,...r){return super.emit(e,...r)}listeners(e){return super.listeners(e)}removeAllListeners(e){return super.removeAllListeners(e),this}setMaxListeners(e){return super.setMaxListeners(e),this}getMaxListeners(){return super.getMaxListeners()}addListener(e,r){return super.addListener(e,r)}listenerCount(e){return super.listenerCount(e)}eventNames(){return super.eventNames()}rawListeners(e){return super.rawListeners(e)}prependListener(e,r){return super.prependListener(e,r)}prependOnceListener(e,r){return super.prependOnceListener(e,r)}removeListener(e,r){return super.removeListener(e,r)}},m=new ns;});var it,qu,Lu,Hu,Lt,ss=c(()=>{Se();it=new Map,qu=(t,e,r)=>{var s;let n=(s=/Cannot find package '(.+?)'/.exec(r))==null?undefined:s[1];if(n){let o=`${t}.${n}`;if(!it.has(o))return;it.set(o,{name:t,file:e,depend:n});}else logger.error(`\u8F7D\u5165\u63D2\u4EF6\u9519\u8BEF\uFF1A${logger.red(`${t}/${N.basename(e)}`)}`),m.emit("error",r);},Lu=(t,e,r)=>{logger.error(`[\u5B9A\u65F6\u4EFB\u52A1][${t}][${e}] \u6267\u884C\u9519\u8BEF`),m.emit("error",r);},Hu=()=>{try{if(!it.size)return;let t=[`
|
|
1
|
+
import A,{existsSync}from'node:fs';import I from'path';import {fileURLToPath}from'url';import N from'node:path';import op,{promisify}from'node:util';import {pipeline,Readable}from'node:stream';import jo,{AxiosError}from'axios';import Rt from'lodash';import {fileURLToPath as fileURLToPath$1}from'node:url';import C,{isMap,isSeq,isPair}from'yaml';import {createRequire}from'module';import Cu from'chokidar';import {randomUUID}from'node:crypto';import {EventEmitter}from'events';import {exec}from'child_process';import Ar from'node:os';import {Level}from'level';import ae from'moment';import Kc from'node:events';import Wc from'os';import {createClient}from'redis';import ip from'node-schedule';import up from'express';import {createServer}from'node:http';import {lookup}from'dns/promises';import fu,{WebSocketServer}from'ws';import Ip from'art-template';import U from'chalk';import Ns from'log4js';var yu=Object.defineProperty;var Gt=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var c=(t,e)=>()=>(t&&(e=t(t=0)),e);var R=(t,e)=>{for(var r in e)yu(t,r,{get:e[r],enumerable:true});};var Sn,or,Ao,Bn,ir,Rn=c(()=>{Sn=async t=>{try{return await A.promises.access(t,A.constants.F_OK),!0}catch{return false}},or=async t=>{try{return (await A.promises.stat(t)).isDirectory()}catch{return false}},Ao=async t=>{try{return (await A.promises.stat(t)).isFile()}catch{return false}},Bn=async t=>{try{return await A.promises.mkdir(t,{recursive:!0}),!0}catch{return false}},ir=async t=>{try{return await Sn(t)||await Bn(t),!0}catch{return false}};});var Oo,Po,To,$t,ze,So,It=c(()=>{Oo=t=>A.existsSync(t),Po=t=>{try{return A.statSync(t).isDirectory()}catch{return false}},To=t=>{try{return A.statSync(t).isFile()}catch{return false}},$t=t=>{try{return A.mkdirSync(t,{recursive:!0}),!0}catch{return false}},ze=t=>{try{return A.existsSync(t)||$t(t),!0}catch{return false}},So=A.rmSync;});var Bo,$e,Qe,Cn,Ro,Ie,Xe,Fn,Ze,Co,Fo,Nn,Dn,At,Ae,L=c(()=>{Bo=fileURLToPath(import.meta.url),$e=Object.freeze(I.join(Bo,"../..").replace(/\\/g,"/")),Qe=Object.freeze(I.join(process.cwd(),"plugins")),Object.freeze(Bo.includes("node_modules")),Cn=Object.freeze(I.join($e,"default","config")),Object.freeze(I.join($e,"default","view")),Ro=Object.freeze(I.join($e,"default","comment")),Ie=Object.freeze(I.join(process.cwd(),"@karinjs")),Xe=Object.freeze(I.join(Ie,"config")),Fn=Object.freeze(I.join(Ie,"data")),Ze=Object.freeze(I.join(Ie,"temp")),Co=Object.freeze(I.join(Fn,"db")),Fo=Object.freeze(I.join(Co,"level")),Nn=Object.freeze(I.join(Co,"redis-level")),Dn=Object.freeze(I.join(process.cwd(),"logs")),At=Object.freeze(I.join(Ze,"html")),Object.freeze(I.join(Xe,"pm2.yaml")),Ae=Object.freeze(I.join(Ze,"console"));});var $u,pe,ar,ur,cr,pr,jn,qn,No,Do,et=c(()=>{L();$u=promisify(pipeline),pe=N.sep==="/"?/^file:\/\//:/^file:[/]{2,3}/,ar=async(t,e,r={})=>{try{await A.promises.mkdir(N.dirname(e),{recursive:!0});let n=await jo.get(t,{...r,responseType:"stream"});return await $u(n.data,A.createWriteStream(e)),!0}catch(n){return n instanceof AxiosError?logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n.stack}`):logger.error(`\u4E0B\u8F7D\u6587\u4EF6\u9519\u8BEF\uFF1A${n}`),false}},ur=(t,e=true,r=false)=>(t=t.replace(/\\/g,"/"),t.startsWith("file://")&&(t=t.replace(pe,"")),t=N.normalize(t),e&&(t=N.resolve(t)),r&&(t="file://"+t),t.replace(/\\/g,"/")),cr=async(t,e)=>{if(Array.isArray(e)||(e=["config","data","resources"]),e.length===0)return;let r=N.join(Ie,t);A.existsSync(r)||await A.promises.mkdir(r,{recursive:true}),await Promise.all(e.map(n=>{let s=N.join(r,n);return A.existsSync(s)?Promise.resolve():A.promises.mkdir(s,{recursive:true})}));},pr=(t,e=[])=>{if(!A.existsSync(t))throw new Error(`\u8DEF\u5F84\u4E0D\u5B58\u5728: ${t}`);let r=A.readdirSync(t,{withFileTypes:true}).filter(n=>n.isFile()).map(n=>n.name);if(e.length){let n=e.map(s=>s.startsWith(".")?s:`.${s}`);r=r.filter(s=>{let o=N.extname(s);return o&&n.includes(o)});}return r},jn=(t,e,r)=>{t.forEach(n=>{let s=N.join(e,n),o=N.join(r,n);A.existsSync(o)||A.copyFileSync(s,o);});},qn=async(t,e,r)=>{await Promise.all(t.map(async n=>{let s=N.join(e,n),o=N.join(r,n);A.existsSync(o)||await A.promises.copyFile(s,o);}));},No=(t,e,r=[],n=false)=>{try{let s=pr(t,r);return A.mkdirSync(e),A.mkdirSync(t),jn(s,t,e),!0}catch(s){if(n)throw s;return false}},Do=async(t,e,r=[],n=false)=>{try{let s=pr(t,r);return await Promise.all([A.promises.mkdir(e,{recursive:!0}),A.promises.mkdir(t,{recursive:!0})]),await qn(s,t,e),!0}catch(s){if(n)throw s;return false}};});var gr,tt,Oe,Lo,lr=c(()=>{et();gr=async(t,e={http:false})=>{if(typeof t!="string")return Buffer.isBuffer(t)?t.toString("base64"):t instanceof Uint8Array?Buffer.from(t).toString("base64"):t instanceof Readable?(await Oe(t)).toString("base64"):t;if(t.startsWith("base64://"))return t.replace("base64://","");if(t.startsWith("http")){if(e.http)return t;let n=await jo.get(t,{responseType:"stream"});return (await Oe(n.data)).toString("base64")}let r=t.replace(pe,"");return A.existsSync(r)?(await A.promises.readFile(r)).toString("base64"):Buffer.from(t,"base64").toString("base64")},tt=async(t,e)=>{if(typeof t!="string")return Buffer.isBuffer(t)?t:t instanceof Uint8Array?Buffer.from(t):t instanceof Readable?await Oe(t):t;if(t.startsWith("base64://"))return Buffer.from(t.replace("base64://",""),"base64");if(t.startsWith("http")){if(e!=null&&e.http)return t;let n=await jo.get(t,{responseType:"arraybuffer"});return Buffer.from(n.data)}let r=t.replace(pe,"");return A.existsSync(r)?A.readFileSync(r):Buffer.from(t)},Oe=t=>new Promise((e,r)=>{let n=[];t.on("data",s=>n.push(s)),t.on("end",()=>e(Buffer.concat(n))),t.on("error",s=>r(s));}),Lo=async t=>{try{return await A.promises.readFile(t)}catch(e){return logger.error(e),null}};});var Pt,Tt,Ln,Hn,Ho,Kn=c(()=>{Pt=(t,e=false)=>{try{let r=A.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Tt=(t,e,r=false)=>{try{return A.writeFileSync(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Ln=async(t,e=false)=>{try{let r=await A.promises.readFile(t,"utf8");return JSON.parse(r)}catch(r){if(e)throw r;return null}},Hn=async(t,e,r=false)=>{try{return await A.promises.writeFile(t,JSON.stringify(e,null,2)),!0}catch(n){if(r)throw n;return false}},Ho={readSync:Pt,writeSync:Tt,read:Ln,write:Hn};});var rt,mr,fr,hr,yr,St=c(()=>{et();rt=(t,e,r="name")=>{if(!A.existsSync(t)||!A.statSync(t).isDirectory())return [];let n=A.readdirSync(t,{withFileTypes:true}),s=[];return Array.isArray(e)||(e=[e]),n.forEach(o=>{if(!o.isDirectory()&&e.includes(N.extname(o.name)))if(r==="name")s.push(o.name);else if(r==="rel"){let i=N.resolve(t,o.name);s.push(N.relative(process.cwd(),i));}else r==="abs"&&s.push(N.resolve(t,o.name));}),s},mr=t=>{let e=N.dirname(t).replace(pe,""),r=N.basename(t);return {dirname:e,basename:r}},fr=t=>t.replace(/\\+/g,"/").replace(/\.+\/+|\/+$/g,""),hr=t=>{let e=fileURLToPath$1(t),n=N.relative(N.dirname(e),process.cwd()).split(N.sep).length;return Rt.repeat("../",n)},yr=(t,e,r=true)=>{r&&(t=N.resolve(t),e=N.resolve(e));let n=N.relative(t,e);return n&&!n.startsWith("..")&&!N.isAbsolute(n)};});var l,V=c(()=>{l={index:{},accept:[],command:[],task:[],button:[],handler:{},missing:new Map,watcher:new Map,count:{accept:0,command:0,task:0,button:0,handler:{key:0,fnc:0}},static:[]};});var z,ge,Uo,K,j,Yo,Jo,Pu,Ko,Pe=c(()=>{z=new Map,ge=t=>{let e=N.resolve(t).replace(/\\/g,"/");return z.has(e)&&z.delete(e)},Uo=()=>z.clear(),K=async(t,e={})=>{let r=Date.now(),n=N.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=Yo(n,r,o,i);if(p!==false)return p;let g=await A.promises.readFile(n,s);return Jo(g,n,i,r,a,s,u)},j=(t,e={})=>{let r=Date.now(),n=N.resolve(t).replace(/\\/g,"/"),{encoding:s="utf-8",force:o=false,ex:i=300,size:a=0,parser:u}=e,p=Yo(n,r,o,i);if(p!==false)return p;let g=A.readFileSync(n,s);return Jo(g,n,i,r,a,s,u)},Yo=(t,e,r,n)=>{if(!r){let s=z.get(t);if(s){if(s.expiry===0||s.expiry>e)return n<=0||Pu(t,n),s.data;z.delete(t);}}return false},Jo=(t,e,r,n,s,o,i)=>{if(s>0&&Buffer.byteLength(t,o)>s)return Ko(e,t,i);let a=Ko(e,t,i),u=r===0?0:n+r*1e3;return z.set(e,{data:a,expiry:u}),a},Pu=async(t,e)=>{let r=z.get(t);r&&(r.expiry=Date.now()+e*1e3,z.set(t,r));},Ko=(t,e,r)=>r?r(e):t.endsWith(".json")?JSON.parse(e):t.endsWith(".yaml")||t.endsWith(".yml")?C.parse(e):e;setInterval(()=>{let t=Date.now();for(let[e,r]of z.entries())r.expiry!==0&&r.expiry<=t&&z.delete(e);},6e4);});var br,Bt,wr,Yn=c(()=>{V();Pe();br=(t,e)=>{let r;import.meta.url?r=createRequire(e||import.meta.url).resolve(t):(Gt.resolve(t),r=Gt.resolve(t));try{if(existsSync(N.join(r,"package.json")))return N.resolve(r);for(;;){if(r=N.dirname(r),existsSync(N.join(r,"package.json")))return N.resolve(r);if(r===N.dirname(r))throw new Error(`[common] \u672A\u627E\u5230\u5305${t}\u7684\u6839\u76EE\u5F55`)}}finally{delete Gt.cache[Gt.resolve(t)];}},Bt=t=>{let r=Object.values(l.index).find(s=>s.name===t);return r?Object.assign(r,{get pkg(){return r.pkgPath?j(r.pkgPath):null}}):null},wr=t=>!!Bt(t);});var zo,Qo=c(()=>{V();St();zo=t=>{try{for(let e of l.static)if(yr(e,t))return !0;return !1}catch(e){return logger.error("isStatic",e),false}};});var ne,st,xr,_r,Jn,Ct,Xo,Er=c(()=>{ne=class{filePath;doc;document;constructor(e){this.filePath=e;let r=C.parseDocument(A.existsSync(e)?A.readFileSync(e,"utf8"):e);this.doc=r,this.document=r;}get(e){try{return e?Rt.get(this.document.toJSON(),e):this.document.toJSON()}catch(r){return logger.error(`[YamlEditor] \u83B7\u53D6\u6570\u636E\u65F6\u51FA\u9519\uFF1A${r}`),null}}set(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.setIn(s,r),!0}catch(s){return logger.error(`[YamlEditor] \u8BBE\u7F6E\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}add(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e;return this.document.addIn(s,r),logger.debug(`[YamlEditor] \u5DF2\u5728 ${e} \u6DFB\u52A0\u65B0\u7684\u503C`),!0}catch(s){return logger.error(`[YamlEditor] \u6DFB\u52A0\u6570\u636E\u65F6\u51FA\u9519\uFF1A${s}`),false}}del(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.deleteIn(n),!0}catch(n){return logger.error(`[YamlEditor] \u5220\u9664\u6570\u636E\u65F6\u51FA\u9519\uFF1A${n}`),false}}append(e,r,n=false,s=true){try{let o=typeof e=="string"?s?e.split("."):[e]:e,i=this.document.getIn(o);if(!i)i=new C.YAMLSeq,this.document.setIn(o,i);else if(i instanceof C.YAMLSeq)n?i.items.unshift(r):i.add(r);else return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;return logger.debug(`[YamlEditor] \u5DF2\u5411 ${e} \u6570\u7EC4${n?"\u5F00\u5934":"\u672B\u5C3E"}\u6DFB\u52A0\u65B0\u5143\u7D20\uFF1A${r}`),!0}catch(o){return logger.error(`[YamlEditor] \u5411\u6570\u7EC4\u6DFB\u52A0\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${o}`),false}}remove(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);if(!o)return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u5B58\u5728"),!1;if(!(o instanceof C.YAMLSeq))return logger.error("[YamlEditor] \u6307\u5B9A\u7684\u8DEF\u5F84\u4E0D\u662F\u6570\u7EC4"),!1;let i=o.items.findIndex(a=>Rt.isEqual(a.toJSON(),r));return i<0?(logger.error("[YamlEditor] \u672A\u627E\u5230\u8981\u5220\u9664\u7684\u503C"),!1):(o.items.splice(i,1),logger.debug(`[YamlEditor] \u5DF2\u4ECE ${e} \u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF1A${r}`),!0)}catch(s){return logger.error(`[YamlEditor] \u4ECE\u6570\u7EC4\u5220\u9664\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${s}`),false}}has(e,r=true){try{let n=typeof e=="string"?r?e.split("."):[e]:e;return this.document.hasIn(n)}catch(n){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84\u662F\u5426\u5B58\u5728\u65F6\u51FA\u9519\uFF1A${n}`),false}}hasval(e,r,n=true){try{let s=typeof e=="string"?n?e.split("."):[e]:e,o=this.document.getIn(s);return o?o instanceof C.YAMLSeq?o.items.some(i=>Rt.isEqual(i.toJSON(),r)):o instanceof C.YAMLMap?Array.from(o.values()).some(i=>Rt.isEqual(i.toJSON(),r)):Rt.isEqual(o,r):!1}catch(s){return logger.error(`[YamlEditor] \u68C0\u67E5\u8DEF\u5F84 ${e} \u662F\u5426\u5305\u542B\u503C\u65F6\u51FA\u9519\uFF1A${s}`),false}}hasVal(e,r){return this.hasval(e,r)}pusharr(e){try{return this.document.contents instanceof C.YAMLSeq||(this.document.contents=new C.YAMLSeq,logger.debug("[YamlEditor] \u6839\u8282\u70B9\u5DF2\u8F6C\u6362\u4E3A\u6570\u7EC4")),this.document.contents.add(e),logger.debug("[YamlEditor] \u5DF2\u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u5411\u6839\u8282\u70B9\u6570\u7EC4\u65B0\u589E\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}delarr(e){try{if(!(this.document.contents instanceof C.YAMLSeq))throw new Error("[YamlEditor] \u6839\u8282\u70B9\u4E0D\u662F\u6570\u7EC4");if(e<0||e>=this.document.contents.items.length)throw new Error("[YamlEditor] \u7D22\u5F15\u8D85\u51FA\u8303\u56F4");return this.document.contents.items.splice(e,1),logger.debug("[YamlEditor] \u5DF2\u6839\u636E\u7D22\u5F15\u4ECE\u6839\u8282\u70B9\u6570\u7EC4\u5220\u9664\u5143\u7D20\uFF0C\u7D22\u5F15\uFF1A",e),!0}catch(r){return logger.error(`[YamlEditor] \u6839\u636E\u7D22\u5F15\u5220\u9664\u6839\u8282\u70B9\u6570\u7EC4\u5143\u7D20\u65F6\u51FA\u9519\uFF1A${r}`),false}}getpair(e,r=true){if(!e)throw new Error("path is required");let n=typeof e=="string"?r?e.split("."):[e]:e,s=this.document.contents;return n.forEach(o=>{isMap(s)?s=s.items.find(i=>i.key.value===o):isSeq(s)?s=s.items.find(i=>i.value===o):isPair(s)&&(s=s.value.items.find(i=>i.key.value===o));}),s}comment(e,r,n=true,s=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let o=this.getpair(e,s);if(!o)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r=` ${r}`,n?o.key.commentBefore=r:o.key.comment=r;}uncomment(e,r="all",n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);r==="all"?(delete s.key.comment,delete s.key.commentBefore):r==="before"?delete s.key.commentBefore:r==="after"&&delete s.key.comment;}hascomment(e,r,n=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let s=this.getpair(e,n);if(!s)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return r==="before"?!!s.key.commentBefore:r==="after"?!!s.key.comment:false}getcomment(e,r=true){if(!e)throw new Error("[YamlEditor] path \u4E0D\u80FD\u4E3A\u7A7A");let n=this.getpair(e,r);if(!n)throw new Error(`[YamlEditor] \u672A\u627E\u5230\u8282\u70B9 ${e}`);return n.key.commentBefore||n.key.comment}save(){A.writeFileSync(this.filePath,this.document.toString()),logger.debug("[YamlEditor] \u6587\u4EF6\u5DF2\u4FDD\u5B58");}},st=t=>{let e=C.parse(A.readFileSync(t,"utf-8"));return st.save=r=>{try{return _r(t,e,typeof r=="string"?JSON.parse(r):r),!0}catch(n){return logger.error("[YamlEditor] \u4FDD\u5B58\u6587\u4EF6\u65F6\u51FA\u9519"),logger.error(n),false}},e},xr=(t,e)=>{try{return A.writeFileSync(t,C.stringify(e)),!0}catch{return false}},_r=(t,e,r)=>{if(!r){A.writeFileSync(t,C.stringify(e));return}let n=new ne(C.stringify(e)),s=typeof r=="string"?JSON.parse(A.readFileSync(r,"utf8")):r;Ct(n,s),A.writeFileSync(t,n.document.toString());},Jn=(t,e)=>{let r=new ne(t),n=typeof e=="string"?JSON.parse(A.readFileSync(e,"utf8")):e;Ct(r,n),r.save();},Ct=(t,e)=>{for(let r of Object.keys(e))try{let n=e[r],s=typeof n=="string"?n:n.comment,o=typeof n=="string"?!0:typeof n=="object"&&n.type==="top";t.comment(r,s,o);}catch(n){logger.error(`[YamlEditor] \u6DFB\u52A0\u6CE8\u91CA\u65F6\u51FA\u9519\uFF0C\u5DF2\u8DF3\u8FC7\uFF1A${n.stack||n.message||n}`);}},Xo=Object.assign(C,{read:st,save:_r,comment:Jn,applyComments:Ct});});var vr,Vn,ei,Ft,Nt,ti=c(()=>{Pe();vr=new Map,Vn=(t,e)=>{let r=vr.get(t);r&&(r.close(),vr.delete(t));let n=Cu.watch(t);return vr.set(t,n),n.on("change",async()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u53D8\u52A8] ${N.relative(process.cwd(),t).replace(/\\/g,"/")}`);let s=j(t);ge(t);let o=j(t);typeof e=="function"&&e(s,o);}),n.on("unlink",()=>{logger.info(`[\u914D\u7F6E\u6587\u4EF6\u5220\u9664] ${N.relative(process.cwd(),t).replace(/\\/g,"/")}`),ge(t);}),n.once("close",()=>{n.removeAllListeners(),vr.delete(t),ge(t);}),new Ft(t,n)},ei=(t,e,r)=>{let n=Vn(t,r);return new Nt(t,e,n.watcher)},Ft=class{watcher;file;constructor(e,r){this.watcher=r,this.file=e;}get value(){return j(this.file)}close(){return ge(this.file),this.watcher.close()}},Nt=class{watcher;dynamicFile;defaultCFile;constructor(e,r,n){this.watcher=n,this.dynamicFile=e,this.defaultCFile=r;}get value(){let e=j(this.dynamicFile),r=j(this.defaultCFile);return typeof r=="object"&&typeof e=="object"?{...r,...e}:Array.isArray(r)&&Array.isArray(e)?[...r,...e]:e}close(){return ge(this.defaultCFile),this.watcher.close()}};});var zn,Qn,Nu,Dt,jt,kr=c(()=>{zn=new Map,Qn=(t,e,r=`\u65B9\u6CD5 ${String(e)} \u5DF2\u88AB\u9501\u5B9A`)=>{if(typeof t[e]!="function")throw new Error(`\u5C5E\u6027 ${String(e)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`);let n=randomUUID();return zn.set(n,{key:String(e),fnc:t[e]}),Object.defineProperty(t,e,{enumerable:true,configurable:true,value:()=>{throw Error(r)}}),()=>Nu(t,n)},Nu=(t,e)=>{let r=zn.get(e);if(!r)return {status:false,msg:`\u672A\u627E\u5230\u88AB\u9501\u5B9A\u7684\u65B9\u6CD5 ${String(e)}`};let{key:n,fnc:s}=r;return typeof s!="function"?{status:false,msg:`\u5C5E\u6027 ${String(n)} \u4E0D\u662F\u4E00\u4E2A\u51FD\u6570`}:(Object.defineProperty(t,n,{enumerable:true,configurable:true,value:s.bind(t)}),zn.delete(e),{status:true,msg:`\u89E3\u9501\u65B9\u6CD5 ${String(n)} \u6210\u529F`})},Dt=(t,e)=>{let r=Object.getOwnPropertyDescriptor(t,e);if(r)Object.defineProperty(t,e,{enumerable:true,configurable:false,writable:false,value:r.value});else throw new Error(`Property ${String(e)} does not exist on the object`)},jt={prop:Dt,method:Qn};});var ri={};R(ri,{log:()=>Xn,logs:()=>Zn,parseChangelog:()=>qt,range:()=>es});var Xn,Zn,es,qt,Gr=c(()=>{Xn=(t,e)=>{let r=new RegExp(`## \\[${t}\\](.|\\n)*?(?=## \\[|$)`,"g"),n=e.match(r);return n?n[0]:null},Zn=(t,e,r=1,n=false)=>{if(typeof r!="number")throw new TypeError("\u63D0\u53D6\u957F\u5EA6\u5FC5\u987B\u4E3A\u6570\u5B57");let s=qt(e),o=Object.keys(s),i=o.indexOf(t),a=n?i-r:i,u=n?i:i+r;return o.slice(a,u).map(g=>s[g]?s[g]:"").join("")},es=(t,e,r)=>{let n=qt(t),s=Object.keys(n),o=s.indexOf(e),i=s.indexOf(r);return o>i?s.slice(i,o).map(p=>n[p]?n[p]:"").join(""):s.slice(o,i).map(u=>n[u]?n[u]:"").join("")},qt=t=>{let e=/## \[(.*?)\]([\s\S]*?)(?=## \[|$)/g,r={};for(let n of t.matchAll(e)){let s=n[1],o=n[0];r[s]=o;}return r};});var Mr={};R(Mr,{EVENT_COUNT:()=>Du,RECV_MSG:()=>ts,SEND_MSG:()=>rs});var ts,rs,Du,$r=c(()=>{ts="karin:count:recv",rs="karin:count:send",Du="karin:count:fnc";});var O={};R(O,{Watch:()=>Ft,Watcher:()=>Nt,YamlEditor:()=>ne,absPath:()=>ur,applyComments:()=>Ct,base64:()=>gr,buffer:()=>tt,clearRequire:()=>Uo,clearRequireFile:()=>ge,comment:()=>Jn,copyConfig:()=>Do,copyConfigSync:()=>No,copyFiles:()=>qn,copyFilesSync:()=>jn,createPluginDir:()=>cr,downFile:()=>ar,existToMkdir:()=>ir,existToMkdirSync:()=>ze,exists:()=>Sn,existsSync:()=>Oo,filesByExt:()=>rt,getFiles:()=>pr,getPluginInfo:()=>Bt,getRelPath:()=>fr,isDir:()=>or,isDirSync:()=>Po,isFile:()=>Ao,isFileSync:()=>To,isPlugin:()=>wr,isStatic:()=>zo,isSubPath:()=>yr,json:()=>Ho,key:()=>Mr,lock:()=>jt,lockMethod:()=>Qn,lockProp:()=>Dt,log:()=>Xn,logs:()=>Zn,mkdir:()=>Bn,mkdirSync:()=>$t,parseChangelog:()=>qt,pkgRoot:()=>br,range:()=>es,read:()=>st,readFile:()=>Lo,readJson:()=>Ln,readJsonSync:()=>Pt,requireFile:()=>K,requireFileSync:()=>j,rmSync:()=>So,save:()=>_r,sep:()=>pe,splitPath:()=>mr,stream:()=>Oe,urlToPath:()=>hr,watch:()=>Vn,watchAndMerge:()=>ei,write:()=>xr,writeJson:()=>Hn,writeJsonSync:()=>Tt,yaml:()=>Xo});var Ir=c(()=>{Rn();It();lr();et();Kn();St();Yn();Pe();Qo();Er();ti();kr();Gr();$r();});var ni=c(()=>{Ir();});var si,Te,oi,ii,ai,ot=c(()=>{si=()=>process.platform==="win32",Te=()=>process.env.runtime==="tsx",oi=(t,e)=>{process.env[t]=e+"";},ii=t=>oi("karin_port",t),ai=t=>oi("karin_version",t);});var h,pi,se,ui,gi,li,ci,di,mi,fi=c(()=>{h={file:{},watcher:new Map,groupGuild:{},friendDirect:{},friendCfgDef:{cd:0,mode:0,alias:[],enable:[],disable:[],get key(){return "default"}},groupCfgDef:{cd:0,userCD:0,mode:0,alias:[],enable:[],disable:[],memberDisable:[],memberEnable:[],get key(){return "default"}}},pi=(t,e,r)=>{var s;let n;r?n=[`Bot:${r}:${t}:${e}`,`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:n=r?[`Bot:${r}:${t}`,`Bot:${r}`,t,"default"]:[t,"default"];for(let o of n)if((s=h==null?undefined:h.groupGuild)!=null&&s[o])return h.groupGuild[o].count++,{ok:true,config:h.groupGuild[o].config};return {ok:false,keys:n}},se=t=>{try{return t.map(e=>String(e))||[]}catch{return []}},ui=t=>(t.alias=se(t.alias),t.memberEnable=se(t.memberEnable),t.memberDisable=se(t.memberDisable),t),gi=(t,e)=>{Object.defineProperty(t,"key",{get(){return e},enumerable:false,configurable:false});},li=(t,e)=>{var n;for(let s of t)if((n=h==null?undefined:h.groupGuild)!=null&&n[s]){if(!e[s])continue;let o=ui(e[s]);return gi(o,s),h.groupGuild[s]={start:0,count:1,config:o},o}let r=ui(e.default||h.groupCfgDef);return h.groupGuild.default={start:0,count:1,config:r},r},ci=t=>(t.alias=se(t.alias),t),di=(t,e)=>{let r;e?r=[`Bot:${e}:${t}`,`Bot:${e}`,t,"default"]:r=[t,"default"];for(let n of r)if(h.friendDirect[n])return h.friendDirect[n].count++,{ok:true,config:h.friendDirect[n].config};return {ok:false,keys:r}},mi=(t,e)=>{for(let n of t)if(h.friendDirect[n]){if(!e[n])continue;let s=ci(e[n]);return gi(s,n),h.friendDirect[n]={start:0,count:1,config:s},s}let r=ci(e.default||h.friendCfgDef);return h.friendDirect.default={start:0,count:1,config:r},r};setInterval(()=>{for(let t in h.groupGuild)h.groupGuild[t].count-h.groupGuild[t].start<10?delete h.groupGuild[t]:h.groupGuild[t].start=h.groupGuild[t].count;for(let t in h.friendDirect)h.friendDirect[t].count-h.friendDirect[t].start<10?delete h.friendDirect[t]:h.friendDirect[t].start=h.friendDirect[t].count;},6e4);});var ns,m,Se=c(()=>{ns=class extends EventEmitter{on(e,r){return super.on(e,r)}once(e,r){return super.once(e,r)}off(e,r){return super.off(e,r)}emit(e,...r){return super.emit(e,...r)}listeners(e){return super.listeners(e)}removeAllListeners(e){return super.removeAllListeners(e),this}setMaxListeners(e){return super.setMaxListeners(e),this}getMaxListeners(){return super.getMaxListeners()}addListener(e,r){return super.addListener(e,r)}listenerCount(e){return super.listenerCount(e)}eventNames(){return super.eventNames()}rawListeners(e){return super.rawListeners(e)}prependListener(e,r){return super.prependListener(e,r)}prependOnceListener(e,r){return super.prependOnceListener(e,r)}removeListener(e,r){return super.removeListener(e,r)}},m=new ns;});var it,qu,Lu,Hu,Lt,ss=c(()=>{Se();it=new Map,qu=(t,e,r)=>{var s;let n=(s=/Cannot find package '(.+?)'/.exec(r))==null?undefined:s[1];if(n){let o=`${t}.${n}`;if(!it.has(o))return;it.set(o,{name:t,file:e,depend:n});}else logger.error(`\u8F7D\u5165\u63D2\u4EF6\u9519\u8BEF\uFF1A${logger.red(`${t}/${N.basename(e)}`)}`),m.emit("error",r);},Lu=(t,e,r)=>{logger.error(`[\u5B9A\u65F6\u4EFB\u52A1][${t}][${e}] \u6267\u884C\u9519\u8BEF`),m.emit("error",r);},Hu=()=>{try{if(!it.size)return;let t=[`
|
|
2
2
|
-----\u4F9D\u8D56\u7F3A\u5931----`];for(let[,{name:r,file:n,depend:s}]of it)t.push(`[${r}][${N.basename(n)}] \u7F3A\u5C11\u4F9D\u8D56\uFF1A${logger.red(s)}`);t.push("-------------------");let e=it.values().next().value;t.push("\u6E29\u99A8\u63D0\u793A:",`1. \u5982\u679C\u662F\u65B0\u5B89\u88C5\u7684\u63D2\u4EF6\uFF0C\u8BF7\u5C1D\u8BD5\u6267\u884C ${logger.red("pnpm install -P")} \u81EA\u52A8\u5B89\u88C5\u4F9D\u8D56`,`2. \u5982\u679C\u6267\u884C\u7B2C\u4E00\u6B65\u65E0\u6548\uFF0C\u8BF7\u5C1D\u8BD5\u6267\u884C ${logger.red("pnpm imstall \u4F9D\u8D56\u540D\u79F0 -w")} \u624B\u52A8\u5B89\u88C5\u4F9D\u8D56`,`\u4E3E\u4F8B: ${logger.red(`pnpm add ${e.depend} -w`)}`,logger.yellow("\u5BF9\u4E8E\u624B\u52A8\u5B89\u88C5\u7684\u4F9D\u8D56\uFF0C\u5982\u679C\u5BF9\u5E94\u63D2\u4EF6\u672A\u5728\u4F7F\u7528\uFF0C\u8BF7\u8FDB\u884C\u53CA\u65F6\u5378\u8F7D: pnpm rm \u4F9D\u8D56\u540D\u79F0")),t.push("-------------------"),logger.error(t.join(`
|
|
3
3
|
`));}finally{it.clear();}},Lt={loaderPlugin:qu,taskStart:Lu,printMissing:Hu};});var os,Ku,is=c(()=>{os=t=>{let{name:e,message:r,stack:n}=t||{};return {name:e,message:r,stack:n}},Ku=t=>{var e;return t?[`name: ${t.name}`,`message: ${t.message}`,`stack: ${(e=t.stack)==null?undefined:e.toString()}`].join(`
|
|
4
4
|
`):""};});var x,le=c(()=>{is();x=(t,e)=>{let r=(global==null?undefined:global.logger)||console;return new Promise(n=>{e!=null&&e.log&&r.info(["[exec] \u6267\u884C\u547D\u4EE4:",`pwd: ${(e==null?undefined:e.cwd)||process.cwd()}`,`cmd: ${t}`,`options: ${JSON.stringify(e)}`].join(`
|
|
5
5
|
`)),exec(t,e,(s,o,i)=>{if(e!=null&&e.log){let u=os(s);u.message&&(u.message=`\x1B[91m${u.message}\x1B[0m`),r.info(["[exec] \u6267\u884C\u7ED3\u679C:",`stderr: ${i.toString()}`,`stdout: ${o.toString()}`,`error: ${JSON.stringify(u,null,2)}`].join(`
|
|
6
|
-
`));}if(e!=null&&e.booleanResult)return n(!s);let a={status:!s,error:s,stdout:o.toString().trim(),stderr:i.toString().trim()};n(a);});})};});var Or,Yu,Ju,Vu,zu,as=c(()=>{Or=Ar.platform()==="win32",Yu=Ar.platform()==="linux",Ju=Ar.platform()==="darwin",Vu=A.existsSync("/.dockerenv"),zu=Ar.userInfo().uid===0;});var us,cs=c(()=>{le();as();us=async t=>{let e=Or?`netstat -ano | findstr :${t}`:`lsof -i:${t} | grep LISTEN | awk '{print $2}'`,{stdout:r}=await x(e);if(Or){let n=r.toString().split(/\s+/).filter(Boolean).pop();return Number(n)}return Number(r)};});var ps,gs,ls,ds,ms,Qu,fs=c(()=>{le();ps="ffmpeg",gs="ffprobe",ls="ffplay";setTimeout(async()=>{if(!await x("ffmpeg -version",{booleanResult:true})){let{config:e}=await Promise.resolve().then(()=>(v(),Q)),r=e();ps=r.ffmpegPath?`"${r.ffmpegPath}"`:ps,gs=r.ffprobePath?`"${r.ffprobePath}"`:gs,ls=r.ffplayPath?`"${r.ffplayPath}"`:ls;}},1e3);ds=async(t,e)=>(t=t.replace(/^ffmpeg/,"").trim(),t=`${ps} ${t}`,await x(t,e)),ms=async(t,e)=>(t=t.replace(/^ffprobe/,"").trim(),t=`${gs} ${t}`,await x(t,e)),Qu=async(t,e)=>(t=t.replace(/^ffplay/,"").trim(),t=`${ls} ${t}`,await x(t,e));});var Xu,hs,ys=c(()=>{Xu=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},hs=(t,e=Date.now())=>{e=e||Date.now(),t=t.toString().length===10?t*1e3:t,t=Math.floor((e-t)/1e3),e=e.toString().length===10?e*1e3:e,e=Math.floor((e-t)/1e3);let r=Math.floor(t/86400),n=Math.floor(t%86400/3600),s=Math.floor(t%3600/60),o=Math.floor(t%60);return `${r}\u5929${n}\u5C0F\u65F6${s}\u5206\u949F${o}\u79D2`.replace(/0[天时分秒]/g,"")};});var P,oe,Zu,Ht,ec,tc,rc,nc,bi,wi,xi,Pr=c(()=>{ot();St();L();Pe();P={list:undefined,info:undefined},oe=async(t,e)=>{var i;if((i=P==null?undefined:P.list)!=null&&i[t])return P.list[t];if(P.list||(P.list={}),P.info||(P.info={}),!["npm","all","git","app"].includes(t))return [];let r=[],n=t==="npm"?[]:await A.promises.readdir(Qe,{withFileTypes:true});if(await{app:()=>bi(n,r),git:()=>wi(n,r),npm:()=>xi(r),all:async()=>{await Promise.all([bi(n,r),wi(n,r),xi(r)]);}}[t](),P.list[t]=r,setTimeout(()=>{var a;return (a=P==null?undefined:P.list)==null?true:delete a[t]},60*1e3),!e)return r;let o=await Zu(r);return P.info[t]=o,setTimeout(()=>{var a;return (a=P==null?undefined:P.info)==null?true:delete a[t]},60*1e3),o},Zu=async t=>{let e=[],r=Te()?[".ts",".js"]:[".js"];return await Promise.allSettled(t.map(async n=>{let[s,o]=n.split(":");if(s==="app"){let i=N.join(Qe,o);await ec(e,i,o,r);return}if(s==="git"||s==="root"){let i=N.join(Qe,o);await tc(e,i,o,r);return}if(s==="npm"){let i=N.join(process.cwd(),"node_modules",o);await rc(e,i,o);}})),e},Ht=(t,e,r,n,s)=>({type:t,name:e,apps:n,allApps:s,dir:r,id:-1,get pkgPath(){let o=N.join(this.dir,"package.json");return A.existsSync(o)?o:""},get pkgData(){return this.pkgPath?j(this.pkgPath):{}}}),ec=async(t,e,r,n)=>{let s=rt(e,n,"abs");t.push(Ht("app",r,e,s,[e]));},tc=async(t,e,r,n)=>{let s=await K(N.join(e,"package.json"));if(!s||!s.karin){t.push(Ht("git",r,e,[],[]));return}let o=[],i=[],a=[],u=p=>{typeof p=="string"?i.push(p):Array.isArray(p)&&i.push(...p);};Te()&&s.karin["ts-apps"]?u(s.karin["ts-apps"]):s.karin.apps&&u(s.karin.apps),await Promise.allSettled(i.map(async p=>{let g=N.join(e,p);A.existsSync(g)&&(o.push(...rt(g,n,"abs")),a.push(g));})),t.push(Ht("git",r,e,o,a));},rc=async(t,e,r)=>{var u,p;let n=".js",s=[],o=[],i=await K(N.join(e,"package.json"));if(!((p=(u=i.karin)==null?undefined:u.apps)!=null&&p.length)){t.push(Ht("npm",r,e,[],[]));return}let a=[];typeof i.karin.apps=="string"?a.push(i.karin.apps):Array.isArray(i.karin.apps)&&a.push(...i.karin.apps),await Promise.allSettled(a.map(async g=>{let d=N.join(e,g);A.existsSync(d)&&(s.push(...rt(d,n,"abs")),o.push(d));})),t.push(Ht("npm",r,e,s,o));},nc=async t=>{try{let e=N.join(process.cwd(),"node_modules",t,"package.json");return !!(await K(e)).karin}catch{return false}},bi=async(t,e)=>{await Promise.all(t.map(async n=>{n.isDirectory()&&n.name.startsWith("karin-plugin-")&&(A.existsSync(`${Qe}/${n.name}/package.json`)||e.push(`app:${n.name}`));}));let r=await K("./package.json");r.name&&r.karin&&e.push(`root:${r.name}`);},wi=async(t,e)=>{await Promise.all(t.map(async r=>{r.isDirectory()&&r.name.startsWith("karin-plugin-")&&A.existsSync(N.join(Qe,r.name,"package.json"))&&e.push(`git:${r.name}`);}));},xi=async t=>{let e=await K(N.join($e,"package.json")),r=[...Object.keys(e.dependencies),...Object.keys(e.devDependencies)],n=await K("./package.json"),s=Object.keys(n.dependencies||{}).filter(o=>!r.includes(o)&&!o.startsWith("@types"));await Promise.all(s.map(async o=>{await nc(o)&&t.push(`npm:${o}`);}));};});var bs,_i,ws=c(()=>{bs=t=>{let e=0,r=[],n=[];t.type==="button"?n.push(t.data):n.push(...t.rows);for(let s of n){let o=[];for(let i of s){let a=i.link?0:i.callback?1:i.type??2,u={id:String(e),render_data:{label:i.text||i.link||"",style:i.style??0,visited_label:i.show||i.text||i.link||""},action:{type:a,data:i.data||i.link||i.text,unsupport_tips:i.tips||".",permission:{type:2}}};i.enter&&(u.action.enter=true),i.reply&&(u.action.reply=true),i.admin&&(u.action.permission.type=1),i.list?(u.action.permission.type=0,u.action.permission.specify_user_ids=i.list):i.role&&(u.action.permission.type=3,u.action.permission.specify_role_ids=i.role),o.push(u),e++;}r.push({buttons:o});}return r},_i=t=>{let e=[],r=(n,s)=>{s.action.permission.type===1?n.admin=true:s.action.permission.type===0?n.list=s.action.permission.specify_user_ids||[]:s.action.permission.type===3&&(n.role=s.action.permission.specify_role_ids||[]);let o=Object.entries(n).map(([i,a])=>`${i}:${Array.isArray(a)?a.toString():a}`).join(",");e.push(`[button:${o}]`);};for(let n of t)for(let s of n.buttons){if(s.action.type===0){let i={link:s.action.data,text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};r(i,s);continue}if(s.action.type===1){let i={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips,callback:true};r(i,s);continue}let o={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};s.action.enter&&(o.enter=true),s.action.reply&&(o.reply=true),r(o,s);}return e.join("")};});var _={};R(_,{at:()=>sc,basketball:()=>wc,bubbleFace:()=>Ec,button:()=>hc,contact:()=>Ic,customMusic:()=>Oc,dice:()=>xc,face:()=>oc,gift:()=>Mc,image:()=>ac,json:()=>pc,keyboard:()=>fc,location:()=>kc,longMsg:()=>yc,markdown:()=>lc,markdownTpl:()=>dc,marketFace:()=>$c,music:()=>Ac,node:()=>xs,nodeDirect:()=>Pc,pasmsg:()=>mc,raw:()=>bc,record:()=>cc,reply:()=>ic,rps:()=>_c,share:()=>Gc,text:()=>Tr,video:()=>uc,weather:()=>vc,xml:()=>gc});var Tr,sc,oc,ic,ac,uc,cc,pc,gc,lc,dc,mc,fc,hc,yc,bc,wc,xc,_c,Ec,vc,kc,Gc,Mc,$c,Ic,Ac,Oc,xs,Pc,_s=c(()=>{Tr=t=>({type:"text",text:t}),sc=(t,e)=>({type:"at",targetId:t,name:e}),oc=(t,e)=>({type:"face",id:Number(t),isBig:e}),ic=t=>({type:"reply",messageId:String(t)}),ac=(t,e={})=>({type:"image",file:t,fileType:e.fileType,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name,subType:e==null?undefined:e.subType}),uc=(t,e)=>({type:"video",file:t,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name}),cc=(t,e=false,r)=>({type:"record",file:t,magic:e,md5:r==null?undefined:r.md5,name:r==null?undefined:r.name}),pc=t=>({type:"json",data:t}),gc=t=>({type:"xml",data:t}),lc=(t,e)=>({type:"markdown",markdown:t,config:e}),dc=(t,e)=>({type:"markdownTpl",templateId:t,params:e}),mc=(t,e="msg")=>({type:"pasmsg",id:t,source:e}),fc=t=>{let e=[];Array.isArray(t)||(t=[t]);for(let r of t)if(Array.isArray(r)){let n=[];for(let s of r)n.push(s);e.push(n);}else e.push([r]);return {type:"keyboard",rows:e}},hc=t=>({type:"button",data:Array.isArray(t)?t:[t]}),yc=t=>({type:"longMsg",id:t}),bc=t=>({type:"raw",data:t}),wc=t=>({type:"basketball",id:Number(t)}),xc=t=>({type:"dice",id:Number(t)}),_c=t=>({type:"rps",id:Number(t)}),Ec=(t,e)=>({type:"bubbleFace",id:Number(t),count:Number(e)}),vc=(t,e)=>({type:"weather",city:t,code:e}),kc=(t,e,r,n)=>({type:"location",lat:t,lon:e,title:r,address:n}),Gc=(t,e,r,n)=>({type:"share",url:t,title:e,content:r,image:n}),Mc=(t,e)=>({type:"gift",qq:t,id:e}),$c=t=>({type:"marketFace",id:t}),Ic=(t,e)=>({type:"contact",scene:t,peer:e}),Ac=(t,e)=>({type:"music",platform:t,id:e}),Oc=(t,e,r,n,s)=>({type:"music",platform:"custom",url:t,audio:e,title:r,author:n,pic:s}),xs=(t,e,r,n)=>({type:"node",subType:"fake",userId:t,nickname:e,message:r,options:n}),Pc=t=>({type:"node",subType:"messageID",messageId:t,message_id:t});});var ie,Be,Ei,Es=c(()=>{_s();ie=t=>{Array.isArray(t)||(t=[t]);let e=[];return {raw:t.map(n=>{switch(n.type){case "text":return e.push(n.text),n.text;case "image":case "video":case "record":return Buffer.isBuffer(n.file)?`[${n.type}:Buffer://...]`:/^http|^file/.test(n.file)?`[${n.type}:${n.file}]`:`[${n.type}:base64://...]`;case "json":case "xml":return e.push(n.data),`[${n.type}:${n.data}]`;case "at":return `[at:${n.targetId}]`;case "face":return `[face:${n.id}]`;case "reply":return `[reply:${n.messageId}]`;case "rps":return `[rps:${n.id}]`;case "dice":return `[dice:${n.id}]`;case "share":return `[share:${JSON.stringify(n)}]`;case "contact":return `[contact:${JSON.stringify(n)}]`;case "location":return `[location:${JSON.stringify(n)}]`;case "music":return `[music:${JSON.stringify(n)}]`;case "markdown":return `[markdown:${n.markdown}]`;case "button":return `[button:${JSON.stringify(n.data)}]`;case "keyboard":return `[rows:${JSON.stringify(n.rows)}]`;case "longMsg":return `[longmsg:${n.id}]`;case "pasmsg":return `[pasmsg:${n.id}]`;case "markdownTpl":return `[markdowntpl:${JSON.stringify({templateId:n.templateId,...n.params})}]`;default:return `[\u672A\u77E5:${Rt.truncate(JSON.stringify(n),{length:200})}]`}}).join(""),msg:e.join("").trim()}},Be=t=>typeof t=="string"?[Tr(t)]:Array.isArray(t)?t.map(e=>typeof e=="string"?Tr(e):e):[t],Ei=(t,e,r)=>(Array.isArray(t)||(t=[t]),t.map(n=>xs(e||"",r||"",Be(n))));});var Gi={};R(Gi,{absPath:()=>ur,axios:()=>Kt,base64:()=>gr,buffer:()=>tt,buttonToQQBot:()=>bs,createRawMessage:()=>ie,downFile:()=>ar,exists:()=>ir,formatTime:()=>Bc,getAbsPath:()=>vi,getGitPlugins:()=>Nc,getNpmPlugins:()=>Cc,getPlugins:()=>Fc,getRelPath:()=>fr,isDir:()=>or,isPlugin:()=>wr,karinToQQBot:()=>bs,makeForward:()=>Ei,makeMessage:()=>Be,makeMessageLog:()=>ie,mergeImage:()=>Dc,mkdir:()=>$t,pkgJson:()=>Bt,pkgroot:()=>br,qqbotToKarin:()=>_i,readJson:()=>Pt,readYaml:()=>st,sleep:()=>vs,splitPath:()=>mr,stream:()=>Oe,updateYaml:()=>Rc,uptime:()=>ks,urlToPath:()=>hr,writeJson:()=>Tt,writeYaml:()=>xr});var vs,Kt,ks,Bc,Rc,Cc,Fc,Nc,Dc,vi,ki,jc,qc,pt=c(()=>{L();Er();fs();ys();Pr();Rn();et();It();lr();St();Er();Kn();Yn();ws();Es();vs=t=>new Promise(e=>setTimeout(e,t)),Kt=async(t,e,r)=>{try{let n=typeof t=="string"?{...r,url:t,method:e}:t;return await qo(n)}catch(n){return logger.trace(n.stack||n),null}},ks=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},Bc=hs,Rc=(t,e)=>{let r=new ne(t);e.forEach(({key:n,val:s})=>{try{r.has(n)||r.set(n,s);}catch(o){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${o.stack||o.message||o}`);}}),r.save(),r=new ne(t),e.forEach(({key:n,comment:s,type:o})=>{try{r.comment(n,s,o==="top");}catch(i){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${i.stack||i.message||i}`);}}),r.save();},Cc=async(t=false)=>oe("npm",t),Fc=async(t=false)=>oe("git",false),Nc=async(t=false)=>oe("git",t),Dc=async(t,e=3)=>{if(t.length<2)throw Error("\u56FE\u7247\u6570\u91CF\u5FC5\u987B\u5927\u4E8E1");let r=N.join(Ze,"mergeImage"),n=N.join(r,Date.now().toString());A.mkdirSync(n,{recursive:true});let s=vi(t,n),o=await qc(s,e),i=s.map(y=>`-i "${y}"`).join(" "),a=N.join(n,"output.png"),u=`${i} -filter_complex "${o}" -map "[out]" ${a}`,p=await ds(u);if(!p.status)throw logger.error("[common] \u5408\u5E76\u56FE\u7247\u5931\u8D25:"),p.error;let{height:g,width:d}=await ki(a),w=await A.promises.readFile(a,"base64");return setTimeout(()=>A.promises.rm(n,{recursive:true,force:true}),100),{base64:w,height:g,width:d}},vi=(t,e)=>{let r=[];return t.forEach((n,s)=>{if(typeof n!="string")throw TypeError("\u4F20\u5165\u7684\u56FE\u7247\u53EA\u652F\u6301\u672C\u5730\u8DEF\u5F84 \u6216 \u5E26\u524D\u7F00base64://\u5B57\u7B26\u4E32");if(n.startsWith("base64://")){let i=n.replace(/^base64:\/\//,""),a=Buffer.from(i,"base64"),u=N.join(e,`${s}.png`);A.writeFileSync(u,a),r.push(u);return}if(!A.existsSync(n))throw Error(`\u56FE\u7247\u8DEF\u5F84\u4E0D\u5B58\u5728: ${n}`);let o=N.join(e,N.basename(n));A.copyFileSync(n,o),r.push(o);}),r},ki=async t=>{let{stdout:e}=await ms(`-v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 "${t}"`),[r,n]=e.trim().split(",").map(Number);return {width:r,height:n}},jc=(t,e,r,n)=>t.map((o,i)=>{let a=Math.floor(i/e);return `${i%e*r}_${a*n}`}).join("|"),qc=async(t,e)=>{let r=await Promise.all(t.map(async a=>{let{width:u,height:p}=await ki(a);return {file:a,width:u,height:p}})),n=Math.max(...r.map(a=>a.width)),s=Math.max(...r.map(a=>a.height)),o="";r.forEach((a,u)=>{o+=`[${u}:v]pad=${n}:${s}:(ow-iw)/2:(oh-ih)/2[p${u}]; `;});let i=jc(r,e,n,s);return o+=`${r.map((a,u)=>`[p${u}]`).join("")}xstack=inputs=${r.length}:layout=${i}[out]`,o};});var Gs,Mi,$i=c(()=>{L();Gs=class extends Level{id;get;constructor(e){super(e,{valueEncoding:"json"}),this.id="Level",this.get=super.get.bind(this);}async set(e,r){return await super.put(e,r)}async has(e){try{return await super.get(e)}catch{return null}}},Mi=()=>new Gs(No);});var Sr,Ms=c(()=>{L();It();Sr=class extends Kc{#e={};#t={};#r={};#s={};#n={};#o={};#i={};#a={};#u={};#c;constructor(){super(),this.#e={},this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},process.once("exit",()=>this.#c.close());}async init(){ze(Nn),this.#c=new Level(Nn),setInterval(()=>{Object.keys(this.#e).forEach(n=>this.checkExpire(n));},3e4),setInterval(()=>this.save(),12e4);let e=await this.#c.keys().all();return await Promise.all(e.map(async r=>{let n=await this.#c.get(r).catch(()=>null);if(!n)return;let{type:s,expire:o,value:i}=JSON.parse(n);switch(this.#e[r]={type:s,expire:o},s){case "str":this.#t[r]=i;return;case "num":this.#r[r]=Number(i);return;case "hash":{let a=JSON.parse(i);for(let u in a)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#s[r]=a;return}case "list":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#n[r]=a;return}case "set":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#o[r]=new Set(a);return}case "zset":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u].member!="string"&&(a[u].member=Buffer.from(a[u].member));this.#i[r]=a;return}case "pf":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#a[r]=new Set(a);return}case "bit":this.#u[r]=Buffer.from(i);}})),this}checkExpire(e,r=true){return this.#e[e]&&this.#e[e].expire!==-1&&this.#e[e].expire<ae().valueOf()?(r&&this.#p(e),true):false}#p(e){let{type:r}=this.#e[e];switch(delete this.#e[e],r){case "str":delete this.#t[e];break;case "num":delete this.#r[e];break;case "hash":delete this.#s[e];break;case "list":delete this.#n[e];break;case "set":delete this.#o[e];break;case "zset":delete this.#i[e];break;case "pf":delete this.#a[e];break;case "bit":delete this.#u[e];break}logger.trace(`[Redis-mock] \u5220\u9664\u952E ${e}`);}type(e){var r;return (r=this.#e[e])==null?undefined:r.type}async set(e,r,n={}){if(!Buffer.isBuffer(r)&&typeof r!="string"?r=String(r):Buffer.isBuffer(r)&&(r=r.toString()),Rt.isEmpty(n))return this.#e[e]={type:"str",expire:-1},this.#t[e]=r,"OK";let s=-1;if((n==null?undefined:n.EX)!==undefined){let o=Number(n.EX);isNaN(o)||(s=ae().add(o,"seconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PX)!==undefined){let o=Number(n.PX);isNaN(o)||(s=ae().add(o,"milliseconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.EXAT)!==undefined){let o=Number(n.EXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PXAT)!==undefined){let o=Number(n.PXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s};}else if(n!=null&&n.KEEPTTL)this.#t[e]?this.#t[e]=r:(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.NX)this.#t[e]||(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.XX)this.#t[e]&&(this.#t[e]=r);else if(n!=null&&n.GET){if(this.#e[e]={type:"str",expire:-1},this.#t[e]){let o=this.#t[e];return this.#t[e]=r,o}return this.#t[e]=r,null}else this.#e[e]={type:"str",expire:-1},this.#t[e]=r;return "OK"}async get(e){if(!this.#e[e]||this.checkExpire(e))return null;let{type:r}=this.#e[e];return r==="num"?String(this.#r[e]):this.#t[e].toString()}async del(e){return this.#e[e]?(this.#p(e),1):0}async exists(e){return !this.#e[e]||this.checkExpire(e)?0:1}async expire(e,r){return this.#e[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),1):0}async ttl(e){return this.#e[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:ae(this.#e[e].expire).diff(ae(),"seconds"):-2}async keys(e){let r=new RegExp(e.replace(/\*/g,".*")),n=Object.keys(this.#e),s=[];return await Promise.all(n.map(async o=>{this.checkExpire(o)||r.test(o)&&s.push(o);})),s}async flushAll(){return this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},this.#e={},"OK"}async incr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]+=1,this.#r[e]}async decr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]-=1,this.#r[e]}async append(e,r){return this.#t[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#t[e]=""):this.#t[e]="",Buffer.isBuffer(r)?this.#t[e]+=Buffer.concat([Buffer.from(this.#t[e]),r]).toString():this.#t[e]+=r,this.#t[e].length}async hSet(e,r,n){return this.#s[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#s[e]={}):(this.#e[e]={type:"hash",expire:-1},this.#s[e]={}),this.#s[e][r]=n,1}async hGet(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?null:this.#s[e][r].toString()}async hDel(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?0:(delete this.#s[e][r],1)}async hGetAll(e){return this.#s[e]?this.checkExpire(e)?{}:Rt.mapValues(this.#s[e],r=>r.toString()):{}}async lPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].unshift(...r),this.#n[e].length}async rPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].push(...r),this.#n[e].length}async lPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].shift();return r?r.toString():null}async rPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].pop();return r?r.toString():null}async lRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(s=>s.toString()):[]}async sAdd(e,...r){this.#o[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#o[e]=new Set):(this.#e[e]={type:"set",expire:-1},this.#o[e]=new Set);let n=0;for(let s of r)this.#o[e].has(s.toString())||(this.#o[e].add(s.toString()),n++);return n}async sRem(e,...r){if(!this.#o[e]||this.checkExpire(e))return 0;let n=0;for(let s of r)this.#o[e].has(s.toString())&&(this.#o[e].delete(s.toString()),n++);return n}async sMembers(e){return this.#o[e]?this.checkExpire(e)?[]:Array.from(this.#o[e]).map(n=>n.toString()):[]}async sismember(e,r){return !this.#o[e]||this.checkExpire(e)?0:this.#o[e].has(r.toString())?1:0}async zAdd(e,r,n){this.#i[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#i[e]=[]):(this.#e[e]={type:"zset",expire:-1},this.#i[e]=[]);let s=this.#i[e].findIndex(o=>o.member===n.toString());return s===-1?this.#i[e].push({score:r,member:n}):this.#i[e][s]={score:r,member:n},1}async zRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(o=>o.toString()):[]}async zRem(e,r){if(!this.#n[e]||this.checkExpire(e))return 0;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?(this.#n[e].splice(n,1),1):0}async zcard(e){return !this.#n[e]||this.checkExpire(e)?0:this.#n[e].length}async zRank(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?n:null}async zScore(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].find(s=>s===r.toString());return n?n.length:null}async pfAdd(e,...r){this.#a[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#a[e]=new Set):(this.#e[e]={type:"pf",expire:-1},this.#a[e]=new Set);let n=0;for(let s of r)this.#a[e].has(s.toString())||(this.#a[e].add(s.toString()),n++);return n>0}async pfCount(e){return !this.#a[e]||this.checkExpire(e)?0:this.#a[e].size}async pExpire(e,r){return this.#a[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),true):false}async pTTL(e){return this.#a[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:(ae(this.#e[e].expire).diff(ae(),"seconds"),1):-2}async pExpireAt(e,r){return !this.#a[e]||this.checkExpire(e)?false:(this.#e[e].expire=r,true)}async publish(e,r){return this.emit(e,r.toString()),this.listenerCount(e)}async subscribe(e,r){return e.forEach(n=>this.on(n,r)),e.length}async unsubscribe(e,r){return e.forEach(n=>this.off(n,r)),e.length}async setBit(e,r,n){this.#u[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#u[e]=Buffer.alloc(0)):(this.#e[e]={type:"bit",expire:-1},this.#u[e]=Buffer.alloc(0));let s=Math.floor(r/8),o=r%8,i=this.#u[e].readUInt8(s),a=n?i|1<<o:i&~(1<<o);return this.#u[e].writeUInt8(a,s),i}async getBit(e,r){if(!this.#u[e]||this.checkExpire(e))return 0;let n=Math.floor(r/8),s=r%8;return this.#u[e].readUInt8(n)&1<<s?1:0}async getRange(e,r,n){if(!this.#u[e])return [];if(this.checkExpire(e))return [];let s=[];for(let o=r;o<=n;o++)s.push(await this.getBit(e,o));return s}async save(){let r=(await this.#c.keys().all()).filter(s=>!this.#e[s]),n=[];return r.forEach(s=>n.push({type:"del",key:s})),Object.keys(this.#e).forEach(s=>{let{type:o,expire:i}=this.#e[s],a=this.#t[s];n.push({type:"put",key:s,value:JSON.stringify({type:o,expire:i,value:a})});}),await this.#c.batch(n),"OK"}};});var Ai,Yc,Oi,Jc,Vc,Pi=c(()=>{Ms();ot();le();v();Ai=async t=>{try{let e=createClient(t);return await e.connect(),Object.defineProperty(e,"id",{value:"Redis"}),e}catch(e){logger.debug(`${logger.red("[redis] \u542F\u52A8\u5931\u8D25:")} ${JSON.stringify(t)}`),logger.debug(e);}},Yc=async()=>{if(logger.debug("[redis] \u6B63\u5728\u5C1D\u8BD5\u542F\u52A8 Redis..."),oi()){let e=await x("redis-server.exe redis.conf",{booleanResult:true});return e||await x("net start Redis",{booleanResult:true})}let t="redis-server --save 300 10 --daemonize yes"+await Jc();return await x(t,{booleanResult:true})},Oi=async()=>{let t=$s(),e=await Ai(t);return e?(logger.info(`[redis] ${logger.green("Redis \u8FDE\u63A5\u6210\u529F")}`),e):(await Yc()?(logger.debug(logger.green("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u6210\u529F")),e=await Ai(t)):logger.debug(logger.red("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u5931\u8D25")),e||(logger.debug(logger.yellow("[redis] \u5C06\u964D\u7EA7\u4E3A redis-mock \u5B9E\u73B0")),Vc()))},Jc=async()=>{if(Wc.arch()!=="arm64")return "";let{stdout:t}=await x("redis-server -v"),e=t.toString();if(!e)return "";let r=e.match(/v=(\d)./);return r&&Number(r[1])>=6?" --ignore-warnings ARM64-COW-BUG":""},Vc=async()=>{let t=await new Sr().init();return Object.defineProperty(t,"id",{value:"mock"}),t};});var Ti=c(()=>{$i();Pi();Ms();});var Is={};R(Is,{level:()=>zc,redis:()=>Si});var zc,Si,Br=c(()=>{Ti();zc=Mi();(async()=>Si=await Oi())();});var Bi={};R(Bi,{checkProcess:()=>Ps,processExit:()=>Re,processHandler:()=>Os});var As,Os,Ps,Re,Rr=c(()=>{Se();le();cs();pt();As=false,Os=()=>{process.once("SIGHUP",t=>Re(t)),process.once("SIGINT",t=>Re(t)),process.once("SIGTERM",t=>Re(t)),process.once("SIGBREAK",t=>Re(t)),process.once("SIGQUIT",t=>Re(t)),process.on("warning",t=>m.emit("warn",t)),process.on("uncaughtException",(t,e)=>{m.emit("error",t,e);}),process.on("unhandledRejection",(t,e)=>{m.emit("error",t,e);}),process.on("rejectionHandled",t=>{m.emit("error",t);}),m.on("error",(...t)=>{logger.error(...t);});},Ps=async t=>{var n,s;let e=`http://127.0.0.1:${t}`,r=await Kt({url:`${e}/ping`,method:"get",timeout:300});if(!(!r||r.status!==200||r.data.ping!=="pong")){if(((n=r==null?undefined:r.data)==null?undefined:n.name)!=="karin"){let o=await us(t).catch(()=>-0);logger.fatal(`\u7AEF\u53E3 ${t} \u88AB\u8FDB\u7A0B\u5360\u7528\uFF0C\u8FDB\u7A0BID\uFF1A${o}\uFF0C\u8BF7\u624B\u52A8\u5173\u95ED\u5BF9\u5E94\u8FDB\u7A0B\u6216\u89E3\u9664\u7AEF\u53E3\u5360\u7528`);return}if(((s=r==null?undefined:r.data)==null?undefined:s.pm2_id)!==process.pid){await Kt({url:`${e}/exit`,method:"get",timeout:500}),logger.mark(logger.red("\u68C0\u6D4B\u5230\u540E\u53F0\u8FDB\u7A0B \u6B63\u5728\u5173\u95ED..."));for(let o=0;o<100;o++){if(await Kt({url:`${e}/ping`,method:"get",timeout:100})){await vs(50);continue}logger.mark(logger.green("\u540E\u53F0\u8FDB\u7A0B\u5DF2\u5173\u95ED"));return}logger.error(`\u540E\u53F0\u8FDB\u7A0B\u5173\u95ED\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u8FDB\u7A0B\u6B63\u5728\u5360\u7528\u7AEF\u53E3${t}`),Re(1);}}},Re=async t=>{try{if(As)return;As=!0;let{redis:e,level:r}=await Promise.resolve().then(()=>(Br(),Is));await Promise.allSettled([e.save(),r.close()]),logger.mark(`\u8FD0\u884C\u7ED3\u675F \u8FD0\u884C\u65F6\u95F4\uFF1A${ks()} \u9000\u51FA\u7801\uFF1A${t??"\u672A\u77E5"}`),process.env.pm_id&&await x(`pm2 delete ${process.env.pm_id}`);}finally{setTimeout(()=>{As=true;},200),process.exit();}};});var F=c(()=>{ss();Rr();Se();});var Q={};R(Q,{admin:()=>Rs,authKey:()=>Cr,config:()=>k,getDirectCfg:()=>Zc,getFriendCfg:()=>de,getGroupCfg:()=>me,getGuildCfg:()=>Cs,getMergeYaml:()=>fe,getYaml:()=>Wt,host:()=>Ts,init:()=>Fs,master:()=>Bs,pkg:()=>Ri,pm2:()=>Xc,port:()=>Ut,redis:()=>$s,rootMsg:()=>Ss,server:()=>X,setYaml:()=>ep,timeout:()=>Qc,updateLevel:()=>Ci});var Ri,Ut,Ts,Ss,Bs,Rs,Qc,$s,Xc,Cr,de,Zc,me,Cs,fe,Wt,k,X,Ci,Fi,Ni,ep,tp,Fs,v=c(()=>{si();L();ot();hi();F();debug("debug: init config");Ri=()=>O.requireFileSync($e+"/package.json"),Ut=()=>h.file.server.port,Ts=()=>h.file.server.host,Ss=()=>h.file.server.rootMsg,Bs=()=>h.file.config.master||[],Rs=()=>h.file.config.admin||[],Qc=()=>h.file.server.timeout||60,$s=()=>fe("redis"),Xc=()=>fe("pm2"),Cr=()=>X().authKey,de=(t,e)=>Ni(t,e),Zc=(t,e)=>Ni(t,e),me=(t,e)=>Fi(t,e),Cs=(t,e,r)=>Fi(t,e,r),fe=(t,e=false)=>{if(e){let s=Wt(t,"default",true),o=Wt(t,"user",true);return {...s,...o}}let r=Wt(t,"default",false),n=Wt(t,"user",false);return {...r.value,...n.value}},Wt=(t,e,r)=>{let n=`${e==="default"?Cn:Xe}/${t}.yaml`;if(e==="default")return O.requireFileSync(n,{force:r});if(r)return O.requireFileSync(n,{force:true});let s=o=>o==="config"?(i,a)=>{var u;m.emit("watch:file",o,i,a),h.file.config={},Ci(((u=a==null?undefined:a.log4jsCfg)==null?undefined:u.level)||"info");}:o==="groupGuild"?(i,a)=>{m.emit("watch:file",o,i,a),h.groupGuild={};}:o==="friendDirect"?(i,a)=>{m.emit("watch:file",o,i,a),h.friendDirect={};}:o==="server"?(i,a)=>{m.emit("watch:file",o,i,a),h.file.server={};}:(i,a)=>(m.emit("watch:file",o,i,a),true);return O.watch(n,s(t))},k=(t=false)=>{var r;if(!t&&((r=h.file.config)!=null&&r.master))return h.file.config;let e=fe("config",t);return e.admin=se(e.admin),e.master=se(e.master),e.private.disable=se(e.private.disable),Object.keys(e.enable).forEach(n=>{e.enable[n]=se(e.enable[n]);}),h.file.config=e,e},X=(t=false)=>{var r;if(!t&&((r=h.file.server)!=null&&r.port))return h.file.server;let e=fe("server",t);return h.file.server=e,e},Ci=t=>{if(t){logger.level=t;return}let e=fe("config");logger.level=e.log4jsCfg.level||"info";},Fi=(t,e,r,n=false)=>{try{let s=gi(t,e,r);if(!n&&s.ok)return s.config;let o=fe("groupGuild",n);return di(s.keys,o)}catch(s){return logger.error(s),h.groupCfgDef}},Ni=(t,e,r=false)=>{try{let n=mi(t,e);if(!r&&n.ok)return n.config;let s=fe("friendDirect",r);return fi(n.keys,s)}catch(n){return logger.error(n),h.friendCfgDef}},ep=(t,e)=>{let r=`${Xe}/${t}.yaml`,n=`${Co}/${t}.json`;return O.existsSync(r)?(O.save(r,e,O.existsSync(n)?n:undefined),true):false},tp=()=>{[At,Ae].forEach(e=>{O.existsSync(e)&&O.rmSync(e,{recursive:true,force:true});});},Fs=()=>{O.copyConfigSync(Cn,Xe,[".yaml"]),k(),X(),ai(Ut()),ui(Ri().version),tp(),[Ie,Xe,Fn,Ze,At,Ae].map(e=>O.existToMkdirSync(e));};});var Ds,js=c(()=>{Ds=t=>typeof t=="function"&&/^class\s/.test(t.toString());});var he,Z,ee,Ce=c(()=>{he=(t,e)=>e?t===false?(n,s)=>logger.bot("debug",n,s):(n,s)=>logger.bot("mark",n,s):t===false?r=>logger.debug(r):r=>logger.mark(r),Z=(t,e)=>({absPath:"",basename:"",dirname:"",method:"",type:t,name:e}),ee=()=>({name:"",apps:[],dir:"",id:-1,pkgData:{},pkgPath:"",type:"app"});});var Fr,qi=c(()=>{ot();V();F();Fr=class{watcher=null;watchDirs=new Set;loader;constructor(e){this.loader=e;}init(){let e=process.env.NODE_ENV==="development";Object.values(l.index).forEach(r=>{!e&&r.type!=="app"||r.allApps.forEach(n=>this.watchDirs.add(n));}),setTimeout(()=>{this.startWatch();},2e3),m.on("watch-dir",({dir:r})=>{typeof r=="string"&&(this.watchDirs.add(r),this.restartWatch());});}startWatch(){this.watcher=Cu.watch(Array.from(this.watchDirs),{ignoreInitial:true,ignored:/(^|[/\\])\../}),this.watcher.on("add",r=>this.handleFileChange(r,"add")).on("change",r=>this.handleFileChange(r,"change")).on("unlink",r=>this.handleFileChange(r,"unlink"));let e=Array.from(this.watchDirs).map(r=>N.relative(process.cwd(),r).replace(/\\/g,"/"));logger.debug(`
|
|
6
|
+
`));}if(e!=null&&e.booleanResult)return n(!s);let a={status:!s,error:s,stdout:o.toString().trim(),stderr:i.toString().trim()};n(a);});})};});var Or,Yu,Ju,Vu,zu,as=c(()=>{Or=Ar.platform()==="win32",Yu=Ar.platform()==="linux",Ju=Ar.platform()==="darwin",Vu=A.existsSync("/.dockerenv"),zu=Ar.userInfo().uid===0;});var us,cs=c(()=>{le();as();us=async t=>{let e=Or?`netstat -ano | findstr :${t}`:`lsof -i:${t} | grep LISTEN | awk '{print $2}'`,{stdout:r}=await x(e);if(Or){let n=r.toString().split(/\s+/).filter(Boolean).pop();return Number(n)}return Number(r)};});var ps,gs,ls,ds,ms,Qu,fs=c(()=>{le();ps="ffmpeg",gs="ffprobe",ls="ffplay";setTimeout(async()=>{if(!await x("ffmpeg -version",{booleanResult:true})){let{config:e}=await Promise.resolve().then(()=>(v(),Q)),r=e();ps=r.ffmpegPath?`"${r.ffmpegPath}"`:ps,gs=r.ffprobePath?`"${r.ffprobePath}"`:gs,ls=r.ffplayPath?`"${r.ffplayPath}"`:ls;}},1e3);ds=async(t,e)=>(t=t.replace(/^ffmpeg/,"").trim(),t=`${ps} ${t}`,await x(t,e)),ms=async(t,e)=>(t=t.replace(/^ffprobe/,"").trim(),t=`${gs} ${t}`,await x(t,e)),Qu=async(t,e)=>(t=t.replace(/^ffplay/,"").trim(),t=`${ls} ${t}`,await x(t,e));});var Xu,hs,ys=c(()=>{Xu=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},hs=(t,e=Date.now())=>{e=e||Date.now(),t=t.toString().length===10?t*1e3:t,t=Math.floor((e-t)/1e3),e=e.toString().length===10?e*1e3:e,e=Math.floor((e-t)/1e3);let r=Math.floor(t/86400),n=Math.floor(t%86400/3600),s=Math.floor(t%3600/60),o=Math.floor(t%60);return `${r}\u5929${n}\u5C0F\u65F6${s}\u5206\u949F${o}\u79D2`.replace(/0[天时分秒]/g,"")};});var P,oe,Zu,Ht,ec,tc,rc,nc,yi,bi,wi,Pr=c(()=>{ot();St();L();Pe();P={list:undefined,info:undefined},oe=async(t,e)=>{var i;if((i=P==null?undefined:P.list)!=null&&i[t])return P.list[t];if(P.list||(P.list={}),P.info||(P.info={}),!["npm","all","git","app"].includes(t))return [];let r=[],n=t==="npm"?[]:await A.promises.readdir(Qe,{withFileTypes:true});if(await{app:()=>yi(n,r),git:()=>bi(n,r),npm:()=>wi(r),all:async()=>{await Promise.all([yi(n,r),bi(n,r),wi(r)]);}}[t](),P.list[t]=r,setTimeout(()=>{var a;return (a=P==null?undefined:P.list)==null?true:delete a[t]},60*1e3),!e)return r;let o=await Zu(r);return P.info[t]=o,setTimeout(()=>{var a;return (a=P==null?undefined:P.info)==null?true:delete a[t]},60*1e3),o},Zu=async t=>{let e=[],r=Te()?[".ts",".js"]:[".js"];return await Promise.allSettled(t.map(async n=>{let[s,o]=n.split(":");if(s==="app"){let i=N.join(Qe,o);await ec(e,i,o,r);return}if(s==="git"||s==="root"){let i=N.join(Qe,o);await tc(e,i,o,r);return}if(s==="npm"){let i=N.join(process.cwd(),"node_modules",o);await rc(e,i,o);}})),e},Ht=(t,e,r,n,s)=>({type:t,name:e,apps:n,allApps:s,dir:r,id:-1,get pkgPath(){let o=N.join(this.dir,"package.json");return A.existsSync(o)?o:""},get pkgData(){return this.pkgPath?j(this.pkgPath):{}}}),ec=async(t,e,r,n)=>{let s=rt(e,n,"abs");t.push(Ht("app",r,e,s,[e]));},tc=async(t,e,r,n)=>{let s=await K(N.join(e,"package.json"));if(!s||!s.karin){t.push(Ht("git",r,e,[],[]));return}let o=[],i=[],a=[],u=p=>{typeof p=="string"?i.push(p):Array.isArray(p)&&i.push(...p);};Te()&&s.karin["ts-apps"]?u(s.karin["ts-apps"]):s.karin.apps&&u(s.karin.apps),await Promise.allSettled(i.map(async p=>{let g=N.join(e,p);A.existsSync(g)&&(o.push(...rt(g,n,"abs")),a.push(g));})),t.push(Ht("git",r,e,o,a));},rc=async(t,e,r)=>{var u,p;let n=".js",s=[],o=[],i=await K(N.join(e,"package.json"));if(!((p=(u=i.karin)==null?undefined:u.apps)!=null&&p.length)){t.push(Ht("npm",r,e,[],[]));return}let a=[];typeof i.karin.apps=="string"?a.push(i.karin.apps):Array.isArray(i.karin.apps)&&a.push(...i.karin.apps),await Promise.allSettled(a.map(async g=>{let d=N.join(e,g);A.existsSync(d)&&(s.push(...rt(d,n,"abs")),o.push(d));})),t.push(Ht("npm",r,e,s,o));},nc=async t=>{try{let e=N.join(process.cwd(),"node_modules",t,"package.json");return !!(await K(e)).karin}catch{return false}},yi=async(t,e)=>{await Promise.all(t.map(async n=>{n.isDirectory()&&n.name.startsWith("karin-plugin-")&&(A.existsSync(`${Qe}/${n.name}/package.json`)||e.push(`app:${n.name}`));}));let r=await K("./package.json");r.name&&r.karin&&e.push(`root:${r.name}`);},bi=async(t,e)=>{await Promise.all(t.map(async r=>{r.isDirectory()&&r.name.startsWith("karin-plugin-")&&A.existsSync(N.join(Qe,r.name,"package.json"))&&e.push(`git:${r.name}`);}));},wi=async t=>{let e=await K(N.join($e,"package.json")),r=[...Object.keys(e.dependencies),...Object.keys(e.devDependencies)],n=await K("./package.json"),s=Object.keys(n.dependencies||{}).filter(o=>!r.includes(o)&&!o.startsWith("@types"));await Promise.all(s.map(async o=>{await nc(o)&&t.push(`npm:${o}`);}));};});var bs,xi,ws=c(()=>{bs=t=>{let e=0,r=[],n=[];t.type==="button"?n.push(t.data):n.push(...t.rows);for(let s of n){let o=[];for(let i of s){let a=i.link?0:i.callback?1:i.type??2,u={id:String(e),render_data:{label:i.text||i.link||"",style:i.style??0,visited_label:i.show||i.text||i.link||""},action:{type:a,data:i.data||i.link||i.text,unsupport_tips:i.tips||".",permission:{type:2}}};i.enter&&(u.action.enter=true),i.reply&&(u.action.reply=true),i.admin&&(u.action.permission.type=1),i.list?(u.action.permission.type=0,u.action.permission.specify_user_ids=i.list):i.role&&(u.action.permission.type=3,u.action.permission.specify_role_ids=i.role),o.push(u),e++;}r.push({buttons:o});}return r},xi=t=>{let e=[],r=(n,s)=>{s.action.permission.type===1?n.admin=true:s.action.permission.type===0?n.list=s.action.permission.specify_user_ids||[]:s.action.permission.type===3&&(n.role=s.action.permission.specify_role_ids||[]);let o=Object.entries(n).map(([i,a])=>`${i}:${Array.isArray(a)?a.toString():a}`).join(",");e.push(`[button:${o}]`);};for(let n of t)for(let s of n.buttons){if(s.action.type===0){let i={link:s.action.data,text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};r(i,s);continue}if(s.action.type===1){let i={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips,callback:true};r(i,s);continue}let o={text:s.render_data.label,show:s.render_data.visited_label,style:s.render_data.style,tips:s.action.unsupport_tips};s.action.enter&&(o.enter=true),s.action.reply&&(o.reply=true),r(o,s);}return e.join("")};});var _={};R(_,{at:()=>sc,basketball:()=>wc,bubbleFace:()=>Ec,button:()=>hc,contact:()=>Ic,customMusic:()=>Oc,dice:()=>xc,face:()=>oc,gift:()=>Mc,image:()=>ac,json:()=>pc,keyboard:()=>fc,location:()=>kc,longMsg:()=>yc,markdown:()=>lc,markdownTpl:()=>dc,marketFace:()=>$c,music:()=>Ac,node:()=>xs,nodeDirect:()=>Pc,pasmsg:()=>mc,raw:()=>bc,record:()=>cc,reply:()=>ic,rps:()=>_c,share:()=>Gc,text:()=>Tr,video:()=>uc,weather:()=>vc,xml:()=>gc});var Tr,sc,oc,ic,ac,uc,cc,pc,gc,lc,dc,mc,fc,hc,yc,bc,wc,xc,_c,Ec,vc,kc,Gc,Mc,$c,Ic,Ac,Oc,xs,Pc,_s=c(()=>{Tr=t=>({type:"text",text:t}),sc=(t,e)=>({type:"at",targetId:t,name:e}),oc=(t,e)=>({type:"face",id:Number(t),isBig:e}),ic=t=>({type:"reply",messageId:String(t)}),ac=(t,e={})=>({type:"image",file:t,fileType:e.fileType,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name,subType:e==null?undefined:e.subType}),uc=(t,e)=>({type:"video",file:t,height:e==null?undefined:e.height,width:e==null?undefined:e.width,md5:e==null?undefined:e.md5,name:e==null?undefined:e.name}),cc=(t,e=false,r)=>({type:"record",file:t,magic:e,md5:r==null?undefined:r.md5,name:r==null?undefined:r.name}),pc=t=>({type:"json",data:t}),gc=t=>({type:"xml",data:t}),lc=(t,e)=>({type:"markdown",markdown:t,config:e}),dc=(t,e)=>({type:"markdownTpl",templateId:t,params:e}),mc=(t,e="msg")=>({type:"pasmsg",id:t,source:e}),fc=t=>{let e=[];Array.isArray(t)||(t=[t]);for(let r of t)if(Array.isArray(r)){let n=[];for(let s of r)n.push(s);e.push(n);}else e.push([r]);return {type:"keyboard",rows:e}},hc=t=>({type:"button",data:Array.isArray(t)?t:[t]}),yc=t=>({type:"longMsg",id:t}),bc=t=>({type:"raw",data:t}),wc=t=>({type:"basketball",id:Number(t)}),xc=t=>({type:"dice",id:Number(t)}),_c=t=>({type:"rps",id:Number(t)}),Ec=(t,e)=>({type:"bubbleFace",id:Number(t),count:Number(e)}),vc=(t,e)=>({type:"weather",city:t,code:e}),kc=(t,e,r,n)=>({type:"location",lat:t,lon:e,title:r,address:n}),Gc=(t,e,r,n)=>({type:"share",url:t,title:e,content:r,image:n}),Mc=(t,e)=>({type:"gift",qq:t,id:e}),$c=t=>({type:"marketFace",id:t}),Ic=(t,e)=>({type:"contact",scene:t,peer:e}),Ac=(t,e)=>({type:"music",platform:t,id:e}),Oc=(t,e,r,n,s)=>({type:"music",platform:"custom",url:t,audio:e,title:r,author:n,pic:s}),xs=(t,e,r,n)=>({type:"node",subType:"fake",userId:t,nickname:e,message:r,options:n}),Pc=t=>({type:"node",subType:"messageID",messageId:t,message_id:t});});var ie,Be,_i,Es=c(()=>{_s();ie=t=>{Array.isArray(t)||(t=[t]);let e=[];return {raw:t.map(n=>{switch(n.type){case "text":return e.push(n.text),n.text;case "image":case "video":case "record":return Buffer.isBuffer(n.file)?`[${n.type}:Buffer://...]`:/^http|^file/.test(n.file)?`[${n.type}:${n.file}]`:`[${n.type}:base64://...]`;case "json":case "xml":return e.push(n.data),`[${n.type}:${n.data}]`;case "at":return `[at:${n.targetId}]`;case "face":return `[face:${n.id}]`;case "reply":return `[reply:${n.messageId}]`;case "rps":return `[rps:${n.id}]`;case "dice":return `[dice:${n.id}]`;case "share":return `[share:${JSON.stringify(n)}]`;case "contact":return `[contact:${JSON.stringify(n)}]`;case "location":return `[location:${JSON.stringify(n)}]`;case "music":return `[music:${JSON.stringify(n)}]`;case "markdown":return `[markdown:${n.markdown}]`;case "button":return `[button:${JSON.stringify(n.data)}]`;case "keyboard":return `[rows:${JSON.stringify(n.rows)}]`;case "longMsg":return `[longmsg:${n.id}]`;case "pasmsg":return `[pasmsg:${n.id}]`;case "markdownTpl":return `[markdowntpl:${JSON.stringify({templateId:n.templateId,...n.params})}]`;default:return `[\u672A\u77E5:${Rt.truncate(JSON.stringify(n),{length:200})}]`}}).join(""),msg:e.join("").trim()}},Be=t=>typeof t=="string"?[Tr(t)]:Array.isArray(t)?t.map(e=>typeof e=="string"?Tr(e):e):[t],_i=(t,e,r)=>(Array.isArray(t)||(t=[t]),t.map(n=>xs(e||"",r||"",Be(n))));});var ki={};R(ki,{absPath:()=>ur,axios:()=>Kt,base64:()=>gr,buffer:()=>tt,buttonToQQBot:()=>bs,createRawMessage:()=>ie,downFile:()=>ar,exists:()=>ir,formatTime:()=>Bc,getAbsPath:()=>Ei,getGitPlugins:()=>Nc,getNpmPlugins:()=>Cc,getPlugins:()=>Fc,getRelPath:()=>fr,isDir:()=>or,isPlugin:()=>wr,karinToQQBot:()=>bs,makeForward:()=>_i,makeMessage:()=>Be,makeMessageLog:()=>ie,mergeImage:()=>Dc,mkdir:()=>$t,pkgJson:()=>Bt,pkgroot:()=>br,qqbotToKarin:()=>xi,readJson:()=>Pt,readYaml:()=>st,sleep:()=>vs,splitPath:()=>mr,stream:()=>Oe,updateYaml:()=>Rc,uptime:()=>ks,urlToPath:()=>hr,writeJson:()=>Tt,writeYaml:()=>xr});var vs,Kt,ks,Bc,Rc,Cc,Fc,Nc,Dc,Ei,vi,jc,qc,pt=c(()=>{L();Er();fs();ys();Pr();Rn();et();It();lr();St();Er();Kn();Yn();ws();Es();vs=t=>new Promise(e=>setTimeout(e,t)),Kt=async(t,e,r)=>{try{let n=typeof t=="string"?{...r,url:t,method:e}:t;return await jo(n)}catch(n){return logger.trace(n.stack||n),null}},ks=()=>{let t=process.uptime(),e=Math.floor(t/86400),r=Math.floor(t%86400/3600),n=Math.floor(t%3600/60),s=Math.floor(t%60);return [e?`${e}\u5929`:"",r?`${r}\u5C0F\u65F6`:"",n?`${n}\u5206\u949F`:"",!e&&s?`${s}\u79D2`:""].filter(Boolean).join("")},Bc=hs,Rc=(t,e)=>{let r=new ne(t);e.forEach(({key:n,val:s})=>{try{r.has(n)||r.set(n,s);}catch(o){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${o.stack||o.message||o}`);}}),r.save(),r=new ne(t),e.forEach(({key:n,comment:s,type:o})=>{try{r.comment(n,s,o==="top");}catch(i){logger.error(`[common] \u66F4\u65B0yaml\u6587\u4EF6\u65F6\u51FA\u9519\uFF1A${i.stack||i.message||i}`);}}),r.save();},Cc=async(t=false)=>oe("npm",t),Fc=async(t=false)=>oe("git",false),Nc=async(t=false)=>oe("git",t),Dc=async(t,e=3)=>{if(t.length<2)throw Error("\u56FE\u7247\u6570\u91CF\u5FC5\u987B\u5927\u4E8E1");let r=N.join(Ze,"mergeImage"),n=N.join(r,Date.now().toString());A.mkdirSync(n,{recursive:true});let s=Ei(t,n),o=await qc(s,e),i=s.map(y=>`-i "${y}"`).join(" "),a=N.join(n,"output.png"),u=`${i} -filter_complex "${o}" -map "[out]" ${a}`,p=await ds(u);if(!p.status)throw logger.error("[common] \u5408\u5E76\u56FE\u7247\u5931\u8D25:"),p.error;let{height:g,width:d}=await vi(a),w=await A.promises.readFile(a,"base64");return setTimeout(()=>A.promises.rm(n,{recursive:true,force:true}),100),{base64:w,height:g,width:d}},Ei=(t,e)=>{let r=[];return t.forEach((n,s)=>{if(typeof n!="string")throw TypeError("\u4F20\u5165\u7684\u56FE\u7247\u53EA\u652F\u6301\u672C\u5730\u8DEF\u5F84 \u6216 \u5E26\u524D\u7F00base64://\u5B57\u7B26\u4E32");if(n.startsWith("base64://")){let i=n.replace(/^base64:\/\//,""),a=Buffer.from(i,"base64"),u=N.join(e,`${s}.png`);A.writeFileSync(u,a),r.push(u);return}if(!A.existsSync(n))throw Error(`\u56FE\u7247\u8DEF\u5F84\u4E0D\u5B58\u5728: ${n}`);let o=N.join(e,N.basename(n));A.copyFileSync(n,o),r.push(o);}),r},vi=async t=>{let{stdout:e}=await ms(`-v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 "${t}"`),[r,n]=e.trim().split(",").map(Number);return {width:r,height:n}},jc=(t,e,r,n)=>t.map((o,i)=>{let a=Math.floor(i/e);return `${i%e*r}_${a*n}`}).join("|"),qc=async(t,e)=>{let r=await Promise.all(t.map(async a=>{let{width:u,height:p}=await vi(a);return {file:a,width:u,height:p}})),n=Math.max(...r.map(a=>a.width)),s=Math.max(...r.map(a=>a.height)),o="";r.forEach((a,u)=>{o+=`[${u}:v]pad=${n}:${s}:(ow-iw)/2:(oh-ih)/2[p${u}]; `;});let i=jc(r,e,n,s);return o+=`${r.map((a,u)=>`[p${u}]`).join("")}xstack=inputs=${r.length}:layout=${i}[out]`,o};});var Gs,Gi,Mi=c(()=>{L();Gs=class extends Level{id;get;constructor(e){super(e,{valueEncoding:"json"}),this.id="Level",this.get=super.get.bind(this);}async set(e,r){return await super.put(e,r)}async has(e){try{return await super.get(e)}catch{return null}}},Gi=()=>new Gs(Fo);});var Sr,Ms=c(()=>{L();It();Sr=class extends Kc{#e={};#t={};#r={};#s={};#n={};#o={};#i={};#a={};#u={};#c;constructor(){super(),this.#e={},this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},process.once("exit",()=>this.#c.close());}async init(){ze(Nn),this.#c=new Level(Nn),setInterval(()=>{Object.keys(this.#e).forEach(n=>this.checkExpire(n));},3e4),setInterval(()=>this.save(),12e4);let e=await this.#c.keys().all();return await Promise.all(e.map(async r=>{let n=await this.#c.get(r).catch(()=>null);if(!n)return;let{type:s,expire:o,value:i}=JSON.parse(n);switch(this.#e[r]={type:s,expire:o},s){case "str":this.#t[r]=i;return;case "num":this.#r[r]=Number(i);return;case "hash":{let a=JSON.parse(i);for(let u in a)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#s[r]=a;return}case "list":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#n[r]=a;return}case "set":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#o[r]=new Set(a);return}case "zset":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u].member!="string"&&(a[u].member=Buffer.from(a[u].member));this.#i[r]=a;return}case "pf":{let a=JSON.parse(i);for(let u=0;u<a.length;u++)typeof a[u]!="string"&&(a[u]=Buffer.from(a[u]));this.#a[r]=new Set(a);return}case "bit":this.#u[r]=Buffer.from(i);}})),this}checkExpire(e,r=true){return this.#e[e]&&this.#e[e].expire!==-1&&this.#e[e].expire<ae().valueOf()?(r&&this.#p(e),true):false}#p(e){let{type:r}=this.#e[e];switch(delete this.#e[e],r){case "str":delete this.#t[e];break;case "num":delete this.#r[e];break;case "hash":delete this.#s[e];break;case "list":delete this.#n[e];break;case "set":delete this.#o[e];break;case "zset":delete this.#i[e];break;case "pf":delete this.#a[e];break;case "bit":delete this.#u[e];break}logger.trace(`[Redis-mock] \u5220\u9664\u952E ${e}`);}type(e){var r;return (r=this.#e[e])==null?undefined:r.type}async set(e,r,n={}){if(!Buffer.isBuffer(r)&&typeof r!="string"?r=String(r):Buffer.isBuffer(r)&&(r=r.toString()),Rt.isEmpty(n))return this.#e[e]={type:"str",expire:-1},this.#t[e]=r,"OK";let s=-1;if((n==null?undefined:n.EX)!==undefined){let o=Number(n.EX);isNaN(o)||(s=ae().add(o,"seconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PX)!==undefined){let o=Number(n.PX);isNaN(o)||(s=ae().add(o,"milliseconds").valueOf()),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.EXAT)!==undefined){let o=Number(n.EXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s},this.#t[e]=r;}else if((n==null?undefined:n.PXAT)!==undefined){let o=Number(n.PXAT);isNaN(o)||(s=o),this.#e[e]={type:"str",expire:s};}else if(n!=null&&n.KEEPTTL)this.#t[e]?this.#t[e]=r:(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.NX)this.#t[e]||(this.#e[e]={type:"str",expire:-1},this.#t[e]=r);else if(n!=null&&n.XX)this.#t[e]&&(this.#t[e]=r);else if(n!=null&&n.GET){if(this.#e[e]={type:"str",expire:-1},this.#t[e]){let o=this.#t[e];return this.#t[e]=r,o}return this.#t[e]=r,null}else this.#e[e]={type:"str",expire:-1},this.#t[e]=r;return "OK"}async get(e){if(!this.#e[e]||this.checkExpire(e))return null;let{type:r}=this.#e[e];return r==="num"?String(this.#r[e]):this.#t[e].toString()}async del(e){return this.#e[e]?(this.#p(e),1):0}async exists(e){return !this.#e[e]||this.checkExpire(e)?0:1}async expire(e,r){return this.#e[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),1):0}async ttl(e){return this.#e[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:ae(this.#e[e].expire).diff(ae(),"seconds"):-2}async keys(e){let r=new RegExp(e.replace(/\*/g,".*")),n=Object.keys(this.#e),s=[];return await Promise.all(n.map(async o=>{this.checkExpire(o)||r.test(o)&&s.push(o);})),s}async flushAll(){return this.#t={},this.#r={},this.#s={},this.#n={},this.#o={},this.#i={},this.#a={},this.#u={},this.#e={},"OK"}async incr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]+=1,this.#r[e]}async decr(e){return this.#r[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#r[e]=0):this.#r[e]=0,this.#r[e]-=1,this.#r[e]}async append(e,r){return this.#t[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#t[e]=""):this.#t[e]="",Buffer.isBuffer(r)?this.#t[e]+=Buffer.concat([Buffer.from(this.#t[e]),r]).toString():this.#t[e]+=r,this.#t[e].length}async hSet(e,r,n){return this.#s[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#s[e]={}):(this.#e[e]={type:"hash",expire:-1},this.#s[e]={}),this.#s[e][r]=n,1}async hGet(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?null:this.#s[e][r].toString()}async hDel(e,r){return !this.#s[e]||!this.#s[e][r]||this.checkExpire(e)?0:(delete this.#s[e][r],1)}async hGetAll(e){return this.#s[e]?this.checkExpire(e)?{}:Rt.mapValues(this.#s[e],r=>r.toString()):{}}async lPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].unshift(...r),this.#n[e].length}async rPush(e,...r){return this.#n[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#n[e]=[]):(this.#e[e]={type:"list",expire:-1},this.#n[e]=[]),this.#n[e].push(...r),this.#n[e].length}async lPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].shift();return r?r.toString():null}async rPop(e){if(!this.#n[e]||this.#n[e].length===0||this.checkExpire(e))return null;let r=this.#n[e].pop();return r?r.toString():null}async lRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(s=>s.toString()):[]}async sAdd(e,...r){this.#o[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#o[e]=new Set):(this.#e[e]={type:"set",expire:-1},this.#o[e]=new Set);let n=0;for(let s of r)this.#o[e].has(s.toString())||(this.#o[e].add(s.toString()),n++);return n}async sRem(e,...r){if(!this.#o[e]||this.checkExpire(e))return 0;let n=0;for(let s of r)this.#o[e].has(s.toString())&&(this.#o[e].delete(s.toString()),n++);return n}async sMembers(e){return this.#o[e]?this.checkExpire(e)?[]:Array.from(this.#o[e]).map(n=>n.toString()):[]}async sismember(e,r){return !this.#o[e]||this.checkExpire(e)?0:this.#o[e].has(r.toString())?1:0}async zAdd(e,r,n){this.#i[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#i[e]=[]):(this.#e[e]={type:"zset",expire:-1},this.#i[e]=[]);let s=this.#i[e].findIndex(o=>o.member===n.toString());return s===-1?this.#i[e].push({score:r,member:n}):this.#i[e][s]={score:r,member:n},1}async zRange(e,r,n){return this.#n[e]?this.checkExpire(e)?[]:this.#n[e].slice(r,n+1).map(o=>o.toString()):[]}async zRem(e,r){if(!this.#n[e]||this.checkExpire(e))return 0;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?(this.#n[e].splice(n,1),1):0}async zcard(e){return !this.#n[e]||this.checkExpire(e)?0:this.#n[e].length}async zRank(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].findIndex(s=>s===r.toString());return n!==-1?n:null}async zScore(e,r){if(!this.#n[e]||this.checkExpire(e))return null;let n=this.#n[e].find(s=>s===r.toString());return n?n.length:null}async pfAdd(e,...r){this.#a[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#a[e]=new Set):(this.#e[e]={type:"pf",expire:-1},this.#a[e]=new Set);let n=0;for(let s of r)this.#a[e].has(s.toString())||(this.#a[e].add(s.toString()),n++);return n>0}async pfCount(e){return !this.#a[e]||this.checkExpire(e)?0:this.#a[e].size}async pExpire(e,r){return this.#a[e]?(this.#e[e].expire=ae().add(r,"seconds").valueOf(),true):false}async pTTL(e){return this.#a[e]?this.#e[e].expire===-1?-1:this.checkExpire(e)?-2:(ae(this.#e[e].expire).diff(ae(),"seconds"),1):-2}async pExpireAt(e,r){return !this.#a[e]||this.checkExpire(e)?false:(this.#e[e].expire=r,true)}async publish(e,r){return this.emit(e,r.toString()),this.listenerCount(e)}async subscribe(e,r){return e.forEach(n=>this.on(n,r)),e.length}async unsubscribe(e,r){return e.forEach(n=>this.off(n,r)),e.length}async setBit(e,r,n){this.#u[e]?this.checkExpire(e,false)&&(this.#e[e].expire=-1,this.#u[e]=Buffer.alloc(0)):(this.#e[e]={type:"bit",expire:-1},this.#u[e]=Buffer.alloc(0));let s=Math.floor(r/8),o=r%8,i=this.#u[e].readUInt8(s),a=n?i|1<<o:i&~(1<<o);return this.#u[e].writeUInt8(a,s),i}async getBit(e,r){if(!this.#u[e]||this.checkExpire(e))return 0;let n=Math.floor(r/8),s=r%8;return this.#u[e].readUInt8(n)&1<<s?1:0}async getRange(e,r,n){if(!this.#u[e])return [];if(this.checkExpire(e))return [];let s=[];for(let o=r;o<=n;o++)s.push(await this.getBit(e,o));return s}async save(){let r=(await this.#c.keys().all()).filter(s=>!this.#e[s]),n=[];return r.forEach(s=>n.push({type:"del",key:s})),Object.keys(this.#e).forEach(s=>{let{type:o,expire:i}=this.#e[s],a=this.#t[s];n.push({type:"put",key:s,value:JSON.stringify({type:o,expire:i,value:a})});}),await this.#c.batch(n),"OK"}};});var Ii,Yc,Ai,Jc,Vc,Oi=c(()=>{Ms();ot();le();v();Ii=async t=>{try{let e=createClient(t);return await e.connect(),Object.defineProperty(e,"id",{value:"Redis"}),e}catch(e){logger.debug(`${logger.red("[redis] \u542F\u52A8\u5931\u8D25:")} ${JSON.stringify(t)}`),logger.debug(e);}},Yc=async()=>{if(logger.debug("[redis] \u6B63\u5728\u5C1D\u8BD5\u542F\u52A8 Redis..."),si()){let e=await x("redis-server.exe redis.conf",{booleanResult:true});return e||await x("net start Redis",{booleanResult:true})}let t="redis-server --save 300 10 --daemonize yes"+await Jc();return await x(t,{booleanResult:true})},Ai=async()=>{let t=$s(),e=await Ii(t);return e?(logger.info(`[redis] ${logger.green("Redis \u8FDE\u63A5\u6210\u529F")}`),e):(await Yc()?(logger.debug(logger.green("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u6210\u529F")),e=await Ii(t)):logger.debug(logger.red("[redis] \u4E3B\u52A8\u62C9\u8D77 Redis \u5931\u8D25")),e||(logger.debug(logger.yellow("[redis] \u5C06\u964D\u7EA7\u4E3A redis-mock \u5B9E\u73B0")),Vc()))},Jc=async()=>{if(Wc.arch()!=="arm64")return "";let{stdout:t}=await x("redis-server -v"),e=t.toString();if(!e)return "";let r=e.match(/v=(\d)./);return r&&Number(r[1])>=6?" --ignore-warnings ARM64-COW-BUG":""},Vc=async()=>{let t=await new Sr().init();return Object.defineProperty(t,"id",{value:"mock"}),t};});var Pi=c(()=>{Mi();Oi();Ms();});var Is={};R(Is,{level:()=>zc,redis:()=>Ti});var zc,Ti,Br=c(()=>{Pi();zc=Gi();(async()=>Ti=await Ai())();});var Si={};R(Si,{checkProcess:()=>Ps,processExit:()=>Re,processHandler:()=>Os});var As,Os,Ps,Re,Rr=c(()=>{Se();le();cs();pt();As=false,Os=()=>{process.once("SIGHUP",t=>Re(t)),process.once("SIGINT",t=>Re(t)),process.once("SIGTERM",t=>Re(t)),process.once("SIGBREAK",t=>Re(t)),process.once("SIGQUIT",t=>Re(t)),process.on("warning",t=>m.emit("warn",t)),process.on("uncaughtException",(t,e)=>{m.emit("error",t,e);}),process.on("unhandledRejection",(t,e)=>{m.emit("error",t,e);}),process.on("rejectionHandled",t=>{m.emit("error",t);}),m.on("error",(...t)=>{logger.error(...t);});},Ps=async t=>{var n,s;let e=`http://127.0.0.1:${t}`,r=await Kt({url:`${e}/ping`,method:"get",timeout:300});if(!(!r||r.status!==200||r.data.ping!=="pong")){if(((n=r==null?undefined:r.data)==null?undefined:n.name)!=="karin"){let o=await us(t).catch(()=>-0);logger.fatal(`\u7AEF\u53E3 ${t} \u88AB\u8FDB\u7A0B\u5360\u7528\uFF0C\u8FDB\u7A0BID\uFF1A${o}\uFF0C\u8BF7\u624B\u52A8\u5173\u95ED\u5BF9\u5E94\u8FDB\u7A0B\u6216\u89E3\u9664\u7AEF\u53E3\u5360\u7528`);return}if(((s=r==null?undefined:r.data)==null?undefined:s.pm2_id)!==process.pid){await Kt({url:`${e}/exit`,method:"get",timeout:500}),logger.mark(logger.red("\u68C0\u6D4B\u5230\u540E\u53F0\u8FDB\u7A0B \u6B63\u5728\u5173\u95ED..."));for(let o=0;o<100;o++){if(await Kt({url:`${e}/ping`,method:"get",timeout:100})){await vs(50);continue}logger.mark(logger.green("\u540E\u53F0\u8FDB\u7A0B\u5DF2\u5173\u95ED"));return}logger.error(`\u540E\u53F0\u8FDB\u7A0B\u5173\u95ED\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u662F\u5426\u6709\u8FDB\u7A0B\u6B63\u5728\u5360\u7528\u7AEF\u53E3${t}`),Re(1);}}},Re=async t=>{try{if(As)return;As=!0;let{redis:e,level:r}=await Promise.resolve().then(()=>(Br(),Is));await Promise.allSettled([e.save(),r.close()]),logger.mark(`\u8FD0\u884C\u7ED3\u675F \u8FD0\u884C\u65F6\u95F4\uFF1A${ks()} \u9000\u51FA\u7801\uFF1A${t??"\u672A\u77E5"}`),process.env.pm_id&&await x(`pm2 delete ${process.env.pm_id}`);}finally{setTimeout(()=>{As=true;},200),process.exit();}};});var F=c(()=>{ss();Rr();Se();});var Q={};R(Q,{admin:()=>Rs,authKey:()=>Cr,config:()=>k,getDirectCfg:()=>Zc,getFriendCfg:()=>de,getGroupCfg:()=>me,getGuildCfg:()=>Cs,getMergeYaml:()=>fe,getYaml:()=>Wt,host:()=>Ts,init:()=>Fs,master:()=>Bs,pkg:()=>Bi,pm2:()=>Xc,port:()=>Ut,redis:()=>$s,rootMsg:()=>Ss,server:()=>X,setYaml:()=>ep,timeout:()=>Qc,updateLevel:()=>Ri});var Bi,Ut,Ts,Ss,Bs,Rs,Qc,$s,Xc,Cr,de,Zc,me,Cs,fe,Wt,k,X,Ri,Ci,Fi,ep,tp,Fs,v=c(()=>{ni();L();ot();fi();F();debug("debug: init config");Bi=()=>O.requireFileSync($e+"/package.json"),Ut=()=>h.file.server.port,Ts=()=>h.file.server.host,Ss=()=>h.file.server.rootMsg,Bs=()=>h.file.config.master||[],Rs=()=>h.file.config.admin||[],Qc=()=>h.file.server.timeout||60,$s=()=>fe("redis"),Xc=()=>fe("pm2"),Cr=()=>X().authKey,de=(t,e)=>Fi(t,e),Zc=(t,e)=>Fi(t,e),me=(t,e)=>Ci(t,e),Cs=(t,e,r)=>Ci(t,e,r),fe=(t,e=false)=>{if(e){let s=Wt(t,"default",true),o=Wt(t,"user",true);return {...s,...o}}let r=Wt(t,"default",false),n=Wt(t,"user",false);return {...r.value,...n.value}},Wt=(t,e,r)=>{let n=`${e==="default"?Cn:Xe}/${t}.yaml`;if(e==="default")return O.requireFileSync(n,{force:r});if(r)return O.requireFileSync(n,{force:true});let s=o=>o==="config"?(i,a)=>{var u;m.emit("watch:file",o,i,a),h.file.config={},Ri(((u=a==null?undefined:a.log4jsCfg)==null?undefined:u.level)||"info");}:o==="groupGuild"?(i,a)=>{m.emit("watch:file",o,i,a),h.groupGuild={};}:o==="friendDirect"?(i,a)=>{m.emit("watch:file",o,i,a),h.friendDirect={};}:o==="server"?(i,a)=>{m.emit("watch:file",o,i,a),h.file.server={};}:(i,a)=>(m.emit("watch:file",o,i,a),true);return O.watch(n,s(t))},k=(t=false)=>{var r;if(!t&&((r=h.file.config)!=null&&r.master))return h.file.config;let e=fe("config",t);return e.admin=se(e.admin),e.master=se(e.master),e.private.disable=se(e.private.disable),Object.keys(e.enable).forEach(n=>{e.enable[n]=se(e.enable[n]);}),h.file.config=e,e},X=(t=false)=>{var r;if(!t&&((r=h.file.server)!=null&&r.port))return h.file.server;let e=fe("server",t);return h.file.server=e,e},Ri=t=>{if(t){logger.level=t;return}let e=fe("config");logger.level=e.log4jsCfg.level||"info";},Ci=(t,e,r,n=false)=>{try{let s=pi(t,e,r);if(!n&&s.ok)return s.config;let o=fe("groupGuild",n);return li(s.keys,o)}catch(s){return logger.error(s),h.groupCfgDef}},Fi=(t,e,r=false)=>{try{let n=di(t,e);if(!r&&n.ok)return n.config;let s=fe("friendDirect",r);return mi(n.keys,s)}catch(n){return logger.error(n),h.friendCfgDef}},ep=(t,e)=>{let r=`${Xe}/${t}.yaml`,n=`${Ro}/${t}.json`;return O.existsSync(r)?(O.save(r,e,O.existsSync(n)?n:undefined),true):false},tp=()=>{[At,Ae].forEach(e=>{O.existsSync(e)&&O.rmSync(e,{recursive:true,force:true});});},Fs=()=>{O.copyConfigSync(Cn,Xe,[".yaml"]),k(),X(),ii(Ut()),ai(Bi().version),tp(),[Ie,Xe,Fn,Ze,At,Ae].map(e=>O.existToMkdirSync(e));};});var Ds,js=c(()=>{Ds=t=>typeof t=="function"&&/^class\s/.test(t.toString());});var he,Z,ee,Ce=c(()=>{he=(t,e)=>e?t===false?(n,s)=>logger.bot("debug",n,s):(n,s)=>logger.bot("mark",n,s):t===false?r=>logger.debug(r):r=>logger.mark(r),Z=(t,e)=>({absPath:"",basename:"",dirname:"",method:"",type:t,name:e}),ee=()=>({name:"",apps:[],dir:"",id:-1,pkgData:{},pkgPath:"",type:"app"});});var Fr,ji=c(()=>{ot();V();F();Fr=class{watcher=null;watchDirs=new Set;loader;constructor(e){this.loader=e;}init(){let e=process.env.NODE_ENV==="development";Object.values(l.index).forEach(r=>{!e&&r.type!=="app"||r.allApps.forEach(n=>this.watchDirs.add(n));}),setTimeout(()=>{this.startWatch();},2e3),m.on("watch-dir",({dir:r})=>{typeof r=="string"&&(this.watchDirs.add(r),this.restartWatch());});}startWatch(){this.watcher=Cu.watch(Array.from(this.watchDirs),{ignoreInitial:true,ignored:/(^|[/\\])\../}),this.watcher.on("add",r=>this.handleFileChange(r,"add")).on("change",r=>this.handleFileChange(r,"change")).on("unlink",r=>this.handleFileChange(r,"unlink"));let e=Array.from(this.watchDirs).map(r=>N.relative(process.cwd(),r).replace(/\\/g,"/"));logger.debug(`
|
|
7
7
|
[hmr] \u5F00\u59CB\u76D1\u542C\u6587\u4EF6\u5939:
|
|
8
8
|
`,e.join(`
|
|
9
|
-
`));}restartWatch(){this.watcher&&(this.watcher.close(),this.watcher=null),this.startWatch();}async handleFileChange(e,r){let n=N.extname(e);if(!(Te()?[".ts",".js"]:[".js"]).includes(n))return;let o=N.resolve(e),i=this.findPkgByFile(o);if(!i)return;let a=N.relative(process.cwd(),e).replace(/\\/g,"/");if(logger.debug(`[hmr][${i.name}] \u6587\u4EF6${r}: ${a}`),r==="unlink"){this.unloadPlugin(o),logger.info(`[hmr][${i.name}] \u5DF2\u5378\u8F7D: ${N.basename(e)}`);return}r==="change"&&this.unloadPlugin(o);try{let u=await this.loader.importApp(i.name,o,!0);this.loader.cachePlugin(u,i,o),this.loader.sort();let p=r==="add"?"\u65B0\u589E\u63D2\u4EF6":"\u91CD\u8F7D\u5B8C\u6210";logger.info(`[hmr][${i.name}] ${p}: ${N.basename(e)}`);}catch(u){logger.error(`[hmr][${i.name}] \u52A0\u8F7D\u5931\u8D25:`,u);}}findPkgByFile(e){return Object.values(l.index).find(r=>r.apps.includes(e)||r.allApps.some(n=>e.startsWith(n)))}unloadPlugin(e){l.accept=l.accept.filter(r=>r.file.absPath!==e),l.command=l.command.filter(r=>r.file.absPath!==e),l.task=l.task.filter(r=>(r.file.absPath===e&&r.schedule&&r.schedule.cancel(),r.file.absPath!==e)),l.button=l.button.filter(r=>r.file.absPath!==e),Object.keys(l.handler).forEach(r=>{l.handler[r]=l.handler[r].filter(n=>n.file.absPath!==e);});}};});var Li={};R(Li,{LoaderPlugin:()=>qs});var ap,qs,Hi=c(()=>{ss();Pr();V();js();Ce();ot();et();F();qi();ap=0,qs=class{watcher;constructor(){this.watcher=new Fr(this);}async init(){debug("debug: init loader"),logger.info(logger.green("-----------")),logger.info("\u52A0\u8F7D\u63D2\u4EF6\u4E2D...");let e=[],r=[],n=await oe("all",true);debug("debug: getPlugins",n),await Promise.all(n.map(async o=>{var a,u,p,g,d,w;o.id=++ap,l.index[o.id]=o;let i=[];if(o.type==="app"?i.push("config","data","resources"):Array.isArray((a=o.pkgData.karin)==null?undefined:a.files)&&i.push(...o.pkgData.karin.files),await cr(o.name,i),debug("debug: createPluginDir",o.name,i),o.apps.forEach(y=>{let $=this.importApp(o.name,y).then(q=>this.cachePlugin(q,o,y));e.push($);}),o.type!=="app"){if(Te()&&((p=(u=o==null?undefined:o.pkgData)==null?undefined:u.karin)!=null&&p.main)){let y=N.join(o.dir,o.pkgData.karin.main);r.push(this.loaderMain(o.name,y));}if((g=o==null?undefined:o.pkgData)!=null&&g.main){let y=N.join(o.dir,o.pkgData.main);r.push(this.loaderMain(o.name,y));}}if(o.type!=="app"&&((w=(d=o==null?undefined:o.pkgData)==null?undefined:d.karin)!=null&&w.static)){let y=Array.isArray(o.pkgData.karin.static)?o.pkgData.karin.static:[o.pkgData.karin.static];l.static.push(...y.map($=>N.resolve(o.dir,$)));}})),await Promise.all([...e,...r]),debug("debug: cache",l),this.sort(),Lt.printMissing(),logger.info("\u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210");let s=o=>logger.chalk.magentaBright(o);logger.info(`${s("plugin")}: ${Object.keys(l.index).length}`),Object.keys(l.count).forEach(o=>{if(o==="handler"){let{key:i,fnc:a}=l.count.handler;logger.info(`${s(o+".key")} ${i}`),logger.info(`${s(o+".fnc")} ${a}`);return}logger.info(`${s(o)}: ${l.count[o]}`);}),logger.info(logger.green("-----------")),logger.mark(`karin \u542F\u52A8\u5B8C\u6210: \u8017\u65F6 ${logger.green(process.uptime().toFixed(2))} \u79D2...`),debug("debug: \u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210"),m.emit("online",{}),this.watcher.init();}createFile(e,r,n,s){return {absPath:e,get dirname(){return N.dirname(this.absPath)},get basename(){return N.basename(this.absPath)},type:r,method:n,name:s||r}}async importApp(e,r,n=false){try{return await import(`file://${r}${n?`?t=${Date.now()}`:""}`)}catch(s){return Lt.loaderPlugin(e,r,s),{}}}async loaderMain(e,r,n=false){try{await import(`file://${r}${n?`?t=${Date.now()}`:""}`);}catch(s){Lt.loaderPlugin(e,r,s);}}isType(e,r){var n;return ((n=e.file)==null?undefined:n.type)===r}cachePlugin(e,r,n){for(let s of Object.keys(e)){if(s==="default")continue;if(typeof e[s]=="function"){if(!Ds(e[s]))return;this.cacheClassPlugin(e[s],r,n,s);return}let o=e[s];for(let i of Array.isArray(o)?o:[o])if(typeof i=="object"&&!(!(i!=null&&i.pkg)||!i.file)){if(i.pkg=r,i.file=this.createFile(n,i.file.type,s,i.file.name),this.isType(i,"accept")){l.count.accept++,l.accept.push(i);continue}if(this.isType(i,"command")){l.count.command++,l.command.push(i);continue}if(this.isType(i,"button")){l.count.button++,l.button.push(i);continue}if(this.isType(i,"handler")){l.handler[i.key]||(l.count.handler.key++,l.handler[i.key]=[]),l.count.handler.fnc++,l.handler[i.key].push(i);continue}if(this.isType(i,"task")){i.schedule=ip.scheduleJob(i.cron,async()=>{try{i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u5F00\u59CB\u6267\u884C`);let a=i.fnc();op.types.isPromise(a)&&await a,i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u6267\u884C\u5B8C\u6210`);}catch(a){Lt.taskStart(i.name,i.name,a);}}),l.count.task++;continue}}}}cacheClassPlugin(e,r,n,s){var i;let o=new e;if(!o.name){logger.error(`[load][${n}] plugin.name \u4E0D\u80FD\u4E3A\u7A7A`);return}if(!o.rule||!Array.isArray(o.rule)||((i=o.rule)==null?undefined:i.length)===0){logger.error(`[load][${n}] ${o.name} plugin.rule \u4E0D\u80FD\u4E3A\u7A7A`);return}o.rule.forEach((a,u)=>{a.fnc in o&&(typeof a.reg!="string"&&!(a.reg instanceof RegExp)||l.command.push({pkg:r,type:"class",log:he(a.log,true),adapter:a.adapter||[],dsbAdapter:a.dsbAdapter||[],Cls:e,reg:a.reg instanceof RegExp?a.reg:new RegExp(a.reg),permission:a.permission||"all",event:a.event||o.event||"message",priority:a.priority||1e4,file:this.createFile(n,"command",s,o.name),authFailMsg:a.authFailMsg}));});}sort(){l.accept=Rt.sortBy(l.accept,["rank"],["asc"]),l.command=Rt.sortBy(l.command,["rank"],["asc"]),l.task=Rt.sortBy(l.task,["rank"],["asc"]),l.button=Rt.sortBy(l.button,["rank"],["asc"]);for(let e of Object.keys(l.handler))l.handler[e]=Rt.sortBy(l.handler[e],["rank"],["asc"]);}};});var D,Nr,pp,ye=c(()=>{D=up(),Nr=createServer(D),pp=(t,e)=>{Nr.listen(t,e,()=>{logger.info(`[server] express \u5DF2\u542F\u52A8 \u6B63\u5728\u76D1\u542C: http://${e}:${t}`);});};});var lt,Dr=c(()=>{v();lt={getAuth:t=>{var r,n;let e=((r=t==null?undefined:t.headers)==null?undefined:r.authorization)||((n=t==null?undefined:t.query)==null?undefined:n.token);return e?e===Cr():false},postAuth:t=>{var r;let e=(r=t==null?undefined:t.headers)==null?undefined:r.authorization;return e?e===Cr():false}};});var Ki=c(()=>{ye();Dr();D.get("/exit",async(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}logger.mark("\u6536\u5230\u9000\u51FA\u8BF7\u6C42\uFF0C\u6B63\u5728\u9000\u51FA..."),e.json({message:"\u9000\u51FA\u6210\u529F"});let{processExit:r}=await Promise.resolve().then(()=>(Rr(),Bi));await r(0);});});var Wi=c(()=>{ye();Dr();D.get("/ping",(t,e)=>{e.send({ping:"pong",name:"karin"});});D.get("/status",(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}let r={name:"karin",pid:process.pid,pm2_id:process.env.pm_id||"",uptime:process.uptime(),version:process.env.karin_version,karin_dev:process.env.karin_dev,karin_lang:process.env.karin_lang,karin_runtime:process.env.karin_runtime};e.status(200).json(r);});});var Ui=c(()=>{ye();v();D.get("/",(t,e)=>{e.send({code:200,msg:Rt.sample(Ss())});});});var Yi,Ls,Ji,Vi,Hs,Ks=c(()=>{Yi=async t=>{try{return (await lookup(t,{all:!0})).some(r=>Ls(r.address)||Ji(r.address))}catch{return false}},Ls=t=>{let e=t.split(".").map(Number),r=e.length===4&&e[0]===127,n=e.every(s=>Number.isInteger(s)&&s>=0&&s<=255);return r&&n},Ji=t=>{if(t==="::1")return true;if(t.startsWith("::ffff:")){let e=t.substring(7);return Ls(e)}return false},Vi=t=>{let e=[],r=t.headers["x-forwarded-for"];Array.isArray(r)?e.push(...r):typeof r=="string"&&e.push(r);let n=t.socket.remoteAddress,s=t.ip,o=t.hostname;return s&&e.push(s),o&&e.push(o),n&&e.push(n),e.filter(Boolean)},Hs=async t=>{let e=Vi(t);for(let r of e)if(!await Yi(r))return false;return true};});var Xi=c(()=>{ye();v();Ks();L();D.get("/console/*",async(t,e)=>{let r=X(),n=t.path.split("/").pop();if(!n){e.status(400).json({error:"\u65E0\u6548\u7684\u8BF7\u6C42",message:"\u6587\u4EF6\u540D\u4E0D\u80FD\u4E3A\u7A7A"});return}if(n=decodeURIComponent(n),n.includes("..")){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u975E\u6CD5\u8BF7\u6C42"});return}let s=await Hs(t);if(r.console.isLocal){if(!s){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684\u8BF7\u6C42"});return}}else {if(!r.console.token){e.status(500).json({error:"\u914D\u7F6E\u9519\u8BEF",message:"\u7F3A\u5C11 token \u914D\u7F6E"});return}let u=t.query.token;if(!u||u!==r.console.token){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684 token"});return}}let o=N.join(Ae,n);if(!A.existsSync(o)){e.status(404).json({error:"\u6587\u4EF6\u4E0D\u5B58\u5728",message:"\u6587\u4EF6\u4E0D\u5B58\u5728"});return}let i=A.readFileSync(o);if(!i){e.status(500).json({error:"\u5185\u90E8\u9519\u8BEF",message:"\u8BFB\u53D6\u5931\u8D25"});return}switch(N.extname(n).toLowerCase()){case ".png":e.setHeader("Content-Type","image/png");break;case ".mp3":e.setHeader("Content-Type","audio/mpeg");break;case ".mp4":e.setHeader("Content-Type","video/mp4");break;default:e.setHeader("Content-Type","application/octet-stream");}e.send(i);});});var dp,Ws,Us=c(()=>{le();dp=async(t,e,r,n=true)=>{if(n&&process.send)return process.send("restart"),{status:"success",data:"\u5DF2\u53D1\u9001\u91CD\u542F\u4FE1\u53F7"};let{config:i}=await Promise.resolve().then(()=>(v(),Q));if(i().pm2Restart||process.exit(),process.env.pm_id){let{error:u}=await x("npx karin rs");if(u)return {status:"failed",data:u};process.exit();}let{error:a}=await x("npx karin pm2");if(a)return {status:"failed",data:a};process.exit();},Ws=async()=>{if(logger.mark("\u6536\u5230\u91CD\u542F\u8BF7\u6C42\uFF0C\u6B63\u5728\u91CD\u542F..."),process.env.karin_runtime==="pm2"){await x(`pm2 restart ${process.env.pm_id}`);return}if(process.env.karin_runtime==="tsx")throw new Error("tsx \u4E0D\u652F\u6301\u91CD\u542F");process!=null&&process.send&&(process.send("restart"),logger.mark("\u53D1\u9001\u91CD\u542F\u4FE1\u53F7\u6210\u529F"));};});var Zi=c(()=>{ye();Dr();Us();D.get("/restart",async(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}e.status(200).end(),Ws();});});var ea=c(()=>{Ki();Wi();Ui();Xi();Zi();});var Ys,ta=c(()=>{ye();F();Ys=new WebSocketServer({server:Nr});Ys.on("error",t=>{throw t.code==="EADDRINUSE"?logger.fatal(`[server] \u7AEF\u53E3 ${process.env.karin_port} \u5DF2\u88AB\u5360\u7528\uFF0C\u65E0\u6CD5\u542F\u52A8 http WebSocket \u670D\u52A1`):logger.fatal(`[server] http\u670D\u52A1\u542F\u52A8\u5931\u8D25: ${t.message}`),t});Ys.on("connection",(t,e)=>{if(debug(`wss:connection host: ${e.headers.host} url: ${e.url}`),e.url==="/"||e.url==="/onebot/v11/ws/"||e.url==="/onebot/v11/ws/index"){m.emit("ws:connection:onebot",t,e);return}m.emit("ws:connection",t,e);});});var ra={};R(ra,{app:()=>D,listen:()=>pp,server:()=>Nr,wss:()=>Ys});var Js=c(()=>{ea();ta();ye();});var Fe,jr=c(()=>{Fe=class{account;adapter;super;raw;constructor(){this.account={uin:"",uid:"",selfId:"",subId:{},name:"",avatar:""},this.adapter={index:-1,name:"",version:"",platform:"qq",standard:"other",protocol:"console",communication:"other",address:"",secret:null,connectTime:-1};}get selfId(){return this.account.selfId}get selfName(){return this.account.name}selfSubId(e){return this.account.subId[e]}logger(e,...r){logger.bot(e,this.account.selfId,...r);}sendMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLongMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendForwardMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}recallMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAvatarUrl(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupAvatarUrl(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHistoryMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getForwardMsg(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createResId(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGgroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLike(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}groupKickMember(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMute(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAllMute(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAdmin(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberCard(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupName(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupQuit(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberTitle(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getStrangerInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getFriendList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupInfo(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberInfo(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHonor(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setFriendApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setInvitedJoinGroupResult(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setMsgReaction(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadFile(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}downloadFile(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}renameGroupFolder(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileSystemInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupRemark(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getNotJoinedGroupInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAtAllCount(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMuteList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}pokeUser(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCookies(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCredentials(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCSRFToken(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHttpCookies(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}};});var na=c(()=>{logger.mark("Karin \u542F\u52A8\u4E2D...");logger.mark(`\u5F53\u524D\u7248\u672C: ${process.env.karin_version}`);logger.mark("https://github.com/KarinJS/Karin");});var Ne=c(()=>{Es();_s();});var fp,te,Vs,sa,oa,If,ia,dt,mt,qr,be=c(()=>{Ne();pt();Se();pt();$r();fp=0,te=[],Vs=(t,e=false)=>{var r,n,s;try{return typeof t=="number"?((r=te.find(o=>o.index===t))==null?void 0:r.bot)||null:e?((n=te.find(o=>o.bot.adapter.protocol===t))==null?void 0:n.bot)||null:((s=te.find(o=>o.bot.selfId===t))==null?void 0:s.bot)||null}catch{return null}},sa=()=>te.map(t=>t.bot),oa=()=>te,If=()=>te.map(t=>t.bot.selfId),ia=()=>te.length,dt=(t,e,r)=>{let n=s=>{let o=te.findIndex(s);if(o!==-1){let[i]=te.splice(o,1);return logger.bot("info",i.bot.selfId,`${logger.red("[service][\u5378\u8F7DBot]")} ${i.bot.adapter.name}`),true}return logger.warn(`[service][\u5378\u8F7DBot] \u672A\u627E\u5230\u6307\u5B9ABot: ${JSON.stringify({type:t,idOrIndex:e,address:r})}`),false};return t==="index"?n(s=>s.index===e):t==="selfId"?n(({bot:s})=>s.selfId===e):t==="address"?n(({bot:s})=>s.selfId===e&&s.adapter.address===r):(logger.warn(`[service][\u5378\u8F7DBot] \u672A\u77E5\u7684\u5378\u8F7D\u65B9\u5F0F: ${t}`),false)},mt=(t,e)=>{let r=++fp;te.push({index:r,bot:e});let n=o=>logger.green(`[\u6CE8\u518CBot][${o}]`),s=e.sendForwardMsg;return e.sendForwardMsg=async(o,i,a)=>s.call(e,o,i,a),setTimeout(async()=>{let{level:o}=await Promise.resolve().then(()=>(Br(),Is)),i=`karin:restart:${e.selfId}`,a=await o.has(i);if(a)try{let{selfId:u,contact:p,messageId:g,time:d}=a,w=((Date.now()-d)/1e3).toFixed(2);if(Number(w)>120)return !1;let y=[_.reply(g),_.text(`
|
|
10
|
-
\u91CD\u542F\u6210\u529F\uFF1A${w}\u79D2`)];await qr(u,p,y);}finally{await o.del(i);}},10),m.once("online",()=>{t==="webSocketClient"?logger.bot("info",e.selfId,`${n("\u6B63\u5411webSocket")} ${e.account.name}: ${e.adapter.address}`):t==="other"?(e.adapter.address="internal://127.0.0.1",logger.bot("info",e.selfId,`${n("internal")} ${e.account.name}`)):t==="http"?logger.bot("info",e.selfId,`${n("HTTP")} ${e.account.name}: ${e.adapter.address}`):t==="webSocketServer"?logger.bot("info",e.selfId,`${n("\u53CD\u5411WebSocket")} ${e.account.name}: ${e.adapter.address}`):t==="grpc"&&logger.bot("info",e.selfId,`${n("gRPC")} ${e.account.name}: ${e.adapter.address}`);}),r},qr=async(t,e,r,n={recallMsg:0,retryCount:1,retry_count:1})=>{let s={},o=Be(r),i=Vs(t);if(!i)throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u672A\u627E\u5230\u5BF9\u5E94Bot\u5B9E\u4F8B");let{recallMsg:a}=n,u=n.retryCount??n.retry_count??1,{raw:p}=ie(o);e.scene==="group"?logger.bot("info",t,`${logger.green("Send Proactive Group")} ${e.peer}: ${p}`):logger.bot("info",t,`${logger.green("Send Proactive private")} ${e.peer}: ${p}`);try{m.emit(rs,e),s=await i.sendMsg(e,o,u),logger.bot("debug",t,`\u4E3B\u52A8\u6D88\u606F\u7ED3\u679C:${JSON.stringify(s,null,2)}`);}catch(g){logger.bot("error",t,`\u4E3B\u52A8\u6D88\u606F\u53D1\u9001\u5931\u8D25:${p}`),logger.error(g);}return s.message_id=s.messageId,a&&a>0&&(s!=null&&s.messageId)&&setTimeout(()=>i.recallMsg(e,s.messageId),a*1e3),s};});var aa,yp,zs,Qs=c(()=>{V();aa=async(t,e)=>{let r;for(let n of l.handler[t]||[])try{let s=!0,o=()=>{s=!1;},i=n.fnc(e,o);if(r=op.types.isPromise(i)?await i:i,s)return logger.mark(`[Handler][Done]: [${n.pkg.name}][${n.file.method}][${t}]`),r}catch(s){logger.error(`[Handler][Error]: [${n.pkg.name}][${n.file.method}][${t}]`),logger.error(s);}return r},yp=t=>!!l.handler[t],zs=Object.assign(aa,{call:aa,has:yp});});var Xs=c(()=>{na();Br();be();Qs();});var ft,Zs,eo,to,Lr,we,De=c(()=>{ft={},Zs={},eo={},to=(t,e)=>ft[e]?false:(t.cd>0&&(ft[e]=setTimeout(()=>{delete ft[e];},t.cd*1e3)),true),Lr=(t,e,r)=>Zs[e]||eo[r]?false:(t.cd>0&&(Zs[e]=setTimeout(()=>{delete Zs[e];},t.cd*1e3)),t.userCD>0&&(eo[r]=setTimeout(()=>{delete eo[r];},t.userCD*1e3)),true),we=(t,e,r)=>["frientPoke","receiveLike","groupPoke","groupMessageReaction"].includes(t.subEvent)?ft[r]?false:(e.cd>0&&(ft[r]=setTimeout(()=>{delete ft[r];},e.cd*1e3)),true):true;});var ht,je,Hr=c(()=>{F();ht=new Map,je=t=>{let e=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${t.userId}`:`${t.contact.peer}:${t.userId}`;return ht.has(e)?(m.emit(`ctx:${e}`,t),ht.delete(e),true):false};});var b,qe,S,Le,B,yt,bt,wt,He,xe,ro,ua,_e=c(()=>{$r();kr();F();pt();b=(t,e)=>logger.debug(`[\u6D88\u606F\u8FC7\u6EE4][${t}] ${e}`),qe=t=>{let{msg:e,raw:r}=ie(t.elements);t.msg=e,t.rawMessage=r;},S=(t,e)=>{e.master.includes(`${t.selfId}@${t.userId}`)||e.master.includes(t.userId)?(t.isMaster=true,t.isAdmin=true):e.admin.includes(`${t.selfId}@${t.userId}`)||e.admin.includes(t.userId)?(t.isAdmin=true,t.isMaster=false):(t.isAdmin=false,t.isMaster=false),jt.prop(t,"isMaster"),jt.prop(t,"isAdmin");},Le=(t,e)=>{let r=new RegExp(`^(${e.join("|")})`),n=t.msg.match(r);if(!n){t.alias="";return}t.msg=t.msg.replace(r,"").trim(),t.alias=n[1]||"";},B=t=>{m.emit(ts,t.contact);},yt=(t,e)=>!(t.adapter.length&&!t.adapter.includes(e)||t.dsbAdapter.length&&t.dsbAdapter.includes(e)),bt=(t,e)=>{if(!e.enable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.enable.includes(n))return true;return false},wt=(t,e)=>{if(!e.disable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.disable.includes(n))return false;return true},He=(t,e,r,n)=>{var i,a;if(!n)return b(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if((i=e.enable.users)!=null&&i.length&&!e.enable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.users)!=null&&a.length&&e.disable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.event!=="message")return true;let s={0:()=>true,2:()=>!t.isAdmin&&!t.isMaster?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},xe=(t,e,r,n)=>{var i,a,u,p,g,d,w,y,$,q;if(!n)return b(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if(e.enable.users.length&&!e.enable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if(e.disable.users.length&&e.disable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.isGroup){if((i=e.enable.groups)!=null&&i.length&&!e.enable.groups.includes(t.groupId))return b(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.groups)!=null&&a.length&&e.disable.groups.includes(t.groupId))return b(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((u=r.memberEnable)!=null&&u.length&&!r.memberEnable.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u7FA4\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((p=r.memberDisable)!=null&&p.length&&r.memberDisable.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u7FA4\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.isGuild){if((g=e.enable.guilds)!=null&&g.length&&!e.enable.guilds.includes(t.guildId))return b(t.guildId,`\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((d=e.disable.guilds)!=null&&d.length&&e.disable.guilds.includes(t.guildId))return b(t.guildId,`\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((w=e.enable.channels)!=null&&w.length&&!e.enable.channels.includes(t.channelId))return b(t.channelId,`\u5B50\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((y=e.disable.channels)!=null&&y.length&&e.disable.channels.includes(t.channelId))return b(t.channelId,`\u5B50\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(($=r.memberEnable)!=null&&$.length&&!r.memberEnable.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u9891\u9053\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((q=r.memberDisable)!=null&&q.length&&r.memberDisable.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9891\u9053\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.event!=="message")return true;let s={0:()=>true,1:()=>t.atBot?true:(b(t.userId,`\u5F53\u524D\u54CD\u5E94\u6A21\u5F0F\u4EC5\u5141\u8BB8@\u673A\u5668\u4EBA\u4F7F\u7528: ${t.messageId}`),false),2:()=>!t.isAdmin&&!t.isMaster?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),4:()=>!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u6216@\u673A\u5668\u4EBA\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false):true,5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},ro=(t,e)=>{var r,n,s,o;return (n=(r=e.enable)==null?undefined:r.groupLog)!=null&&n.length&&!e.enable.groupLog.includes(t.groupId)?(b(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(o=(s=e.disable)==null?undefined:s.groupLog)!=null&&o.length&&e.disable.groupLog.includes(t.groupId)?(b(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):true},ua=(t,e)=>{var r,n,s,o,i,a,u,p;return (n=(r=e.enable)==null?undefined:r.guildLog)!=null&&n.length&&!e.enable.guildLog.includes(t.guildId)?(b(t.guildId,`\u9891\u9053\u65E5\u5FD7\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(o=(s=e.disable)==null?undefined:s.guildLog)!=null&&o.length&&e.disable.guildLog.includes(t.guildId)?(b(t.guildId,`\u9891\u9053\u65E5\u5FD7\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):(a=(i=e.enable)==null?undefined:i.channelLog)!=null&&a.length&&!e.enable.channelLog.includes(t.channelId)?(b(t.channelId,`\u5B50\u9891\u9053\u65E5\u5FD7\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(p=(u=e.disable)==null?undefined:u.channelLog)!=null&&p.length&&e.disable.channelLog.includes(t.channelId)?(b(t.channelId,`\u5B50\u9891\u9053\u65E5\u5FD7\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):true};});var xt,no=c(()=>{xt=class{static master="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u4E3B\u4EBA\u624D\u80FD\u64CD\u4F5C";static admin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static owner="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u4E3B\u624D\u80FD\u64CD\u4F5C";static groupAdmin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static handleNoPermission(e,r,n){return r===false?(e.bot.logger("debug",`${n}: ${e.messageId}`),false):(e.reply(typeof r=="string"?r:n),false)}static private(e,r){return !r.permission||r.permission==="all"?true:r.permission==="master"?e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master):r.permission==="admin"?e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin):true}static groups(e,r){var n,s,o,i,a,u;if(!r.permission||r.permission==="all")return true;if(r.permission==="master")return e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master);if(r.permission==="admin")return e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin);if(e.isGroup){if(r.permission==="group.owner")return e.isMaster||e.isAdmin||((n=e.sender)==null?undefined:n.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="group.admin")return e.isMaster||e.isAdmin||((s=e.sender)==null?undefined:s.role)==="owner"||((o=e.sender)==null?undefined:o.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}else if(e.isGuild){if(r.permission==="guild.owner")return e.isMaster||e.isAdmin||((i=e.sender)==null?undefined:i.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="guild.admin")return e.isMaster||e.isAdmin||((a=e.sender)==null?undefined:a.role)==="owner"||((u=e.sender)==null?undefined:u.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}return true}};});var pa,ga,la,so,oo,bp,da=c(()=>{De();V();Hr();F();v();_e();no();pa=async t=>{let e=k(),r=me(t.groupId,t.selfId),n=ro(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"group","\u7FA4\u6D88\u606F",n?"info":"debug"),je(t))return t;let o=Lr(r,t.groupId,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.group"||!["all","master","admin","group.owner","group.admin"].includes(a.permission)));},ga=async t=>{let e=k(),r=me(t.groupId,t.selfId),n=ro(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"groupTemp","\u7FA4\u4E34\u65F6\u6D88\u606F"),je(t))return t;let o=Lr(r,t.groupId,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.groupTemp"||!["all","master","admin"].includes(a.permission)));},la=async t=>{let e=k(),r=Cs(t.guildId,t.channelId,t.selfId),n=ua(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"guild","\u9891\u9053\u6D88\u606F"),je(t))return t;let o=Lr(r,`${t.guildId}:${t.channelId}`,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.guild"||!["all","master","admin","guild.owner","guild.admin"].includes(a.permission)));},so=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},oo=async(t,e,r,n)=>{for(let s of l.command){if(!n(s))continue;if(!await bp(t,s,e,r))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},bp=async(t,e,r,n)=>{let s=e.reg;if(s&&!s.test(t.msg)||!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let o=logger.fnc(t.logFnc);n&&e.log(t.selfId,`${o}${t.logText} ${Rt.truncate(t.msg,{length:100})}`);let i=Date.now();try{if(!xt.groups(t,e))return !1;let a=!1;if(e.type==="fnc"){let u=await e.fnc(t,()=>{a=!0;});a===!1&&u===!1&&(a=!0);}else {let u=new e.Cls;if(typeof(u==null?void 0:u[e.file.method])!="function")return !0;u.e=t,u.next=()=>{a=!0;};let p=await u[e.file.method](u.e);a===!1&&p===!1&&(a=!0);}return a===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(a){return m.emit("error",new Error(t.logFnc,{cause:a})),false}finally{let a=logger.green(Date.now()-i+"ms"),u=Rt.truncate(t.msg,{length:100});n&&e.log(t.selfId,`${o} ${u} \u5904\u7406\u5B8C\u6210 ${a}`);}};});var fa,ha,ya,ba,wp,wa=c(()=>{De();V();F();Hr();v();_e();no();fa=async t=>{let e=k(),r=de(t.userId,t.selfId);if(qe(t),S(t,e),Le(t,r.alias),B(t),ya(t,"friend","\u597D\u53CB\u6D88\u606F"),je(t))return t;He(t,e,r,to(r,t.userId))&&ba(t,r,o=>!(o.event!=="message"&&o.event!=="message.friend"||!["all","master","admin"].includes(o.permission)));},ha=async t=>{let e=k(),r=de(t.userId,t.selfId);if(qe(t),S(t,e),Le(t,r.alias),B(t),ya(t,"direct","\u9891\u9053\u79C1\u4FE1"),je(t))return t;let s=to(r,t.userId);He(t,e,r,s)&&ba(t,r,i=>!(i.event!=="message"&&i.event!=="message.direct"||!["all","master","admin"].includes(i.permission)));},ya=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},ba=async(t,e,r)=>{for(let n of l.command){if(!r(n))continue;if(!await wp(t,n,e))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},wp=async(t,e,r)=>{let n=e.reg;if(n&&!n.test(t.msg)||!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let s=logger.fnc(t.logFnc);e.log(t.selfId,`${s}${t.logText} ${Rt.truncate(t.msg,{length:100})}`);let o=Date.now();try{if(!xt.private(t,e))return !1;let i=!1;if(e.type==="fnc"){let a=await e.fnc(t,()=>{i=!0;});i===!1&&a===!1&&(i=!0);}else {let a=new e.Cls;if(typeof(a==null?void 0:a[e.file.method])!="function")return !0;a.e=t,a.next=()=>{i=!0;};let u=await a[e.file.method](a.e);i===!1&&u===!1&&(i=!0);}return i===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(i){return m.emit("error",new Error(t.logFnc,{cause:i})),false}finally{let i=logger.green(Date.now()-o+"ms"),a=Rt.truncate(t.msg,{length:100});e.log(t.selfId,`${s} ${a} \u5904\u7406\u5B8C\u6210 ${i}`);}};});var xa=c(()=>{da();wa();});var Ee,ve,ke,xp,Vt=c(()=>{V();F();_e();Ee=t=>{switch(t.subEvent){case "friendPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "receiveLike":t.tips=`\u6536\u5230\u70B9\u8D5E: ${t.content.count}`;break;case "friendRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "friendFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "friendIncrease":t.tips=`\u65B0\u589E\u597D\u53CB: ${t.content.targetId}`;break;case "friendDecrease":t.tips=`\u597D\u53CB\u51CF\u5C11: ${t.content.targetId}`;break;case "groupPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "groupMessageReaction":t.tips=`\u8868\u60C5\u52A8\u6001: \u7ED9\u6D88\u606F ${t.content.messageId} ${t.content.isSet?"\u6DFB\u52A0":"\u53D6\u6D88"}\u4E86\u8868\u60C5 ${t.content.faceId}`;break;case "groupRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "groupFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "groupMemberAdd":t.tips=`\u65B0\u589E\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupMemberRemove":t.tips=`\u79FB\u9664\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupCardChanged":t.tips=`\u540D\u7247\u53D8\u52A8: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupAdminChanged":t.tips=`\u7BA1\u7406\u5458\u53D8\u52A8: ${t.content.targetId} \u88AB${t.content.isAdmin?"\u8BBE\u7F6E":"\u53D6\u6D88"}\u7BA1\u7406\u5458`;break;case "groupSignIn":t.tips=`\u7B7E\u5230: ${t.content.targetId}`;break;case "groupMemberTitleUpdate":t.tips=`\u5934\u8854\u53D8\u52A8: ${t.content.title}`;break;case "groupHonorChange":t.tips=`\u8363\u8A89\u53D8\u66F4: ${t.userId} \u83B7\u5F97\u4E86 ${t.content.honorType} \u8363\u8A89`;break;case "groupLuckyKing":t.tips=`\u8FD0\u6C14\u738B: ${t.content.userId} \u4ECE ${t.content.userId} \u53D1\u7684\u7EA2\u5305\u4E2D\u83B7\u5F97\u4E86\u8FD0\u6C14\u738B`;break;case "groupHighlightsChange":{t.content.isSet?t.tips=`\u8BBE\u7F6E\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u8BBE\u7F6E\u4E3A\u7CBE\u534E\u6D88\u606F`:t.tips=`\u53D6\u6D88\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u53D6\u6D88\u7CBE\u534E\u6D88\u606F`;break}case "groupMemberBan":{t.content.isBan?t.tips=`\u7981\u8A00\u6210\u5458: ${t.content.operatorId} \u5C06 ${t.content.targetId} \u7981\u8A00 ${t.content.duration}\u79D2`:t.tips=`\u89E3\u9664\u7981\u8A00: ${t.content.operatorId} \u89E3\u9664\u4E86 ${t.content.targetId} \u7684\u7981\u8A00`;break}case "groupWholeBan":{t.content.isBan?t.tips=`\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`:t.tips=`\u89E3\u9664\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`;break}}},ve=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.tips}`);},ke=async(t,e)=>{for(let r of l.accept){if(r.event!==t.event&&r.event!==`${t.event}.${t.subEvent}`)continue;if(!await xp(t,r,e))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.eventId}`);},xp=async(t,e,r)=>{if(!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let n=logger.fnc(t.logFnc);e.log(t.selfId,`${n}${t.logText}`);let s=Date.now();try{let o=!1,i=await e.fnc(t,()=>{o=!0;});return o===!1&&i===!1&&(o=!0),o===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(o){return m.emit("error",new Error(t.logFnc,{cause:o})),false}finally{e.log(t.selfId,`${n} \u5904\u7406\u5B8C\u6210 ${logger.green(Date.now()-s+"ms")}`);}};});var T,_a=c(()=>{De();v();Vt();_e();T=async t=>{let e=k(),r=me(t.groupId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"group","\u7FA4\u901A\u77E5");let n=we(t,r,t.groupId);xe(t,e,r,n)&&ke(t,r);};});var Ke,Ea=c(()=>{Vt();De();v();_e();Ke=async t=>{let e=k(),r=de(t.userId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"friend","\u597D\u53CB\u901A\u77E5");let n=we(t,r,t.userId);He(t,e,r,n)&&ke(t,r);};});var va=c(()=>{_a();Ea();});var io,ka=c(()=>{De();v();Vt();_e();io=async t=>{let e=k(),r=me(t.groupId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"group","\u7FA4\u8BF7\u6C42");let n=we(t,r,t.groupId);xe(t,e,r,n)&&ke(t,r);};});var Ga,Ma=c(()=>{De();Vt();v();_e();Ga=async t=>{let e=k(),r=de(t.userId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"friend","\u597D\u53CB\u8BF7\u6C42");let n=we(t,r,t.userId);He(t,e,r,n)&&ke(t,r);};});var $a=c(()=>{ka();Ma();});var Ge,zt=c(()=>{kr();Ne();Ne();Ge=class{#e;#t;#r;#s;#n;#o;#i;#a;#u;#c;reply;store;logFnc;logText;isMaster;isAdmin;constructor({event:e,subEvent:r,eventId:n,rawEvent:s,time:o,contact:i,sender:a,srcReply:u,bot:p}){this.#e=p.selfId,this.#t=e,this.#r=r,this.#s=n,this.#n=s,this.#o=o,this.#i=i,this.#a=a,this.#u=u,this.#c=p,this.store=new Map,this.logFnc="",this.logText="",this.isMaster=false,this.isAdmin=false,this.reply=async(g,d)=>{let w=Be(g),y=(d==null?undefined:d.at)??false,$=(d==null?undefined:d.reply)??false,q=(d==null?undefined:d.recallMsg)??0;y&&!this.isPrivate&&w.unshift(_.at(this.userId)),$&&"message_id"in this&&w.unshift(_.reply(this.message_id));let Je={messageId:"",time:0,messageTime:0,rawData:{},message_id:""},Tn=this.#u(w),{raw:Go}=ie(w);return this.isGroup?this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send Group ${this.contact.peer}: `)}${Go.replace(/\n/g,"\\n")}`):this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send private ${this.contact.peer}: `)}${Go.replace(/\n/g,"\\n")}`),Je=op.types.isPromise(Tn)?await Tn:Tn,Je.message_id=Je.messageId,q>0&&Je.messageId&&setTimeout(()=>{this.bot.recallMsg(this.contact,Je.messageId);},q*1e3),Je},Dt(this,"reply");}get self_id(){return this.#e}get user_id(){return this.userId}get selfId(){return this.#e}get userId(){return this.#a.userId}get event(){return this.#t}get subEvent(){return this.#r}get eventId(){return this.#s}get rawEvent(){return this.#n}get time(){return this.#o}get contact(){return this.#i}get sender(){return this.#a}get srcReply(){return this.#u}get bot(){return this.#c}get isPrivate(){return this.#i.scene==="friend"}get isFriend(){return this.isPrivate}get isGroup(){return this.#i.scene==="group"}get isGuild(){return this.#i.scene==="guild"}get isGroupTemp(){return this.#i.scene==="groupTemp"}get isDirect(){return this.#i.scene==="direct"}};});var We,Kr,Wr,Ur,Yr,Jr,ao=c(()=>{zt();We=class extends Ge{#e;#t;#r;#s;elements;msg;alias;rawMessage;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,messageId:p,messageSeq:g,elements:d}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"message"}),this.#e="message",this.#t=e,this.#r=p,this.#s=g,this.elements=d,this.msg="",this.alias="",this.rawMessage="";}get raw_message(){return this.rawMessage}get message_id(){return this.messageId}get message_seq(){return this.messageSeq}get event(){return this.#e}get subEvent(){return this.#t}get messageId(){return this.#r}get messageSeq(){return this.#s}get at(){return this.elements.filter(e=>e.type==="at").map(e=>e.targetId).filter(Boolean)}get atBot(){return this.at.includes(this.selfId)}get atAll(){return this.at.includes("all")}get image(){return this.elements.filter(e=>e.type==="image").map(e=>e.file).filter(Boolean)}get record(){let e=this.elements.find(r=>r.type==="record");return e?e.file:""}get replyId(){let e=this.elements.find(r=>r.type==="reply");return e?e.messageId:""}get reply_id(){return this.replyId}},Kr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"friend"})),this.#e="friend",this.#t=e.contact,this.#r=e.sender;}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Wr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"group"})),this.#e="group",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Ur=class extends We{#e;#t;#r;#s;constructor(e){super(Object.assign(e,{subEvent:"direct"})),this.#e="direct",this.#r=e.sender,this.#t=e.contact,this.#s=e.srcGuildId;}get srcGuildId(){return this.#s}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return true}get isFriend(){return false}get isGroup(){return false}get isGuild(){return false}get isDirect(){return true}get isGroupTemp(){return false}},Yr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"guild"})),this.#e="guild",this.#t=e.contact,this.#r=e.sender;}get guild_id(){return this.guildId}get channel_id(){return this.channelId}get guildId(){return this.#t.peer}get channelId(){return this.#t.subPeer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return false}get isGuild(){return true}get isDirect(){return false}get isGroupTemp(){return false}},Jr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"groupTemp"})),this.#e="groupTemp",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return true}};});var ue,Vr,zr,Qr,Xr,Zr,en,M,tn,rn,nn,sn,on,an,un,cn,pn,gn,ln,dn,mn,fn,hn,uo=c(()=>{zt();ue=class extends Ge{#e;#t;tips;content;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"notice"}),this.#e="notice",this.#t=e,this.tips="";}get event(){return this.#e}get subEvent(){return this.#t}},Vr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"receiveLike"})),this.#e="receiveLike",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},zr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendIncrease"})),this.#e="friendIncrease",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Qr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendDecrease"})),this.#e="friendDecrease",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Xr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendPoke"})),this.#e="friendPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Zr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendRecall"})),this.#e="friendRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},en=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendFileUploaded"})),this.#e="friendFileUploaded",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},M=class extends ue{get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}},tn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupPoke"})),this.#e="groupPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},rn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupRecall"})),this.#e="groupRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},nn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupFileUploaded"})),this.#e="groupFileUploaded",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},sn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupCardChanged"})),this.#e="groupCardChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},on=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberTitleUpdate"})),this.#e="groupMemberTitleUpdate",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},an=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHighlightsChange"})),this.#e="groupHighlightsChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},un=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberAdd"})),this.#e="groupMemberAdd",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},cn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberRemove"})),this.#e="groupMemberRemove",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},pn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupAdminChanged"})),this.#e="groupAdminChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},gn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupSignIn"})),this.#e="groupSignIn",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},ln=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberBan"})),this.#e="groupMemberBan",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},dn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupWholeBan"})),this.#e="groupWholeBan",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},mn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMessageReaction"})),this.#e="groupMessageReaction",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},fn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupLuckyKing"})),this.#e="groupLuckyKing",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},hn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHonorChange"})),this.#e="groupHonorChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}};});var Qt,yn,bn,wn,co=c(()=>{zt();Qt=class extends Ge{#e;#t;tips;content;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"request"}),this.#e="request",this.#t=e,this.tips="";}get event(){return this.#e}get subEvent(){return this.#t}},yn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendApply"})),this.#e="friendApply",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},bn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupApply"})),this.#e="groupApply",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},wn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupInvite"})),this.#e="groupInvite",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}};});var xn,_n,ay,uy,Ia,cy,Aa,py,Oa,Pa,gy,Ta,Sa,Ba,Ra,ly,Ca,Fa,Na,Da,dy,ja,my,po,qa,La,fy,hy,yy,Xt=c(()=>{xa();va();$a();ao();uo();co();xn=t=>{let e=new Kr(t);return fa(e),e},_n=t=>{let e=new Wr(t);return pa(e),e},ay=t=>{let e=new Yr(t);return la(e),e},uy=t=>{let e=new Ur(t);return ha(e),e},Ia=t=>{let e=new Jr(t);return ga(e),e},cy=t=>{let e=new Vr(t);return Ke(e),e},Aa=t=>{let e=new zr(t);return Ke(e),e},py=t=>{let e=new Qr(t);return Ke(e),e},Oa=t=>{let e=new Xr(t);return Ke(e),e},Pa=t=>{let e=new Zr(t);return Ke(e),e},gy=t=>{let e=new en(t);return Ke(e),e},Ta=t=>{let e=new tn(t);return T(e),e},Sa=t=>{let e=new rn(t);return T(e),e},Ba=t=>{let e=new nn(t);return T(e),e},Ra=t=>{let e=new sn(t);return T(e),e},ly=t=>{let e=new on(t);return T(e),e},Ca=t=>{let e=new an(t);return T(e),e},Fa=t=>{let e=new un(t);return T(e),e},Na=t=>{let e=new cn(t);return T(e),e},Da=t=>{let e=new pn(t);return T(e),e},dy=t=>{let e=new gn(t);return T(e),e},ja=t=>{let e=new ln(t);return T(e),e},my=t=>{let e=new dn(t);return T(e),e},po=t=>{let e=new mn(t);return T(e),e},qa=t=>{let e=new fn(t);return T(e),e},La=t=>{let e=new hn(t);return T(e),e},fy=t=>{let e=new bn(t);return io(e),e},hy=t=>{let e=new wn(t);return io(e),e},yy=t=>{let e=new yn(t);return Ga(e),e};});var ce,E,Ha=c(()=>{ce=(t,e="",r,n,s,o)=>(e||(e=""),{userId:t,nick:e,name:e,sex:r,age:n,uid:s,uin:o}),E=(t,e,r,n,s,o,i,a,u,p,g)=>{if(typeof t=="object"){let d=t.name||"";return {userId:t.userId,nick:d,name:d,role:t.role,card:t.card,area:t.area,level:t.level,title:t.title,sex:t.sex,age:t.age,uid:t.uid,uin:t.uin}}if(typeof t=="string")return {userId:t,nick:r||"",name:r||"",role:e||"unknown",card:o,area:i,level:a,title:u,sex:n,age:s,uid:p,uin:g};throw TypeError("\u63D0\u4F9B\u7684\u53C2\u6570\u7C7B\u578B\u9519\u8BEF")};});var Me,G,Ka,Wa=c(()=>{Me=(t,e="")=>({scene:"friend",peer:t,name:e}),G=(t,e="")=>({scene:"group",peer:t,name:e}),Ka=(t,e,r="")=>({scene:"groupTemp",peer:t,subPeer:e,name:r});});var Zt=c(()=>{zt();uo();Ha();Wa();ao();co();});var Ua,Y,En,Ya,Ja=c(()=>{jr();Se();lr();v();L();Xs();Ne();Xt();Zt();Ua=0,Y="console",En=class extends Fe{constructor(){super(),m.on("karin:adapter:open",()=>process.stdin.on("data",e=>this.createEvent(e))),m.on("karin:adapter:close",()=>process.stdin.removeAllListeners("data")),this.adapter.name="@karinjs/console",this.adapter.communication="other",this.adapter.platform="other",this.adapter.standard="other",this.adapter.version=process.env.karin_version,this.account.name=Y,this.account.uid=Y,this.account.uin=Y,this.account.selfId=Y,this.account.avatar="https://p.qlogo.cn/gh/967068507/967068507/0",m.emit("karin:adapter:open");}get selfId(){return this.account.selfId}createEvent(e){let r=e.toString().trim(),n=Math.floor(Math.random()*1e9),s=Date.now();if(r.startsWith("group")){let i=G("10010");_n({bot:this,contact:i,elements:[_.text(r.replace(/^group/,"").trim())],eventId:`${Y}${s}`,messageId:`${Y}${s}`,messageSeq:n,rawEvent:{data:e},sender:E(Y,"member"),time:s,srcReply:a=>this.sendMsg(i,a)});return}let o=Me(Y);xn({bot:this,contact:o,elements:[_.text(r.replace(/^group/,"").trim())],eventId:`${Y}.${s}`,messageId:`${Y}.${s}`,messageSeq:n,rawEvent:{data:e},sender:ce(Y,""),time:s,srcReply:i=>this.sendMsg(o,i)});}async sendMsg(e,r,n){let s=Date.now(),o=(++Ua).toString(),i={message_id:o,messageId:o,time:s,messageTime:s,rawData:{}},a=[];for(let u of r){if(u.type==="at"){a.push(`[at:${u.targetId}]`);continue}if(u.type==="text"){a.push(u.text);continue}if(u.type==="image"||u.type==="record"||u.type==="video"){let p=u.file.startsWith("http")?u.file:await this.getUrl(u.file,".png");a.push(`[${u.type}: ${logger.blue(p)} ]`);continue}a.push(JSON.stringify(u));}return e.scene==="group"?(a.unshift(logger.green("Send group message: ")),logger.info(a.join(""))):(a.unshift(logger.green("Send private message: ")),logger.info(a.join(""))),i}async getUrl(e,r){let n=X(),s=(++Ua).toString(),o=N.join(Ae,`${s}${r}`);return await A.promises.writeFile(o,await tt(e)),n.console.isLocal?`http://127.0.0.1:${n.port}/console/${s}${r}`:n.console.host?`${n.console.host}/console/${s}${r}?token=${n.console.token}`:`http://127.0.0.1:${n.port}/console/${s}${r}?token=${n.console.token}`}},Ya=new En;mt("other",Ya);});var Va,J,za,Qa,lo,Ue,kp,Gp,vn,kn,go,Xa,Mp,Za=c(()=>{Va=0,J=[],za=(t,e)=>{let r=++Va;return J.push({index:r,id:t,render:e}),logger.mark(`[render:${Va}] ${logger.green("\u6CE8\u518C\u6210\u529F")}: ${t}`),r},Qa=t=>{let e=J.find(r=>r.index===t);return e?(J.splice(J.findIndex(r=>r.index===t),1),logger.mark(`[render] ${logger.yellow("\u5378\u8F7D\u6210\u529F")}: ${e.id}`),true):(logger.error(`[render] \u5378\u8F7D\u5931\u8D25: \u4E0D\u5B58\u5728\u7D22\u5F15 ${t}`),false)},lo=t=>{if(J.length===0)throw new Error("[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u6E32\u67D3\u5668\u5217\u8868\u4E3A\u7A7A");if(!t)return J[Math.floor(Math.random()*J.length)];if(typeof t=="number"){let r=J.find(n=>n.index===t);if(!r)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return r}let e=J.find(r=>r.id===t);if(!e)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return e},Ue=async(t,e)=>await lo(e).render(Object.assign(t,{encoding:"base64"})),kp=()=>J.length,Gp=()=>J.map(e=>e),vn=t=>Ue({file:t,name:"render",encoding:"base64",pageGotoParams:{waitUntil:"networkidle2"}}),kn=(t,e)=>(!e&&e!==0&&(e=true),Ue({file:t,name:"render",encoding:"base64",multiPage:e,pageGotoParams:{waitUntil:"networkidle2"}})),go=class{app(e){return za(e.id,e.render)}unapp(e){return Qa(e)}App(e=""){return lo(e)}async render(e,r){return Ue(e,r)}async renderHtml(e){return vn(e)}async renderMultiHtml(e,r){return kn(e,r)}},Xa=new go,Mp=Xa;});var Gn,mo,Ap,Op,Pp,Tp,eu=c(()=>{L();It();Gn=new Map,mo=new Map,Ap=t=>{if(t.data){if(t.file.startsWith("http"))throw TypeError("\u4ED6\u55B5\u7684 \u4E0D\u4F1A\u771F\u7684\u6709\u7B28\u6BD4\u4F20\u4E2Ahttp\u6765\u5F53\u505A\u6A21\u677F\u5427...");let e=N.resolve(t.file),r=Op(e),n=Ip.render(r,t.data),s=Pp(t.file,n,t.name);return A.writeFileSync(s,n),delete t.data,delete t.name,t.file=`file://${s}`,t}return !t.file.startsWith("http")&&!t.file.startsWith("file")&&(t.file=`file://${t.file}`),delete t.data,delete t.name,t},Op=t=>{let e=Gn.get(t);if(e)return e;let r=A.readFileSync(t,"utf-8");return Tp(t,r),r},Pp=(t,e,r)=>{let n=N.extname(t),s=N.basename(t,n),o=N.join(At,r||"render"),i=N.join(o,`${s}-${Date.now()}${n}`);return ze(o),A.writeFileSync(i,e),i},Tp=async(t,e)=>{if(Gn.set(t,e),mo.has(t))return;let r=Cu.watch(t);mo.set(t,r),r.on("change",()=>{Gn.set(t,A.readFileSync(t,"utf-8")),logger.info(`[\u6587\u4EF6\u53D8\u52A8] html\u6A21\u677F\u53D1\u9001\u53D8\u52A8: ${t}`);}),r.on("unlink",()=>{Gn.delete(t),r.close(),mo.delete(t),r.removeAllListeners(),logger.info(`[\u6587\u4EF6\u5220\u9664] html\u6A21\u677F\u88AB\u5220\u9664: ${t}`);});};});var tu=c(()=>{});var fo=c(()=>{Za();eu();tu();});var ru={};R(ru,{AdapterBase:()=>Fe,AdapterConsole:()=>En,Renderer:()=>Mp,adapter:()=>Ya,callRender:()=>Ue,getRender:()=>lo,getRenderCount:()=>kp,getRenderList:()=>Gp,registerRender:()=>za,render:()=>Xa,renderHtml:()=>vn,renderMultiHtml:()=>kn,renderTpl:()=>Ap,unregisterRender:()=>Qa});var ho=c(()=>{jr();Ja();fo();});var wu=Date.now(),Io=false,$o=()=>Io||process.env.karin_dev||process.argv.some(t=>t.includes("debug")),Ao=t=>{let e=i=>U.hex("#0cafff")(i),r=i=>{e=i;},n=(...i)=>{process.stderr.write(`${e(t)} ${op.format(...i)} ${e(`+${Date.now()-wu}ms`)}
|
|
11
|
-
`);},s=()=>{},o=$o()?n:s;return Object.assign(o,{chalk:U,setColor:r,enable:i=>{Io=i,o=$o()?n:s;}})};var xu=Ao("core");global.debug=xu;v();L();A.existsSync(Dn)||A.mkdirSync(Dn);var rp=(t={})=>{if(t.config)return Ns.configure(t.config);let{level:e="info",daysToKeep:r=7,overall:n=true,fragments:s=false,maxLogSize:o=30}=t.log4jsCfg||{},i={appenders:{console:{type:"console",layout:{type:"pattern",pattern:`%[[Karin][%d{hh:mm:ss.SSS}][%4.4p]%] ${process.env.karin_dev==="dev"?"[%f{3}:%l] ":""}%m`}}},categories:{default:{appenders:["console"],level:e,enableCallStack:process.env.karin_dev==="dev"}},levels:{handler:{value:15e3,colour:"cyan"}}};return n&&(i.categories.default.appenders.unshift("overall"),i.appenders.overall={type:"file",filename:"logs/logger",pattern:"yyyy-MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:n||7,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),s&&(i.categories.default.appenders.unshift("fragments"),i.appenders.fragments={type:"file",filename:"logs/app.log",pattern:"MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:r||7,maxLogSize:(o||30)*1024*1024,numBackups:9999999,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),Ns.configure(i)},np=(t,e)=>{let r=t;return r.chalk=U,r.red=U.red,r.green=U.green,r.yellow=U.yellow,r.blue=U.blue,r.magenta=U.magenta,r.cyan=U.cyan,r.white=U.white,r.gray=U.gray,r.violet=U.hex("#868ECC"),r.fnc=U.hex("#FFFF00"),r.bot=(n,s,...o)=>{switch(n){case "trace":return r.trace(r.violet(`[Bot:${s}]`),...o);case "debug":return r.debug(r.violet(`[Bot:${s}]`),...o);case "mark":return r.mark(r.violet(`[Bot:${s}]`),...o);case "info":return r.info(r.violet(`[Bot:${s}]`),...o);case "warn":return r.warn(r.violet(`[Bot:${s}]`),...o);case "error":return r.error(r.violet(`[Bot:${s}]`),...o);case "fatal":return r.fatal(r.violet(`[Bot:${s}]`),...o);default:return r.info(r.violet(`[Bot:${s}]`),...o)}},r},ji=(t={})=>{rp(t);let e=np(Ns.getLogger("default"));return global.logger=e,e};debug("debug: init logger");var dm=ji({log4jsCfg:k().log4jsCfg});v();Rr();Fs();Os();await Ps(Ut());var Sp=async()=>{let[{LoaderPlugin:t},{listen:e}]=await Promise.all([Promise.resolve().then(()=>(Hi(),Li)),Promise.resolve().then(()=>(Js(),ra)),Promise.resolve().then(()=>(ho(),ru))]);await Promise.all([new t().init(),e(Ut(),Ts())]);};Sp();Xs();var yo={};R(yo,{accept:()=>Rp,button:()=>Cp,command:()=>Np,ctx:()=>Dp,handler:()=>jp,render:()=>Fp,sendAdmin:()=>Lp,sendMaster:()=>qp,task:()=>Bp});Ce();var Bp=(t,e,r,n={})=>{if(!t)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[name]");if(!e)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[cron]");if(!r||typeof r!="function")throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570\u6216\u7C7B\u578B\u9519\u8BEF[fnc]");return {name:t,cron:e,fnc:r,log:he(n.log,false),schedule:undefined,file:Z("task",n.name||"task"),pkg:ee()}};Ce();var Rp=(t,e,r={})=>{let n=r.dsbAdapter||r.notAdapter||[],s=Number(r.rank??r.priority);return {event:t,fnc:e,log:he(r.log,true),adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(n)?n:[],file:Z("accept",r.name||"accept"),pkg:ee(),priority:s??1e4}};Ce();var Cp=(t,e,r={})=>{let n=Number(r.rank??r.priority);return {fnc:e,reg:t instanceof RegExp?t:new RegExp(t),rank:isNaN(n)?1e4:n,file:Z("button",r.name||"button"),pkg:ee(),priority:n??1e4}};fo();var Fp=(t,e,r)=>t==="opt"?Ue(e,r):typeof t=="string"?e?kn(t,e):vn(t):Ue(t,e);Ce();var Np=(t,e,r={})=>{t=typeof t=="string"?new RegExp(t):t;let n=typeof e=="function"?e:async i=>{let a=typeof e=="number"?String(e):e;return await i.reply(a,{at:"at"in r&&r.at||false,reply:"reply"in r&&r.reply||false,recallMsg:"recallMsg"in r&&Number(r.recallMsg)||0}),!("stop"in r&&!r.stop)},s=r.dsbAdapter||r.notAdapter||[],o=Number(r.rank??r.priority);return {type:"fnc",event:r.event||"message",fnc:n,log:he(r.log,true),permission:r.perm||r.permission||"all",priority:isNaN(o)?1e4:o,reg:t,adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(s)?s:[],authFailMsg:r.authFailMsg||true,file:Z("command",r.name||"command"),pkg:ee()}};F();Hr();var Dp=async(t,e)=>{let r=(e==null?undefined:e.time)||120,n=(e==null?undefined:e.userId)||t.userId||t.user_id,s=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${n}`:`${t.contact.peer}:${n}`;return ht.set(s,t),new Promise((o,i)=>{let a=setTimeout(()=>{let u=ht.get(s);if((u==null?undefined:u.eventId)===t.eventId)return ht.delete(s),e!=null&&e.reply&&t.reply(e.replyMsg||"\u64CD\u4F5C\u8D85\u65F6\u5DF2\u53D6\u6D88"),m.removeAllListeners(`ctx:${s}`),i(new Error(`\u63A5\u6536\u4E0B\u6587\u4E8B\u4EF6\u8D85\u65F6\uFF0C\u5DF2\u53D6\u6D88\u4E0B\u6587\u76D1\u542C: ${s}`)),true},r*1e3);m.once(`ctx:${s}`,u=>{clearTimeout(a),o(u);});})};Ce();var jp=(t,e,r={})=>{if(!t)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[key]");if(!e)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[fnc]");return {key:t,fnc:e,priority:Number(r.rank??r.priority)||1e4,file:Z("handler",r.name||"handler"),pkg:ee()}};be();v();var qp=async(t,e,r,n={recallMsg:0,retryCount:1,mustMaster:false})=>{let s=(n==null?undefined:n.mustMaster)??false,o=Bs();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u4E3B\u4EBA")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u4E3B\u4EBA");return qr(t,{peer:e,scene:"friend"},r,n)},Lp=async(t,e,r,n={recallMsg:0,retryCount:1,mustAdmin:false})=>{let s=(n==null?undefined:n.mustAdmin)??false,o=Rs();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u7BA1\u7406\u5458")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u7BA1\u7406\u5458");return qr(t,{peer:e,scene:"friend"},r,n)};F();be();var bo=class extends EventEmitter{name="karin";contact(e,r,n,s){return e==="guild"||e==="direct"||e==="groupTemp"?{scene:e,peer:r,subPeer:n,name:s}:{scene:e,peer:r,subPeer:undefined,name:s}}contactGroup(e,r){return {scene:"group",peer:e,subPeer:undefined,name:r||""}}contactFriend(e,r){return {scene:"friend",peer:e,subPeer:undefined,name:r||""}}contactGuild(e,r,n,s){return {scene:"guild",peer:e,subPeer:r,name:n||"",subName:s||""}}contactGroupTemp(e,r,n){return {scene:"groupTemp",peer:e,subPeer:r,name:n||""}}friendSender(e,r,n="unknown",s,o,i){return {userId:String(e),nick:r,sex:n,age:s,uid:o,uin:i,name:r}}groupSender(e,r,n,s,o,i,a,u,p,g,d){return {userId:String(e),role:r||"unknown",nick:n||"",sex:s,age:o,card:i,area:a,level:u,title:p,uid:g,uin:d,name:n||""}}getBotByIndex(e){return Vs(e)}getBotCount(){return ia()}getBotAll(e){return e?oa():sa().map(r=>r)}},Kp=()=>{m.on("ws:connection",(t,e)=>{let r=`ws:connection:${e.url||"/"}`;if(debug(`on ws:connection host: ${e.headers.host} url: ${e.url}`),!tr.listenerCount(r)){t.close(),logger.warn(`[server][webSocket] \u8FDE\u63A5\u65AD\u5F00 \u672A\u627E\u5230\u7ED1\u5B9A\u7684\u8DEF\u7531: ${e.url||"/"}`);return}tr.emit(r,t,e);}),m.on("watch:file",(t,e,r)=>{tr.emit("file:change",t,e,r);});},tr=new bo;Kp();debug("debug: init karin");var nu=Object.assign(tr,yo),Rb=nu;V();var Nb=async(t,e)=>{let r=[];for(let n of l.button)if(n.reg.test(t))try{let o=!1,i=()=>{o=!0;},a=await n.fnc(i,e);if(a&&(Array.isArray(a)?r.push(...a):r.push(a)),!o)return r}catch(o){logger.error(`[Button][Error] ${n.pkg.name}:`),logger.error(o);}return r};ws();var su={};R(su,{Watch:()=>Ft,Watcher:()=>Nt,YamlEditor:()=>ne,absPath:()=>ur,applyComments:()=>Ct,base64:()=>gr,buffer:()=>tt,clearRequire:()=>Yo,clearRequireFile:()=>ge,comment:()=>Jn,copyConfig:()=>jo,copyConfigSync:()=>Do,copyFiles:()=>qn,copyFilesSync:()=>jn,createPluginDir:()=>cr,downFile:()=>ar,existToMkdir:()=>ir,existToMkdirSync:()=>ze,exists:()=>Sn,existsSync:()=>Po,file:()=>O,filesByExt:()=>rt,getFiles:()=>pr,getPluginInfo:()=>Bt,getRelPath:()=>fr,isDir:()=>or,isDirSync:()=>To,isFile:()=>Oo,isFileSync:()=>So,isPlugin:()=>wr,isStatic:()=>Qo,isSubPath:()=>yr,json:()=>Ko,key:()=>Mr,lock:()=>jt,lockMethod:()=>Qn,lockProp:()=>Dt,log:()=>Xn,logs:()=>Zn,mkdir:()=>Bn,mkdirSync:()=>$t,parseChangelog:()=>qt,pkgRoot:()=>br,range:()=>es,read:()=>st,readFile:()=>Ho,readJson:()=>Ln,readJsonSync:()=>Pt,requireFile:()=>K,requireFileSync:()=>j,rmSync:()=>Bo,save:()=>_r,sep:()=>pe,splitPath:()=>mr,stream:()=>Oe,urlToPath:()=>hr,watch:()=>Vn,watchAndMerge:()=>ti,write:()=>xr,writeJson:()=>Hn,writeJsonSync:()=>Tt,yaml:()=>Zo});Ir();Pe();Gr();Ir();var au={};R(au,{checkGitPluginUpdate:()=>Vp,checkPkgUpdate:()=>Up,errorToString:()=>Ku,exec:()=>x,ffmpeg:()=>ds,ffplay:()=>Qu,ffprobe:()=>ms,fileToUrl:()=>Qp,fileToUrlHandlerKey:()=>_o,formatTime:()=>hs,getCommit:()=>rr,getHash:()=>xo,getPid:()=>us,getPkgVersion:()=>nr,getRemotePkgVersion:()=>In,getRequestIp:()=>Vi,getTime:()=>ou,importModule:()=>Wp,isClass:()=>Ds,isDocker:()=>Vu,isIPv4Loop:()=>Ls,isIPv6Loop:()=>Ji,isLinux:()=>Yu,isLocalRequest:()=>Hs,isLoopback:()=>Yi,isMac:()=>Ju,isRoot:()=>zu,isWin:()=>Or,restart:()=>dp,restartDirect:()=>Ws,stringifyError:()=>os,updateAllGitPlugin:()=>zp,updateAllPkg:()=>Jp,updateGitPlugin:()=>iu,updatePkg:()=>Yp,uptime:()=>Xu});Ks();cs();le();ys();js();is();fs();var Wp=async(t,e=false)=>{try{return {status:!0,data:await import(`file://${t}${e?`?t=${Date.now()}`:""}`)}}catch(r){return {status:false,data:r}}};as();le();Pe();Pr();var wo=(t=false)=>K("package.json",{force:t}),Up=async t=>{let e=(global==null?undefined:global.logger)||console;try{let r=await nr(t),n=await In(t);return r===n?{status:"no",local:r}:{status:"yes",local:r,remote:n}}catch(r){return e.error(r),{status:"error",error:r}}},nr=async t=>{var a,u,p,g;let{status:e,stdout:r,error:n}=await x(`npm list ${t} --depth=0`);if(e)throw (a=n==null?undefined:n.stack)!=null&&a.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):n;let o=new RegExp(`${t}@(\\d+\\.\\d+\\.\\d+)`,"gm").exec(r.toString());if(o!=null&&o[1])return o[1];let i=await wo();return ((u=i==null?undefined:i.dependencies)==null?undefined:u[t])||((p=i==null?undefined:i.devDependencies)==null?undefined:p[t])||((g=i==null?undefined:i.peerDependencies)==null?undefined:g[t])},In=async(t,e="latest")=>{var i;let r=e==="latest"?`npm show ${t} version`:`npm show ${t} dist-tags.${e}`,{status:n,stdout:s,error:o}=await x(r);if(n)throw (i=o==null?undefined:o.stack)!=null&&i.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):o;return s.toString().trim()},Yp=async(t,e="latest")=>{let r=(global==null?undefined:global.logger)||console;try{let n=await nr(t),s=await In(t,e);if(n===s)return {status:"failed",data:`[${t}][\u65E0\u66F4\u65B0] ${n} => ${s}`};let o=`pnpm up ${t}@${s}`,{error:i}=await x(o);return i?{status:"failed",data:i}:await nr(t)!==s?{status:"failed",data:`[${t}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${t}@${s}`}:{status:"ok",data:`[${t}][\u66F4\u65B0\u6210\u529F] ${n} => ${s}`,local:n,remote:s}}catch(n){return r.error(n),{status:"failed",data:n}}},Jp=async()=>{let t=(global==null?undefined:global.logger)||console;try{let e=await oe("npm",!1);e.push("node-karin");let r={},n=[`
|
|
12
|
-
------- \u66F4\u65B0npm\u63D2\u4EF6 --------`],s=["pnpm up"],o=await
|
|
9
|
+
`));}restartWatch(){this.watcher&&(this.watcher.close(),this.watcher=null),this.startWatch();}async handleFileChange(e,r){let n=N.extname(e);if(!(Te()?[".ts",".js"]:[".js"]).includes(n))return;let o=N.resolve(e),i=this.findPkgByFile(o);if(!i)return;let a=N.relative(process.cwd(),e).replace(/\\/g,"/");if(logger.debug(`[hmr][${i.name}] \u6587\u4EF6${r}: ${a}`),r==="unlink"){this.unloadPlugin(o),logger.info(`[hmr][${i.name}] \u5DF2\u5378\u8F7D: ${N.basename(e)}`);return}r==="change"&&this.unloadPlugin(o);try{let u=await this.loader.importApp(i.name,o,!0);this.loader.cachePlugin(u,i,o),this.loader.sort();let p=r==="add"?"\u65B0\u589E\u63D2\u4EF6":"\u91CD\u8F7D\u5B8C\u6210";logger.info(`[hmr][${i.name}] ${p}: ${N.basename(e)}`);}catch(u){logger.error(`[hmr][${i.name}] \u52A0\u8F7D\u5931\u8D25:`,u);}}findPkgByFile(e){return Object.values(l.index).find(r=>r.apps.includes(e)||r.allApps.some(n=>e.startsWith(n)))}unloadPlugin(e){l.accept=l.accept.filter(r=>r.file.absPath!==e),l.command=l.command.filter(r=>r.file.absPath!==e),l.task=l.task.filter(r=>(r.file.absPath===e&&r.schedule&&r.schedule.cancel(),r.file.absPath!==e)),l.button=l.button.filter(r=>r.file.absPath!==e),Object.keys(l.handler).forEach(r=>{l.handler[r]=l.handler[r].filter(n=>n.file.absPath!==e);});}};});var qi={};R(qi,{LoaderPlugin:()=>qs});var ap,qs,Li=c(()=>{ss();Pr();V();js();Ce();ot();et();F();ji();ap=0,qs=class{watcher;constructor(){this.watcher=new Fr(this);}async init(){debug("debug: init loader"),logger.info(logger.green("-----------")),logger.info("\u52A0\u8F7D\u63D2\u4EF6\u4E2D...");let e=[],r=[],n=await oe("all",true);debug("debug: getPlugins",n),await Promise.all(n.map(async o=>{var a,u,p,g,d,w;o.id=++ap,l.index[o.id]=o;let i=[];if(o.type==="app"?i.push("config","data","resources"):Array.isArray((a=o.pkgData.karin)==null?undefined:a.files)&&i.push(...o.pkgData.karin.files),await cr(o.name,i),debug("debug: createPluginDir",o.name,i),o.apps.forEach(y=>{let $=this.importApp(o.name,y).then(q=>this.cachePlugin(q,o,y));e.push($);}),o.type!=="app"){if(Te()&&((p=(u=o==null?undefined:o.pkgData)==null?undefined:u.karin)!=null&&p.main)){let y=N.join(o.dir,o.pkgData.karin.main);r.push(this.loaderMain(o.name,y));}if((g=o==null?undefined:o.pkgData)!=null&&g.main){let y=N.join(o.dir,o.pkgData.main);r.push(this.loaderMain(o.name,y));}}if(o.type!=="app"&&((w=(d=o==null?undefined:o.pkgData)==null?undefined:d.karin)!=null&&w.static)){let y=Array.isArray(o.pkgData.karin.static)?o.pkgData.karin.static:[o.pkgData.karin.static];l.static.push(...y.map($=>N.resolve(o.dir,$)));}})),await Promise.all([...e,...r]),debug("debug: cache",l),this.sort(),Lt.printMissing(),logger.info("\u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210");let s=o=>logger.chalk.magentaBright(o);logger.info(`${s("plugin")}: ${Object.keys(l.index).length}`),Object.keys(l.count).forEach(o=>{if(o==="handler"){let{key:i,fnc:a}=l.count.handler;logger.info(`${s(o+".key")} ${i}`),logger.info(`${s(o+".fnc")} ${a}`);return}logger.info(`${s(o)}: ${l.count[o]}`);}),logger.info(logger.green("-----------")),logger.mark(`karin \u542F\u52A8\u5B8C\u6210: \u8017\u65F6 ${logger.green(process.uptime().toFixed(2))} \u79D2...`),debug("debug: \u63D2\u4EF6\u52A0\u8F7D\u5B8C\u6210"),m.emit("online",{}),this.watcher.init();}createFile(e,r,n,s){return {absPath:e,get dirname(){return N.dirname(this.absPath)},get basename(){return N.basename(this.absPath)},type:r,method:n,name:s||r}}async importApp(e,r,n=false){try{return await import(`file://${r}${n?`?t=${Date.now()}`:""}`)}catch(s){return Lt.loaderPlugin(e,r,s),{}}}async loaderMain(e,r,n=false){try{await import(`file://${r}${n?`?t=${Date.now()}`:""}`);}catch(s){Lt.loaderPlugin(e,r,s);}}isType(e,r){var n;return ((n=e.file)==null?undefined:n.type)===r}cachePlugin(e,r,n){for(let s of Object.keys(e)){if(s==="default")continue;if(typeof e[s]=="function"){if(!Ds(e[s]))return;this.cacheClassPlugin(e[s],r,n,s);return}let o=e[s];for(let i of Array.isArray(o)?o:[o])if(typeof i=="object"&&!(!(i!=null&&i.pkg)||!i.file)){if(i.pkg=r,i.file=this.createFile(n,i.file.type,s,i.file.name),this.isType(i,"accept")){l.count.accept++,l.accept.push(i);continue}if(this.isType(i,"command")){l.count.command++,l.command.push(i);continue}if(this.isType(i,"button")){l.count.button++,l.button.push(i);continue}if(this.isType(i,"handler")){l.handler[i.key]||(l.count.handler.key++,l.handler[i.key]=[]),l.count.handler.fnc++,l.handler[i.key].push(i);continue}if(this.isType(i,"task")){i.schedule=ip.scheduleJob(i.cron,async()=>{try{i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u5F00\u59CB\u6267\u884C`);let a=i.fnc();op.types.isPromise(a)&&await a,i.log(`[\u5B9A\u65F6\u4EFB\u52A1][${i.name}][${i.cron}]: \u6267\u884C\u5B8C\u6210`);}catch(a){Lt.taskStart(i.name,i.name,a);}}),l.count.task++;continue}}}}cacheClassPlugin(e,r,n,s){var i;let o=new e;if(!o.name){logger.error(`[load][${n}] plugin.name \u4E0D\u80FD\u4E3A\u7A7A`);return}if(!o.rule||!Array.isArray(o.rule)||((i=o.rule)==null?undefined:i.length)===0){logger.error(`[load][${n}] ${o.name} plugin.rule \u4E0D\u80FD\u4E3A\u7A7A`);return}o.rule.forEach((a,u)=>{a.fnc in o&&(typeof a.reg!="string"&&!(a.reg instanceof RegExp)||l.command.push({pkg:r,type:"class",log:he(a.log,true),adapter:a.adapter||[],dsbAdapter:a.dsbAdapter||[],Cls:e,reg:a.reg instanceof RegExp?a.reg:new RegExp(a.reg),permission:a.permission||"all",event:a.event||o.event||"message",priority:a.priority||1e4,file:this.createFile(n,"command",s,o.name),authFailMsg:a.authFailMsg}));});}sort(){l.accept=Rt.sortBy(l.accept,["rank"],["asc"]),l.command=Rt.sortBy(l.command,["rank"],["asc"]),l.task=Rt.sortBy(l.task,["rank"],["asc"]),l.button=Rt.sortBy(l.button,["rank"],["asc"]);for(let e of Object.keys(l.handler))l.handler[e]=Rt.sortBy(l.handler[e],["rank"],["asc"]);}};});var D,Nr,pp,ye=c(()=>{D=up(),Nr=createServer(D),pp=(t,e)=>{Nr.listen(t,e,()=>{logger.info(`[server] express \u5DF2\u542F\u52A8 \u6B63\u5728\u76D1\u542C: http://${e}:${t}`);});};});var lt,Dr=c(()=>{v();lt={getAuth:t=>{var r,n;let e=((r=t==null?undefined:t.headers)==null?undefined:r.authorization)||((n=t==null?undefined:t.query)==null?undefined:n.token);return e?e===Cr():false},postAuth:t=>{var r;let e=(r=t==null?undefined:t.headers)==null?undefined:r.authorization;return e?e===Cr():false}};});var Hi=c(()=>{ye();Dr();D.get("/exit",async(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}logger.mark("\u6536\u5230\u9000\u51FA\u8BF7\u6C42\uFF0C\u6B63\u5728\u9000\u51FA..."),e.json({message:"\u9000\u51FA\u6210\u529F"});let{processExit:r}=await Promise.resolve().then(()=>(Rr(),Si));await r(0);});});var Ki=c(()=>{ye();Dr();D.get("/ping",(t,e)=>{e.send({ping:"pong",name:"karin"});});D.get("/status",(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}let r={name:"karin",pid:process.pid,pm2_id:process.env.pm_id||"",uptime:process.uptime(),version:process.env.karin_version,karin_dev:process.env.karin_dev,karin_lang:process.env.karin_lang,karin_runtime:process.env.karin_runtime};e.status(200).json(r);});});var Wi=c(()=>{ye();v();D.get("/",(t,e)=>{e.send({code:200,msg:Rt.sample(Ss())});});});var Ui,Ls,Yi,Ji,Hs,Ks=c(()=>{Ui=async t=>{try{return (await lookup(t,{all:!0})).some(r=>Ls(r.address)||Yi(r.address))}catch{return false}},Ls=t=>{let e=t.split(".").map(Number),r=e.length===4&&e[0]===127,n=e.every(s=>Number.isInteger(s)&&s>=0&&s<=255);return r&&n},Yi=t=>{if(t==="::1")return true;if(t.startsWith("::ffff:")){let e=t.substring(7);return Ls(e)}return false},Ji=t=>{let e=[],r=t.headers["x-forwarded-for"];Array.isArray(r)?e.push(...r):typeof r=="string"&&e.push(r);let n=t.socket.remoteAddress,s=t.ip,o=t.hostname;return s&&e.push(s),o&&e.push(o),n&&e.push(n),e.filter(Boolean)},Hs=async t=>{let e=Ji(t);for(let r of e)if(!await Ui(r))return false;return true};});var Qi=c(()=>{ye();v();Ks();L();D.get("/console/*",async(t,e)=>{let r=X(),n=t.path.split("/").pop();if(!n){e.status(400).json({error:"\u65E0\u6548\u7684\u8BF7\u6C42",message:"\u6587\u4EF6\u540D\u4E0D\u80FD\u4E3A\u7A7A"});return}if(n=decodeURIComponent(n),n.includes("..")){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u975E\u6CD5\u8BF7\u6C42"});return}let s=await Hs(t);if(r.console.isLocal){if(!s){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684\u8BF7\u6C42"});return}}else {if(!r.console.token){e.status(500).json({error:"\u914D\u7F6E\u9519\u8BEF",message:"\u7F3A\u5C11 token \u914D\u7F6E"});return}let u=t.query.token;if(!u||u!==r.console.token){e.status(403).json({error:"\u7981\u6B62\u8BBF\u95EE",message:"\u65E0\u6548\u7684 token"});return}}let o=N.join(Ae,n);if(!A.existsSync(o)){e.status(404).json({error:"\u6587\u4EF6\u4E0D\u5B58\u5728",message:"\u6587\u4EF6\u4E0D\u5B58\u5728"});return}let i=A.readFileSync(o);if(!i){e.status(500).json({error:"\u5185\u90E8\u9519\u8BEF",message:"\u8BFB\u53D6\u5931\u8D25"});return}switch(N.extname(n).toLowerCase()){case ".png":e.setHeader("Content-Type","image/png");break;case ".mp3":e.setHeader("Content-Type","audio/mpeg");break;case ".mp4":e.setHeader("Content-Type","video/mp4");break;default:e.setHeader("Content-Type","application/octet-stream");}e.send(i);});});var dp,Ws,Us=c(()=>{le();dp=async(t,e,r,n=true)=>{if(n&&process.send)return process.send("restart"),{status:"success",data:"\u5DF2\u53D1\u9001\u91CD\u542F\u4FE1\u53F7"};let{config:i}=await Promise.resolve().then(()=>(v(),Q));if(i().pm2Restart||process.exit(),process.env.pm_id){let{error:u}=await x("npx karin rs");if(u)return {status:"failed",data:u};process.exit();}let{error:a}=await x("npx karin pm2");if(a)return {status:"failed",data:a};process.exit();},Ws=async()=>{if(logger.mark("\u6536\u5230\u91CD\u542F\u8BF7\u6C42\uFF0C\u6B63\u5728\u91CD\u542F..."),process.env.karin_runtime==="pm2"){await x(`pm2 restart ${process.env.pm_id}`);return}if(process.env.karin_runtime==="tsx")throw new Error("tsx \u4E0D\u652F\u6301\u91CD\u542F");process!=null&&process.send&&(process.send("restart"),logger.mark("\u53D1\u9001\u91CD\u542F\u4FE1\u53F7\u6210\u529F"));};});var Xi=c(()=>{ye();Dr();Us();D.get("/restart",async(t,e)=>{if(!lt.getAuth(t)){e.status(401).json({message:"\u65E0\u6548\u7684token"});return}e.status(200).end(),Ws();});});var Zi=c(()=>{Hi();Ki();Wi();Qi();Xi();});var Ys,ea=c(()=>{ye();F();Ys=new WebSocketServer({server:Nr});Ys.on("error",t=>{throw t.code==="EADDRINUSE"?logger.fatal(`[server] \u7AEF\u53E3 ${process.env.karin_port} \u5DF2\u88AB\u5360\u7528\uFF0C\u65E0\u6CD5\u542F\u52A8 http WebSocket \u670D\u52A1`):logger.fatal(`[server] http\u670D\u52A1\u542F\u52A8\u5931\u8D25: ${t.message}`),t});Ys.on("connection",(t,e)=>{if(debug(`wss:connection host: ${e.headers.host} url: ${e.url}`),e.url==="/"||e.url==="/onebot/v11/ws/"||e.url==="/onebot/v11/ws/index"){m.emit("ws:connection:onebot",t,e);return}m.emit("ws:connection",t,e);});});var ta={};R(ta,{app:()=>D,listen:()=>pp,server:()=>Nr,wss:()=>Ys});var Js=c(()=>{Zi();ea();ye();});var Fe,jr=c(()=>{Fe=class{account;adapter;super;raw;constructor(){this.account={uin:"",uid:"",selfId:"",subId:{},name:"",avatar:""},this.adapter={index:-1,name:"",version:"",platform:"qq",standard:"other",protocol:"console",communication:"other",address:"",secret:null,connectTime:-1};}get selfId(){return this.account.selfId}get selfName(){return this.account.name}selfSubId(e){return this.account.subId[e]}logger(e,...r){logger.bot(e,this.account.selfId,...r);}sendMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLongMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendForwardMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}recallMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAvatarUrl(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupAvatarUrl(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getMsg(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHistoryMsg(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getForwardMsg(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createResId(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGgroupHighlights(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}sendLike(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}groupKickMember(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMute(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAllMute(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupAdmin(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberCard(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupName(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupQuit(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupMemberTitle(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getStrangerInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getFriendList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupInfo(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberInfo(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMemberList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupHonor(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setFriendApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupApplyResult(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setInvitedJoinGroupResult(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setMsgReaction(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadFile(e,r,n,s){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}downloadFile(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}createGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}renameGroupFolder(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFolder(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}uploadGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}delGroupFile(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileSystemInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupFileList(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}setGroupRemark(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getNotJoinedGroupInfo(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getAtAllCount(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getGroupMuteList(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}pokeUser(e,r){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCookies(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCredentials(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getCSRFToken(e){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}getHttpCookies(e,r,n){throw new Error(`[adapter][${this.adapter.protocol}] \u6B64\u63A5\u53E3\u672A\u5B9E\u73B0`)}};});var ra=c(()=>{logger.mark("Karin \u542F\u52A8\u4E2D...");logger.mark(`\u5F53\u524D\u7248\u672C: ${process.env.karin_version}`);logger.mark("https://github.com/KarinJS/Karin");});var Ne=c(()=>{Es();_s();});var fp,te,Vs,na,sa,If,oa,dt,mt,qr,be=c(()=>{Ne();pt();Se();pt();$r();fp=0,te=[],Vs=(t,e=false)=>{var r,n,s;try{return typeof t=="number"?((r=te.find(o=>o.index===t))==null?void 0:r.bot)||null:e?((n=te.find(o=>o.bot.adapter.protocol===t))==null?void 0:n.bot)||null:((s=te.find(o=>o.bot.selfId===t))==null?void 0:s.bot)||null}catch{return null}},na=()=>te.map(t=>t.bot),sa=()=>te,If=()=>te.map(t=>t.bot.selfId),oa=()=>te.length,dt=(t,e,r)=>{let n=s=>{let o=te.findIndex(s);if(o!==-1){let[i]=te.splice(o,1);return logger.bot("info",i.bot.selfId,`${logger.red("[service][\u5378\u8F7DBot]")} ${i.bot.adapter.name}`),true}return logger.warn(`[service][\u5378\u8F7DBot] \u672A\u627E\u5230\u6307\u5B9ABot: ${JSON.stringify({type:t,idOrIndex:e,address:r})}`),false};return t==="index"?n(s=>s.index===e):t==="selfId"?n(({bot:s})=>s.selfId===e):t==="address"?n(({bot:s})=>s.selfId===e&&s.adapter.address===r):(logger.warn(`[service][\u5378\u8F7DBot] \u672A\u77E5\u7684\u5378\u8F7D\u65B9\u5F0F: ${t}`),false)},mt=(t,e)=>{let r=++fp;te.push({index:r,bot:e});let n=o=>logger.green(`[\u6CE8\u518CBot][${o}]`),s=e.sendForwardMsg;return e.sendForwardMsg=async(o,i,a)=>s.call(e,o,i,a),setTimeout(async()=>{let{level:o}=await Promise.resolve().then(()=>(Br(),Is)),i=`karin:restart:${e.selfId}`,a=await o.has(i);if(a)try{let{selfId:u,contact:p,messageId:g,time:d}=a,w=((Date.now()-d)/1e3).toFixed(2);if(Number(w)>120)return !1;let y=[_.reply(g),_.text(`
|
|
10
|
+
\u91CD\u542F\u6210\u529F\uFF1A${w}\u79D2`)];await qr(u,p,y);}finally{await o.del(i);}},10),m.once("online",()=>{t==="webSocketClient"?logger.bot("info",e.selfId,`${n("\u6B63\u5411webSocket")} ${e.account.name}: ${e.adapter.address}`):t==="other"?(e.adapter.address="internal://127.0.0.1",logger.bot("info",e.selfId,`${n("internal")} ${e.account.name}`)):t==="http"?logger.bot("info",e.selfId,`${n("HTTP")} ${e.account.name}: ${e.adapter.address}`):t==="webSocketServer"?logger.bot("info",e.selfId,`${n("\u53CD\u5411WebSocket")} ${e.account.name}: ${e.adapter.address}`):t==="grpc"&&logger.bot("info",e.selfId,`${n("gRPC")} ${e.account.name}: ${e.adapter.address}`);}),r},qr=async(t,e,r,n={recallMsg:0,retryCount:1,retry_count:1})=>{let s={},o=Be(r),i=Vs(t);if(!i)throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u672A\u627E\u5230\u5BF9\u5E94Bot\u5B9E\u4F8B");let{recallMsg:a}=n,u=n.retryCount??n.retry_count??1,{raw:p}=ie(o);e.scene==="group"?logger.bot("info",t,`${logger.green("Send Proactive Group")} ${e.peer}: ${p}`):logger.bot("info",t,`${logger.green("Send Proactive private")} ${e.peer}: ${p}`);try{m.emit(rs,e),s=await i.sendMsg(e,o,u),logger.bot("debug",t,`\u4E3B\u52A8\u6D88\u606F\u7ED3\u679C:${JSON.stringify(s,null,2)}`);}catch(g){logger.bot("error",t,`\u4E3B\u52A8\u6D88\u606F\u53D1\u9001\u5931\u8D25:${p}`),logger.error(g);}return s.message_id=s.messageId,a&&a>0&&(s!=null&&s.messageId)&&setTimeout(()=>i.recallMsg(e,s.messageId),a*1e3),s};});var ia,yp,zs,Qs=c(()=>{V();ia=async(t,e)=>{let r;for(let n of l.handler[t]||[])try{let s=!0,o=()=>{s=!1;},i=n.fnc(e,o);if(r=op.types.isPromise(i)?await i:i,s)return logger.mark(`[Handler][Done]: [${n.pkg.name}][${n.file.method}][${t}]`),r}catch(s){logger.error(`[Handler][Error]: [${n.pkg.name}][${n.file.method}][${t}]`),logger.error(s);}return r},yp=t=>!!l.handler[t],zs=Object.assign(ia,{call:ia,has:yp});});var Xs=c(()=>{ra();Br();be();Qs();});var ft,Zs,eo,to,Lr,we,De=c(()=>{ft={},Zs={},eo={},to=(t,e)=>ft[e]?false:(t.cd>0&&(ft[e]=setTimeout(()=>{delete ft[e];},t.cd*1e3)),true),Lr=(t,e,r)=>Zs[e]||eo[r]?false:(t.cd>0&&(Zs[e]=setTimeout(()=>{delete Zs[e];},t.cd*1e3)),t.userCD>0&&(eo[r]=setTimeout(()=>{delete eo[r];},t.userCD*1e3)),true),we=(t,e,r)=>["frientPoke","receiveLike","groupPoke","groupMessageReaction"].includes(t.subEvent)?ft[r]?false:(e.cd>0&&(ft[r]=setTimeout(()=>{delete ft[r];},e.cd*1e3)),true):true;});var ht,je,Hr=c(()=>{F();ht=new Map,je=t=>{let e=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${t.userId}`:`${t.contact.peer}:${t.userId}`;return ht.has(e)?(m.emit(`ctx:${e}`,t),ht.delete(e),true):false};});var b,qe,S,Le,B,yt,bt,wt,He,xe,ro,aa,_e=c(()=>{$r();kr();F();pt();b=(t,e)=>logger.debug(`[\u6D88\u606F\u8FC7\u6EE4][${t}] ${e}`),qe=t=>{let{msg:e,raw:r}=ie(t.elements);t.msg=e,t.rawMessage=r;},S=(t,e)=>{e.master.includes(`${t.selfId}@${t.userId}`)||e.master.includes(t.userId)?(t.isMaster=true,t.isAdmin=true):e.admin.includes(`${t.selfId}@${t.userId}`)||e.admin.includes(t.userId)?(t.isAdmin=true,t.isMaster=false):(t.isAdmin=false,t.isMaster=false),jt.prop(t,"isMaster"),jt.prop(t,"isAdmin");},Le=(t,e)=>{let r=new RegExp(`^(${e.join("|")})`),n=t.msg.match(r);if(!n){t.alias="";return}t.msg=t.msg.replace(r,"").trim(),t.alias=n[1]||"";},B=t=>{m.emit(ts,t.contact);},yt=(t,e)=>!(t.adapter.length&&!t.adapter.includes(e)||t.dsbAdapter.length&&t.dsbAdapter.includes(e)),bt=(t,e)=>{if(!e.enable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.enable.includes(n))return true;return false},wt=(t,e)=>{if(!e.disable.length)return true;let r=[t.pkg.name,`${t.pkg.name}:${t.file.basename}`,`${t.pkg.name}:${t.file.method}`];for(let n of r)if(e.disable.includes(n))return false;return true},He=(t,e,r,n)=>{var i,a;if(!n)return b(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if((i=e.enable.users)!=null&&i.length&&!e.enable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.users)!=null&&a.length&&e.disable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.event!=="message")return true;let s={0:()=>true,2:()=>!t.isAdmin&&!t.isMaster?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},xe=(t,e,r,n)=>{var i,a,u,p,g,d,w,y,$,q;if(!n)return b(t.userId,`\u5F53\u524D\u5904\u4E8ECD\u4E2D: ${t.eventId}`),false;if(e.enable.users.length&&!e.enable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if(e.disable.users.length&&e.disable.users.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(t.isGroup){if((i=e.enable.groups)!=null&&i.length&&!e.enable.groups.includes(t.groupId))return b(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((a=e.disable.groups)!=null&&a.length&&e.disable.groups.includes(t.groupId))return b(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((u=r.memberEnable)!=null&&u.length&&!r.memberEnable.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u7FA4\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((p=r.memberDisable)!=null&&p.length&&r.memberDisable.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u7FA4\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.isGuild){if((g=e.enable.guilds)!=null&&g.length&&!e.enable.guilds.includes(t.guildId))return b(t.guildId,`\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((d=e.disable.guilds)!=null&&d.length&&e.disable.guilds.includes(t.guildId))return b(t.guildId,`\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if((w=e.enable.channels)!=null&&w.length&&!e.enable.channels.includes(t.channelId))return b(t.channelId,`\u5B50\u9891\u9053\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false;if((y=e.disable.channels)!=null&&y.length&&e.disable.channels.includes(t.channelId))return b(t.channelId,`\u5B50\u9891\u9053\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false;if(($=r.memberEnable)!=null&&$.length&&!r.memberEnable.includes(t.userId))return b(t.userId,`\u7528\u6237\u672A\u5904\u4E8E\u9891\u9053\u6210\u5458\u767D\u540D\u5355: ${t.eventId}`),false;if((q=r.memberDisable)!=null&&q.length&&r.memberDisable.includes(t.userId))return b(t.userId,`\u7528\u6237\u5904\u4E8E\u9891\u9053\u6210\u5458\u9ED1\u540D\u5355: ${t.eventId}`),false}if(t.event!=="message")return true;let s={0:()=>true,1:()=>t.atBot?true:(b(t.userId,`\u5F53\u524D\u54CD\u5E94\u6A21\u5F0F\u4EC5\u5141\u8BB8@\u673A\u5668\u4EBA\u4F7F\u7528: ${t.messageId}`),false),2:()=>!t.isAdmin&&!t.isMaster?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u7BA1\u7406\u5458\u4F7F\u7528: ${t.messageId}`),false):true,3:()=>t.alias?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false),4:()=>!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8Bot\u522B\u540D\u6216@\u673A\u5668\u4EBA\u89E6\u53D1\u4F7F\u7528: ${t.messageId}`),false):true,5:()=>!t.isAdmin&&!t.isMaster&&!t.alias&&!t.atBot?(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8@\u6216\u522B\u540D\u89E6\u53D1(\u7BA1\u7406\u5458\u4F8B\u5916): ${t.messageId}`),false):true,6:()=>t.isMaster?true:(b(t.userId,`\u5F53\u524D\u4EC5\u5141\u8BB8\u4E3B\u4EBA\u4F7F\u7528: ${t.messageId}`),false),default:()=>true};return (s[r.mode]||s.default)()},ro=(t,e)=>{var r,n,s,o;return (n=(r=e.enable)==null?undefined:r.groupLog)!=null&&n.length&&!e.enable.groupLog.includes(t.groupId)?(b(t.groupId,`\u7FA4\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(o=(s=e.disable)==null?undefined:s.groupLog)!=null&&o.length&&e.disable.groupLog.includes(t.groupId)?(b(t.groupId,`\u7FA4\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):true},aa=(t,e)=>{var r,n,s,o,i,a,u,p;return (n=(r=e.enable)==null?undefined:r.guildLog)!=null&&n.length&&!e.enable.guildLog.includes(t.guildId)?(b(t.guildId,`\u9891\u9053\u65E5\u5FD7\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(o=(s=e.disable)==null?undefined:s.guildLog)!=null&&o.length&&e.disable.guildLog.includes(t.guildId)?(b(t.guildId,`\u9891\u9053\u65E5\u5FD7\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):(a=(i=e.enable)==null?undefined:i.channelLog)!=null&&a.length&&!e.enable.channelLog.includes(t.channelId)?(b(t.channelId,`\u5B50\u9891\u9053\u65E5\u5FD7\u672A\u5904\u4E8E\u767D\u540D\u5355: ${t.eventId}`),false):(p=(u=e.disable)==null?undefined:u.channelLog)!=null&&p.length&&e.disable.channelLog.includes(t.channelId)?(b(t.channelId,`\u5B50\u9891\u9053\u65E5\u5FD7\u5904\u4E8E\u9ED1\u540D\u5355: ${t.eventId}`),false):true};});var xt,no=c(()=>{xt=class{static master="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u4E3B\u4EBA\u624D\u80FD\u64CD\u4F5C";static admin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static owner="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u4E3B\u624D\u80FD\u64CD\u4F5C";static groupAdmin="\u6682\u65E0\u6743\u9650\uFF0C\u53EA\u6709\u7FA4\u7BA1\u7406\u5458\u624D\u80FD\u64CD\u4F5C";static handleNoPermission(e,r,n){return r===false?(e.bot.logger("debug",`${n}: ${e.messageId}`),false):(e.reply(typeof r=="string"?r:n),false)}static private(e,r){return !r.permission||r.permission==="all"?true:r.permission==="master"?e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master):r.permission==="admin"?e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin):true}static groups(e,r){var n,s,o,i,a,u;if(!r.permission||r.permission==="all")return true;if(r.permission==="master")return e.isMaster?true:this.handleNoPermission(e,r.authFailMsg,this.master);if(r.permission==="admin")return e.isMaster||e.isAdmin?true:this.handleNoPermission(e,r.authFailMsg,this.admin);if(e.isGroup){if(r.permission==="group.owner")return e.isMaster||e.isAdmin||((n=e.sender)==null?undefined:n.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="group.admin")return e.isMaster||e.isAdmin||((s=e.sender)==null?undefined:s.role)==="owner"||((o=e.sender)==null?undefined:o.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}else if(e.isGuild){if(r.permission==="guild.owner")return e.isMaster||e.isAdmin||((i=e.sender)==null?undefined:i.role)==="owner"?true:this.handleNoPermission(e,r.authFailMsg,this.owner);if(r.permission==="guild.admin")return e.isMaster||e.isAdmin||((a=e.sender)==null?undefined:a.role)==="owner"||((u=e.sender)==null?undefined:u.role)==="admin"?true:this.handleNoPermission(e,r.authFailMsg,this.groupAdmin)}return true}};});var ca,pa,ga,so,oo,bp,la=c(()=>{De();V();Hr();F();v();_e();no();ca=async t=>{let e=k(),r=me(t.groupId,t.selfId),n=ro(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"group","\u7FA4\u6D88\u606F",n?"info":"debug"),je(t))return t;let o=Lr(r,t.groupId,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.group"||!["all","master","admin","group.owner","group.admin"].includes(a.permission)));},pa=async t=>{let e=k(),r=me(t.groupId,t.selfId),n=ro(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"groupTemp","\u7FA4\u4E34\u65F6\u6D88\u606F"),je(t))return t;let o=Lr(r,t.groupId,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.groupTemp"||!["all","master","admin"].includes(a.permission)));},ga=async t=>{let e=k(),r=Cs(t.guildId,t.channelId,t.selfId),n=aa(t,e);if(qe(t),S(t,e),Le(t,r.alias),B(t),so(t,"guild","\u9891\u9053\u6D88\u606F"),je(t))return t;let o=Lr(r,`${t.guildId}:${t.channelId}`,t.userId);xe(t,e,r,o)&&oo(t,r,n,a=>!(a.event!=="message"&&a.event!=="message.guild"||!["all","master","admin","guild.owner","guild.admin"].includes(a.permission)));},so=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},oo=async(t,e,r,n)=>{for(let s of l.command){if(!n(s))continue;if(!await bp(t,s,e,r))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},bp=async(t,e,r,n)=>{let s=e.reg;if(s&&!s.test(t.msg)||!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let o=logger.fnc(t.logFnc);n&&e.log(t.selfId,`${o}${t.logText} ${Rt.truncate(t.msg,{length:100})}`);let i=Date.now();try{if(!xt.groups(t,e))return !1;let a=!1;if(e.type==="fnc"){let u=await e.fnc(t,()=>{a=!0;});a===!1&&u===!1&&(a=!0);}else {let u=new e.Cls;if(typeof(u==null?void 0:u[e.file.method])!="function")return !0;u.e=t,u.next=()=>{a=!0;};let p=await u[e.file.method](u.e);a===!1&&p===!1&&(a=!0);}return a===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(a){return m.emit("error",new Error(t.logFnc,{cause:a})),false}finally{let a=logger.green(Date.now()-i+"ms"),u=Rt.truncate(t.msg,{length:100});n&&e.log(t.selfId,`${o} ${u} \u5904\u7406\u5B8C\u6210 ${a}`);}};});var ma,fa,ha,ya,wp,ba=c(()=>{De();V();F();Hr();v();_e();no();ma=async t=>{let e=k(),r=de(t.userId,t.selfId);if(qe(t),S(t,e),Le(t,r.alias),B(t),ha(t,"friend","\u597D\u53CB\u6D88\u606F"),je(t))return t;He(t,e,r,to(r,t.userId))&&ya(t,r,o=>!(o.event!=="message"&&o.event!=="message.friend"||!["all","master","admin"].includes(o.permission)));},fa=async t=>{let e=k(),r=de(t.userId,t.selfId);if(qe(t),S(t,e),Le(t,r.alias),B(t),ha(t,"direct","\u9891\u9053\u79C1\u4FE1"),je(t))return t;let s=to(r,t.userId);He(t,e,r,s)&&ya(t,r,i=>!(i.event!=="message"&&i.event!=="message.direct"||!["all","master","admin"].includes(i.permission)));},ha=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.rawMessage}`);},ya=async(t,e,r)=>{for(let n of l.command){if(!r(n))continue;if(!await wp(t,n,e))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.messageId}`);},wp=async(t,e,r)=>{let n=e.reg;if(n&&!n.test(t.msg)||!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let s=logger.fnc(t.logFnc);e.log(t.selfId,`${s}${t.logText} ${Rt.truncate(t.msg,{length:100})}`);let o=Date.now();try{if(!xt.private(t,e))return !1;let i=!1;if(e.type==="fnc"){let a=await e.fnc(t,()=>{i=!0;});i===!1&&a===!1&&(i=!0);}else {let a=new e.Cls;if(typeof(a==null?void 0:a[e.file.method])!="function")return !0;a.e=t,a.next=()=>{i=!0;};let u=await a[e.file.method](a.e);i===!1&&u===!1&&(i=!0);}return i===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(i){return m.emit("error",new Error(t.logFnc,{cause:i})),false}finally{let i=logger.green(Date.now()-o+"ms"),a=Rt.truncate(t.msg,{length:100});e.log(t.selfId,`${s} ${a} \u5904\u7406\u5B8C\u6210 ${i}`);}};});var wa=c(()=>{la();ba();});var Ee,ve,ke,xp,Vt=c(()=>{V();F();_e();Ee=t=>{switch(t.subEvent){case "friendPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "receiveLike":t.tips=`\u6536\u5230\u70B9\u8D5E: ${t.content.count}`;break;case "friendRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "friendFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "friendIncrease":t.tips=`\u65B0\u589E\u597D\u53CB: ${t.content.targetId}`;break;case "friendDecrease":t.tips=`\u597D\u53CB\u51CF\u5C11: ${t.content.targetId}`;break;case "groupPoke":t.tips=`\u6233\u4E00\u6233: ${t.content.operatorId} ${t.content.action||"\u6233\u4E86\u6233"} ${t.content.targetId}`;break;case "groupMessageReaction":t.tips=`\u8868\u60C5\u52A8\u6001: \u7ED9\u6D88\u606F ${t.content.messageId} ${t.content.isSet?"\u6DFB\u52A0":"\u53D6\u6D88"}\u4E86\u8868\u60C5 ${t.content.faceId}`;break;case "groupRecall":t.tips=`\u64A4\u56DE\u6D88\u606F: ${t.content.messageId}`;break;case "groupFileUploaded":t.tips=`\u6587\u4EF6\u4E0A\u4F20: [fid:${t.content.fid}] [url:${t.content.url}] [name:${t.content.name}]`;break;case "groupMemberAdd":t.tips=`\u65B0\u589E\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupMemberRemove":t.tips=`\u79FB\u9664\u6210\u5458: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupCardChanged":t.tips=`\u540D\u7247\u53D8\u52A8: [\u64CD\u4F5C\u8005:${t.content.operatorId}] [\u76EE\u6807\u6210\u5458:${t.content.targetId}]`;break;case "groupAdminChanged":t.tips=`\u7BA1\u7406\u5458\u53D8\u52A8: ${t.content.targetId} \u88AB${t.content.isAdmin?"\u8BBE\u7F6E":"\u53D6\u6D88"}\u7BA1\u7406\u5458`;break;case "groupSignIn":t.tips=`\u7B7E\u5230: ${t.content.targetId}`;break;case "groupMemberTitleUpdate":t.tips=`\u5934\u8854\u53D8\u52A8: ${t.content.title}`;break;case "groupHonorChange":t.tips=`\u8363\u8A89\u53D8\u66F4: ${t.userId} \u83B7\u5F97\u4E86 ${t.content.honorType} \u8363\u8A89`;break;case "groupLuckyKing":t.tips=`\u8FD0\u6C14\u738B: ${t.content.userId} \u4ECE ${t.content.userId} \u53D1\u7684\u7EA2\u5305\u4E2D\u83B7\u5F97\u4E86\u8FD0\u6C14\u738B`;break;case "groupHighlightsChange":{t.content.isSet?t.tips=`\u8BBE\u7F6E\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u8BBE\u7F6E\u4E3A\u7CBE\u534E\u6D88\u606F`:t.tips=`\u53D6\u6D88\u7CBE\u534E: ${t.content.operatorId} \u5C06 ${t.content.messageId} \u53D6\u6D88\u7CBE\u534E\u6D88\u606F`;break}case "groupMemberBan":{t.content.isBan?t.tips=`\u7981\u8A00\u6210\u5458: ${t.content.operatorId} \u5C06 ${t.content.targetId} \u7981\u8A00 ${t.content.duration}\u79D2`:t.tips=`\u89E3\u9664\u7981\u8A00: ${t.content.operatorId} \u89E3\u9664\u4E86 ${t.content.targetId} \u7684\u7981\u8A00`;break}case "groupWholeBan":{t.content.isBan?t.tips=`\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`:t.tips=`\u89E3\u9664\u5168\u5458\u7981\u8A00: ${t.content.operatorId}`;break}}},ve=(t,e,r,n="info")=>{t.logText=`[${e}:${t.userId}(${t.sender.nick||""})]`,logger.bot(n,t.selfId,`${r}: [${t.userId}(${t.sender.nick||""})] ${t.tips}`);},ke=async(t,e)=>{for(let r of l.accept){if(r.event!==t.event&&r.event!==`${t.event}.${t.subEvent}`)continue;if(!await xp(t,r,e))return}b(t.userId,`\u672A\u627E\u5230\u5339\u914D\u5230\u76F8\u5E94\u63D2\u4EF6: ${t.eventId}`);},xp=async(t,e,r)=>{if(!yt(e,t.bot.adapter.protocol)||!bt(e,r)||!wt(e,r))return true;t.logFnc=`[${e.pkg.name}][${e.file.method}]`;let n=logger.fnc(t.logFnc);e.log(t.selfId,`${n}${t.logText}`);let s=Date.now();try{let o=!1,i=await e.fnc(t,()=>{o=!0;});return o===!1&&i===!1&&(o=!0),o===!0?(logger.debug(`${t.logFnc} \u7EE7\u7EED\u5339\u914D\u4E0B\u4E00\u4E2A\u63D2\u4EF6`),!0):!1}catch(o){return m.emit("error",new Error(t.logFnc,{cause:o})),false}finally{e.log(t.selfId,`${n} \u5904\u7406\u5B8C\u6210 ${logger.green(Date.now()-s+"ms")}`);}};});var T,xa=c(()=>{De();v();Vt();_e();T=async t=>{let e=k(),r=me(t.groupId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"group","\u7FA4\u901A\u77E5");let n=we(t,r,t.groupId);xe(t,e,r,n)&&ke(t,r);};});var Ke,_a=c(()=>{Vt();De();v();_e();Ke=async t=>{let e=k(),r=de(t.userId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"friend","\u597D\u53CB\u901A\u77E5");let n=we(t,r,t.userId);He(t,e,r,n)&&ke(t,r);};});var Ea=c(()=>{xa();_a();});var io,va=c(()=>{De();v();Vt();_e();io=async t=>{let e=k(),r=me(t.groupId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"group","\u7FA4\u8BF7\u6C42");let n=we(t,r,t.groupId);xe(t,e,r,n)&&ke(t,r);};});var ka,Ga=c(()=>{De();Vt();v();_e();ka=async t=>{let e=k(),r=de(t.userId,t.selfId);S(t,e),B(t),Ee(t),ve(t,"friend","\u597D\u53CB\u8BF7\u6C42");let n=we(t,r,t.userId);He(t,e,r,n)&&ke(t,r);};});var Ma=c(()=>{va();Ga();});var Ge,zt=c(()=>{kr();Ne();Ne();Ge=class{#e;#t;#r;#s;#n;#o;#i;#a;#u;#c;reply;store;logFnc;logText;isMaster;isAdmin;constructor({event:e,subEvent:r,eventId:n,rawEvent:s,time:o,contact:i,sender:a,srcReply:u,bot:p}){this.#e=p.selfId,this.#t=e,this.#r=r,this.#s=n,this.#n=s,this.#o=o,this.#i=i,this.#a=a,this.#u=u,this.#c=p,this.store=new Map,this.logFnc="",this.logText="",this.isMaster=false,this.isAdmin=false,this.reply=async(g,d)=>{let w=Be(g),y=(d==null?undefined:d.at)??false,$=(d==null?undefined:d.reply)??false,q=(d==null?undefined:d.recallMsg)??0;y&&!this.isPrivate&&w.unshift(_.at(this.userId)),$&&"message_id"in this&&w.unshift(_.reply(this.message_id));let Je={messageId:"",time:0,messageTime:0,rawData:{},message_id:""},Tn=this.#u(w),{raw:ko}=ie(w);return this.isGroup?this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send Group ${this.contact.peer}: `)}${ko.replace(/\n/g,"\\n")}`):this.selfId!=="console"&&logger.bot("info",this.selfId,`${logger.green(`Send private ${this.contact.peer}: `)}${ko.replace(/\n/g,"\\n")}`),Je=op.types.isPromise(Tn)?await Tn:Tn,Je.message_id=Je.messageId,q>0&&Je.messageId&&setTimeout(()=>{this.bot.recallMsg(this.contact,Je.messageId);},q*1e3),Je},Dt(this,"reply");}get self_id(){return this.#e}get user_id(){return this.userId}get selfId(){return this.#e}get userId(){return this.#a.userId}get event(){return this.#t}get subEvent(){return this.#r}get eventId(){return this.#s}get rawEvent(){return this.#n}get time(){return this.#o}get contact(){return this.#i}get sender(){return this.#a}get srcReply(){return this.#u}get bot(){return this.#c}get isPrivate(){return this.#i.scene==="friend"}get isFriend(){return this.isPrivate}get isGroup(){return this.#i.scene==="group"}get isGuild(){return this.#i.scene==="guild"}get isGroupTemp(){return this.#i.scene==="groupTemp"}get isDirect(){return this.#i.scene==="direct"}};});var We,Kr,Wr,Ur,Yr,Jr,ao=c(()=>{zt();We=class extends Ge{#e;#t;#r;#s;elements;msg;alias;rawMessage;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,messageId:p,messageSeq:g,elements:d}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"message"}),this.#e="message",this.#t=e,this.#r=p,this.#s=g,this.elements=d,this.msg="",this.alias="",this.rawMessage="";}get raw_message(){return this.rawMessage}get message_id(){return this.messageId}get message_seq(){return this.messageSeq}get event(){return this.#e}get subEvent(){return this.#t}get messageId(){return this.#r}get messageSeq(){return this.#s}get at(){return this.elements.filter(e=>e.type==="at").map(e=>e.targetId).filter(Boolean)}get atBot(){return this.at.includes(this.selfId)}get atAll(){return this.at.includes("all")}get image(){return this.elements.filter(e=>e.type==="image").map(e=>e.file).filter(Boolean)}get record(){let e=this.elements.find(r=>r.type==="record");return e?e.file:""}get replyId(){let e=this.elements.find(r=>r.type==="reply");return e?e.messageId:""}get reply_id(){return this.replyId}},Kr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"friend"})),this.#e="friend",this.#t=e.contact,this.#r=e.sender;}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Wr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"group"})),this.#e="group",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Ur=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"direct"})),this.#e="direct",this.#r=e.sender,this.#t=e.contact;}get srcGuildId(){return this.#t.srcGuildId}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return true}get isFriend(){return false}get isGroup(){return false}get isGuild(){return false}get isDirect(){return true}get isGroupTemp(){return false}},Yr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"guild"})),this.#e="guild",this.#t=e.contact,this.#r=e.sender;}get guild_id(){return this.guildId}get channel_id(){return this.channelId}get guildId(){return this.#t.peer}get channelId(){return this.#t.subPeer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return false}get isGuild(){return true}get isDirect(){return false}get isGroupTemp(){return false}},Jr=class extends We{#e;#t;#r;constructor(e){super(Object.assign(e,{subEvent:"groupTemp"})),this.#e="groupTemp",this.#t=e.contact,this.#r=e.sender;}get group_id(){return this.groupId}get groupId(){return this.contact.peer}get contact(){return this.#t}get sender(){return this.#r}get subEvent(){return this.#e}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return true}};});var ue,Vr,zr,Qr,Xr,Zr,en,M,tn,rn,nn,sn,on,an,un,cn,pn,gn,ln,dn,mn,fn,hn,uo=c(()=>{zt();ue=class extends Ge{#e;#t;tips;content;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"notice"}),this.#e="notice",this.#t=e,this.tips="";}get event(){return this.#e}get subEvent(){return this.#t}},Vr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"receiveLike"})),this.#e="receiveLike",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},zr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendIncrease"})),this.#e="friendIncrease",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Qr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendDecrease"})),this.#e="friendDecrease",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Xr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendPoke"})),this.#e="friendPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},Zr=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendRecall"})),this.#e="friendRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},en=class extends ue{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendFileUploaded"})),this.#e="friendFileUploaded",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},M=class extends ue{get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}},tn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupPoke"})),this.#e="groupPoke",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},rn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupRecall"})),this.#e="groupRecall",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},nn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupFileUploaded"})),this.#e="groupFileUploaded",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},sn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupCardChanged"})),this.#e="groupCardChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},on=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberTitleUpdate"})),this.#e="groupMemberTitleUpdate",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},an=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHighlightsChange"})),this.#e="groupHighlightsChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},un=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberAdd"})),this.#e="groupMemberAdd",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},cn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberRemove"})),this.#e="groupMemberRemove",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},pn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupAdminChanged"})),this.#e="groupAdminChanged",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},gn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupSignIn"})),this.#e="groupSignIn",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},ln=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMemberBan"})),this.#e="groupMemberBan",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},dn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupWholeBan"})),this.#e="groupWholeBan",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},mn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupMessageReaction"})),this.#e="groupMessageReaction",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},fn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupLuckyKing"})),this.#e="groupLuckyKing",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},hn=class extends M{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupHonorChange"})),this.#e="groupHonorChange",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}};});var Qt,yn,bn,wn,co=c(()=>{zt();Qt=class extends Ge{#e;#t;tips;content;constructor({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u}){super({subEvent:e,eventId:r,rawEvent:n,time:s,contact:o,sender:i,srcReply:a,bot:u,event:"request"}),this.#e="request",this.#t=e,this.tips="";}get event(){return this.#e}get subEvent(){return this.#t}},yn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"friendApply"})),this.#e="friendApply",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return true}get isFriend(){return true}get isGroup(){return false}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},bn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupApply"})),this.#e="groupApply",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}},wn=class extends Qt{#e;#t;#r;content;constructor(e){super(Object.assign(e,{subEvent:"groupInvite"})),this.#e="groupInvite",this.#t=e.contact,this.#r=e.sender,this.content=e.content;}get group_id(){return this.contact.peer}get groupId(){return this.contact.peer}get subEvent(){return this.#e}get contact(){return this.#t}get sender(){return this.#r}get isPrivate(){return false}get isFriend(){return false}get isGroup(){return true}get isGuild(){return false}get isDirect(){return false}get isGroupTemp(){return false}};});var xn,_n,ay,uy,$a,cy,Ia,py,Aa,Oa,gy,Pa,Ta,Sa,Ba,ly,Ra,Ca,Fa,Na,dy,Da,my,po,ja,qa,fy,hy,yy,Xt=c(()=>{wa();Ea();Ma();ao();uo();co();xn=t=>{let e=new Kr(t);return ma(e),e},_n=t=>{let e=new Wr(t);return ca(e),e},ay=t=>{let e=new Yr(t);return ga(e),e},uy=t=>{let e=new Ur(t);return fa(e),e},$a=t=>{let e=new Jr(t);return pa(e),e},cy=t=>{let e=new Vr(t);return Ke(e),e},Ia=t=>{let e=new zr(t);return Ke(e),e},py=t=>{let e=new Qr(t);return Ke(e),e},Aa=t=>{let e=new Xr(t);return Ke(e),e},Oa=t=>{let e=new Zr(t);return Ke(e),e},gy=t=>{let e=new en(t);return Ke(e),e},Pa=t=>{let e=new tn(t);return T(e),e},Ta=t=>{let e=new rn(t);return T(e),e},Sa=t=>{let e=new nn(t);return T(e),e},Ba=t=>{let e=new sn(t);return T(e),e},ly=t=>{let e=new on(t);return T(e),e},Ra=t=>{let e=new an(t);return T(e),e},Ca=t=>{let e=new un(t);return T(e),e},Fa=t=>{let e=new cn(t);return T(e),e},Na=t=>{let e=new pn(t);return T(e),e},dy=t=>{let e=new gn(t);return T(e),e},Da=t=>{let e=new ln(t);return T(e),e},my=t=>{let e=new dn(t);return T(e),e},po=t=>{let e=new mn(t);return T(e),e},ja=t=>{let e=new fn(t);return T(e),e},qa=t=>{let e=new hn(t);return T(e),e},fy=t=>{let e=new bn(t);return io(e),e},hy=t=>{let e=new wn(t);return io(e),e},yy=t=>{let e=new yn(t);return ka(e),e};});var ce,E,La=c(()=>{ce=(t,e="",r,n,s,o)=>(e||(e=""),{userId:t,nick:e,name:e,sex:r,age:n,uid:s,uin:o}),E=(t,e,r,n,s,o,i,a,u,p,g)=>{if(typeof t=="object"){let d=t.name||"";return {userId:t.userId,nick:d,name:d,role:t.role,card:t.card,area:t.area,level:t.level,title:t.title,sex:t.sex,age:t.age,uid:t.uid,uin:t.uin}}if(typeof t=="string")return {userId:t,nick:r||"",name:r||"",role:e||"unknown",card:o,area:i,level:a,title:u,sex:n,age:s,uid:p,uin:g};throw TypeError("\u63D0\u4F9B\u7684\u53C2\u6570\u7C7B\u578B\u9519\u8BEF")};});var Me,G,Ha,Ka=c(()=>{Me=(t,e="")=>({scene:"friend",peer:t,name:e}),G=(t,e="")=>({scene:"group",peer:t,name:e}),Ha=(t,e,r="")=>({scene:"groupTemp",peer:t,subPeer:e,name:r});});var Zt=c(()=>{zt();uo();La();Ka();ao();co();});var Wa,Y,En,Ua,Ya=c(()=>{jr();Se();lr();v();L();Xs();Ne();Xt();Zt();Wa=0,Y="console",En=class extends Fe{constructor(){super(),m.on("karin:adapter:open",()=>process.stdin.on("data",e=>this.createEvent(e))),m.on("karin:adapter:close",()=>process.stdin.removeAllListeners("data")),this.adapter.name="@karinjs/console",this.adapter.communication="other",this.adapter.platform="other",this.adapter.standard="other",this.adapter.version=process.env.karin_version,this.account.name=Y,this.account.uid=Y,this.account.uin=Y,this.account.selfId=Y,this.account.avatar="https://p.qlogo.cn/gh/967068507/967068507/0",m.emit("karin:adapter:open");}get selfId(){return this.account.selfId}createEvent(e){let r=e.toString().trim(),n=Math.floor(Math.random()*1e9),s=Date.now();if(r.startsWith("group")){let i=G("10010");_n({bot:this,contact:i,elements:[_.text(r.replace(/^group/,"").trim())],eventId:`${Y}${s}`,messageId:`${Y}${s}`,messageSeq:n,rawEvent:{data:e},sender:E(Y,"member"),time:s,srcReply:a=>this.sendMsg(i,a)});return}let o=Me(Y);xn({bot:this,contact:o,elements:[_.text(r.replace(/^group/,"").trim())],eventId:`${Y}.${s}`,messageId:`${Y}.${s}`,messageSeq:n,rawEvent:{data:e},sender:ce(Y,""),time:s,srcReply:i=>this.sendMsg(o,i)});}async sendMsg(e,r,n){let s=Date.now(),o=(++Wa).toString(),i={message_id:o,messageId:o,time:s,messageTime:s,rawData:{}},a=[];for(let u of r){if(u.type==="at"){a.push(`[at:${u.targetId}]`);continue}if(u.type==="text"){a.push(u.text);continue}if(u.type==="image"||u.type==="record"||u.type==="video"){let p=u.file.startsWith("http")?u.file:await this.getUrl(u.file,".png");a.push(`[${u.type}: ${logger.blue(p)} ]`);continue}a.push(JSON.stringify(u));}return e.scene==="group"?(a.unshift(logger.green("Send group message: ")),logger.info(a.join(""))):(a.unshift(logger.green("Send private message: ")),logger.info(a.join(""))),i}async getUrl(e,r){let n=X(),s=(++Wa).toString(),o=N.join(Ae,`${s}${r}`);return await A.promises.writeFile(o,await tt(e)),n.console.isLocal?`http://127.0.0.1:${n.port}/console/${s}${r}`:n.console.host?`${n.console.host}/console/${s}${r}?token=${n.console.token}`:`http://127.0.0.1:${n.port}/console/${s}${r}?token=${n.console.token}`}},Ua=new En;mt("other",Ua);});var Ja,J,Va,za,lo,Ue,kp,Gp,vn,kn,go,Qa,Mp,Xa=c(()=>{Ja=0,J=[],Va=(t,e)=>{let r=++Ja;return J.push({index:r,id:t,render:e}),logger.mark(`[render:${Ja}] ${logger.green("\u6CE8\u518C\u6210\u529F")}: ${t}`),r},za=t=>{let e=J.find(r=>r.index===t);return e?(J.splice(J.findIndex(r=>r.index===t),1),logger.mark(`[render] ${logger.yellow("\u5378\u8F7D\u6210\u529F")}: ${e.id}`),true):(logger.error(`[render] \u5378\u8F7D\u5931\u8D25: \u4E0D\u5B58\u5728\u7D22\u5F15 ${t}`),false)},lo=t=>{if(J.length===0)throw new Error("[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u6E32\u67D3\u5668\u5217\u8868\u4E3A\u7A7A");if(!t)return J[Math.floor(Math.random()*J.length)];if(typeof t=="number"){let r=J.find(n=>n.index===t);if(!r)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return r}let e=J.find(r=>r.id===t);if(!e)throw new Error(`[\u8C03\u7528\u6E32\u67D3\u5668\u5931\u8D25] \u672A\u627E\u5230\u6E32\u67D3\u5668\uFF1A${t}`);return e},Ue=async(t,e)=>await lo(e).render(Object.assign(t,{encoding:"base64"})),kp=()=>J.length,Gp=()=>J.map(e=>e),vn=t=>Ue({file:t,name:"render",encoding:"base64",pageGotoParams:{waitUntil:"networkidle2"}}),kn=(t,e)=>(!e&&e!==0&&(e=true),Ue({file:t,name:"render",encoding:"base64",multiPage:e,pageGotoParams:{waitUntil:"networkidle2"}})),go=class{app(e){return Va(e.id,e.render)}unapp(e){return za(e)}App(e=""){return lo(e)}async render(e,r){return Ue(e,r)}async renderHtml(e){return vn(e)}async renderMultiHtml(e,r){return kn(e,r)}},Qa=new go,Mp=Qa;});var Gn,mo,Ap,Op,Pp,Tp,Za=c(()=>{L();It();Gn=new Map,mo=new Map,Ap=t=>{if(t.data){if(t.file.startsWith("http"))throw TypeError("\u4ED6\u55B5\u7684 \u4E0D\u4F1A\u771F\u7684\u6709\u7B28\u6BD4\u4F20\u4E2Ahttp\u6765\u5F53\u505A\u6A21\u677F\u5427...");let e=N.resolve(t.file),r=Op(e),n=Ip.render(r,t.data),s=Pp(t.file,n,t.name);return A.writeFileSync(s,n),delete t.data,delete t.name,t.file=`file://${s}`,t}return !t.file.startsWith("http")&&!t.file.startsWith("file")&&(t.file=`file://${t.file}`),delete t.data,delete t.name,t},Op=t=>{let e=Gn.get(t);if(e)return e;let r=A.readFileSync(t,"utf-8");return Tp(t,r),r},Pp=(t,e,r)=>{let n=N.extname(t),s=N.basename(t,n),o=N.join(At,r||"render"),i=N.join(o,`${s}-${Date.now()}${n}`);return ze(o),A.writeFileSync(i,e),i},Tp=async(t,e)=>{if(Gn.set(t,e),mo.has(t))return;let r=Cu.watch(t);mo.set(t,r),r.on("change",()=>{Gn.set(t,A.readFileSync(t,"utf-8")),logger.info(`[\u6587\u4EF6\u53D8\u52A8] html\u6A21\u677F\u53D1\u9001\u53D8\u52A8: ${t}`);}),r.on("unlink",()=>{Gn.delete(t),r.close(),mo.delete(t),r.removeAllListeners(),logger.info(`[\u6587\u4EF6\u5220\u9664] html\u6A21\u677F\u88AB\u5220\u9664: ${t}`);});};});var eu=c(()=>{});var fo=c(()=>{Xa();Za();eu();});var tu={};R(tu,{AdapterBase:()=>Fe,AdapterConsole:()=>En,Renderer:()=>Mp,adapter:()=>Ua,callRender:()=>Ue,getRender:()=>lo,getRenderCount:()=>kp,getRenderList:()=>Gp,registerRender:()=>Va,render:()=>Qa,renderHtml:()=>vn,renderMultiHtml:()=>kn,renderTpl:()=>Ap,unregisterRender:()=>za});var ru=c(()=>{jr();Ya();fo();});var wu=Date.now(),$o=false,Mo=()=>$o||process.env.karin_dev||process.argv.some(t=>t.includes("debug")),Io=t=>{let e=i=>U.hex("#0cafff")(i),r=i=>{e=i;},n=(...i)=>{process.stderr.write(`${e(t)} ${op.format(...i)} ${e(`+${Date.now()-wu}ms`)}
|
|
11
|
+
`);},s=()=>{},o=Mo()?n:s;return Object.assign(o,{chalk:U,setColor:r,enable:i=>{$o=i,o=Mo()?n:s;}})};var xu=Io("core");global.debug=xu;v();L();A.existsSync(Dn)||A.mkdirSync(Dn);var rp=(t={})=>{if(t.config)return Ns.configure(t.config);let{level:e="info",daysToKeep:r=7,overall:n=true,fragments:s=false,maxLogSize:o=30}=t.log4jsCfg||{},i={appenders:{console:{type:"console",layout:{type:"pattern",pattern:`%[[Karin][%d{hh:mm:ss.SSS}][%4.4p]%] ${process.env.karin_dev==="dev"?"[%f{3}:%l] ":""}%m`}}},categories:{default:{appenders:["console"],level:e,enableCallStack:process.env.karin_dev==="dev"}},levels:{handler:{value:15e3,colour:"cyan"}}};return n&&(i.categories.default.appenders.unshift("overall"),i.appenders.overall={type:"file",filename:"logs/logger",pattern:"yyyy-MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:n||7,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),s&&(i.categories.default.appenders.unshift("fragments"),i.appenders.fragments={type:"file",filename:"logs/app.log",pattern:"MM-dd.log",keepFileExt:true,alwaysIncludePattern:true,daysToKeep:r||7,maxLogSize:(o||30)*1024*1024,numBackups:9999999,layout:{type:"pattern",pattern:"[%d{hh:mm:ss.SSS}][%4.4p] %m"}}),Ns.configure(i)},np=(t,e)=>{let r=t;return r.chalk=U,r.red=U.red,r.green=U.green,r.yellow=U.yellow,r.blue=U.blue,r.magenta=U.magenta,r.cyan=U.cyan,r.white=U.white,r.gray=U.gray,r.violet=U.hex("#868ECC"),r.fnc=U.hex("#FFFF00"),r.bot=(n,s,...o)=>{switch(n){case "trace":return r.trace(r.violet(`[Bot:${s}]`),...o);case "debug":return r.debug(r.violet(`[Bot:${s}]`),...o);case "mark":return r.mark(r.violet(`[Bot:${s}]`),...o);case "info":return r.info(r.violet(`[Bot:${s}]`),...o);case "warn":return r.warn(r.violet(`[Bot:${s}]`),...o);case "error":return r.error(r.violet(`[Bot:${s}]`),...o);case "fatal":return r.fatal(r.violet(`[Bot:${s}]`),...o);default:return r.info(r.violet(`[Bot:${s}]`),...o)}},r},Di=(t={})=>{rp(t);let e=np(Ns.getLogger("default"));return global.logger=e,e};debug("debug: init logger");var dm=Di({log4jsCfg:k().log4jsCfg});v();Rr();Fs();Os();await Ps(Ut());var Sp=async()=>{let[{LoaderPlugin:t},{listen:e}]=await Promise.all([Promise.resolve().then(()=>(Li(),qi)),Promise.resolve().then(()=>(Js(),ta)),Promise.resolve().then(()=>(ru(),tu))]);await Promise.all([new t().init(),e(Ut(),Ts())]);};Sp();Xs();var ho={};R(ho,{accept:()=>Rp,button:()=>Cp,command:()=>Np,ctx:()=>Dp,handler:()=>jp,render:()=>Fp,sendAdmin:()=>Lp,sendMaster:()=>qp,task:()=>Bp});Ce();var Bp=(t,e,r,n={})=>{if(!t)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[name]");if(!e)throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570[cron]");if(!r||typeof r!="function")throw new Error("[task]: \u7F3A\u5C11\u53C2\u6570\u6216\u7C7B\u578B\u9519\u8BEF[fnc]");return {name:t,cron:e,fnc:r,log:he(n.log,false),schedule:undefined,file:Z("task",n.name||"task"),pkg:ee()}};Ce();var Rp=(t,e,r={})=>{let n=r.dsbAdapter||r.notAdapter||[],s=Number(r.rank??r.priority);return {event:t,fnc:e,log:he(r.log,true),adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(n)?n:[],file:Z("accept",r.name||"accept"),pkg:ee(),priority:s??1e4}};Ce();var Cp=(t,e,r={})=>{let n=Number(r.rank??r.priority);return {fnc:e,reg:t instanceof RegExp?t:new RegExp(t),rank:isNaN(n)?1e4:n,file:Z("button",r.name||"button"),pkg:ee(),priority:n??1e4}};fo();var Fp=(t,e,r)=>t==="opt"?Ue(e,r):typeof t=="string"?e?kn(t,e):vn(t):Ue(t,e);Ce();var Np=(t,e,r={})=>{t=typeof t=="string"?new RegExp(t):t;let n=typeof e=="function"?e:async i=>{let a=typeof e=="number"?String(e):e;return await i.reply(a,{at:"at"in r&&r.at||false,reply:"reply"in r&&r.reply||false,recallMsg:"recallMsg"in r&&Number(r.recallMsg)||0}),!("stop"in r&&!r.stop)},s=r.dsbAdapter||r.notAdapter||[],o=Number(r.rank??r.priority);return {type:"fnc",event:r.event||"message",fnc:n,log:he(r.log,true),permission:r.perm||r.permission||"all",priority:isNaN(o)?1e4:o,reg:t,adapter:Array.isArray(r.adapter)?r.adapter:[],dsbAdapter:Array.isArray(s)?s:[],authFailMsg:r.authFailMsg||true,file:Z("command",r.name||"command"),pkg:ee()}};F();Hr();var Dp=async(t,e)=>{let r=(e==null?undefined:e.time)||120,n=(e==null?undefined:e.userId)||t.userId||t.user_id,s=t.contact.subPeer?`${t.contact.peer}:${t.contact.subPeer}:${n}`:`${t.contact.peer}:${n}`;return ht.set(s,t),new Promise((o,i)=>{let a=setTimeout(()=>{let u=ht.get(s);if((u==null?undefined:u.eventId)===t.eventId)return ht.delete(s),e!=null&&e.reply&&t.reply(e.replyMsg||"\u64CD\u4F5C\u8D85\u65F6\u5DF2\u53D6\u6D88"),m.removeAllListeners(`ctx:${s}`),i(new Error(`\u63A5\u6536\u4E0B\u6587\u4E8B\u4EF6\u8D85\u65F6\uFF0C\u5DF2\u53D6\u6D88\u4E0B\u6587\u76D1\u542C: ${s}`)),true},r*1e3);m.once(`ctx:${s}`,u=>{clearTimeout(a),o(u);});})};Ce();var jp=(t,e,r={})=>{if(!t)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[key]");if(!e)throw new Error("[handler]: \u7F3A\u5C11\u53C2\u6570[fnc]");return {key:t,fnc:e,priority:Number(r.rank??r.priority)||1e4,file:Z("handler",r.name||"handler"),pkg:ee()}};be();v();var qp=async(t,e,r,n={recallMsg:0,retryCount:1,mustMaster:false})=>{let s=(n==null?undefined:n.mustMaster)??false,o=Bs();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u4E3B\u4EBA")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u4E3B\u4EBA");return qr(t,{peer:e,scene:"friend"},r,n)},Lp=async(t,e,r,n={recallMsg:0,retryCount:1,mustAdmin:false})=>{let s=(n==null?undefined:n.mustAdmin)??false,o=Rs();if(s){if(!o.includes(`${t}@${e}`))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662FBot\u7684\u4E13\u5C5E\u7BA1\u7406\u5458")}else if(!o.includes(e))throw new Error("\u53D1\u9001\u6D88\u606F\u5931\u8D25: \u76EE\u6807\u4E0D\u662F\u7BA1\u7406\u5458");return qr(t,{peer:e,scene:"friend"},r,n)};F();be();var yo=class extends EventEmitter{name="karin";contact(e,r,n,s){return e==="guild"||e==="direct"||e==="groupTemp"?{scene:e,peer:r,subPeer:n,name:s}:{scene:e,peer:r,subPeer:undefined,name:s}}contactGroup(e,r){return {scene:"group",peer:e,subPeer:undefined,name:r||""}}contactFriend(e,r){return {scene:"friend",peer:e,subPeer:undefined,name:r||""}}contactGuild(e,r,n,s){return {scene:"guild",peer:e,subPeer:r,name:n||"",subName:s||""}}contactGroupTemp(e,r,n){return {scene:"groupTemp",peer:e,subPeer:r,name:n||""}}friendSender(e,r,n="unknown",s,o,i){return {userId:String(e),nick:r,sex:n,age:s,uid:o,uin:i,name:r}}groupSender(e,r,n,s,o,i,a,u,p,g,d){return {userId:String(e),role:r||"unknown",nick:n||"",sex:s,age:o,card:i,area:a,level:u,title:p,uid:g,uin:d,name:n||""}}getBotByIndex(e){return Vs(e)}getBotCount(){return oa()}getBotAll(e){return e?sa():na().map(r=>r)}},Kp=()=>{m.on("ws:connection",(t,e)=>{let r=`ws:connection:${e.url||"/"}`;if(debug(`on ws:connection host: ${e.headers.host} url: ${e.url}`),!tr.listenerCount(r)){t.close(),logger.warn(`[server][webSocket] \u8FDE\u63A5\u65AD\u5F00 \u672A\u627E\u5230\u7ED1\u5B9A\u7684\u8DEF\u7531: ${e.url||"/"}`);return}tr.emit(r,t,e);}),m.on("watch:file",(t,e,r)=>{tr.emit("file:change",t,e,r);});},tr=new yo;Kp();debug("debug: init karin");var nu=Object.assign(tr,ho),Rb=nu;V();var Nb=async(t,e)=>{let r=[];for(let n of l.button)if(n.reg.test(t))try{let o=!1,i=()=>{o=!0;},a=await n.fnc(i,e);if(a&&(Array.isArray(a)?r.push(...a):r.push(a)),!o)return r}catch(o){logger.error(`[Button][Error] ${n.pkg.name}:`),logger.error(o);}return r};ws();var su={};R(su,{Watch:()=>Ft,Watcher:()=>Nt,YamlEditor:()=>ne,absPath:()=>ur,applyComments:()=>Ct,base64:()=>gr,buffer:()=>tt,clearRequire:()=>Uo,clearRequireFile:()=>ge,comment:()=>Jn,copyConfig:()=>Do,copyConfigSync:()=>No,copyFiles:()=>qn,copyFilesSync:()=>jn,createPluginDir:()=>cr,downFile:()=>ar,existToMkdir:()=>ir,existToMkdirSync:()=>ze,exists:()=>Sn,existsSync:()=>Oo,file:()=>O,filesByExt:()=>rt,getFiles:()=>pr,getPluginInfo:()=>Bt,getRelPath:()=>fr,isDir:()=>or,isDirSync:()=>Po,isFile:()=>Ao,isFileSync:()=>To,isPlugin:()=>wr,isStatic:()=>zo,isSubPath:()=>yr,json:()=>Ho,key:()=>Mr,lock:()=>jt,lockMethod:()=>Qn,lockProp:()=>Dt,log:()=>Xn,logs:()=>Zn,mkdir:()=>Bn,mkdirSync:()=>$t,parseChangelog:()=>qt,pkgRoot:()=>br,range:()=>es,read:()=>st,readFile:()=>Lo,readJson:()=>Ln,readJsonSync:()=>Pt,requireFile:()=>K,requireFileSync:()=>j,rmSync:()=>So,save:()=>_r,sep:()=>pe,splitPath:()=>mr,stream:()=>Oe,urlToPath:()=>hr,watch:()=>Vn,watchAndMerge:()=>ei,write:()=>xr,writeJson:()=>Hn,writeJsonSync:()=>Tt,yaml:()=>Xo});Ir();Pe();Gr();Ir();var au={};R(au,{checkGitPluginUpdate:()=>Vp,checkPkgUpdate:()=>Up,errorToString:()=>Ku,exec:()=>x,ffmpeg:()=>ds,ffplay:()=>Qu,ffprobe:()=>ms,fileToUrl:()=>Qp,fileToUrlHandlerKey:()=>xo,formatTime:()=>hs,getCommit:()=>rr,getHash:()=>wo,getPid:()=>us,getPkgVersion:()=>nr,getRemotePkgVersion:()=>In,getRequestIp:()=>Ji,getTime:()=>ou,importModule:()=>Wp,isClass:()=>Ds,isDocker:()=>Vu,isIPv4Loop:()=>Ls,isIPv6Loop:()=>Yi,isLinux:()=>Yu,isLocalRequest:()=>Hs,isLoopback:()=>Ui,isMac:()=>Ju,isRoot:()=>zu,isWin:()=>Or,restart:()=>dp,restartDirect:()=>Ws,stringifyError:()=>os,updateAllGitPlugin:()=>zp,updateAllPkg:()=>Jp,updateGitPlugin:()=>iu,updatePkg:()=>Yp,uptime:()=>Xu});Ks();cs();le();ys();js();is();fs();var Wp=async(t,e=false)=>{try{return {status:!0,data:await import(`file://${t}${e?`?t=${Date.now()}`:""}`)}}catch(r){return {status:false,data:r}}};as();le();Pe();Pr();var bo=(t=false)=>K("package.json",{force:t}),Up=async t=>{let e=(global==null?undefined:global.logger)||console;try{let r=await nr(t),n=await In(t);return r===n?{status:"no",local:r}:{status:"yes",local:r,remote:n}}catch(r){return e.error(r),{status:"error",error:r}}},nr=async t=>{var a,u,p,g;let{status:e,stdout:r,error:n}=await x(`npm list ${t} --depth=0`);if(e)throw (a=n==null?undefined:n.stack)!=null&&a.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):n;let o=new RegExp(`${t}@(\\d+\\.\\d+\\.\\d+)`,"gm").exec(r.toString());if(o!=null&&o[1])return o[1];let i=await bo();return ((u=i==null?undefined:i.dependencies)==null?undefined:u[t])||((p=i==null?undefined:i.devDependencies)==null?undefined:p[t])||((g=i==null?undefined:i.peerDependencies)==null?undefined:g[t])},In=async(t,e="latest")=>{var i;let r=e==="latest"?`npm show ${t} version`:`npm show ${t} dist-tags.${e}`,{status:n,stdout:s,error:o}=await x(r);if(n)throw (i=o==null?undefined:o.stack)!=null&&i.toString().includes("empty")?new Error(`\u83B7\u53D6\u5931\u8D25\uFF0C${t} \u672A\u5B89\u88C5`):o;return s.toString().trim()},Yp=async(t,e="latest")=>{let r=(global==null?undefined:global.logger)||console;try{let n=await nr(t),s=await In(t,e);if(n===s)return {status:"failed",data:`[${t}][\u65E0\u66F4\u65B0] ${n} => ${s}`};let o=`pnpm up ${t}@${s}`,{error:i}=await x(o);return i?{status:"failed",data:i}:await nr(t)!==s?{status:"failed",data:`[${t}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${t}@${s}`}:{status:"ok",data:`[${t}][\u66F4\u65B0\u6210\u529F] ${n} => ${s}`,local:n,remote:s}}catch(n){return r.error(n),{status:"failed",data:n}}},Jp=async()=>{let t=(global==null?undefined:global.logger)||console;try{let e=await oe("npm",!1);e.push("node-karin");let r={},n=[`
|
|
12
|
+
------- \u66F4\u65B0npm\u63D2\u4EF6 --------`],s=["pnpm up"],o=await bo(),i=[];if(await Promise.all(e.map(async g=>{let d=await nr(g),w=await In(g)||o.dependencies[g];if(d===w){n.push(`[${g}][\u65E0\u66F4\u65B0] ${d} => ${w}`);return}n.push(`\u66F4\u65B0${g} ${d} => ${w}`),s.push(`${g}@${w}`),r[g]={local:d,remote:w};})),s.length===1)return n.push("\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~"),n.push("---------------------------"),t.info(n.join(`
|
|
13
13
|
`)),"\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~";n.push("----------------------------"),t.info(n.join(`
|
|
14
14
|
`));let a=s.join(" ");t.info(`\u5F00\u59CB\u66F4\u65B0: ${a}`);let{error:u}=await x(a);if(u)return Object.keys(r).forEach(g=>{i.push(`[${g}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${g}@${r[g].remote}`);}),i.unshift(`[\u66F4\u65B0\u5931\u8D25] \u66F4\u65B0\u6570\u91CF: ${i.length}`),t.error(i.join(`
|
|
15
15
|
`)),t.error(u),i.join(`
|
|
16
|
-
`);let p=await
|
|
16
|
+
`);let p=await bo(!0);return Object.keys(r).forEach(g=>{var w,y,$;(((w=p.dependencies)==null?void 0:w[g])||((y=p.devDependencies)==null?void 0:y[g])||(($=p.peerDependencies)==null?void 0:$[g]))!==r[g].remote?i.push(`[${g}][\u66F4\u65B0\u5931\u8D25] \u8BF7\u5C1D\u8BD5\u624B\u52A8\u66F4\u65B0 pnpm up ${g}@${r[g].remote}`):i.push(`[${g}][\u66F4\u65B0\u6210\u529F] ${r[g].local} => ${r[g].remote}`);}),i.sort((g,d)=>g.includes("\u6210\u529F")?-1:1),t.info(i.join(`
|
|
17
17
|
`)),i.join(`
|
|
18
18
|
`)}catch(e){return t.error(e),e.message||"\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7"}},Vp=async(t,e=120)=>{var n;let r=(global==null?undefined:global.logger)||console;try{if(!A.existsSync(t))return {status:"error",data:new Error("\u8DEF\u5F84\u4E0D\u5B58\u5728")};if(!A.existsSync(`${t}/.git`))return {status:"error",data:new Error("\u8BE5\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2Agit\u4ED3\u5E93")};let s=setTimeout(()=>({status:"failed",data:"\u6267\u884C\u8D85\u65F6"}),e*1e3),o={cwd:t},{error:i}=await x("git fetch origin",o);if(i)return {status:"error",data:i};let{stdout:a}=await x("git status -uno",o);if(clearTimeout(s),a.includes("Your branch is up to date with"))return {status:"no",data:`\u5F53\u524D\u7248\u672C\u5DF2\u662F\u6700\u65B0\u7248\u672C
|
|
19
|
-
\u6700\u540E\u66F4\u65B0\u65F6\u95F4\uFF1A${await ou(t)}`};let u=Number((n=a.match(/Your branch is behind '.*' by (\d+) commits/))==null?void 0:n[1])||1,p=await rr({path:t,count:u,branch:"origin"});return clearTimeout(s),{status:"yes",data:p,count:u}}catch(s){return r.error(s),{status:"error",data:s}}},rr=async t=>{let{path:e,count:r=1,hash:n,branch:s}=t,o=`git log -${r} --format="[%ad]%s %n" --date="format:%m-%d %H:%M"`;n&&(o=`git log ${n}..HEAD --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`),s&&(o=`git log -${r} ${s} --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`);let{stdout:i,error:a}=await x(o,{cwd:e});if(a)throw a;return i},
|
|
19
|
+
\u6700\u540E\u66F4\u65B0\u65F6\u95F4\uFF1A${await ou(t)}`};let u=Number((n=a.match(/Your branch is behind '.*' by (\d+) commits/))==null?void 0:n[1])||1,p=await rr({path:t,count:u,branch:"origin"});return clearTimeout(s),{status:"yes",data:p,count:u}}catch(s){return r.error(s),{status:"error",data:s}}},rr=async t=>{let{path:e,count:r=1,hash:n,branch:s}=t,o=`git log -${r} --format="[%ad]%s %n" --date="format:%m-%d %H:%M"`;n&&(o=`git log ${n}..HEAD --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`),s&&(o=`git log -${r} ${s} --format="[%ad] %s %n" --date="format:%m-%d %H:%M"`);let{stdout:i,error:a}=await x(o,{cwd:e});if(a)throw a;return i},wo=async(t,e=true)=>{let r=e?"git rev-parse --short HEAD":"git rev-parse HEAD",{stdout:n,error:s}=await x(r,{cwd:t});if(s)throw s;return n},ou=async t=>{let e='git log -1 --format=%cd --date=format:"%Y-%m-%d %H:%M:%S"',{stdout:r,error:n}=await x(e,{cwd:t});return n?"\u83B7\u53D6\u6700\u540E\u4E00\u6B21\u63D0\u4EA4\u65F6\u95F4\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u66F4\u65B0Git~":r},iu=async(t,e="git pull",r=120)=>{let n=(global==null?undefined:global.logger)||console;try{if(!A.existsSync(t))return {status:"failed",data:"\u8DEF\u5F84\u4E0D\u5B58\u5728"};if(!A.existsSync(`${t}/.git`))return {status:"failed",data:"\u8BE5\u8DEF\u5F84\u4E0D\u662F\u4E00\u4E2Agit\u4ED3\u5E93"};let s=setTimeout(()=>({status:"failed",data:"\u6267\u884C\u8D85\u65F6"}),r*1e3),o=await wo(t);e=e||"git pull";let{error:i}=await x(e,{cwd:t});if(i){let p=`
|
|
20
20
|
\u66F4\u65B0\u5931\u8D25
|
|
21
21
|
\u9519\u8BEF\u4FE1\u606F\uFF1A${(i==null?void 0:i.stack)||(i==null?void 0:i.message)}
|
|
22
|
-
\u8BF7\u89E3\u51B3\u9519\u8BEF\u540E\u91CD\u8BD5\u6216\u6267\u884C\u3010#\u5F3A\u5236\u66F4\u65B0\u3011`;return clearTimeout(s),{status:"failed",data:p}}let a=await
|
|
22
|
+
\u8BF7\u89E3\u51B3\u9519\u8BEF\u540E\u91CD\u8BD5\u6216\u6267\u884C\u3010#\u5F3A\u5236\u66F4\u65B0\u3011`;return clearTimeout(s),{status:"failed",data:p}}let a=await wo(t);if(o===a){clearTimeout(s);let p=await rr({path:t,count:1});return {status:"failed",data:`
|
|
23
23
|
\u5F53\u524D\u7248\u672C\u5DF2\u662F\u6700\u65B0\u7248\u672C
|
|
24
24
|
\u6700\u540E\u66F4\u65B0\u65F6\u95F4\uFF1A${r}
|
|
25
25
|
\u66F4\u65B0\u8BE6\u60C5\uFF1A${p}`}}clearTimeout(s);let u=await rr({path:t,count:1});return {status:"ok",data:`
|
|
@@ -28,11 +28,11 @@ import A,{existsSync}from'node:fs';import I from'path';import {fileURLToPath}fro
|
|
|
28
28
|
------- \u66F4\u65B0git\u63D2\u4EF6 --------`];if(!n.length)return s.push("\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~"),s.push("----------------------------"),r.info(s.join(`
|
|
29
29
|
`)),"\u6CA1\u6709\u53EF\u66F4\u65B0\u7684\u63D2\u4EF6~";let o=[];return await Promise.allSettled(n.map(async i=>{let a=`./plugins/${i}`,{status:u,data:p}=await iu(a,t,e);u==="ok"?(s.push(`[${i}][\u66F4\u65B0\u6210\u529F] ${p}`),o.push(`[${i}][\u66F4\u65B0\u6210\u529F] ${p}`)):(s.push(`[${i}][\u66F4\u65B0\u5931\u8D25] ${p}`),o.push(`[${i}][\u66F4\u65B0\u5931\u8D25] ${p}`));})),s.push("----------------------------"),r.info(s.join(`
|
|
30
30
|
`)),o.join(`
|
|
31
|
-
`)}catch(r){return logger.error(r),r.message||"\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7"}};Us();Qs();var
|
|
31
|
+
`)}catch(r){return logger.error(r),r.message||"\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7"}};Us();Qs();var xo="fileToUrl",Qp=async(t,e,r,n)=>{if(!zs.has(xo))throw new Error("[Handler][Error]: \u6CA1\u6709\u914D\u7F6E\u6587\u4EF6\u8F6C\u6362\u4E3Aurl\u7684\u5904\u7406\u5668");return zs(xo,{file:e,type:t,filename:r,args:n})};Ne();pt();v();Gr();Js();F();v();F();var _t=new Map,uu=(t,e)=>{e?_t.set(t,{token:e,isAuth:true}):_t.set(t,{token:null,isAuth:false}),logger.debug(`[service][onebot-post][\u6CE8\u518CBot] ${t}`);},_o=t=>{_t.delete(t),logger.debug(`[service][onebot-post][\u5378\u8F7DBot] ${t}`);};var Xp=(t,e)=>{if(_t.get(t)){if(!e){_t.set(t,{token:null,isAuth:false});return}_t.set(t,{token:e,isAuth:true});}};m.on("watch:file",(t,e,r)=>{if(t==="server"){if(!r.onebotHttp||!Array.isArray(r.onebotHttp))return logger.debug("\u6CA1\u6709\u914D\u7F6EonebotHttp \u5DF2\u8DF3\u8FC7"),true;for(let{selfId:n,api:s,token:o}of r.onebotHttp)if(n!=="default"){if(n=String(n),o=String(o),!n||!s||!s.startsWith("http")){logger.bot("error",n,"\u8BF7\u914D\u7F6E\u6B63\u786E\u7684 onebot http \u4FE1\u606F");continue}Xp(n,o);}}});jr();var An=(f=>(f.sendPrivateMsg="send_private_msg",f.sendGroupMsg="send_group_msg",f.sendMsg="send_msg",f.deleteMsg="delete_msg",f.getMsg="get_msg",f.getForwardMsg="get_forward_msg",f.sendLike="send_like",f.setGroupKick="set_group_kick",f.setGroupBan="set_group_ban",f.setGroupAnonymousBan="set_group_anonymous_ban",f.setGroupWholeBan="set_group_whole_ban",f.setGroupAdmin="set_group_admin",f.setGroupAnonymous="set_group_anonymous",f.setGroupCard="set_group_card",f.setGroupName="set_group_name",f.setGroupLeave="set_group_leave",f.setGroupSpecialTitle="set_group_special_title",f.setFriendAddRequest="set_friend_add_request",f.setGroupAddRequest="set_group_add_request",f.getLoginInfo="get_login_info",f.getStrangerInfo="get_stranger_info",f.getFriendList="get_friend_list",f.getGroupInfo="get_group_info",f.getGroupList="get_group_list",f.getGroupMemberInfo="get_group_member_info",f.getGroupMemberList="get_group_member_list",f.getGroupHonorInfo="get_group_honor_info",f.getCookies="get_cookies",f.getCsrfToken="get_csrf_token",f.getCredentials="get_credentials",f.getRecord="get_record",f.getImage="get_image",f.canSendImage="can_send_image",f.canSendRecord="can_send_record",f.getStatus="get_status",f.getVersionInfo="get_version_info",f.getVersion="get_version",f.setRestart="set_restart",f.cleanCache="clean_cache",f.sendForwardMsg="send_forward_msg",f.sendGroupForwardMsg="send_group_forward_msg",f.sendPrivateForwardMsg="send_private_forward_msg",f.getFriendMsgHistory="get_friend_msg_history",f.getGroupMsgHistory="get_group_msg_history",f.setMsgEmojiLike="set_msg_emoji_like",f.uploadGroupFile="upload_group_file",f.uploadPrivateFile="upload_private_file",f.getEssenceMsgList="get_essence_msg_list",f.setEssenceMsg="set_essence_msg",f.deleteEssenceMsg="delete_essence_msg",f))(An||{});var Zp=(n=>(n.Male="male",n.Female="female",n.Unknown="unknown",n))(Zp||{}),Eo=(o=>(o.Message="message",o.Notice="notice",o.Request="request",o.MetaEvent="meta_event",o.MessageSent="message_sent",o))(Eo||{}),eg=(r=>(r.Private="private",r.Group="group",r))(eg||{}),tg=(i=>(i.Friend="friend",i.Group="group",i.Other="other",i.Normal="normal",i.Anonymous="anonymous",i.Notice="notice",i))(tg||{}),cu=(y=>(y.GroupUpload="group_upload",y.GroupAdmin="group_admin",y.GroupDecrease="group_decrease",y.GroupIncrease="group_increase",y.GroupBan="group_ban",y.FriendAdd="friend_add",y.GroupRecall="group_recall",y.FriendRecall="friend_recall",y.Notify="notify",y.GroupMsgEmojiLike="group_msg_emoji_like",y.GroupMsgEmojiLikeLagrange="reaction",y.GroupEssence="essence",y.GroupCard="group_card",y))(cu||{}),rg=(r=>(r.Friend="friend",r.Group="group",r))(rg||{});Ne();var Ye=(t,e,r,n)=>{if(n){let s=JSON.stringify(n,null,2).replace(/\\n/g,`
|
|
32
32
|
`);return new Error(`[${t}][sendApi] \u8BF7\u6C42\u9519\u8BEF:
|
|
33
33
|
action: ${e}
|
|
34
34
|
params: ${r}
|
|
35
35
|
error: ${s}}`)}logger.error(`[${t}][sendApi][\u8BF7\u6C42\u9519\u8BEF]:
|
|
36
36
|
action: ${e}
|
|
37
|
-
params: ${r}`);};function Et(t){let e=[];for(let r of t)switch(r.type){case "text":e.push(_.text(r.data.text));break;case "face":e.push(_.face(Number(r.data.id)));break;case "image":e.push(_.image(r.data.url||r.data.file,{fileType:r.data.type}));break;case "record":e.push(_.record(r.data.url||r.data.file,r.data.magic===1));break;case "video":e.push(_.video(r.data.url||r.data.file));break;case "at":e.push(_.at(r.data.qq,r.data.name));break;case "poke":break;case "contact":e.push(_.contact(r.data.type==="qq"?"friend":"group",r.data.id));break;case "location":e.push(_.location(Number(r.data.lat),Number(r.data.lon),r.data.title||"",r.data.content||""));break;case "reply":e.push(_.reply(r.data.id));break;case "forward":break;case "json":e.push(_.json(r.data.data));break;case "xml":e.push(_.xml(r.data.data));break;default:e.push(_.text(JSON.stringify(r)));}return e}var pu=(t,e)=>{if(!e||!t.startsWith("file://"))return t;let r=["127.0.0.1","localhost"],n=new URL(e);return r.includes(n.hostname)?t:`base64://${A.readFileSync(t.replace("file://","")).toString("base64")}`},ko=(t,e)=>{var n,s,o;let r=[];for(let i of t){let a=i.type;switch(i.type){case "text":r.push({type:a,data:{text:i.text}});break;case "face":r.push({type:a,data:{id:i.id}});break;case "at":r.push({type:a,data:{qq:String(i.targetId),name:i.name}});break;case "reply":r.push({type:a,data:{id:i.messageId}});break;case "image":case "video":{r.push({type:a,data:{file:pu(i.file,e.adapter.address)}});break}case "json":case "xml":{r.push({type:a,data:{data:i.data}});break}case "record":{r.push({type:a,data:{file:pu(i.file,e.adapter.address),magic:i.magic||false}});break}case "music":{if(i.platform==="custom"){let{url:u,audio:p,title:g,author:d,pic:w}=i;r.push({type:"music",data:{type:"custom",url:u,audio:p,title:g,content:d,image:w}});}else r.push({type:"music",data:{type:i.platform,id:i.id}});break}case "longMsg":case "basketball":case "dice":case "marketFace":case "rps":{r.push({type:i.type,data:{id:i.id}});break}case "gift":{r.push({type:"gift",data:{qq:i.qq,id:i.id}});break}case "share":{r.push({type:"share",data:{url:i.url,title:i.title,content:i.content,image:i.image}});break}case "weather":{r.push({type:"weather",data:{city:i.city,type:i.type}});break}case "raw":r.push(i.data);break;case "node":{i.subType==="messageID"?r.push({type:"forward",data:{id:i.messageId}}):r.push({type:"node",data:{user_id:i.userId||e.selfId,nickname:i.nickname||e.selfName,content:ko(i.message,e),prompt:(n=i==null?undefined:i.options)==null?undefined:n.prompt,summary:(s=i==null?undefined:i.options)==null?undefined:s.summary,source:(o=i==null?undefined:i.options)==null?undefined:o.source}});break}case "button":case "markdown":case "keyboard":default:{r.push(i);break}}}return r};Xt();Zt();var gu=(t,e)=>{debug("onebot:createMessage",t);let r=t.time;if(t.message_type==="private"){if(t.sub_type==="friend"){let n=t.sender.user_id+"",s=Me(n),o=ce(n,t.sender.nickname,t.sender.sex,t.sender.age);xn({bot:e,time:r,contact:s,sender:o,rawEvent:t,messageId:t.message_id+"",messageSeq:t.message_id,eventId:`message:${t.message_id}`,elements:Et(t.message),srcReply:i=>e.sendMsg(s,i)});return}if(t.sub_type==="group"){let n=t.group_id+""||t.temp_source+"",s=t.sender.user_id+"",o=Ka(n,s),i=ce(s,t.sender.nickname);Ia({bot:e,contact:o,elements:Et(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:i,time:r,srcReply:a=>e.sendMsg(o,a)});}return}if(t.message_type==="group"&&t.sub_type==="normal"){let n=t.group_id+"",s=t.sender.user_id+"",{nickname:o,role:i,sex:a,age:u,card:p,area:g,level:d,title:w}=t.sender,y=G(n),$=E(s,i,o,a,u,p,g,d,w);_n({bot:e,contact:y,elements:Et(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:$,time:r,srcReply:q=>e.sendMsg(y,q)});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};Zt();Xt();var lu=(t,e)=>{let r=t.time;if(t.notice_type==="friend_recall"){let n=t.user_id+"",s=t.message_id+"",o=Me(n);Pa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:o,sender:ce(n),srcReply:i=>e.sendMsg(o,i),content:{messageId:s,operatorId:n,tips:""}});return}if(t.notice_type==="friend_add"){let n=t.user_id+"",s=Me(n);Aa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ce(n),srcReply:o=>e.sendMsg(s,o),content:{targetId:n}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"&&t.group_id){let n=t.user_id+"",s=t.group_id+"",o=G(s);Ta({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"){let n=t.user_id+"",s=Me(n);Oa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ce(n),srcReply:o=>e.sendMsg(s,o),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="lucky_king"){let n=t.user_id+"",s=t.group_id+"",o=G(s);qa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{userId:n,targetId:t.target_id+""}});return}if(t.notice_type==="notify"&&t.sub_type==="honor"){let n=t.user_id+"",s=t.group_id+"",o=G(s);La({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{honorType:t.honor_type}});return}if(t.notice_type==="group_recall"){let n=t.user_id+"",s=t.group_id+"",o=t.message_id+"",i=t.operator_id+"",a=G(s);Sa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:a,sender:E(n),srcReply:u=>e.sendMsg(a,u),content:{messageId:o,operatorId:i,targetId:n,tip:""}});return}if(t.notice_type==="group_increase"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Fa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type}});return}if(t.notice_type==="group_decrease"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Na({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type==="kick_me"?"kickBot":t.sub_type}});return}if(t.notice_type==="group_upload"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Ba({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{fid:t.file.id,name:t.file.name,size:t.file.size,subId:t.file.busid}});return}if(t.notice_type==="group_admin"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Da({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{targetId:n,isAdmin:t.sub_type==="set"}});return}if(t.notice_type==="group_ban"){let n=t.user_id+"",s=t.group_id+"",o=G(s);ja({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,duration:t.duration,isBan:t.sub_type==="ban"}});return}if(t.notice_type==="group_msg_emoji_like"){let n=t.user_id+"",s=t.group_id+"",o=G(s);po({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.likes[0].count,faceId:t.likes[0].emoji_id,isSet:true,messageId:t.message_id+""}});return}if(t.notice_type==="reaction"){let n=t.operator_id+"",s=t.group_id+"",o=G(s);po({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.count,faceId:Number(t.code),isSet:t.sub_type==="add",messageId:t.message_id+""}});return}if(t.notice_type==="essence"){let n=t.sender_id+"",s=t.group_id+"",o=G(s);Ca({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{isSet:t.sub_type==="add",messageId:t.message_id+"",operatorId:t.operator_id+"",senderId:n}});return}if(t.notice_type==="group_card"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Ra({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{newCard:t.card_new,operatorId:"",targetId:n}});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};Zt();var vt=class extends Fe{constructor(){super(),this.adapter.platform="qq",this.adapter.standard="onebot11";}eventHandlers(e,r){if(debug("onebot",r),e.post_type==="message"||e.post_type==="message_sent"){debug("onebot:message",r),gu(e,this);return}if(e.post_type==="notice"){debug("onebot:notice",r),lu(e,this);return}if(e.post_type==="request"){debug("onebot:request",r);return}if(e.post_type==="meta_event"){if(debug("onebot:meta",r),e.meta_event_type==="lifecycle"){e.sub_type==="enable"&&logger.bot("debug",this.selfId,"OneBot\u542F\u7528"),e.sub_type==="disable"&&logger.bot("debug",this.selfId,"OneBot\u505C\u7528"),e.sub_type==="connect"&&logger.bot("debug",this.selfId,"WebSocket\u8FDE\u63A5\u6210\u529F");return}logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u5143\u4E8B\u4EF6: ${r}`);return}if(e.retcode){debug("onebot:retcode",r);let{retcode:n}=e;if(n===1401||n===1403){logger.error(`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} event: ${r}`);return}logger.bot("error",this.selfId,`\u53D1\u751F\u672A\u77E5\u9519\u8BEF: ${r}`);}debug("onebot:unknown",r),logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${r}`);}AdapterConvertKarin(e){return Et(e)}KarinConvertAdapter(e){return ko(e,this)}async getAvatarUrl(e=this.account.selfId,r=0){return Number(e)?`https://q1.qlogo.cn/g?b=qq&s=${r}&nk=${e}`:`https://q.qlogo.cn/qqapp/${e}/${e}/${r}`}async getGroupAvatarUrl(e,r=0,n=0){return `https://p.qlogo.cn/gh/${e}/${e}${n?"_"+n:""}/`+r}async sendMsg(e,r,n){try{let{scene:s,peer:o}=e,i;s==="group"?i=await this.sendApi("send_msg",{message_type:"group",group_id:Number(o),message:this.KarinConvertAdapter(r)}):s==="groupTemp"?i=await this.sendApi("send_private_msg",{user_id:Number(e.subPeer),group_id:Number(o),message:this.KarinConvertAdapter(r)}):i=await this.sendApi("send_msg",{message_type:"private",user_id:Number(o),message:this.KarinConvertAdapter(r)});let a=String(i.message_id),u=Date.now();return {messageId:a,messageTime:u,rawData:i,message_id:a,time:u}}catch(s){if(n&&n>0)return this.sendMsg(e,r,n-1);throw s}}async SendMessage(e,r,n){return this.sendMsg(e,r,n)}async sendLongMsg(e,r){let n,{scene:s,peer:o}=e;s==="group"?n=await this.sendApi("send_group_msg",{group_id:Number(o),message:[{type:"forward",data:{id:r}}]}):n=await this.sendApi("send_private_msg",{user_id:Number(o),message:[{type:"forward",data:{id:r}}]});let i=String(n.message_id),a=Date.now();return {messageId:i,messageTime:a,rawData:n,message_id:i,message_time:a,time:a}}async SendMessageByResId(e,r){return this.sendLongMsg(e,r)}async recallMsg(e,r){try{return await this.sendApi("delete_msg",{message_id:Number(r)}),!0}catch{return false}}async RecallMessage(e,r){return this.recallMsg(e,r)}async getMsg(e,r){let n=await this.sendApi("get_msg",{message_id:Number(r)}),s=n.sender.user_id+"",o=n.message_seq||n.message_id,i=n.message_id+"";return {time:n.time,messageId:i,message_id:i,message_seq:o,messageSeq:o,contact:{scene:n.message_type==="group"?"group":"friend",peer:e.peer,sub_peer:null,name:""},sender:{userId:s,uid:s,uin:n.sender.user_id,nick:n.sender.nickname,role:"unknown",name:n.sender.nickname},elements:this.AdapterConvertKarin(n.message)}}async GetMessage(e,r){return this.getMsg(e,r)}async getHistoryMsg(e,r,n){var a,u,p,g;let s;this.adapter.name==="Lagrange.OneBot"?s={message_id:Number(r),count:n}:s={message_seq:(await this.getMsg(e,r)).message_seq,count:n};let o;e.scene==="group"?(s.group_id=Number(e.peer),o=await this.sendApi("get_group_msg_history",s)):(s.user_id=Number(e.peer),o=await this.sendApi("get_friend_msg_history",s));let i=[];for(let d of o.messages){let w=d.sender.user_id+""||"",y=String(d.message_id)||"",$=d.message_seq||0,q={time:Date.now(),messageId:y,messageSeq:$,message_id:y,message_seq:$,contact:e,sender:{userId:w,uid:w,uin:d.sender.user_id,nick:((a=d==null?undefined:d.sender)==null?undefined:a.nickname)||"",name:((u=d==null?undefined:d.sender)==null?undefined:u.nickname)||"",role:((p=d==null?undefined:d.sender)==null?undefined:p.role)||"unknown",card:e.scene==="group"&&((g=d==null?undefined:d.sender)==null?undefined:g.card)||""},elements:this.AdapterConvertKarin(d.message)};i.push(q);}return i}async GetHistoryMessage(e,r,n=1){return this.getHistoryMsg(e,r,n)}async sendLike(e,r){try{return await this.sendApi("send_like",{user_id:Number(e),times:r}),!0}catch{return false}}async VoteUser(e,r=10){return this.sendLike(e,r)}async groupKickMember(e,r,n,s){try{return await this.sendApi("set_group_kick",{group_id:Number(e),user_id:Number(r),reject_add_request:n}),!0}catch{return false}}async KickMember(e,r,n=false,s=""){return this.groupKickMember(e,r,n,s)}async setGroupMute(e,r,n){try{return await this.sendApi("set_group_ban",{group_id:Number(e),user_id:Number(r),duration:n}),!0}catch{return false}}async BanMember(e,r,n){return this.setGroupMute(e,r,n)}async setGroupAllMute(e,r){try{return await this.sendApi("set_group_whole_ban",{group_id:Number(e),enable:r}),!0}catch{return false}}async SetGroupWholeBan(e,r=true){return this.setGroupAllMute(e,r)}async setGroupAdmin(e,r,n){try{return await this.sendApi("set_group_admin",{group_id:Number(e),user_id:Number(r),enable:n}),!0}catch{return false}}async SetGroupAdmin(e,r,n){return this.setGroupAdmin(e,r,n)}async setGroupMemberCard(e,r,n){try{return await this.sendApi("set_group_card",{group_id:Number(e),user_id:Number(r),card:n}),!0}catch{return false}}async ModifyMemberCard(e,r,n){return this.setGroupMemberCard(e,r,n)}async setGroupName(e,r){try{return await this.sendApi("set_group_name",{group_id:Number(e),group_name:r}),!0}catch{return false}}async ModifyGroupName(e,r){return this.setGroupName(e,r)}async setGroupQuit(e,r){try{return await this.sendApi("set_group_leave",{group_id:Number(e),is_dismiss:r}),!0}catch{return false}}async LeaveGroup(e,r=false){return this.setGroupQuit(e,r)}async setGroupMemberTitle(e,r,n){try{return await this.sendApi("set_group_special_title",{group_id:Number(e),user_id:Number(r),special_title:n}),!0}catch{return false}}async SetGroupUniqueTitle(e,r,n){return this.setGroupMemberTitle(e,r,n)}async GetCurrentAccount(){let e=await this.sendApi("get_login_info",{});return {account_uid:e.user_id+"",account_uin:e.user_id+"",account_name:e.nickname}}async getStrangerInfo(e){let r=await this.sendApi("get_stranger_info",{user_id:Number(e[0]),no_cache:true});return {...r,userId:e,user_id:e,uid:r.uid||"",uin:e,qid:r.qid||"",nick:r.nickname,remark:"",level:0,birthday:"",login_day:r.login_days||0,vote_cnt:0,is_school_verified:undefined,age:r.age,sex:r.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:r.is_vip,super_vip:undefined,voted:undefined}}async getFriendList(e){return (await this.sendApi("get_friend_list",{})).map(n=>{let s=n.user_id+"";return {...n,userId:s,user_id:s,uid:n.uid||"",uin:s,qid:n.qid||"",nick:n.nickname,remark:"",level:0,birthday:"",login_day:n.login_days||0,vote_cnt:0,is_school_verified:undefined,age:n.age,sex:n.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:n.is_vip,super_vip:undefined,voted:undefined}})}async GetStrangerProfileCard(e){return this.getStrangerInfo(e[0])}async GetFriendList(){return this.getFriendList()}async getGroupInfo(e,r){let n=await this.sendApi("get_group_info",{group_id:Number(e),no_cache:r}),s=n.group_name;return {groupId:e,groupName:s,groupRemark:s,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:s,group_remark:s,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:e,admins:[],owner:""}}async GetGroupInfo(e,r=false){return this.getGroupInfo(e,r)}async getGroupList(e){return (await this.sendApi("get_group_list",{no_cache:e})).map(n=>{let s=n.group_id+"",o=n.group_name;return {groupId:s,groupName:o,groupRemark:o,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:o,group_remark:o,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:s,admins:[],owner:""}})}async GetGroupList(){return this.getGroupList()}async getGroupMemberInfo(e,r,n){let s=Number(r),o=await this.sendApi("get_group_member_info",{group_id:Number(e),user_id:s,no_cache:n});return {...o,userId:r,uid:r,uin:r,nick:o.nickname,role:o.role,age:o.age,uniqueTitle:o.title,card:o.card,joinTime:o.join_time,lastActiveTime:o.last_sent_time,level:Number(o.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:o.unfriendly,sex:o.sex,get sender(){return E(this.userId,this.role,this.nick,this.sex,this.age,this.card,this.area,this.level,this.title)}}}async GetGroupMemberInfo(e,r,n=false){return this.getGroupMemberInfo(e,r,n)}async getGroupMemberList(e,r){return (await this.sendApi("get_group_member_list",{group_id:Number(e),no_cache:r})).map(s=>{let o=s.user_id+"";return {...s,userId:o,uid:o,uin:o,nick:s.nickname,role:s.role,age:s.age,uniqueTitle:s.title,card:s.card,joinTime:s.join_time,lastActiveTime:s.last_sent_time,level:Number(s.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:s.unfriendly,sex:s.sex,get sender(){return E(o,s.role,s.nickname,s.sex,s.age,s.card,s.area,Number(s.level),s.title)}}})}async GetGroupMemberList(e,r=false){return this.getGroupMemberList(e,r)}async getGroupHonor(e){let r=await this.sendApi("get_group_honor_info",{group_id:Number(e),type:"all"}),n=[];return r.talkative_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5386\u53F2\u9F99\u738B",id:0,avatar:s.avatar,description:s.description});}),r.performer_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u4E4B\u706B",avatar:s.avatar,id:0,description:s.description});}),r.legend_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u70BD\u7130",avatar:s.avatar,id:0,description:s.description});}),r.strong_newbie_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5192\u5C16\u5C0F\u6625\u7B0B",avatar:s.avatar,id:0,description:s.description});}),r.emotion_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5FEB\u4E50\u4E4B\u6E90",avatar:s.avatar,id:0,description:s.description});}),n}async GetGroupHonor(e,r=false){return this.getGroupHonor(e)}async setMsgReaction(e,r,n,s){try{return await this.sendApi("set_msg_emoji_like",{message_id:r,emoji_id:n,is_set:s}),!0}catch{return false}}async ReactMessageWithEmoji(e,r,n,s=true){return this.setMsgReaction(e,r,n,s)}async GetVersion(){let e=await this.sendApi("get_version_info",{});return {name:e.app_name,app_name:e.app_name,version:e.app_version,protocol:e.protocol_version}}async DownloadForwardMessage(e){throw new Error("Method not implemented.")}async getGroupHighlights(e,r,n){let s=[],o=await this.sendApi("get_essence_msg_list",{group_id:Number(e)});for(let i of o){let{message_seq:a,elements:u}=await this.getMsg({scene:"group",peer:e,name:""},i.message_id+""),p=i.sender_id+"",g=i.operator_id+"";s.push({groupId:e,senderId:p,operatorId:g,senderName:i.sender_nick,operatorName:i.operator_nick,operationTime:i.operator_time,messageTime:i.sender_time,messageSeq:a,messageId:i.message_id+"",jsonElements:JSON.stringify(u),group_id:e,sender_uid:p,sender_uin:p,sender_nick:i.sender_nick,operator_uid:g,operator_uin:g,operator_nick:i.operator_nick,operation_time:i.operator_time,message_time:i.sender_time,message_id:i.message_id+"",message_seq:a,json_elements:JSON.stringify(u)});}return s}async GetEssenceMessageList(e,r,n){return this.getGroupHighlights(e,r,n)}async uploadFile(e,r,n,s){try{return e.scene==="group"?await this.sendApi("upload_group_file",{group_id:Number(e.peer),file:r,name:n,folder:s}):await this.sendApi("upload_private_file",{user_id:Number(e.peer),file:r,name:n}),!0}catch{return false}}async UploadGroupFile(e,r,n,s){return this.uploadFile({scene:"group",peer:e,name:""},r,n,s)}async UploadPrivateFile(e,r,n){return this.uploadFile({scene:"friend",peer:e,name:""},r,n)}async setGgroupHighlights(e,r,n){try{return await this.sendApi(n?"set_essence_msg":"delete_essence_msg",{message_id:Number(r)}),!0}catch{return false}}async SetEssenceMessage(e,r){return this.setGgroupHighlights(e,r,true)}async DeleteEssenceMessage(e,r){return this.setGgroupHighlights(e,r,false)}async PokeMember(e,r){throw new Error("Method not implemented.")}async setFriendApplyResult(e,r,n){try{return await this.sendApi("set_friend_add_request",{flag:e,approve:r,remark:n}),!0}catch{return false}}async SetFriendApplyResult(e,r,n){return this.setFriendApplyResult(e,r,n)}async setGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async SetGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async setInvitedJoinGroupResult(e,r){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"invite"}),!0}catch{return false}}async SetInvitedJoinGroupResult(e,r,n){return this.setInvitedJoinGroupResult(e,r)}forwardKarinConvertAdapter(e){let r=[];for(let n of e)if(n.subType==="messageID")r.push({type:"node",data:{id:n.messageId}});else {let s={type:"node",data:{user_id:n.userId,nickname:n.nickname,content:this.KarinConvertAdapter(n.message)}};typeof n.options=="object"&&(n.options.prompt&&(s.data.prompt=n.options.prompt),n.options.summary&&(s.data.summary=n.options.summary),n.options.source&&(s.data.source=n.options.source)),r.push(s);}return r}async sendForwardMsg(e,r,n){if(e.scene==="group"){let s=await this.sendApi("send_group_forward_msg",{group_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}if(e.scene==="friend"){let s=await this.sendApi("send_private_forward_msg",{user_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}throw TypeError(`\u4E0D\u652F\u6301\u7684\u573A\u666F\u7C7B\u578B: ${e.scene}`)}async sendForwardMessage(e,r){return this.sendForwardMsg(e,r)}async sendApi(e,r,n=120){throw new Error("tips: \u8BF7\u5728\u5B50\u7C7B\u4E2D\u5B9E\u73B0\u6B64\u65B9\u6CD5")}async SendApi(e,r,n=0){return this.sendApi(e,r,n)}};be();var kt=class extends vt{seq;socket;constructor(e){super(),this.seq=0,this.socket=e;}async init(e,r,n){this.account.uid=e,this.account.uin=e,this.account.selfId=e,this.adapter.address=r;try{this.adapter.communication=n,this.onEvent(),await Promise.all([this.setBotInfo(),this.setAdapterInfo()]),logger.bot("info",this.selfId,`[onebot11][${n}] \u8FDE\u63A5\u6210\u529F: ${r}`),this.adapter.index=mt(n,this);}catch{throw this.socket.close(),new Error(`[onebot11][${n}] \u8FDE\u63A5\u5931\u8D25: ${r}`)}}onEvent(){this.socket.on("message",e=>{let r=e.toString(),n=JSON.parse(r),s=n;if(n.echo)return logger.bot("debug",this.selfId,`Api\u8C03\u7528\u56DE\u5E94: ${r}`),this.socket.emit(n.echo,n);if(s.post_type==="meta_event"&&s.meta_event_type==="heartbeat"){logger.bot("trace",this.selfId,"\u5FC3\u8DF3");return}logger.bot("debug",this.selfId,`\u6536\u5230\u4E0A\u62A5\u4E8B\u4EF6: ${r}`),this.eventHandlers(s,r);});}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=++this.seq+"",o=JSON.stringify({echo:s,action:e,params:r});return logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${o}`),new Promise((i,a)=>{let u=setTimeout(()=>{a(Ye(this.selfId,e,o,"\u8BF7\u6C42\u8D85\u65F6"));},n*1e3);this.socket.send(o),this.socket.once(s,p=>{clearTimeout(u),p.status==="ok"?i(p.data):a(Ye(this.selfId,e,o,p));});})}};Se();be();var On=class extends vt{#e;constructor(e,r,n){super(),this.account.selfId=e,this.adapter.address=r,this.adapter.communication="http",this.#e=n;}async init(){if(!await this.firstRequest())throw Eo(this.selfId),new Error(`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5931\u8D25: ${this.adapter.address}`);await this.setBotInfo(),logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u6210\u529F: ${this.adapter.address}`),this.adapter.index=mt(this.adapter.communication,this);let r=setInterval(async()=>{await this.firstRequest()||(logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5173\u95ED: ${this.adapter.address}`),dt("index",this.adapter.index),Eo(this.selfId),clearInterval(r));},60*1e3);m.on(`onebot:${this.selfId}`,n=>{let s=JSON.stringify(n);this.eventHandlers(n,s);});}async firstRequest(){try{return await this.setAdapterInfo(),!0}catch{return false}}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=JSON.stringify(r);logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${s}`);try{let o=this.#e?{Authorization:`Bearer ${this.#e}`}:{},{data:i}=await qo.post(`${this.adapter.address}/${e}`,r,{headers:o,timeout:n*1e3});if(i.status==="ok")return i.data;throw Ye(this.selfId,e,s,i)}catch(o){throw qo.isAxiosError(o)&&o.code==="ECONNABORTED"?Ye(this.selfId,e,s,"\u8BF7\u6C42\u8D85\u65F6"):(Ye(this.selfId,e,s),o)}}};be();var sr=class t extends kt{token;constructor(e,r){super(e),this.token=r,this.socket.on("close",()=>{try{this.socket.removeAllListeners(),dt("index",this.adapter.index),logger.bot("info",this.selfId,`\u8FDE\u63A5\u5173\u95ED\uFF0C\u5C06\u57285\u79D2\u540E\u91CD\u8FDE: ${this.adapter.address}`);}finally{setTimeout(()=>{t.init(this.adapter.address,this.token);},5e3);}});}static async init(e,r){let n=r?`Bearer ${r}`:undefined,s=n?new fu(e,{headers:{authorization:n}}):new fu(e);s.on("open",async()=>{await new t(s,r).init("\u83B7\u53D6\u4E2D...",e,"webSocketClient");}),s.on("error",o=>{logger.error(`[onebot][webSocketClient]\u8FDE\u63A5\u5931\u8D25: ${e}`),logger.error(o);});}};be();var Pn=class extends kt{socket;request;constructor(e,r){super(e),this.socket=e,this.request=r;}async init(){let e=`ws://${this.request.headers.host}${this.request.url}`,r=String(this.request.headers["x-self-id"]);this.auth(r)&&(super.init(r,e,"webSocketServer"),this.socket.on("close",()=>{this.socket.removeAllListeners(),dt("index",this.adapter.index),logger.bot("info",this.selfId,"\u8FDE\u63A5\u5173\u95ED");}));}auth(e){let r=Q.server();if(!r.reverseWsToken)return logger.bot("debug",e,"\u672A\u8BBE\u7F6E\u53CD\u5411ws\u9274\u6743\u79D8\u94A5\uFF0C\u8DF3\u8FC7\u9274\u6743"),true;let n=this.request.headers.authorization;return n!==`Bearer ${r.reverseWsToken}`?(logger.bot("error",e,`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} token: ${n}`),this.socket.close(),false):(logger.bot("debug",e,`\u9274\u6743\u6210\u529F: ${n}`),true)}};var sg=async()=>{m.on("ws:connection:onebot",(t,e)=>{new Pn(t,e).init();}),m.once("online",()=>{logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}`)}`),logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}/onebot/v11/ws`)}`);});},og=async()=>{let t=X();if(t.forwardWs)for(let e of t.forwardWs)typeof e=="string"?sr.init(e):sr.init(e.url,e.token);},ig=async()=>{let t=X();if(!(!t.onebotHttp||!Array.isArray(t.onebotHttp)))for(let{selfId:e,api:r,token:n}of t.onebotHttp)try{if(e==="default")continue;if(e=String(e),n=String(n),!e||!r||!r.startsWith("http")){logger.bot("error",e,"\u8BF7\u914D\u7F6E\u6B63\u786E\u7684 onebot http \u4FE1\u606F");continue}uu(e,n),await new On(e,r,n).init();}catch(s){logger.error(s);}};og();sg();ig();Xt();ho();var hu=class{name;rule;desc;event;priority;e;next;reply;constructor(e){let{name:r,rule:n}=e;this.name=r,this.rule=n,this.desc=e.desc||"\u65E0\u63CF\u8FF0",this.event=e.event||"message",this.priority=e.priority||1e4,this.reply=this.e.reply.bind(this.e);}async replyForward(e){let r=await this.e.bot.sendForwardMsg(this.e.contact,e);return {...r,message_id:r.messageId}}};
|
|
38
|
-
export{
|
|
37
|
+
params: ${r}`);};function Et(t){let e=[];for(let r of t)switch(r.type){case "text":e.push(_.text(r.data.text));break;case "face":e.push(_.face(Number(r.data.id)));break;case "image":e.push(_.image(r.data.url||r.data.file,{fileType:r.data.type}));break;case "record":e.push(_.record(r.data.url||r.data.file,r.data.magic===1));break;case "video":e.push(_.video(r.data.url||r.data.file));break;case "at":e.push(_.at(r.data.qq,r.data.name));break;case "poke":break;case "contact":e.push(_.contact(r.data.type==="qq"?"friend":"group",r.data.id));break;case "location":e.push(_.location(Number(r.data.lat),Number(r.data.lon),r.data.title||"",r.data.content||""));break;case "reply":e.push(_.reply(r.data.id));break;case "forward":break;case "json":e.push(_.json(r.data.data));break;case "xml":e.push(_.xml(r.data.data));break;default:e.push(_.text(JSON.stringify(r)));}return e}var pu=(t,e)=>{if(!e||!t.startsWith("file://"))return t;let r=["127.0.0.1","localhost"],n=new URL(e);return r.includes(n.hostname)?t:`base64://${A.readFileSync(t.replace("file://","")).toString("base64")}`},vo=(t,e)=>{var n,s,o;let r=[];for(let i of t){let a=i.type;switch(i.type){case "text":r.push({type:a,data:{text:i.text}});break;case "face":r.push({type:a,data:{id:i.id}});break;case "at":r.push({type:a,data:{qq:String(i.targetId),name:i.name}});break;case "reply":r.push({type:a,data:{id:i.messageId}});break;case "image":case "video":{r.push({type:a,data:{file:pu(i.file,e.adapter.address)}});break}case "json":case "xml":{r.push({type:a,data:{data:i.data}});break}case "record":{r.push({type:a,data:{file:pu(i.file,e.adapter.address),magic:i.magic||false}});break}case "music":{if(i.platform==="custom"){let{url:u,audio:p,title:g,author:d,pic:w}=i;r.push({type:"music",data:{type:"custom",url:u,audio:p,title:g,content:d,image:w}});}else r.push({type:"music",data:{type:i.platform,id:i.id}});break}case "longMsg":case "basketball":case "dice":case "marketFace":case "rps":{r.push({type:i.type,data:{id:i.id}});break}case "gift":{r.push({type:"gift",data:{qq:i.qq,id:i.id}});break}case "share":{r.push({type:"share",data:{url:i.url,title:i.title,content:i.content,image:i.image}});break}case "weather":{r.push({type:"weather",data:{city:i.city,type:i.type}});break}case "raw":r.push(i.data);break;case "node":{i.subType==="messageID"?r.push({type:"forward",data:{id:i.messageId}}):r.push({type:"node",data:{user_id:i.userId||e.selfId,nickname:i.nickname||e.selfName,content:vo(i.message,e),prompt:(n=i==null?undefined:i.options)==null?undefined:n.prompt,summary:(s=i==null?undefined:i.options)==null?undefined:s.summary,source:(o=i==null?undefined:i.options)==null?undefined:o.source}});break}case "button":case "markdown":case "keyboard":default:{r.push(i);break}}}return r};Xt();Zt();var gu=(t,e)=>{debug("onebot:createMessage",t);let r=t.time;if(t.message_type==="private"){if(t.sub_type==="friend"){let n=t.sender.user_id+"",s=Me(n),o=ce(n,t.sender.nickname,t.sender.sex,t.sender.age);xn({bot:e,time:r,contact:s,sender:o,rawEvent:t,messageId:t.message_id+"",messageSeq:t.message_id,eventId:`message:${t.message_id}`,elements:Et(t.message),srcReply:i=>e.sendMsg(s,i)});return}if(t.sub_type==="group"){let n=t.group_id+""||t.temp_source+"",s=t.sender.user_id+"",o=Ha(n,s),i=ce(s,t.sender.nickname);$a({bot:e,contact:o,elements:Et(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:i,time:r,srcReply:a=>e.sendMsg(o,a)});}return}if(t.message_type==="group"&&t.sub_type==="normal"){let n=t.group_id+"",s=t.sender.user_id+"",{nickname:o,role:i,sex:a,age:u,card:p,area:g,level:d,title:w}=t.sender,y=G(n),$=E(s,i,o,a,u,p,g,d,w);_n({bot:e,contact:y,elements:Et(t.message),eventId:`message:${t.message_id}`,messageId:t.message_id+"",messageSeq:t.message_id,rawEvent:t,sender:$,time:r,srcReply:q=>e.sendMsg(y,q)});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};Zt();Xt();var lu=(t,e)=>{let r=t.time;if(t.notice_type==="friend_recall"){let n=t.user_id+"",s=t.message_id+"",o=Me(n);Oa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:o,sender:ce(n),srcReply:i=>e.sendMsg(o,i),content:{messageId:s,operatorId:n,tips:""}});return}if(t.notice_type==="friend_add"){let n=t.user_id+"",s=Me(n);Ia({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ce(n),srcReply:o=>e.sendMsg(s,o),content:{targetId:n}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"&&t.group_id){let n=t.user_id+"",s=t.group_id+"",o=G(s);Pa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="poke"){let n=t.user_id+"",s=Me(n);Aa({bot:e,eventId:`notice:${n}.${t.time}`,rawEvent:t,time:r,contact:s,sender:ce(n),srcReply:o=>e.sendMsg(s,o),content:{operatorId:n,targetId:t.target_id+"",action:"",actionImage:"",suffix:""}});return}if(t.notice_type==="notify"&&t.sub_type==="lucky_king"){let n=t.user_id+"",s=t.group_id+"",o=G(s);ja({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{userId:n,targetId:t.target_id+""}});return}if(t.notice_type==="notify"&&t.sub_type==="honor"){let n=t.user_id+"",s=t.group_id+"",o=G(s);qa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{honorType:t.honor_type}});return}if(t.notice_type==="group_recall"){let n=t.user_id+"",s=t.group_id+"",o=t.message_id+"",i=t.operator_id+"",a=G(s);Ta({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:a,sender:E(n),srcReply:u=>e.sendMsg(a,u),content:{messageId:o,operatorId:i,targetId:n,tip:""}});return}if(t.notice_type==="group_increase"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Ca({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type}});return}if(t.notice_type==="group_decrease"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Fa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,type:t.sub_type==="kick_me"?"kickBot":t.sub_type}});return}if(t.notice_type==="group_upload"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Sa({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{fid:t.file.id,name:t.file.name,size:t.file.size,subId:t.file.busid}});return}if(t.notice_type==="group_admin"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Na({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{targetId:n,isAdmin:t.sub_type==="set"}});return}if(t.notice_type==="group_ban"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Da({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{operatorId:t.operator_id+"",targetId:n,duration:t.duration,isBan:t.sub_type==="ban"}});return}if(t.notice_type==="group_msg_emoji_like"){let n=t.user_id+"",s=t.group_id+"",o=G(s);po({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.likes[0].count,faceId:t.likes[0].emoji_id,isSet:true,messageId:t.message_id+""}});return}if(t.notice_type==="reaction"){let n=t.operator_id+"",s=t.group_id+"",o=G(s);po({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{count:t.count,faceId:Number(t.code),isSet:t.sub_type==="add",messageId:t.message_id+""}});return}if(t.notice_type==="essence"){let n=t.sender_id+"",s=t.group_id+"",o=G(s);Ra({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{isSet:t.sub_type==="add",messageId:t.message_id+"",operatorId:t.operator_id+"",senderId:n}});return}if(t.notice_type==="group_card"){let n=t.user_id+"",s=t.group_id+"",o=G(s);Ba({bot:e,eventId:`notice:${s}.${t.time}`,rawEvent:t,time:r,contact:o,sender:E(n),srcReply:i=>e.sendMsg(o,i),content:{newCard:t.card_new,operatorId:"",targetId:n}});return}logger.warn(`[AdapterOneBot] \u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${JSON.stringify(t)}`);};Zt();var vt=class extends Fe{constructor(){super(),this.adapter.platform="qq",this.adapter.standard="onebot11";}eventHandlers(e,r){if(debug("onebot",r),e.post_type==="message"||e.post_type==="message_sent"){debug("onebot:message",r),gu(e,this);return}if(e.post_type==="notice"){debug("onebot:notice",r),lu(e,this);return}if(e.post_type==="request"){debug("onebot:request",r);return}if(e.post_type==="meta_event"){if(debug("onebot:meta",r),e.meta_event_type==="lifecycle"){e.sub_type==="enable"&&logger.bot("debug",this.selfId,"OneBot\u542F\u7528"),e.sub_type==="disable"&&logger.bot("debug",this.selfId,"OneBot\u505C\u7528"),e.sub_type==="connect"&&logger.bot("debug",this.selfId,"WebSocket\u8FDE\u63A5\u6210\u529F");return}logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u5143\u4E8B\u4EF6: ${r}`);return}if(e.retcode){debug("onebot:retcode",r);let{retcode:n}=e;if(n===1401||n===1403){logger.error(`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} event: ${r}`);return}logger.bot("error",this.selfId,`\u53D1\u751F\u672A\u77E5\u9519\u8BEF: ${r}`);}debug("onebot:unknown",r),logger.bot("warn",this.selfId,`\u6536\u5230\u672A\u77E5\u4E8B\u4EF6: ${r}`);}AdapterConvertKarin(e){return Et(e)}KarinConvertAdapter(e){return vo(e,this)}async getAvatarUrl(e=this.account.selfId,r=0){return Number(e)?`https://q1.qlogo.cn/g?b=qq&s=${r}&nk=${e}`:`https://q.qlogo.cn/qqapp/${e}/${e}/${r}`}async getGroupAvatarUrl(e,r=0,n=0){return `https://p.qlogo.cn/gh/${e}/${e}${n?"_"+n:""}/`+r}async sendMsg(e,r,n){try{let{scene:s,peer:o}=e,i;s==="group"?i=await this.sendApi("send_msg",{message_type:"group",group_id:Number(o),message:this.KarinConvertAdapter(r)}):s==="groupTemp"?i=await this.sendApi("send_private_msg",{user_id:Number(e.subPeer),group_id:Number(o),message:this.KarinConvertAdapter(r)}):i=await this.sendApi("send_msg",{message_type:"private",user_id:Number(o),message:this.KarinConvertAdapter(r)});let a=String(i.message_id),u=Date.now();return {messageId:a,messageTime:u,rawData:i,message_id:a,time:u}}catch(s){if(n&&n>0)return this.sendMsg(e,r,n-1);throw s}}async SendMessage(e,r,n){return this.sendMsg(e,r,n)}async sendLongMsg(e,r){let n,{scene:s,peer:o}=e;s==="group"?n=await this.sendApi("send_group_msg",{group_id:Number(o),message:[{type:"forward",data:{id:r}}]}):n=await this.sendApi("send_private_msg",{user_id:Number(o),message:[{type:"forward",data:{id:r}}]});let i=String(n.message_id),a=Date.now();return {messageId:i,messageTime:a,rawData:n,message_id:i,message_time:a,time:a}}async SendMessageByResId(e,r){return this.sendLongMsg(e,r)}async recallMsg(e,r){try{return await this.sendApi("delete_msg",{message_id:Number(r)}),!0}catch{return false}}async RecallMessage(e,r){return this.recallMsg(e,r)}async getMsg(e,r){let n=await this.sendApi("get_msg",{message_id:Number(r)}),s=n.sender.user_id+"",o=n.message_seq||n.message_id,i=n.message_id+"";return {time:n.time,messageId:i,message_id:i,message_seq:o,messageSeq:o,contact:{scene:n.message_type==="group"?"group":"friend",peer:e.peer,sub_peer:null,name:""},sender:{userId:s,uid:s,uin:n.sender.user_id,nick:n.sender.nickname,role:"unknown",name:n.sender.nickname},elements:this.AdapterConvertKarin(n.message)}}async GetMessage(e,r){return this.getMsg(e,r)}async getHistoryMsg(e,r,n){var a,u,p,g;let s;this.adapter.name==="Lagrange.OneBot"?s={message_id:Number(r),count:n}:s={message_seq:(await this.getMsg(e,r)).message_seq,count:n};let o;e.scene==="group"?(s.group_id=Number(e.peer),o=await this.sendApi("get_group_msg_history",s)):(s.user_id=Number(e.peer),o=await this.sendApi("get_friend_msg_history",s));let i=[];for(let d of o.messages){let w=d.sender.user_id+""||"",y=String(d.message_id)||"",$=d.message_seq||0,q={time:Date.now(),messageId:y,messageSeq:$,message_id:y,message_seq:$,contact:e,sender:{userId:w,uid:w,uin:d.sender.user_id,nick:((a=d==null?undefined:d.sender)==null?undefined:a.nickname)||"",name:((u=d==null?undefined:d.sender)==null?undefined:u.nickname)||"",role:((p=d==null?undefined:d.sender)==null?undefined:p.role)||"unknown",card:e.scene==="group"&&((g=d==null?undefined:d.sender)==null?undefined:g.card)||""},elements:this.AdapterConvertKarin(d.message)};i.push(q);}return i}async GetHistoryMessage(e,r,n=1){return this.getHistoryMsg(e,r,n)}async sendLike(e,r){try{return await this.sendApi("send_like",{user_id:Number(e),times:r}),!0}catch{return false}}async VoteUser(e,r=10){return this.sendLike(e,r)}async groupKickMember(e,r,n,s){try{return await this.sendApi("set_group_kick",{group_id:Number(e),user_id:Number(r),reject_add_request:n}),!0}catch{return false}}async KickMember(e,r,n=false,s=""){return this.groupKickMember(e,r,n,s)}async setGroupMute(e,r,n){try{return await this.sendApi("set_group_ban",{group_id:Number(e),user_id:Number(r),duration:n}),!0}catch{return false}}async BanMember(e,r,n){return this.setGroupMute(e,r,n)}async setGroupAllMute(e,r){try{return await this.sendApi("set_group_whole_ban",{group_id:Number(e),enable:r}),!0}catch{return false}}async SetGroupWholeBan(e,r=true){return this.setGroupAllMute(e,r)}async setGroupAdmin(e,r,n){try{return await this.sendApi("set_group_admin",{group_id:Number(e),user_id:Number(r),enable:n}),!0}catch{return false}}async SetGroupAdmin(e,r,n){return this.setGroupAdmin(e,r,n)}async setGroupMemberCard(e,r,n){try{return await this.sendApi("set_group_card",{group_id:Number(e),user_id:Number(r),card:n}),!0}catch{return false}}async ModifyMemberCard(e,r,n){return this.setGroupMemberCard(e,r,n)}async setGroupName(e,r){try{return await this.sendApi("set_group_name",{group_id:Number(e),group_name:r}),!0}catch{return false}}async ModifyGroupName(e,r){return this.setGroupName(e,r)}async setGroupQuit(e,r){try{return await this.sendApi("set_group_leave",{group_id:Number(e),is_dismiss:r}),!0}catch{return false}}async LeaveGroup(e,r=false){return this.setGroupQuit(e,r)}async setGroupMemberTitle(e,r,n){try{return await this.sendApi("set_group_special_title",{group_id:Number(e),user_id:Number(r),special_title:n}),!0}catch{return false}}async SetGroupUniqueTitle(e,r,n){return this.setGroupMemberTitle(e,r,n)}async GetCurrentAccount(){let e=await this.sendApi("get_login_info",{});return {account_uid:e.user_id+"",account_uin:e.user_id+"",account_name:e.nickname}}async getStrangerInfo(e){let r=await this.sendApi("get_stranger_info",{user_id:Number(e[0]),no_cache:true});return {...r,userId:e,user_id:e,uid:r.uid||"",uin:e,qid:r.qid||"",nick:r.nickname,remark:"",level:0,birthday:"",login_day:r.login_days||0,vote_cnt:0,is_school_verified:undefined,age:r.age,sex:r.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:r.is_vip,super_vip:undefined,voted:undefined}}async getFriendList(e){return (await this.sendApi("get_friend_list",{})).map(n=>{let s=n.user_id+"";return {...n,userId:s,user_id:s,uid:n.uid||"",uin:s,qid:n.qid||"",nick:n.nickname,remark:"",level:0,birthday:"",login_day:n.login_days||0,vote_cnt:0,is_school_verified:undefined,age:n.age,sex:n.sex||"unknown",big_vip:undefined,hollywood_vip:undefined,qq_vip:n.is_vip,super_vip:undefined,voted:undefined}})}async GetStrangerProfileCard(e){return this.getStrangerInfo(e[0])}async GetFriendList(){return this.getFriendList()}async getGroupInfo(e,r){let n=await this.sendApi("get_group_info",{group_id:Number(e),no_cache:r}),s=n.group_name;return {groupId:e,groupName:s,groupRemark:s,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:s,group_remark:s,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:e,admins:[],owner:""}}async GetGroupInfo(e,r=false){return this.getGroupInfo(e,r)}async getGroupList(e){return (await this.sendApi("get_group_list",{no_cache:e})).map(n=>{let s=n.group_id+"",o=n.group_name;return {groupId:s,groupName:o,groupRemark:o,maxMemberCount:n.max_member_count,memberCount:n.member_count,groupDesc:"",group_name:o,group_remark:o,max_member_count:n.max_member_count,member_count:n.member_count,group_uin:s,admins:[],owner:""}})}async GetGroupList(){return this.getGroupList()}async getGroupMemberInfo(e,r,n){let s=Number(r),o=await this.sendApi("get_group_member_info",{group_id:Number(e),user_id:s,no_cache:n});return {...o,userId:r,uid:r,uin:r,nick:o.nickname,role:o.role,age:o.age,uniqueTitle:o.title,card:o.card,joinTime:o.join_time,lastActiveTime:o.last_sent_time,level:Number(o.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:o.unfriendly,sex:o.sex,get sender(){return E(this.userId,this.role,this.nick,this.sex,this.age,this.card,this.area,this.level,this.title)}}}async GetGroupMemberInfo(e,r,n=false){return this.getGroupMemberInfo(e,r,n)}async getGroupMemberList(e,r){return (await this.sendApi("get_group_member_list",{group_id:Number(e),no_cache:r})).map(s=>{let o=s.user_id+"";return {...s,userId:o,uid:o,uin:o,nick:s.nickname,role:s.role,age:s.age,uniqueTitle:s.title,card:s.card,joinTime:s.join_time,lastActiveTime:s.last_sent_time,level:Number(s.level)||0,shutUpTime:0,distance:undefined,honors:[],unfriendly:s.unfriendly,sex:s.sex,get sender(){return E(o,s.role,s.nickname,s.sex,s.age,s.card,s.area,Number(s.level),s.title)}}})}async GetGroupMemberList(e,r=false){return this.getGroupMemberList(e,r)}async getGroupHonor(e){let r=await this.sendApi("get_group_honor_info",{group_id:Number(e),type:"all"}),n=[];return r.talkative_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5386\u53F2\u9F99\u738B",id:0,avatar:s.avatar,description:s.description});}),r.performer_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u4E4B\u706B",avatar:s.avatar,id:0,description:s.description});}),r.legend_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u7FA4\u804A\u70BD\u7130",avatar:s.avatar,id:0,description:s.description});}),r.strong_newbie_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5192\u5C16\u5C0F\u6625\u7B0B",avatar:s.avatar,id:0,description:s.description});}),r.emotion_list.forEach(s=>{let o=s.user_id+"";n.push({userId:o,nick:s.nickname,honorName:"\u5FEB\u4E50\u4E4B\u6E90",avatar:s.avatar,id:0,description:s.description});}),n}async GetGroupHonor(e,r=false){return this.getGroupHonor(e)}async setMsgReaction(e,r,n,s){try{return await this.sendApi("set_msg_emoji_like",{message_id:r,emoji_id:n,is_set:s}),!0}catch{return false}}async ReactMessageWithEmoji(e,r,n,s=true){return this.setMsgReaction(e,r,n,s)}async GetVersion(){let e=await this.sendApi("get_version_info",{});return {name:e.app_name,app_name:e.app_name,version:e.app_version,protocol:e.protocol_version}}async DownloadForwardMessage(e){throw new Error("Method not implemented.")}async getGroupHighlights(e,r,n){let s=[],o=await this.sendApi("get_essence_msg_list",{group_id:Number(e)});for(let i of o){let{message_seq:a,elements:u}=await this.getMsg({scene:"group",peer:e,name:""},i.message_id+""),p=i.sender_id+"",g=i.operator_id+"";s.push({groupId:e,senderId:p,operatorId:g,senderName:i.sender_nick,operatorName:i.operator_nick,operationTime:i.operator_time,messageTime:i.sender_time,messageSeq:a,messageId:i.message_id+"",jsonElements:JSON.stringify(u),group_id:e,sender_uid:p,sender_uin:p,sender_nick:i.sender_nick,operator_uid:g,operator_uin:g,operator_nick:i.operator_nick,operation_time:i.operator_time,message_time:i.sender_time,message_id:i.message_id+"",message_seq:a,json_elements:JSON.stringify(u)});}return s}async GetEssenceMessageList(e,r,n){return this.getGroupHighlights(e,r,n)}async uploadFile(e,r,n,s){try{return e.scene==="group"?await this.sendApi("upload_group_file",{group_id:Number(e.peer),file:r,name:n,folder:s}):await this.sendApi("upload_private_file",{user_id:Number(e.peer),file:r,name:n}),!0}catch{return false}}async UploadGroupFile(e,r,n,s){return this.uploadFile({scene:"group",peer:e,name:""},r,n,s)}async UploadPrivateFile(e,r,n){return this.uploadFile({scene:"friend",peer:e,name:""},r,n)}async setGgroupHighlights(e,r,n){try{return await this.sendApi(n?"set_essence_msg":"delete_essence_msg",{message_id:Number(r)}),!0}catch{return false}}async SetEssenceMessage(e,r){return this.setGgroupHighlights(e,r,true)}async DeleteEssenceMessage(e,r){return this.setGgroupHighlights(e,r,false)}async PokeMember(e,r){throw new Error("Method not implemented.")}async setFriendApplyResult(e,r,n){try{return await this.sendApi("set_friend_add_request",{flag:e,approve:r,remark:n}),!0}catch{return false}}async SetFriendApplyResult(e,r,n){return this.setFriendApplyResult(e,r,n)}async setGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async SetGroupApplyResult(e,r,n){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"add",reason:n}),!0}catch{return false}}async setInvitedJoinGroupResult(e,r){try{return await this.sendApi("set_group_add_request",{flag:e,approve:r,sub_type:"invite"}),!0}catch{return false}}async SetInvitedJoinGroupResult(e,r,n){return this.setInvitedJoinGroupResult(e,r)}forwardKarinConvertAdapter(e){let r=[];for(let n of e)if(n.subType==="messageID")r.push({type:"node",data:{id:n.messageId}});else {let s={type:"node",data:{user_id:n.userId,nickname:n.nickname,content:this.KarinConvertAdapter(n.message)}};typeof n.options=="object"&&(n.options.prompt&&(s.data.prompt=n.options.prompt),n.options.summary&&(s.data.summary=n.options.summary),n.options.source&&(s.data.source=n.options.source)),r.push(s);}return r}async sendForwardMsg(e,r,n){if(e.scene==="group"){let s=await this.sendApi("send_group_forward_msg",{group_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}if(e.scene==="friend"){let s=await this.sendApi("send_private_forward_msg",{user_id:Number(e.peer),messages:this.forwardKarinConvertAdapter(r),...n}),o=String(s.message_id);return {messageId:o,forwardId:s.forward_id,message_id:o}}throw TypeError(`\u4E0D\u652F\u6301\u7684\u573A\u666F\u7C7B\u578B: ${e.scene}`)}async sendForwardMessage(e,r){return this.sendForwardMsg(e,r)}async sendApi(e,r,n=120){throw new Error("tips: \u8BF7\u5728\u5B50\u7C7B\u4E2D\u5B9E\u73B0\u6B64\u65B9\u6CD5")}async SendApi(e,r,n=0){return this.sendApi(e,r,n)}};be();var kt=class extends vt{seq;socket;constructor(e){super(),this.seq=0,this.socket=e;}async init(e,r,n){this.account.uid=e,this.account.uin=e,this.account.selfId=e,this.adapter.address=r;try{this.adapter.communication=n,this.onEvent(),await Promise.all([this.setBotInfo(),this.setAdapterInfo()]),logger.bot("info",this.selfId,`[onebot11][${n}] \u8FDE\u63A5\u6210\u529F: ${r}`),this.adapter.index=mt(n,this);}catch{throw this.socket.close(),new Error(`[onebot11][${n}] \u8FDE\u63A5\u5931\u8D25: ${r}`)}}onEvent(){this.socket.on("message",e=>{let r=e.toString(),n=JSON.parse(r),s=n;if(n.echo)return logger.bot("debug",this.selfId,`Api\u8C03\u7528\u56DE\u5E94: ${r}`),this.socket.emit(n.echo,n);if(s.post_type==="meta_event"&&s.meta_event_type==="heartbeat"){logger.bot("trace",this.selfId,"\u5FC3\u8DF3");return}logger.bot("debug",this.selfId,`\u6536\u5230\u4E0A\u62A5\u4E8B\u4EF6: ${r}`),this.eventHandlers(s,r);});}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=++this.seq+"",o=JSON.stringify({echo:s,action:e,params:r});return logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${o}`),new Promise((i,a)=>{let u=setTimeout(()=>{a(Ye(this.selfId,e,o,"\u8BF7\u6C42\u8D85\u65F6"));},n*1e3);this.socket.send(o),this.socket.once(s,p=>{clearTimeout(u),p.status==="ok"?i(p.data):a(Ye(this.selfId,e,o,p));});})}};Se();be();var On=class extends vt{#e;constructor(e,r,n){super(),this.account.selfId=e,this.adapter.address=r,this.adapter.communication="http",this.#e=n;}async init(){if(!await this.firstRequest())throw _o(this.selfId),new Error(`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5931\u8D25: ${this.adapter.address}`);await this.setBotInfo(),logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u6210\u529F: ${this.adapter.address}`),this.adapter.index=mt(this.adapter.communication,this);let r=setInterval(async()=>{await this.firstRequest()||(logger.bot("info",this.selfId,`[onebot11][${this.adapter.communication}] \u8FDE\u63A5\u5173\u95ED: ${this.adapter.address}`),dt("index",this.adapter.index),_o(this.selfId),clearInterval(r));},60*1e3);m.on(`onebot:${this.selfId}`,n=>{let s=JSON.stringify(n);this.eventHandlers(n,s);});}async firstRequest(){try{return await this.setAdapterInfo(),!0}catch{return false}}async setAdapterInfo(){let e=await this.sendApi("get_version_info",{});this.adapter.name=e.app_name,this.adapter.version=e.app_version;}async setBotInfo(){let e=await this.sendApi("get_login_info",{});this.account.name=e.nickname,this.account.selfId=e.user_id+"",this.account.avatar=`https://q1.qlogo.cn/g?b=qq&s=0&nk=${e.user_id}`;}async sendApi(e,r,n=120){n||(n=Q.timeout());let s=JSON.stringify(r);logger.bot("debug",this.selfId,`\u53D1\u9001Api\u8BF7\u6C42 ${e}: ${s}`);try{let o=this.#e?{Authorization:`Bearer ${this.#e}`}:{},{data:i}=await jo.post(`${this.adapter.address}/${e}`,r,{headers:o,timeout:n*1e3});if(i.status==="ok")return i.data;throw Ye(this.selfId,e,s,i)}catch(o){throw jo.isAxiosError(o)&&o.code==="ECONNABORTED"?Ye(this.selfId,e,s,"\u8BF7\u6C42\u8D85\u65F6"):(Ye(this.selfId,e,s),o)}}};be();var sr=class t extends kt{token;constructor(e,r){super(e),this.token=r,this.socket.on("close",()=>{try{this.socket.removeAllListeners(),dt("index",this.adapter.index),logger.bot("info",this.selfId,`\u8FDE\u63A5\u5173\u95ED\uFF0C\u5C06\u57285\u79D2\u540E\u91CD\u8FDE: ${this.adapter.address}`);}finally{setTimeout(()=>{t.init(this.adapter.address,this.token);},5e3);}});}static async init(e,r){let n=r?`Bearer ${r}`:undefined,s=n?new fu(e,{headers:{authorization:n}}):new fu(e);s.on("open",async()=>{await new t(s,r).init("\u83B7\u53D6\u4E2D...",e,"webSocketClient");}),s.on("error",o=>{logger.error(`[onebot][webSocketClient]\u8FDE\u63A5\u5931\u8D25: ${e}`),logger.error(o);});}};be();var Pn=class extends kt{socket;request;constructor(e,r){super(e),this.socket=e,this.request=r;}async init(){let e=`ws://${this.request.headers.host}${this.request.url}`,r=String(this.request.headers["x-self-id"]);this.auth(r)&&(super.init(r,e,"webSocketServer"),this.socket.on("close",()=>{this.socket.removeAllListeners(),dt("index",this.adapter.index),logger.bot("info",this.selfId,"\u8FDE\u63A5\u5173\u95ED");}));}auth(e){let r=Q.server();if(!r.reverseWsToken)return logger.bot("debug",e,"\u672A\u8BBE\u7F6E\u53CD\u5411ws\u9274\u6743\u79D8\u94A5\uFF0C\u8DF3\u8FC7\u9274\u6743"),true;let n=this.request.headers.authorization;return n!==`Bearer ${r.reverseWsToken}`?(logger.bot("error",e,`[oneBot11][\u9274\u6743\u5931\u8D25] address: ${this.adapter.address} token: ${n}`),this.socket.close(),false):(logger.bot("debug",e,`\u9274\u6743\u6210\u529F: ${n}`),true)}};var sg=async()=>{m.on("ws:connection:onebot",(t,e)=>{new Pn(t,e).init();}),m.once("online",()=>{logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}`)}`),logger.info(`[server] onebot: ${logger.green(`ws://127.0.0.1:${process.env.karin_port}/onebot/v11/ws`)}`);});},og=async()=>{let t=X();if(t.forwardWs)for(let e of t.forwardWs)typeof e=="string"?sr.init(e):sr.init(e.url,e.token);},ig=async()=>{let t=X();if(!(!t.onebotHttp||!Array.isArray(t.onebotHttp)))for(let{selfId:e,api:r,token:n}of t.onebotHttp)try{if(e==="default")continue;if(e=String(e),n=String(n),!e||!r||!r.startsWith("http")){logger.bot("error",e,"\u8BF7\u914D\u7F6E\u6B63\u786E\u7684 onebot http \u4FE1\u606F");continue}uu(e,n),await new On(e,r,n).init();}catch(s){logger.error(s);}};og();sg();ig();Xt();var hu=class{name;rule;desc;event;priority;e;next;reply;constructor(e){let{name:r,rule:n}=e;this.name=r,this.rule=n,this.desc=e.desc||"\u65E0\u63CF\u8FF0",this.event=e.event||"message",this.priority=e.priority||1e4,this.reply=this.e.reply.bind(this.e);}async replyForward(e){let r=await this.e.bot.sendForwardMsg(this.e.contact,e);return {...r,message_id:r.messageId}}};
|
|
38
|
+
export{Rb as Bot,An as OB11ApiAction,Eo as OB11Event,tg as OB11MessageSubType,eg as OB11MessageType,cu as OB11NoticeType,rg as OB11RequestType,Zp as OB11Sex,hu as Plugin,Ft as Watch,Nt as Watcher,ne as YamlEditor,ur as absPath,D as app,Ct as applyComments,gr as base64,tt as buffer,Nb as buttonHandle,ri as changelog,Vp as checkGitPluginUpdate,Up as checkPkgUpdate,Uo as clearRequire,ge as clearRequireFile,Jn as comment,ki as common,Q as config,Do as copyConfig,No as copyConfigSync,qn as copyFiles,jn as copyFilesSync,uy as createDirectMessage,py as createFriendDecreaseNotice,Ia as createFriendIncreaseNotice,xn as createFriendMessage,Na as createGroupAdminChangedNotice,fy as createGroupApplyRequest,Ba as createGroupCardChangedNotice,Sa as createGroupFileUploadedNotice,Ra as createGroupHlightsChangedNotice,qa as createGroupHonorChangedNotice,hy as createGroupInviteRequest,ja as createGroupLuckKingNotice,Ca as createGroupMemberAddNotice,Da as createGroupMemberBanNotice,Fa as createGroupMemberDelNotice,ly as createGroupMemberTitleUpdatedNotice,_n as createGroupMessage,po as createGroupMessageReactionNotice,Pa as createGroupPokeNotice,Ta as createGroupRecallNotice,dy as createGroupSignInNotice,$a as createGroupTempMessage,my as createGroupWholeBanNotice,ay as createGuildMessage,Di as createLogger,cr as createPluginDir,yy as createPrivateApplyRequest,gy as createPrivateFileUploadedNotice,Aa as createPrivatePokeNotice,Oa as createPrivateRecallNotice,ie as createRawMessage,cy as createReceiveLikeNotice,nu as default,ar as downFile,Ku as errorToString,x as exec,ir as existToMkdir,ze as existToMkdirSync,Sn as exists,Oo as existsSync,ds as ffmpeg,Qu as ffplay,ms as ffprobe,O as file,Qp as fileToUrl,xo as fileToUrlHandlerKey,rt as filesByExt,hs as formatTime,su as fs,na as getAllBot,If as getAllBotID,sa as getAllBotList,Vs as getBot,oa as getBotCount,rr as getCommit,pr as getFiles,wo as getHash,us as getPid,nr as getPkgVersion,Bt as getPluginInfo,fr as getRelPath,In as getRemotePkgVersion,Ji as getRequestIp,ou as getTime,zs as handler,Wp as importModule,Ds as isClass,or as isDir,Po as isDirSync,Vu as isDocker,Ao as isFile,To as isFileSync,Ls as isIPv4Loop,Yi as isIPv6Loop,Yu as isLinux,Hs as isLocalRequest,Ui as isLoopback,Ju as isMac,wr as isPlugin,zu as isRoot,zo as isStatic,yr as isSubPath,Or as isWin,Ho as json,nu as karin,bs as karinToQQBot,Mr as key,zc as level,pp as listen,jt as lock,Qn as lockMethod,Dt as lockProp,Xn as log,dm as logger,Zn as logs,_i as makeForward,Be as makeMessage,Bn as mkdir,$t as mkdirSync,qt as parseChangelog,br as pkgRoot,xi as qqbotToKarin,es as range,st as read,Lo as readFile,Ln as readJson,Pt as readJsonSync,Ti as redis,mt as registerBot,K as requireFile,j as requireFileSync,dp as restart,Ws as restartDirect,So as rmSync,_r as save,_ as segment,qr as sendMsg,pe as sep,Nr as server,mr as splitPath,Oe as stream,os as stringifyError,au as system,dt as unregisterBot,zp as updateAllGitPlugin,Jp as updateAllPkg,iu as updateGitPlugin,Yp as updatePkg,Xu as uptime,hr as urlToPath,Vn as watch,ei as watchAndMerge,xr as write,Hn as writeJson,Tt as writeJsonSync,Ys as wss,Xo as yaml};
|