@napuketto/adapter 0.5.0 → 0.7.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.
@@ -811,6 +811,8 @@ declare class NapukettoOneBot11Adapter extends BaseProtocolAdapter<OB11Config> {
811
811
  private broadcastGroupRequests;
812
812
  /** 广播好友申请 → OB11 friend request 事件(批量 uidToUin 后翻译,纯函数)。 */
813
813
  private broadcastFriendRequests;
814
+ /** uid 批量 → uin(失败退空 Map:翻译层退化为 uid 数值,不阻塞请求上报)。 */
815
+ private uidToUinMap;
814
816
  /** 退订(幂等)。 */
815
817
  private unsubscribeAll;
816
818
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/onebot11/types/index.ts","../../src/onebot11/helper/data.ts","../../src/onebot11/helper/message-unique.ts","../../src/onebot11/api/one-bot-api.ts","../../src/onebot11/action/error-map.ts","../../src/onebot11/action/group/get-group-at-all-remain.ts","../../src/onebot11/event/base.ts","../../src/onebot11/event/message.ts","../../src/onebot11/event/meta.ts","../../src/onebot11/event/notice.ts","../../src/onebot11/event/request.ts","../../src/onebot11/event/index.ts","../../src/onebot11/action/index.ts","../../src/onebot11/helper/codec/cqcode.ts","../../src/onebot11/helper/codec/segment.ts","../../src/onebot11/helper/config.ts","../../src/onebot11/adapter.ts","../../src/onebot11/transport.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/onebot11/types/index.ts","../../src/onebot11/helper/data.ts","../../src/onebot11/helper/message-unique.ts","../../src/onebot11/api/one-bot-api.ts","../../src/onebot11/action/error-map.ts","../../src/onebot11/action/group/get-group-at-all-remain.ts","../../src/onebot11/event/base.ts","../../src/onebot11/event/message.ts","../../src/onebot11/event/meta.ts","../../src/onebot11/event/notice.ts","../../src/onebot11/event/request.ts","../../src/onebot11/event/index.ts","../../src/onebot11/action/index.ts","../../src/onebot11/helper/codec/cqcode.ts","../../src/onebot11/helper/codec/segment.ts","../../src/onebot11/helper/config.ts","../../src/onebot11/adapter.ts","../../src/onebot11/transport.ts"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { i as BaseAction, o as ActionRegistry, r as BaseProtocolAdapter, t as ensureSilk } from "../core-DyXyDUcU.mjs";
2
- import { n as createHttpServerSchema, r as createWsServerSchema, t as collectGrayTipUids } from "../gray-tip-B80z9KR4.mjs";
2
+ import { n as createWsServerSchema, t as createHttpServerSchema } from "../transport-schema-CpPxyRK0.mjs";
3
+ import { n as firstUntranslatedGrayTip, t as collectGrayTipUids } from "../gray-tip-LwBee5mo.mjs";
4
+ import { n as MS_TO_SEC$5, r as resolveUin, t as narrowBuddyReqs } from "../buddy-req-Q7Q4bVuz.mjs";
3
5
  import { n as subscribeRawMessages } from "../raw-message-D_ecJy4C.mjs";
4
6
  import { ChatType, GrayTipSubType, GroupApi, GroupNotifyMsgStatus, GroupNotifyMsgType, NTGroupMemberRole, NTGroupRequestOperateTypes, TicketApi, TipGroupElementType, WebHonorType, kernelError, toCanonicalElements } from "@napuketto/kernel";
5
7
  import { downloadUrl, inferExtension } from "@napuketto/media";
@@ -1877,7 +1879,7 @@ function cqMessageToCanonical(text) {
1877
1879
  //#endregion
1878
1880
  //#region src/onebot11/helper/message-info.ts
1879
1881
  /** 毫秒 → 秒(Unix 时间戳)。 */
1880
- const MS_TO_SEC$5 = 1e3;
1882
+ const MS_TO_SEC$4 = 1e3;
1881
1883
  /** RawMessage → OB11 消息信息(message_id 经 MessageUnique 映射)。
1882
1884
  * ctx(可选):接收方向 ID 转换上下文(at uid→uin、reply NT msgId→OB11 id,P2-19)。 */
1883
1885
  function toOb11MessageInfo(msg, unique, ctx = {}) {
@@ -1894,7 +1896,7 @@ function toOb11MessageInfo(msg, unique, ctx = {}) {
1894
1896
  user_id: Number(msg.senderUin),
1895
1897
  nickname: msg.sendNickName
1896
1898
  },
1897
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$5),
1899
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
1898
1900
  message: canonicalToSegments(elements),
1899
1901
  raw_message: canonicalToCqMessage(elements)
1900
1902
  };
@@ -1909,7 +1911,7 @@ function toOb11MessageInfo(msg, unique, ctx = {}) {
1909
1911
  //#endregion
1910
1912
  //#region src/onebot11/helper/notice.ts
1911
1913
  /** 毫秒 → 秒(Unix 时间戳)。 */
1912
- const MS_TO_SEC$4 = 1e3;
1914
+ const MS_TO_SEC$3 = 1e3;
1913
1915
  /** 群文件业务类型(group_upload 的 file.busid,与 kernel 群文件系列同源语义)。 */
1914
1916
  const GROUP_FILE_BUS_ID = 102;
1915
1917
  /** 检查消息是否含文件元素(group_upload 开关分支判定)。 */
@@ -1928,7 +1930,7 @@ function toUin$1(uid, ctx) {
1928
1930
  /** 基础字段(time/self_id/post_type)。 */
1929
1931
  function base(msg, ctx) {
1930
1932
  return {
1931
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
1933
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$3),
1932
1934
  self_id: Number(ctx.selfUin),
1933
1935
  post_type: "notice",
1934
1936
  group_id: Number(msg.peerUid)
@@ -1939,7 +1941,7 @@ function toRecall(msg, g, ctx) {
1939
1941
  if (g?.revokeElement === void 0) return null;
1940
1942
  const revoke = g.revokeElement;
1941
1943
  if (msg.chatType === ChatType.C2C) return {
1942
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
1944
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$3),
1943
1945
  self_id: Number(ctx.selfUin),
1944
1946
  post_type: "notice",
1945
1947
  notice_type: "friend_recall",
@@ -1967,7 +1969,7 @@ function toPoke(msg, g, ctx) {
1967
1969
  ctx.logger?.warn({ raw: JSON.stringify(g)?.slice(0, 2e3) }, "ob11: poke grayTip raw(待真实事件校准)");
1968
1970
  const isGroup = msg.chatType === ChatType.GROUP;
1969
1971
  return {
1970
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
1972
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$3),
1971
1973
  self_id: Number(ctx.selfUin),
1972
1974
  post_type: "notice",
1973
1975
  notice_type: "notify",
@@ -1977,28 +1979,30 @@ function toPoke(msg, g, ctx) {
1977
1979
  target_id: toUin$1(aioOp?.peerUid ?? "", ctx)
1978
1980
  };
1979
1981
  }
1982
+ /** 群成员变动映射器表(键 = TipGroupElementType;缺项 = 不可翻译返回 null)。 */
1983
+ const GROUP_CHANGE_BUILDERS = {
1984
+ [TipGroupElementType.MEMBER_ADD]: toMemberAdd,
1985
+ [TipGroupElementType.QUIT]: toQuit,
1986
+ [TipGroupElementType.BLOCK]: toAdminChange,
1987
+ [TipGroupElementType.UNBLOCK]: toAdminChange,
1988
+ [TipGroupElementType.SHUT_UP]: toBan
1989
+ };
1980
1990
  /** 群成员变动(group_increase / group_decrease / group_admin / group_ban)。 */
1981
1991
  function toGroupChange(msg, g, ctx) {
1982
1992
  const grp = g?.groupElement;
1983
1993
  if (grp === void 0 || grp.type === void 0) return null;
1984
- const common = {
1985
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
1994
+ const builder = GROUP_CHANGE_BUILDERS[grp.type];
1995
+ if (builder === void 0) return null;
1996
+ return builder({
1997
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$3),
1986
1998
  selfId: Number(ctx.selfUin),
1987
1999
  groupId: Number(msg.peerUid),
1988
2000
  memberUid: grp.memberUid ?? "",
1989
2001
  adminUid: grp.adminUid ?? ""
1990
- };
1991
- switch (grp.type) {
1992
- case TipGroupElementType.MEMBER_ADD: return toMemberAdd(common, ctx);
1993
- case TipGroupElementType.QUIT: return toQuit(common, ctx);
1994
- case TipGroupElementType.BLOCK:
1995
- case TipGroupElementType.UNBLOCK: return toAdminChange(common, grp, ctx);
1996
- case TipGroupElementType.SHUT_UP: return toBan(common, grp, ctx);
1997
- default: return null;
1998
- }
2002
+ }, grp, ctx);
1999
2003
  }
2000
2004
  /** 群成员增加(approve=管理员操作 / invite=普通邀请)。 */
2001
- function toMemberAdd(common, ctx) {
2005
+ function toMemberAdd(common, _grp, ctx) {
2002
2006
  const { time, selfId, groupId, memberUid, adminUid } = common;
2003
2007
  return {
2004
2008
  time,
@@ -2012,7 +2016,7 @@ function toMemberAdd(common, ctx) {
2012
2016
  };
2013
2017
  }
2014
2018
  /** 群成员退出(leave)。 */
2015
- function toQuit(common, ctx) {
2019
+ function toQuit(common, _grp, ctx) {
2016
2020
  const { time, selfId, groupId, memberUid, adminUid } = common;
2017
2021
  return {
2018
2022
  time,
@@ -2040,18 +2044,18 @@ function toAdminChange(common, grp, ctx) {
2040
2044
  }
2041
2045
  /** 禁言(duration>0=ban / 否则 lift_ban)。 */
2042
2046
  function toBan(common, grp, ctx) {
2043
- const { time, selfId, groupId, adminUid, memberUid } = common;
2044
2047
  const shutUp = grp.shutUp;
2048
+ const duration = Number(shutUp?.duration ?? 0);
2045
2049
  return {
2046
- time,
2047
- self_id: selfId,
2050
+ time: common.time,
2051
+ self_id: common.selfId,
2048
2052
  post_type: "notice",
2049
2053
  notice_type: "group_ban",
2050
- sub_type: Number(shutUp?.duration ?? 0) > 0 ? "ban" : "lift_ban",
2051
- group_id: groupId,
2052
- operator_id: toUin$1(shutUp?.admin?.uid ?? adminUid, ctx),
2053
- user_id: toUin$1(shutUp?.member?.uid ?? memberUid, ctx),
2054
- duration: Number(shutUp?.duration ?? 0)
2054
+ sub_type: duration > 0 ? "ban" : "lift_ban",
2055
+ group_id: common.groupId,
2056
+ operator_id: toUin$1(shutUp?.admin?.uid ?? common.adminUid, ctx),
2057
+ user_id: toUin$1(shutUp?.member?.uid ?? common.memberUid, ctx),
2058
+ duration
2055
2059
  };
2056
2060
  }
2057
2061
  /**
@@ -2062,7 +2066,7 @@ function toBan(common, grp, ctx) {
2062
2066
  function toFriendAdd(entry, selfUin) {
2063
2067
  const uin = entry.coreInfo?.uin ?? entry.uin ?? "";
2064
2068
  return {
2065
- time: Math.floor(Date.now() / MS_TO_SEC$4),
2069
+ time: Math.floor(Date.now() / MS_TO_SEC$3),
2066
2070
  self_id: Number(selfUin),
2067
2071
  post_type: "notice",
2068
2072
  notice_type: "friend_add",
@@ -2079,7 +2083,7 @@ function toGroupUpload(msg, selfUin) {
2079
2083
  const file = msg.elements.find((e) => e.fileElement !== void 0)?.fileElement;
2080
2084
  if (file === void 0) return null;
2081
2085
  return {
2082
- time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$4),
2086
+ time: Math.floor(Number(msg.msgTime) / MS_TO_SEC$3),
2083
2087
  self_id: Number(selfUin),
2084
2088
  post_type: "notice",
2085
2089
  notice_type: "group_upload",
@@ -2099,12 +2103,16 @@ function translateGrayTip(msg, g, ctx) {
2099
2103
  if (subType === GrayTipSubType.REVOKE) return toRecall(msg, g, ctx);
2100
2104
  if (subType === GrayTipSubType.GROUP) return toGroupChange(msg, g, ctx);
2101
2105
  if (g.aioOpGrayTipElement !== void 0) return toPoke(msg, g, ctx);
2102
- ctx.logger?.warn({
2103
- subType,
2104
- raw: JSON.stringify(g)?.slice(0, 2e3)
2105
- }, "ob11: 未翻译的 grayTip 子类型(raw 校准数据)");
2106
+ logUntranslatedGrayTip(msg, ctx);
2106
2107
  return null;
2107
2108
  }
2109
+ function logUntranslatedGrayTip(msg, ctx) {
2110
+ const untranslated = firstUntranslatedGrayTip(msg);
2111
+ if (untranslated !== void 0) ctx.logger?.warn({
2112
+ subType: untranslated.subElementType,
2113
+ raw: JSON.stringify(untranslated)?.slice(0, 2e3)
2114
+ }, "ob11: 未翻译的 grayTip 子类型(raw 校准数据)");
2115
+ }
2108
2116
  /** RawMessage → OB11 notice 事件(无 grayTip 返回 null)。
2109
2117
  * 未知/未翻译子类型打 raw JSON 日志(校准数据积累,2026-09-08)。 */
2110
2118
  function toOb11NoticeEvent(msg, ctx) {
@@ -2133,15 +2141,9 @@ function toOb11NoticeEvent(msg, ctx) {
2133
2141
  * ⚠️ onBuddyReqChange 回调参数形状未经真实事件校准(wrapper 字符串证据仅有方法名),
2134
2142
  * narrowBuddyReqs 防御性收窄,未知形状返回 null 由调用方打 raw 日志积累校准数据。
2135
2143
  */
2136
- /** 毫秒 → 秒(Unix 时间戳)。 */
2137
- const MS_TO_SEC$3 = 1e3;
2138
- /** uid → uin(上下文映射缺省时:数字 uid 直取数值,非数字 uid 返回 0 表示未知)。 */
2144
+ /** uid → uin(core 共享解析;ctx 携带映射)。 */
2139
2145
  function toUin(uid, ctx) {
2140
- if (uid === void 0 || uid === "") return 0;
2141
- const uin = ctx.uidToUin.get(uid);
2142
- if (uin !== void 0) return Number(uin);
2143
- const n = Number(uid);
2144
- return Number.isFinite(n) ? n : 0;
2146
+ return resolveUin(uid, ctx.uidToUin);
2145
2147
  }
2146
2148
  /**
2147
2149
  * GroupNotify → OB11 群请求事件(group_add / group_invite)。
@@ -2164,7 +2166,7 @@ function toOb11GroupRequestEvent(notify, ctx) {
2164
2166
  default: return null;
2165
2167
  }
2166
2168
  return {
2167
- time: Math.floor(Date.now() / MS_TO_SEC$3),
2169
+ time: Math.floor(Date.now() / MS_TO_SEC$5),
2168
2170
  self_id: Number(ctx.selfUin),
2169
2171
  post_type: "request",
2170
2172
  request_type: "group",
@@ -2175,24 +2177,6 @@ function toOb11GroupRequestEvent(notify, ctx) {
2175
2177
  flag: String(notify.seq)
2176
2178
  };
2177
2179
  }
2178
- /** BuddyReq 防御性收窄:仅接受字段形状可用的对象(onBuddyReqChange 参数待真实事件校准)。 */
2179
- function isBuddyReqLike(value) {
2180
- if (typeof value !== "object" || value === null) return false;
2181
- const v = value;
2182
- return typeof v["reqTime"] === "string" && typeof v["friendUid"] === "string";
2183
- }
2184
- /**
2185
- * onBuddyReqChange 回调参数 → BuddyReq 列表(防御性收窄)。
2186
- * 已知候选形状:BuddyReq[] / { buddyReqs: BuddyReq[] };其余返回 null(调用方打 raw 日志)。
2187
- */
2188
- function narrowBuddyReqs(arg) {
2189
- if (Array.isArray(arg)) return arg.every(isBuddyReqLike) ? arg : null;
2190
- if (typeof arg === "object" && arg !== null) {
2191
- const reqs = arg["buddyReqs"];
2192
- if (Array.isArray(reqs) && reqs.every(isBuddyReqLike)) return reqs;
2193
- }
2194
- return null;
2195
- }
2196
2180
  /**
2197
2181
  * BuddyReq → OB11 好友请求事件(friend)。
2198
2182
  * comment 取 words 字段(验证留言,形状待校准,缺省空串);flag = reqTime。
@@ -2200,7 +2184,7 @@ function narrowBuddyReqs(arg) {
2200
2184
  function toOb11FriendRequestEvent(req, ctx) {
2201
2185
  const words = req["words"];
2202
2186
  return {
2203
- time: Math.floor(Date.now() / MS_TO_SEC$3),
2187
+ time: Math.floor(Date.now() / MS_TO_SEC$5),
2204
2188
  self_id: Number(ctx.selfUin),
2205
2189
  post_type: "request",
2206
2190
  request_type: "friend",
@@ -4413,14 +4397,9 @@ var NapukettoOneBot11Adapter = class extends BaseProtocolAdapter {
4413
4397
  }
4414
4398
  /** 广播群系统通知 → OB11 group request 事件(批量 uidToUin 后翻译,纯函数)。 */
4415
4399
  async broadcastGroupRequests(notifies) {
4416
- const uids = collectGroupNotifyUids(notifies);
4417
- let uidToUin = /* @__PURE__ */ new Map();
4418
- if (uids.length > 0) try {
4419
- uidToUin = await this.oneBotApi.uidToUin(uids);
4420
- } catch {}
4421
4400
  const ctx = {
4422
4401
  selfUin: this.selfUin,
4423
- uidToUin
4402
+ uidToUin: await this.uidToUinMap(collectGroupNotifyUids(notifies))
4424
4403
  };
4425
4404
  for (const n of notifies) {
4426
4405
  const event = toOb11GroupRequestEvent(n, ctx);
@@ -4429,17 +4408,21 @@ var NapukettoOneBot11Adapter = class extends BaseProtocolAdapter {
4429
4408
  }
4430
4409
  /** 广播好友申请 → OB11 friend request 事件(批量 uidToUin 后翻译,纯函数)。 */
4431
4410
  async broadcastFriendRequests(reqs) {
4432
- const uids = reqs.map((r) => r.friendUid).filter((uid) => uid !== "");
4433
- let uidToUin = /* @__PURE__ */ new Map();
4434
- if (uids.length > 0) try {
4435
- uidToUin = await this.oneBotApi.uidToUin(uids);
4436
- } catch {}
4437
4411
  const ctx = {
4438
4412
  selfUin: this.selfUin,
4439
- uidToUin
4413
+ uidToUin: await this.uidToUinMap(reqs.map((r) => r.friendUid).filter((uid) => uid !== ""))
4440
4414
  };
4441
4415
  for (const req of reqs) this.broadcastEvent(toOb11FriendRequestEvent(req, ctx));
4442
4416
  }
4417
+ /** uid 批量 → uin(失败退空 Map:翻译层退化为 uid 数值,不阻塞请求上报)。 */
4418
+ async uidToUinMap(uids) {
4419
+ if (uids.length === 0) return /* @__PURE__ */ new Map();
4420
+ try {
4421
+ return await this.oneBotApi.uidToUin(uids);
4422
+ } catch {
4423
+ return /* @__PURE__ */ new Map();
4424
+ }
4425
+ }
4443
4426
  /** 退订(幂等)。 */
4444
4427
  unsubscribeAll() {
4445
4428
  for (const off of this.unsubscribes) off();