k2-im 0.1.50 → 0.1.52
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/README.md +21 -2
- package/dist/browser-2MUNHRDS.js +1 -0
- package/dist/browser-RTCHWSQ2.js +2 -0
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +40 -5
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +3 -1
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +20 -3
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-JOD67FT3.js → chunk-2R4KVYRU.js} +1 -1
- package/dist/{chunk-2LUSPYH5.js → chunk-HJYSLPY4.js} +1 -1
- package/dist/chunk-JXCG3DYB.js +1 -0
- package/dist/chunk-KV7I2SAC.js +8 -0
- package/dist/chunk-OUXI5ZYL.js +2 -0
- package/dist/chunk-Q6TFPZMF.js +2 -0
- package/dist/{chunk-KFVKMPCY.js → chunk-YJV5ZN3V.js} +1 -1
- package/dist/crypto.worker.js +25 -0
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +20 -3
- package/dist/index.js +1 -1
- package/dist/request-crypto.d.ts +31 -0
- package/dist/request-crypto.js +1 -0
- package/dist/sdk.d.ts +20 -3
- package/dist/sdk.js +1 -1
- package/package.json +5 -1
- package/dist/browser-YLMJKRLM.js +0 -2
- package/dist/chunk-6EPXLFLD.js +0 -2
- package/dist/chunk-DLZBFAYO.js +0 -1
- package/dist/chunk-JHGB6KYI.js +0 -2
- package/dist/chunk-ZFYM6YHK.js +0 -7
package/dist/i18n.d.ts
CHANGED
package/dist/i18n.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import'./chunk-SXY56EVC.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-
|
|
1
|
+
import'./chunk-SXY56EVC.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-2R4KVYRU.js';import'./chunk-Q6TFPZMF.js';import'./chunk-WOT6VMZA.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ type LastMessageSummary = {
|
|
|
120
120
|
} | {
|
|
121
121
|
kind: 'gift';
|
|
122
122
|
}
|
|
123
|
-
/** 直播间分享。`title`
|
|
123
|
+
/** 直播间分享。`title` 是房间标题,没有房间标题再用主播昵称。 */
|
|
124
124
|
| {
|
|
125
125
|
kind: 'liveRoom';
|
|
126
126
|
title?: string;
|
|
@@ -3757,6 +3757,8 @@ interface ImSdkErrorShape {
|
|
|
3757
3757
|
category: ImSdkErrorCategory;
|
|
3758
3758
|
operation: string;
|
|
3759
3759
|
retryable: boolean;
|
|
3760
|
+
/** 执行设施已终止;宿主可在保存草稿后提供用户主动整页刷新,不得自动重试。 */
|
|
3761
|
+
recovery?: 'reload-app';
|
|
3760
3762
|
conversation?: ConversationRef;
|
|
3761
3763
|
details?: Readonly<Record<string, unknown>>;
|
|
3762
3764
|
cause?: unknown;
|
|
@@ -5083,8 +5085,11 @@ type ConversationLastMessageSummary = {
|
|
|
5083
5085
|
kind: 'transfer';
|
|
5084
5086
|
} | {
|
|
5085
5087
|
kind: 'gift';
|
|
5086
|
-
}
|
|
5088
|
+
}
|
|
5089
|
+
/** 直播间分享。`title` 是房间标题,没有房间标题再用主播昵称。 */
|
|
5090
|
+
| {
|
|
5087
5091
|
kind: 'liveRoom';
|
|
5092
|
+
title?: string;
|
|
5088
5093
|
} | {
|
|
5089
5094
|
kind: 'redPacket';
|
|
5090
5095
|
} | {
|
|
@@ -5583,7 +5588,7 @@ interface ForwardMessagesResult {
|
|
|
5583
5588
|
* 只有 `sendText` 消费文本草稿;媒体、语音、文件、GIF 与名片拥有独立选择态,不清理 Composer 文本。
|
|
5584
5589
|
*/
|
|
5585
5590
|
interface ConversationMessageApi {
|
|
5586
|
-
/**
|
|
5591
|
+
/** 发送文本;单聊新文本固定加密,mention 与其他会话的加密方式由各自 sibling 决定。 */
|
|
5587
5592
|
sendText: (text: string, options?: TextMessageOptions) => Promise<SendMessageResult>;
|
|
5588
5593
|
/** 分享个人、普通群或社群名片;发送目标仍由当前 handle 的精确会话身份决定。 */
|
|
5589
5594
|
sendContact: (contact: ContactCardInput, options?: ContactMessageOptions) => Promise<SendMessageResult>;
|
|
@@ -6160,6 +6165,18 @@ interface ImMediaTasksApi {
|
|
|
6160
6165
|
file: Blob;
|
|
6161
6166
|
signal?: AbortSignal;
|
|
6162
6167
|
}) => Promise<Blob | null>;
|
|
6168
|
+
/**
|
|
6169
|
+
* 为本地图片生成仅供胶片条/相册格显示的缩略图,不上传、不写缓存、不改变发送文件与元信息。
|
|
6170
|
+
* JPEG 按文件签名识别,最长边最多 256px 且不放大,与发送预读共用账号的图片解码预算。
|
|
6171
|
+
* 其它格式直接返回原 Blob,保留透明与动画;宿主负责返回 Blob 的 object URL 生命周期。
|
|
6172
|
+
* 生成失败返回 null 并记录诊断;取消、账号失效和未装配能力保持明确错误。
|
|
6173
|
+
* @param input.file 原始本地图片;返回的显示资源不得代替它传入发送命令。
|
|
6174
|
+
* @param input.signal 删除文件、关闭预览或切换账号时取消请求。
|
|
6175
|
+
*/
|
|
6176
|
+
prepareLocalImageThumbnail: (input: {
|
|
6177
|
+
file: Blob;
|
|
6178
|
+
signal?: AbortSignal;
|
|
6179
|
+
}) => Promise<Blob | null>;
|
|
6163
6180
|
}
|
|
6164
6181
|
|
|
6165
6182
|
/**
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-
|
|
1
|
+
import'./chunk-IDECJJXC.js';import'./chunk-SXY56EVC.js';export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-YJV5ZN3V.js';export{j as DEFAULT_EMOJI_ASSET_BASE,i as EMOJI_CATALOG,c as EMOJI_GAME_DICE_STABLE_KEY,b as EMOJI_GAME_RPS_STABLE_KEY,m as EMOJI_TOKEN_RE,P as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,O as blockReasonForChannelSession,N as blockReasonForChannelState,V as blockReasonForGroupState,Y as blockReasonForSession,I as canEditMessage,w as canPinChannelMessage,v as canPinGroupMessage,x as canPinMessage,H as canRecallMessage,fa as cancelMediaUpload,T as classifyGifFile,S as classifyMediaFile,s as countUnreadConversations,u as createChatRuntime,p as createEmojiMatcher,K as decideConversationAction,M as decideMemberTargetAction,L as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Fa as fetchConversationFileBatch,Ga as fetchConversationImageBatch,Da as fetchConversationMessageBatch,Ha as fetchConversationVideoBatch,Ia as fetchConversationVoiceBatch,Ja as fetchNextConversationSearchBatch,r as formatConversationUnreadBadge,ia as forwardService,o as hasEmojiCandidate,U as isGifFile,y as isPinnedMessageProtected,aa as isVoiceStorageConfigured,Q as mediaBatchBudgetBytes,na as messageService,e as parseUnicodeEmojiCode,sa as pinnedMessageService,d as prependRecentEmoji,Ca as profileService,$ as replaceInterruptedMediaFile,W as requiresConversationEncryption,D as resolveChannelMemberAvatarUrl,C as resolveChannelMemberDisplayName,k as resolveEmojiToken,G as resolveFriendDisplayName,ta as resolveImProfileAccessDestination,A as resolveMemberDisplayName,t as resolveMessageNotificationDecision,F as resolvePublicNickname,E as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ga as retryMessage,R as runMediaSendBatch,ea as sendAsFilesBatch,J as sendBlockReasonForDecision,ca as sendMediaAlbum,_ as sendMediaFile,da as sendMediaFilesBatch,Z as sendText,ba as sendVoice,X as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-JXCG3DYB.js';export{C as createNewMessageBadgeController,i as createThreadItems,f as formatChatDateSeparator,e as formatConversationDisplayTime,c as getLocalDayKey,l as isMessageLocateScrollProtected,v as isMessageTailChangeFromOlderWindowTrim,k as isMessageViewportMeasurable,B as isMessageVisibleForNewMessageBadge,x as loadOlderUntilBoundary,p as refreshPrependMessageAnchorPosition,j as resolveCenteredMessageScrollTop,a as resolveDisplayTimestamp,g as resolveImThreadActiveDate,h as resolveMessageBodyKind,b as resolveMessageTimelineTimestamp,n as resolvePrependMessageAnchor,q as resolvePrependMessageAnchorAdjustment,o as resolvePrependMessageAnchorPosition,s as resolveSurvivingMessageAnchorAdjustment,r as resolveVisibleMessageAnchorPositions,t as shouldCompleteInitialViewport,y as shouldFillInitialHistoryViewport,u as shouldFollowIncomingMessage,z as shouldLoadNewerHistoryPage,m as shouldPrefetchOlderHistory,w as shouldRestoreMessageViewportFocus,d as shouldShowChatDateSeparator,A as shouldTrackRemoteMessageForBadge}from'./chunk-HJYSLPY4.js';export{a as DEFAULT_LOCALE,k as createImI18n,f as formatFailure,h as formatLastMessageSummary,i as formatMediaPlaceholder,j as formatMentionAll,l as formatServiceText,g as formatSystemMessage,c as getImTimeCatalog,b as normalizeImLocale,d as registerImCatalogOverrides,e as resetImCatalogOverrides}from'./chunk-2R4KVYRU.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-OUXI5ZYL.js';export{Za as MediaTransferError,lb as createVoicePlayer,mb as createVoiceRecordingSession,jb as detectVoiceCapabilities,_a as mediaTransferErrorCodeOf,ab as normalizeMediaUploadCredentials,kb as voiceErrorCodeOf}from'./chunk-KV7I2SAC.js';export{Na as EDIT_WINDOW_MS,q as MEDIA_ALBUM_CAPTION_MAX_LENGTH,r as MEDIA_ALBUM_MAX_ITEMS,Sa as REACTION_SUPPORTED_CONTENT_TYPES,Ta as canReactToMessage,Ra as canTransmit,Pa as canTransmitByType,Qa as canTransmitContent,y as classifyStickerImageType,Ca as createImTextSearchMatcher,Aa as extractSearchText,Ba as getImTextSearchInitial,Mb as parseSessionFavoriteAlbumItems,Pb as parseSessionFavoriteFileItems,Oa as requiresForwardTypeConfirmation,Va as resolveChannelAccess,s as resolveMediaAlbumSendContentType,Nb as resolveSessionFavoriteAlbumCaption,Lb as resolveSessionFavoriteAlbumItemPreviewUrl,Ha as resolveTextSegments,_a as sortSessions,$a as sumSessionsUnread}from'./chunk-Q6TFPZMF.js';import'./chunk-WOT6VMZA.js';
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* K2 H5 crypto wasm 暴露给业务层的稳定能力集合。
|
|
3
|
+
* 该接口不包含任何 Node/Nitro 文件系统逻辑,浏览器和服务端 loader 都应返回同一组方法。
|
|
4
|
+
*/
|
|
5
|
+
interface CryptoDriver {
|
|
6
|
+
/** 计算底层 wasm 实现的 MD5,返回值保持 wasm 原始大小写格式。 */
|
|
7
|
+
cryptMd5: (input: string) => string
|
|
8
|
+
/** 按 H5 上游接口约定生成请求签名。 */
|
|
9
|
+
generateSign: (
|
|
10
|
+
signType: string,
|
|
11
|
+
envType: string,
|
|
12
|
+
businessParams: Record<string, string>,
|
|
13
|
+
eTag?: string | null,
|
|
14
|
+
) => string
|
|
15
|
+
/** 使用 wasm 内置 AES 规则加密二进制 payload。 */
|
|
16
|
+
encryptAes: (payload: Uint8Array) => Uint8Array
|
|
17
|
+
/** 使用 wasm 内置 AES 规则解密二进制 payload。 */
|
|
18
|
+
decryptAes: (payload: Uint8Array) => Uint8Array
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 加载页面请求共用的 WASM 加解密实例。
|
|
23
|
+
*
|
|
24
|
+
* 此入口只依赖请求 crypto,不加载 IM 客户端、Chat Kit 或框架。普通业务可在首个请求前
|
|
25
|
+
* await 一次并保留返回的同步 driver;后续 IM Core 请求复用同一实例。导入入口本身不
|
|
26
|
+
* 请求 WASM,Node/SSR 可以安全解析它;加载失败会向调用方传播。
|
|
27
|
+
*/
|
|
28
|
+
declare function loadBrowserCryptoDriver(): Promise<CryptoDriver>;
|
|
29
|
+
|
|
30
|
+
export { loadBrowserCryptoDriver };
|
|
31
|
+
export type { CryptoDriver };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import'./chunk-WOT6VMZA.js';async function o(){return (await import('./browser-RTCHWSQ2.js')).loadBrowserCryptoDriver()}export{o as loadBrowserCryptoDriver};
|
package/dist/sdk.d.ts
CHANGED
|
@@ -120,7 +120,7 @@ type LastMessageSummary = {
|
|
|
120
120
|
} | {
|
|
121
121
|
kind: 'gift';
|
|
122
122
|
}
|
|
123
|
-
/** 直播间分享。`title`
|
|
123
|
+
/** 直播间分享。`title` 是房间标题,没有房间标题再用主播昵称。 */
|
|
124
124
|
| {
|
|
125
125
|
kind: 'liveRoom';
|
|
126
126
|
title?: string;
|
|
@@ -2781,6 +2781,8 @@ interface ImSdkErrorShape {
|
|
|
2781
2781
|
category: ImSdkErrorCategory;
|
|
2782
2782
|
operation: string;
|
|
2783
2783
|
retryable: boolean;
|
|
2784
|
+
/** 执行设施已终止;宿主可在保存草稿后提供用户主动整页刷新,不得自动重试。 */
|
|
2785
|
+
recovery?: 'reload-app';
|
|
2784
2786
|
conversation?: ConversationRef;
|
|
2785
2787
|
details?: Readonly<Record<string, unknown>>;
|
|
2786
2788
|
cause?: unknown;
|
|
@@ -4107,8 +4109,11 @@ type ConversationLastMessageSummary = {
|
|
|
4107
4109
|
kind: 'transfer';
|
|
4108
4110
|
} | {
|
|
4109
4111
|
kind: 'gift';
|
|
4110
|
-
}
|
|
4112
|
+
}
|
|
4113
|
+
/** 直播间分享。`title` 是房间标题,没有房间标题再用主播昵称。 */
|
|
4114
|
+
| {
|
|
4111
4115
|
kind: 'liveRoom';
|
|
4116
|
+
title?: string;
|
|
4112
4117
|
} | {
|
|
4113
4118
|
kind: 'redPacket';
|
|
4114
4119
|
} | {
|
|
@@ -4607,7 +4612,7 @@ interface ForwardMessagesResult {
|
|
|
4607
4612
|
* 只有 `sendText` 消费文本草稿;媒体、语音、文件、GIF 与名片拥有独立选择态,不清理 Composer 文本。
|
|
4608
4613
|
*/
|
|
4609
4614
|
interface ConversationMessageApi {
|
|
4610
|
-
/**
|
|
4615
|
+
/** 发送文本;单聊新文本固定加密,mention 与其他会话的加密方式由各自 sibling 决定。 */
|
|
4611
4616
|
sendText: (text: string, options?: TextMessageOptions) => Promise<SendMessageResult>;
|
|
4612
4617
|
/** 分享个人、普通群或社群名片;发送目标仍由当前 handle 的精确会话身份决定。 */
|
|
4613
4618
|
sendContact: (contact: ContactCardInput, options?: ContactMessageOptions) => Promise<SendMessageResult>;
|
|
@@ -5184,6 +5189,18 @@ interface ImMediaTasksApi {
|
|
|
5184
5189
|
file: Blob;
|
|
5185
5190
|
signal?: AbortSignal;
|
|
5186
5191
|
}) => Promise<Blob | null>;
|
|
5192
|
+
/**
|
|
5193
|
+
* 为本地图片生成仅供胶片条/相册格显示的缩略图,不上传、不写缓存、不改变发送文件与元信息。
|
|
5194
|
+
* JPEG 按文件签名识别,最长边最多 256px 且不放大,与发送预读共用账号的图片解码预算。
|
|
5195
|
+
* 其它格式直接返回原 Blob,保留透明与动画;宿主负责返回 Blob 的 object URL 生命周期。
|
|
5196
|
+
* 生成失败返回 null 并记录诊断;取消、账号失效和未装配能力保持明确错误。
|
|
5197
|
+
* @param input.file 原始本地图片;返回的显示资源不得代替它传入发送命令。
|
|
5198
|
+
* @param input.signal 删除文件、关闭预览或切换账号时取消请求。
|
|
5199
|
+
*/
|
|
5200
|
+
prepareLocalImageThumbnail: (input: {
|
|
5201
|
+
file: Blob;
|
|
5202
|
+
signal?: AbortSignal;
|
|
5203
|
+
}) => Promise<Blob | null>;
|
|
5187
5204
|
}
|
|
5188
5205
|
|
|
5189
5206
|
/**
|
package/dist/sdk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import'./chunk-IDECJJXC.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-
|
|
1
|
+
import'./chunk-IDECJJXC.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-OUXI5ZYL.js';export{Za as MediaTransferError,lb as createVoicePlayer,mb as createVoiceRecordingSession,jb as detectVoiceCapabilities,_a as mediaTransferErrorCodeOf,ab as normalizeMediaUploadCredentials,kb as voiceErrorCodeOf}from'./chunk-KV7I2SAC.js';export{Na as EDIT_WINDOW_MS,q as MEDIA_ALBUM_CAPTION_MAX_LENGTH,r as MEDIA_ALBUM_MAX_ITEMS,Sa as REACTION_SUPPORTED_CONTENT_TYPES,Ta as canReactToMessage,Ra as canTransmit,Pa as canTransmitByType,Qa as canTransmitContent,y as classifyStickerImageType,Ca as createImTextSearchMatcher,Aa as extractSearchText,Ba as getImTextSearchInitial,Mb as parseSessionFavoriteAlbumItems,Pb as parseSessionFavoriteFileItems,Oa as requiresForwardTypeConfirmation,Va as resolveChannelAccess,s as resolveMediaAlbumSendContentType,Nb as resolveSessionFavoriteAlbumCaption,Lb as resolveSessionFavoriteAlbumItemPreviewUrl,Ha as resolveTextSegments,_a as sortSessions,$a as sumSessionsUnread}from'./chunk-Q6TFPZMF.js';import'./chunk-WOT6VMZA.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "k2-im",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.52",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"publishConfig": {
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"./chat-kit/vue": {
|
|
37
37
|
"types": "./dist/chat-kit-vue.d.ts",
|
|
38
38
|
"import": "./dist/chat-kit-vue.js"
|
|
39
|
+
},
|
|
40
|
+
"./request-crypto": {
|
|
41
|
+
"types": "./dist/request-crypto.d.ts",
|
|
42
|
+
"import": "./dist/request-crypto.js"
|
|
39
43
|
}
|
|
40
44
|
},
|
|
41
45
|
"files": [
|
package/dist/browser-YLMJKRLM.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-WOT6VMZA.js';import {parse,isInteger,isSafeNumber}from'lossless-json';import Oe from'axios';function st(t){return {cryptMd5:t.crypt_md5,generateSign:t.generate_sign,encryptAes:t.encrypt_aes,decryptAes:t.decrypt_aes}}var j={};a$1(j,{__wbg_get_67b2ba62fc30de12:()=>Kt,__wbg_get_b9b93047fe3cf45b:()=>Xt,__wbg_length_e2d2a49132c1b256:()=>Qt,__wbg_ownKeys_3930041068756f1f:()=>Zt,__wbg_set_wasm:()=>K,__wbindgen_debug_string:()=>te,__wbindgen_init_externref_table:()=>ee,__wbindgen_is_object:()=>re,__wbindgen_string_get:()=>ne,__wbindgen_string_new:()=>oe,__wbindgen_throw:()=>se,crypt_md5:()=>Vt,decrypt_aes:()=>Gt,encrypt_aes:()=>Yt,generate_sign:()=>Jt});var a;function K(t){a=t;}function $t(t){let e=a.__externref_table_alloc();return a.__wbindgen_export_2.set(e,t),e}function it(t,e){try{return t.apply(this,e)}catch(r){let n=$t(r);a.__wbindgen_exn_store(n);}}function G(t){let e=typeof t;if(e=="number"||e=="boolean"||t==null)return `${t}`;if(e=="string")return `"${t}"`;if(e=="symbol"){let o=t.description;return o==null?"Symbol":`Symbol(${o})`}if(e=="function"){let o=t.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(t)){let o=t.length,s="[";o>0&&(s+=G(t[0]));for(let i=1;i<o;i++)s+=`, ${G(t[i])}`;return s+="]",s}let r=/\[object ([^\]]+)\]/.exec(toString.call(t)),n;if(r&&r.length>1)n=r[1];else return toString.call(t);if(n=="Object")try{return `Object(${JSON.stringify(t)})`}catch{return "Object"}return t instanceof Error?`${t.name}: ${t.message}
|
|
2
|
-
${t.stack}`:n}var m=0,L=null;function O(){return (L===null||L.byteLength===0)&&(L=new Uint8Array(a.memory.buffer)),L}var Ft=typeof TextEncoder>"u"?(0, module.require)("util").TextEncoder:TextEncoder,v=new Ft("utf-8"),qt=typeof v.encodeInto=="function"?function(t,e){return v.encodeInto(t,e)}:function(t,e){let r=v.encode(t);return e.set(r),{read:t.length,written:r.length}};function E(t,e,r){if(r===void 0){let u=v.encode(t),c=e(u.length,1)>>>0;return O().subarray(c,c+u.length).set(u),m=u.length,c}let n=t.length,o=e(n,1)>>>0,s=O(),i=0;for(;i<n;i++){let u=t.charCodeAt(i);if(u>127)break;s[o+i]=u;}if(i!==n){i!==0&&(t=t.slice(i)),o=r(o,n,n=i+t.length*3,1)>>>0;let u=O().subarray(o+i,o+n),c=qt(t,u);i+=c.written,o=r(o,n,i,1)>>>0;}return m=i,o}var I=null;function N(){return (I===null||I.buffer.detached===true||I.buffer.detached===void 0&&I.buffer!==a.memory.buffer)&&(I=new DataView(a.memory.buffer)),I}function at(t){return t==null}var Wt=typeof TextDecoder>"u"?(0, module.require)("util").TextDecoder:TextDecoder,ct=new Wt("utf-8",{ignoreBOM:true,fatal:true});ct.decode();function H(t,e){return t=t>>>0,ct.decode(O().subarray(t,t+e))}function Vt(t){let e,r;try{let n=E(t,a.__wbindgen_malloc,a.__wbindgen_realloc),o=m,s=a.crypt_md5(n,o);return e=s[0],r=s[1],H(s[0],s[1])}finally{a.__wbindgen_free(e,r,1);}}function zt(t){let e=a.__wbindgen_export_2.get(t);return a.__externref_table_dealloc(t),e}function Jt(t,e,r,n){let o,s;try{let i=E(t,a.__wbindgen_malloc,a.__wbindgen_realloc),u=m,c=E(e,a.__wbindgen_malloc,a.__wbindgen_realloc),f=m,l=at(n)?0:E(n,a.__wbindgen_malloc,a.__wbindgen_realloc),p=m,d=a.generate_sign(i,u,c,f,r,l,p),b=d[0],g=d[1];if(d[3])throw b=0,g=0,zt(d[2]);return o=b,s=g,H(b,g)}finally{a.__wbindgen_free(o,s,1);}}function ut(t,e){let r=e(t.length*1,1)>>>0;return O().set(t,r/1),m=t.length,r}function lt(t,e){return t=t>>>0,O().subarray(t/1,t/1+e)}function Yt(t){let e=ut(t,a.__wbindgen_malloc),r=m,n=a.encrypt_aes(e,r),o=lt(n[0],n[1]).slice();return a.__wbindgen_free(n[0],n[1]*1,1),o}function Gt(t){let e=ut(t,a.__wbindgen_malloc),r=m,n=a.decrypt_aes(e,r),o=lt(n[0],n[1]).slice();return a.__wbindgen_free(n[0],n[1]*1,1),o}function Kt(){return it((t,e)=>Reflect.get(t,e),arguments)}function Xt(t,e){return t[e>>>0]}function Qt(t){return t.length}function Zt(){return it(t=>Reflect.ownKeys(t),arguments)}function te(t,e){let r=G(e),n=E(r,a.__wbindgen_malloc,a.__wbindgen_realloc),o=m;N().setInt32(t+4,o,true),N().setInt32(t+0,n,true);}function ee(){let t=a.__wbindgen_export_2,e=t.grow(4);t.set(0,void 0),t.set(e+0,void 0),t.set(e+1,null),t.set(e+2,true),t.set(e+3,false);}function re(t){let e=t;return typeof e=="object"&&e!==null}function ne(t,e){let r=e,n=typeof r=="string"?r:void 0,o=at(n)?0:E(n,a.__wbindgen_malloc,a.__wbindgen_realloc),s=m;N().setInt32(t+4,s,true),N().setInt32(t+0,o,true);}function oe(t,e){return H(t,e)}function se(t,e){throw new Error(H(t,e))}var pt=null,$=null;async function ie(){let t=await fetch(new URL("./vendor/crypto/index_bg.wasm",import.meta.url));if(!t.ok)throw new Error(`crypto wasm \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${t.status}`);let e={"./index_bg.js":j},r;if(typeof WebAssembly.instantiateStreaming=="function")try{r=await WebAssembly.instantiateStreaming(t.clone(),e);}catch{r=await WebAssembly.instantiate(await t.arrayBuffer(),e);}else r=await WebAssembly.instantiate(await t.arrayBuffer(),e);return K(r.instance.exports),r.instance.exports.__wbindgen_start(),st(j)}async function X(){return $||($=ie().catch(t=>{throw $=null,t})),pt=await $,pt}await X();var ft="b097f885e9577cdb04d9faf91aa08329";function ae(t){return Object.keys(t).sort((r,n)=>r.localeCompare(n,void 0,{numeric:true})).map(r=>r+t[r]).join("")}function dt(t,e){let r=ae(e);return t.cryptMd5(ft+r+ft).toUpperCase()}var gt="123456789";var mt={core:"/api/h5",wallet:"/api/h5",bi:"/bi/h5",im:""};function pe(t){return isInteger(t)?isSafeNumber(t)?Number.parseInt(t,10):t:Number.parseFloat(t)}function F(t){return parse(t,void 0,{parseNumber:pe})}var bt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";function _t(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function yt(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Object.fromEntries(Object.entries(t).map(([e,r])=>[e,Array.isArray(r)?r.join(", "):String(r)])):{}}function Pt(t,e){let r=e.toLowerCase();return Object.entries(t).find(([o])=>o.toLowerCase()===r)?.[1]??null}function M(t,e=2){return t.toString().padStart(e,"0")}function wt(t){return `${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())} ${M(t.getHours())}:${M(t.getMinutes())}:${M(t.getSeconds())}`}function de(t){if(t!=null)return typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"||typeof t=="bigint"?String(t):t&&typeof t=="object"?JSON.stringify(t):String(t)}function Tt(t){let e={};for(let[r,n]of Object.entries(t)){let o=de(n);o!==void 0&&(e[r]=o);}return e}function At(t=16){let e="";for(let r=0;r<t;r+=1){let n=Math.floor(Math.random()*bt.length);e+=bt.charAt(n);}return e}function Rt(t){let e={deviceBrand:"web",deviceInfo:"web",deviceNumber:"",deviceToken:"web"},r=t||(typeof navigator<"u"?navigator.userAgent:"");if(!r)return e;let n=r.match(/(Chrome|Firefox|Safari|Edg)\/([\d.]+)/i);return n?{deviceBrand:"web",deviceInfo:`${n[1]}/${n[2]}`,deviceNumber:n[2]??"",deviceToken:"web"}:{...e,deviceInfo:r}}function ht(t){let e=String(t||"").trim().toLowerCase();return e==="cn"||e.startsWith("zh-cn")?"cn":e==="tc"||e.startsWith("zh-tw")||e.startsWith("zh-hk")?"tc":e==="vn"||e.startsWith("vi")?"vn":e==="th"||e.startsWith("th")?"th":e==="en"||e.startsWith("en")?"en":"cn"}function h(t,e){return {baseUrl:e?.baseUrl??"",prefix:e?.prefix??mt[t]}}function ge(t){return t.replace(/^\/+|\/+$/g,"")}function xt(t,e,r){let n=t.replace(/\/+$/g,""),o=ge(e),s=r.startsWith("/")?r:`/${r}`,i=o?`/${o}`:"";return `${n}${i}${s}`}function Ct(t,e){let r=new URLSearchParams(Object.entries(e).map(([u,c])=>[u,String(c)])).toString();if(!r)return t;let n=t.indexOf("#"),o=n>=0?t.slice(0,n):t,s=n>=0?t.slice(n):"",i=o.includes("?")?o.endsWith("?")||o.endsWith("&")?"":"&":"?";return `${o}${i}${r}${s}`}function Q(t){return !!t&&t.toLowerCase().includes("application/json")}function Z(t){return !!t&&t.toLowerCase().startsWith("text/")}function k(t){return t==null?new Uint8Array:typeof t=="string"?new TextEncoder().encode(t):t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new TextEncoder().encode(JSON.stringify(t))}function q(t){return typeof t=="string"?t:new TextDecoder().decode(k(t))}function It(t){return typeof FormData<"u"&&t instanceof FormData}var Pe=new Set(["content-etag","token","req-id"]);function St(t){let e=t.rawBody,r=e!==null&&typeof e=="object"&&"code"in e?e.code:void 0;return {transportStatus:t.transportStatus,...t.httpStatus===void 0?{}:{httpStatus:t.httpStatus},...typeof r=="number"&&Number.isFinite(r)?{businessCode:r}:{}}}function we(t){return Number.isInteger(t)&&t>=400&&t<=599?t:502}function Te(t,e){return {code:t.status,msg:t.statusText,data:null,time:Math.floor(e/1e3)}}function Ae(t,e){return {code:502,msg:t instanceof Error?t.message:String(t),data:null,time:Math.floor(e/1e3)}}function Re(t){if(!t||typeof t!="object")return false;let e=t;return Number.isFinite(e.code)&&"data"in e}function Et(t,e,r,n){if(Q(r))return F(q(e.data));if(Z(r))return q(e.data);let o=k(e.data),s=n?t.crypto.decryptAes(o):o,i=new TextDecoder().decode(s);return F(i)}async function Dt(t,e,r){if(!t.onDebugRecord)return;let n={...e.meta,response:e.response,...r?{error:{name:r instanceof Error?r.name:void 0,message:r instanceof Error?r.message:String(r)}}:{}};try{await t.onDebugRecord(n);}catch{}}function he(t,e,r,n,o){if(r.customUrl)return t;let s=h(n,e.config.targets[n]),i=r.baseUrl??s.baseUrl;return xt(i,o,t)}function xe(t,e){let r=new AbortController,n=setTimeout(()=>r.abort(),t),o=()=>r.abort();return e&&(e.aborted?r.abort():e.addEventListener("abort",o,{once:true})),{signal:r.signal,dispose:()=>{clearTimeout(n),e?.removeEventListener("abort",o);}}}async function Ce(t,e,r,n,o,s,i){let u=yt(e.headers),c=Pt(u,"content-type");if(e.status<200||e.status>=300){let l;if(n)l=void 0;else try{l=Et(t,e,c,r);}catch{l=void 0;}return {response:Re(l)?l:Te(e,i),meta:{...o,transportStatus:"http_error",httpStatus:e.status,contentType:c,responseHeaders:u,...l!==void 0?{rawBody:l}:{},timings:{totalMs:i-s,upstreamMs:i-s}}}}let f=Date.now();if(n){let l=k(e.data),p=Date.now();return {response:{code:e.status,data:l,time:Math.floor(p/1e3)},meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:l,timings:{totalMs:p-s,upstreamMs:i-s,parseMs:p-f}}}}try{if(Q(c)){let T=Et(t,e,c,!1),_=Date.now();return {response:T,meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:T,timings:{totalMs:_-s,upstreamMs:i-s,parseMs:_-f}}}}if(Z(c)){let T=q(e.data),_=Date.now();return {response:{code:e.status,msg:e.statusText,data:T,time:Math.floor(_/1e3)},meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:T,timings:{totalMs:_-s,upstreamMs:i-s,parseMs:_-f}}}}let l=k(e.data),p=Date.now(),d=r?t.crypto.decryptAes(l):l,b=Date.now(),g=new TextDecoder().decode(d),D=F(g),B=Date.now();return {response:D,meta:{...o,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:u,rawBody:D,timings:{totalMs:B-s,upstreamMs:i-s,parseMs:B-f,...r?{decryptMs:b-p}:{}}}}}catch(l){let p=Date.now();return {response:{code:we(e.status),msg:l instanceof Error?l.message:String(l),data:null,time:Math.floor(p/1e3)},meta:{...o,transportStatus:"invalid_response",httpStatus:e.status,contentType:c,responseHeaders:u,timings:{totalMs:p-s,upstreamMs:i-s,parseMs:p-f}}}}}function Ie(t){return async function(r,n={}){let o=t.now??(()=>new Date),s=t.randomNonce??(()=>gt),i=t.randomRequestId??(()=>`req-${crypto.randomUUID().replaceAll("-","")}`),u=t.randomETag??(()=>At()),c=(n.method??"POST").toUpperCase(),f=n.target??"core",l=h(f,t.config.targets[f]),p=n.prefix??l.prefix??"",d=n.body!=null,b=Tt(n.data??{}),g=r==="/v1/feedback"&&p==="/bi/h5",D=g?false:n.encrypt??!d,B=g?false:n.sign??!d,T=o(),_=u(),tt=i(),Ut=n.token??await t.getToken?.()??"",Lt=ht(n.locale??t.getLocale?.()),S=t.getBrowserInfo?.()??Rt(n.userAgent),W={app_id:"5",os_type:"4",app_version:t.config.appVersion,sign_method:"md5",timestamp:wt(T),nonce:s()},y={...W,...b},V=W,et=b,x=y;!g&&B&&(y.sign=t.crypto.generateSign("api",t.config.envType,y,_),W.sign=y.sign);let vt={app_version:t.config.appVersion,"X-ENC-VERSION":t.config.appVersion,"X-APP-TYPE":"h5","Client-type":"2","Content-ETag":_,"brand-id":t.config.brandId,"channel-id":n.channelId||t.config.channelId,device_brand:S.deviceBrand,device_info:S.deviceInfo,device_number:S.deviceNumber,device_token:S.deviceToken,lang:Lt,"mch-id":t.config.merchantId,"req-id":tt,token:Ut},Nt=_t(n.headers),Ht=Object.fromEntries(Object.entries(Nt).filter(([A])=>!Pe.has(A.toLowerCase()))),z=r,C,P={...vt,...Ht};if(d)C=n.body??void 0,V=null,et=n.data??null,x=n.data??null;else if(g){let A=String(T.getTime()),w={"app-id":"1","app-version":t.config.appVersion,"sys-type":"h5","sys-version":S.deviceNumber,time:A};V=w,P={...P,...w,sign:dt(t.crypto,w),"Content-Type":"application/json"},C=JSON.stringify(b),x=b;}else c==="GET"?(z=Ct(z,y),x=y):D?(C=t.crypto.encryptAes(new TextEncoder().encode(JSON.stringify(y))),P["Content-Type"]=P["Content-Type"]||"application/octet-stream",x=y):(C=JSON.stringify(y),P["Content-Type"]=P["Content-Type"]||"application/json",x=y);It(C)&&delete P["Content-Type"];let J=he(z,t,n,f,p),Y=Date.now(),rt=n.timeoutMs??6e4,nt=xe(rt,n.signal),ot={requestId:tt,eTag:_,method:c,upstreamUrl:J,requestHeaders:P,requestCommonParams:V,requestBusinessParams:et,requestParams:x},U;try{let A=await t.transport({url:J,method:c,headers:P,body:C,signal:nt.signal,timeoutMs:rt,onUploadProgress:n.onUploadProgress}),w=Date.now(),R=await Ce(t,A,D&&!g,n.responseMode==="raw",ot,Y,w);return n.onResponse&&(U=St(R.meta),R.observation=U),await Dt(t,R),!n.skipBusinessResponseHandler&&t.onBusinessResponse&&await t.onBusinessResponse(R.response,{request:{path:r,method:c,target:f,url:J},options:n}),R}catch(A){let w=Date.now(),R={response:Ae(A,w),...U===void 0?{}:{observation:U},meta:{...ot,transportStatus:"network_error",timings:{totalMs:w-Y,upstreamMs:w-Y}}};return await Dt(t,R,A),R}finally{nt.dispose();}}}function Mt(t){let e=Ie(t);return async function(n,o={}){let s=await e(n,o);return await o.onResponse?.(s.observation??St(s.meta)),s.response}}function kt(t={}){let e={core:h("core",{baseUrl:t.coreBaseUrl||"",...t.targets?.core}),wallet:h("wallet",{baseUrl:t.walletBaseUrl||"",...t.targets?.wallet}),bi:h("bi",{baseUrl:t.biBaseUrl||"",...t.targets?.bi}),im:h("im",{baseUrl:t.imBaseUrl||"",...t.targets?.im})};return {appVersion:t.appVersion||"",brandId:t.brandId||"",merchantId:t.merchantId||"",channelId:t.channelId||"",envType:t.envType||"prod",targets:e}}function Bt(t={}){let e=t.axios??Oe.create();return async r=>{let n=await e.request({url:r.url,method:r.method,headers:r.headers,data:r.body,signal:r.signal,timeout:r.timeoutMs,onUploadProgress:r.onUploadProgress?o=>{let s=typeof o.progress=="number"?o.progress:typeof o.total=="number"&&o.total>0?o.loaded/o.total:void 0;r.onUploadProgress?.({loaded:o.loaded,...typeof o.total=="number"?{total:o.total}:{},...typeof s=="number"?{progress:s}:{},event:o});}:void 0,responseType:"arraybuffer",transformResponse:o=>o,validateStatus:()=>true});return {status:n.status,statusText:n.statusText,headers:n.headers,data:n.data}}}async function Xe(t={}){let e=await X(),r=kt(t.config);return Mt({...t,config:r,crypto:e,transport:t.transport??Bt()})}export{Xe as createBrowserApiProtocolClient};
|