zcw-shared 2.23.6 → 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/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/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 +223 -3
- 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
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { isImStandaloneMediaType } from './imImagePixelExtra.js';
|
|
2
|
+
import { isLocalMediaPendingMessage } from './imMessageExtraRecord.js';
|
|
3
|
+
import { isLocalOutboundDraft, isOutboundFailedForListSummary, } from './imOutboundStatus.js';
|
|
4
|
+
export function parseImMessageTimeFieldToMs(raw) {
|
|
5
|
+
if (raw == null || raw === '')
|
|
6
|
+
return 0;
|
|
7
|
+
if (typeof raw === 'number' && Number.isFinite(raw))
|
|
8
|
+
return raw;
|
|
9
|
+
if (typeof raw === 'string') {
|
|
10
|
+
const t = Date.parse(raw);
|
|
11
|
+
return Number.isFinite(t) ? t : 0;
|
|
12
|
+
}
|
|
13
|
+
if (typeof raw === 'object' && raw !== null) {
|
|
14
|
+
const o = raw;
|
|
15
|
+
const sec = o.seconds ?? o._seconds;
|
|
16
|
+
if (typeof sec === 'number' && Number.isFinite(sec))
|
|
17
|
+
return sec * 1000;
|
|
18
|
+
}
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
export function shouldPreferClientSentAtForImMessageSort(m) {
|
|
22
|
+
const cmid = m.client_message_id?.trim();
|
|
23
|
+
if (!cmid)
|
|
24
|
+
return false;
|
|
25
|
+
const clientMs = parseImMessageTimeFieldToMs(m.client_sent_at);
|
|
26
|
+
const createdMs = parseImMessageTimeFieldToMs(m.created_at);
|
|
27
|
+
if (isLocalOutboundDraft(m) || isOutboundFailedForListSummary(m)) {
|
|
28
|
+
return clientMs !== 0 || createdMs !== 0;
|
|
29
|
+
}
|
|
30
|
+
if (clientMs === 0)
|
|
31
|
+
return false;
|
|
32
|
+
return isLocalMediaPendingMessage(m) || isImStandaloneMediaType(m.type);
|
|
33
|
+
}
|
|
34
|
+
export function coerceImMessageTimeMsOutboundAware(m) {
|
|
35
|
+
if (shouldPreferClientSentAtForImMessageSort(m)) {
|
|
36
|
+
const clientMs = parseImMessageTimeFieldToMs(m.client_sent_at);
|
|
37
|
+
const createdMs = parseImMessageTimeFieldToMs(m.created_at);
|
|
38
|
+
return Math.max(clientMs, createdMs) || clientMs || createdMs;
|
|
39
|
+
}
|
|
40
|
+
for (const key of ['server_sent_at', 'created_at', 'client_sent_at']) {
|
|
41
|
+
const ms = parseImMessageTimeFieldToMs(m[key]);
|
|
42
|
+
if (ms !== 0)
|
|
43
|
+
return ms;
|
|
44
|
+
}
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
export function normalizeOptionalIso8601(input) {
|
|
48
|
+
const s = input?.trim();
|
|
49
|
+
if (!s)
|
|
50
|
+
return undefined;
|
|
51
|
+
const t = Date.parse(s);
|
|
52
|
+
if (!Number.isFinite(t))
|
|
53
|
+
return undefined;
|
|
54
|
+
return new Date(t).toISOString();
|
|
55
|
+
}
|
|
56
|
+
export function coerceMessageTimeMsForSort(m) {
|
|
57
|
+
for (const raw of [m.server_sent_at, m.created_at, m.client_sent_at]) {
|
|
58
|
+
if (raw) {
|
|
59
|
+
const t = Date.parse(raw);
|
|
60
|
+
if (Number.isFinite(t))
|
|
61
|
+
return t;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return 0;
|
|
65
|
+
}
|
|
66
|
+
export function compareMessageIdAsc(a, b) {
|
|
67
|
+
const na = typeof a === 'number'
|
|
68
|
+
? a
|
|
69
|
+
: /^-?[0-9]+$/.test(String(a).trim())
|
|
70
|
+
? Number(a)
|
|
71
|
+
: NaN;
|
|
72
|
+
const nb = typeof b === 'number'
|
|
73
|
+
? b
|
|
74
|
+
: /^-?[0-9]+$/.test(String(b).trim())
|
|
75
|
+
? Number(b)
|
|
76
|
+
: NaN;
|
|
77
|
+
if (Number.isFinite(na) && Number.isFinite(nb))
|
|
78
|
+
return na - nb;
|
|
79
|
+
return String(a).localeCompare(String(b), undefined, { numeric: true });
|
|
80
|
+
}
|
|
81
|
+
export function sortMessagesChronologicalAsc(messages) {
|
|
82
|
+
messages.sort((a, b) => {
|
|
83
|
+
const ta = coerceMessageTimeMsForSort(a);
|
|
84
|
+
const tb = coerceMessageTimeMsForSort(b);
|
|
85
|
+
if (ta !== tb)
|
|
86
|
+
return ta - tb;
|
|
87
|
+
return compareMessageIdAsc(a.id, b.id);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
export function coerceMessageCreatedAtMsForSort(m) {
|
|
91
|
+
for (const raw of [m.created_at, m.server_sent_at, m.client_sent_at]) {
|
|
92
|
+
if (raw) {
|
|
93
|
+
const t = Date.parse(raw);
|
|
94
|
+
if (Number.isFinite(t))
|
|
95
|
+
return t;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return 0;
|
|
99
|
+
}
|
|
100
|
+
export function sortMessagesChronologicalByCreatedAtAsc(messages) {
|
|
101
|
+
messages.sort((a, b) => {
|
|
102
|
+
const ta = coerceMessageCreatedAtMsForSort(a);
|
|
103
|
+
const tb = coerceMessageCreatedAtMsForSort(b);
|
|
104
|
+
if (ta !== tb)
|
|
105
|
+
return ta - tb;
|
|
106
|
+
return compareMessageIdAsc(a.id, b.id);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
export function ensureSenderSeqChronological(messages) {
|
|
110
|
+
const counts = new Map();
|
|
111
|
+
for (const m of messages) {
|
|
112
|
+
const existing = m.sender_seq;
|
|
113
|
+
if (existing != null && existing >= 1) {
|
|
114
|
+
const prev = counts.get(m.sender_id) ?? 0;
|
|
115
|
+
counts.set(m.sender_id, Math.max(prev, existing));
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const next = (counts.get(m.sender_id) ?? 0) + 1;
|
|
119
|
+
counts.set(m.sender_id, next);
|
|
120
|
+
m.sender_seq = next;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
export function normalizeMessageId(raw) {
|
|
124
|
+
if (raw == null)
|
|
125
|
+
return null;
|
|
126
|
+
if (typeof raw === 'bigint') {
|
|
127
|
+
const n = Number(raw);
|
|
128
|
+
return Number.isFinite(n) ? n : null;
|
|
129
|
+
}
|
|
130
|
+
if (typeof raw === 'number') {
|
|
131
|
+
return Number.isFinite(raw) ? raw : null;
|
|
132
|
+
}
|
|
133
|
+
if (typeof raw === 'string') {
|
|
134
|
+
const s = raw.trim();
|
|
135
|
+
if (!s)
|
|
136
|
+
return null;
|
|
137
|
+
if (/^-?[0-9]+$/.test(s)) {
|
|
138
|
+
const n = Number(s);
|
|
139
|
+
return Number.isFinite(n) ? n : null;
|
|
140
|
+
}
|
|
141
|
+
return s;
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
export function normalizeDatabaseMessageToIm(item) {
|
|
146
|
+
const id = normalizeMessageId(item.id);
|
|
147
|
+
if (id == null || id === 0 || id === '0') {
|
|
148
|
+
throw new Error(`im_messages 缺少可用主键 id(conversation_id=${item.conversation_id})`);
|
|
149
|
+
}
|
|
150
|
+
const serverSent = item.server_sent_at ?? item.created_at ?? undefined;
|
|
151
|
+
const ob = item.outbound_status;
|
|
152
|
+
const outboundOk = ob === 'queued' || ob === 'sending' || ob === 'failed' || ob === 'success';
|
|
153
|
+
return {
|
|
154
|
+
id,
|
|
155
|
+
sender_id: item.sender_id,
|
|
156
|
+
conversation_id: item.conversation_id,
|
|
157
|
+
content: item.content,
|
|
158
|
+
type: item.type,
|
|
159
|
+
status: item.status,
|
|
160
|
+
sender_seq: item.sender_seq != null && item.sender_seq >= 1
|
|
161
|
+
? item.sender_seq
|
|
162
|
+
: undefined,
|
|
163
|
+
client_sent_at: item.client_sent_at ?? undefined,
|
|
164
|
+
server_sent_at: serverSent,
|
|
165
|
+
client_message_id: item.client_message_id ?? undefined,
|
|
166
|
+
send_retry_count: item.send_retry_count != null ? item.send_retry_count : undefined,
|
|
167
|
+
outbound_status: outboundOk ? ob : 'success',
|
|
168
|
+
extra_data: item.extra_data,
|
|
169
|
+
created_at: item.created_at,
|
|
170
|
+
updated_at: item.updated_at,
|
|
171
|
+
...(item.deleted_at ? { deleted_at: item.deleted_at } : {}),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
function parseIdArrayField(raw) {
|
|
175
|
+
if (Array.isArray(raw)) {
|
|
176
|
+
return raw.filter((x) => typeof x === 'string' && x.trim().length > 0);
|
|
177
|
+
}
|
|
178
|
+
if (typeof raw === 'string') {
|
|
179
|
+
try {
|
|
180
|
+
const parsed = JSON.parse(raw);
|
|
181
|
+
if (Array.isArray(parsed)) {
|
|
182
|
+
return parsed.filter((x) => typeof x === 'string' && x.trim().length > 0);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
export function normalizeDatabaseConversationToIm(item) {
|
|
191
|
+
const members = (item.members || [])
|
|
192
|
+
.map((m) => String(m).trim())
|
|
193
|
+
.filter(Boolean);
|
|
194
|
+
const adminIds = parseIdArrayField(item.admin_ids);
|
|
195
|
+
let createdBy = String(item.created_by ?? '').trim();
|
|
196
|
+
if (!createdBy && members.length > 0) {
|
|
197
|
+
createdBy = members[0];
|
|
198
|
+
}
|
|
199
|
+
const admins = adminIds.length > 0
|
|
200
|
+
? adminIds
|
|
201
|
+
: createdBy
|
|
202
|
+
? [createdBy]
|
|
203
|
+
: members.length > 0
|
|
204
|
+
? [members[0]]
|
|
205
|
+
: [];
|
|
206
|
+
return {
|
|
207
|
+
id: item.id,
|
|
208
|
+
created_by: createdBy,
|
|
209
|
+
admin_ids: admins,
|
|
210
|
+
name: item.name,
|
|
211
|
+
...(item.announcement != null && item.announcement !== ''
|
|
212
|
+
? { announcement: item.announcement }
|
|
213
|
+
: {}),
|
|
214
|
+
avatar: item.avatar,
|
|
215
|
+
members,
|
|
216
|
+
created_at: item.created_at,
|
|
217
|
+
updated_at: item.updated_at,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=imMessageNormalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imMessageNormalize.js","sourceRoot":"","sources":["../../../src/functions/im/imMessageNormalize.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
|
+
import type { ImMentionLabelResolver } from './imQuotePreview';
|
|
4
|
+
export type ImChatSenderProfileLite = {
|
|
5
|
+
name: string;
|
|
6
|
+
avatar?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function imToChatMessage(m: ImMessage, myId: string | null, senderProfileByUserId?: Map<string, ImChatSenderProfileLite>, resolveMentionLabel?: ImMentionLabelResolver): ChatMessage;
|
|
9
|
+
export declare function imRowsToChatMessages(rows: ImMessage[], myId: string | null, senderProfileByUserId?: Map<string, ImChatSenderProfileLite>, resolveMentionLabel?: ImMentionLabelResolver): ChatMessage[];
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { imMessagesForChatView } from './imMessageListOps.js';
|
|
2
|
+
import { isLocalOutboundDraft, isOutboundFailedForListSummary } from './imOutboundStatus.js';
|
|
3
|
+
import { parseForwardBundleFromImRow } from './imForwardSnapshot.js';
|
|
4
|
+
import { parseReplyToMessageId } from './imReplyExtra.js';
|
|
5
|
+
import { parseImLlmContextFromExtra } from './imLlmContextExtra.js';
|
|
6
|
+
import { parseRedEnvelopeFromExtra, parseWalletTransferFromExtra, } from './imWalletExtra.js';
|
|
7
|
+
import { readMediaDimensionsFromExtra, readMediaFileSizeBytesFromExtra, readMediaThumbnailUrlFromExtra, readNonNegativeIntFieldOrZero, } from './imMediaExtra.js';
|
|
8
|
+
import { parseImDisplayFromExtra, parseInlineAttachmentsFromExtra, } from './imDisplayExtra.js';
|
|
9
|
+
import { imChatShortId, mapImTypeToChat, parseStickerFromExtra, readVoiceDurationSecFromExtra, } from './imChatMessageMap.js';
|
|
10
|
+
import { toChatMessageListIdFromImRow } from './imMessageId.js';
|
|
11
|
+
import { formatChatMessageTime, laterChatActivityIso } from './imChatMessageTime.js';
|
|
12
|
+
import { findAbortedModelAgentRepliesForTrigger } from './imProxyAgentMessage.js';
|
|
13
|
+
function enrichWalletTransferReceiverName(transfer, senderProfileByUserId, mentionLabelResolver) {
|
|
14
|
+
if (!transfer)
|
|
15
|
+
return undefined;
|
|
16
|
+
const stored = transfer.receiver_name?.trim();
|
|
17
|
+
if (stored)
|
|
18
|
+
return transfer;
|
|
19
|
+
const rid = transfer.receiver_id?.trim();
|
|
20
|
+
if (!rid)
|
|
21
|
+
return transfer;
|
|
22
|
+
const fromMap = senderProfileByUserId?.get(rid)?.name?.trim();
|
|
23
|
+
const fromMention = mentionLabelResolver?.(rid)?.trim();
|
|
24
|
+
const name = fromMap || fromMention;
|
|
25
|
+
if (!name)
|
|
26
|
+
return transfer;
|
|
27
|
+
return { ...transfer, receiver_name: name };
|
|
28
|
+
}
|
|
29
|
+
function applyAgentProxyRetryFromThread(sortedRows, chatMessages, myId) {
|
|
30
|
+
if (myId == null || sortedRows.length !== chatMessages.length)
|
|
31
|
+
return chatMessages;
|
|
32
|
+
const out = chatMessages.slice();
|
|
33
|
+
for (let i = 0; i < sortedRows.length; i++) {
|
|
34
|
+
const row = sortedRows[i];
|
|
35
|
+
if (row.sender_id !== myId)
|
|
36
|
+
continue;
|
|
37
|
+
const aborted = findAbortedModelAgentRepliesForTrigger(sortedRows, row.id, myId);
|
|
38
|
+
const lastA = aborted[aborted.length - 1];
|
|
39
|
+
if (!lastA)
|
|
40
|
+
continue;
|
|
41
|
+
const ar = lastA.extra_data?.ai_reply;
|
|
42
|
+
if (ar?.state !== 'aborted' || ar.abort_source !== 'model')
|
|
43
|
+
continue;
|
|
44
|
+
const errRaw = ar.error_message;
|
|
45
|
+
const err = typeof errRaw === 'string' && errRaw.trim()
|
|
46
|
+
? errRaw.trim()
|
|
47
|
+
: '智能体未返回有效内容';
|
|
48
|
+
out[i] = { ...out[i], agentProxyRetryable: true, agentProxyError: err };
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
export function imToChatMessage(m, myId, senderProfileByUserId, resolveMentionLabel) {
|
|
53
|
+
const own = myId != null && m.sender_id === myId;
|
|
54
|
+
const st = m.status === 'read'
|
|
55
|
+
? 'read'
|
|
56
|
+
: m.status === 'delivered'
|
|
57
|
+
? 'delivered'
|
|
58
|
+
: String(m.status) === 'sending'
|
|
59
|
+
? 'sending'
|
|
60
|
+
: 'sent';
|
|
61
|
+
const ob = m.outbound_status;
|
|
62
|
+
let bubbleStatus = ob === 'queued' || ob === 'sending'
|
|
63
|
+
? 'sending'
|
|
64
|
+
: ob === 'failed'
|
|
65
|
+
? 'failed'
|
|
66
|
+
: st;
|
|
67
|
+
const serverIso = m.server_sent_at ?? m.created_at;
|
|
68
|
+
const localOutbound = isLocalOutboundDraft(m) || isOutboundFailedForListSummary(m);
|
|
69
|
+
const clientSent = m.client_sent_at?.trim();
|
|
70
|
+
const created = m.created_at?.trim();
|
|
71
|
+
const activityIso = localOutbound
|
|
72
|
+
? laterChatActivityIso(clientSent, created)
|
|
73
|
+
: serverIso;
|
|
74
|
+
const ts = activityIso ?? clientSent ?? created ?? Date.now();
|
|
75
|
+
const mus = m.extra_data
|
|
76
|
+
?.media_upload_status;
|
|
77
|
+
let mediaUploadStatus;
|
|
78
|
+
let mediaUploadPhase;
|
|
79
|
+
if (mus === 'pending_register') {
|
|
80
|
+
mediaUploadPhase = 'queued';
|
|
81
|
+
}
|
|
82
|
+
else if (mus === 'uploading' || mus === 'uploaded' || mus === 'failed') {
|
|
83
|
+
mediaUploadStatus = mus;
|
|
84
|
+
if (mus === 'uploading') {
|
|
85
|
+
mediaUploadPhase = 'oss';
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const mediaOriginalFileName = m.extra_data?.original_file_name?.trim();
|
|
89
|
+
const ex = m.extra_data && typeof m.extra_data === 'object'
|
|
90
|
+
? m.extra_data
|
|
91
|
+
: undefined;
|
|
92
|
+
const thumb = readMediaThumbnailUrlFromExtra(ex);
|
|
93
|
+
const { w: mediaW, h: mediaH } = readMediaDimensionsFromExtra(ex);
|
|
94
|
+
const fileSizeBytes = readMediaFileSizeBytesFromExtra(ex);
|
|
95
|
+
const inlineAttachments = parseInlineAttachmentsFromExtra(ex);
|
|
96
|
+
const inlineUploading = ex?.inline_uploading === true || ex?.inline_image_uploading === true;
|
|
97
|
+
const inlineUploadUploadedCount = readNonNegativeIntFieldOrZero(ex?.inline_upload_uploaded_count);
|
|
98
|
+
const inlineUploadTotalCount = readNonNegativeIntFieldOrZero(ex?.inline_upload_total_count);
|
|
99
|
+
const displaySpec = parseImDisplayFromExtra(ex);
|
|
100
|
+
const stickerMeta = parseStickerFromExtra(ex);
|
|
101
|
+
const walletTransfer = enrichWalletTransferReceiverName(parseWalletTransferFromExtra(ex), senderProfileByUserId, resolveMentionLabel);
|
|
102
|
+
const redEnvelope = parseRedEnvelopeFromExtra(ex);
|
|
103
|
+
const replyToMessageId = parseReplyToMessageId(ex) ?? undefined;
|
|
104
|
+
const chatType = mapImTypeToChat(m.type);
|
|
105
|
+
const contentForBubble = chatType === 'sticker' && stickerMeta.url && !m.content?.trim()
|
|
106
|
+
? stickerMeta.url
|
|
107
|
+
: m.content;
|
|
108
|
+
const forwardBundle = parseForwardBundleFromImRow(m.type, m.content, ex);
|
|
109
|
+
const senderId = String(m.sender_id ?? '').trim();
|
|
110
|
+
const p = senderProfileByUserId?.get(senderId);
|
|
111
|
+
if (mediaUploadStatus === 'failed' && bubbleStatus === 'sending') {
|
|
112
|
+
bubbleStatus = 'failed';
|
|
113
|
+
}
|
|
114
|
+
if (mediaUploadStatus === 'failed') {
|
|
115
|
+
mediaUploadPhase = undefined;
|
|
116
|
+
}
|
|
117
|
+
const outboundErrorRaw = ex?.outbound_error_message;
|
|
118
|
+
const outboundError = typeof outboundErrorRaw === 'string' && outboundErrorRaw.trim()
|
|
119
|
+
? outboundErrorRaw.trim()
|
|
120
|
+
: undefined;
|
|
121
|
+
const sendRetryCount = typeof m.send_retry_count === 'number' && m.send_retry_count > 0
|
|
122
|
+
? m.send_retry_count
|
|
123
|
+
: undefined;
|
|
124
|
+
const llmContext = parseImLlmContextFromExtra(ex);
|
|
125
|
+
const voiceDurationSec = chatType === 'voice' ? readVoiceDurationSecFromExtra(ex) : undefined;
|
|
126
|
+
return {
|
|
127
|
+
id: toChatMessageListIdFromImRow(m),
|
|
128
|
+
type: chatType,
|
|
129
|
+
content: contentForBubble,
|
|
130
|
+
timestamp: new Date(ts),
|
|
131
|
+
sender: {
|
|
132
|
+
id: senderId,
|
|
133
|
+
name: p?.name || imChatShortId(senderId),
|
|
134
|
+
...(p?.avatar ? { avatar: p.avatar } : {}),
|
|
135
|
+
},
|
|
136
|
+
isOwn: own,
|
|
137
|
+
status: bubbleStatus,
|
|
138
|
+
timeLabel: formatChatMessageTime(localOutbound
|
|
139
|
+
? laterChatActivityIso(m.client_sent_at, m.created_at)
|
|
140
|
+
: (m.server_sent_at ?? m.created_at)),
|
|
141
|
+
clientTimeLabel: clientSent ? formatChatMessageTime(clientSent) : undefined,
|
|
142
|
+
clientSentAt: clientSent || created || undefined,
|
|
143
|
+
serverSentAt: m.server_sent_at,
|
|
144
|
+
mediaUploadStatus,
|
|
145
|
+
...(mediaUploadPhase ? { mediaUploadPhase } : {}),
|
|
146
|
+
clientMessageId: m.client_message_id?.trim() || undefined,
|
|
147
|
+
mediaOriginalFileName: mediaOriginalFileName || undefined,
|
|
148
|
+
...(fileSizeBytes != null ? { mediaFileSizeBytes: fileSizeBytes } : {}),
|
|
149
|
+
...(thumb ? { mediaThumbnailUrl: thumb } : {}),
|
|
150
|
+
...(mediaW != null ? { mediaWidth: mediaW } : {}),
|
|
151
|
+
...(mediaH != null ? { mediaHeight: mediaH } : {}),
|
|
152
|
+
...(stickerMeta.packId != null ? { stickerPackId: stickerMeta.packId } : {}),
|
|
153
|
+
...(stickerMeta.stickerId != null ? { stickerId: stickerMeta.stickerId } : {}),
|
|
154
|
+
...(stickerMeta.name ? { stickerName: stickerMeta.name } : {}),
|
|
155
|
+
...(chatType === 'sticker' && stickerMeta.width != null && mediaW == null
|
|
156
|
+
? { mediaWidth: stickerMeta.width }
|
|
157
|
+
: {}),
|
|
158
|
+
...(chatType === 'sticker' && stickerMeta.height != null && mediaH == null
|
|
159
|
+
? { mediaHeight: stickerMeta.height }
|
|
160
|
+
: {}),
|
|
161
|
+
...(inlineAttachments.length > 0
|
|
162
|
+
? {
|
|
163
|
+
inlineAttachmentCount: inlineAttachments.length,
|
|
164
|
+
inlineAttachments,
|
|
165
|
+
}
|
|
166
|
+
: {}),
|
|
167
|
+
...(inlineUploading
|
|
168
|
+
? {
|
|
169
|
+
inlineUploading: true,
|
|
170
|
+
inlineUploadUploadedCount,
|
|
171
|
+
inlineUploadTotalCount,
|
|
172
|
+
}
|
|
173
|
+
: {}),
|
|
174
|
+
...(displaySpec ? { displaySpec } : {}),
|
|
175
|
+
...(replyToMessageId ? { replyToMessageId } : {}),
|
|
176
|
+
...(forwardBundle?.length ? { forwardBundle } : {}),
|
|
177
|
+
...(walletTransfer ? { walletTransfer } : {}),
|
|
178
|
+
...(redEnvelope ? { redEnvelope } : {}),
|
|
179
|
+
...(outboundError ? { outboundError } : {}),
|
|
180
|
+
...(sendRetryCount != null ? { sendRetryCount } : {}),
|
|
181
|
+
...(llmContext ? { llmContext } : {}),
|
|
182
|
+
...(voiceDurationSec != null ? { voiceDurationSec } : {}),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export function imRowsToChatMessages(rows, myId, senderProfileByUserId, resolveMentionLabel) {
|
|
186
|
+
const sorted = imMessagesForChatView(rows);
|
|
187
|
+
const chatMessages = sorted.map((m) => imToChatMessage(m, myId, senderProfileByUserId, resolveMentionLabel));
|
|
188
|
+
return applyAgentProxyRetryFromThread(sorted, chatMessages, myId);
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=imMessageToChatMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imMessageToChatMessage.js","sourceRoot":"","sources":["../../../src/functions/im/imMessageToChatMessage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ImMessage } from '../../../types/im-api';
|
|
2
|
+
export declare function isDeliveredServerMessage(m: ImMessage): boolean;
|
|
3
|
+
export declare function shouldPreserveLocalOutboundDraftOnSync(m: ImMessage): boolean;
|
|
4
|
+
export declare function shouldPreserveLocalOutboundOnApiMerge(existing: ImMessage, incoming: ImMessage): boolean;
|
|
5
|
+
export declare function shouldPreserveLocalConversationLastMessage(lm: ImMessage): boolean;
|
|
6
|
+
export declare function isFailedOutboundSupersededForListAnchor(failed: ImMessage, messages: readonly ImMessage[], myUserId: string): boolean;
|
|
7
|
+
export declare function isSuccessfulSelfOutbound(m: ImMessage, myUserId: string): boolean;
|
|
8
|
+
export declare function preferImMessageForClientMessageIdDedupe(a: ImMessage, b: ImMessage): ImMessage;
|
|
9
|
+
export declare function pickPreferredImMessageRow(rows: ImMessage[]): ImMessage | undefined;
|
|
10
|
+
export declare function imMessagesSameForListSummary(a: ImMessage, b: ImMessage): boolean;
|
|
11
|
+
export declare function shouldUseFailedMessageAsListTail(failed: ImMessage, tail: ImMessage | null | undefined): boolean;
|
|
12
|
+
export declare function shouldAnchorFailedPrefixOnListTail(failed: ImMessage, tail: ImMessage | null | undefined): boolean;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { isLocalImMessageId } from './imLocalMessageId.js';
|
|
2
|
+
import { compareMessageIdAsc } from './imMessageNormalize.js';
|
|
3
|
+
import { isServerPersistedImMessageId } from './imMessageId.js';
|
|
4
|
+
import { imMessageListActivityMs } from './imMessageListActivity.js';
|
|
5
|
+
import { isLocalOutboundDraft, isOutboundFailedForListSummary, isOutboundSendSuccess, } from './imOutboundStatus.js';
|
|
6
|
+
export function isDeliveredServerMessage(m) {
|
|
7
|
+
if (!isServerPersistedImMessageId(m.id))
|
|
8
|
+
return false;
|
|
9
|
+
if (isOutboundFailedForListSummary(m))
|
|
10
|
+
return false;
|
|
11
|
+
if (isLocalOutboundDraft(m))
|
|
12
|
+
return false;
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
export function shouldPreserveLocalOutboundDraftOnSync(m) {
|
|
16
|
+
if (!m.client_message_id?.trim())
|
|
17
|
+
return false;
|
|
18
|
+
return isLocalOutboundDraft(m) || isOutboundFailedForListSummary(m);
|
|
19
|
+
}
|
|
20
|
+
export function shouldPreserveLocalOutboundOnApiMerge(existing, incoming) {
|
|
21
|
+
return (isOutboundFailedForListSummary(existing) ||
|
|
22
|
+
(isLocalOutboundDraft(existing) && !isDeliveredServerMessage(incoming)));
|
|
23
|
+
}
|
|
24
|
+
export function shouldPreserveLocalConversationLastMessage(lm) {
|
|
25
|
+
return isLocalOutboundDraft(lm) || isOutboundFailedForListSummary(lm);
|
|
26
|
+
}
|
|
27
|
+
export function isFailedOutboundSupersededForListAnchor(failed, messages, myUserId) {
|
|
28
|
+
const cmid = failed.client_message_id?.trim();
|
|
29
|
+
if (!cmid)
|
|
30
|
+
return false;
|
|
31
|
+
for (const m of messages) {
|
|
32
|
+
if (m.sender_id !== myUserId)
|
|
33
|
+
continue;
|
|
34
|
+
if (m.client_message_id?.trim() !== cmid)
|
|
35
|
+
continue;
|
|
36
|
+
if (isOutboundFailedForListSummary(m))
|
|
37
|
+
continue;
|
|
38
|
+
if (isOutboundSendSuccess(m))
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
export function isSuccessfulSelfOutbound(m, myUserId) {
|
|
44
|
+
if (m.sender_id !== myUserId)
|
|
45
|
+
return false;
|
|
46
|
+
if (isOutboundFailedForListSummary(m))
|
|
47
|
+
return false;
|
|
48
|
+
if (isLocalOutboundDraft(m))
|
|
49
|
+
return false;
|
|
50
|
+
return isOutboundSendSuccess(m) || isServerPersistedImMessageId(m.id);
|
|
51
|
+
}
|
|
52
|
+
export function preferImMessageForClientMessageIdDedupe(a, b) {
|
|
53
|
+
const aFailed = isOutboundFailedForListSummary(a);
|
|
54
|
+
const bFailed = isOutboundFailedForListSummary(b);
|
|
55
|
+
if (aFailed && !bFailed && !isOutboundSendSuccess(b))
|
|
56
|
+
return a;
|
|
57
|
+
if (bFailed && !aFailed && !isOutboundSendSuccess(a))
|
|
58
|
+
return b;
|
|
59
|
+
return isServerPersistedImMessageId(a.id) && !isServerPersistedImMessageId(b.id)
|
|
60
|
+
? a
|
|
61
|
+
: !isServerPersistedImMessageId(a.id) && isServerPersistedImMessageId(b.id)
|
|
62
|
+
? b
|
|
63
|
+
: compareMessageIdAsc(a.id, b.id) < 0
|
|
64
|
+
? b
|
|
65
|
+
: a;
|
|
66
|
+
}
|
|
67
|
+
export function pickPreferredImMessageRow(rows) {
|
|
68
|
+
if (rows.length === 0)
|
|
69
|
+
return undefined;
|
|
70
|
+
const pickNewestById = (list) => {
|
|
71
|
+
const sorted = [...list].sort((a, b) => compareMessageIdAsc(a.id, b.id));
|
|
72
|
+
return sorted[sorted.length - 1];
|
|
73
|
+
};
|
|
74
|
+
const failed = rows.filter((m) => isOutboundFailedForListSummary(m));
|
|
75
|
+
if (failed.length > 0)
|
|
76
|
+
return pickNewestById(failed);
|
|
77
|
+
const server = rows.filter((m) => isServerPersistedImMessageId(m.id));
|
|
78
|
+
if (server.length > 0)
|
|
79
|
+
return pickNewestById(server);
|
|
80
|
+
const drafts = rows.filter((m) => isLocalImMessageId(m.id));
|
|
81
|
+
if (drafts.length > 0)
|
|
82
|
+
return pickNewestById(drafts);
|
|
83
|
+
return pickNewestById(rows);
|
|
84
|
+
}
|
|
85
|
+
export function imMessagesSameForListSummary(a, b) {
|
|
86
|
+
if (String(a.id) === String(b.id))
|
|
87
|
+
return true;
|
|
88
|
+
const ac = a.client_message_id?.trim();
|
|
89
|
+
const bc = b.client_message_id?.trim();
|
|
90
|
+
return !!(ac && bc && ac === bc);
|
|
91
|
+
}
|
|
92
|
+
export function shouldUseFailedMessageAsListTail(failed, tail) {
|
|
93
|
+
if (!tail)
|
|
94
|
+
return true;
|
|
95
|
+
if (imMessagesSameForListSummary(failed, tail))
|
|
96
|
+
return true;
|
|
97
|
+
return imMessageListActivityMs(failed) > imMessageListActivityMs(tail);
|
|
98
|
+
}
|
|
99
|
+
export function shouldAnchorFailedPrefixOnListTail(failed, tail) {
|
|
100
|
+
if (!tail)
|
|
101
|
+
return false;
|
|
102
|
+
if (imMessagesSameForListSummary(failed, tail))
|
|
103
|
+
return false;
|
|
104
|
+
return imMessageListActivityMs(failed) < imMessageListActivityMs(tail);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=imOutboundListSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imOutboundListSummary.js","sourceRoot":"","sources":["../../../src/functions/im/imOutboundListSummary.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function asImRegisterMediaType(t: string): 'image' | 'file' | 'video' | 'audio';
|
|
2
|
+
export declare function mediaUploadDelay(ms: number): Promise<void>;
|
|
3
|
+
export declare const CHAT_MEDIA_BLOB_PERSIST_MAX_BYTES: number;
|
|
4
|
+
export declare function shouldPersistMediaBlobToIndexedDb(sizeBytes: number): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function asImRegisterMediaType(t) {
|
|
2
|
+
if (t === 'image' || t === 'video' || t === 'file' || t === 'audio')
|
|
3
|
+
return t;
|
|
4
|
+
return 'file';
|
|
5
|
+
}
|
|
6
|
+
export function mediaUploadDelay(ms) {
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
const st = globalThis
|
|
9
|
+
.setTimeout;
|
|
10
|
+
if (typeof st === 'function')
|
|
11
|
+
st(resolve, ms);
|
|
12
|
+
else
|
|
13
|
+
resolve();
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export const CHAT_MEDIA_BLOB_PERSIST_MAX_BYTES = 10 * 1024 * 1024;
|
|
17
|
+
export function shouldPersistMediaBlobToIndexedDb(sizeBytes) {
|
|
18
|
+
return (Number.isFinite(sizeBytes) &&
|
|
19
|
+
sizeBytes >= 0 &&
|
|
20
|
+
sizeBytes <= CHAT_MEDIA_BLOB_PERSIST_MAX_BYTES);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=imOutboundMediaHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imOutboundMediaHelpers.js","sourceRoot":"","sources":["../../../src/functions/im/imOutboundMediaHelpers.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,qBAAqB,CAAC,CAAS;IAC7C,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,CAAA;IAC7E,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,EAAE,GAAI,UAA0E;aACnF,UAAU,CAAA;QACb,IAAI,OAAO,EAAE,KAAK,UAAU;YAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;;YACxC,OAAO,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC;AAGD,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAA;AAEjE,MAAM,UAAU,iCAAiC,CAAC,SAAiB;IACjE,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1B,SAAS,IAAI,CAAC;QACd,SAAS,IAAI,iCAAiC,CAC/C,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ImMessage } from '../../../types/im-api';
|
|
2
|
+
export declare function isMediaUploadActivelyInFlightExtra(ex: Record<string, unknown> | undefined): boolean;
|
|
3
|
+
export declare function countHistoryMessagesInRows(rows: readonly ImMessage[], myUserId: string | null | undefined): number;
|
|
4
|
+
export declare function buildImOutboundFailurePatch(msg: ImMessage): Partial<ImMessage>;
|
|
5
|
+
export declare function normalizeOutboundAckMessageId(raw: string | number | undefined | null): string | number | null;
|