@napuketto/kernel 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +282 -13
- package/dist/index.d.cts +151 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +151 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +282 -14
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1541,6 +1541,72 @@ var GroupApi = class {
|
|
|
1541
1541
|
} else res = await this.service.removeGroupEssence(param);
|
|
1542
1542
|
checkLooseResult(label, res);
|
|
1543
1543
|
}
|
|
1544
|
+
/**
|
|
1545
|
+
* 群公告列表(get_group_announcements;getGroupBulletin 返回形状待探测校准,
|
|
1546
|
+
* 兼容 result 数组 / result.bulletins 等宽松提取)。
|
|
1547
|
+
*/
|
|
1548
|
+
async getGroupAnnouncements(groupCode) {
|
|
1549
|
+
let raw;
|
|
1550
|
+
try {
|
|
1551
|
+
raw = await this.service.getGroupBulletin(groupCode);
|
|
1552
|
+
} catch (e) {
|
|
1553
|
+
if (isKernelError(e)) throw e;
|
|
1554
|
+
throw kernelError(`getGroupBulletin 调用失败: ${errMsgString$3(e)}`, "UNKNOWN");
|
|
1555
|
+
}
|
|
1556
|
+
unwrap("getGroupBulletin", toResultNumber(raw.result), raw.errMsg);
|
|
1557
|
+
return extractBulletins(raw.result);
|
|
1558
|
+
}
|
|
1559
|
+
/**
|
|
1560
|
+
* 发群公告(send_group_announcement;imagePath 提供时先 uploadGroupBulletinPic
|
|
1561
|
+
* 再带 picId 发布——两步参数形状均待探测校准)。
|
|
1562
|
+
*/
|
|
1563
|
+
async publishGroupAnnouncement(groupCode, content, imagePath) {
|
|
1564
|
+
let picId;
|
|
1565
|
+
if (imagePath !== void 0 && imagePath !== "") picId = await this.uploadBulletinPic(groupCode, imagePath);
|
|
1566
|
+
try {
|
|
1567
|
+
checkLooseResult("publishGroupBulletin", await this.service.publishGroupBulletin({
|
|
1568
|
+
groupCode,
|
|
1569
|
+
content,
|
|
1570
|
+
...picId !== void 0 ? { picId } : {}
|
|
1571
|
+
}));
|
|
1572
|
+
} catch (e) {
|
|
1573
|
+
if (isKernelError(e)) throw e;
|
|
1574
|
+
throw kernelError(`publishGroupBulletin 调用失败: ${errMsgString$3(e)}`, "UNKNOWN");
|
|
1575
|
+
}
|
|
1576
|
+
}
|
|
1577
|
+
/** 删群公告(delete_group_announcement;参数待探测校准)。 */
|
|
1578
|
+
async deleteGroupAnnouncement(groupCode, announcementId) {
|
|
1579
|
+
try {
|
|
1580
|
+
checkLooseResult("deleteGroupBulletin", await this.service.deleteGroupBulletin(groupCode, announcementId));
|
|
1581
|
+
} catch (e) {
|
|
1582
|
+
if (isKernelError(e)) throw e;
|
|
1583
|
+
throw kernelError(`deleteGroupBulletin 调用失败: ${errMsgString$3(e)}`, "UNKNOWN");
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
/** 专属头衔(set_group_member_special_title;setIdentityTitleInfo 参数待校准)。 */
|
|
1587
|
+
async setMemberSpecialTitle(groupCode, uid, title) {
|
|
1588
|
+
try {
|
|
1589
|
+
checkLooseResult("setIdentityTitleInfo", await this.service.setIdentityTitleInfo(groupCode, uid, title));
|
|
1590
|
+
} catch (e) {
|
|
1591
|
+
if (isKernelError(e)) throw e;
|
|
1592
|
+
throw kernelError(`setIdentityTitleInfo 调用失败: ${errMsgString$3(e)}`, "UNKNOWN");
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
/** 群头像(set_group_avatar;GroupService.setHeader 参数待校准)。 */
|
|
1596
|
+
async setGroupAvatar(groupCode, imagePath) {
|
|
1597
|
+
try {
|
|
1598
|
+
checkLooseResult("setHeader", await this.service.setHeader(groupCode, imagePath));
|
|
1599
|
+
} catch (e) {
|
|
1600
|
+
if (isKernelError(e)) throw e;
|
|
1601
|
+
throw kernelError(`setHeader(group) 调用失败: ${errMsgString$3(e)}`, "UNKNOWN");
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
/** 公告图片上传(uploadGroupBulletinPic 返回 picId 待校准,失败原样上抛)。 */
|
|
1605
|
+
async uploadBulletinPic(groupCode, imagePath) {
|
|
1606
|
+
const res = await this.service.uploadGroupBulletinPic(groupCode, imagePath);
|
|
1607
|
+
checkLooseResult("uploadGroupBulletinPic", res);
|
|
1608
|
+
return typeof res?.picId === "string" ? res.picId : "";
|
|
1609
|
+
}
|
|
1544
1610
|
/** @all 剩余次数(get_group_at_all_remain)。 */
|
|
1545
1611
|
async getGroupRemainAtTimes(groupCode) {
|
|
1546
1612
|
const raw = await this.service.getGroupRemainAtTimes(groupCode);
|
|
@@ -1552,6 +1618,29 @@ var GroupApi = class {
|
|
|
1552
1618
|
};
|
|
1553
1619
|
}
|
|
1554
1620
|
};
|
|
1621
|
+
/** result 字段宽松取数(数字直接用,缺省 0 = 成功语义)。 */
|
|
1622
|
+
function toResultNumber(result) {
|
|
1623
|
+
return typeof result === "number" ? result : 0;
|
|
1624
|
+
}
|
|
1625
|
+
/** 公告列表宽松提取(result 数组 / { bulletins } / { result: 数组 } 兼容,形状待校准)。 */
|
|
1626
|
+
function extractBulletins(result) {
|
|
1627
|
+
const candidates = [result];
|
|
1628
|
+
if (result !== null && typeof result === "object") {
|
|
1629
|
+
const rec = result;
|
|
1630
|
+
for (const key of [
|
|
1631
|
+
"bulletins",
|
|
1632
|
+
"announcementList",
|
|
1633
|
+
"result",
|
|
1634
|
+
"list"
|
|
1635
|
+
]) candidates.push(rec[key]);
|
|
1636
|
+
}
|
|
1637
|
+
for (const candidate of candidates) if (Array.isArray(candidate)) return candidate.filter((item) => item !== null && typeof item === "object");
|
|
1638
|
+
return [];
|
|
1639
|
+
}
|
|
1640
|
+
/** 未知异常 → 消息字符串。 */
|
|
1641
|
+
function errMsgString$3(e) {
|
|
1642
|
+
return e instanceof Error ? e.message : String(e);
|
|
1643
|
+
}
|
|
1555
1644
|
/**
|
|
1556
1645
|
* 从 getGroupDetailInfo 返回提取群详情(兼容三种形状):
|
|
1557
1646
|
* - result 为对象 → 详情直接在其中(最常见)
|
|
@@ -1725,6 +1814,28 @@ function sleep$1(ms) {
|
|
|
1725
1814
|
setTimeout(resolve, ms);
|
|
1726
1815
|
});
|
|
1727
1816
|
}
|
|
1817
|
+
/** 未知异常 → 消息字符串。 */
|
|
1818
|
+
function errMsgString$2(e) {
|
|
1819
|
+
return e instanceof Error ? e.message : String(e);
|
|
1820
|
+
}
|
|
1821
|
+
/** 语音下载完成判定:有路径且(传输完成或末次轮询)才返回元素,否则 null。 */
|
|
1822
|
+
function pttDownloadResult(latest, isLastPoll) {
|
|
1823
|
+
if (latest === void 0) return null;
|
|
1824
|
+
const hasPath = latest.filePath !== void 0 && latest.filePath !== "";
|
|
1825
|
+
const done = latest.transferStatus === 2 || latest.transferStatus === 4;
|
|
1826
|
+
return hasPath && (done || isLastPoll) ? latest : null;
|
|
1827
|
+
}
|
|
1828
|
+
/** 收藏表情项 → url(字段名待校准,url/imageUrl/emojiUrl 逐个兜底)。 */
|
|
1829
|
+
function extractFavEmojiUrls(list) {
|
|
1830
|
+
const out = [];
|
|
1831
|
+
for (const item of list) {
|
|
1832
|
+
if (item === null || typeof item !== "object") continue;
|
|
1833
|
+
const rec = item;
|
|
1834
|
+
const url = rec["url"] ?? rec["imageUrl"] ?? rec["emojiUrl"];
|
|
1835
|
+
if (typeof url === "string" && url !== "") out.push(url);
|
|
1836
|
+
}
|
|
1837
|
+
return out;
|
|
1838
|
+
}
|
|
1728
1839
|
/** 读文件 stat(富媒体发送预处理;文件不存在抛 INVALID_PARAM)。 */
|
|
1729
1840
|
async function statFile(path, label = "图片") {
|
|
1730
1841
|
try {
|
|
@@ -1834,6 +1945,9 @@ var MsgApi = class {
|
|
|
1834
1945
|
case "video":
|
|
1835
1946
|
out.push(await this.prepareVideoElement(el));
|
|
1836
1947
|
break;
|
|
1948
|
+
case "file":
|
|
1949
|
+
out.push(await this.prepareFileElement(el));
|
|
1950
|
+
break;
|
|
1837
1951
|
default: out.push(...toSendElements([el]));
|
|
1838
1952
|
}
|
|
1839
1953
|
return out;
|
|
@@ -1954,6 +2068,28 @@ var MsgApi = class {
|
|
|
1954
2068
|
};
|
|
1955
2069
|
}
|
|
1956
2070
|
/**
|
|
2071
|
+
* FILE 元素预处理(P2-2 预留口子,upload_private/group_file 落地):
|
|
2072
|
+
* pic/ptt/video 同款 NapCat 式链路——md5 → getRichMediaFilePathForGuild(FILE)
|
|
2073
|
+
* → copyFile → 完整 fileElement。链路模式已验证(三类媒体同构);fileElement
|
|
2074
|
+
* 字段值(fileSize 字符串形态、fileUuid 空串等)待探测校准。
|
|
2075
|
+
*/
|
|
2076
|
+
async prepareFileElement(el) {
|
|
2077
|
+
const file = await statFile(el.path, "文件");
|
|
2078
|
+
const md5 = await hashFile(el.path, "文件");
|
|
2079
|
+
const fileName = el.name !== void 0 && el.name !== "" ? el.name : (0, node_path.basename)(el.path);
|
|
2080
|
+
const relPath = await this.placeMediaFile(el.path, ElementType.FILE, md5, fileName);
|
|
2081
|
+
return {
|
|
2082
|
+
elementType: ElementType.FILE,
|
|
2083
|
+
elementId: "",
|
|
2084
|
+
fileElement: {
|
|
2085
|
+
fileName,
|
|
2086
|
+
filePath: relPath,
|
|
2087
|
+
fileSize: String(file.size),
|
|
2088
|
+
fileUuid: ""
|
|
2089
|
+
}
|
|
2090
|
+
};
|
|
2091
|
+
}
|
|
2092
|
+
/**
|
|
1957
2093
|
* 富媒体文件放置(PIC/PTT/VIDEO 共用):md5 + 文件名 → QQ 内部目标路径
|
|
1958
2094
|
* (getRichMediaFilePathForGuild)→ util.copyFile 放置 → 返回目标路径。
|
|
1959
2095
|
*
|
|
@@ -2047,31 +2183,72 @@ var MsgApi = class {
|
|
|
2047
2183
|
* 调用方),完全无路径抛 NOT_FOUND。
|
|
2048
2184
|
*/
|
|
2049
2185
|
async downloadPtt(msgId, target) {
|
|
2050
|
-
const
|
|
2051
|
-
|
|
2052
|
-
if (el === null || ptt === void 0) throw kernelError("消息中不包含语音", "NOT_FOUND");
|
|
2053
|
-
const elemId = el.elementId ?? "";
|
|
2186
|
+
const found = await this.pttElementOf(msgId, target);
|
|
2187
|
+
if (found === null) throw kernelError("消息中不包含语音", "NOT_FOUND");
|
|
2054
2188
|
await this.service.downloadRichMedia({
|
|
2055
2189
|
msgId,
|
|
2056
|
-
elemId,
|
|
2190
|
+
elemId: found.elemId,
|
|
2057
2191
|
chatType: target.chatType,
|
|
2058
2192
|
downloadType: DOWNLOAD_TYPE_COMMON,
|
|
2059
2193
|
thumbSize: THUMB_SIZE_NONE
|
|
2060
2194
|
});
|
|
2061
2195
|
for (let i = 0; i < PTT_POLL_TIMES; i++) {
|
|
2062
2196
|
await sleep$1(PTT_POLL_INTERVAL_MS);
|
|
2063
|
-
const
|
|
2064
|
-
if (
|
|
2065
|
-
const done = latest.transferStatus === 2 || latest.transferStatus === 4;
|
|
2066
|
-
if (latest.filePath !== void 0 && latest.filePath !== "" && done) return latest;
|
|
2067
|
-
if (i === 33 && latest.filePath !== void 0 && latest.filePath !== "") return latest;
|
|
2197
|
+
const result = pttDownloadResult(findPttElement(await this.fetchMsgsByMsgId(target, [msgId]))?.pttElement, i === 33);
|
|
2198
|
+
if (result !== null) return result;
|
|
2068
2199
|
}
|
|
2069
2200
|
throw kernelError("语音下载未完成(超时)", "TIMEOUT");
|
|
2070
2201
|
}
|
|
2202
|
+
/** 取消息内语音元素(无则 null;附 elemId 供主动下载)。 */
|
|
2203
|
+
async pttElementOf(msgId, target) {
|
|
2204
|
+
const el = findPttElement(await this.fetchMsgsByMsgId(target, [msgId]));
|
|
2205
|
+
const ptt = el?.pttElement;
|
|
2206
|
+
if (el === null || ptt === void 0) return null;
|
|
2207
|
+
return {
|
|
2208
|
+
elemId: el.elementId ?? "",
|
|
2209
|
+
ptt
|
|
2210
|
+
};
|
|
2211
|
+
}
|
|
2071
2212
|
/** 发送输入状态(set_input_status;eventType=1 输入中,0 停止)。 */
|
|
2072
2213
|
async setInputStatus(target, eventType) {
|
|
2073
2214
|
await this.service.sendShowInputStatusReq(target.chatType, eventType, target.peerUid);
|
|
2074
2215
|
}
|
|
2216
|
+
/** 戳一戳发送(send_friend/group_nudge;参数形状待探测校准,失败抛 UNKNOWN)。 */
|
|
2217
|
+
async sendNudge(target, opts) {
|
|
2218
|
+
const param = {
|
|
2219
|
+
receiverUid: opts.receiverUid,
|
|
2220
|
+
callerUid: opts.callerUid,
|
|
2221
|
+
...target.chatType === ChatType.GROUP ? { confId: target.peerUid } : {}
|
|
2222
|
+
};
|
|
2223
|
+
try {
|
|
2224
|
+
checkLooseResult("sendNudge", await this.service.sendNudge(param));
|
|
2225
|
+
} catch (e) {
|
|
2226
|
+
if (isKernelError(e)) throw e;
|
|
2227
|
+
throw kernelError(`sendNudge 调用失败: ${errMsgString$2(e)}`, "UNKNOWN");
|
|
2228
|
+
}
|
|
2229
|
+
}
|
|
2230
|
+
/** 会话置顶(set_peer_pin;setContactLocalTop 参数待探测校准)。 */
|
|
2231
|
+
async setContactTop(target, isTop) {
|
|
2232
|
+
try {
|
|
2233
|
+
checkLooseResult("setContactLocalTop", await this.service.setContactLocalTop(target, isTop));
|
|
2234
|
+
} catch (e) {
|
|
2235
|
+
if (isKernelError(e)) throw e;
|
|
2236
|
+
throw kernelError(`setContactLocalTop 调用失败: ${errMsgString$2(e)}`, "UNKNOWN");
|
|
2237
|
+
}
|
|
2238
|
+
}
|
|
2239
|
+
/** 收藏表情列表(get_custom_face_url_list;queryFavEmojiByDesc 形状待校准)。 */
|
|
2240
|
+
async queryFavEmojis() {
|
|
2241
|
+
let raw;
|
|
2242
|
+
try {
|
|
2243
|
+
raw = await this.service.queryFavEmojiByDesc("");
|
|
2244
|
+
} catch (e) {
|
|
2245
|
+
throw kernelError(`queryFavEmojiByDesc 调用失败: ${errMsgString$2(e)}`, "UNKNOWN");
|
|
2246
|
+
}
|
|
2247
|
+
checkLooseResult("queryFavEmojiByDesc", raw);
|
|
2248
|
+
const list = raw.emojiInfoList;
|
|
2249
|
+
if (!Array.isArray(list)) return [];
|
|
2250
|
+
return extractFavEmojiUrls(list);
|
|
2251
|
+
}
|
|
2075
2252
|
/**
|
|
2076
2253
|
* 发送合并转发(send_group/private_forward_msg)。
|
|
2077
2254
|
* buildMultiForwardMsg 组装 MULTI_FORWARD 元素 → 直接作 sendMsg 元素发送。
|
|
@@ -2238,6 +2415,76 @@ var ProfileLikeApi = class {
|
|
|
2238
2415
|
}
|
|
2239
2416
|
};
|
|
2240
2417
|
//#endregion
|
|
2418
|
+
//#region src/apis/recent-contact.ts
|
|
2419
|
+
/**
|
|
2420
|
+
* RecentContactApi:会话列表语义化 API(P2 批次二,get_peer_pins 数据源)
|
|
2421
|
+
*
|
|
2422
|
+
* 2026-10-31 实机探测确认 getRecentContactService 有 getRecentContactList /
|
|
2423
|
+
* setContactListTop 等方法;返回形状待探测校准(宽松提取)。
|
|
2424
|
+
* 置顶数据源:isTop 过滤(ChatType 区分 friend/group 场景)。
|
|
2425
|
+
*/
|
|
2426
|
+
/** 会话列表拉取条数(覆盖置顶集合足够大;参数值待探测校准)。 */
|
|
2427
|
+
const RECENT_CONTACT_FETCH_COUNT = 200;
|
|
2428
|
+
/** 会话列表 API:从 session 拿 recent contact service,包装成语义化方法。 */
|
|
2429
|
+
var RecentContactApi = class {
|
|
2430
|
+
service;
|
|
2431
|
+
constructor(session) {
|
|
2432
|
+
const service = session.getRecentContactService();
|
|
2433
|
+
if (service === null || service === void 0) throw kernelError("getRecentContactService() 返回空(session 未 init)", "INVALID_STATE");
|
|
2434
|
+
this.service = service;
|
|
2435
|
+
}
|
|
2436
|
+
/** 置顶会话列表(get_peer_pins;getRecentContactList 返回形状待探测校准)。 */
|
|
2437
|
+
async getPinnedContacts() {
|
|
2438
|
+
let raw;
|
|
2439
|
+
try {
|
|
2440
|
+
raw = await this.service.getRecentContactList({ count: RECENT_CONTACT_FETCH_COUNT });
|
|
2441
|
+
} catch (e) {
|
|
2442
|
+
if (isKernelError(e)) throw e;
|
|
2443
|
+
throw kernelError(`getRecentContactList 调用失败: ${errMsgString$1(e)}`, "UNKNOWN");
|
|
2444
|
+
}
|
|
2445
|
+
checkLooseResult("getRecentContactList", raw);
|
|
2446
|
+
return extractPinnedContacts(raw);
|
|
2447
|
+
}
|
|
2448
|
+
};
|
|
2449
|
+
/** 从返回形状提取置顶会话(result 数组 / 顶层 contacts / 嵌套容器兼容,待校准)。 */
|
|
2450
|
+
function extractPinnedContacts(raw) {
|
|
2451
|
+
const candidates = [raw.result, raw];
|
|
2452
|
+
for (const container of [raw.result, raw]) {
|
|
2453
|
+
if (container === null || typeof container !== "object") continue;
|
|
2454
|
+
const rec = container;
|
|
2455
|
+
for (const key of [
|
|
2456
|
+
"contacts",
|
|
2457
|
+
"data",
|
|
2458
|
+
"result",
|
|
2459
|
+
"list"
|
|
2460
|
+
]) candidates.push(rec[key]);
|
|
2461
|
+
}
|
|
2462
|
+
for (const candidate of candidates) {
|
|
2463
|
+
if (!Array.isArray(candidate)) continue;
|
|
2464
|
+
return candidate.flatMap((item) => pinnedOf(item));
|
|
2465
|
+
}
|
|
2466
|
+
return [];
|
|
2467
|
+
}
|
|
2468
|
+
/** 单条会话 → 置顶项(isTop 为真且场景可判定才产出)。 */
|
|
2469
|
+
function pinnedOf(item) {
|
|
2470
|
+
if (item === null || typeof item !== "object") return [];
|
|
2471
|
+
const contact = item;
|
|
2472
|
+
if (contact.isTop !== true || typeof contact.peerUid !== "string") return [];
|
|
2473
|
+
if (contact.chatType === ChatType.GROUP) return [{
|
|
2474
|
+
peerUid: contact.peerUid,
|
|
2475
|
+
scene: "group"
|
|
2476
|
+
}];
|
|
2477
|
+
if (contact.chatType === ChatType.C2C) return [{
|
|
2478
|
+
peerUid: contact.peerUid,
|
|
2479
|
+
scene: "friend"
|
|
2480
|
+
}];
|
|
2481
|
+
return [];
|
|
2482
|
+
}
|
|
2483
|
+
/** 未知异常 → 消息字符串。 */
|
|
2484
|
+
function errMsgString$1(e) {
|
|
2485
|
+
return e instanceof Error ? e.message : String(e);
|
|
2486
|
+
}
|
|
2487
|
+
//#endregion
|
|
2241
2488
|
//#region src/apis/richmedia.ts
|
|
2242
2489
|
/**
|
|
2243
2490
|
* RichMediaApi:富媒体语义化 API(ADR-009 统一错误语义,P2-14)
|
|
@@ -2283,10 +2530,11 @@ var RichMediaApi = class {
|
|
|
2283
2530
|
showOnlinedocFolder: HIDE_ONLINEDOC_FOLDER
|
|
2284
2531
|
};
|
|
2285
2532
|
const raw = await this.service.getGroupFileList(groupCode, params);
|
|
2286
|
-
|
|
2533
|
+
checkLooseResult("getGroupFileList", raw);
|
|
2287
2534
|
const list = extractFileList(raw.result);
|
|
2288
|
-
|
|
2289
|
-
|
|
2535
|
+
const items = list.length > 0 ? list : extractFileList(raw);
|
|
2536
|
+
if (parentFolderId === "") return items;
|
|
2537
|
+
return items.filter((item) => item.fileInfo !== void 0 && item.fileInfo.parent === parentFolderId || item.folderInfo !== void 0 && item.folderInfo.folderUid === parentFolderId);
|
|
2290
2538
|
}
|
|
2291
2539
|
/** 群文件系统信息(get_group_file_system_info;getGroupFileList 的 groupSpaceResult)。 */
|
|
2292
2540
|
async getGroupFileSystemInfo(groupCode) {
|
|
@@ -2335,6 +2583,26 @@ var RichMediaApi = class {
|
|
|
2335
2583
|
const raw = await this.service.moveGroupFile(groupCode, [GROUP_FILE_BIZ_TYPE], fileIds, "", targetFolderId);
|
|
2336
2584
|
if (raw.result !== 0) unwrap("moveGroupFile", raw.result, raw.errMsg);
|
|
2337
2585
|
}
|
|
2586
|
+
/** 重命名群文件夹(rename_group_folder;形态镜像 renameGroupFile,待校准)。 */
|
|
2587
|
+
async renameGroupFolder(groupCode, folderId, newName) {
|
|
2588
|
+
await this.service.renameGroupFolder(groupCode, GROUP_FILE_BIZ_TYPE, folderId, newName, "");
|
|
2589
|
+
}
|
|
2590
|
+
/**
|
|
2591
|
+
* 群文件下载链接(get_group_file_download_url):getGroupFileList 根列表按
|
|
2592
|
+
* fileId 查找取 url 字段(字段待实机确认)。已知差异:仅根目录可达——
|
|
2593
|
+
* 子目录文件需 parentFolderId 逐层定位,暂不支持。
|
|
2594
|
+
*/
|
|
2595
|
+
async getGroupFileDownloadUrl(groupCode, fileId) {
|
|
2596
|
+
const items = await this.getGroupFileList(groupCode);
|
|
2597
|
+
for (const item of items) {
|
|
2598
|
+
const info = item.fileInfo;
|
|
2599
|
+
if (info !== void 0 && info.fileId === fileId) {
|
|
2600
|
+
if (typeof info.url === "string" && info.url !== "") return info.url;
|
|
2601
|
+
throw kernelError(`群文件 ${fileId} 无下载链接(url 字段缺失,待实机校准)`, "NOT_FOUND");
|
|
2602
|
+
}
|
|
2603
|
+
}
|
|
2604
|
+
throw kernelError(`群文件 ${fileId} 不在根目录或不存在(仅支持根目录查找)`, "NOT_FOUND");
|
|
2605
|
+
}
|
|
2338
2606
|
/** 转存群文件(trans_group_file)。 */
|
|
2339
2607
|
async transGroupFile(groupCode, fileId) {
|
|
2340
2608
|
const raw = await this.service.transGroupFile(groupCode, fileId);
|
|
@@ -5012,6 +5280,7 @@ exports.PathWrapper = PathWrapper;
|
|
|
5012
5280
|
exports.ProfileApi = ProfileApi;
|
|
5013
5281
|
exports.ProfileLikeApi = ProfileLikeApi;
|
|
5014
5282
|
exports.QrLoginSession = QrLoginSession;
|
|
5283
|
+
exports.RecentContactApi = RecentContactApi;
|
|
5015
5284
|
exports.RichMediaApi = RichMediaApi;
|
|
5016
5285
|
exports.TicketApi = TicketApi;
|
|
5017
5286
|
exports.TipGroupElementType = TipGroupElementType;
|
package/dist/index.d.cts
CHANGED
|
@@ -337,6 +337,19 @@ interface SendMessageElement {
|
|
|
337
337
|
arkElement?: {
|
|
338
338
|
bytesData: string;
|
|
339
339
|
};
|
|
340
|
+
/** 文件(upload_private/group_file;字段值待探测校准,pic/ptt 同款发送链)。 */
|
|
341
|
+
fileElement?: FileElement;
|
|
342
|
+
}
|
|
343
|
+
/** 戳一戳参数(sendNudge,说明书参考,字段值待探测校准)。 */
|
|
344
|
+
interface NudgeParam {
|
|
345
|
+
/** 被戳者 uid。 */
|
|
346
|
+
receiverUid: string;
|
|
347
|
+
/** 发起者 uid(机器人自己)。 */
|
|
348
|
+
callerUid: string;
|
|
349
|
+
/** 会话 id(群场景 = 群号;好友场景缺省)。 */
|
|
350
|
+
confId?: string;
|
|
351
|
+
/** 场景操作码(接收侧 aioOp 同名;发送取值待校准)。 */
|
|
352
|
+
aioOp?: number;
|
|
340
353
|
}
|
|
341
354
|
/** 消息服务:apis/msg 用到的核心方法面。 */
|
|
342
355
|
interface NodeIKernelMsgService {
|
|
@@ -411,6 +424,14 @@ interface NodeIKernelMsgService {
|
|
|
411
424
|
faceType: string;
|
|
412
425
|
};
|
|
413
426
|
}): Promise<GeneralCallResult>;
|
|
427
|
+
/** 戳一戳发送(send_friend/group_nudge;参数形状待探测校准)。 */
|
|
428
|
+
sendNudge(param: NudgeParam): Promise<unknown>;
|
|
429
|
+
/** 会话置顶(set_peer_pin;参数待探测校准)。 */
|
|
430
|
+
setContactLocalTop(peer: Peer, isTop: boolean): Promise<unknown>;
|
|
431
|
+
/** 收藏表情查询(get_custom_face_url_list;desc 空串 = 全量,形状待校准)。 */
|
|
432
|
+
queryFavEmojiByDesc(desc: string): Promise<GeneralCallResult & {
|
|
433
|
+
emojiInfoList?: unknown;
|
|
434
|
+
}>;
|
|
414
435
|
}
|
|
415
436
|
//#endregion
|
|
416
437
|
//#region src/types/services/group-service.d.ts
|
|
@@ -562,6 +583,25 @@ interface GroupMember {
|
|
|
562
583
|
isRobot?: boolean;
|
|
563
584
|
[key: string]: unknown;
|
|
564
585
|
}
|
|
586
|
+
/** 群公告(getGroupBulletin 返回项,说明书参考,待探测校准)。 */
|
|
587
|
+
interface GroupBulletin {
|
|
588
|
+
/** 公告 id(delete_group_announcement 的 announcement_id)。 */
|
|
589
|
+
announcementId?: string;
|
|
590
|
+
/** 发送者 uid。 */
|
|
591
|
+
senderUid?: string;
|
|
592
|
+
/** 发送时间(秒)。 */
|
|
593
|
+
publishTime?: number;
|
|
594
|
+
/** 文本内容。 */
|
|
595
|
+
content?: string;
|
|
596
|
+
/** 公告图片(url 待实机确认)。 */
|
|
597
|
+
pic?: {
|
|
598
|
+
url?: string;
|
|
599
|
+
width?: number;
|
|
600
|
+
height?: number;
|
|
601
|
+
id?: string;
|
|
602
|
+
};
|
|
603
|
+
[key: string]: unknown;
|
|
604
|
+
}
|
|
565
605
|
/** 群服务:apis/group 用到的核心方法面。 */
|
|
566
606
|
interface NodeIKernelGroupService {
|
|
567
607
|
addKernelGroupListener(listener: unknown): number;
|
|
@@ -648,6 +688,24 @@ interface NodeIKernelGroupService {
|
|
|
648
688
|
postscript: string;
|
|
649
689
|
};
|
|
650
690
|
}): Promise<void>;
|
|
691
|
+
/** 群公告列表(get_group_announcements;返回形状待探测校准)。 */
|
|
692
|
+
getGroupBulletin(groupCode: string): Promise<GeneralCallResult & {
|
|
693
|
+
result?: unknown;
|
|
694
|
+
}>;
|
|
695
|
+
/** 发群公告(send_group_announcement;参数形状待探测校准)。 */
|
|
696
|
+
publishGroupBulletin(param: {
|
|
697
|
+
groupCode: string;
|
|
698
|
+
content: string;
|
|
699
|
+
picId?: string;
|
|
700
|
+
}): Promise<unknown>;
|
|
701
|
+
/** 上传公告图片(image_uri 落盘后调用;返回 picId 待校准)。 */
|
|
702
|
+
uploadGroupBulletinPic(groupCode: string, imagePath: string): Promise<unknown>;
|
|
703
|
+
/** 删群公告(delete_group_announcement;参数待校准)。 */
|
|
704
|
+
deleteGroupBulletin(groupCode: string, announcementId: string): Promise<unknown>;
|
|
705
|
+
/** 专属头衔(set_group_member_special_title;待校准,备选 setGroupIdentitySpec)。 */
|
|
706
|
+
setIdentityTitleInfo(groupCode: string, uid: string, title: string): Promise<unknown>;
|
|
707
|
+
/** 群头像(set_group_avatar;参数待校准;Profile setHeader 同名方法)。 */
|
|
708
|
+
setHeader(groupCode: string, imagePath: string): Promise<unknown>;
|
|
651
709
|
}
|
|
652
710
|
//#endregion
|
|
653
711
|
//#region src/types/listeners/group.d.ts
|
|
@@ -992,6 +1050,32 @@ interface NodeIKernelProfileService {
|
|
|
992
1050
|
isNull(): boolean;
|
|
993
1051
|
}
|
|
994
1052
|
//#endregion
|
|
1053
|
+
//#region src/types/services/recent-contact-service.d.ts
|
|
1054
|
+
/** 会话联系人(getRecentContactList 项,说明书参考,待探测校准)。 */
|
|
1055
|
+
interface RecentContact {
|
|
1056
|
+
/** 会话 id(群场景 = 群号,好友场景 = uid)。 */
|
|
1057
|
+
peerUid: string;
|
|
1058
|
+
/** 会话类型(ChatType 值域)。 */
|
|
1059
|
+
chatType: number;
|
|
1060
|
+
/** 置顶标记(get_peer_pins 数据源)。 */
|
|
1061
|
+
isTop?: boolean;
|
|
1062
|
+
/** 对端 uin(部分返回形态带)。 */
|
|
1063
|
+
peerUin?: string;
|
|
1064
|
+
[key: string]: unknown;
|
|
1065
|
+
}
|
|
1066
|
+
/** 会话列表拉取参数(getRecentContactList,字段值待探测校准)。 */
|
|
1067
|
+
interface RecentContactFetchParam {
|
|
1068
|
+
/** 拉取条数(缺省覆盖置顶集合足够大)。 */
|
|
1069
|
+
count: number;
|
|
1070
|
+
}
|
|
1071
|
+
/** 会话列表服务:apis/recent-contact 用到的核心方法面。 */
|
|
1072
|
+
interface NodeIKernelRecentContactService {
|
|
1073
|
+
/** 会话列表(get_peer_pins 数据源;返回形状待探测校准)。 */
|
|
1074
|
+
getRecentContactList(param: RecentContactFetchParam): Promise<GeneralCallResult & {
|
|
1075
|
+
result?: unknown;
|
|
1076
|
+
}>;
|
|
1077
|
+
}
|
|
1078
|
+
//#endregion
|
|
995
1079
|
//#region src/types/services/richmedia-service.d.ts
|
|
996
1080
|
/** 群文件列表参数(getGroupFileList,说明书参考)。 */
|
|
997
1081
|
interface GetFileListParam {
|
|
@@ -1008,6 +1092,8 @@ interface GroupFileItemInfo {
|
|
|
1008
1092
|
fileSize: string;
|
|
1009
1093
|
fileUuid?: string;
|
|
1010
1094
|
parent?: string;
|
|
1095
|
+
/** 下载链接(get_group_file_download_url 数据源,字段待实机确认)。 */
|
|
1096
|
+
url?: string;
|
|
1011
1097
|
uploadTime?: number;
|
|
1012
1098
|
modifyTime?: number;
|
|
1013
1099
|
uploaderUid?: string;
|
|
@@ -1052,6 +1138,8 @@ interface NodeIKernelRichMediaService {
|
|
|
1052
1138
|
deleteGroupFolder(groupCode: string, folderId: string): Promise<GeneralCallResult>;
|
|
1053
1139
|
/** 重命名群文件(rename_group_file;参数待探测校准)。 */
|
|
1054
1140
|
renameGroupFile(arg1: string, arg2: number, arg3: string, arg4: string, arg5: string): Promise<unknown>;
|
|
1141
|
+
/** 重命名群文件夹(rename_group_folder;形态镜像 renameGroupFile,待校准)。 */
|
|
1142
|
+
renameGroupFolder(arg1: string, arg2: number, arg3: string, arg4: string, arg5: string): Promise<unknown>;
|
|
1055
1143
|
/** 移动群文件(move_group_file)。 */
|
|
1056
1144
|
moveGroupFile(groupCode: string, busId: number[], fileList: string[], currentParentDirectory: string, targetParentDirectory: string): Promise<GeneralCallResult>;
|
|
1057
1145
|
/** 转存群文件(trans_group_file)。 */
|
|
@@ -1231,6 +1319,8 @@ interface NodeIQQNTWrapperSession {
|
|
|
1231
1319
|
/** 闪传服务(诊断用:调查 rich media transfer failed 时验证初始化触发点)。 */
|
|
1232
1320
|
getFlashTransferService(): unknown;
|
|
1233
1321
|
getProfileService(): unknown;
|
|
1322
|
+
/** 会话列表(P2 批次二 get_peer_pins 数据源;2026-10-31 探测方法面)。 */
|
|
1323
|
+
getRecentContactService(): unknown;
|
|
1234
1324
|
getProfileLikeService(): unknown;
|
|
1235
1325
|
getTipOffService(): unknown;
|
|
1236
1326
|
}
|
|
@@ -1467,6 +1557,24 @@ declare class GroupApi {
|
|
|
1467
1557
|
removeGroupEssence(groupCode: string, msgId: string): Promise<void>;
|
|
1468
1558
|
/** 精华消息公共流程:按 msgId 拉消息 → add/removeGroupEssence。 */
|
|
1469
1559
|
private setEssence;
|
|
1560
|
+
/**
|
|
1561
|
+
* 群公告列表(get_group_announcements;getGroupBulletin 返回形状待探测校准,
|
|
1562
|
+
* 兼容 result 数组 / result.bulletins 等宽松提取)。
|
|
1563
|
+
*/
|
|
1564
|
+
getGroupAnnouncements(groupCode: string): Promise<GroupBulletin[]>;
|
|
1565
|
+
/**
|
|
1566
|
+
* 发群公告(send_group_announcement;imagePath 提供时先 uploadGroupBulletinPic
|
|
1567
|
+
* 再带 picId 发布——两步参数形状均待探测校准)。
|
|
1568
|
+
*/
|
|
1569
|
+
publishGroupAnnouncement(groupCode: string, content: string, imagePath?: string): Promise<void>;
|
|
1570
|
+
/** 删群公告(delete_group_announcement;参数待探测校准)。 */
|
|
1571
|
+
deleteGroupAnnouncement(groupCode: string, announcementId: string): Promise<void>;
|
|
1572
|
+
/** 专属头衔(set_group_member_special_title;setIdentityTitleInfo 参数待校准)。 */
|
|
1573
|
+
setMemberSpecialTitle(groupCode: string, uid: string, title: string): Promise<void>;
|
|
1574
|
+
/** 群头像(set_group_avatar;GroupService.setHeader 参数待校准)。 */
|
|
1575
|
+
setGroupAvatar(groupCode: string, imagePath: string): Promise<void>;
|
|
1576
|
+
/** 公告图片上传(uploadGroupBulletinPic 返回 picId 待校准,失败原样上抛)。 */
|
|
1577
|
+
private uploadBulletinPic;
|
|
1470
1578
|
/** @all 剩余次数(get_group_at_all_remain)。 */
|
|
1471
1579
|
getGroupRemainAtTimes(groupCode: string): Promise<{
|
|
1472
1580
|
canAtAll: boolean;
|
|
@@ -1640,6 +1748,13 @@ declare class MsgApi {
|
|
|
1640
1748
|
* 3. `thumbMd5` 是缩略图**内容**的 md5,与文件名无关;`fileTime` 为秒。
|
|
1641
1749
|
*/
|
|
1642
1750
|
private prepareVideoElement;
|
|
1751
|
+
/**
|
|
1752
|
+
* FILE 元素预处理(P2-2 预留口子,upload_private/group_file 落地):
|
|
1753
|
+
* pic/ptt/video 同款 NapCat 式链路——md5 → getRichMediaFilePathForGuild(FILE)
|
|
1754
|
+
* → copyFile → 完整 fileElement。链路模式已验证(三类媒体同构);fileElement
|
|
1755
|
+
* 字段值(fileSize 字符串形态、fileUuid 空串等)待探测校准。
|
|
1756
|
+
*/
|
|
1757
|
+
private prepareFileElement;
|
|
1643
1758
|
/**
|
|
1644
1759
|
* 富媒体文件放置(PIC/PTT/VIDEO 共用):md5 + 文件名 → QQ 内部目标路径
|
|
1645
1760
|
* (getRichMediaFilePathForGuild)→ util.copyFile 放置 → 返回目标路径。
|
|
@@ -1681,8 +1796,19 @@ declare class MsgApi {
|
|
|
1681
1796
|
* 调用方),完全无路径抛 NOT_FOUND。
|
|
1682
1797
|
*/
|
|
1683
1798
|
downloadPtt(msgId: string, target: Peer): Promise<PttElement>;
|
|
1799
|
+
/** 取消息内语音元素(无则 null;附 elemId 供主动下载)。 */
|
|
1800
|
+
private pttElementOf;
|
|
1684
1801
|
/** 发送输入状态(set_input_status;eventType=1 输入中,0 停止)。 */
|
|
1685
1802
|
setInputStatus(target: Peer, eventType: number): Promise<void>;
|
|
1803
|
+
/** 戳一戳发送(send_friend/group_nudge;参数形状待探测校准,失败抛 UNKNOWN)。 */
|
|
1804
|
+
sendNudge(target: Peer, opts: {
|
|
1805
|
+
receiverUid: string;
|
|
1806
|
+
callerUid: string;
|
|
1807
|
+
}): Promise<void>;
|
|
1808
|
+
/** 会话置顶(set_peer_pin;setContactLocalTop 参数待探测校准)。 */
|
|
1809
|
+
setContactTop(target: Peer, isTop: boolean): Promise<void>;
|
|
1810
|
+
/** 收藏表情列表(get_custom_face_url_list;queryFavEmojiByDesc 形状待校准)。 */
|
|
1811
|
+
queryFavEmojis(): Promise<string[]>;
|
|
1686
1812
|
/**
|
|
1687
1813
|
* 发送合并转发(send_group/private_forward_msg)。
|
|
1688
1814
|
* buildMultiForwardMsg 组装 MULTI_FORWARD 元素 → 直接作 sendMsg 元素发送。
|
|
@@ -1751,6 +1877,22 @@ declare class ProfileLikeApi {
|
|
|
1751
1877
|
sendLike(uid: string, count?: number): Promise<void>;
|
|
1752
1878
|
}
|
|
1753
1879
|
//#endregion
|
|
1880
|
+
//#region src/apis/recent-contact.d.ts
|
|
1881
|
+
/** 置顶会话(get_peer_pins 数据项):peerUid 按 chatType 归 friend/group。 */
|
|
1882
|
+
interface PinnedContact {
|
|
1883
|
+
/** 会话 id(好友 = uid,群 = 群号)。 */
|
|
1884
|
+
peerUid: string;
|
|
1885
|
+
/** 场景:friend(C2C)/ group(GROUP);temp 不产出。 */
|
|
1886
|
+
scene: "friend" | "group";
|
|
1887
|
+
}
|
|
1888
|
+
/** 会话列表 API:从 session 拿 recent contact service,包装成语义化方法。 */
|
|
1889
|
+
declare class RecentContactApi {
|
|
1890
|
+
private readonly service;
|
|
1891
|
+
constructor(session: NodeIQQNTWrapperSession);
|
|
1892
|
+
/** 置顶会话列表(get_peer_pins;getRecentContactList 返回形状待探测校准)。 */
|
|
1893
|
+
getPinnedContacts(): Promise<PinnedContact[]>;
|
|
1894
|
+
}
|
|
1895
|
+
//#endregion
|
|
1754
1896
|
//#region src/apis/richmedia.d.ts
|
|
1755
1897
|
/** 群文件列表条目(fileInfo/folderInfo 取其一)。 */
|
|
1756
1898
|
interface GroupFileListItem {
|
|
@@ -1784,6 +1926,14 @@ declare class RichMediaApi {
|
|
|
1784
1926
|
renameGroupFile(groupCode: string, fileId: string, newName: string): Promise<void>;
|
|
1785
1927
|
/** 移动群文件(move_group_file;targetFolder 空为根目录)。 */
|
|
1786
1928
|
moveGroupFile(groupCode: string, fileIds: string[], targetFolderId: string): Promise<void>;
|
|
1929
|
+
/** 重命名群文件夹(rename_group_folder;形态镜像 renameGroupFile,待校准)。 */
|
|
1930
|
+
renameGroupFolder(groupCode: string, folderId: string, newName: string): Promise<void>;
|
|
1931
|
+
/**
|
|
1932
|
+
* 群文件下载链接(get_group_file_download_url):getGroupFileList 根列表按
|
|
1933
|
+
* fileId 查找取 url 字段(字段待实机确认)。已知差异:仅根目录可达——
|
|
1934
|
+
* 子目录文件需 parentFolderId 逐层定位,暂不支持。
|
|
1935
|
+
*/
|
|
1936
|
+
getGroupFileDownloadUrl(groupCode: string, fileId: string): Promise<string>;
|
|
1787
1937
|
/** 转存群文件(trans_group_file)。 */
|
|
1788
1938
|
transGroupFile(groupCode: string, fileId: string): Promise<void>;
|
|
1789
1939
|
}
|
|
@@ -2790,5 +2940,5 @@ interface QQVersionInfo {
|
|
|
2790
2940
|
qua: string;
|
|
2791
2941
|
}
|
|
2792
2942
|
//#endregion
|
|
2793
|
-
export { type BootEnv, BuddyCache, type BuddyCacheEventChannel, type BuddyCacheListener, type BuddyCacheOptions, type BuddyCategory, type BuddyCoreInfo, type BuddyEventChannel, type BuddyListEntry, type BuddyListener, type BuddyReq, type CanonicalElement, ChatType, ConfigBase, ConfigError, type ConfigFormat, type ConfigOptions, type ConfigSchema, type CoreContext, type CoreContextOptions, type CoreLoginOptions, DEFAULT_DATA_ROOT_NAME, type DesktopPathConfig, type DeviceInfo, type DoubtBuddyReq, type DoubtFriendRequestInfo, EXIT_CONFIG_INVALID, ElementType, type EnginInitDesktopConfig, type EssenceMsgItem, type ForceFetchClientKeyRetType, type Friend, FriendApi, FriendBridge, type FriendCategory, type GeneralCallResult, type GetFileListParam, type GrayTipElement, type GrayTipRevokeElement, GrayTipSubType, type Group, GroupApi, GroupBridge, GroupCache, type GroupCacheOptions, type GroupDetailInfo, type GroupEventChannel, type GroupFileItemInfo, type GroupFolderInfo, type GroupHonorWebInfo, GroupListUpdateType, type GroupListener, type GroupMember, type GroupMemberDataSource, type GroupMemberListChange, type GroupNotify, GroupNotifyApi, GroupNotifyMsgStatus, GroupNotifyMsgType, type GroupSpaceInfo, type HonorListItem, KERNEL_ERROR_CODES, KernelError, type KernelErrorCode, type ListenerEvents, type LogConfig, type LogEnvSource, type LogFileConfig, type LogFormat, type LogLevel, type LogModuleName, type LoggerOptions, type LoginAccountInfo, type LoginListItem, type LoginProgress, type LoginResult, type LoginState, MAIN_CONFIG_FILE, MsgApi, MsgBridge, type MsgEventChannel, type MsgListener, NTEventChannel, NTGroupMemberRole, NTGroupRequestOperateTypes, NapukettoCore, type NapukettoCoreOptions, type NodeIDependsAdapter, type NodeIDispatcherAdapter, type NodeIGlobalAdapter, type NodeIKernelBuddyService, type NodeIKernelGroupService, type NodeIKernelLoginService, type NodeIKernelMsgService, type NodeIKernelProfileLikeService, type NodeIKernelProfileService, type NodeIKernelRichMediaService, type NodeIKernelSessionListener, type NodeIKernelTicketService, type NodeIQQNTStartupSessionWrapper, type NodeIQQNTWrapperEngine, type NodeIQQNTWrapperSession, type NodeQQNTWrapperUtil, type PathOptions, PathWrapper, type Peer, type PlatformType, ProfileApi, ProfileLikeApi, type QQVersionContext, type QQVersionInfo, type QrCodeData, QrLoginSession, type RDeliveryConfig, type RawElement, type RawMessage, RichMediaApi, type SelfInfo, type SendMessageElement, type SessionConfigOptions, type ShutUpGroupMember, type StartNapukettoOptions, type StrangerInfo, TicketApi, type TimestampMode, type TipAioOpGrayTipElement, type TipGroupElement, TipGroupElementType, type UserDetailInfoByUin, type VendorType, WebApi, WebHonorType, type WrapperContext, type WrapperNodeApi, type WrapperSessionInitConfig, buildEngineConfig, buildLoginConfig, buildSessionConfig, configError, createCoreContext, createSessionListener as createLifecycleSessionListener, createSessionListener, createLogger, createLoginListener, createSession, createWrapper, electronProcessType, getExistingSession, getMainSession, initAndStartSession, initEngine, initSession, isKernelError, kernelError, listLoginAccounts, listQQVersions, narrowBuddyCategories, parseAppidFromMajor, parseLogConfig, parseToml, probeRuntime, quickLogin, readMachineGuid, resolveAppidQua, resolveConfigPath, resolveDataRoot, resolveQQVersion, resolveQqGlobalPath, resolveQqUserDataRoot, resolveWrapperPath, startNapuketto, startSession, stringifyToml, toCanonicalElements, toSendElements, waitForNetworkConnection, waitSessionReady };
|
|
2943
|
+
export { type BootEnv, BuddyCache, type BuddyCacheEventChannel, type BuddyCacheListener, type BuddyCacheOptions, type BuddyCategory, type BuddyCoreInfo, type BuddyEventChannel, type BuddyListEntry, type BuddyListener, type BuddyReq, type CanonicalElement, ChatType, ConfigBase, ConfigError, type ConfigFormat, type ConfigOptions, type ConfigSchema, type CoreContext, type CoreContextOptions, type CoreLoginOptions, DEFAULT_DATA_ROOT_NAME, type DesktopPathConfig, type DeviceInfo, type DoubtBuddyReq, type DoubtFriendRequestInfo, EXIT_CONFIG_INVALID, ElementType, type EnginInitDesktopConfig, type EssenceMsgItem, type ForceFetchClientKeyRetType, type Friend, FriendApi, FriendBridge, type FriendCategory, type GeneralCallResult, type GetFileListParam, type GrayTipElement, type GrayTipRevokeElement, GrayTipSubType, type Group, GroupApi, GroupBridge, type GroupBulletin, GroupCache, type GroupCacheOptions, type GroupDetailInfo, type GroupEventChannel, type GroupFileItemInfo, type GroupFolderInfo, type GroupHonorWebInfo, GroupListUpdateType, type GroupListener, type GroupMember, type GroupMemberDataSource, type GroupMemberListChange, type GroupNotify, GroupNotifyApi, GroupNotifyMsgStatus, GroupNotifyMsgType, type GroupSpaceInfo, type HonorListItem, KERNEL_ERROR_CODES, KernelError, type KernelErrorCode, type ListenerEvents, type LogConfig, type LogEnvSource, type LogFileConfig, type LogFormat, type LogLevel, type LogModuleName, type LoggerOptions, type LoginAccountInfo, type LoginListItem, type LoginProgress, type LoginResult, type LoginState, MAIN_CONFIG_FILE, MsgApi, MsgBridge, type MsgEventChannel, type MsgListener, NTEventChannel, NTGroupMemberRole, NTGroupRequestOperateTypes, NapukettoCore, type NapukettoCoreOptions, type NodeIDependsAdapter, type NodeIDispatcherAdapter, type NodeIGlobalAdapter, type NodeIKernelBuddyService, type NodeIKernelGroupService, type NodeIKernelLoginService, type NodeIKernelMsgService, type NodeIKernelProfileLikeService, type NodeIKernelProfileService, type NodeIKernelRecentContactService, type NodeIKernelRichMediaService, type NodeIKernelSessionListener, type NodeIKernelTicketService, type NodeIQQNTStartupSessionWrapper, type NodeIQQNTWrapperEngine, type NodeIQQNTWrapperSession, type NodeQQNTWrapperUtil, type NudgeParam, type PathOptions, PathWrapper, type Peer, type PlatformType, ProfileApi, ProfileLikeApi, type QQVersionContext, type QQVersionInfo, type QrCodeData, QrLoginSession, type RDeliveryConfig, type RawElement, type RawMessage, type RecentContact, RecentContactApi, type RecentContactFetchParam, RichMediaApi, type SelfInfo, type SendMessageElement, type SessionConfigOptions, type ShutUpGroupMember, type StartNapukettoOptions, type StrangerInfo, TicketApi, type TimestampMode, type TipAioOpGrayTipElement, type TipGroupElement, TipGroupElementType, type UserDetailInfoByUin, type VendorType, WebApi, WebHonorType, type WrapperContext, type WrapperNodeApi, type WrapperSessionInitConfig, buildEngineConfig, buildLoginConfig, buildSessionConfig, configError, createCoreContext, createSessionListener as createLifecycleSessionListener, createSessionListener, createLogger, createLoginListener, createSession, createWrapper, electronProcessType, getExistingSession, getMainSession, initAndStartSession, initEngine, initSession, isKernelError, kernelError, listLoginAccounts, listQQVersions, narrowBuddyCategories, parseAppidFromMajor, parseLogConfig, parseToml, probeRuntime, quickLogin, readMachineGuid, resolveAppidQua, resolveConfigPath, resolveDataRoot, resolveQQVersion, resolveQqGlobalPath, resolveQqUserDataRoot, resolveWrapperPath, startNapuketto, startSession, stringifyToml, toCanonicalElements, toSendElements, waitForNetworkConnection, waitSessionReady };
|
|
2794
2944
|
//# sourceMappingURL=index.d.cts.map
|