@napuketto/adapter 0.0.12 → 0.0.15

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,4 +1,4 @@
1
- import { o as ActionRegistry, r as ProtocolConfig, t as BaseProtocolAdapter } from "../index-Dv6QGLkY.mjs";
1
+ import { i as ProtocolConfig, n as BaseProtocolAdapter, s as ActionRegistry } from "../index-CDKj-jus.mjs";
2
2
  import "../gray-tip-CcpfI1Og.mjs";
3
3
  import { CanonicalElement, FriendApi, GroupApi, GroupCache, GroupNotifyApi, KernelErrorCode, MsgApi, MsgEventChannel, Peer, ProfileApi } from "@napuketto/kernel";
4
4
  import { ZodType, z } from "zod";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/satori/action/base-action.ts","../../src/satori/helper/element/element.ts","../../src/satori/helper/element/canonical.ts","../../src/satori/helper/element/deps.ts","../../src/satori/helper/element/element-convert.ts","../../src/satori/api/satori-api.ts","../../src/satori/action/registry.ts","../../src/satori/action/index.ts","../../src/satori/helper/config.ts","../../src/satori/helper/error.ts","../../src/satori/types/resource.ts","../../src/satori/helper/translate.ts","../../src/satori/adapter.ts","../../src/satori/event/translate.ts","../../src/satori/types/api.ts","../../src/satori/types/event.ts","../../src/satori/transport.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/satori/action/base-action.ts","../../src/satori/helper/element/element.ts","../../src/satori/helper/element/canonical.ts","../../src/satori/helper/element/deps.ts","../../src/satori/helper/element/element-convert.ts","../../src/satori/api/satori-api.ts","../../src/satori/action/registry.ts","../../src/satori/action/index.ts","../../src/satori/helper/config.ts","../../src/satori/helper/error.ts","../../src/satori/types/resource.ts","../../src/satori/helper/translate.ts","../../src/satori/adapter.ts","../../src/satori/event/translate.ts","../../src/satori/types/api.ts","../../src/satori/types/event.ts","../../src/satori/transport.ts"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- import { a as ActionRegistry, n as BaseProtocolAdapter } from "../core-DE2jZQR7.mjs";
1
+ import { o as ActionRegistry, r as BaseProtocolAdapter, t as ensureSilk } from "../core-of7sLiQX.mjs";
2
2
  import { i as createWsServerSchema, n as collectGrayTipUids, r as createHttpServerSchema, t as forEachRawMessage } from "../raw-message-DfHdOVHi.mjs";
3
3
  import { ChatType, GrayTipSubType, NTGroupRequestOperateTypes, TipGroupElementType, isKernelError, kernelError, toCanonicalElements } from "@napuketto/kernel";
4
+ import { mkdir, writeFile } from "node:fs/promises";
4
5
  import { z } from "zod";
5
6
  import { join } from "node:path";
6
7
  import { HttpServer, WsServer } from "@napuketto/network";
7
- import { mkdir, open, writeFile } from "node:fs/promises";
8
- import { encodePcmToSilk } from "@napuketto/media";
9
8
  //#region src/satori/helper/config.ts
10
9
  /**
11
10
  * Satori 协议配置(zod schema,归属本包,ADR-012)
@@ -538,7 +537,7 @@ function renderElement(el) {
538
537
  * Satori 发方向资源处理(从 element-convert.ts 拆分,2026-08-08 FTA 优化)
539
538
  *
540
539
  * - resolveAsset:internal: 路径 / http(s) 下载 / 本地路径原样
541
- * - ensureSilk:非 silk 语音(任意音频格式)转 silk(QQ 语音格式,失败原样返回)
540
+ * - ensureSilk 已上移到 adapter core(core/media.ts,onebot11/satori 共用)
542
541
  */
543
542
  /** internal:{platform}/{user.id}/{path} → 本地路径(取 _tmp 之后的路径,回落 cacheDir)。 */
544
543
  function resolveInternalPath(src) {
@@ -576,26 +575,6 @@ async function downloadAsset(url, cacheDir) {
576
575
  await writeFile(filePath, buf);
577
576
  return filePath;
578
577
  }
579
- /** 语音转码:非 silk 输入(任意音频格式,经 media 归一化)转 silk(QQ 语音格式)。 */
580
- async function ensureSilk(path) {
581
- try {
582
- if ((await readFileHead(path)).startsWith("#!SILK")) return path;
583
- return await encodePcmToSilk(path);
584
- } catch {
585
- return path;
586
- }
587
- }
588
- /** 读文件头 8 字节(判断格式)。 */
589
- async function readFileHead(path) {
590
- const handle = await open(path, "r");
591
- try {
592
- const buf = Buffer.alloc(8);
593
- await handle.read(buf, 0, 8, 0);
594
- return buf.toString("utf8");
595
- } finally {
596
- await handle.close();
597
- }
598
- }
599
578
  //#endregion
600
579
  //#region src/satori/helper/element/media-convert.ts
601
580
  /** 解析元素媒体 src(空 → null 忽略),返回本地路径。 */
@@ -1081,6 +1060,35 @@ var GuildMemberKickAction = class extends BaseSatoriAction {
1081
1060
  await this.deps.groupApi.kickMember(guildId, [uid], permanent === true);
1082
1061
  }
1083
1062
  };
1063
+ /** 毫秒 → 秒(QQ setMemberShutUp 单位;向下取整,0 解除禁言)。 */
1064
+ function msToSeconds(ms) {
1065
+ return Math.max(0, Math.floor(ms / 1e3));
1066
+ }
1067
+ /** guild.member.mute 参数。 */
1068
+ const guildMemberMuteSchema = z.object({
1069
+ guild_id: z.string(),
1070
+ user_id: z.string(),
1071
+ /** 禁言时长(毫秒,Satori 规范);0 解除禁言。 */
1072
+ duration: z.number()
1073
+ });
1074
+ /** 群成员禁言(Satori duration 毫秒 → kernel setMemberShutUp 秒)。 */
1075
+ var GuildMemberMuteAction = class extends BaseSatoriAction {
1076
+ name = "guild.member.mute";
1077
+ schema = guildMemberMuteSchema;
1078
+ deps;
1079
+ constructor(deps) {
1080
+ super();
1081
+ this.deps = deps;
1082
+ }
1083
+ async _handle(payload) {
1084
+ const { guild_id: guildId, user_id: userId, duration } = payload;
1085
+ const uid = (await this.deps.uinToUid([userId])).get(userId) ?? userId;
1086
+ await this.deps.groupApi.setMemberShutUp(guildId, [{
1087
+ uid,
1088
+ duration: msToSeconds(duration)
1089
+ }]);
1090
+ }
1091
+ };
1084
1092
  /** guild.member.approve 参数(处理加群申请)。 */
1085
1093
  const guildMemberApproveSchema = z.object({
1086
1094
  message_id: z.string(),
@@ -1391,7 +1399,6 @@ const NOT_IMPLEMENTED = [
1391
1399
  "channel.update",
1392
1400
  "channel.delete",
1393
1401
  "channel.mute",
1394
- "guild.member.mute",
1395
1402
  "guild.member.role.set",
1396
1403
  "guild.member.role.unset",
1397
1404
  "guild.role.list",
@@ -1423,6 +1430,7 @@ function createSatoriActionRegistry(deps) {
1423
1430
  registry.register(new GuildMemberGetAction(guildDeps));
1424
1431
  registry.register(new GuildMemberListAction(guildDeps));
1425
1432
  registry.register(new GuildMemberKickAction(guildDeps));
1433
+ registry.register(new GuildMemberMuteAction(guildDeps));
1426
1434
  registry.register(new GuildMemberApproveAction(guildDeps));
1427
1435
  const friendDeps = api;
1428
1436
  registry.register(new FriendListAction(friendDeps));