zcw-shared 2.23.3 → 2.24.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/constants/api.d.ts +4 -0
- package/dist/constants/api.js +5 -0
- package/dist/constants/api.js.map +1 -0
- package/dist/functions/ai/applyLlmExtraBody.d.ts +3 -0
- package/dist/functions/ai/applyLlmExtraBody.js +34 -0
- package/dist/functions/ai/applyLlmExtraBody.js.map +1 -0
- package/dist/functions/ai/buildOpenAiChatCompletionsRequestBody.d.ts +9 -0
- package/dist/functions/ai/buildOpenAiChatCompletionsRequestBody.js +32 -0
- package/dist/functions/ai/buildOpenAiChatCompletionsRequestBody.js.map +1 -0
- package/dist/functions/ai/buildResolvedLlmToolsList.d.ts +14 -0
- package/dist/functions/ai/buildResolvedLlmToolsList.js +29 -0
- package/dist/functions/ai/buildResolvedLlmToolsList.js.map +1 -0
- package/dist/functions/ai/catalogLinkMode.d.ts +3 -0
- package/dist/functions/ai/catalogLinkMode.js +9 -0
- package/dist/functions/ai/catalogLinkMode.js.map +1 -0
- package/dist/functions/ai/createSyntheticAgentEmail.d.ts +4 -0
- package/dist/functions/ai/createSyntheticAgentEmail.js +4 -0
- package/dist/functions/ai/createSyntheticAgentEmail.js.map +1 -0
- package/dist/functions/ai/isValidMcpToolWirePayload.d.ts +2 -0
- package/dist/functions/ai/isValidMcpToolWirePayload.js +16 -0
- package/dist/functions/ai/isValidMcpToolWirePayload.js.map +1 -0
- package/dist/functions/ai/mcpUpstreamAuthHeaders.d.ts +4 -0
- package/dist/functions/ai/mcpUpstreamAuthHeaders.js +28 -0
- package/dist/functions/ai/mcpUpstreamAuthHeaders.js.map +1 -0
- package/dist/functions/ai/normalizeAiAgentReplyFormat.d.ts +3 -0
- package/dist/functions/ai/normalizeAiAgentReplyFormat.js +13 -0
- package/dist/functions/ai/normalizeAiAgentReplyFormat.js.map +1 -0
- package/dist/functions/ai/normalizeAiAttachmentPayloadFormat.d.ts +2 -0
- package/dist/functions/ai/normalizeAiAttachmentPayloadFormat.js +11 -0
- package/dist/functions/ai/normalizeAiAttachmentPayloadFormat.js.map +1 -0
- package/dist/functions/ai/normalizeMcpToolsWireFormat.d.ts +4 -0
- package/dist/functions/ai/normalizeMcpToolsWireFormat.js +13 -0
- package/dist/functions/ai/normalizeMcpToolsWireFormat.js.map +1 -0
- package/dist/functions/ai/normalizeToolProcessEnv.d.ts +4 -0
- package/dist/functions/ai/normalizeToolProcessEnv.js +25 -0
- package/dist/functions/ai/normalizeToolProcessEnv.js.map +1 -0
- package/dist/functions/ai/pickToolChoiceFromAgentToolsConfig.d.ts +1 -0
- package/dist/functions/ai/pickToolChoiceFromAgentToolsConfig.js +12 -0
- package/dist/functions/ai/pickToolChoiceFromAgentToolsConfig.js.map +1 -0
- package/dist/functions/ai/toolCatalogInlineEnv.d.ts +10 -0
- package/dist/functions/ai/toolCatalogInlineEnv.js +37 -0
- package/dist/functions/ai/toolCatalogInlineEnv.js.map +1 -0
- package/dist/functions/android/integrateFacebookLogin.js +1 -1
- package/dist/functions/android/integrateGoogleLogin.js +1 -1
- package/dist/functions/android/integrateMiuiLogin.js +1 -1
- package/dist/functions/android/integrateQQLogin.js +1 -1
- package/dist/functions/android/integrateShareTrace.js +1 -1
- package/dist/functions/android/integrateSinaLogin.js +1 -1
- package/dist/functions/android/integrateThirdPartyModule.js +1 -1
- package/dist/functions/android/integrateUniAppNativePlugin.js +1 -1
- package/dist/functions/android/integrateUniPushAndroid.js +1 -1
- package/dist/functions/android/integrateUniverifyLogin.js +1 -1
- package/dist/functions/android/integrateWechatLogin.js +1 -1
- package/dist/functions/android/integrateWechatShare.js +1 -1
- package/dist/functions/android/permission.js +1 -1
- package/dist/functions/api/apiErrorMessageFrom.d.ts +1 -0
- package/dist/functions/api/apiErrorMessageFrom.js +8 -0
- package/dist/functions/api/apiErrorMessageFrom.js.map +1 -0
- package/dist/functions/api/buildApiUrl.d.ts +2 -0
- package/dist/functions/api/buildApiUrl.js +11 -0
- package/dist/functions/api/buildApiUrl.js.map +1 -0
- package/dist/functions/api/createApiClient.d.ts +25 -0
- package/dist/functions/api/createApiClient.js +100 -0
- package/dist/functions/api/createApiClient.js.map +1 -0
- package/dist/functions/api/createApiErrorHandler.d.ts +18 -0
- package/dist/functions/api/createApiErrorHandler.js +39 -0
- package/dist/functions/api/createApiErrorHandler.js.map +1 -0
- package/dist/functions/api/createDefaultApiErrorHandler.d.ts +2 -0
- package/dist/functions/api/createDefaultApiErrorHandler.js +9 -0
- package/dist/functions/api/createDefaultApiErrorHandler.js.map +1 -0
- package/dist/functions/api/createFormDataApiUpload.d.ts +26 -0
- package/dist/functions/api/createFormDataApiUpload.js +107 -0
- package/dist/functions/api/createFormDataApiUpload.js.map +1 -0
- package/dist/functions/api/createInFlightFetchCoalescer.d.ts +4 -0
- package/dist/functions/api/createInFlightFetchCoalescer.js +22 -0
- package/dist/functions/api/createInFlightFetchCoalescer.js.map +1 -0
- package/dist/functions/api/createPublicAuthRequest.d.ts +14 -0
- package/dist/functions/api/createPublicAuthRequest.js +26 -0
- package/dist/functions/api/createPublicAuthRequest.js.map +1 -0
- package/dist/functions/api/createSpaBuildApiUrl.d.ts +2 -0
- package/dist/functions/api/createSpaBuildApiUrl.js +15 -0
- package/dist/functions/api/createSpaBuildApiUrl.js.map +1 -0
- package/dist/functions/api/estimateFormDataMultipartBodyBytes.d.ts +6 -0
- package/dist/functions/api/estimateFormDataMultipartBodyBytes.js +20 -0
- package/dist/functions/api/estimateFormDataMultipartBodyBytes.js.map +1 -0
- package/dist/functions/api/getUseMockFromSearch.d.ts +6 -0
- package/dist/functions/api/getUseMockFromSearch.js +9 -0
- package/dist/functions/api/getUseMockFromSearch.js.map +1 -0
- package/dist/functions/api/putSignedUploadWithProgress.d.ts +16 -0
- package/dist/functions/api/putSignedUploadWithProgress.js +41 -0
- package/dist/functions/api/putSignedUploadWithProgress.js.map +1 -0
- package/dist/functions/api/putXhrUploadWithProgress.d.ts +15 -0
- package/dist/functions/api/putXhrUploadWithProgress.js +28 -0
- package/dist/functions/api/putXhrUploadWithProgress.js.map +1 -0
- package/dist/functions/api/responseFromXhr.d.ts +12 -0
- package/dist/functions/api/responseFromXhr.js +9 -0
- package/dist/functions/api/responseFromXhr.js.map +1 -0
- package/dist/functions/api/unwrapApiJsonBody.d.ts +3 -0
- package/dist/functions/api/unwrapApiJsonBody.js +7 -0
- package/dist/functions/api/unwrapApiJsonBody.js.map +1 -0
- package/dist/functions/async/cachedAsync.js +1 -1
- package/dist/functions/auth/createAuthRecovery.d.ts +13 -0
- package/dist/functions/auth/createAuthRecovery.js +49 -0
- package/dist/functions/auth/createAuthRecovery.js.map +1 -0
- package/dist/functions/auth/createAuthStorageEnvironment.d.ts +17 -0
- package/dist/functions/auth/createAuthStorageEnvironment.js +29 -0
- package/dist/functions/auth/createAuthStorageEnvironment.js.map +1 -0
- package/dist/functions/auth/createAuthTokenStorage.d.ts +33 -0
- package/dist/functions/auth/createAuthTokenStorage.js +112 -0
- package/dist/functions/auth/createAuthTokenStorage.js.map +1 -0
- package/dist/functions/auth/createLoginRedirectAuthRecovery.d.ts +6 -0
- package/dist/functions/auth/createLoginRedirectAuthRecovery.js +14 -0
- package/dist/functions/auth/createLoginRedirectAuthRecovery.js.map +1 -0
- package/dist/functions/auth/createTokenManagerAuthStorageAdapter.d.ts +3 -0
- package/dist/functions/auth/createTokenManagerAuthStorageAdapter.js +59 -0
- package/dist/functions/auth/createTokenManagerAuthStorageAdapter.js.map +1 -0
- package/dist/functions/auth/createTokenManagerRuntime.d.ts +22 -0
- package/dist/functions/auth/createTokenManagerRuntime.js +61 -0
- package/dist/functions/auth/createTokenManagerRuntime.js.map +1 -0
- package/dist/functions/auth/createTokenRefreshGate.d.ts +4 -0
- package/dist/functions/auth/createTokenRefreshGate.js +13 -0
- package/dist/functions/auth/createTokenRefreshGate.js.map +1 -0
- package/dist/functions/auth/permissionSatisfies.js +1 -1
- package/dist/functions/auth/permissionSatisfies.js.map +1 -1
- package/dist/functions/browser/detectAppSafeAreaProfile.d.ts +16 -0
- package/dist/functions/browser/detectAppSafeAreaProfile.js +22 -0
- package/dist/functions/browser/detectAppSafeAreaProfile.js.map +1 -0
- package/dist/functions/browser/shortcutModKeyHint.js +1 -1
- package/dist/functions/cloudDisk/cloudDiskFileCategories.d.ts +6 -0
- package/dist/functions/cloudDisk/cloudDiskFileCategories.js +8 -0
- package/dist/functions/cloudDisk/cloudDiskFileCategories.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskFilePreviewUi.d.ts +4 -0
- package/dist/functions/cloudDisk/cloudDiskFilePreviewUi.js +23 -0
- package/dist/functions/cloudDisk/cloudDiskFilePreviewUi.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskIconConstants.d.ts +6 -0
- package/dist/functions/cloudDisk/cloudDiskIconConstants.js +7 -0
- package/dist/functions/cloudDisk/cloudDiskIconConstants.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskListContextMenuSpecs.d.ts +6 -0
- package/dist/functions/cloudDisk/cloudDiskListContextMenuSpecs.js +54 -0
- package/dist/functions/cloudDisk/cloudDiskListContextMenuSpecs.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskNodeDragPayload.d.ts +5 -0
- package/dist/functions/cloudDisk/cloudDiskNodeDragPayload.js +20 -0
- package/dist/functions/cloudDisk/cloudDiskNodeDragPayload.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskNodeUi.d.ts +19 -0
- package/dist/functions/cloudDisk/cloudDiskNodeUi.js +170 -0
- package/dist/functions/cloudDisk/cloudDiskNodeUi.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskPrivacyCrypto.d.ts +5 -0
- package/dist/functions/cloudDisk/cloudDiskPrivacyCrypto.js +39 -0
- package/dist/functions/cloudDisk/cloudDiskPrivacyCrypto.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskPrivateFolderTree.d.ts +4 -0
- package/dist/functions/cloudDisk/cloudDiskPrivateFolderTree.js +28 -0
- package/dist/functions/cloudDisk/cloudDiskPrivateFolderTree.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskUniappFileIcon.d.ts +2 -0
- package/dist/functions/cloudDisk/cloudDiskUniappFileIcon.js +27 -0
- package/dist/functions/cloudDisk/cloudDiskUniappFileIcon.js.map +1 -0
- package/dist/functions/cloudDisk/cloudDiskUploadTaskUi.d.ts +3 -0
- package/dist/functions/cloudDisk/cloudDiskUploadTaskUi.js +26 -0
- package/dist/functions/cloudDisk/cloudDiskUploadTaskUi.js.map +1 -0
- package/dist/functions/cloudDisk/mapCloudDiskFileToNode.d.ts +2 -0
- package/dist/functions/cloudDisk/mapCloudDiskFileToNode.js +21 -0
- package/dist/functions/cloudDisk/mapCloudDiskFileToNode.js.map +1 -0
- package/dist/functions/code/index.js +1 -1
- package/dist/functions/color/convertColor.js +4 -4
- package/dist/functions/color/detectColorFormat.js +3 -3
- package/dist/functions/color/extractColors.js +2 -2
- package/dist/functions/design-tokens/buildTokens.js +3 -3
- package/dist/functions/dom/computePosition.js +2 -2
- package/dist/functions/dom/copyHtmlAndPlainToClipboard.js +1 -1
- package/dist/functions/dom/createSharedKeyboardCenter.js +1 -1
- package/dist/functions/dom/detectOverflow.js +1 -1
- package/dist/functions/dom/getCrossAxisFlip.js +2 -2
- package/dist/functions/dom/getFlipPlacements.js +2 -2
- package/dist/functions/dom/getMainAxisFlip.js +2 -2
- package/dist/functions/download/createDownloadDispatcher.d.ts +16 -0
- package/dist/functions/download/createDownloadDispatcher.js +31 -0
- package/dist/functions/download/createDownloadDispatcher.js.map +1 -0
- package/dist/functions/download/downloadInBrowser.d.ts +14 -0
- package/dist/functions/download/downloadInBrowser.js +56 -0
- package/dist/functions/download/downloadInBrowser.js.map +1 -0
- package/dist/functions/download/downloadInBrowserResolved.d.ts +12 -0
- package/dist/functions/download/downloadInBrowserResolved.js +47 -0
- package/dist/functions/download/downloadInBrowserResolved.js.map +1 -0
- package/dist/functions/fake/generateFakeDrivingLicense.js +1 -1
- package/dist/functions/fake/generateFakeIdCard.js +1 -1
- package/dist/functions/file/getIconfontNameByExtension.js +6 -1
- package/dist/functions/file/getIconfontNameByExtension.js.map +1 -1
- package/dist/functions/file/guessMimeTypeFromFileName.d.ts +1 -0
- package/dist/functions/file/guessMimeTypeFromFileName.js +9 -0
- package/dist/functions/file/guessMimeTypeFromFileName.js.map +1 -0
- package/dist/functions/file/index.d.ts +4 -0
- package/dist/functions/file/index.js +8 -4
- package/dist/functions/file/index.js.map +1 -1
- package/dist/functions/file/isJpegImageFile.d.ts +4 -0
- package/dist/functions/file/isJpegImageFile.js +12 -0
- package/dist/functions/file/isJpegImageFile.js.map +1 -0
- package/dist/functions/file/isRasterImageFile.d.ts +3 -0
- package/dist/functions/file/isRasterImageFile.js +26 -0
- package/dist/functions/file/isRasterImageFile.js.map +1 -0
- package/dist/functions/file/mediaProbePathFromUrl.d.ts +1 -0
- package/dist/functions/file/mediaProbePathFromUrl.js +17 -0
- package/dist/functions/file/mediaProbePathFromUrl.js.map +1 -0
- package/dist/functions/file/resolveFileMimeType.d.ts +5 -0
- package/dist/functions/file/resolveFileMimeType.js +8 -0
- package/dist/functions/file/resolveFileMimeType.js.map +1 -0
- package/dist/functions/file/sanitizeDownloadFilename.d.ts +6 -0
- package/dist/functions/file/sanitizeDownloadFilename.js +20 -0
- package/dist/functions/file/sanitizeDownloadFilename.js.map +1 -0
- package/dist/functions/file/suggestFilenameFromUrl.d.ts +1 -0
- package/dist/functions/file/suggestFilenameFromUrl.js +23 -0
- package/dist/functions/file/suggestFilenameFromUrl.js.map +1 -0
- package/dist/functions/hybrid/createBridgeMessage.js +1 -1
- package/dist/functions/im/chatMessageList.d.ts +15 -0
- package/dist/functions/im/chatMessageList.js +201 -0
- package/dist/functions/im/chatMessageList.js.map +1 -0
- package/dist/functions/im/chatMessageSocialActions.d.ts +3 -0
- package/dist/functions/im/chatMessageSocialActions.js +23 -0
- package/dist/functions/im/chatMessageSocialActions.js.map +1 -0
- package/dist/functions/im/classifyAgentProxyRetryable.d.ts +4 -0
- package/dist/functions/im/classifyAgentProxyRetryable.js +18 -0
- package/dist/functions/im/classifyAgentProxyRetryable.js.map +1 -0
- package/dist/functions/im/forwardBundleItemToChatMessage.d.ts +3 -0
- package/dist/functions/im/forwardBundleItemToChatMessage.js +129 -0
- package/dist/functions/im/forwardBundleItemToChatMessage.js.map +1 -0
- package/dist/functions/im/imAccountKind.d.ts +3 -0
- package/dist/functions/im/imAccountKind.js +7 -0
- package/dist/functions/im/imAccountKind.js.map +1 -0
- package/dist/functions/im/imAiChatSessionTitle.d.ts +2 -0
- package/dist/functions/im/imAiChatSessionTitle.js +16 -0
- package/dist/functions/im/imAiChatSessionTitle.js.map +1 -0
- package/dist/functions/im/imApiMessageMerge.d.ts +2 -0
- package/dist/functions/im/imApiMessageMerge.js +71 -0
- package/dist/functions/im/imApiMessageMerge.js.map +1 -0
- package/dist/functions/im/imApiResponseParse.d.ts +2 -0
- package/dist/functions/im/imApiResponseParse.js +35 -0
- package/dist/functions/im/imApiResponseParse.js.map +1 -0
- package/dist/functions/im/imBubbleSelectionClipboard.js +2 -2
- package/dist/functions/im/imChatContextMenuSpecs.d.ts +10 -0
- package/dist/functions/im/imChatContextMenuSpecs.js +45 -0
- package/dist/functions/im/imChatContextMenuSpecs.js.map +1 -0
- package/dist/functions/im/imChatInlineAttachmentDisplay.d.ts +16 -0
- package/dist/functions/im/imChatInlineAttachmentDisplay.js +53 -0
- package/dist/functions/im/imChatInlineAttachmentDisplay.js.map +1 -0
- package/dist/functions/im/imChatInlineAttachmentKind.d.ts +5 -0
- package/dist/functions/im/imChatInlineAttachmentKind.js +24 -0
- package/dist/functions/im/imChatInlineAttachmentKind.js.map +1 -0
- package/dist/functions/im/imChatMessageContextMenuCopy.d.ts +3 -0
- package/dist/functions/im/imChatMessageContextMenuCopy.js +34 -0
- package/dist/functions/im/imChatMessageContextMenuCopy.js.map +1 -0
- package/dist/functions/im/imChatMessageCopyPlain.d.ts +5 -0
- package/dist/functions/im/imChatMessageCopyPlain.js +71 -0
- package/dist/functions/im/imChatMessageCopyPlain.js.map +1 -0
- package/dist/functions/im/imChatMessageInbound.d.ts +9 -0
- package/dist/functions/im/imChatMessageInbound.js +94 -0
- package/dist/functions/im/imChatMessageInbound.js.map +1 -0
- package/dist/functions/im/imChatMessageLayout.d.ts +3 -0
- package/dist/functions/im/imChatMessageLayout.js +4 -0
- package/dist/functions/im/imChatMessageLayout.js.map +1 -0
- package/dist/functions/im/imChatMessageMap.d.ts +13 -0
- package/dist/functions/im/imChatMessageMap.js +62 -0
- package/dist/functions/im/imChatMessageMap.js.map +1 -0
- package/dist/functions/im/imChatMessageMediaAsset.d.ts +5 -0
- package/dist/functions/im/imChatMessageMediaAsset.js +32 -0
- package/dist/functions/im/imChatMessageMediaAsset.js.map +1 -0
- package/dist/functions/im/imChatMessagePagination.d.ts +18 -0
- package/dist/functions/im/imChatMessagePagination.js +153 -0
- package/dist/functions/im/imChatMessagePagination.js.map +1 -0
- package/dist/functions/im/imChatMessageTime.d.ts +2 -0
- package/dist/functions/im/imChatMessageTime.js +24 -0
- package/dist/functions/im/imChatMessageTime.js.map +1 -0
- package/dist/functions/im/imChatViewContextMenu.d.ts +12 -0
- package/dist/functions/im/imChatViewContextMenu.js +91 -0
- package/dist/functions/im/imChatViewContextMenu.js.map +1 -0
- package/dist/functions/im/imClientMessageId.d.ts +1 -0
- package/dist/functions/im/imClientMessageId.js +4 -0
- package/dist/functions/im/imClientMessageId.js.map +1 -0
- package/dist/functions/im/imCodeProjectPath.d.ts +6 -0
- package/dist/functions/im/imCodeProjectPath.js +29 -0
- package/dist/functions/im/imCodeProjectPath.js.map +1 -0
- package/dist/functions/im/imComposerDraft.d.ts +3 -0
- package/dist/functions/im/imComposerDraft.js +30 -0
- package/dist/functions/im/imComposerDraft.js.map +1 -0
- package/dist/functions/im/imComposerToolbar.d.ts +5 -0
- package/dist/functions/im/imComposerToolbar.js +80 -0
- package/dist/functions/im/imComposerToolbar.js.map +1 -0
- package/dist/functions/im/imContactDisplay.d.ts +5 -0
- package/dist/functions/im/imContactDisplay.js +30 -0
- package/dist/functions/im/imContactDisplay.js.map +1 -0
- package/dist/functions/im/imContactIndexLetter.d.ts +7 -0
- package/dist/functions/im/imContactIndexLetter.js +62 -0
- package/dist/functions/im/imContactIndexLetter.js.map +1 -0
- package/dist/functions/im/imConversationAdminIds.d.ts +2 -0
- package/dist/functions/im/imConversationAdminIds.js +11 -0
- package/dist/functions/im/imConversationAdminIds.js.map +1 -0
- package/dist/functions/im/imConversationDisplay.d.ts +9 -0
- package/dist/functions/im/imConversationDisplay.js +50 -0
- package/dist/functions/im/imConversationDisplay.js.map +1 -0
- package/dist/functions/im/imConversationDraftHighlight.d.ts +1 -0
- package/dist/functions/im/imConversationDraftHighlight.js +10 -0
- package/dist/functions/im/imConversationDraftHighlight.js.map +1 -0
- package/dist/functions/im/imConversationHistoryFilter.d.ts +18 -0
- package/dist/functions/im/imConversationHistoryFilter.js +144 -0
- package/dist/functions/im/imConversationHistoryFilter.js.map +1 -0
- package/dist/functions/im/imConversationId.d.ts +7 -0
- package/dist/functions/im/imConversationId.js +28 -0
- package/dist/functions/im/imConversationId.js.map +1 -0
- package/dist/functions/im/imConversationLastMessageMerge.d.ts +2 -0
- package/dist/functions/im/imConversationLastMessageMerge.js +29 -0
- package/dist/functions/im/imConversationLastMessageMerge.js.map +1 -0
- package/dist/functions/im/imConversationListHighlights.d.ts +21 -0
- package/dist/functions/im/imConversationListHighlights.js +144 -0
- package/dist/functions/im/imConversationListHighlights.js.map +1 -0
- package/dist/functions/im/imConversationListOnlinePresence.d.ts +4 -0
- package/dist/functions/im/imConversationListOnlinePresence.js +23 -0
- package/dist/functions/im/imConversationListOnlinePresence.js.map +1 -0
- package/dist/functions/im/imConversationListOutboundContext.d.ts +6 -0
- package/dist/functions/im/imConversationListOutboundContext.js +70 -0
- package/dist/functions/im/imConversationListOutboundContext.js.map +1 -0
- package/dist/functions/im/imConversationListSummary.d.ts +21 -0
- package/dist/functions/im/imConversationListSummary.js +87 -0
- package/dist/functions/im/imConversationListSummary.js.map +1 -0
- package/dist/functions/im/imConversationParty.d.ts +4 -0
- package/dist/functions/im/imConversationParty.js +10 -0
- package/dist/functions/im/imConversationParty.js.map +1 -0
- package/dist/functions/im/imConversationRowFields.d.ts +3 -0
- package/dist/functions/im/imConversationRowFields.js +23 -0
- package/dist/functions/im/imConversationRowFields.js.map +1 -0
- package/dist/functions/im/imConversationServerTime.d.ts +8 -0
- package/dist/functions/im/imConversationServerTime.js +59 -0
- package/dist/functions/im/imConversationServerTime.js.map +1 -0
- package/dist/functions/im/imConversationToChatViewUi.d.ts +21 -0
- package/dist/functions/im/imConversationToChatViewUi.js +69 -0
- package/dist/functions/im/imConversationToChatViewUi.js.map +1 -0
- package/dist/functions/im/imDesktopMachineExtra.d.ts +5 -0
- package/dist/functions/im/imDesktopMachineExtra.js +32 -0
- package/dist/functions/im/imDesktopMachineExtra.js.map +1 -0
- package/dist/functions/im/imDesktopNotificationContent.d.ts +29 -0
- package/dist/functions/im/imDesktopNotificationContent.js +65 -0
- package/dist/functions/im/imDesktopNotificationContent.js.map +1 -0
- package/dist/functions/im/imDexieMessageId.d.ts +2 -0
- package/dist/functions/im/imDexieMessageId.js +30 -0
- package/dist/functions/im/imDexieMessageId.js.map +1 -0
- package/dist/functions/im/imDisplayExtra.d.ts +11 -0
- package/dist/functions/im/imDisplayExtra.js +130 -0
- package/dist/functions/im/imDisplayExtra.js.map +1 -0
- package/dist/functions/im/imForwardBundlePreviewText.d.ts +1 -0
- package/dist/functions/im/imForwardBundlePreviewText.js +10 -0
- package/dist/functions/im/imForwardBundlePreviewText.js.map +1 -0
- package/dist/functions/im/imForwardBundleTitle.d.ts +5 -0
- package/dist/functions/im/imForwardBundleTitle.js +32 -0
- package/dist/functions/im/imForwardBundleTitle.js.map +1 -0
- package/dist/functions/im/imForwardSnapshot.d.ts +18 -0
- package/dist/functions/im/imForwardSnapshot.js +264 -0
- package/dist/functions/im/imForwardSnapshot.js.map +1 -0
- package/dist/functions/im/imForwardSnapshotMentions.d.ts +7 -0
- package/dist/functions/im/imForwardSnapshotMentions.js +76 -0
- package/dist/functions/im/imForwardSnapshotMentions.js.map +1 -0
- package/dist/functions/im/imImagePixelExtra.d.ts +24 -0
- package/dist/functions/im/imImagePixelExtra.js +52 -0
- package/dist/functions/im/imImagePixelExtra.js.map +1 -0
- package/dist/functions/im/imInlineContentTokens.js +1 -1
- package/dist/functions/im/imInlineMediaUrlVideo.d.ts +4 -0
- package/dist/functions/im/imInlineMediaUrlVideo.js +14 -0
- package/dist/functions/im/imInlineMediaUrlVideo.js.map +1 -0
- package/dist/functions/im/imLlmContextExtra.d.ts +2 -0
- package/dist/functions/im/imLlmContextExtra.js +37 -0
- package/dist/functions/im/imLlmContextExtra.js.map +1 -0
- package/dist/functions/im/imLlmContextLabel.d.ts +2 -0
- package/dist/functions/im/imLlmContextLabel.js +32 -0
- package/dist/functions/im/imLlmContextLabel.js.map +1 -0
- package/dist/functions/im/imLocalMessageId.d.ts +4 -0
- package/dist/functions/im/imLocalMessageId.js +18 -0
- package/dist/functions/im/imLocalMessageId.js.map +1 -0
- package/dist/functions/im/imLooseMessageRow.d.ts +3 -0
- package/dist/functions/im/imLooseMessageRow.js +88 -0
- package/dist/functions/im/imLooseMessageRow.js.map +1 -0
- package/dist/functions/im/imMediaExtra.d.ts +11 -0
- package/dist/functions/im/imMediaExtra.js +71 -0
- package/dist/functions/im/imMediaExtra.js.map +1 -0
- package/dist/functions/im/imMemberIdsInput.d.ts +1 -0
- package/dist/functions/im/imMemberIdsInput.js +9 -0
- package/dist/functions/im/imMemberIdsInput.js.map +1 -0
- package/dist/functions/im/imMentionAllowedUserIds.d.ts +15 -0
- package/dist/functions/im/imMentionAllowedUserIds.js +47 -0
- package/dist/functions/im/imMentionAllowedUserIds.js.map +1 -0
- package/dist/functions/im/imMessageExtraRecord.d.ts +7 -0
- package/dist/functions/im/imMessageExtraRecord.js +13 -0
- package/dist/functions/im/imMessageExtraRecord.js.map +1 -0
- package/dist/functions/im/imMessageHistoryWindow.d.ts +17 -0
- package/dist/functions/im/imMessageHistoryWindow.js +117 -0
- package/dist/functions/im/imMessageHistoryWindow.js.map +1 -0
- package/dist/functions/im/imMessageId.d.ts +8 -0
- package/dist/functions/im/imMessageId.js +35 -0
- package/dist/functions/im/imMessageId.js.map +1 -0
- package/dist/functions/im/imMessageIdForApiDelete.d.ts +2 -0
- package/dist/functions/im/imMessageIdForApiDelete.js +14 -0
- package/dist/functions/im/imMessageIdForApiDelete.js.map +1 -0
- package/dist/functions/im/imMessageListActivity.d.ts +5 -0
- package/dist/functions/im/imMessageListActivity.js +52 -0
- package/dist/functions/im/imMessageListActivity.js.map +1 -0
- package/dist/functions/im/imMessageListOps.d.ts +5 -0
- package/dist/functions/im/imMessageListOps.js +51 -0
- package/dist/functions/im/imMessageListOps.js.map +1 -0
- package/dist/functions/im/imMessageListSummaryBody.d.ts +16 -0
- package/dist/functions/im/imMessageListSummaryBody.js +174 -0
- package/dist/functions/im/imMessageListSummaryBody.js.map +1 -0
- package/dist/functions/im/imMessageNormalize.d.ts +14 -0
- package/dist/functions/im/imMessageNormalize.js +220 -0
- package/dist/functions/im/imMessageNormalize.js.map +1 -0
- package/dist/functions/im/imMessageToChatMessage.d.ts +9 -0
- package/dist/functions/im/imMessageToChatMessage.js +190 -0
- package/dist/functions/im/imMessageToChatMessage.js.map +1 -0
- package/dist/functions/im/imOutboundListSummary.d.ts +12 -0
- package/dist/functions/im/imOutboundListSummary.js +106 -0
- package/dist/functions/im/imOutboundListSummary.js.map +1 -0
- package/dist/functions/im/imOutboundMediaHelpers.d.ts +4 -0
- package/dist/functions/im/imOutboundMediaHelpers.js +22 -0
- package/dist/functions/im/imOutboundMediaHelpers.js.map +1 -0
- package/dist/functions/im/imOutboundPatch.d.ts +5 -0
- package/dist/functions/im/imOutboundPatch.js +61 -0
- package/dist/functions/im/imOutboundPatch.js.map +1 -0
- package/dist/functions/im/imOutboundStatus.d.ts +4 -0
- package/dist/functions/im/imOutboundStatus.js +15 -0
- package/dist/functions/im/imOutboundStatus.js.map +1 -0
- package/dist/functions/im/imPendingOpenConversation.d.ts +3 -0
- package/dist/functions/im/imPendingOpenConversation.js +14 -0
- package/dist/functions/im/imPendingOpenConversation.js.map +1 -0
- package/dist/functions/im/imPlaceholderSnippet.d.ts +2 -0
- package/dist/functions/im/imPlaceholderSnippet.js +13 -0
- package/dist/functions/im/imPlaceholderSnippet.js.map +1 -0
- package/dist/functions/im/imProxyAgentContent.d.ts +8 -0
- package/dist/functions/im/imProxyAgentContent.js +56 -0
- package/dist/functions/im/imProxyAgentContent.js.map +1 -0
- package/dist/functions/im/imProxyAgentDiagnostics.d.ts +16 -0
- package/dist/functions/im/imProxyAgentDiagnostics.js +70 -0
- package/dist/functions/im/imProxyAgentDiagnostics.js.map +1 -0
- package/dist/functions/im/imProxyAgentMessage.d.ts +23 -0
- package/dist/functions/im/imProxyAgentMessage.js +146 -0
- package/dist/functions/im/imProxyAgentMessage.js.map +1 -0
- package/dist/functions/im/imProxySelfIdentityTemplate.d.ts +13 -0
- package/dist/functions/im/imProxySelfIdentityTemplate.js +34 -0
- package/dist/functions/im/imProxySelfIdentityTemplate.js.map +1 -0
- package/dist/functions/im/imQuotePreview.d.ts +13 -0
- package/dist/functions/im/imQuotePreview.js +156 -0
- package/dist/functions/im/imQuotePreview.js.map +1 -0
- package/dist/functions/im/imReplyExtra.d.ts +3 -0
- package/dist/functions/im/imReplyExtra.js +26 -0
- package/dist/functions/im/imReplyExtra.js.map +1 -0
- package/dist/functions/im/imRichClipboardPlain.js +1 -1
- package/dist/functions/im/imRichContentPlain.d.ts +3 -0
- package/dist/functions/im/imRichContentPlain.js +18 -0
- package/dist/functions/im/imRichContentPlain.js.map +1 -0
- package/dist/functions/im/imSendPayloadValidation.d.ts +6 -0
- package/dist/functions/im/imSendPayloadValidation.js +136 -0
- package/dist/functions/im/imSendPayloadValidation.js.map +1 -0
- package/dist/functions/im/imSnakeChatMessage.d.ts +5 -0
- package/dist/functions/im/imSnakeChatMessage.js +62 -0
- package/dist/functions/im/imSnakeChatMessage.js.map +1 -0
- package/dist/functions/im/imWalletExtra.d.ts +3 -0
- package/dist/functions/im/imWalletExtra.js +114 -0
- package/dist/functions/im/imWalletExtra.js.map +1 -0
- package/dist/functions/im/index.d.ts +81 -0
- package/dist/functions/im/index.js +85 -4
- package/dist/functions/im/index.js.map +1 -1
- package/dist/functions/im/mapAgentToImProxyItem.d.ts +21 -0
- package/dist/functions/im/mapAgentToImProxyItem.js +23 -0
- package/dist/functions/im/mapAgentToImProxyItem.js.map +1 -0
- package/dist/functions/im/validateImPeerInput.d.ts +8 -0
- package/dist/functions/im/validateImPeerInput.js +14 -0
- package/dist/functions/im/validateImPeerInput.js.map +1 -0
- package/dist/functions/image/compressImageToWidth.js +1 -1
- package/dist/functions/image/compressImageToWidthJpgOrWebp.js +2 -2
- package/dist/functions/image/compressJpgToTargetSize.js +1 -1
- package/dist/functions/image/compressToTargetSizeJpg.js +1 -1
- package/dist/functions/image/compressToTargetSizeJpgOrWebp.js +2 -2
- package/dist/functions/image/generateMacIcons.js +2 -2
- package/dist/functions/image/generatePwaIcons.js +2 -2
- package/dist/functions/image/scaleDimensionsToMaxSide.d.ts +4 -0
- package/dist/functions/image/scaleDimensionsToMaxSide.js +14 -0
- package/dist/functions/image/scaleDimensionsToMaxSide.js.map +1 -0
- package/dist/functions/ios/configurePermissions.js +1 -1
- package/dist/functions/ios/integrateCameraGallery.js +1 -1
- package/dist/functions/ios/integrateNativePlugin.js +1 -1
- package/dist/functions/ios/integrateQQShare.js +1 -1
- package/dist/functions/ios/integrateSinaShare.js +1 -1
- package/dist/functions/ios/integrateThirdPartyModule.js +1 -1
- package/dist/functions/ios/integrateUniPushIOS.js +1 -1
- package/dist/functions/ios/integrateWechatOauth.js +1 -1
- package/dist/functions/ios/integrateWechatShare.js +1 -1
- package/dist/functions/llm/backfillReasoningInMessages.d.ts +3 -0
- package/dist/functions/llm/backfillReasoningInMessages.js +28 -0
- package/dist/functions/llm/backfillReasoningInMessages.js.map +1 -0
- package/dist/functions/llm/createLlmReasoningStore.d.ts +16 -0
- package/dist/functions/llm/createLlmReasoningStore.js +167 -0
- package/dist/functions/llm/createLlmReasoningStore.js.map +1 -0
- package/dist/functions/markdown/cwMarkdownAst.d.ts +68 -0
- package/dist/functions/markdown/cwMarkdownAst.js +2 -0
- package/dist/functions/markdown/cwMarkdownAst.js.map +1 -0
- package/dist/functions/markdown/markdownToSpeechPlainText.d.ts +5 -0
- package/dist/functions/markdown/markdownToSpeechPlainText.js +123 -0
- package/dist/functions/markdown/markdownToSpeechPlainText.js.map +1 -0
- package/dist/functions/markdown/parseGfmTable.d.ts +6 -0
- package/dist/functions/markdown/parseGfmTable.js +87 -0
- package/dist/functions/markdown/parseGfmTable.js.map +1 -0
- package/dist/functions/markdown/parseInline.d.ts +2 -0
- package/dist/functions/markdown/parseInline.js +227 -0
- package/dist/functions/markdown/parseInline.js.map +1 -0
- package/dist/functions/markdown/parseMarkdownBlocks.d.ts +2 -0
- package/dist/functions/markdown/parseMarkdownBlocks.js +197 -0
- package/dist/functions/markdown/parseMarkdownBlocks.js.map +1 -0
- package/dist/functions/observability/createObservabilityReporter.d.ts +29 -0
- package/dist/functions/observability/createObservabilityReporter.js +77 -0
- package/dist/functions/observability/createObservabilityReporter.js.map +1 -0
- package/dist/functions/observability/createObservabilityRingBuffer.d.ts +5 -0
- package/dist/functions/observability/createObservabilityRingBuffer.js +14 -0
- package/dist/functions/observability/createObservabilityRingBuffer.js.map +1 -0
- package/dist/functions/observability/isBenignObservabilityError.d.ts +2 -0
- package/dist/functions/observability/isBenignObservabilityError.js +17 -0
- package/dist/functions/observability/isBenignObservabilityError.js.map +1 -0
- package/dist/functions/observability/sanitizeApiPath.d.ts +1 -0
- package/dist/functions/observability/sanitizeApiPath.js +5 -0
- package/dist/functions/observability/sanitizeApiPath.js.map +1 -0
- package/dist/functions/oss/buildCosObjectKey.d.ts +1 -0
- package/dist/functions/oss/buildCosObjectKey.js +6 -0
- package/dist/functions/oss/buildCosObjectKey.js.map +1 -0
- package/dist/functions/oss/buildCosUnsignedObjectUrl.d.ts +7 -0
- package/dist/functions/oss/buildCosUnsignedObjectUrl.js +10 -0
- package/dist/functions/oss/buildCosUnsignedObjectUrl.js.map +1 -0
- package/dist/functions/oss/buildOssVideoPosterPath.d.ts +1 -0
- package/dist/functions/oss/buildOssVideoPosterPath.js +7 -0
- package/dist/functions/oss/buildOssVideoPosterPath.js.map +1 -0
- package/dist/functions/oss/buildTimestampedOssObjectPath.d.ts +1 -0
- package/dist/functions/oss/buildTimestampedOssObjectPath.js +10 -0
- package/dist/functions/oss/buildTimestampedOssObjectPath.js.map +1 -0
- package/dist/functions/oss/cosSliceUploadWithSts.d.ts +7 -0
- package/dist/functions/oss/cosSliceUploadWithSts.js +30 -0
- package/dist/functions/oss/cosSliceUploadWithSts.js.map +1 -0
- package/dist/functions/oss/createOssBrowserUploadClient.d.ts +5 -0
- package/dist/functions/oss/createOssBrowserUploadClient.js +5 -0
- package/dist/functions/oss/createOssBrowserUploadClient.js.map +1 -0
- package/dist/functions/oss/createOssSignedUploadApi.d.ts +20 -0
- package/dist/functions/oss/createOssSignedUploadApi.js +71 -0
- package/dist/functions/oss/createOssSignedUploadApi.js.map +1 -0
- package/dist/functions/oss/parseOssDownloadRequest.d.ts +9 -0
- package/dist/functions/oss/parseOssDownloadRequest.js +42 -0
- package/dist/functions/oss/parseOssDownloadRequest.js.map +1 -0
- package/dist/functions/oss/resolveOssUploadContentType.d.ts +2 -0
- package/dist/functions/oss/resolveOssUploadContentType.js +12 -0
- package/dist/functions/oss/resolveOssUploadContentType.js.map +1 -0
- package/dist/functions/oss/sanitizeOssObjectName.d.ts +1 -0
- package/dist/functions/oss/sanitizeOssObjectName.js +7 -0
- package/dist/functions/oss/sanitizeOssObjectName.js.map +1 -0
- package/dist/functions/oss/uploadBlobViaSignedPut.d.ts +21 -0
- package/dist/functions/oss/uploadBlobViaSignedPut.js +17 -0
- package/dist/functions/oss/uploadBlobViaSignedPut.js.map +1 -0
- package/dist/functions/oss/uploadOssFileFromBrowser.d.ts +11 -0
- package/dist/functions/oss/uploadOssFileFromBrowser.js +38 -0
- package/dist/functions/oss/uploadOssFileFromBrowser.js.map +1 -0
- package/dist/functions/path/index.js +4 -4
- package/dist/functions/performance/debounceWithCancel.d.ts +9 -0
- package/dist/functions/performance/debounceWithCancel.js +18 -0
- package/dist/functions/performance/debounceWithCancel.js.map +1 -0
- package/dist/functions/router/readRouteQuery.d.ts +4 -0
- package/dist/functions/router/readRouteQuery.js +14 -0
- package/dist/functions/router/readRouteQuery.js.map +1 -0
- package/dist/functions/software/findSoftware.js +1 -1
- package/dist/functions/string/caseConverter.js +1 -1
- package/dist/functions/string/similarity.js +1 -1
- package/dist/functions/tree/index.js +1 -1
- package/dist/functions/ui/materializeImUiContextMenuItems.d.ts +2 -0
- package/dist/functions/ui/materializeImUiContextMenuItems.js +17 -0
- package/dist/functions/ui/materializeImUiContextMenuItems.js.map +1 -0
- package/dist/functions/ui/resolveGalleryPreviewContextMenuEvent.d.ts +6 -0
- package/dist/functions/ui/resolveGalleryPreviewContextMenuEvent.js +9 -0
- package/dist/functions/ui/resolveGalleryPreviewContextMenuEvent.js.map +1 -0
- package/dist/functions/uniapp/api/index.js +10 -10
- package/dist/functions/uniapp/app-plus/buildAndroidApp.js +21 -21
- package/dist/functions/uniapp/app-plus/buildIOSApp.js +13 -13
- package/dist/functions/uniapp/camera/showCamera.js +3 -3
- package/dist/functions/uniapp/customer-service/showWxCustomerService.js +1 -1
- package/dist/functions/uniapp/file/showFile.js +3 -3
- package/dist/functions/uniapp/image/showImage.js +3 -3
- package/dist/functions/uniapp/login/showLogin.js +2 -2
- package/dist/functions/uniapp/parseManifest.js +1 -1
- package/dist/functions/uniapp/pay/showPay.js +3 -3
- package/dist/functions/uniapp/phone/showWxPhone.js +1 -1
- package/dist/functions/uniapp/platform.js +1 -1
- package/dist/functions/uniapp/record/showRecord.js +3 -3
- package/dist/functions/uniapp/scan-code/showScanCode.js +2 -2
- package/dist/functions/uniapp/subscribe-message/showWxSubscribeMessage.js +1 -1
- package/dist/functions/uniapp/video/showVideo.js +3 -3
- package/dist/functions/url/assetUrlGuards.d.ts +3 -0
- package/dist/functions/url/assetUrlGuards.js +19 -0
- package/dist/functions/url/assetUrlGuards.js.map +1 -0
- package/dist/functions/utils/generateExports.d.ts +2 -0
- package/dist/functions/utils/generateExports.js +9 -1
- package/dist/functions/utils/generateExports.js.map +1 -1
- package/dist/functions/utils/parseJsonObjectFromText.d.ts +1 -0
- package/dist/functions/utils/parseJsonObjectFromText.js +18 -0
- package/dist/functions/utils/parseJsonObjectFromText.js.map +1 -0
- package/dist/functions/validation/normalizeExternalId.d.ts +4 -0
- package/dist/functions/validation/normalizeExternalId.js +19 -0
- package/dist/functions/validation/normalizeExternalId.js.map +1 -0
- package/dist/functions/version/incrementVersion.js +1 -1
- package/dist/functions/vue/extractColorsFromVueFile.js +5 -5
- package/dist/functions/vue/extractColorsFromVueSection.js +1 -1
- package/dist/permissions/allPermissionCode.js.map +1 -1
- package/dist/permissions/catalog.d.ts +78 -4
- package/dist/permissions/catalog.js +283 -5
- package/dist/permissions/catalog.js.map +1 -1
- package/dist/permissions/definePermissionGroup.js.map +1 -1
- package/dist/permissions/groups.js.map +1 -1
- package/dist/reactive/useReactiveCookie.js +1 -1
- package/dist/schemas/auth.schema.d.ts +32 -32
- package/dist/schemas/video.schema.d.ts +80 -80
- package/dist/vue-hooks/browser/useBridgeMessage.js +2 -2
- package/dist/vue-hooks/browser/useWechatJSSDK.js +1 -1
- package/dist/vue-hooks/dom/useAutoUpdate.js +1 -1
- package/dist/vue-hooks/history/useDebouncedRefHistory.js +1 -1
- package/dist/vue-hooks/history/useRefHistory.js +1 -1
- package/dist/vue-hooks/worker/useWorkerPool.js +1 -1
- package/package.json +235 -18
- package/references/cos-js-sdk-v5.d.ts +36 -0
- package/references/crypto.d.ts +10 -0
- package/references/dom.d.ts +2 -0
- package/references/xhr.d.ts +11 -0
- package/types/agent-input-content.d.ts +12 -0
- package/types/ai-agent.d.ts +5 -0
- package/types/ai-mcp.d.ts +18 -0
- package/types/api-client.d.ts +35 -0
- package/types/app-safe-area.d.ts +9 -0
- package/types/cloud-disk.d.ts +82 -0
- package/types/download.d.ts +54 -0
- package/types/im-account-kind.d.ts +2 -0
- package/types/im-api.d.ts +3 -0
- package/types/im-chat.d.ts +14 -0
- package/types/im-code-project.d.ts +32 -0
- package/types/im-composer.d.ts +23 -0
- package/types/im-contact.d.ts +22 -0
- package/types/im-snake-chat.d.ts +33 -0
- package/types/llm-openai-wire.d.ts +1 -0
- package/types/observability.d.ts +39 -0
- package/types/oss-signed-upload.d.ts +68 -0
- package/dist/permissions/allPermissionCode.d.ts +0 -3
- package/dist/permissions/allPermissionCode.js +0 -14
- package/dist/permissions/definePermissionGroup.d.ts +0 -26
- package/dist/permissions/definePermissionGroup.js +0 -22
- package/dist/permissions/groups.d.ts +0 -50
- package/dist/permissions/groups.js +0 -251
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export function buildChatAttachmentPreviewContextMenuSpecs(hasImageSource, hasDownloadSource) {
|
|
2
|
+
const items = [];
|
|
3
|
+
if (hasImageSource) {
|
|
4
|
+
items.push({
|
|
5
|
+
key: 'copy-image',
|
|
6
|
+
label: '复制图片',
|
|
7
|
+
icon: 'fuzhi',
|
|
8
|
+
disabled: false,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
items.push({
|
|
12
|
+
key: 'download-attachment',
|
|
13
|
+
label: hasImageSource ? '下载图片' : '下载',
|
|
14
|
+
icon: 'xiazai',
|
|
15
|
+
disabled: !hasDownloadSource,
|
|
16
|
+
});
|
|
17
|
+
return items;
|
|
18
|
+
}
|
|
19
|
+
export function buildChatMarkdownImageContextMenuSpecs(isVideo, hasSrc) {
|
|
20
|
+
if (isVideo) {
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
key: 'download-video',
|
|
24
|
+
label: '下载视频',
|
|
25
|
+
icon: 'xiazai',
|
|
26
|
+
disabled: !hasSrc,
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
key: 'copy-image',
|
|
33
|
+
label: '复制图片',
|
|
34
|
+
icon: 'fuzhi',
|
|
35
|
+
disabled: !hasSrc,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
key: 'download-image',
|
|
39
|
+
label: '下载图片',
|
|
40
|
+
icon: 'xiazai',
|
|
41
|
+
disabled: !hasSrc,
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=imChatContextMenuSpecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatContextMenuSpecs.js","sourceRoot":"","sources":["../../../src/functions/im/imChatContextMenuSpecs.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,0CAA0C,CACxD,cAAuB,EACvB,iBAA0B;IAE1B,MAAM,KAAK,GAA8B,EAAE,CAAA;IAC3C,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC;QACT,GAAG,EAAE,qBAAqB;QAC1B,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACrC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,iBAAiB;KAC7B,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,OAAgB,EAChB,MAAe;IAEf,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL;gBACE,GAAG,EAAE,gBAAgB;gBACrB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM;aAClB;SACF,CAAA;IACH,CAAC;IACD,OAAO;QACL;YACE,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC,MAAM;SAClB;QACD;YACE,GAAG,EAAE,gBAAgB;YACrB,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,CAAC,MAAM;SAClB;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ChatInlineAttachmentListItem } from '../../../types/im-chat';
|
|
2
|
+
import { type ChatInlineAttachmentKind } from './imChatInlineAttachmentKind';
|
|
3
|
+
export type ChatInlineAttachmentGalleryItemSpec = {
|
|
4
|
+
key: string;
|
|
5
|
+
kind: ChatInlineAttachmentKind;
|
|
6
|
+
sourceIndex: number;
|
|
7
|
+
displayName: string;
|
|
8
|
+
mimeType: string;
|
|
9
|
+
objectUrl: string;
|
|
10
|
+
sizeBytes?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function chatInlineAttachmentDisplayName(item: ChatInlineAttachmentListItem, index: number): string;
|
|
13
|
+
export declare function isPreviewableChatInlineAttachmentUrl(url: string): boolean;
|
|
14
|
+
export declare function previewableInlineAttachmentGalleryIndex(items: readonly ChatInlineAttachmentListItem[], clickedIndex: number): number;
|
|
15
|
+
export declare function buildChatInlineAttachmentGallerySpecs(items: readonly ChatInlineAttachmentListItem[]): ChatInlineAttachmentGalleryItemSpec[];
|
|
16
|
+
export declare function inlineAttachmentDownloadKey(messageId: string, index: number): string;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { suggestFilenameFromUrl } from '../file/suggestFilenameFromUrl.js';
|
|
2
|
+
import { isInlinePreviewableAssetUrl } from '../url/assetUrlGuards.js';
|
|
3
|
+
import { inferChatInlineAttachmentKind, } from './imChatInlineAttachmentKind.js';
|
|
4
|
+
export function chatInlineAttachmentDisplayName(item, index) {
|
|
5
|
+
const n = item.name?.trim();
|
|
6
|
+
if (n)
|
|
7
|
+
return n;
|
|
8
|
+
return suggestFilenameFromUrl(item.url, `附件 ${index + 1}`);
|
|
9
|
+
}
|
|
10
|
+
export function isPreviewableChatInlineAttachmentUrl(url) {
|
|
11
|
+
return isInlinePreviewableAssetUrl(url.trim());
|
|
12
|
+
}
|
|
13
|
+
export function previewableInlineAttachmentGalleryIndex(items, clickedIndex) {
|
|
14
|
+
let galleryIndex = 0;
|
|
15
|
+
for (let i = 0; i < items.length; i++) {
|
|
16
|
+
const url = items[i].url?.trim() ?? '';
|
|
17
|
+
if (!isPreviewableChatInlineAttachmentUrl(url))
|
|
18
|
+
continue;
|
|
19
|
+
if (i === clickedIndex)
|
|
20
|
+
return galleryIndex;
|
|
21
|
+
galleryIndex++;
|
|
22
|
+
}
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
export function buildChatInlineAttachmentGallerySpecs(items) {
|
|
26
|
+
const galleryItems = [];
|
|
27
|
+
for (let index = 0; index < items.length; index++) {
|
|
28
|
+
const item = items[index];
|
|
29
|
+
const url = item.url?.trim() ?? '';
|
|
30
|
+
if (!isPreviewableChatInlineAttachmentUrl(url))
|
|
31
|
+
continue;
|
|
32
|
+
const name = chatInlineAttachmentDisplayName(item, index);
|
|
33
|
+
const kind = inferChatInlineAttachmentKind(item, name);
|
|
34
|
+
const mime = item.mimeType?.trim() ?? '';
|
|
35
|
+
const sizeBytes = item.size != null && Number.isFinite(item.size) && item.size >= 0
|
|
36
|
+
? Math.floor(item.size)
|
|
37
|
+
: undefined;
|
|
38
|
+
galleryItems.push({
|
|
39
|
+
key: `${url}::${index}`,
|
|
40
|
+
kind,
|
|
41
|
+
sourceIndex: index,
|
|
42
|
+
displayName: name,
|
|
43
|
+
mimeType: mime,
|
|
44
|
+
objectUrl: url,
|
|
45
|
+
...(sizeBytes != null ? { sizeBytes } : {}),
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return galleryItems;
|
|
49
|
+
}
|
|
50
|
+
export function inlineAttachmentDownloadKey(messageId, index) {
|
|
51
|
+
return `${String(messageId).trim()}:att:${index}`;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=imChatInlineAttachmentDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatInlineAttachmentDisplay.js","sourceRoot":"","sources":["../../../src/functions/im/imChatInlineAttachmentDisplay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EACL,6BAA6B,GAE9B,MAAM,8BAA8B,CAAA;AAYrC,MAAM,UAAU,+BAA+B,CAC7C,IAAkC,EAClC,KAAa;IAEb,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA;IAC3B,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACf,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,GAAW;IAC9D,OAAO,2BAA2B,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC;AAGD,MAAM,UAAU,uCAAuC,CACrD,KAA8C,EAC9C,YAAoB;IAEpB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACvC,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC;YAAE,SAAQ;QACxD,IAAI,CAAC,KAAK,YAAY;YAAE,OAAO,YAAY,CAAA;QAC3C,YAAY,EAAE,CAAA;IAChB,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAGD,MAAM,UAAU,qCAAqC,CACnD,KAA8C;IAE9C,MAAM,YAAY,GAA0C,EAAE,CAAA;IAC9D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAE,CAAA;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,oCAAoC,CAAC,GAAG,CAAC;YAAE,SAAQ;QACxD,MAAM,IAAI,GAAG,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACzD,MAAM,IAAI,GAAG,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACxC,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC,SAAS,CAAA;QACf,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE;YACvB,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,GAAG;YACd,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAGD,MAAM,UAAU,2BAA2B,CAAC,SAAiB,EAAE,KAAa;IAC1E,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,EAAE,CAAA;AACnD,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChatInlineAttachmentListItem } from '../../../types/im-chat';
|
|
2
|
+
export type ChatInlineAttachmentKind = 'image' | 'video' | 'file';
|
|
3
|
+
export declare function isChatInlineAttachmentImage(item: ChatInlineAttachmentListItem): boolean;
|
|
4
|
+
export declare function isChatInlineAttachmentVideo(item: ChatInlineAttachmentListItem, displayName: string): boolean;
|
|
5
|
+
export declare function inferChatInlineAttachmentKind(item: ChatInlineAttachmentListItem, displayName: string): ChatInlineAttachmentKind;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { isImageFile, isVideoFile } from '../file/inferMediaType.js';
|
|
2
|
+
import { mediaProbePathFromUrl } from '../file/mediaProbePathFromUrl.js';
|
|
3
|
+
export function isChatInlineAttachmentImage(item) {
|
|
4
|
+
if (isImageFile({ type: item.mimeType ?? '', name: item.name?.trim() || '' })) {
|
|
5
|
+
return true;
|
|
6
|
+
}
|
|
7
|
+
const path = mediaProbePathFromUrl(item.url);
|
|
8
|
+
return path ? isImageFile({ type: '', name: path }) : false;
|
|
9
|
+
}
|
|
10
|
+
export function isChatInlineAttachmentVideo(item, displayName) {
|
|
11
|
+
if (isVideoFile({ type: item.mimeType ?? '', name: displayName })) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
const path = mediaProbePathFromUrl(item.url);
|
|
15
|
+
return path ? isVideoFile({ type: '', name: path }) : false;
|
|
16
|
+
}
|
|
17
|
+
export function inferChatInlineAttachmentKind(item, displayName) {
|
|
18
|
+
if (isChatInlineAttachmentImage(item))
|
|
19
|
+
return 'image';
|
|
20
|
+
if (isChatInlineAttachmentVideo(item, displayName))
|
|
21
|
+
return 'video';
|
|
22
|
+
return 'file';
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=imChatInlineAttachmentKind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatInlineAttachmentKind.js","sourceRoot":"","sources":["../../../src/functions/im/imChatInlineAttachmentKind.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAIrE,MAAM,UAAU,2BAA2B,CACzC,IAAkC;IAElC,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,IAAkC,EAClC,WAAmB;IAEnB,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;QAClE,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAkC,EAClC,WAAmB;IAEnB,IAAI,2BAA2B,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAA;IACrD,IAAI,2BAA2B,CAAC,IAAI,EAAE,WAAW,CAAC;QAAE,OAAO,OAAO,CAAA;IAClE,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
2
|
+
export declare function chatMessageSupportsContextMenuCopy(m: ChatMessage, bubbleSelectionText?: string): boolean;
|
|
3
|
+
export declare function shouldCopyChatImageMessageAsPixels(m: Pick<ChatMessage, 'type' | 'content'>, selectionRangeCount: number, selectionPlain: string): boolean;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
function hasCopyableDisplaySpecText(m) {
|
|
2
|
+
const spec = m.displaySpec;
|
|
3
|
+
if (spec?.version !== 2 || !spec.blocks?.length)
|
|
4
|
+
return false;
|
|
5
|
+
return spec.blocks.some((b) => b.type === 'im.text' && String(b.props.content ?? '').trim().length > 0);
|
|
6
|
+
}
|
|
7
|
+
export function chatMessageSupportsContextMenuCopy(m, bubbleSelectionText) {
|
|
8
|
+
if (bubbleSelectionText?.trim())
|
|
9
|
+
return true;
|
|
10
|
+
if (m.type === 'forward_bundle')
|
|
11
|
+
return false;
|
|
12
|
+
if (m.type === 'file')
|
|
13
|
+
return false;
|
|
14
|
+
if (m.type === 'video')
|
|
15
|
+
return false;
|
|
16
|
+
const c = m.content?.trim() ?? '';
|
|
17
|
+
if (m.type === 'text' || m.type === 'markdown') {
|
|
18
|
+
return c.length > 0 || hasCopyableDisplaySpecText(m);
|
|
19
|
+
}
|
|
20
|
+
if (m.type === 'image' || m.type === 'voice') {
|
|
21
|
+
return c.length > 0;
|
|
22
|
+
}
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
export function shouldCopyChatImageMessageAsPixels(m, selectionRangeCount, selectionPlain) {
|
|
26
|
+
if (m.type !== 'image')
|
|
27
|
+
return false;
|
|
28
|
+
const trimmed = selectionPlain.trim();
|
|
29
|
+
if (selectionRangeCount === 0 || !trimmed)
|
|
30
|
+
return true;
|
|
31
|
+
const content = (m.content ?? '').trim();
|
|
32
|
+
return !!(content && trimmed === content);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=imChatMessageContextMenuCopy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageContextMenuCopy.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageContextMenuCopy.ts"],"names":[],"mappings":"AAEA,SAAS,0BAA0B,CAAC,CAAc;IAChD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,CAAA;IAC1B,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAA;IAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC/E,CAAA;AACH,CAAC;AAMD,MAAM,UAAU,kCAAkC,CAChD,CAAc,EACd,mBAA4B;IAE5B,IAAI,mBAAmB,EAAE,IAAI,EAAE;QAAE,OAAO,IAAI,CAAA;IAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,KAAK,CAAA;IAC7C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACnC,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACpC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACjC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,0BAA0B,CAAC,CAAC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7C,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAGD,MAAM,UAAU,kCAAkC,CAChD,CAAwC,EACxC,mBAA2B,EAC3B,cAAsB;IAEtB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;IACrC,IAAI,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACtD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACxC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
2
|
+
import type { ImMentionLabelResolver } from './imQuotePreview';
|
|
3
|
+
export declare function buildChatMessageCopyRichHtml(m: ChatMessage): string | null;
|
|
4
|
+
export declare function buildChatMessageCopyReadablePlainText(m: ChatMessage, resolveMentionLabel?: ImMentionLabelResolver): string;
|
|
5
|
+
export declare function buildChatMessageCopyPlainText(m: ChatMessage, resolveMentionLabel?: ImMentionLabelResolver): string;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { buildForwardBundleTitle } from './imForwardBundleTitle.js';
|
|
2
|
+
import { isImRichHtmlContent, sanitizeImRichContentHtml, } from './imRichContentHtml.js';
|
|
3
|
+
import { materializeImRichHtmlToReadablePlainText, materializeImRichHtmlToRestorablePlainTextForCopy, } from './imRichContentPlain.js';
|
|
4
|
+
function extractMessageRichHtml(m) {
|
|
5
|
+
const spec = m.displaySpec;
|
|
6
|
+
if (spec?.version === 2 && Array.isArray(spec.blocks) && spec.blocks.length > 0) {
|
|
7
|
+
const parts = [];
|
|
8
|
+
for (const b of spec.blocks) {
|
|
9
|
+
if (b.type === 'im.text' || b.type === 'im.markdown') {
|
|
10
|
+
const c = String(b.props.content ?? '').trim();
|
|
11
|
+
if (c)
|
|
12
|
+
parts.push(c);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
const joined = parts.join('\n').trim();
|
|
16
|
+
if (joined && isImRichHtmlContent(joined))
|
|
17
|
+
return joined;
|
|
18
|
+
}
|
|
19
|
+
const raw = (m.content ?? '').trim();
|
|
20
|
+
if (raw && isImRichHtmlContent(raw))
|
|
21
|
+
return raw;
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
function materializeBlockPlain(raw, resolveMentionLabel, mode) {
|
|
25
|
+
if (!isImRichHtmlContent(raw))
|
|
26
|
+
return raw;
|
|
27
|
+
return mode === 'restorable'
|
|
28
|
+
? materializeImRichHtmlToRestorablePlainTextForCopy(raw, resolveMentionLabel)
|
|
29
|
+
: materializeImRichHtmlToReadablePlainText(raw, resolveMentionLabel);
|
|
30
|
+
}
|
|
31
|
+
function buildChatMessageCopyPlainTextWithMode(m, resolveMentionLabel, mode) {
|
|
32
|
+
if (m.type === 'forward_bundle' && m.forwardBundle?.length) {
|
|
33
|
+
const title = buildForwardBundleTitle(m.forwardBundle);
|
|
34
|
+
const lines = m.forwardBundle.map((it) => {
|
|
35
|
+
const name = it.senderName.trim() || '未知';
|
|
36
|
+
const raw = it.snippet.trim() || it.content?.trim() || '[消息]';
|
|
37
|
+
return `${name}:${materializeBlockPlain(raw, resolveMentionLabel, mode)}`;
|
|
38
|
+
});
|
|
39
|
+
return [title, ...lines].join('\n');
|
|
40
|
+
}
|
|
41
|
+
const spec = m.displaySpec;
|
|
42
|
+
if (spec?.version === 2 && Array.isArray(spec.blocks) && spec.blocks.length > 0) {
|
|
43
|
+
const parts = [];
|
|
44
|
+
for (const b of spec.blocks) {
|
|
45
|
+
if (b.type === 'im.text' || b.type === 'im.markdown') {
|
|
46
|
+
const c = String(b.props.content ?? '').trim();
|
|
47
|
+
if (c)
|
|
48
|
+
parts.push(materializeBlockPlain(c, resolveMentionLabel, mode));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (parts.length > 0)
|
|
52
|
+
return parts.join('\n');
|
|
53
|
+
}
|
|
54
|
+
const raw = m.content ?? '';
|
|
55
|
+
if (!raw.trim())
|
|
56
|
+
return '';
|
|
57
|
+
return materializeBlockPlain(raw, resolveMentionLabel, mode);
|
|
58
|
+
}
|
|
59
|
+
export function buildChatMessageCopyRichHtml(m) {
|
|
60
|
+
const raw = extractMessageRichHtml(m);
|
|
61
|
+
if (!raw)
|
|
62
|
+
return null;
|
|
63
|
+
return sanitizeImRichContentHtml(raw);
|
|
64
|
+
}
|
|
65
|
+
export function buildChatMessageCopyReadablePlainText(m, resolveMentionLabel) {
|
|
66
|
+
return buildChatMessageCopyPlainTextWithMode(m, resolveMentionLabel, 'readable');
|
|
67
|
+
}
|
|
68
|
+
export function buildChatMessageCopyPlainText(m, resolveMentionLabel) {
|
|
69
|
+
return buildChatMessageCopyPlainTextWithMode(m, resolveMentionLabel, 'restorable');
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=imChatMessageCopyPlain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageCopyPlain.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageCopyPlain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
2
|
+
import type { ImMessage } from '../../../types/im-api';
|
|
3
|
+
export declare function extractAiReplyRunIdFromImMessage(msg: ImMessage): string | null;
|
|
4
|
+
export declare function mergePersistedAssistantReplyIntoChatMessages(list: ChatMessage[], persisted: ChatMessage, match: {
|
|
5
|
+
assistantSenderId: string;
|
|
6
|
+
runId?: string | null;
|
|
7
|
+
}): ChatMessage[];
|
|
8
|
+
export declare function applyIncomingImRowToChatMessages(list: ChatMessage[], persisted: ChatMessage, row: ImMessage, myUserId: string | null): ChatMessage[];
|
|
9
|
+
export declare function chatMessageToIm(cm: ChatMessage, conversationId: string): ImMessage | null;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { LOCAL_IM_MESSAGE_ID_PREFIX, isLocalImMessageId, localImMessageId, } from './imLocalMessageId.js';
|
|
2
|
+
import { aiStreamChatMessageId, isAiStreamChatMessageId, isServerPersistedImMessageId, } from './imMessageId.js';
|
|
3
|
+
import { upsertChatMessageInList } from './chatMessageList.js';
|
|
4
|
+
export function extractAiReplyRunIdFromImMessage(msg) {
|
|
5
|
+
const ar = msg.extra_data?.ai_reply;
|
|
6
|
+
if (!ar || typeof ar !== 'object' || Array.isArray(ar))
|
|
7
|
+
return null;
|
|
8
|
+
const runId = String(ar.run_id ?? '').trim();
|
|
9
|
+
return runId || null;
|
|
10
|
+
}
|
|
11
|
+
export function mergePersistedAssistantReplyIntoChatMessages(list, persisted, match) {
|
|
12
|
+
const idStr = String(persisted.id);
|
|
13
|
+
const senderId = match.assistantSenderId.trim();
|
|
14
|
+
if (!senderId)
|
|
15
|
+
return [...list, persisted];
|
|
16
|
+
if (list.some((m) => String(m.id) === idStr)) {
|
|
17
|
+
return list.filter((m) => {
|
|
18
|
+
if (!isAiStreamChatMessageId(m.id))
|
|
19
|
+
return true;
|
|
20
|
+
const runId = match.runId?.trim();
|
|
21
|
+
if (runId)
|
|
22
|
+
return m.id !== aiStreamChatMessageId(runId);
|
|
23
|
+
return String(m.sender?.id ?? '') !== senderId;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const runId = match.runId?.trim();
|
|
27
|
+
if (runId) {
|
|
28
|
+
const streamId = aiStreamChatMessageId(runId);
|
|
29
|
+
const idx = list.findIndex((m) => m.id === streamId);
|
|
30
|
+
if (idx !== -1) {
|
|
31
|
+
const next = list.slice();
|
|
32
|
+
next[idx] = persisted;
|
|
33
|
+
return next;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const streamIdx = list.findIndex((m) => isAiStreamChatMessageId(m.id) &&
|
|
37
|
+
String(m.sender?.id ?? '') === senderId);
|
|
38
|
+
if (streamIdx !== -1) {
|
|
39
|
+
const next = list.slice();
|
|
40
|
+
next[streamIdx] = persisted;
|
|
41
|
+
return next;
|
|
42
|
+
}
|
|
43
|
+
return [...list, persisted];
|
|
44
|
+
}
|
|
45
|
+
export function applyIncomingImRowToChatMessages(list, persisted, row, myUserId) {
|
|
46
|
+
const assistantSenderId = String(row.sender_id ?? '').trim();
|
|
47
|
+
const isAssistantPersistedReply = myUserId != null &&
|
|
48
|
+
assistantSenderId.length > 0 &&
|
|
49
|
+
assistantSenderId !== myUserId &&
|
|
50
|
+
isServerPersistedImMessageId(row.id);
|
|
51
|
+
if (isAssistantPersistedReply) {
|
|
52
|
+
return mergePersistedAssistantReplyIntoChatMessages(list, persisted, {
|
|
53
|
+
assistantSenderId,
|
|
54
|
+
runId: extractAiReplyRunIdFromImMessage(row),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return upsertChatMessageInList(list, persisted);
|
|
58
|
+
}
|
|
59
|
+
export function chatMessageToIm(cm, conversationId) {
|
|
60
|
+
if (!conversationId)
|
|
61
|
+
return null;
|
|
62
|
+
const trimmed = cm.id.trim();
|
|
63
|
+
if (!trimmed)
|
|
64
|
+
return null;
|
|
65
|
+
let id;
|
|
66
|
+
if (isLocalImMessageId(trimmed)) {
|
|
67
|
+
id = localImMessageId(cm.clientMessageId?.trim() || trimmed.slice(LOCAL_IM_MESSAGE_ID_PREFIX.length));
|
|
68
|
+
}
|
|
69
|
+
else if (/^-?[0-9]+$/.test(trimmed)) {
|
|
70
|
+
const n = Number(trimmed);
|
|
71
|
+
if (!Number.isFinite(n))
|
|
72
|
+
return null;
|
|
73
|
+
id = n;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
id = trimmed;
|
|
77
|
+
}
|
|
78
|
+
const st = cm.status === 'failed' || cm.status === 'sending' ? 'sent' : (cm.status ?? 'sent');
|
|
79
|
+
return {
|
|
80
|
+
id,
|
|
81
|
+
sender_id: cm.sender.id,
|
|
82
|
+
conversation_id: conversationId,
|
|
83
|
+
content: cm.content,
|
|
84
|
+
type: cm.type,
|
|
85
|
+
status: st,
|
|
86
|
+
client_sent_at: cm.clientSentAt ?? cm.timestamp.toISOString(),
|
|
87
|
+
server_sent_at: cm.serverSentAt,
|
|
88
|
+
created_at: cm.timestamp.toISOString(),
|
|
89
|
+
...(cm.clientMessageId?.trim()
|
|
90
|
+
? { client_message_id: cm.clientMessageId.trim() }
|
|
91
|
+
: {}),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=imChatMessageInbound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageInbound.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageInbound.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageLayout.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageLayout.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,wCAAwC,GAAG,GAAG,CAAA;AAG3D,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAGhD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
2
|
+
export declare function mapImTypeToChat(t: string): ChatMessage['type'];
|
|
3
|
+
export interface ChatStickerMetaFromExtra {
|
|
4
|
+
packId?: number;
|
|
5
|
+
stickerId?: number;
|
|
6
|
+
name?: string;
|
|
7
|
+
url?: string;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function parseStickerFromExtra(extra: Record<string, unknown> | undefined): ChatStickerMetaFromExtra;
|
|
12
|
+
export declare function readVoiceDurationSecFromExtra(extra: Record<string, unknown> | undefined): number | undefined;
|
|
13
|
+
export declare function imChatShortId(id: string): string;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { pickPositiveNumber } from './imImagePixelExtra.js';
|
|
2
|
+
export function mapImTypeToChat(t) {
|
|
3
|
+
if (t === 'forward_bundle')
|
|
4
|
+
return 'forward_bundle';
|
|
5
|
+
if (t === 'markdown')
|
|
6
|
+
return 'markdown';
|
|
7
|
+
if (t === 'sticker')
|
|
8
|
+
return 'sticker';
|
|
9
|
+
if (t === 'transfer')
|
|
10
|
+
return 'transfer';
|
|
11
|
+
if (t === 'red_envelope')
|
|
12
|
+
return 'red_envelope';
|
|
13
|
+
if (t === 'image' || t === 'file' || t === 'video')
|
|
14
|
+
return t;
|
|
15
|
+
if (t === 'audio')
|
|
16
|
+
return 'voice';
|
|
17
|
+
if (t === 'system')
|
|
18
|
+
return 'system';
|
|
19
|
+
return 'text';
|
|
20
|
+
}
|
|
21
|
+
export function parseStickerFromExtra(extra) {
|
|
22
|
+
if (!extra)
|
|
23
|
+
return {};
|
|
24
|
+
const raw = extra.sticker;
|
|
25
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
26
|
+
return {};
|
|
27
|
+
const rec = raw;
|
|
28
|
+
const packId = Number(rec.pack_id);
|
|
29
|
+
const stickerId = Number(rec.sticker_id);
|
|
30
|
+
const url = typeof rec.url === 'string' ? rec.url.trim() : undefined;
|
|
31
|
+
const name = typeof rec.name === 'string' ? rec.name.trim() : undefined;
|
|
32
|
+
const width = pickPositiveNumber(rec.width);
|
|
33
|
+
const height = pickPositiveNumber(rec.height);
|
|
34
|
+
return {
|
|
35
|
+
...(Number.isFinite(packId) && packId > 0 ? { packId } : {}),
|
|
36
|
+
...(Number.isFinite(stickerId) && stickerId > 0 ? { stickerId } : {}),
|
|
37
|
+
...(name ? { name } : {}),
|
|
38
|
+
...(url ? { url } : {}),
|
|
39
|
+
...(width != null ? { width } : {}),
|
|
40
|
+
...(height != null ? { height } : {}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function readVoiceDurationSecFromExtra(extra) {
|
|
44
|
+
if (!extra)
|
|
45
|
+
return undefined;
|
|
46
|
+
const raw = extra.duration_ms ?? extra.durationMs ?? extra.voice_duration_ms;
|
|
47
|
+
if (typeof raw === 'number' && Number.isFinite(raw) && raw > 0) {
|
|
48
|
+
return Math.max(1, Math.round(raw / 1000));
|
|
49
|
+
}
|
|
50
|
+
if (typeof raw === 'string' && raw.trim()) {
|
|
51
|
+
const n = Number(raw.trim());
|
|
52
|
+
if (Number.isFinite(n) && n > 0)
|
|
53
|
+
return Math.max(1, Math.round(n / 1000));
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
export function imChatShortId(id) {
|
|
58
|
+
if (id.length <= 12)
|
|
59
|
+
return id;
|
|
60
|
+
return `${id.slice(0, 8)}…`;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=imChatMessageMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageMap.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
2
|
+
export declare function chatMessagePrimaryAssetUrl(m: ChatMessage): string | null;
|
|
3
|
+
export declare function chatMessageSupportsDownload(m: ChatMessage): boolean;
|
|
4
|
+
export declare function defaultExtForChatMessageMediaType(t: ChatMessage['type']): string;
|
|
5
|
+
export declare function buildChatMessageDownloadFilename(m: ChatMessage): string | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { isInlinePreviewableAssetUrl } from '../url/assetUrlGuards.js';
|
|
2
|
+
import { suggestFilenameFromUrl } from '../file/suggestFilenameFromUrl.js';
|
|
3
|
+
export function chatMessagePrimaryAssetUrl(m) {
|
|
4
|
+
const c = m.content?.trim() ?? '';
|
|
5
|
+
if (!c)
|
|
6
|
+
return null;
|
|
7
|
+
if (isInlinePreviewableAssetUrl(c))
|
|
8
|
+
return c;
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
export function chatMessageSupportsDownload(m) {
|
|
12
|
+
return (['image', 'video', 'file', 'voice'].includes(m.type) &&
|
|
13
|
+
chatMessagePrimaryAssetUrl(m) != null);
|
|
14
|
+
}
|
|
15
|
+
export function defaultExtForChatMessageMediaType(t) {
|
|
16
|
+
if (t === 'image')
|
|
17
|
+
return '.jpg';
|
|
18
|
+
if (t === 'video')
|
|
19
|
+
return '.mp4';
|
|
20
|
+
if (t === 'voice')
|
|
21
|
+
return '.mp3';
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
export function buildChatMessageDownloadFilename(m) {
|
|
25
|
+
const url = chatMessagePrimaryAssetUrl(m);
|
|
26
|
+
if (!url)
|
|
27
|
+
return null;
|
|
28
|
+
const fromMeta = m.mediaOriginalFileName?.trim();
|
|
29
|
+
const fallback = `${m.type}-${String(m.id).replace(/[/\\?*:|"<>]/g, '_').slice(0, 40)}${defaultExtForChatMessageMediaType(m.type)}`;
|
|
30
|
+
return fromMeta || suggestFilenameFromUrl(url, fallback || 'download');
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=imChatMessageMediaAsset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imChatMessageMediaAsset.js","sourceRoot":"","sources":["../../../src/functions/im/imChatMessageMediaAsset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAGvE,MAAM,UAAU,0BAA0B,CAAC,CAAc;IACvD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACjC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,IAAI,2BAA2B,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAA;AACb,CAAC;AAGD,MAAM,UAAU,2BAA2B,CAAC,CAAc;IACxD,OAAO,CACL,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,0BAA0B,CAAC,CAAC,CAAC,IAAI,IAAI,CACtC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,CAAsB;IACtE,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,MAAM,CAAA;IAChC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,MAAM,CAAA;IAChC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,MAAM,CAAA;IAChC,OAAO,EAAE,CAAA;AACX,CAAC;AAGD,MAAM,UAAU,gCAAgC,CAAC,CAAc;IAC7D,MAAM,GAAG,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAA;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAA;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;IACnI,OAAO,QAAQ,IAAI,sBAAsB,CAAC,GAAG,EAAE,QAAQ,IAAI,UAAU,CAAC,CAAA;AACxE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ImMessage } from '../../../types/im-api';
|
|
2
|
+
import type { ChatMessage } from '../../../types/im-chat';
|
|
3
|
+
export declare const CHAT_MESSAGE_PAGE_MIN = 6;
|
|
4
|
+
export declare const CHAT_MESSAGE_PAGE_MAX = 30;
|
|
5
|
+
export declare const CHAT_MESSAGE_PAGE_DEFAULT = 12;
|
|
6
|
+
export declare const CHAT_MESSAGE_FALLBACK_ROW_PX = 68;
|
|
7
|
+
export declare const CHAT_MESSAGE_ESTIMATED_ROW_PX = 68;
|
|
8
|
+
export declare const CHAT_MESSAGE_VIEWPORT_FILL_RATIO = 1;
|
|
9
|
+
export declare const CHAT_MESSAGE_MAX_FILL_PASSES = 2;
|
|
10
|
+
export declare const CHAT_MESSAGE_SCROLL_TOP_TRIGGER_PX = 180;
|
|
11
|
+
export type ChatMessageViewportSource = {
|
|
12
|
+
clientHeight: number;
|
|
13
|
+
scrollHeight?: number;
|
|
14
|
+
} | null | undefined;
|
|
15
|
+
export declare function estimateImMessageRowPx(m: ImMessage): number;
|
|
16
|
+
export declare function estimateChatMessageRowPx(m: ChatMessage): number;
|
|
17
|
+
export declare function estimateInitialMessageLimit(viewport: ChatMessageViewportSource, imRows?: readonly ImMessage[], chatMessages?: readonly ChatMessage[]): number;
|
|
18
|
+
export declare function estimateFillOlderMessageLimit(viewport: ChatMessageViewportSource, chatMessages: readonly ChatMessage[]): number;
|