@xmoxmo/bncr 0.1.2 → 0.1.4

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.
@@ -9,21 +9,34 @@ function isAudioMimeType(mimeType?: string): boolean {
9
9
  return mt.startsWith('audio/');
10
10
  }
11
11
 
12
- export function resolveBncrOutboundMessageType(params: { mimeType?: string; fileName?: string; hintedType?: string; hasPayload?: boolean }): 'text' | 'image' | 'video' | 'voice' | 'audio' | 'file' {
12
+ export function resolveBncrOutboundMessageType(params: {
13
+ mimeType?: string;
14
+ fileName?: string;
15
+ hintedType?: string;
16
+ hasPayload?: boolean;
17
+ }): 'text' | 'image' | 'video' | 'voice' | 'audio' | 'file' {
13
18
  const hinted = asString(params.hintedType || '').toLowerCase();
14
19
  const hasPayload = !!params.hasPayload;
15
20
  const mt = asString(params.mimeType || '').toLowerCase();
16
21
  const major = mt.split('/')[0] || '';
17
- const isStandard = hinted === 'text' || hinted === 'image' || hinted === 'video' || hinted === 'voice' || hinted === 'audio' || hinted === 'file';
22
+ const isStandard =
23
+ hinted === 'text' ||
24
+ hinted === 'image' ||
25
+ hinted === 'video' ||
26
+ hinted === 'voice' ||
27
+ hinted === 'audio' ||
28
+ hinted === 'file';
18
29
 
19
30
  if (hasPayload && major === 'text' && (hinted === 'text' || !isStandard)) return 'file';
20
31
  if (hinted === 'voice') {
21
32
  if (isAudioMimeType(mt)) return 'voice';
22
- if (major === 'text' || major === 'image' || major === 'video' || major === 'audio') return major as any;
33
+ if (major === 'text' || major === 'image' || major === 'video' || major === 'audio')
34
+ return major as any;
23
35
  return 'file';
24
36
  }
25
37
  if (isStandard) return hinted as any;
26
- if (major === 'text' || major === 'image' || major === 'video' || major === 'audio') return major as any;
38
+ if (major === 'text' || major === 'image' || major === 'video' || major === 'audio')
39
+ return major as any;
27
40
  return 'file';
28
41
  }
29
42
 
@@ -31,7 +44,13 @@ export function buildBncrMediaOutboundFrame(params: {
31
44
  messageId: string;
32
45
  sessionKey: string;
33
46
  route: { platform: string; groupId: string; userId: string };
34
- media: { mode: 'base64' | 'chunk'; mimeType?: string; fileName?: string; mediaBase64?: string; path?: string };
47
+ media: {
48
+ mode: 'base64' | 'chunk';
49
+ mimeType?: string;
50
+ fileName?: string;
51
+ mediaBase64?: string;
52
+ path?: string;
53
+ };
35
54
  mediaUrl: string;
36
55
  mediaMsg: string;
37
56
  fileName: string;
@@ -4,7 +4,10 @@ export async function sendBncrText(params: {
4
4
  to: string;
5
5
  text: string;
6
6
  mediaLocalRoots?: readonly string[];
7
- resolveVerifiedTarget: (to: string, accountId: string) => { sessionKey: string; route: any; displayScope: string };
7
+ resolveVerifiedTarget: (
8
+ to: string,
9
+ accountId: string,
10
+ ) => { sessionKey: string; route: any; displayScope: string };
8
11
  rememberSessionRoute: (sessionKey: string, accountId: string, route: any) => void;
9
12
  enqueueFromReply: (args: {
10
13
  accountId: string;
@@ -28,7 +31,11 @@ export async function sendBncrText(params: {
28
31
  mediaLocalRoots: params.mediaLocalRoots,
29
32
  });
30
33
 
31
- return { channel: params.channelId, messageId: params.createMessageId(), chatId: verified.sessionKey };
34
+ return {
35
+ channel: params.channelId,
36
+ messageId: params.createMessageId(),
37
+ chatId: verified.sessionKey,
38
+ };
32
39
  }
33
40
 
34
41
  export async function sendBncrMedia(params: {
@@ -40,13 +47,22 @@ export async function sendBncrMedia(params: {
40
47
  asVoice?: boolean;
41
48
  audioAsVoice?: boolean;
42
49
  mediaLocalRoots?: readonly string[];
43
- resolveVerifiedTarget: (to: string, accountId: string) => { sessionKey: string; route: any; displayScope: string };
50
+ resolveVerifiedTarget: (
51
+ to: string,
52
+ accountId: string,
53
+ ) => { sessionKey: string; route: any; displayScope: string };
44
54
  rememberSessionRoute: (sessionKey: string, accountId: string, route: any) => void;
45
55
  enqueueFromReply: (args: {
46
56
  accountId: string;
47
57
  sessionKey: string;
48
58
  route: any;
49
- payload: { text?: string; mediaUrl?: string; mediaUrls?: string[]; asVoice?: boolean; audioAsVoice?: boolean };
59
+ payload: {
60
+ text?: string;
61
+ mediaUrl?: string;
62
+ mediaUrls?: string[];
63
+ asVoice?: boolean;
64
+ audioAsVoice?: boolean;
65
+ };
50
66
  mediaLocalRoots?: readonly string[];
51
67
  }) => Promise<void>;
52
68
  createMessageId: () => string;
@@ -67,5 +83,9 @@ export async function sendBncrMedia(params: {
67
83
  mediaLocalRoots: params.mediaLocalRoots,
68
84
  });
69
85
 
70
- return { channel: params.channelId, messageId: params.createMessageId(), chatId: verified.sessionKey };
86
+ return {
87
+ channel: params.channelId,
88
+ messageId: params.createMessageId(),
89
+ chatId: verified.sessionKey,
90
+ };
71
91
  }