@saltify/milky-types 1.2.0 → 1.2.1-rc.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["packageJson.version","z"],"sources":["../src/scalar.ts","../src/common.ts","../src/message.ts","../src/event.ts","../package.json","../src/constants.ts","../src/api/system.ts","../src/api/message.ts","../src/api/friend.ts","../src/robust.ts","../src/api/group.ts","../src/api/file.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport const ZInt32 = z.number().int().nonnegative().meta({ scalarType: 'int32' });\nexport const ZInt64 = z.number().int().nonnegative().meta({ scalarType: 'int64' });\nexport const ZBoolean = z.boolean().meta({ scalarType: 'boolean' });\nexport const ZString = z.string().meta({ scalarType: 'string' });\n\nexport const ZUin = z.number().int().min(10001).max(4294967295).meta({ scalarType: 'int64' });\n\nexport const ZInt32WithDefault = (defaultValue: number) => z.number()\n .int()\n .nonnegative()\n .nullish()\n .default(defaultValue)\n .transform<number>((v) => v ?? defaultValue)\n .meta({ scalarType: 'int32' });\n\nexport const ZInt64WithDefault = (defaultValue: number) => z.number()\n .int()\n .nonnegative()\n .nullish()\n .default(defaultValue)\n .transform<number>((v) => v ?? defaultValue)\n .meta({ scalarType: 'int64' });\n\nexport const ZBooleanWithDefault = (defaultValue: boolean) => z.boolean()\n .nullish()\n .default(defaultValue)\n .transform<boolean>((v) => v ?? defaultValue)\n .meta({ scalarType: 'boolean' });\n\nexport const ZStringWithDefault = (defaultValue: string) => z.string()\n .nullish()\n .default(defaultValue)\n .transform<string>((v) => v ?? defaultValue)\n .meta({ scalarType: 'string' });\n","import { z } from 'zod';\nimport { ZInt32, ZInt64, ZString, ZBoolean, ZUin } from './scalar';\n\nconst UserEntityBase = z.object({\n user_id: ZUin.describe('用户 QQ 号'),\n nickname: ZString.describe('用户昵称'),\n sex: z.enum(['male', 'female', 'unknown']).describe('用户性别'),\n}).describe('基础用户实体');\n\nexport const FriendCategoryEntity = z.object({\n category_id: ZInt32.describe('好友分组 ID'),\n category_name: ZString.describe('好友分组名称'),\n}).describe('好友分组实体');\n\nexport const FriendEntity = UserEntityBase.extend({\n qid: ZString.describe('用户 QID'),\n remark: ZString.describe('好友备注'),\n category: z.lazy(() => FriendCategoryEntity).describe('好友分组'),\n}).describe('好友实体');\n\nexport const GroupEntity = z.object({\n group_id: ZUin.describe('群号'),\n group_name: ZString.describe('群名称'),\n member_count: ZInt32.describe('群成员数量'),\n max_member_count: ZInt32.describe('群容量'),\n remark: ZString.describe('群备注'),\n created_time: ZInt64.describe('群创建时间,Unix 时间戳(秒)'),\n description: ZString.describe('群简介'),\n question: ZString.describe('加群验证问题'),\n announcement: ZString.describe('群公告预览'),\n}).describe('群实体');\n\nexport const GroupMemberEntity = UserEntityBase.extend({\n group_id: ZUin.describe('群号'),\n card: ZString.describe('成员备注'),\n title: ZString.describe('专属头衔'),\n level: ZInt32.describe('群等级,注意和 QQ 等级区分'),\n role: z.enum(['owner', 'admin', 'member']).describe('权限等级'),\n join_time: ZInt64.describe('入群时间,Unix 时间戳(秒)'),\n last_sent_time: ZInt64.describe('最后发言时间,Unix 时间戳(秒)'),\n shut_up_end_time: ZInt64.nullish().describe('禁言结束时间,Unix 时间戳(秒)'),\n}).describe('群成员实体');\n\nexport const GroupAnnouncementEntity = z.object({\n group_id: ZUin.describe('群号'),\n announcement_id: ZString.describe('公告 ID'),\n user_id: ZUin.describe('发送者 QQ 号'),\n time: ZInt64.describe('Unix 时间戳(秒)'),\n content: ZString.describe('公告内容'),\n image_url: ZString.nullish().describe('公告图片 URL'),\n}).describe('群公告实体');\n\nexport const GroupFileEntity = z.object({\n group_id: ZUin.describe('群号'),\n file_id: ZString.describe('文件 ID'),\n file_name: ZString.describe('文件名称'),\n parent_folder_id: ZString.describe('父文件夹 ID'),\n file_size: ZInt64.describe('文件大小(字节)'),\n uploaded_time: ZInt64.describe('上传时的 Unix 时间戳(秒)'),\n expire_time: ZInt64.nullish().describe('过期时的 Unix 时间戳(秒)'),\n uploader_id: ZUin.describe('上传者 QQ 号'),\n downloaded_times: ZInt32.describe('下载次数'),\n}).describe('群文件实体');\n\nexport const GroupFolderEntity = z.object({\n group_id: ZUin.describe('群号'),\n folder_id: ZString.describe('文件夹 ID'),\n parent_folder_id: ZString.describe('父文件夹 ID'),\n folder_name: ZString.describe('文件夹名称'),\n created_time: ZInt64.describe('创建时的 Unix 时间戳(秒)'),\n last_modified_time: ZInt64.describe('最后修改时的 Unix 时间戳(秒)'),\n creator_id: ZUin.describe('创建者 QQ 号'),\n file_count: ZInt32.describe('文件数量'),\n}).describe('群文件夹实体');\n\nexport const FriendRequest = z.object({\n time: ZInt64.describe('请求发起时的 Unix 时间戳(秒)'),\n initiator_id: ZUin.describe('请求发起者 QQ 号'),\n initiator_uid: ZString.describe('请求发起者 UID'),\n target_user_id: ZUin.describe('目标用户 QQ 号'),\n target_user_uid: ZString.describe('目标用户 UID'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n comment: ZString.describe('申请附加信息'),\n via: ZString.describe('申请来源'),\n is_filtered: ZBoolean.describe('请求是否被过滤(发起自风险账户)'),\n}).describe('好友请求实体');\n\nexport const GroupNotification = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('join_request'), // internal type: 1\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('通知序列号'),\n is_filtered: ZBoolean.describe('请求是否被过滤(发起自风险账户)'),\n initiator_id: ZUin.describe('发起者 QQ 号'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n operator_id: ZUin.nullish().describe('处理请求的管理员 QQ 号'),\n comment: ZString.describe('入群请求附加信息'),\n }).describe('用户入群请求'),\n z.object({\n type: z.literal('admin_change'), // internal type: 3 (set), 16 (unset)\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('通知序列号'),\n target_user_id: ZUin.describe('被设置/取消用户 QQ 号'),\n is_set: ZBoolean.describe('是否被设置为管理员,`false` 表示被取消管理员'),\n operator_id: ZUin.describe('操作者(群主)QQ 号'),\n }).describe('群管理员变更通知'),\n z.object({\n type: z.literal('kick'), // internal type: 6, 7\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('通知序列号'),\n target_user_id: ZUin.describe('被移除用户 QQ 号'),\n operator_id: ZUin.describe('移除用户的管理员 QQ 号'),\n }).describe('群成员被移除通知'),\n z.object({\n type: z.literal('quit'), // internal type: 13\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('通知序列号'),\n target_user_id: ZUin.describe('退群用户 QQ 号'),\n }).describe('群成员退群通知'),\n z.object({\n type: z.literal('invited_join_request'), // internal type: 22\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('通知序列号'),\n initiator_id: ZUin.describe('邀请者 QQ 号'),\n target_user_id: ZUin.describe('被邀请用户 QQ 号'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n operator_id: ZUin.nullish().describe('处理请求的管理员 QQ 号'),\n }).describe('群成员邀请他人入群请求'),\n]).describe('群通知实体');\n\nexport type FriendCategoryEntity = z.infer<typeof FriendCategoryEntity>;\nexport type FriendEntity = z.infer<typeof FriendEntity>;\nexport type GroupEntity = z.infer<typeof GroupEntity>;\nexport type GroupMemberEntity = z.infer<typeof GroupMemberEntity>;\nexport type GroupAnnouncementEntity = z.infer<typeof GroupAnnouncementEntity>;\nexport type GroupFileEntity = z.infer<typeof GroupFileEntity>;\nexport type GroupFolderEntity = z.infer<typeof GroupFolderEntity>;\nexport type FriendRequest = z.infer<typeof FriendRequest>;\nexport type GroupNotification = z.infer<typeof GroupNotification>;\n","import { z } from 'zod';\nimport { ZBoolean, ZInt32, ZInt64, ZString, ZUin } from './scalar';\nimport { FriendEntity, GroupEntity, GroupMemberEntity } from './common';\n\nexport const IncomingResourceSegmentBase = z.object({\n resource_id: ZString.describe('资源 ID'),\n temp_url: ZString.describe('临时 URL'),\n});\n\nexport const OutgoingResourceSegmentBase = z.object({\n uri: ZString.describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n});\n\nexport const IncomingSegment = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('text'),\n data: z.object({\n text: ZString.describe('文本内容'),\n }),\n }).describe('文本消息段'),\n\n z.object({\n type: z.literal('mention'),\n data: z.object({\n user_id: ZUin.describe('提及的 QQ 号'),\n name: ZString.describe('去掉 `@` 前缀的提及的名称'),\n }),\n }).describe('提及消息段'),\n\n z.object({\n type: z.literal('mention_all'),\n data: z.object({}),\n }).describe('提及全体消息段'),\n\n z.object({\n type: z.literal('face'),\n data: z.object({\n face_id: ZString.describe('表情 ID'),\n is_large: ZBoolean.describe('是否为超级表情'),\n }),\n }).describe('表情消息段'),\n\n z.object({\n type: z.literal('reply'),\n data: z.object({\n message_seq: ZInt64.describe('被引用的消息序列号'),\n sender_id: ZUin.describe('被引用的消息发送者 QQ 号'),\n sender_name: ZString.nullish().describe('被引用的消息发送者名称,仅在合并转发中能够获取'),\n time: ZInt64.describe('被引用的消息的 Unix 时间戳(秒)'),\n get segments() {\n return z.array(z.lazy(() => IncomingSegment)).describe('被引用的消息内容');\n }\n }),\n }).describe('回复消息段'),\n\n z.object({\n type: z.literal('image'),\n data: IncomingResourceSegmentBase.extend({\n width: ZInt32.describe('图片宽度'),\n height: ZInt32.describe('图片高度'),\n summary: ZString.describe('图片预览文本'),\n sub_type: z.enum(['normal', 'sticker']).describe('图片类型'),\n }),\n }).describe('图片消息段'),\n\n z.object({\n type: z.literal('record'),\n data: IncomingResourceSegmentBase.extend({\n duration: ZInt32.describe('语音时长(秒)'),\n }),\n }).describe('语音消息段'),\n\n z.object({\n type: z.literal('video'),\n data: IncomingResourceSegmentBase.extend({\n width: ZInt32.describe('视频宽度'),\n height: ZInt32.describe('视频高度'),\n duration: ZInt32.describe('视频时长(秒)'),\n }),\n }).describe('视频消息段'),\n\n z.object({\n type: z.literal('file'),\n data: z.object({\n file_id: ZString.describe('文件 ID'),\n file_name: ZString.describe('文件名称'),\n file_size: ZInt64.describe('文件大小(字节)'),\n file_hash: ZString.nullish().describe('文件的 TriSHA1 哈希值,仅在私聊文件中存在'),\n }),\n }).describe('文件消息段'),\n\n z.object({\n type: z.literal('forward'),\n data: z.object({\n forward_id: ZString.describe('合并转发 ID'),\n title: ZString.describe('合并转发标题'),\n preview: z.array(ZString).describe('合并转发预览文本'),\n summary: ZString.describe('合并转发摘要'),\n }),\n }).describe('合并转发消息段'),\n\n z.object({\n type: z.literal('market_face'),\n data: z.object({\n emoji_package_id: ZInt32.describe('市场表情包 ID'),\n emoji_id: ZString.describe('市场表情 ID'),\n key: ZString.describe('市场表情 Key'),\n summary: ZString.describe('市场表情预览文本'),\n url: ZString.describe('市场表情 URL'),\n }),\n }).describe('市场表情消息段'),\n\n z.object({\n type: z.literal('light_app'),\n data: z.object({\n app_name: ZString.describe('小程序名称'),\n json_payload: ZString.describe('小程序 JSON 数据'),\n }),\n }).describe('小程序消息段'),\n\n z.object({\n type: z.literal('xml'),\n data: z.object({\n service_id: ZInt32.describe('服务 ID'),\n xml_payload: ZString.describe('XML 数据'),\n }),\n }).describe('XML 消息段'),\n]).catch({\n type: 'text',\n data: {\n text: '[unknown]'\n }\n}).describe('接收消息段');\n\nexport const IncomingForwardedMessage = z.object({\n message_seq: ZInt64.describe('消息序列号'),\n sender_name: ZString.describe('发送者名称'),\n avatar_url: ZString.describe('发送者头像 URL'),\n time: ZInt64.describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n}).describe('接收转发消息');\n\nexport const OutgoingSegment = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('text'),\n data: z.object({\n text: ZString.describe('文本内容'),\n }),\n }).describe('文本消息段'),\n\n z.object({\n type: z.literal('mention'),\n data: z.object({\n user_id: ZUin.describe('提及的 QQ 号'),\n }),\n }).describe('提及消息段'),\n\n z.object({\n type: z.literal('mention_all'),\n data: z.object({}),\n }).describe('提及全体消息段'),\n\n z.object({\n type: z.literal('face'),\n data: z.object({\n face_id: ZString.describe('表情 ID'),\n is_large: ZBoolean.default(false).describe('是否为超级表情'),\n }),\n }).describe('表情消息段'),\n\n z.object({\n type: z.literal('reply'),\n data: z.object({\n message_seq: ZInt64.describe('被引用的消息序列号'),\n }),\n }).describe('回复消息段'),\n\n z.object({\n type: z.literal('image'),\n data: OutgoingResourceSegmentBase.extend({\n sub_type: z.enum(['normal', 'sticker']).default('normal').describe('图片类型'),\n summary: ZString.nullish().describe('图片预览文本'),\n }),\n }).describe('图片消息段'),\n\n z.object({\n type: z.literal('record'),\n data: OutgoingResourceSegmentBase,\n }).describe('语音消息段'),\n\n z.object({\n type: z.literal('video'),\n data: OutgoingResourceSegmentBase.extend({\n thumb_uri: ZString.nullish().describe('封面图片 URI'),\n }),\n }).describe('视频消息段'),\n\n z.object({\n type: z.literal('forward'),\n data: z.object({\n get messages() {\n return z.array(z.lazy(() => OutgoingForwardedMessage)).describe('合并转发消息内容');\n },\n title: ZString.nullish().describe('合并转发标题'),\n preview: z.array(ZString).min(1).max(4).nullish().describe('合并转发预览文本,若提供,至少 1 条,至多 4 条'),\n summary: ZString.nullish().describe('合并转发摘要'),\n prompt: ZString.nullish().describe('合并转发的预览外显文本,仅对移动端 QQ 有效'),\n }),\n }).describe('合并转发消息段'),\n\n z.object({\n type: z.literal('light_app'),\n data: z.object({\n json_payload: ZString.describe('小程序 JSON 数据'),\n }),\n }).describe('小程序消息段'),\n]).describe('发送消息段');\n\nexport const OutgoingForwardedMessage = z.object({\n user_id: ZUin.describe('发送者 QQ 号'),\n sender_name: ZString.describe('发送者名称'),\n segments: z.array(z.lazy(() => OutgoingSegment)).describe('消息段列表'),\n}).describe('发送转发消息');\n\nexport const IncomingMessage = z.discriminatedUnion('message_scene', [\n z.object({\n message_scene: z.literal('friend'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('消息序列号'),\n sender_id: ZUin.describe('发送者 QQ 号'),\n time: ZInt64.describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n friend: z.lazy(() => FriendEntity).describe('好友信息'),\n }).describe('好友消息'),\n\n z.object({\n message_scene: z.literal('group'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('消息序列号'),\n sender_id: ZUin.describe('发送者 QQ 号'),\n time: ZInt64.describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n group: z.lazy(() => GroupEntity).describe('群信息'),\n group_member: z.lazy(() => GroupMemberEntity).describe('群成员信息'),\n }).describe('群消息'),\n\n z.object({\n message_scene: z.literal('temp'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('消息序列号'),\n sender_id: ZUin.describe('发送者 QQ 号'),\n time: ZInt64.describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n group: z.lazy(() => GroupEntity).nullish().describe('临时会话发送者的所在的群信息'),\n }).describe('临时会话消息'),\n]).describe('接收消息');\n\nexport const GroupEssenceMessage = z.object({\n group_id: ZUin.describe('群号'),\n message_seq: ZInt64.describe('消息序列号'),\n message_time: ZInt64.describe('消息发送时的 Unix 时间戳(秒)'),\n sender_id: ZUin.describe('发送者 QQ 号'),\n sender_name: ZString.describe('发送者名称'),\n operator_id: ZUin.describe('设置精华的操作者 QQ 号'),\n operator_name: ZString.describe('设置精华的操作者名称'),\n operation_time: ZInt64.describe('消息被设置精华时的 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n}).describe('群精华消息');\n\nexport type IncomingSegment = z.infer<typeof IncomingSegment>;\nexport type OutgoingSegment = z.infer<typeof OutgoingSegment>;\nexport type IncomingMessage = z.infer<typeof IncomingMessage>;\nexport type GroupEssenceMessage = z.infer<typeof GroupEssenceMessage>;\nexport type IncomingForwardedMessage = z.infer<typeof IncomingForwardedMessage>;\nexport type OutgoingForwardedMessage = z.infer<typeof OutgoingForwardedMessage>;\n","import { z } from 'zod';\nimport { ZInt32, ZInt64, ZString, ZBoolean, ZUin } from './scalar';\nimport { IncomingMessage } from './message';\n\nexport const BotOfflineEvent = z.object({\n reason: ZString.describe('下线原因'),\n});\n\nexport const MessageRecallEvent = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('消息序列号'),\n sender_id: ZUin.describe('被撤回的消息的发送者 QQ 号'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n display_suffix: ZString.describe('撤回提示的后缀文本'),\n});\n\nexport const PeerPinChangeEvent = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('发生改变的会话的消息场景'),\n peer_id: ZUin.describe('发生改变的好友 QQ 号或群号'),\n is_pinned: ZBoolean.describe('是否被置顶, `false` 表示取消置顶'),\n});\n\nexport const FriendRequestEvent = z.object({\n initiator_id: ZUin.describe('申请好友的用户 QQ 号'),\n initiator_uid: ZString.describe('用户 UID'),\n comment: ZString.describe('申请附加信息'),\n via: ZString.describe('申请来源'),\n});\n\nexport const GroupJoinRequestEvent = z.object({\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('请求对应的通知序列号'),\n is_filtered: ZBoolean.describe('请求是否被过滤(发起自风险账户)'),\n initiator_id: ZUin.describe('申请入群的用户 QQ 号'),\n comment: ZString.describe('申请附加信息'),\n});\n\nexport const GroupInvitedJoinRequestEvent = z.object({\n group_id: ZUin.describe('群号'),\n notification_seq: ZInt64.describe('请求对应的通知序列号'),\n initiator_id: ZUin.describe('邀请者 QQ 号'),\n target_user_id: ZUin.describe('被邀请者 QQ 号'),\n});\n\nexport const GroupInvitationEvent = z.object({\n group_id: ZUin.describe('群号'),\n invitation_seq: ZInt64.describe('邀请序列号'),\n initiator_id: ZUin.describe('邀请者 QQ 号'),\n source_group_id: ZUin.nullish().describe('来源群号,如果是通过 QQ 群邀请'),\n});\n\nexport const FriendNudgeEvent = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n is_self_send: ZBoolean.describe('是否是自己发送的戳一戳'),\n is_self_receive: ZBoolean.describe('是否是自己接收的戳一戳'),\n display_action: ZString.describe('戳一戳提示的动作文本'),\n display_suffix: ZString.describe('戳一戳提示的后缀文本'),\n display_action_img_url: ZString.describe('戳一戳提示的动作图片 URL,用于取代动作提示文本'),\n});\n\nexport const FriendFileUploadEvent = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n file_id: ZString.describe('文件 ID'),\n file_name: ZString.describe('文件名称'),\n file_size: ZInt64.describe('文件大小(字节)'),\n file_hash: ZString.describe('文件的 TriSHA1 哈希值'),\n is_self: ZBoolean.describe('是否是自己发送的文件'),\n});\n\nexport const GroupAdminChangeEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发生变更的用户 QQ 号'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n is_set: ZBoolean.describe('是否被设置为管理员,`false` 表示被取消管理员'),\n});\n\nexport const GroupEssenceMessageChangeEvent = z.object({\n group_id: ZUin.describe('群号'),\n message_seq: ZInt64.describe('发生变更的消息序列号'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n is_set: ZBoolean.describe('是否被设置为精华,`false` 表示被取消精华'),\n});\n\nexport const GroupMemberIncreaseEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发生变更的用户 QQ 号'),\n operator_id: ZUin.nullish().describe('管理员 QQ 号,如果是管理员同意入群'),\n invitor_id: ZUin.nullish().describe('邀请者 QQ 号,如果是邀请入群'),\n});\n\nexport const GroupMemberDecreaseEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发生变更的用户 QQ 号'),\n operator_id: ZUin.nullish().describe('管理员 QQ 号,如果是管理员踢出'),\n});\n\nexport const GroupNameChangeEvent = z.object({\n group_id: ZUin.describe('群号'),\n new_group_name: ZString.describe('新的群名称'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n});\n\nexport const GroupMessageReactionEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发送回应者 QQ 号'),\n message_seq: ZInt64.describe('消息序列号'),\n face_id: ZString.describe('表情 ID'),\n reaction_type: z.enum(['face', 'emoji']).describe('收到的回应类型'),\n is_add: ZBoolean.describe('是否为添加,`false` 表示取消回应'),\n});\n\nexport const GroupMuteEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发生变更的用户 QQ 号'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n duration: ZInt32.describe('禁言时长(秒),为 0 表示取消禁言'),\n});\n\nexport const GroupWholeMuteEvent = z.object({\n group_id: ZUin.describe('群号'),\n operator_id: ZUin.describe('操作者 QQ 号'),\n is_mute: ZBoolean.describe('是否全员禁言,`false` 表示取消全员禁言'),\n});\n\nexport const GroupNudgeEvent = z.object({\n group_id: ZUin.describe('群号'),\n sender_id: ZUin.describe('发送者 QQ 号'),\n receiver_id: ZUin.describe('接收者 QQ 号'),\n display_action: ZString.describe('戳一戳提示的动作文本'),\n display_suffix: ZString.describe('戳一戳提示的后缀文本'),\n display_action_img_url: ZString.describe('戳一戳提示的动作图片 URL,用于取代动作提示文本'),\n});\n\nexport const GroupFileUploadEvent = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('发送者 QQ 号'),\n file_id: ZString.describe('文件 ID'),\n file_name: ZString.describe('文件名称'),\n file_size: ZInt64.describe('文件大小(字节)'),\n});\n\nexport const Event = z.discriminatedUnion('event_type', [\n z.object({\n event_type: z.literal('bot_offline'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: BotOfflineEvent,\n }).describe('机器人离线事件'),\n\n z.object({\n event_type: z.literal('message_receive'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: IncomingMessage,\n }).describe('消息接收事件'),\n\n z.object({\n event_type: z.literal('message_recall'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: MessageRecallEvent,\n }).describe('消息撤回事件'),\n\n z.object({\n event_type: z.literal('peer_pin_change'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: PeerPinChangeEvent,\n }).describe('会话置顶变更事件'),\n\n z.object({\n event_type: z.literal('friend_request'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: FriendRequestEvent,\n }).describe('好友请求事件'),\n\n z.object({\n event_type: z.literal('group_join_request'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupJoinRequestEvent,\n }).describe('入群请求事件'),\n\n z.object({\n event_type: z.literal('group_invited_join_request'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupInvitedJoinRequestEvent,\n }).describe('群成员邀请他人入群请求事件'),\n\n z.object({\n event_type: z.literal('group_invitation'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupInvitationEvent,\n }).describe('他人邀请自身入群事件'),\n\n z.object({\n event_type: z.literal('friend_nudge'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: FriendNudgeEvent,\n }).describe('好友戳一戳事件'),\n\n z.object({\n event_type: z.literal('friend_file_upload'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: FriendFileUploadEvent,\n }).describe('好友文件上传事件'),\n\n z.object({\n event_type: z.literal('group_admin_change'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupAdminChangeEvent,\n }).describe('群管理员变更事件'),\n\n z.object({\n event_type: z.literal('group_essence_message_change'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupEssenceMessageChangeEvent,\n }).describe('群精华消息变更事件'),\n\n z.object({\n event_type: z.literal('group_member_increase'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupMemberIncreaseEvent,\n }).describe('群成员增加事件'),\n\n z.object({\n event_type: z.literal('group_member_decrease'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupMemberDecreaseEvent,\n }).describe('群成员减少事件'),\n\n z.object({\n event_type: z.literal('group_name_change'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupNameChangeEvent,\n }).describe('群名称变更事件'),\n\n z.object({\n event_type: z.literal('group_message_reaction'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupMessageReactionEvent,\n }).describe('群消息表情回应事件'),\n\n z.object({\n event_type: z.literal('group_mute'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupMuteEvent,\n }).describe('群禁言事件'),\n\n z.object({\n event_type: z.literal('group_whole_mute'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupWholeMuteEvent,\n }).describe('群全体禁言事件'),\n\n z.object({\n event_type: z.literal('group_nudge'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupNudgeEvent,\n }).describe('群戳一戳事件'),\n\n z.object({\n event_type: z.literal('group_file_upload'),\n time: ZInt64.describe('事件 Unix 时间戳(秒)'),\n self_id: ZUin.describe('机器人 QQ 号'),\n data: GroupFileUploadEvent,\n }).describe('群文件上传事件'),\n]).describe('事件');\n\nexport type BotOfflineEvent = z.infer<typeof BotOfflineEvent>;\nexport type MessageRecallEvent = z.infer<typeof MessageRecallEvent>;\nexport type PeerPinChangeEvent = z.infer<typeof PeerPinChangeEvent>;\nexport type FriendRequestEvent = z.infer<typeof FriendRequestEvent>;\nexport type GroupJoinRequestEvent = z.infer<typeof GroupJoinRequestEvent>;\nexport type GroupInvitedJoinRequestEvent = z.infer<typeof GroupInvitedJoinRequestEvent>;\nexport type GroupInvitationEvent = z.infer<typeof GroupInvitationEvent>;\nexport type FriendNudgeEvent = z.infer<typeof FriendNudgeEvent>;\nexport type FriendFileUploadEvent = z.infer<typeof FriendFileUploadEvent>;\nexport type GroupAdminChangeEvent = z.infer<typeof GroupAdminChangeEvent>;\nexport type GroupEssenceMessageChangeEvent = z.infer<typeof GroupEssenceMessageChangeEvent>;\nexport type GroupMemberIncreaseEvent = z.infer<typeof GroupMemberIncreaseEvent>;\nexport type GroupMemberDecreaseEvent = z.infer<typeof GroupMemberDecreaseEvent>;\nexport type GroupNameChangeEvent = z.infer<typeof GroupNameChangeEvent>;\nexport type GroupMessageReactionEvent = z.infer<typeof GroupMessageReactionEvent>;\nexport type GroupMuteEvent = z.infer<typeof GroupMuteEvent>;\nexport type GroupWholeMuteEvent = z.infer<typeof GroupWholeMuteEvent>;\nexport type GroupNudgeEvent = z.infer<typeof GroupNudgeEvent>;\nexport type GroupFileUploadEvent = z.infer<typeof GroupFileUploadEvent>;\nexport type Event = z.infer<typeof Event>;\n","","import packageJson from '../package.json';\n\nexport const milkyPackageVersion = packageJson.version;\nexport const milkyVersion = milkyPackageVersion.split('.').slice(0, 2).join('.');\n","import { z } from 'zod';\nimport { ZInt32, ZString, ZBooleanWithDefault, ZUin } from '../scalar';\nimport { FriendEntity, GroupEntity, GroupMemberEntity } from '../common';\nimport { milkyVersion } from '../constants';\n\nconst CachedApiBase = z.object({\n no_cache: ZBooleanWithDefault(false).describe('是否强制不使用缓存'),\n});\n\nexport const GetLoginInfoOutput = z.object({\n uin: ZUin.describe('登录 QQ 号'),\n nickname: ZString.describe('登录昵称'),\n});\n\nexport const GetImplInfoOutput = z.object({\n impl_name: ZString.describe('协议端名称'),\n impl_version: ZString.describe('协议端版本'),\n qq_protocol_version: ZString.describe('协议端使用的 QQ 协议版本'),\n qq_protocol_type: z.enum([\n 'windows',\n 'linux',\n 'macos',\n 'android_pad',\n 'android_phone',\n 'ipad',\n 'iphone',\n 'harmony',\n 'watch'\n ]).describe('协议端使用的 QQ 协议平台'),\n milky_version: ZString.describe(`协议端实现的 Milky 协议版本,目前为 \"${milkyVersion}\"`),\n});\n\nexport const GetUserProfileInput = z.object({\n user_id: ZUin.describe('用户 QQ 号'),\n});\n\nexport const GetUserProfileOutput = z.object({\n nickname: ZString.describe('昵称'),\n qid: ZString.describe('QID'),\n age: ZInt32.describe('年龄'),\n sex: z.enum(['male', 'female', 'unknown']).describe('性别'),\n remark: ZString.describe('备注'),\n bio: ZString.describe('个性签名'),\n level: ZInt32.describe('QQ 等级'),\n country: ZString.describe('国家或地区'),\n city: ZString.describe('城市'),\n school: ZString.describe('学校'),\n});\n\nexport const GetFriendListInput = CachedApiBase;\n\nexport const GetFriendListOutput = z.object({\n friends: z.array(z.lazy(() => FriendEntity)).describe('好友列表'),\n});\n\nexport const GetFriendInfoInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n}).extend(CachedApiBase.shape);\n\nexport const GetFriendInfoOutput = z.object({\n friend: z.lazy(() => FriendEntity).describe('好友信息'),\n});\n\nexport const GetGroupListInput = CachedApiBase;\n\nexport const GetGroupListOutput = z.object({\n groups: z.array(z.lazy(() => GroupEntity)).describe('群列表'),\n});\n\nexport const GetGroupInfoInput = z.object({\n group_id: ZUin.describe('群号'),\n}).extend(CachedApiBase.shape);\n\nexport const GetGroupInfoOutput = z.object({\n group: z.lazy(() => GroupEntity).describe('群信息'),\n});\n\nexport const GetGroupMemberListInput = z.object({\n group_id: ZUin.describe('群号'),\n}).extend(CachedApiBase.shape);\n\nexport const GetGroupMemberListOutput = z.object({\n members: z.array(z.lazy(() => GroupMemberEntity)).describe('群成员列表'),\n});\n\nexport const GetGroupMemberInfoInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('群成员 QQ 号'),\n}).extend(CachedApiBase.shape);\n\nexport const GetGroupMemberInfoOutput = z.object({\n member: z.lazy(() => GroupMemberEntity).describe('群成员信息'),\n});\n\nexport const GetPeerPinsOutput = z.object({\n friends: z.array(z.lazy(() => FriendEntity)).describe('置顶的好友列表'),\n groups: z.array(z.lazy(() => GroupEntity)).describe('置顶的群列表'),\n});\n\nexport const SetPeerPinInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('要设置的会话的消息场景'),\n peer_id: ZUin.describe('要设置的好友 QQ 号或群号'),\n is_pinned: ZBooleanWithDefault(true).describe('是否置顶, `false` 表示取消置顶'),\n});\n\nexport const SetAvatarInput = z.object({\n uri: ZString.describe('头像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n});\n\nexport const SetNicknameInput = z.object({\n new_nickname: ZString.describe('新昵称'),\n});\n\nexport const SetBioInput = z.object({\n new_bio: ZString.describe('新个性签名'),\n});\n\nexport const GetCustomFaceUrlListOutput = z.object({\n urls: z.array(ZString).describe('自定义表情 URL 列表'),\n});\n\nexport const GetCookiesInput = z.object({\n domain: ZString.describe('需要获取 Cookies 的域名'),\n});\n\nexport const GetCookiesOutput = z.object({\n cookies: ZString.describe('域名对应的 Cookies 字符串'),\n});\n\nexport const GetCSRFTokenOutput = z.object({\n csrf_token: ZString.describe('CSRF Token'),\n});\n\nexport type GetLoginInfoOutput = z.infer<typeof GetLoginInfoOutput>;\nexport type GetImplInfoOutput = z.infer<typeof GetImplInfoOutput>;\nexport type GetUserProfileInput = z.infer<typeof GetUserProfileInput>;\nexport type GetUserProfileOutput = z.infer<typeof GetUserProfileOutput>;\nexport type GetFriendListInput = z.infer<typeof GetFriendListInput>;\nexport type GetFriendListOutput = z.infer<typeof GetFriendListOutput>;\nexport type GetFriendInfoInput = z.infer<typeof GetFriendInfoInput>;\nexport type GetFriendInfoOutput = z.infer<typeof GetFriendInfoOutput>;\nexport type GetGroupListInput = z.infer<typeof GetGroupListInput>;\nexport type GetGroupListOutput = z.infer<typeof GetGroupListOutput>;\nexport type GetGroupInfoInput = z.infer<typeof GetGroupInfoInput>;\nexport type GetGroupInfoOutput = z.infer<typeof GetGroupInfoOutput>;\nexport type GetGroupMemberListInput = z.infer<typeof GetGroupMemberListInput>;\nexport type GetGroupMemberListOutput = z.infer<typeof GetGroupMemberListOutput>;\nexport type GetGroupMemberInfoInput = z.infer<typeof GetGroupMemberInfoInput>;\nexport type GetGroupMemberInfoOutput = z.infer<typeof GetGroupMemberInfoOutput>;\nexport type GetPeerPinsOutput = z.infer<typeof GetPeerPinsOutput>;\nexport type SetPeerPinInput = z.infer<typeof SetPeerPinInput>;\nexport type SetAvatarInput = z.infer<typeof SetAvatarInput>;\nexport type SetNicknameInput = z.infer<typeof SetNicknameInput>;\nexport type SetBioInput = z.infer<typeof SetBioInput>;\nexport type GetCustomFaceUrlListOutput = z.infer<typeof GetCustomFaceUrlListOutput>;\nexport type GetCookiesInput = z.infer<typeof GetCookiesInput>;\nexport type GetCookiesOutput = z.infer<typeof GetCookiesOutput>;\nexport type GetCSRFTokenOutput = z.infer<typeof GetCSRFTokenOutput>;\n","import { z } from 'zod';\nimport { ZInt64, ZString, ZUin } from '../scalar';\nimport { OutgoingSegment, IncomingMessage, IncomingForwardedMessage } from '../message';\n\nconst SendMessageApiBase = z.object({\n message: z.array(z.lazy(() => OutgoingSegment)).describe('消息内容'),\n});\n\nconst SendMessageApiCommonOutput = z.object({\n message_seq: ZInt64.describe('消息序列号'),\n time: ZInt64.describe('消息发送时间'),\n});\n\nexport const SendPrivateMessageInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n}).extend(SendMessageApiBase.shape);\n\nexport const SendPrivateMessageOutput = SendMessageApiCommonOutput;\n\nexport const SendGroupMessageInput = z.object({\n group_id: ZUin.describe('群号'),\n}).extend(SendMessageApiBase.shape);\n\nexport const SendGroupMessageOutput = SendMessageApiCommonOutput;\n\nexport const RecallPrivateMessageInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n message_seq: ZInt64.describe('消息序列号'),\n});\n\nexport const RecallGroupMessageInput = z.object({\n group_id: ZUin.describe('群号'),\n message_seq: ZInt64.describe('消息序列号'),\n});\n\nexport const GetMessageInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('消息序列号'),\n});\n\nexport const GetMessageOutput = z.object({\n message: z.lazy(() => IncomingMessage).describe('消息内容'),\n});\n\nexport const GetHistoryMessagesInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n start_message_seq: ZInt64.nullish().describe('起始消息序列号,由此开始从新到旧查询,不提供则从最新消息开始'),\n limit: z.number()\n .int()\n .min(1)\n .max(30)\n .nullish()\n .default(20)\n .transform<number>((v) => v ?? 20)\n .meta({ scalarType: 'int32' })\n .describe('期望获取到的消息数量,最多 30 条'),\n});\n\nexport const GetHistoryMessagesOutput = z.object({\n messages: z.array(z.lazy(() => IncomingMessage)).describe('获取到的消息(message_seq 升序排列),部分消息可能不存在,如撤回的消息'),\n next_message_seq: ZInt64.nullish().describe('下一页起始消息序列号'),\n});\n\nexport const GetResourceTempUrlInput = z.object({\n resource_id: ZString.describe('资源 ID'),\n});\n\nexport const GetResourceTempUrlOutput = z.object({\n url: ZString.describe('临时资源链接'),\n});\n\nexport const GetForwardedMessagesInput = z.object({\n forward_id: ZString.describe('转发消息 ID'),\n});\n\nexport const GetForwardedMessagesOutput = z.object({\n messages: z.array(z.lazy(() => IncomingForwardedMessage)).describe('转发消息内容'),\n});\n\nexport const MarkMessageAsReadInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: ZUin.describe('好友 QQ 号或群号'),\n message_seq: ZInt64.describe('标为已读的消息序列号,该消息及更早的消息将被标记为已读'),\n});\n\nexport type SendPrivateMessageInput = z.infer<typeof SendPrivateMessageInput>;\nexport type SendPrivateMessageOutput = z.infer<typeof SendPrivateMessageOutput>;\nexport type SendGroupMessageInput = z.infer<typeof SendGroupMessageInput>;\nexport type SendGroupMessageOutput = z.infer<typeof SendGroupMessageOutput>;\nexport type RecallPrivateMessageInput = z.infer<typeof RecallPrivateMessageInput>;\nexport type RecallGroupMessageInput = z.infer<typeof RecallGroupMessageInput>;\nexport type GetMessageInput = z.infer<typeof GetMessageInput>;\nexport type GetMessageOutput = z.infer<typeof GetMessageOutput>;\nexport type GetHistoryMessagesInput = z.infer<typeof GetHistoryMessagesInput>;\nexport type GetHistoryMessagesOutput = z.infer<typeof GetHistoryMessagesOutput>;\nexport type GetResourceTempUrlInput = z.infer<typeof GetResourceTempUrlInput>;\nexport type GetResourceTempUrlOutput = z.infer<typeof GetResourceTempUrlOutput>;\nexport type GetForwardedMessagesInput = z.infer<typeof GetForwardedMessagesInput>;\nexport type GetForwardedMessagesOutput = z.infer<typeof GetForwardedMessagesOutput>;\nexport type MarkMessageAsReadInput = z.infer<typeof MarkMessageAsReadInput>;\n","import { z } from 'zod';\nimport { ZString, ZInt32WithDefault, ZBooleanWithDefault, ZUin } from '../scalar';\nimport { FriendRequest } from '../common';\n\nexport const SendFriendNudgeInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n is_self: ZBooleanWithDefault(false).describe('是否戳自己'),\n});\n\nexport const SendProfileLikeInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n count: ZInt32WithDefault(1).describe('点赞数量'),\n});\n\nexport const DeleteFriendInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n});\n\nexport const GetFriendRequestsInput = z.object({\n limit: ZInt32WithDefault(20).describe('获取的最大请求数量'),\n is_filtered: ZBooleanWithDefault(false).describe('`true` 表示只获取被过滤(由风险账号发起)的通知,`false` 表示只获取未被过滤的通知'),\n});\n\nexport const GetFriendRequestsOutput = z.object({\n requests: z.array(z.lazy(() => FriendRequest)).describe('好友请求列表'),\n});\n\nexport const AcceptFriendRequestInput = z.object({\n initiator_uid: ZString.describe('请求发起者 UID'),\n is_filtered: ZBooleanWithDefault(false).describe('是否是被过滤的请求'),\n});\n\nexport const RejectFriendRequestInput = z.object({\n initiator_uid: ZString.describe('请求发起者 UID'),\n is_filtered: ZBooleanWithDefault(false).describe('是否是被过滤的请求'),\n reason: ZString.nullish().describe('拒绝理由'),\n});\n\nexport type SendFriendNudgeInput = z.infer<typeof SendFriendNudgeInput>;\nexport type SendProfileLikeInput = z.infer<typeof SendProfileLikeInput>;\nexport type DeleteFriendInput = z.infer<typeof DeleteFriendInput>;\nexport type GetFriendRequestsInput = z.infer<typeof GetFriendRequestsInput>;\nexport type GetFriendRequestsOutput = z.infer<typeof GetFriendRequestsOutput>;\nexport type AcceptFriendRequestInput = z.infer<typeof AcceptFriendRequestInput>;\nexport type RejectFriendRequestInput = z.infer<typeof RejectFriendRequestInput>;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport z from 'zod';\n\nexport function ZRobustArray<const T extends z.ZodDiscriminatedUnion>(element: T) {\n return z\n .array(element.catch(null as any))\n .transform((val) => val.filter((item) => item !== null)) as unknown as z.ZodPipe<\n z.ZodArray<z.ZodCatch<z.ZodLazy<T>>>,\n z.ZodArray<z.ZodLazy<T>>\n >;\n}\n","import { z } from 'zod';\nimport {\n ZInt64,\n ZString,\n ZBoolean,\n ZInt32,\n ZInt32WithDefault,\n ZInt64WithDefault,\n ZBooleanWithDefault,\n ZUin,\n} from '../scalar';\nimport { GroupAnnouncementEntity, GroupNotification } from '../common';\nimport { GroupEssenceMessage } from '../message';\nimport { ZRobustArray } from '../robust';\n\nexport const SetGroupNameInput = z.object({\n group_id: ZUin.describe('群号'),\n new_group_name: ZString.describe('新群名称'),\n});\n\nexport const SetGroupAvatarInput = z.object({\n group_id: ZUin.describe('群号'),\n image_uri: ZString.describe('头像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n});\n\nexport const SetGroupMemberCardInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被设置的群成员 QQ 号'),\n card: ZString.describe('新群名片'),\n});\n\nexport const SetGroupMemberSpecialTitleInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被设置的群成员 QQ 号'),\n special_title: ZString.describe('新专属头衔'),\n});\n\nexport const SetGroupMemberAdminInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被设置的 QQ 号'),\n is_set: ZBooleanWithDefault(true).describe('是否设置为管理员,`false` 表示取消管理员'),\n});\n\nexport const SetGroupMemberMuteInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被设置的 QQ 号'),\n duration: ZInt64WithDefault(0).describe('禁言持续时间(秒),设为 `0` 为取消禁言'),\n});\n\nexport const SetGroupWholeMuteInput = z.object({\n group_id: ZUin.describe('群号'),\n is_mute: ZBooleanWithDefault(true).describe('是否开启全员禁言,`false` 表示取消全员禁言'),\n});\n\nexport const KickGroupMemberInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被踢的 QQ 号'),\n reject_add_request: ZBooleanWithDefault(false).describe('是否拒绝加群申请,`false` 表示不拒绝'),\n});\n\nexport const GetGroupAnnouncementsInput = z.object({\n group_id: ZUin.describe('群号'),\n});\n\nexport const GetGroupAnnouncementsOutput = z.object({\n announcements: z.array(z.lazy(() => GroupAnnouncementEntity)).describe('群公告列表'),\n});\n\nexport const SendGroupAnnouncementInput = z.object({\n group_id: ZUin.describe('群号'),\n content: ZString.describe('公告内容'),\n image_uri: ZString.nullish().describe('公告附带图像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n});\n\nexport const DeleteGroupAnnouncementInput = z.object({\n group_id: ZUin.describe('群号'),\n announcement_id: ZString.describe('公告 ID'),\n});\n\nexport const GetGroupEssenceMessagesInput = z.object({\n group_id: ZUin.describe('群号'),\n page_index: ZInt32.describe('页码索引,从 0 开始'),\n page_size: ZInt32.describe('每页包含的精华消息数量'),\n});\n\nexport const GetGroupEssenceMessagesOutput = z.object({\n messages: z.array(z.lazy(() => GroupEssenceMessage)).describe('精华消息列表'),\n is_end: ZBoolean.describe('是否已到最后一页'),\n});\n\nexport const SetGroupEssenceMessageInput = z.object({\n group_id: ZUin.describe('群号'),\n message_seq: ZInt64.describe('消息序列号'),\n is_set: ZBooleanWithDefault(true).describe('是否设置为精华消息,`false` 表示取消精华'),\n});\n\nexport const QuitGroupInput = z.object({\n group_id: ZUin.describe('群号'),\n});\n\nexport const SendGroupMessageReactionInput = z.object({\n group_id: ZUin.describe('群号'),\n message_seq: ZInt64.describe('要回应的消息序列号'),\n reaction: ZString.describe('发送的回应的表情 ID'),\n reaction_type: z.enum(['face', 'emoji']).default('face').describe('发送的回应类型'),\n is_add: ZBooleanWithDefault(true).describe('是否添加表情,`false` 表示取消'),\n});\n\nexport const SendGroupNudgeInput = z.object({\n group_id: ZUin.describe('群号'),\n user_id: ZUin.describe('被戳的群成员 QQ 号'),\n});\n\nexport const GetGroupNotificationsInput = z.object({\n start_notification_seq: ZInt64.nullish().describe('起始通知序列号'),\n is_filtered: ZBooleanWithDefault(false).describe('`true` 表示只获取被过滤(由风险账号发起)的通知,`false` 表示只获取未被过滤的通知'),\n limit: ZInt32WithDefault(20).describe('获取的最大通知数量'),\n});\n\nexport const GetGroupNotificationsOutput = z.object({\n notifications: ZRobustArray(GroupNotification).describe('获取到的群通知(notification_seq 降序排列),序列号不一定连续'),\n next_notification_seq: ZInt64.nullish().describe('下一页起始通知序列号'),\n});\n\nexport const AcceptGroupRequestInput = z.object({\n notification_seq: ZInt64.describe('请求对应的通知序列号'),\n notification_type: z.enum(['join_request', 'invited_join_request']).describe('请求对应的通知类型'),\n group_id: ZUin.describe('请求所在的群号'),\n is_filtered: ZBooleanWithDefault(false).describe('是否是被过滤的请求'),\n});\n\nexport const RejectGroupRequestInput = z.object({\n notification_seq: ZInt64.describe('请求对应的通知序列号'),\n notification_type: z.enum(['join_request', 'invited_join_request']).describe('请求对应的通知类型'),\n group_id: ZUin.describe('请求所在的群号'),\n is_filtered: ZBooleanWithDefault(false).describe('是否是被过滤的请求'),\n reason: ZString.nullish().describe('拒绝理由'),\n});\n\nexport const AcceptGroupInvitationInput = z.object({\n group_id: ZUin.describe('群号'),\n invitation_seq: ZInt64.describe('邀请序列号'),\n});\n\nexport const RejectGroupInvitationInput = z.object({\n group_id: ZUin.describe('群号'),\n invitation_seq: ZInt64.describe('邀请序列号'),\n});\n\nexport type SetGroupNameInput = z.infer<typeof SetGroupNameInput>;\nexport type SetGroupAvatarInput = z.infer<typeof SetGroupAvatarInput>;\nexport type SetGroupMemberCardInput = z.infer<typeof SetGroupMemberCardInput>;\nexport type SetGroupMemberSpecialTitleInput = z.infer<typeof SetGroupMemberSpecialTitleInput>;\nexport type SetGroupMemberAdminInput = z.infer<typeof SetGroupMemberAdminInput>;\nexport type SetGroupMemberMuteInput = z.infer<typeof SetGroupMemberMuteInput>;\nexport type SetGroupWholeMuteInput = z.infer<typeof SetGroupWholeMuteInput>;\nexport type KickGroupMemberInput = z.infer<typeof KickGroupMemberInput>;\nexport type GetGroupAnnouncementsInput = z.infer<typeof GetGroupAnnouncementsInput>;\nexport type GetGroupAnnouncementsOutput = z.infer<typeof GetGroupAnnouncementsOutput>;\nexport type SendGroupAnnouncementInput = z.infer<typeof SendGroupAnnouncementInput>;\nexport type DeleteGroupAnnouncementInput = z.infer<typeof DeleteGroupAnnouncementInput>;\nexport type GetGroupEssenceMessagesInput = z.infer<typeof GetGroupEssenceMessagesInput>;\nexport type GetGroupEssenceMessagesOutput = z.infer<typeof GetGroupEssenceMessagesOutput>;\nexport type SetGroupEssenceMessageInput = z.infer<typeof SetGroupEssenceMessageInput>;\nexport type QuitGroupInput = z.infer<typeof QuitGroupInput>;\nexport type SendGroupMessageReactionInput = z.infer<typeof SendGroupMessageReactionInput>;\nexport type SendGroupNudgeInput = z.infer<typeof SendGroupNudgeInput>;\nexport type GetGroupNotificationsInput = z.infer<typeof GetGroupNotificationsInput>;\nexport type GetGroupNotificationsOutput = z.infer<typeof GetGroupNotificationsOutput>;\nexport type AcceptGroupRequestInput = z.infer<typeof AcceptGroupRequestInput>;\nexport type RejectGroupRequestInput = z.infer<typeof RejectGroupRequestInput>;\nexport type AcceptGroupInvitationInput = z.infer<typeof AcceptGroupInvitationInput>;\nexport type RejectGroupInvitationInput = z.infer<typeof RejectGroupInvitationInput>;\n","import { z } from 'zod';\nimport { ZString, ZStringWithDefault, ZUin } from '../scalar';\nimport { GroupFileEntity, GroupFolderEntity } from '../common';\n\nexport const UploadPrivateFileInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n file_uri: ZString.describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n file_name: ZString.describe('文件名称'),\n});\n\nexport const UploadPrivateFileOutput = z.object({\n file_id: ZString.describe('文件 ID'),\n});\n\nexport const UploadGroupFileInput = z.object({\n group_id: ZUin.describe('群号'),\n parent_folder_id: ZStringWithDefault('/').describe('目标文件夹 ID'),\n file_uri: ZString.describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n file_name: ZString.describe('文件名称'),\n});\n\nexport const UploadGroupFileOutput = z.object({\n file_id: ZString.describe('文件 ID'),\n});\n\nexport const GetPrivateFileDownloadUrlInput = z.object({\n user_id: ZUin.describe('好友 QQ 号'),\n file_id: ZString.describe('文件 ID'),\n file_hash: ZString.describe('文件的 TriSHA1 哈希值'),\n});\n\nexport const GetPrivateFileDownloadUrlOutput = z.object({\n download_url: ZString.describe('文件下载链接'),\n});\n\nexport const GetGroupFileDownloadUrlInput = z.object({\n group_id: ZUin.describe('群号'),\n file_id: ZString.describe('文件 ID'),\n});\n\nexport const GetGroupFileDownloadUrlOutput = z.object({\n download_url: ZString.describe('文件下载链接'),\n});\n\nexport const GetGroupFilesInput = z.object({\n group_id: ZUin.describe('群号'),\n parent_folder_id: ZStringWithDefault('/').describe('父文件夹 ID'),\n});\n\nexport const GetGroupFilesOutput = z.object({\n files: z.array(z.lazy(() => GroupFileEntity)).describe('文件列表'),\n folders: z.array(z.lazy(() => GroupFolderEntity)).describe('文件夹列表'),\n});\n\nexport const MoveGroupFileInput = z.object({\n group_id: ZUin.describe('群号'),\n file_id: ZString.describe('文件 ID'),\n parent_folder_id: ZStringWithDefault('/').describe('文件所在的文件夹 ID'),\n target_folder_id: ZStringWithDefault('/').describe('目标文件夹 ID'),\n});\n\nexport const RenameGroupFileInput = z.object({\n group_id: ZUin.describe('群号'),\n file_id: ZString.describe('文件 ID'),\n parent_folder_id: ZStringWithDefault('/').describe('文件所在的文件夹 ID'),\n new_file_name: ZString.describe('新文件名称'),\n});\n\nexport const DeleteGroupFileInput = z.object({\n group_id: ZUin.describe('群号'),\n file_id: ZString.describe('文件 ID'),\n});\n\nexport const CreateGroupFolderInput = z.object({\n group_id: ZUin.describe('群号'),\n folder_name: ZString.describe('文件夹名称'),\n});\n\nexport const CreateGroupFolderOutput = z.object({\n folder_id: ZString.describe('文件夹 ID'),\n});\n\nexport const RenameGroupFolderInput = z.object({\n group_id: ZUin.describe('群号'),\n folder_id: ZString.describe('文件夹 ID'),\n new_folder_name: ZString.describe('新文件夹名'),\n});\n\nexport const DeleteGroupFolderInput = z.object({\n group_id: ZUin.describe('群号'),\n folder_id: ZString.describe('文件夹 ID'),\n});\n\nexport type UploadPrivateFileInput = z.infer<typeof UploadPrivateFileInput>;\nexport type UploadPrivateFileOutput = z.infer<typeof UploadPrivateFileOutput>;\nexport type UploadGroupFileInput = z.infer<typeof UploadGroupFileInput>;\nexport type UploadGroupFileOutput = z.infer<typeof UploadGroupFileOutput>;\nexport type GetPrivateFileDownloadUrlInput = z.infer<typeof GetPrivateFileDownloadUrlInput>;\nexport type GetPrivateFileDownloadUrlOutput = z.infer<typeof GetPrivateFileDownloadUrlOutput>;\nexport type GetGroupFileDownloadUrlInput = z.infer<typeof GetGroupFileDownloadUrlInput>;\nexport type GetGroupFileDownloadUrlOutput = z.infer<typeof GetGroupFileDownloadUrlOutput>;\nexport type GetGroupFilesInput = z.infer<typeof GetGroupFilesInput>;\nexport type GetGroupFilesOutput = z.infer<typeof GetGroupFilesOutput>;\nexport type MoveGroupFileInput = z.infer<typeof MoveGroupFileInput>;\nexport type RenameGroupFileInput = z.infer<typeof RenameGroupFileInput>;\nexport type DeleteGroupFileInput = z.infer<typeof DeleteGroupFileInput>;\nexport type CreateGroupFolderInput = z.infer<typeof CreateGroupFolderInput>;\nexport type CreateGroupFolderOutput = z.infer<typeof CreateGroupFolderOutput>;\nexport type RenameGroupFolderInput = z.infer<typeof RenameGroupFolderInput>;\nexport type DeleteGroupFolderInput = z.infer<typeof DeleteGroupFolderInput>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.g.ts"],"sourcesContent":["// Generated from Milky 1.2 (1.2.1-rc.1)\nimport { z } from 'zod';\n\nexport const milkyVersion = '1.2';\nexport const milkyPackageVersion = '1.2.1-rc.1';\n\nexport const zUin = z.number().int().min(10001).max(4294967295);\n\nexport function zDropBadElementArray<const T extends z.ZodDiscriminatedUnion>(element: T) {\n const schema = z.array(element.catch(null as never)).transform((val) => val.filter((item) => item !== null));\n return schema as unknown as z.ZodPipe<z.ZodArray<z.ZodCatch<z.ZodLazy<T>>>, z.ZodArray<z.ZodLazy<T>>>;\n}\n\n// ####################################\n// Common Structs\n// ####################################\n\nexport const BotOfflineEventData = z.object({\n reason: z.string().describe('下线原因'),\n}).describe('机器人离线事件');\nexport type BotOfflineEventData = z.infer<typeof BotOfflineEventData>;\n\nexport const BotOfflineEvent = BotOfflineEventData;\nexport type BotOfflineEvent = z.infer<typeof BotOfflineEventData>;\n\nexport const MessageRecallEventData = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n sender_id: zUin.describe('被撤回的消息的发送者 QQ 号'),\n operator_id: zUin.describe('操作者 QQ 号'),\n display_suffix: z.string().describe('撤回提示的后缀文本'),\n}).describe('消息撤回事件');\nexport type MessageRecallEventData = z.infer<typeof MessageRecallEventData>;\n\nexport const MessageRecallEvent = MessageRecallEventData;\nexport type MessageRecallEvent = z.infer<typeof MessageRecallEventData>;\n\nexport const PeerPinChangeEventData = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('发生改变的会话的消息场景'),\n peer_id: zUin.describe('发生改变的好友 QQ 号或群号'),\n is_pinned: z.boolean().describe('是否被置顶, `false` 表示取消置顶'),\n}).describe('会话置顶变更事件');\nexport type PeerPinChangeEventData = z.infer<typeof PeerPinChangeEventData>;\n\nexport const PeerPinChangeEvent = PeerPinChangeEventData;\nexport type PeerPinChangeEvent = z.infer<typeof PeerPinChangeEventData>;\n\nexport const FriendRequestEventData = z.object({\n initiator_id: zUin.describe('申请好友的用户 QQ 号'),\n initiator_uid: z.string().describe('用户 UID'),\n comment: z.string().describe('申请附加信息'),\n via: z.string().describe('申请来源'),\n}).describe('好友请求事件');\nexport type FriendRequestEventData = z.infer<typeof FriendRequestEventData>;\n\nexport const FriendRequestEvent = FriendRequestEventData;\nexport type FriendRequestEvent = z.infer<typeof FriendRequestEventData>;\n\nexport const GroupJoinRequestEventData = z.object({\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('请求对应的通知序列号'),\n is_filtered: z.boolean().describe('请求是否被过滤(发起自风险账户)'),\n initiator_id: zUin.describe('申请入群的用户 QQ 号'),\n comment: z.string().describe('申请附加信息'),\n}).describe('入群请求事件');\nexport type GroupJoinRequestEventData = z.infer<typeof GroupJoinRequestEventData>;\n\nexport const GroupJoinRequestEvent = GroupJoinRequestEventData;\nexport type GroupJoinRequestEvent = z.infer<typeof GroupJoinRequestEventData>;\n\nexport const GroupInvitedJoinRequestEventData = z.object({\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('请求对应的通知序列号'),\n initiator_id: zUin.describe('邀请者 QQ 号'),\n target_user_id: zUin.describe('被邀请者 QQ 号'),\n}).describe('群成员邀请他人入群请求事件');\nexport type GroupInvitedJoinRequestEventData = z.infer<typeof GroupInvitedJoinRequestEventData>;\n\nexport const GroupInvitedJoinRequestEvent = GroupInvitedJoinRequestEventData;\nexport type GroupInvitedJoinRequestEvent = z.infer<typeof GroupInvitedJoinRequestEventData>;\n\nexport const GroupInvitationEventData = z.object({\n group_id: zUin.describe('群号'),\n invitation_seq: z.number().int().nonnegative().describe('邀请序列号'),\n initiator_id: zUin.describe('邀请者 QQ 号'),\n source_group_id: z.number().int().nonnegative().nullish().describe('来源群号,如果是通过 QQ 群邀请'),\n}).describe('他人邀请自身入群事件');\nexport type GroupInvitationEventData = z.infer<typeof GroupInvitationEventData>;\n\nexport const GroupInvitationEvent = GroupInvitationEventData;\nexport type GroupInvitationEvent = z.infer<typeof GroupInvitationEventData>;\n\nexport const FriendNudgeEventData = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n is_self_send: z.boolean().describe('是否是自己发送的戳一戳'),\n is_self_receive: z.boolean().describe('是否是自己接收的戳一戳'),\n display_action: z.string().describe('戳一戳提示的动作文本'),\n display_suffix: z.string().describe('戳一戳提示的后缀文本'),\n display_action_img_url: z.string().describe('戳一戳提示的动作图片 URL,用于取代动作提示文本'),\n}).describe('好友戳一戳事件');\nexport type FriendNudgeEventData = z.infer<typeof FriendNudgeEventData>;\n\nexport const FriendNudgeEvent = FriendNudgeEventData;\nexport type FriendNudgeEvent = z.infer<typeof FriendNudgeEventData>;\n\nexport const FriendFileUploadEventData = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n file_id: z.string().describe('文件 ID'),\n file_name: z.string().describe('文件名称'),\n file_size: z.number().int().nonnegative().describe('文件大小(字节)'),\n file_hash: z.string().describe('文件的 TriSHA1 哈希值'),\n is_self: z.boolean().describe('是否是自己发送的文件'),\n}).describe('好友文件上传事件');\nexport type FriendFileUploadEventData = z.infer<typeof FriendFileUploadEventData>;\n\nexport const FriendFileUploadEvent = FriendFileUploadEventData;\nexport type FriendFileUploadEvent = z.infer<typeof FriendFileUploadEventData>;\n\nexport const GroupAdminChangeEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发生变更的用户 QQ 号'),\n operator_id: zUin.describe('操作者 QQ 号'),\n is_set: z.boolean().describe('是否被设置为管理员,`false` 表示被取消管理员'),\n}).describe('群管理员变更事件');\nexport type GroupAdminChangeEventData = z.infer<typeof GroupAdminChangeEventData>;\n\nexport const GroupAdminChangeEvent = GroupAdminChangeEventData;\nexport type GroupAdminChangeEvent = z.infer<typeof GroupAdminChangeEventData>;\n\nexport const GroupEssenceMessageChangeEventData = z.object({\n group_id: zUin.describe('群号'),\n message_seq: z.number().int().nonnegative().describe('发生变更的消息序列号'),\n operator_id: zUin.describe('操作者 QQ 号'),\n is_set: z.boolean().describe('是否被设置为精华,`false` 表示被取消精华'),\n}).describe('群精华消息变更事件');\nexport type GroupEssenceMessageChangeEventData = z.infer<typeof GroupEssenceMessageChangeEventData>;\n\nexport const GroupEssenceMessageChangeEvent = GroupEssenceMessageChangeEventData;\nexport type GroupEssenceMessageChangeEvent = z.infer<typeof GroupEssenceMessageChangeEventData>;\n\nexport const GroupMemberIncreaseEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发生变更的用户 QQ 号'),\n operator_id: z.number().int().nonnegative().nullish().describe('管理员 QQ 号,如果是管理员同意入群'),\n invitor_id: z.number().int().nonnegative().nullish().describe('邀请者 QQ 号,如果是邀请入群'),\n}).describe('群成员增加事件');\nexport type GroupMemberIncreaseEventData = z.infer<typeof GroupMemberIncreaseEventData>;\n\nexport const GroupMemberIncreaseEvent = GroupMemberIncreaseEventData;\nexport type GroupMemberIncreaseEvent = z.infer<typeof GroupMemberIncreaseEventData>;\n\nexport const GroupMemberDecreaseEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发生变更的用户 QQ 号'),\n operator_id: z.number().int().nonnegative().nullish().describe('管理员 QQ 号,如果是管理员踢出'),\n}).describe('群成员减少事件');\nexport type GroupMemberDecreaseEventData = z.infer<typeof GroupMemberDecreaseEventData>;\n\nexport const GroupMemberDecreaseEvent = GroupMemberDecreaseEventData;\nexport type GroupMemberDecreaseEvent = z.infer<typeof GroupMemberDecreaseEventData>;\n\nexport const GroupNameChangeEventData = z.object({\n group_id: zUin.describe('群号'),\n new_group_name: z.string().describe('新的群名称'),\n operator_id: zUin.describe('操作者 QQ 号'),\n}).describe('群名称变更事件');\nexport type GroupNameChangeEventData = z.infer<typeof GroupNameChangeEventData>;\n\nexport const GroupNameChangeEvent = GroupNameChangeEventData;\nexport type GroupNameChangeEvent = z.infer<typeof GroupNameChangeEventData>;\n\nexport const GroupMessageReactionEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发送回应者 QQ 号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n face_id: z.string().describe('表情 ID'),\n reaction_type: z.enum(['face', 'emoji']).describe('收到的回应类型'),\n is_add: z.boolean().describe('是否为添加,`false` 表示取消回应'),\n}).describe('群消息表情回应事件');\nexport type GroupMessageReactionEventData = z.infer<typeof GroupMessageReactionEventData>;\n\nexport const GroupMessageReactionEvent = GroupMessageReactionEventData;\nexport type GroupMessageReactionEvent = z.infer<typeof GroupMessageReactionEventData>;\n\nexport const GroupMuteEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发生变更的用户 QQ 号'),\n operator_id: zUin.describe('操作者 QQ 号'),\n duration: z.number().int().nonnegative().describe('禁言时长(秒),为 0 表示取消禁言'),\n}).describe('群禁言事件');\nexport type GroupMuteEventData = z.infer<typeof GroupMuteEventData>;\n\nexport const GroupMuteEvent = GroupMuteEventData;\nexport type GroupMuteEvent = z.infer<typeof GroupMuteEventData>;\n\nexport const GroupWholeMuteEventData = z.object({\n group_id: zUin.describe('群号'),\n operator_id: zUin.describe('操作者 QQ 号'),\n is_mute: z.boolean().describe('是否全员禁言,`false` 表示取消全员禁言'),\n}).describe('群全体禁言事件');\nexport type GroupWholeMuteEventData = z.infer<typeof GroupWholeMuteEventData>;\n\nexport const GroupWholeMuteEvent = GroupWholeMuteEventData;\nexport type GroupWholeMuteEvent = z.infer<typeof GroupWholeMuteEventData>;\n\nexport const GroupNudgeEventData = z.object({\n group_id: zUin.describe('群号'),\n sender_id: zUin.describe('发送者 QQ 号'),\n receiver_id: zUin.describe('接收者 QQ 号'),\n display_action: z.string().describe('戳一戳提示的动作文本'),\n display_suffix: z.string().describe('戳一戳提示的后缀文本'),\n display_action_img_url: z.string().describe('戳一戳提示的动作图片 URL,用于取代动作提示文本'),\n}).describe('群戳一戳事件');\nexport type GroupNudgeEventData = z.infer<typeof GroupNudgeEventData>;\n\nexport const GroupNudgeEvent = GroupNudgeEventData;\nexport type GroupNudgeEvent = z.infer<typeof GroupNudgeEventData>;\n\nexport const GroupFileUploadEventData = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('发送者 QQ 号'),\n file_id: z.string().describe('文件 ID'),\n file_name: z.string().describe('文件名称'),\n file_size: z.number().int().nonnegative().describe('文件大小(字节)'),\n}).describe('群文件上传事件');\nexport type GroupFileUploadEventData = z.infer<typeof GroupFileUploadEventData>;\n\nexport const GroupFileUploadEvent = GroupFileUploadEventData;\nexport type GroupFileUploadEvent = z.infer<typeof GroupFileUploadEventData>;\n\nexport const Event = z.discriminatedUnion('event_type', [\n z.object({\n event_type: z.literal('bot_offline'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: BotOfflineEventData.describe('机器人离线事件'),\n }).describe('机器人离线事件'),\n\n z.object({\n event_type: z.literal('message_receive'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: z.lazy(() => IncomingMessage).describe('消息接收事件'),\n }).describe('消息接收事件'),\n\n z.object({\n event_type: z.literal('message_recall'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: MessageRecallEventData.describe('消息撤回事件'),\n }).describe('消息撤回事件'),\n\n z.object({\n event_type: z.literal('peer_pin_change'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: PeerPinChangeEventData.describe('会话置顶变更事件'),\n }).describe('会话置顶变更事件'),\n\n z.object({\n event_type: z.literal('friend_request'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: FriendRequestEventData.describe('好友请求事件'),\n }).describe('好友请求事件'),\n\n z.object({\n event_type: z.literal('group_join_request'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupJoinRequestEventData.describe('入群请求事件'),\n }).describe('入群请求事件'),\n\n z.object({\n event_type: z.literal('group_invited_join_request'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupInvitedJoinRequestEventData.describe('群成员邀请他人入群请求事件'),\n }).describe('群成员邀请他人入群请求事件'),\n\n z.object({\n event_type: z.literal('group_invitation'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupInvitationEventData.describe('他人邀请自身入群事件'),\n }).describe('他人邀请自身入群事件'),\n\n z.object({\n event_type: z.literal('friend_nudge'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: FriendNudgeEventData.describe('好友戳一戳事件'),\n }).describe('好友戳一戳事件'),\n\n z.object({\n event_type: z.literal('friend_file_upload'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: FriendFileUploadEventData.describe('好友文件上传事件'),\n }).describe('好友文件上传事件'),\n\n z.object({\n event_type: z.literal('group_admin_change'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupAdminChangeEventData.describe('群管理员变更事件'),\n }).describe('群管理员变更事件'),\n\n z.object({\n event_type: z.literal('group_essence_message_change'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupEssenceMessageChangeEventData.describe('群精华消息变更事件'),\n }).describe('群精华消息变更事件'),\n\n z.object({\n event_type: z.literal('group_member_increase'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupMemberIncreaseEventData.describe('群成员增加事件'),\n }).describe('群成员增加事件'),\n\n z.object({\n event_type: z.literal('group_member_decrease'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupMemberDecreaseEventData.describe('群成员减少事件'),\n }).describe('群成员减少事件'),\n\n z.object({\n event_type: z.literal('group_name_change'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupNameChangeEventData.describe('群名称变更事件'),\n }).describe('群名称变更事件'),\n\n z.object({\n event_type: z.literal('group_message_reaction'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupMessageReactionEventData.describe('群消息表情回应事件'),\n }).describe('群消息表情回应事件'),\n\n z.object({\n event_type: z.literal('group_mute'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupMuteEventData.describe('群禁言事件'),\n }).describe('群禁言事件'),\n\n z.object({\n event_type: z.literal('group_whole_mute'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupWholeMuteEventData.describe('群全体禁言事件'),\n }).describe('群全体禁言事件'),\n\n z.object({\n event_type: z.literal('group_nudge'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupNudgeEventData.describe('群戳一戳事件'),\n }).describe('群戳一戳事件'),\n\n z.object({\n event_type: z.literal('group_file_upload'),\n time: z.number().int().nonnegative().describe('事件 Unix 时间戳(秒)'),\n self_id: zUin.describe('机器人 QQ 号'),\n data: GroupFileUploadEventData.describe('群文件上传事件'),\n }).describe('群文件上传事件'),\n]).describe('事件');\nexport type Event = z.infer<typeof Event>;\n\nexport const FriendEntity = z.object({\n user_id: zUin.describe('用户 QQ 号'),\n nickname: z.string().describe('用户昵称'),\n sex: z.enum(['male', 'female', 'unknown']).describe('用户性别'),\n qid: z.string().describe('用户 QID'),\n remark: z.string().describe('好友备注'),\n category: z.lazy(() => FriendCategoryEntity).describe('好友分组'),\n}).describe('好友实体');\nexport type FriendEntity = z.infer<typeof FriendEntity>;\n\nexport const FriendCategoryEntity = z.object({\n category_id: z.number().int().nonnegative().describe('好友分组 ID'),\n category_name: z.string().describe('好友分组名称'),\n}).describe('好友分组实体');\nexport type FriendCategoryEntity = z.infer<typeof FriendCategoryEntity>;\n\nexport const GroupEntity = z.object({\n group_id: zUin.describe('群号'),\n group_name: z.string().describe('群名称'),\n member_count: z.number().int().nonnegative().describe('群成员数量'),\n max_member_count: z.number().int().nonnegative().describe('群容量'),\n remark: z.string().describe('群备注'),\n created_time: z.number().int().nonnegative().describe('群创建时间,Unix 时间戳(秒)'),\n description: z.string().describe('群简介'),\n question: z.string().describe('加群验证问题'),\n announcement: z.string().describe('群公告预览'),\n}).describe('群实体');\nexport type GroupEntity = z.infer<typeof GroupEntity>;\n\nexport const GroupMemberEntity = z.object({\n user_id: zUin.describe('用户 QQ 号'),\n nickname: z.string().describe('用户昵称'),\n sex: z.enum(['male', 'female', 'unknown']).describe('用户性别'),\n group_id: zUin.describe('群号'),\n card: z.string().describe('成员备注'),\n title: z.string().describe('专属头衔'),\n level: z.number().int().nonnegative().describe('群等级,注意和 QQ 等级区分'),\n role: z.enum(['owner', 'admin', 'member']).describe('权限等级'),\n join_time: z.number().int().nonnegative().describe('入群时间,Unix 时间戳(秒)'),\n last_sent_time: z.number().int().nonnegative().describe('最后发言时间,Unix 时间戳(秒)'),\n shut_up_end_time: z.number().int().nonnegative().nullish().describe('禁言结束时间,Unix 时间戳(秒)'),\n}).describe('群成员实体');\nexport type GroupMemberEntity = z.infer<typeof GroupMemberEntity>;\n\nexport const GroupAnnouncementEntity = z.object({\n group_id: zUin.describe('群号'),\n announcement_id: z.string().describe('公告 ID'),\n user_id: zUin.describe('发送者 QQ 号'),\n time: z.number().int().nonnegative().describe('Unix 时间戳(秒)'),\n content: z.string().describe('公告内容'),\n image_url: z.string().nullish().describe('公告图片 URL'),\n}).describe('群公告实体');\nexport type GroupAnnouncementEntity = z.infer<typeof GroupAnnouncementEntity>;\n\nexport const GroupFileEntity = z.object({\n group_id: zUin.describe('群号'),\n file_id: z.string().describe('文件 ID'),\n file_name: z.string().describe('文件名称'),\n parent_folder_id: z.string().describe('父文件夹 ID'),\n file_size: z.number().int().nonnegative().describe('文件大小(字节)'),\n uploaded_time: z.number().int().nonnegative().describe('上传时的 Unix 时间戳(秒)'),\n expire_time: z.number().int().nonnegative().nullish().describe('过期时的 Unix 时间戳(秒)'),\n uploader_id: zUin.describe('上传者 QQ 号'),\n downloaded_times: z.number().int().nonnegative().describe('下载次数'),\n}).describe('群文件实体');\nexport type GroupFileEntity = z.infer<typeof GroupFileEntity>;\n\nexport const GroupFolderEntity = z.object({\n group_id: zUin.describe('群号'),\n folder_id: z.string().describe('文件夹 ID'),\n parent_folder_id: z.string().describe('父文件夹 ID'),\n folder_name: z.string().describe('文件夹名称'),\n created_time: z.number().int().nonnegative().describe('创建时的 Unix 时间戳(秒)'),\n last_modified_time: z.number().int().nonnegative().describe('最后修改时的 Unix 时间戳(秒)'),\n creator_id: zUin.describe('创建者 QQ 号'),\n file_count: z.number().int().nonnegative().describe('文件数量'),\n}).describe('群文件夹实体');\nexport type GroupFolderEntity = z.infer<typeof GroupFolderEntity>;\n\nexport const FriendRequest = z.object({\n time: z.number().int().nonnegative().describe('请求发起时的 Unix 时间戳(秒)'),\n initiator_id: zUin.describe('请求发起者 QQ 号'),\n initiator_uid: z.string().describe('请求发起者 UID'),\n target_user_id: zUin.describe('目标用户 QQ 号'),\n target_user_uid: z.string().describe('目标用户 UID'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n comment: z.string().describe('申请附加信息'),\n via: z.string().describe('申请来源'),\n is_filtered: z.boolean().describe('请求是否被过滤(发起自风险账户)'),\n}).describe('好友请求实体');\nexport type FriendRequest = z.infer<typeof FriendRequest>;\n\nexport const GroupJoinRequestNotification = z.object({\n type: z.literal('join_request'),\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('通知序列号'),\n is_filtered: z.boolean().describe('请求是否被过滤(发起自风险账户)'),\n initiator_id: zUin.describe('发起者 QQ 号'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n operator_id: z.number().int().nonnegative().nullish().describe('处理请求的管理员 QQ 号'),\n comment: z.string().describe('入群请求附加信息'),\n}).describe('用户入群请求');\nexport type GroupJoinRequestNotification = z.infer<typeof GroupJoinRequestNotification>;\n\nexport const GroupAdminChangeNotification = z.object({\n type: z.literal('admin_change'),\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('通知序列号'),\n target_user_id: zUin.describe('被设置/取消用户 QQ 号'),\n is_set: z.boolean().describe('是否被设置为管理员,`false` 表示被取消管理员'),\n operator_id: zUin.describe('操作者(群主)QQ 号'),\n}).describe('群管理员变更通知');\nexport type GroupAdminChangeNotification = z.infer<typeof GroupAdminChangeNotification>;\n\nexport const GroupKickNotification = z.object({\n type: z.literal('kick'),\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('通知序列号'),\n target_user_id: zUin.describe('被移除用户 QQ 号'),\n operator_id: zUin.describe('移除用户的管理员 QQ 号'),\n}).describe('群成员被移除通知');\nexport type GroupKickNotification = z.infer<typeof GroupKickNotification>;\n\nexport const GroupQuitNotification = z.object({\n type: z.literal('quit'),\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('通知序列号'),\n target_user_id: zUin.describe('退群用户 QQ 号'),\n}).describe('群成员退群通知');\nexport type GroupQuitNotification = z.infer<typeof GroupQuitNotification>;\n\nexport const GroupInvitedJoinRequestNotification = z.object({\n type: z.literal('invited_join_request'),\n group_id: zUin.describe('群号'),\n notification_seq: z.number().int().nonnegative().describe('通知序列号'),\n initiator_id: zUin.describe('邀请者 QQ 号'),\n target_user_id: zUin.describe('被邀请用户 QQ 号'),\n state: z.enum(['pending', 'accepted', 'rejected', 'ignored']).describe('请求状态'),\n operator_id: z.number().int().nonnegative().nullish().describe('处理请求的管理员 QQ 号'),\n}).describe('群成员邀请他人入群请求');\nexport type GroupInvitedJoinRequestNotification = z.infer<typeof GroupInvitedJoinRequestNotification>;\n\nexport const GroupNotification = z.discriminatedUnion('type', [\n GroupJoinRequestNotification,\n GroupAdminChangeNotification,\n GroupKickNotification,\n GroupQuitNotification,\n GroupInvitedJoinRequestNotification,\n]).describe('群通知实体');\nexport type GroupNotification = z.infer<typeof GroupNotification>;\n\nexport const IncomingFriendMessage = z.object({\n message_scene: z.literal('friend'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n sender_id: zUin.describe('发送者 QQ 号'),\n time: z.number().int().nonnegative().describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n friend: z.lazy(() => FriendEntity).describe('好友信息'),\n}).describe('好友消息');\nexport type IncomingFriendMessage = z.infer<typeof IncomingFriendMessage>;\n\nexport const IncomingGroupMessage = z.object({\n message_scene: z.literal('group'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n sender_id: zUin.describe('发送者 QQ 号'),\n time: z.number().int().nonnegative().describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n group: z.lazy(() => GroupEntity).describe('群信息'),\n group_member: z.lazy(() => GroupMemberEntity).describe('群成员信息'),\n}).describe('群消息');\nexport type IncomingGroupMessage = z.infer<typeof IncomingGroupMessage>;\n\nexport const IncomingTempMessage = z.object({\n message_scene: z.literal('temp'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n sender_id: zUin.describe('发送者 QQ 号'),\n time: z.number().int().nonnegative().describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n group: z.lazy(() => GroupEntity).nullish().describe('临时会话发送者的所在的群信息'),\n}).describe('临时会话消息');\nexport type IncomingTempMessage = z.infer<typeof IncomingTempMessage>;\n\nexport const IncomingMessage = z.discriminatedUnion('message_scene', [\n IncomingFriendMessage,\n IncomingGroupMessage,\n IncomingTempMessage,\n]).describe('接收消息');\nexport type IncomingMessage = z.infer<typeof IncomingMessage>;\n\nexport const IncomingForwardedMessage = z.object({\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n sender_name: z.string().describe('发送者名称'),\n avatar_url: z.string().describe('发送者头像 URL'),\n time: z.number().int().nonnegative().describe('消息 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n}).describe('接收转发消息');\nexport type IncomingForwardedMessage = z.infer<typeof IncomingForwardedMessage>;\n\nexport const GroupEssenceMessage = z.object({\n group_id: zUin.describe('群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n message_time: z.number().int().nonnegative().describe('消息发送时的 Unix 时间戳(秒)'),\n sender_id: zUin.describe('发送者 QQ 号'),\n sender_name: z.string().describe('发送者名称'),\n operator_id: zUin.describe('设置精华的操作者 QQ 号'),\n operator_name: z.string().describe('设置精华的操作者名称'),\n operation_time: z.number().int().nonnegative().describe('消息被设置精华时的 Unix 时间戳(秒)'),\n segments: z.array(z.lazy(() => IncomingSegment)).describe('消息段列表'),\n}).describe('群精华消息');\nexport type GroupEssenceMessage = z.infer<typeof GroupEssenceMessage>;\n\nexport const IncomingTextSegmentData = z.object({\n text: z.string().describe('文本内容'),\n}).describe('文本消息段');\nexport type IncomingTextSegmentData = z.infer<typeof IncomingTextSegmentData>;\n\nexport const IncomingMentionSegmentData = z.object({\n user_id: zUin.describe('提及的 QQ 号'),\n name: z.string().describe('去掉 `@` 前缀的提及的名称'),\n}).describe('提及消息段');\nexport type IncomingMentionSegmentData = z.infer<typeof IncomingMentionSegmentData>;\n\nexport const IncomingMentionAllSegmentData = z.object({\n}).describe('提及全体消息段');\nexport type IncomingMentionAllSegmentData = z.infer<typeof IncomingMentionAllSegmentData>;\n\nexport const IncomingFaceSegmentData = z.object({\n face_id: z.string().describe('表情 ID'),\n is_large: z.boolean().describe('是否为超级表情'),\n}).describe('表情消息段');\nexport type IncomingFaceSegmentData = z.infer<typeof IncomingFaceSegmentData>;\n\nexport const IncomingReplySegmentData = z.object({\n message_seq: z.number().int().nonnegative().describe('被引用的消息序列号'),\n sender_id: zUin.describe('被引用的消息发送者 QQ 号'),\n sender_name: z.string().nullish().describe('被引用的消息发送者名称,仅在合并转发中能够获取'),\n time: z.number().int().nonnegative().describe('被引用的消息的 Unix 时间戳(秒)'),\n get segments() {\n return z.array(z.lazy(() => IncomingSegment)).describe('回复消息内容');\n },\n}).describe('回复消息段');\nexport type IncomingReplySegmentData = z.infer<typeof IncomingReplySegmentData>;\n\nexport const IncomingImageSegmentData = z.object({\n resource_id: z.string().describe('资源 ID'),\n temp_url: z.string().describe('临时 URL'),\n width: z.number().int().nonnegative().describe('图片宽度'),\n height: z.number().int().nonnegative().describe('图片高度'),\n summary: z.string().describe('图片预览文本'),\n sub_type: z.enum(['normal', 'sticker']).describe('图片类型'),\n}).describe('图片消息段');\nexport type IncomingImageSegmentData = z.infer<typeof IncomingImageSegmentData>;\n\nexport const IncomingRecordSegmentData = z.object({\n resource_id: z.string().describe('资源 ID'),\n temp_url: z.string().describe('临时 URL'),\n duration: z.number().int().nonnegative().describe('语音时长(秒)'),\n}).describe('语音消息段');\nexport type IncomingRecordSegmentData = z.infer<typeof IncomingRecordSegmentData>;\n\nexport const IncomingVideoSegmentData = z.object({\n resource_id: z.string().describe('资源 ID'),\n temp_url: z.string().describe('临时 URL'),\n width: z.number().int().nonnegative().describe('视频宽度'),\n height: z.number().int().nonnegative().describe('视频高度'),\n duration: z.number().int().nonnegative().describe('视频时长(秒)'),\n}).describe('视频消息段');\nexport type IncomingVideoSegmentData = z.infer<typeof IncomingVideoSegmentData>;\n\nexport const IncomingFileSegmentData = z.object({\n file_id: z.string().describe('文件 ID'),\n file_name: z.string().describe('文件名称'),\n file_size: z.number().int().nonnegative().describe('文件大小(字节)'),\n file_hash: z.string().nullish().describe('文件的 TriSHA1 哈希值,仅在私聊文件中存在'),\n}).describe('文件消息段');\nexport type IncomingFileSegmentData = z.infer<typeof IncomingFileSegmentData>;\n\nexport const IncomingForwardSegmentData = z.object({\n forward_id: z.string().describe('合并转发 ID'),\n title: z.string().describe('合并转发标题'),\n preview: z.array(z.string()).describe('合并转发预览文本'),\n summary: z.string().describe('合并转发摘要'),\n}).describe('合并转发消息段');\nexport type IncomingForwardSegmentData = z.infer<typeof IncomingForwardSegmentData>;\n\nexport const IncomingMarketFaceSegmentData = z.object({\n emoji_package_id: z.number().int().nonnegative().describe('市场表情包 ID'),\n emoji_id: z.string().describe('市场表情 ID'),\n key: z.string().describe('市场表情 Key'),\n summary: z.string().describe('市场表情预览文本'),\n url: z.string().describe('市场表情 URL'),\n}).describe('市场表情消息段');\nexport type IncomingMarketFaceSegmentData = z.infer<typeof IncomingMarketFaceSegmentData>;\n\nexport const IncomingLightAppSegmentData = z.object({\n app_name: z.string().describe('小程序名称'),\n json_payload: z.string().describe('小程序 JSON 数据'),\n}).describe('小程序消息段');\nexport type IncomingLightAppSegmentData = z.infer<typeof IncomingLightAppSegmentData>;\n\nexport const IncomingXmlSegmentData = z.object({\n service_id: z.number().int().nonnegative().describe('服务 ID'),\n xml_payload: z.string().describe('XML 数据'),\n}).describe('XML 消息段');\nexport type IncomingXmlSegmentData = z.infer<typeof IncomingXmlSegmentData>;\n\nexport const IncomingSegment = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('text'),\n data: IncomingTextSegmentData.describe('文本消息段'),\n }).describe('文本消息段'),\n\n z.object({\n type: z.literal('mention'),\n data: IncomingMentionSegmentData.describe('提及消息段'),\n }).describe('提及消息段'),\n\n z.object({\n type: z.literal('mention_all'),\n data: IncomingMentionAllSegmentData.describe('提及全体消息段'),\n }).describe('提及全体消息段'),\n\n z.object({\n type: z.literal('face'),\n data: IncomingFaceSegmentData.describe('表情消息段'),\n }).describe('表情消息段'),\n\n z.object({\n type: z.literal('reply'),\n data: IncomingReplySegmentData.describe('回复消息段'),\n }).describe('回复消息段'),\n\n z.object({\n type: z.literal('image'),\n data: IncomingImageSegmentData.describe('图片消息段'),\n }).describe('图片消息段'),\n\n z.object({\n type: z.literal('record'),\n data: IncomingRecordSegmentData.describe('语音消息段'),\n }).describe('语音消息段'),\n\n z.object({\n type: z.literal('video'),\n data: IncomingVideoSegmentData.describe('视频消息段'),\n }).describe('视频消息段'),\n\n z.object({\n type: z.literal('file'),\n data: IncomingFileSegmentData.describe('文件消息段'),\n }).describe('文件消息段'),\n\n z.object({\n type: z.literal('forward'),\n data: IncomingForwardSegmentData.describe('合并转发消息段'),\n }).describe('合并转发消息段'),\n\n z.object({\n type: z.literal('market_face'),\n data: IncomingMarketFaceSegmentData.describe('市场表情消息段'),\n }).describe('市场表情消息段'),\n\n z.object({\n type: z.literal('light_app'),\n data: IncomingLightAppSegmentData.describe('小程序消息段'),\n }).describe('小程序消息段'),\n\n z.object({\n type: z.literal('xml'),\n data: IncomingXmlSegmentData.describe('XML 消息段'),\n }).describe('XML 消息段'),\n]).catch({\n type: 'text',\n data: { text: '[unknown]' },\n}).describe('接收消息段');\nexport type IncomingSegment = z.infer<typeof IncomingSegment>;\n\nexport const OutgoingForwardedMessage = z.object({\n user_id: zUin.describe('发送者 QQ 号'),\n sender_name: z.string().describe('发送者名称'),\n segments: z.array(z.lazy(() => OutgoingSegment)).describe('消息段列表'),\n}).describe('发送转发消息');\nexport type OutgoingForwardedMessage = z.infer<typeof OutgoingForwardedMessage>;\n\nexport const OutgoingTextSegmentData = z.object({\n text: z.string().describe('文本内容'),\n}).describe('文本消息段');\nexport type OutgoingTextSegmentData = z.infer<typeof OutgoingTextSegmentData>;\n\nexport const OutgoingMentionSegmentData = z.object({\n user_id: zUin.describe('提及的 QQ 号'),\n}).describe('提及消息段');\nexport type OutgoingMentionSegmentData = z.infer<typeof OutgoingMentionSegmentData>;\n\nexport const OutgoingMentionAllSegmentData = z.object({\n}).describe('提及全体消息段');\nexport type OutgoingMentionAllSegmentData = z.infer<typeof OutgoingMentionAllSegmentData>;\n\nexport const OutgoingFaceSegmentData = z.object({\n face_id: z.string().describe('表情 ID'),\n is_large: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否为超级表情'),\n}).describe('表情消息段');\nexport type OutgoingFaceSegmentData = z.infer<typeof OutgoingFaceSegmentData>;\n\nexport const OutgoingReplySegmentData = z.object({\n message_seq: z.number().int().nonnegative().describe('被引用的消息序列号'),\n}).describe('回复消息段');\nexport type OutgoingReplySegmentData = z.infer<typeof OutgoingReplySegmentData>;\n\nexport const OutgoingImageSegmentData = z.object({\n uri: z.string().describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n sub_type: z.enum(['normal', 'sticker']).nullish().default('normal').transform<'normal' | 'sticker'>((val) => val ?? 'normal').describe('图片类型'),\n summary: z.string().nullish().describe('图片预览文本'),\n}).describe('图片消息段');\nexport type OutgoingImageSegmentData = z.infer<typeof OutgoingImageSegmentData>;\n\nexport const OutgoingRecordSegmentData = z.object({\n uri: z.string().describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n}).describe('语音消息段');\nexport type OutgoingRecordSegmentData = z.infer<typeof OutgoingRecordSegmentData>;\n\nexport const OutgoingVideoSegmentData = z.object({\n uri: z.string().describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n thumb_uri: z.string().nullish().describe('封面图片 URI'),\n}).describe('视频消息段');\nexport type OutgoingVideoSegmentData = z.infer<typeof OutgoingVideoSegmentData>;\n\nexport const OutgoingForwardSegmentData = z.object({\n get messages() {\n return z.array(z.lazy(() => OutgoingForwardedMessage)).describe('合并转发消息内容');\n },\n title: z.string().nullish().describe('合并转发标题'),\n preview: z.array(z.string()).nullish().describe('合并转发预览文本,若提供,至少 1 条,至多 4 条'),\n summary: z.string().nullish().describe('合并转发摘要'),\n prompt: z.string().nullish().describe('合并转发的预览外显文本,仅对移动端 QQ 有效'),\n}).describe('合并转发消息段');\nexport type OutgoingForwardSegmentData = z.infer<typeof OutgoingForwardSegmentData>;\n\nexport const OutgoingLightAppSegmentData = z.object({\n json_payload: z.string().describe('小程序 JSON 数据'),\n}).describe('小程序消息段');\nexport type OutgoingLightAppSegmentData = z.infer<typeof OutgoingLightAppSegmentData>;\n\nexport const OutgoingSegment = z.discriminatedUnion('type', [\n z.object({\n type: z.literal('text'),\n data: OutgoingTextSegmentData.describe('文本消息段'),\n }).describe('文本消息段'),\n\n z.object({\n type: z.literal('mention'),\n data: OutgoingMentionSegmentData.describe('提及消息段'),\n }).describe('提及消息段'),\n\n z.object({\n type: z.literal('mention_all'),\n data: OutgoingMentionAllSegmentData.describe('提及全体消息段'),\n }).describe('提及全体消息段'),\n\n z.object({\n type: z.literal('face'),\n data: OutgoingFaceSegmentData.describe('表情消息段'),\n }).describe('表情消息段'),\n\n z.object({\n type: z.literal('reply'),\n data: OutgoingReplySegmentData.describe('回复消息段'),\n }).describe('回复消息段'),\n\n z.object({\n type: z.literal('image'),\n data: OutgoingImageSegmentData.describe('图片消息段'),\n }).describe('图片消息段'),\n\n z.object({\n type: z.literal('record'),\n data: OutgoingRecordSegmentData.describe('语音消息段'),\n }).describe('语音消息段'),\n\n z.object({\n type: z.literal('video'),\n data: OutgoingVideoSegmentData.describe('视频消息段'),\n }).describe('视频消息段'),\n\n z.object({\n type: z.literal('forward'),\n data: OutgoingForwardSegmentData.describe('合并转发消息段'),\n }).describe('合并转发消息段'),\n\n z.object({\n type: z.literal('light_app'),\n data: OutgoingLightAppSegmentData.describe('小程序消息段'),\n }).describe('小程序消息段'),\n]).describe('发送消息段');\nexport type OutgoingSegment = z.infer<typeof OutgoingSegment>;\n\n// ####################################\n// API Structs\n// ####################################\n\nexport const GetLoginInfoOutput = z.object({\n uin: zUin.describe('登录 QQ 号'),\n nickname: z.string().describe('登录昵称'),\n}).describe('get_login_info 响应数据');\nexport type GetLoginInfoOutput = z.infer<typeof GetLoginInfoOutput>;\n\nexport const GetImplInfoOutput = z.object({\n impl_name: z.string().describe('协议端名称'),\n impl_version: z.string().describe('协议端版本'),\n qq_protocol_version: z.string().describe('协议端使用的 QQ 协议版本'),\n qq_protocol_type: z.enum(['windows', 'linux', 'macos', 'android_pad', 'android_phone', 'ipad', 'iphone', 'harmony', 'watch']).describe('协议端使用的 QQ 协议平台'),\n milky_version: z.string().describe('协议端实现的 Milky 协议版本,目前为 \"1.2\"'),\n}).describe('get_impl_info 响应数据');\nexport type GetImplInfoOutput = z.infer<typeof GetImplInfoOutput>;\n\nexport const GetUserProfileInput = z.object({\n user_id: zUin.describe('用户 QQ 号'),\n}).describe('get_user_profile 请求参数');\nexport type GetUserProfileInput = z.infer<typeof GetUserProfileInput>;\n\nexport const GetUserProfileOutput = z.object({\n nickname: z.string().describe('昵称'),\n qid: z.string().describe('QID'),\n age: z.number().int().nonnegative().describe('年龄'),\n sex: z.enum(['male', 'female', 'unknown']).describe('性别'),\n remark: z.string().describe('备注'),\n bio: z.string().describe('个性签名'),\n level: z.number().int().nonnegative().describe('QQ 等级'),\n country: z.string().describe('国家或地区'),\n city: z.string().describe('城市'),\n school: z.string().describe('学校'),\n}).describe('get_user_profile 响应数据');\nexport type GetUserProfileOutput = z.infer<typeof GetUserProfileOutput>;\n\nexport const GetFriendListInput = z.object({\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_friend_list 请求参数');\nexport type GetFriendListInput = z.infer<typeof GetFriendListInput>;\n\nexport const GetFriendListOutput = z.object({\n friends: z.array(z.lazy(() => FriendEntity)).describe('好友列表'),\n}).describe('get_friend_list 响应数据');\nexport type GetFriendListOutput = z.infer<typeof GetFriendListOutput>;\n\nexport const GetFriendInfoInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_friend_info 请求参数');\nexport type GetFriendInfoInput = z.infer<typeof GetFriendInfoInput>;\n\nexport const GetFriendInfoOutput = z.object({\n friend: z.lazy(() => FriendEntity).describe('好友信息'),\n}).describe('get_friend_info 响应数据');\nexport type GetFriendInfoOutput = z.infer<typeof GetFriendInfoOutput>;\n\nexport const GetGroupListInput = z.object({\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_group_list 请求参数');\nexport type GetGroupListInput = z.infer<typeof GetGroupListInput>;\n\nexport const GetGroupListOutput = z.object({\n groups: z.array(z.lazy(() => GroupEntity)).describe('群列表'),\n}).describe('get_group_list 响应数据');\nexport type GetGroupListOutput = z.infer<typeof GetGroupListOutput>;\n\nexport const GetGroupInfoInput = z.object({\n group_id: zUin.describe('群号'),\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_group_info 请求参数');\nexport type GetGroupInfoInput = z.infer<typeof GetGroupInfoInput>;\n\nexport const GetGroupInfoOutput = z.object({\n group: z.lazy(() => GroupEntity).describe('群信息'),\n}).describe('get_group_info 响应数据');\nexport type GetGroupInfoOutput = z.infer<typeof GetGroupInfoOutput>;\n\nexport const GetGroupMemberListInput = z.object({\n group_id: zUin.describe('群号'),\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_group_member_list 请求参数');\nexport type GetGroupMemberListInput = z.infer<typeof GetGroupMemberListInput>;\n\nexport const GetGroupMemberListOutput = z.object({\n members: z.array(z.lazy(() => GroupMemberEntity)).describe('群成员列表'),\n}).describe('get_group_member_list 响应数据');\nexport type GetGroupMemberListOutput = z.infer<typeof GetGroupMemberListOutput>;\n\nexport const GetGroupMemberInfoInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('群成员 QQ 号'),\n no_cache: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否强制不使用缓存'),\n}).describe('get_group_member_info 请求参数');\nexport type GetGroupMemberInfoInput = z.infer<typeof GetGroupMemberInfoInput>;\n\nexport const GetGroupMemberInfoOutput = z.object({\n member: z.lazy(() => GroupMemberEntity).describe('群成员信息'),\n}).describe('get_group_member_info 响应数据');\nexport type GetGroupMemberInfoOutput = z.infer<typeof GetGroupMemberInfoOutput>;\n\nexport const GetPeerPinsOutput = z.object({\n friends: z.array(z.lazy(() => FriendEntity)).describe('置顶的好友列表'),\n groups: z.array(z.lazy(() => GroupEntity)).describe('置顶的群列表'),\n}).describe('get_peer_pins 响应数据');\nexport type GetPeerPinsOutput = z.infer<typeof GetPeerPinsOutput>;\n\nexport const SetPeerPinInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('要设置的会话的消息场景'),\n peer_id: zUin.describe('要设置的好友 QQ 号或群号'),\n is_pinned: z.boolean().nullish().default(true).transform<boolean>((val) => val ?? true).describe('是否置顶, `false` 表示取消置顶'),\n}).describe('set_peer_pin 请求参数');\nexport type SetPeerPinInput = z.infer<typeof SetPeerPinInput>;\n\nexport const SetAvatarInput = z.object({\n uri: z.string().describe('头像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n}).describe('set_avatar 请求参数');\nexport type SetAvatarInput = z.infer<typeof SetAvatarInput>;\n\nexport const SetNicknameInput = z.object({\n new_nickname: z.string().describe('新昵称'),\n}).describe('set_nickname 请求参数');\nexport type SetNicknameInput = z.infer<typeof SetNicknameInput>;\n\nexport const SetBioInput = z.object({\n new_bio: z.string().describe('新个性签名'),\n}).describe('set_bio 请求参数');\nexport type SetBioInput = z.infer<typeof SetBioInput>;\n\nexport const GetCustomFaceUrlListOutput = z.object({\n urls: z.array(z.string()).describe('自定义表情 URL 列表'),\n}).describe('get_custom_face_url_list 响应数据');\nexport type GetCustomFaceUrlListOutput = z.infer<typeof GetCustomFaceUrlListOutput>;\n\nexport const GetCookiesInput = z.object({\n domain: z.string().describe('需要获取 Cookies 的域名'),\n}).describe('get_cookies 请求参数');\nexport type GetCookiesInput = z.infer<typeof GetCookiesInput>;\n\nexport const GetCookiesOutput = z.object({\n cookies: z.string().describe('域名对应的 Cookies 字符串'),\n}).describe('get_cookies 响应数据');\nexport type GetCookiesOutput = z.infer<typeof GetCookiesOutput>;\n\nexport const GetCSRFTokenOutput = z.object({\n csrf_token: z.string().describe('CSRF Token'),\n}).describe('get_csrf_token 响应数据');\nexport type GetCSRFTokenOutput = z.infer<typeof GetCSRFTokenOutput>;\n\nexport const SendPrivateMessageInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n message: z.array(z.lazy(() => OutgoingSegment)).describe('消息内容'),\n}).describe('send_private_message 请求参数');\nexport type SendPrivateMessageInput = z.infer<typeof SendPrivateMessageInput>;\n\nexport const SendPrivateMessageOutput = z.object({\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n time: z.number().int().nonnegative().describe('消息发送时间'),\n}).describe('send_private_message 响应数据');\nexport type SendPrivateMessageOutput = z.infer<typeof SendPrivateMessageOutput>;\n\nexport const SendGroupMessageInput = z.object({\n group_id: zUin.describe('群号'),\n message: z.array(z.lazy(() => OutgoingSegment)).describe('消息内容'),\n}).describe('send_group_message 请求参数');\nexport type SendGroupMessageInput = z.infer<typeof SendGroupMessageInput>;\n\nexport const SendGroupMessageOutput = z.object({\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n time: z.number().int().nonnegative().describe('消息发送时间'),\n}).describe('send_group_message 响应数据');\nexport type SendGroupMessageOutput = z.infer<typeof SendGroupMessageOutput>;\n\nexport const RecallPrivateMessageInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n}).describe('recall_private_message 请求参数');\nexport type RecallPrivateMessageInput = z.infer<typeof RecallPrivateMessageInput>;\n\nexport const RecallGroupMessageInput = z.object({\n group_id: zUin.describe('群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n}).describe('recall_group_message 请求参数');\nexport type RecallGroupMessageInput = z.infer<typeof RecallGroupMessageInput>;\n\nexport const GetMessageInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n}).describe('get_message 请求参数');\nexport type GetMessageInput = z.infer<typeof GetMessageInput>;\n\nexport const GetMessageOutput = z.object({\n message: z.lazy(() => IncomingMessage).describe('消息内容'),\n}).describe('get_message 响应数据');\nexport type GetMessageOutput = z.infer<typeof GetMessageOutput>;\n\nexport const GetHistoryMessagesInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n start_message_seq: z.number().int().nonnegative().nullish().describe('起始消息序列号,由此开始从新到旧查询,不提供则从最新消息开始'),\n limit: z.number().int().nonnegative().nullish().default(20).transform<number>((val) => val ?? 20).describe('期望获取到的消息数量,最多 30 条'),\n}).describe('get_history_messages 请求参数');\nexport type GetHistoryMessagesInput = z.infer<typeof GetHistoryMessagesInput>;\n\nexport const GetHistoryMessagesOutput = z.object({\n messages: z.array(z.lazy(() => IncomingMessage)).describe('获取到的消息(message_seq 升序排列),部分消息可能不存在,如撤回的消息'),\n next_message_seq: z.number().int().nonnegative().nullish().describe('下一页起始消息序列号'),\n}).describe('get_history_messages 响应数据');\nexport type GetHistoryMessagesOutput = z.infer<typeof GetHistoryMessagesOutput>;\n\nexport const GetResourceTempUrlInput = z.object({\n resource_id: z.string().describe('资源 ID'),\n}).describe('get_resource_temp_url 请求参数');\nexport type GetResourceTempUrlInput = z.infer<typeof GetResourceTempUrlInput>;\n\nexport const GetResourceTempUrlOutput = z.object({\n url: z.string().describe('临时资源链接'),\n}).describe('get_resource_temp_url 响应数据');\nexport type GetResourceTempUrlOutput = z.infer<typeof GetResourceTempUrlOutput>;\n\nexport const GetForwardedMessagesInput = z.object({\n forward_id: z.string().describe('转发消息 ID'),\n}).describe('get_forwarded_messages 请求参数');\nexport type GetForwardedMessagesInput = z.infer<typeof GetForwardedMessagesInput>;\n\nexport const GetForwardedMessagesOutput = z.object({\n messages: z.array(z.lazy(() => IncomingForwardedMessage)).describe('转发消息内容'),\n}).describe('get_forwarded_messages 响应数据');\nexport type GetForwardedMessagesOutput = z.infer<typeof GetForwardedMessagesOutput>;\n\nexport const MarkMessageAsReadInput = z.object({\n message_scene: z.enum(['friend', 'group', 'temp']).describe('消息场景'),\n peer_id: zUin.describe('好友 QQ 号或群号'),\n message_seq: z.number().int().nonnegative().describe('标为已读的消息序列号,该消息及更早的消息将被标记为已读'),\n}).describe('mark_message_as_read 请求参数');\nexport type MarkMessageAsReadInput = z.infer<typeof MarkMessageAsReadInput>;\n\nexport const SendFriendNudgeInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n is_self: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否戳自己'),\n}).describe('send_friend_nudge 请求参数');\nexport type SendFriendNudgeInput = z.infer<typeof SendFriendNudgeInput>;\n\nexport const SendProfileLikeInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n count: z.number().int().nonnegative().nullish().default(1).transform<number>((val) => val ?? 1).describe('点赞数量'),\n}).describe('send_profile_like 请求参数');\nexport type SendProfileLikeInput = z.infer<typeof SendProfileLikeInput>;\n\nexport const DeleteFriendInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n}).describe('delete_friend 请求参数');\nexport type DeleteFriendInput = z.infer<typeof DeleteFriendInput>;\n\nexport const GetFriendRequestsInput = z.object({\n limit: z.number().int().nonnegative().nullish().default(20).transform<number>((val) => val ?? 20).describe('获取的最大请求数量'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('`true` 表示只获取被过滤(由风险账号发起)的通知,`false` 表示只获取未被过滤的通知'),\n}).describe('get_friend_requests 请求参数');\nexport type GetFriendRequestsInput = z.infer<typeof GetFriendRequestsInput>;\n\nexport const GetFriendRequestsOutput = z.object({\n requests: z.array(z.lazy(() => FriendRequest)).describe('好友请求列表'),\n}).describe('get_friend_requests 响应数据');\nexport type GetFriendRequestsOutput = z.infer<typeof GetFriendRequestsOutput>;\n\nexport const AcceptFriendRequestInput = z.object({\n initiator_uid: z.string().describe('请求发起者 UID'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否是被过滤的请求'),\n}).describe('accept_friend_request 请求参数');\nexport type AcceptFriendRequestInput = z.infer<typeof AcceptFriendRequestInput>;\n\nexport const RejectFriendRequestInput = z.object({\n initiator_uid: z.string().describe('请求发起者 UID'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否是被过滤的请求'),\n reason: z.string().nullish().describe('拒绝理由'),\n}).describe('reject_friend_request 请求参数');\nexport type RejectFriendRequestInput = z.infer<typeof RejectFriendRequestInput>;\n\nexport const SetGroupNameInput = z.object({\n group_id: zUin.describe('群号'),\n new_group_name: z.string().describe('新群名称'),\n}).describe('set_group_name 请求参数');\nexport type SetGroupNameInput = z.infer<typeof SetGroupNameInput>;\n\nexport const SetGroupAvatarInput = z.object({\n group_id: zUin.describe('群号'),\n image_uri: z.string().describe('头像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n}).describe('set_group_avatar 请求参数');\nexport type SetGroupAvatarInput = z.infer<typeof SetGroupAvatarInput>;\n\nexport const SetGroupMemberCardInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被设置的群成员 QQ 号'),\n card: z.string().describe('新群名片'),\n}).describe('set_group_member_card 请求参数');\nexport type SetGroupMemberCardInput = z.infer<typeof SetGroupMemberCardInput>;\n\nexport const SetGroupMemberSpecialTitleInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被设置的群成员 QQ 号'),\n special_title: z.string().describe('新专属头衔'),\n}).describe('set_group_member_special_title 请求参数');\nexport type SetGroupMemberSpecialTitleInput = z.infer<typeof SetGroupMemberSpecialTitleInput>;\n\nexport const SetGroupMemberAdminInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被设置的 QQ 号'),\n is_set: z.boolean().nullish().default(true).transform<boolean>((val) => val ?? true).describe('是否设置为管理员,`false` 表示取消管理员'),\n}).describe('set_group_member_admin 请求参数');\nexport type SetGroupMemberAdminInput = z.infer<typeof SetGroupMemberAdminInput>;\n\nexport const SetGroupMemberMuteInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被设置的 QQ 号'),\n duration: z.number().int().nonnegative().nullish().default(0).transform<number>((val) => val ?? 0).describe('禁言持续时间(秒),设为 `0` 为取消禁言'),\n}).describe('set_group_member_mute 请求参数');\nexport type SetGroupMemberMuteInput = z.infer<typeof SetGroupMemberMuteInput>;\n\nexport const SetGroupWholeMuteInput = z.object({\n group_id: zUin.describe('群号'),\n is_mute: z.boolean().nullish().default(true).transform<boolean>((val) => val ?? true).describe('是否开启全员禁言,`false` 表示取消全员禁言'),\n}).describe('set_group_whole_mute 请求参数');\nexport type SetGroupWholeMuteInput = z.infer<typeof SetGroupWholeMuteInput>;\n\nexport const KickGroupMemberInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被踢的 QQ 号'),\n reject_add_request: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否拒绝加群申请,`false` 表示不拒绝'),\n}).describe('kick_group_member 请求参数');\nexport type KickGroupMemberInput = z.infer<typeof KickGroupMemberInput>;\n\nexport const GetGroupAnnouncementsInput = z.object({\n group_id: zUin.describe('群号'),\n}).describe('get_group_announcements 请求参数');\nexport type GetGroupAnnouncementsInput = z.infer<typeof GetGroupAnnouncementsInput>;\n\nexport const GetGroupAnnouncementsOutput = z.object({\n announcements: z.array(z.lazy(() => GroupAnnouncementEntity)).describe('群公告列表'),\n}).describe('get_group_announcements 响应数据');\nexport type GetGroupAnnouncementsOutput = z.infer<typeof GetGroupAnnouncementsOutput>;\n\nexport const SendGroupAnnouncementInput = z.object({\n group_id: zUin.describe('群号'),\n content: z.string().describe('公告内容'),\n image_uri: z.string().nullish().describe('公告附带图像文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n}).describe('send_group_announcement 请求参数');\nexport type SendGroupAnnouncementInput = z.infer<typeof SendGroupAnnouncementInput>;\n\nexport const DeleteGroupAnnouncementInput = z.object({\n group_id: zUin.describe('群号'),\n announcement_id: z.string().describe('公告 ID'),\n}).describe('delete_group_announcement 请求参数');\nexport type DeleteGroupAnnouncementInput = z.infer<typeof DeleteGroupAnnouncementInput>;\n\nexport const GetGroupEssenceMessagesInput = z.object({\n group_id: zUin.describe('群号'),\n page_index: z.number().int().nonnegative().describe('页码索引,从 0 开始'),\n page_size: z.number().int().nonnegative().describe('每页包含的精华消息数量'),\n}).describe('get_group_essence_messages 请求参数');\nexport type GetGroupEssenceMessagesInput = z.infer<typeof GetGroupEssenceMessagesInput>;\n\nexport const GetGroupEssenceMessagesOutput = z.object({\n messages: z.array(z.lazy(() => GroupEssenceMessage)).describe('精华消息列表'),\n is_end: z.boolean().describe('是否已到最后一页'),\n}).describe('get_group_essence_messages 响应数据');\nexport type GetGroupEssenceMessagesOutput = z.infer<typeof GetGroupEssenceMessagesOutput>;\n\nexport const SetGroupEssenceMessageInput = z.object({\n group_id: zUin.describe('群号'),\n message_seq: z.number().int().nonnegative().describe('消息序列号'),\n is_set: z.boolean().nullish().default(true).transform<boolean>((val) => val ?? true).describe('是否设置为精华消息,`false` 表示取消精华'),\n}).describe('set_group_essence_message 请求参数');\nexport type SetGroupEssenceMessageInput = z.infer<typeof SetGroupEssenceMessageInput>;\n\nexport const QuitGroupInput = z.object({\n group_id: zUin.describe('群号'),\n}).describe('quit_group 请求参数');\nexport type QuitGroupInput = z.infer<typeof QuitGroupInput>;\n\nexport const SendGroupMessageReactionInput = z.object({\n group_id: zUin.describe('群号'),\n message_seq: z.number().int().nonnegative().describe('要回应的消息序列号'),\n reaction: z.string().describe('发送的回应的表情 ID'),\n reaction_type: z.enum(['face', 'emoji']).nullish().default('face').transform<'face' | 'emoji'>((val) => val ?? 'face').describe('发送的回应类型'),\n is_add: z.boolean().nullish().default(true).transform<boolean>((val) => val ?? true).describe('是否添加表情,`false` 表示取消'),\n}).describe('send_group_message_reaction 请求参数');\nexport type SendGroupMessageReactionInput = z.infer<typeof SendGroupMessageReactionInput>;\n\nexport const SendGroupNudgeInput = z.object({\n group_id: zUin.describe('群号'),\n user_id: zUin.describe('被戳的群成员 QQ 号'),\n}).describe('send_group_nudge 请求参数');\nexport type SendGroupNudgeInput = z.infer<typeof SendGroupNudgeInput>;\n\nexport const GetGroupNotificationsInput = z.object({\n start_notification_seq: z.number().int().nonnegative().nullish().describe('起始通知序列号'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('`true` 表示只获取被过滤(由风险账号发起)的通知,`false` 表示只获取未被过滤的通知'),\n limit: z.number().int().nonnegative().nullish().default(20).transform<number>((val) => val ?? 20).describe('获取的最大通知数量'),\n}).describe('get_group_notifications 请求参数');\nexport type GetGroupNotificationsInput = z.infer<typeof GetGroupNotificationsInput>;\n\nexport const GetGroupNotificationsOutput = z.object({\n notifications: zDropBadElementArray(GroupNotification).describe('获取到的群通知(notification_seq 降序排列),序列号不一定连续'),\n next_notification_seq: z.number().int().nonnegative().nullish().describe('下一页起始通知序列号'),\n}).describe('get_group_notifications 响应数据');\nexport type GetGroupNotificationsOutput = z.infer<typeof GetGroupNotificationsOutput>;\n\nexport const AcceptGroupRequestInput = z.object({\n notification_seq: z.number().int().nonnegative().describe('请求对应的通知序列号'),\n notification_type: z.enum(['join_request', 'invited_join_request']).describe('请求对应的通知类型'),\n group_id: zUin.describe('请求所在的群号'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否是被过滤的请求'),\n}).describe('accept_group_request 请求参数');\nexport type AcceptGroupRequestInput = z.infer<typeof AcceptGroupRequestInput>;\n\nexport const RejectGroupRequestInput = z.object({\n notification_seq: z.number().int().nonnegative().describe('请求对应的通知序列号'),\n notification_type: z.enum(['join_request', 'invited_join_request']).describe('请求对应的通知类型'),\n group_id: zUin.describe('请求所在的群号'),\n is_filtered: z.boolean().nullish().default(false).transform<boolean>((val) => val ?? false).describe('是否是被过滤的请求'),\n reason: z.string().nullish().describe('拒绝理由'),\n}).describe('reject_group_request 请求参数');\nexport type RejectGroupRequestInput = z.infer<typeof RejectGroupRequestInput>;\n\nexport const AcceptGroupInvitationInput = z.object({\n group_id: zUin.describe('群号'),\n invitation_seq: z.number().int().nonnegative().describe('邀请序列号'),\n}).describe('accept_group_invitation 请求参数');\nexport type AcceptGroupInvitationInput = z.infer<typeof AcceptGroupInvitationInput>;\n\nexport const RejectGroupInvitationInput = z.object({\n group_id: zUin.describe('群号'),\n invitation_seq: z.number().int().nonnegative().describe('邀请序列号'),\n}).describe('reject_group_invitation 请求参数');\nexport type RejectGroupInvitationInput = z.infer<typeof RejectGroupInvitationInput>;\n\nexport const UploadPrivateFileInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n file_uri: z.string().describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n file_name: z.string().describe('文件名称'),\n}).describe('upload_private_file 请求参数');\nexport type UploadPrivateFileInput = z.infer<typeof UploadPrivateFileInput>;\n\nexport const UploadPrivateFileOutput = z.object({\n file_id: z.string().describe('文件 ID'),\n}).describe('upload_private_file 响应数据');\nexport type UploadPrivateFileOutput = z.infer<typeof UploadPrivateFileOutput>;\n\nexport const UploadGroupFileInput = z.object({\n group_id: zUin.describe('群号'),\n parent_folder_id: z.string().nullish().default('/').transform<string>((val) => val ?? '/').describe('目标文件夹 ID'),\n file_uri: z.string().describe('文件 URI,支持 `file://` `http(s)://` `base64://` 三种格式'),\n file_name: z.string().describe('文件名称'),\n}).describe('upload_group_file 请求参数');\nexport type UploadGroupFileInput = z.infer<typeof UploadGroupFileInput>;\n\nexport const UploadGroupFileOutput = z.object({\n file_id: z.string().describe('文件 ID'),\n}).describe('upload_group_file 响应数据');\nexport type UploadGroupFileOutput = z.infer<typeof UploadGroupFileOutput>;\n\nexport const GetPrivateFileDownloadUrlInput = z.object({\n user_id: zUin.describe('好友 QQ 号'),\n file_id: z.string().describe('文件 ID'),\n file_hash: z.string().describe('文件的 TriSHA1 哈希值'),\n}).describe('get_private_file_download_url 请求参数');\nexport type GetPrivateFileDownloadUrlInput = z.infer<typeof GetPrivateFileDownloadUrlInput>;\n\nexport const GetPrivateFileDownloadUrlOutput = z.object({\n download_url: z.string().describe('文件下载链接'),\n}).describe('get_private_file_download_url 响应数据');\nexport type GetPrivateFileDownloadUrlOutput = z.infer<typeof GetPrivateFileDownloadUrlOutput>;\n\nexport const GetGroupFileDownloadUrlInput = z.object({\n group_id: zUin.describe('群号'),\n file_id: z.string().describe('文件 ID'),\n}).describe('get_group_file_download_url 请求参数');\nexport type GetGroupFileDownloadUrlInput = z.infer<typeof GetGroupFileDownloadUrlInput>;\n\nexport const GetGroupFileDownloadUrlOutput = z.object({\n download_url: z.string().describe('文件下载链接'),\n}).describe('get_group_file_download_url 响应数据');\nexport type GetGroupFileDownloadUrlOutput = z.infer<typeof GetGroupFileDownloadUrlOutput>;\n\nexport const GetGroupFilesInput = z.object({\n group_id: zUin.describe('群号'),\n parent_folder_id: z.string().nullish().default('/').transform<string>((val) => val ?? '/').describe('父文件夹 ID'),\n}).describe('get_group_files 请求参数');\nexport type GetGroupFilesInput = z.infer<typeof GetGroupFilesInput>;\n\nexport const GetGroupFilesOutput = z.object({\n files: z.array(z.lazy(() => GroupFileEntity)).describe('文件列表'),\n folders: z.array(z.lazy(() => GroupFolderEntity)).describe('文件夹列表'),\n}).describe('get_group_files 响应数据');\nexport type GetGroupFilesOutput = z.infer<typeof GetGroupFilesOutput>;\n\nexport const MoveGroupFileInput = z.object({\n group_id: zUin.describe('群号'),\n file_id: z.string().describe('文件 ID'),\n parent_folder_id: z.string().nullish().default('/').transform<string>((val) => val ?? '/').describe('文件所在的文件夹 ID'),\n target_folder_id: z.string().nullish().default('/').transform<string>((val) => val ?? '/').describe('目标文件夹 ID'),\n}).describe('move_group_file 请求参数');\nexport type MoveGroupFileInput = z.infer<typeof MoveGroupFileInput>;\n\nexport const RenameGroupFileInput = z.object({\n group_id: zUin.describe('群号'),\n file_id: z.string().describe('文件 ID'),\n parent_folder_id: z.string().nullish().default('/').transform<string>((val) => val ?? '/').describe('文件所在的文件夹 ID'),\n new_file_name: z.string().describe('新文件名称'),\n}).describe('rename_group_file 请求参数');\nexport type RenameGroupFileInput = z.infer<typeof RenameGroupFileInput>;\n\nexport const DeleteGroupFileInput = z.object({\n group_id: zUin.describe('群号'),\n file_id: z.string().describe('文件 ID'),\n}).describe('delete_group_file 请求参数');\nexport type DeleteGroupFileInput = z.infer<typeof DeleteGroupFileInput>;\n\nexport const CreateGroupFolderInput = z.object({\n group_id: zUin.describe('群号'),\n folder_name: z.string().describe('文件夹名称'),\n}).describe('create_group_folder 请求参数');\nexport type CreateGroupFolderInput = z.infer<typeof CreateGroupFolderInput>;\n\nexport const CreateGroupFolderOutput = z.object({\n folder_id: z.string().describe('文件夹 ID'),\n}).describe('create_group_folder 响应数据');\nexport type CreateGroupFolderOutput = z.infer<typeof CreateGroupFolderOutput>;\n\nexport const RenameGroupFolderInput = z.object({\n group_id: zUin.describe('群号'),\n folder_id: z.string().describe('文件夹 ID'),\n new_folder_name: z.string().describe('新文件夹名'),\n}).describe('rename_group_folder 请求参数');\nexport type RenameGroupFolderInput = z.infer<typeof RenameGroupFolderInput>;\n\nexport const DeleteGroupFolderInput = z.object({\n group_id: zUin.describe('群号'),\n folder_id: z.string().describe('文件夹 ID'),\n}).describe('delete_group_folder 请求参数');\nexport type DeleteGroupFolderInput = z.infer<typeof DeleteGroupFolderInput>;\n\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,19 +1,9 @@
1
1
  {
2
2
  "name": "@saltify/milky-types",
3
3
  "type": "module",
4
- "version": "1.2.0",
4
+ "version": "1.2.1-rc.1",
5
5
  "description": "Type definitions for Milky protocol",
6
6
  "main": "dist/index.mjs",
7
- "exports": {
8
- ".": {
9
- "import": "./dist/index.mjs",
10
- "types": "./dist/index.d.mts"
11
- },
12
- "./namings": {
13
- "import": "./dist/namings.mjs",
14
- "types": "./dist/namings.d.mts"
15
- }
16
- },
17
7
  "files": [
18
8
  "dist"
19
9
  ],
@@ -27,6 +17,9 @@
27
17
  "dependencies": {
28
18
  "zod": "^4.3.6"
29
19
  },
20
+ "devDependencies": {
21
+ "@saltify/milky-protocol": "1.2.1-rc.1"
22
+ },
30
23
  "scripts": {
31
24
  "build": "tsdown"
32
25
  },