k2-im 0.1.57 → 0.2.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/README.md +3 -1
- package/dist/browser.d.ts +1 -1
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +227 -170
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +64 -44
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +244 -173
- package/dist/chat-kit.js +1 -1
- package/dist/crypto.worker.js +17 -25
- package/dist/i18n.d.ts +61 -41
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +259 -188
- package/dist/index.js +1 -1
- package/dist/modules/api-protocol-client/src/bi-feedback.js +1 -0
- package/dist/modules/api-protocol-client/src/browser.js +1 -0
- package/dist/modules/api-protocol-client/src/client.js +1 -0
- package/dist/modules/api-protocol-client/src/config.js +1 -0
- package/dist/modules/api-protocol-client/src/constants.js +1 -0
- package/dist/modules/api-protocol-client/src/json.js +1 -0
- package/dist/modules/api-protocol-client/src/nonce.js +1 -0
- package/dist/modules/api-protocol-client/src/transports/axios.js +1 -0
- package/dist/modules/api-protocol-client/src/utils.js +1 -0
- package/dist/modules/crypto/browser.js +1 -0
- package/dist/modules/crypto/driver.js +1 -0
- package/dist/modules/crypto/vendor/crypto/index_bg.js +1 -0
- package/dist/modules/im-browser/src/crypto/channel-key-service.js +1 -0
- package/dist/modules/im-browser/src/crypto/collect-tea.js +1 -0
- package/dist/modules/im-browser/src/crypto/crypto-task-executor.js +1 -0
- package/dist/modules/im-browser/src/crypto/crypto-worker-factory.js +1 -0
- package/dist/modules/im-browser/src/crypto/crypto-worker-protocol.js +1 -0
- package/dist/modules/im-browser/src/crypto/encrypt-key-service.js +1 -0
- package/dist/modules/im-browser/src/crypto/group-key-service.js +1 -0
- package/dist/modules/im-browser/src/crypto/peer-public-key-service.js +1 -0
- package/dist/modules/im-browser/src/crypto/rsa-private-key.js +1 -0
- package/dist/modules/im-browser/src/crypto/rsa-tea-crypto-adapter.js +1 -0
- package/dist/modules/im-browser/src/crypto/stale-key-refresh.js +1 -0
- package/dist/modules/im-browser/src/crypto/tea.js +1 -0
- package/dist/modules/im-browser/src/crypto/wait-for-key-signal.js +1 -0
- package/dist/modules/im-browser/src/http/application-http-adapters.js +1 -0
- package/dist/modules/im-browser/src/http/channel-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/channel-join-application-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/channel-member-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/channel-mention-member-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/cm-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/directory-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/expression-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/lazy-api-protocol-client.js +1 -0
- package/dist/modules/im-browser/src/http/profile-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/http/requests/applications.js +1 -0
- package/dist/modules/im-browser/src/http/requests/bind-robot-conversation.js +1 -0
- package/dist/modules/im-browser/src/http/requests/board-pinned-message-validation.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-join-applications.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-management.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-members.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-mention-members.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-message-context.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-mini-program-rel.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-profile.js +1 -0
- package/dist/modules/im-browser/src/http/requests/channel-read-index.js +1 -0
- package/dist/modules/im-browser/src/http/requests/contact-blocklist.js +1 -0
- package/dist/modules/im-browser/src/http/requests/contact-friendship.js +1 -0
- package/dist/modules/im-browser/src/http/requests/contact-report.js +1 -0
- package/dist/modules/im-browser/src/http/requests/core-json-request.js +1 -0
- package/dist/modules/im-browser/src/http/requests/create-channel.js +1 -0
- package/dist/modules/im-browser/src/http/requests/create-face-to-face-group.js +1 -0
- package/dist/modules/im-browser/src/http/requests/create-group.js +1 -0
- package/dist/modules/im-browser/src/http/requests/customer-service-profile.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-board-pinned-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-channel-board-pinned-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-channel-secret-key.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-conversation-background-presets.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-group-encrypt-info.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-group-info.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-group-member-list.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-user-encrypt-info.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-user-info-friend.js +1 -0
- package/dist/modules/im-browser/src/http/requests/get-user-info-other.js +1 -0
- package/dist/modules/im-browser/src/http/requests/group-management.js +1 -0
- package/dist/modules/im-browser/src/http/requests/mark-group-read-all.js +1 -0
- package/dist/modules/im-browser/src/http/requests/membership-join.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pin-board-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pin-channel-board-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pull-messages-by-id.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pull-offline-channel.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pull-offline-chat.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pull-offline-group.js +1 -0
- package/dist/modules/im-browser/src/http/requests/pull-offline-signal.js +1 -0
- package/dist/modules/im-browser/src/http/requests/robot-menu-reply.js +1 -0
- package/dist/modules/im-browser/src/http/requests/robot-profile.js +1 -0
- package/dist/modules/im-browser/src/http/requests/search-robots.js +1 -0
- package/dist/modules/im-browser/src/http/requests/set-conversation-undisturb.js +1 -0
- package/dist/modules/im-browser/src/http/requests/set-friend-remark.js +1 -0
- package/dist/modules/im-browser/src/http/requests/set-group-nickname.js +1 -0
- package/dist/modules/im-browser/src/http/requests/unpin-board-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/unpin-channel-board-message.js +1 -0
- package/dist/modules/im-browser/src/http/requests/update-group-info.js +1 -0
- package/dist/modules/im-browser/src/http/session-favorite-http-adapter.js +1 -0
- package/dist/modules/im-browser/src/media/file-md5.js +1 -0
- package/dist/modules/im-browser/src/media/image-clipboard.js +1 -0
- package/dist/modules/im-browser/src/media/image-header-dimensions.js +1 -0
- package/dist/modules/im-browser/src/media/media-downloader.js +1 -0
- package/dist/modules/im-browser/src/media/media-preview-adapter.js +1 -0
- package/dist/modules/im-browser/src/media/media-preview-preparation-executor.js +1 -0
- package/dist/modules/im-browser/src/media/media-request-limiter.js +1 -0
- package/dist/modules/im-browser/src/media/media-transfer-adapter.js +1 -0
- package/dist/modules/im-browser/src/media/media-transfer-errors.js +1 -0
- package/dist/modules/im-browser/src/media/media-transfer-policy.js +1 -0
- package/dist/modules/im-browser/src/media/media-upload-credentials.js +1 -0
- package/dist/modules/im-browser/src/media/media-upload-recovery-codec.js +1 -0
- package/dist/modules/im-browser/src/media/media-upload-recovery-store.js +1 -0
- package/dist/modules/im-browser/src/media/media-upload-source-fingerprint.js +1 -0
- package/dist/modules/im-browser/src/media/s3-multipart-uploader.js +1 -0
- package/dist/modules/im-browser/src/media/xhr-upload-idle-timeout.js +1 -0
- package/dist/modules/im-browser/src/network/browser-connection-ownership.js +1 -0
- package/dist/modules/im-browser/src/network/network-monitor.js +1 -0
- package/dist/modules/im-browser/src/scheduling/yield-to-browser.js +1 -0
- package/dist/modules/im-browser/src/storage/indexed-db-storage-adapter.js +1 -0
- package/dist/modules/im-browser/src/transport/ws-transport.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-amplitude.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-capabilities.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-codec.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-errors.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-playback.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-player.js +1 -0
- package/dist/modules/im-browser/src/voice/voice-recorder.js +1 -0
- package/dist/modules/im-chat-kit/src/i18n/use-im-text.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/applications.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/capabilities.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/composer.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/context.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/conversation-activation.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/conversation-deletion.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/conversation-list.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/expression.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/history-return-after-send.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/media-transfer-estimate.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/media.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/message-operations.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/profile-directory.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/quoted-message.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/reaction.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/search-senders.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/search.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/session-favorites.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/session.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/thread-paging.store.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/thread-return-to-latest.js +1 -0
- package/dist/modules/im-chat-kit/src/pinia/thread.store.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-open.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-rels.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/conversation-list.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/conversation-unread.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/delayed-loading-indicator.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/media-source-priority.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/message-notification.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/message-search.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/mini-program-game-preview.js +1 -0
- package/dist/modules/im-chat-kit/src/presentation/mini-program-open-url.js +1 -0
- package/dist/modules/im-chat-kit/src/runtime/chat-runtime.js +1 -0
- package/dist/modules/im-chat-kit/src/runtime/conversation-prefetch-controller.js +1 -0
- package/dist/modules/im-chat-kit/src/runtime/media-object-url-registry.js +1 -0
- package/dist/modules/im-chat-kit/src/runtime/runtime-operation.js +1 -0
- package/dist/modules/im-chat-kit/src/services/capabilities.js +1 -0
- package/dist/modules/im-chat-kit/src/services/channel-member-management.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/channel-profile-management.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/channel-send-restriction.js +1 -0
- package/dist/modules/im-chat-kit/src/services/direct-contact-management.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/forward.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/group-member-management.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/group-profile-management.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/image-copy.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/media-file-classification.js +1 -0
- package/dist/modules/im-chat-kit/src/services/media.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/message.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/pinned-message-rules.js +1 -0
- package/dist/modules/im-chat-kit/src/services/pinned-message.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/profile-access.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/profile-directory.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/profile-display.js +1 -0
- package/dist/modules/im-chat-kit/src/services/profile.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/read.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/robot-sender-profile.js +1 -0
- package/dist/modules/im-chat-kit/src/services/search.service.js +1 -0
- package/dist/modules/im-chat-kit/src/services/send.service.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/active-date.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/create-thread-items.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/message-locate-result.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/new-message-badge.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/resolve-message-body-kind.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/resolve-quoted-message-presentation.js +1 -0
- package/dist/modules/im-chat-kit/src/thread/viewport-rules.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/emoji/emoji-legacy-catalog.json.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/emoji/index.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/emoji/recent.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/emoji/unicode-emoji-catalog.json.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/emoji/unicode.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/highlight.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/link.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/media-batch.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/media-dimensions.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/media-format.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/media-transfer-presentation.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/time-display.js +1 -0
- package/dist/modules/im-chat-kit/src/utils/waveform.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/ImThreadBodySwitch.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/ImThreadItems.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/ImThreadSurface.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/ImThreadViewport.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/message-renderer-registry.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-idle-task.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-layout-measurements.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-read-actions-context.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-surface-context.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-viewport-context.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-target-group.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-targets.js +1 -0
- package/dist/modules/im-chat-kit/src/vue/thread/use-im-thread-layout-measurement.js +1 -0
- package/dist/modules/im-core/src/abort.js +1 -0
- package/dist/modules/im-core/src/cache-namespace.js +1 -0
- package/dist/modules/im-core/src/connection/backoff.js +1 -0
- package/dist/modules/im-core/src/connection/connection-manager.js +1 -0
- package/dist/modules/im-core/src/connection/heartbeat-manager.js +1 -0
- package/dist/modules/im-core/src/conversation-identity.js +1 -0
- package/dist/modules/im-core/src/diagnostics.js +1 -0
- package/dist/modules/im-core/src/event-emitter.js +1 -0
- package/dist/modules/im-core/src/login/login-handler.js +1 -0
- package/dist/modules/im-core/src/mapping/bot-sender.js +1 -0
- package/dist/modules/im-core/src/mapping/call-record-body.js +1 -0
- package/dist/modules/im-core/src/mapping/channel-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/channel-notify-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/channel-offline-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/channel-pinned-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/channel-read-position.js +1 -0
- package/dist/modules/im-core/src/mapping/contact-body.js +1 -0
- package/dist/modules/im-core/src/mapping/content-body.js +1 -0
- package/dist/modules/im-core/src/mapping/conversation.js +1 -0
- package/dist/modules/im-core/src/mapping/crypto-batch-preparation.js +1 -0
- package/dist/modules/im-core/src/mapping/customer-service-body.js +1 -0
- package/dist/modules/im-core/src/mapping/customer-service-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/decrypt-recovery.js +1 -0
- package/dist/modules/im-core/src/mapping/file-body.js +1 -0
- package/dist/modules/im-core/src/mapping/files-album-body.js +1 -0
- package/dist/modules/im-core/src/mapping/game-body.js +1 -0
- package/dist/modules/im-core/src/mapping/gift-body.js +1 -0
- package/dist/modules/im-core/src/mapping/group-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/group-notify-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/group-offline-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/image-body.js +1 -0
- package/dist/modules/im-core/src/mapping/live-room-body.js +1 -0
- package/dist/modules/im-core/src/mapping/media-album-body.js +1 -0
- package/dist/modules/im-core/src/mapping/merge.js +1 -0
- package/dist/modules/im-core/src/mapping/mes-chat-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/message-id.js +1 -0
- package/dist/modules/im-core/src/mapping/message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/messages-by-id.js +1 -0
- package/dist/modules/im-core/src/mapping/mini-program-body.js +1 -0
- package/dist/modules/im-core/src/mapping/offline-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/pinned-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/profile-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/reaction-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/recall-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/red-packet-body.js +1 -0
- package/dist/modules/im-core/src/mapping/robot-body.js +1 -0
- package/dist/modules/im-core/src/mapping/robot-message-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/search-text.js +1 -0
- package/dist/modules/im-core/src/mapping/session-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/signal-offline-mapper.js +1 -0
- package/dist/modules/im-core/src/mapping/sort.js +1 -0
- package/dist/modules/im-core/src/mapping/sticker-body.js +1 -0
- package/dist/modules/im-core/src/mapping/stored-message.js +1 -0
- package/dist/modules/im-core/src/mapping/system-event-timeline-policy.js +1 -0
- package/dist/modules/im-core/src/mapping/text-segments.js +1 -0
- package/dist/modules/im-core/src/mapping/transfer-body.js +1 -0
- package/dist/modules/im-core/src/mapping/transfer-status.js +1 -0
- package/dist/modules/im-core/src/mapping/unread-divider.js +1 -0
- package/dist/modules/im-core/src/mapping/video-body.js +1 -0
- package/dist/modules/im-core/src/mapping/voice-body.js +1 -0
- package/dist/modules/im-core/src/message-flow/call/direct-call-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/call/direct-call-record.js +1 -0
- package/dist/modules/im-core/src/message-flow/call/direct-p2p-call.js +1 -0
- package/dist/modules/im-core/src/message-flow/call/group-call-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/call/group-call-record.js +1 -0
- package/dist/modules/im-core/src/message-flow/conversation-support.js +1 -0
- package/dist/modules/im-core/src/message-flow/edit/edit-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/edit/edit-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/edit/edit-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/edit/edit-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/expression/expression-message.js +1 -0
- package/dist/modules/im-core/src/message-flow/forward/can-transmit.js +1 -0
- package/dist/modules/im-core/src/message-flow/forward/forward-content-spec.js +1 -0
- package/dist/modules/im-core/src/message-flow/forward/forward-messages.js +1 -0
- package/dist/modules/im-core/src/message-flow/game/game-message.js +1 -0
- package/dist/modules/im-core/src/message-flow/gift/gift-message.js +1 -0
- package/dist/modules/im-core/src/message-flow/live-room/live-room-message.js +1 -0
- package/dist/modules/im-core/src/message-flow/media/media-sender.js +1 -0
- package/dist/modules/im-core/src/message-flow/mini-program/mini-program-message.js +1 -0
- package/dist/modules/im-core/src/message-flow/reaction/can-react.js +1 -0
- package/dist/modules/im-core/src/message-flow/reaction/reaction-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/reaction/reaction-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/channel-read-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/channel-read-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/customer-service-read-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/direct-read-sync.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/group-read-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/read-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/read/robot-read-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/recall/channel-message-deletion-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/recall/recall-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/recall/recall-manager.js +1 -0
- package/dist/modules/im-core/src/message-flow/recall/recall-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/recall/recall-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/channel-application-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/channel-notify-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/channel-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/command-handler-registry.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/contact-application-answer-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/contact-application-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/direct-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/friend-action-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/group-event-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/group-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/mes-chat-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/robot-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/session-favorite-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/receive/wallet-notify-receive-handlers.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/channel-outgoing-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/channel-send-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/direct-outgoing-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/direct-send-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/group-outgoing-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/group-send-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/robot-outgoing-frame.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/robot-send-strategy.js +1 -0
- package/dist/modules/im-core/src/message-flow/send/send-strategy-registry.js +1 -0
- package/dist/modules/im-core/src/message-flow/transfer/transfer-message.js +1 -0
- package/dist/modules/im-core/src/outbox/outbox-manager.js +1 -0
- package/dist/modules/im-core/src/packet-router.js +1 -0
- package/dist/modules/im-core/src/ports/crypto-port.js +1 -0
- package/dist/modules/im-core/src/ports/crypto-task-executor.js +1 -0
- package/dist/modules/im-core/src/ports/http-port.js +1 -0
- package/dist/modules/im-core/src/ports/media-asset-cache-port.js +1 -0
- package/dist/modules/im-core/src/push/push-registration.js +1 -0
- package/dist/modules/im-core/src/read/read-reporter.js +1 -0
- package/dist/modules/im-core/src/request-tracker.js +1 -0
- package/dist/modules/im-core/src/session-favorite-album.js +1 -0
- package/dist/modules/im-core/src/session-favorite-files.js +1 -0
- package/dist/modules/im-core/src/state/channel-permissions.js +1 -0
- package/dist/modules/im-core/src/state/channel-restriction-coordinator.js +1 -0
- package/dist/modules/im-core/src/state/domain-state.js +1 -0
- package/dist/modules/im-core/src/state/draft-store.js +1 -0
- package/dist/modules/im-core/src/state/group-restriction-coordinator.js +1 -0
- package/dist/modules/im-core/src/state/local-message-window-read-error.js +1 -0
- package/dist/modules/im-core/src/state/message-reactions.js +1 -0
- package/dist/modules/im-core/src/state/message-store.js +1 -0
- package/dist/modules/im-core/src/state/message-window-store.js +1 -0
- package/dist/modules/im-core/src/state/pinned-message-coordinator.js +1 -0
- package/dist/modules/im-core/src/state/pinned-message-store.js +1 -0
- package/dist/modules/im-core/src/state/read-store.js +1 -0
- package/dist/modules/im-core/src/state/session-sort.js +1 -0
- package/dist/modules/im-core/src/state/session-store.js +1 -0
- package/dist/modules/im-core/src/sync/channel-sync-checkpoint.js +1 -0
- package/dist/modules/im-core/src/sync/sync-manager.js +1 -0
- package/dist/modules/im-i18n/src/catalog/en-US.js +1 -0
- package/dist/modules/im-i18n/src/catalog/index.js +1 -0
- package/dist/modules/im-i18n/src/catalog/th-TH.js +1 -0
- package/dist/modules/im-i18n/src/catalog/vi-VN.js +1 -0
- package/dist/modules/im-i18n/src/catalog/zh-CN.js +1 -0
- package/dist/modules/im-i18n/src/catalog/zh-TW.js +1 -0
- package/dist/modules/im-i18n/src/create-im-i18n.js +1 -0
- package/dist/modules/im-i18n/src/format/failure.js +1 -0
- package/dist/modules/im-i18n/src/format/last-message.js +1 -0
- package/dist/modules/im-i18n/src/format/media.js +1 -0
- package/dist/modules/im-i18n/src/format/mention.js +1 -0
- package/dist/modules/im-i18n/src/format/service-text.js +1 -0
- package/dist/modules/im-i18n/src/format/system-message.js +1 -0
- package/dist/modules/im-i18n/src/internal/duration.js +1 -0
- package/dist/modules/im-i18n/src/internal/interpolate.js +1 -0
- package/dist/modules/im-i18n/src/locale.js +1 -0
- package/dist/modules/im-protocol/src/board-pinned-message.js +1 -0
- package/dist/modules/im-protocol/src/frame-codec.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/channel_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/group_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.app.msg_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.channel_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.group_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.login_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.msg_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.pub_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.robot_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/im.sig_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/gen/msg_pb.js +1 -0
- package/dist/modules/im-protocol/src/protobuf/registry.js +1 -0
- package/dist/modules/im-sdk/src/cache-prefix-migration.js +1 -0
- package/dist/modules/im-sdk/src/create-im-client.js +1 -0
- package/dist/modules/im-sdk/src/domains/channel.js +1 -0
- package/dist/modules/im-sdk/src/domains/contact.js +1 -0
- package/dist/modules/im-sdk/src/domains/conversation.js +1 -0
- package/dist/modules/im-sdk/src/domains/group.js +1 -0
- package/dist/modules/im-sdk/src/domains/media-byte-computation.js +1 -0
- package/dist/modules/im-sdk/src/domains/media.js +1 -0
- package/dist/modules/im-sdk/src/domains/message.js +1 -0
- package/dist/modules/im-sdk/src/domains/pinned-message-source.js +1 -0
- package/dist/modules/im-sdk/src/domains/pinned-message.js +1 -0
- package/dist/modules/im-sdk/src/domains/session.js +1 -0
- package/dist/modules/im-sdk/src/product/applications.js +1 -0
- package/dist/modules/im-sdk/src/product/calls.js +1 -0
- package/dist/modules/im-sdk/src/product/capabilities.js +1 -0
- package/dist/modules/im-sdk/src/product/channel-mention-candidates.js +1 -0
- package/dist/modules/im-sdk/src/product/conversation-background.js +1 -0
- package/dist/modules/im-sdk/src/product/conversation-entry-unread.js +1 -0
- package/dist/modules/im-sdk/src/product/conversation-handle.js +1 -0
- package/dist/modules/im-sdk/src/product/conversations.js +1 -0
- package/dist/modules/im-sdk/src/product/customer-service.js +1 -0
- package/dist/modules/im-sdk/src/product/diagnostic-memory-buffer.js +1 -0
- package/dist/modules/im-sdk/src/product/diagnostics.js +1 -0
- package/dist/modules/im-sdk/src/product/directory.js +1 -0
- package/dist/modules/im-sdk/src/product/draft.js +1 -0
- package/dist/modules/im-sdk/src/product/emoji-catalog.js +1 -0
- package/dist/modules/im-sdk/src/product/emoji-catalog.json.js +1 -0
- package/dist/modules/im-sdk/src/product/events.js +1 -0
- package/dist/modules/im-sdk/src/product/expressions.js +1 -0
- package/dist/modules/im-sdk/src/product/face-to-face-group.js +1 -0
- package/dist/modules/im-sdk/src/product/group-calls.js +1 -0
- package/dist/modules/im-sdk/src/product/image-format.js +1 -0
- package/dist/modules/im-sdk/src/product/local-data.js +1 -0
- package/dist/modules/im-sdk/src/product/media.js +1 -0
- package/dist/modules/im-sdk/src/product/mention.js +1 -0
- package/dist/modules/im-sdk/src/product/message.js +1 -0
- package/dist/modules/im-sdk/src/product/messages-by-id.js +1 -0
- package/dist/modules/im-sdk/src/product/outbox.js +1 -0
- package/dist/modules/im-sdk/src/product/profiles.js +1 -0
- package/dist/modules/im-sdk/src/product/resource-uploader.js +1 -0
- package/dist/modules/im-sdk/src/product/robots.js +1 -0
- package/dist/modules/im-sdk/src/product/search.js +1 -0
- package/dist/modules/im-sdk/src/product/session-favorites.js +1 -0
- package/dist/modules/im-sdk/src/product/settings.js +1 -0
- package/dist/modules/im-sdk/src/runtime/advanced-message-diagnostics.js +1 -0
- package/dist/modules/im-sdk/src/runtime/channel-read-summary-refresh.js +1 -0
- package/dist/modules/im-sdk/src/runtime/customer-service-legacy-recovery.js +1 -0
- package/dist/modules/im-sdk/src/runtime/decrypt-diagnostics.js +1 -0
- package/dist/modules/im-sdk/src/runtime/foreground-work-coordinator.js +1 -0
- package/dist/modules/im-sdk/src/runtime/group-history-page-boundary.js +1 -0
- package/dist/modules/im-sdk/src/runtime/key-prefetch.js +1 -0
- package/dist/modules/im-sdk/src/runtime/local-media-preview.js +1 -0
- package/dist/modules/im-sdk/src/runtime/media-cache-maintenance.js +1 -0
- package/dist/modules/im-sdk/src/runtime/media-upload-recovery.js +1 -0
- package/dist/modules/im-sdk/src/runtime/protobuf-wire-shape.js +1 -0
- package/dist/modules/im-sdk/src/runtime/receiving-activity.js +1 -0
- package/dist/modules/im-sdk/src/runtime/recent-history-fetcher.js +1 -0
- package/dist/modules/im-sdk/src/runtime/recent-history-prefetch.js +1 -0
- package/dist/modules/im-sdk/src/runtime/session-http-clients.js +1 -0
- package/dist/modules/im-sdk/src/runtime/session-runtime.js +1 -0
- package/dist/modules/im-sdk/src/runtime/signal-offline-poller.js +1 -0
- package/dist/request-crypto.js +1 -1
- package/dist/sdk.d.ts +170 -111
- package/dist/sdk.js +1 -1
- package/package.json +2 -2
- package/dist/browser-2MUNHRDS.js +0 -1
- package/dist/browser-RTCHWSQ2.js +0 -2
- package/dist/chunk-2OCWQHFJ.js +0 -2
- package/dist/chunk-46ARFR7U.js +0 -8
- package/dist/chunk-HQDLYL3K.js +0 -2
- package/dist/chunk-IC6HI33O.js +0 -1
- package/dist/chunk-IDECJJXC.js +0 -0
- package/dist/chunk-J3TLOAQI.js +0 -2
- package/dist/chunk-Q2DEFN53.js +0 -1
- package/dist/chunk-SXY56EVC.js +0 -0
- package/dist/chunk-WL3NFQ7Y.js +0 -1
- package/dist/chunk-WOT6VMZA.js +0 -1
- package/dist/chunk-WS7BWP7C.js +0 -1
package/dist/chunk-46ARFR7U.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import {aa as aa$1,a,R,U,g,h,i,pa as pa$1,qa as qa$1,ua as ua$1,va as va$1,xa as xa$1,ma as ma$1,na as na$1,oa as oa$1,W as W$1,X,Q as Q$1,T,V as V$1,o,f,S,Y as Y$1,sa as sa$1,da as da$1,fa as fa$1,ga as ga$1,ea as ea$1,ia as ia$1,ha as ha$1,ja as ja$1,la as la$1,ka as ka$1,Fa as Fa$1,Ga as Ga$1,Rb,Qb,Pb,L,K as K$1,J as J$1,Da as Da$1,Ha as Ha$1,Ba as Ba$1,I,_,ra as ra$1,ta as ta$1,wa as wa$1,n,w,Wa as Wa$1,$ as $$1,Va as Va$1,Ya as Ya$1,ya as ya$1,za as za$1}from'./chunk-HQDLYL3K.js';import*as le from'node-forge';import {createMD5,createSHA256}from'hash-wasm';import {deleteDB,openDB}from'idb';function Ia(e,n=async t=>{let{createBrowserApiProtocolClient:r}=await import('./browser-2MUNHRDS.js');return r(t)}){let t=null;function r(){if(t!==null)return t;let o=n(e);return t=o,o.catch(()=>{t===o&&(t=null);}),o}return async(o,i)=>(await r())(o,i)}function Mt(){return typeof navigator<"u"&&typeof ClipboardItem=="function"&&typeof navigator.clipboard?.write=="function"}function ne(e){if(!e.isCurrent())throw new DOMException("Image copy is no longer active","AbortError")}async function At(e,n){if(ne(n),e.size===0)throw new Error("Empty clipboard image");let t=URL.createObjectURL(e),r=new Image,o;try{if(await new Promise((c,d)=>{r.onload=()=>c(),r.onerror=()=>d(new Error("Clipboard image decode failed")),r.src=t;}),ne(n),r.naturalWidth<=0||r.naturalHeight<=0)throw new Error("Invalid clipboard image dimensions");if(e.type==="image/png")return e;if(r.naturalWidth*r.naturalHeight>16777216)throw new Error("Clipboard image exceeds canvas pixel limit");o=document.createElement("canvas"),o.width=r.naturalWidth,o.height=r.naturalHeight;let i=o.getContext("2d");if(i===null)throw new Error("Clipboard canvas unavailable");i.drawImage(r,0,0);let a=await new Promise((c,d)=>{o.toBlob(s=>s===null?d(new Error("Clipboard PNG encoding failed")):c(s),"image/png");});return ne(n),a}finally{r.onload=null,r.onerror=null,r.src="",URL.revokeObjectURL(t),o!==void 0&&(o.width=o.height=0);}}async function va(e,n){if(n!==void 0&&n!==""){ne(e);let c=false,d={...e,isCurrent:()=>!c&&e.isCurrent()};try{if(!Mt())throw new Error("Image Clipboard API unavailable");let s=(async()=>At(await e.loadOriginal(),d))();return s.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":s,"text/plain":new Blob([n],{type:"text/plain"})})]),ne(e),"original"}catch{return c=true,ne(e),await navigator.clipboard.writeText(n),ne(e),"text"}finally{c=true;}}if(!Mt())throw new Error("Image Clipboard API unavailable");ne(e);let t=false,r={...e,isCurrent:()=>!t&&e.isCurrent()},o={quality:"original"},i=async()=>(ne(r),o.quality="thumbnail",At(await e.loadThumbnail(),r)),a=(async()=>{try{return await At(await e.loadOriginal(),r)}catch(c){ne(r);try{return await i()}catch(d){throw ne(r),new AggregateError([c,d],"Original and thumbnail copy failed")}}})();a.catch(()=>{});try{try{await navigator.clipboard.write([new ClipboardItem({"image/png":a})]);}catch(c){if(ne(r),typeof c=="object"&&c!==null&&"name"in c&&(c.name==="NotAllowedError"||c.name==="SecurityError")||(await a,ne(r),o.quality==="thumbnail"))throw c;let d=i();d.catch(()=>{}),await navigator.clipboard.write([new ClipboardItem({"image/png":d})]);}return ne(r),o.quality}finally{t=true;}}var K=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="MediaTransferError",this.code=n;}};function Aa(e){return e instanceof K?e.code:void 0}function qe(e){if(e instanceof K)return e.code==="upload-timeout"?"timeout":e.code!=="multipart-upload-failed"?void 0:qe(e.cause);if(!(e instanceof Error))return;let n=e;if(["ExpiredToken","ExpiredTokenException","RequestExpired","TokenRefreshRequired"].includes(n.Code??n.name))return "credentials-expired";let t=n.$metadata?.httpStatusCode;if(t===429||t!==void 0&&t>=500&&t<=599||n.message.startsWith("XHR_HTTP_HANDLER_ERROR:")||n.name==="NetworkError")return "network"}var Ma=3600*1e3,Sa=300*1e3;function ve(...e){for(let n of e){if(typeof n!="string"&&typeof n!="number")continue;let t=String(n).trim();if(t!=="")return t}return ""}function xa(e){let n=Number(e);if(!(!Number.isFinite(n)||n<=0))return n>1e12?n/1e3:n}function _a(e){let n=e.replace(/\/+$/,"");return n===""?"":/^https?:\/\//i.test(n)?n:`https://${n}`}function co(e){if(e===null||typeof e!="object")throw new K("credentials-invalid","S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u56DE\u5305\u4E0D\u662F\u5BF9\u8C61");let n=e,t=ve(n.access_key_id,n.accessKeyId),r=ve(n.secret_key,n.secretKey,n.secretAccessKey),o=ve(n.session_token,n.sessionToken).replace(/\s+/g,""),i=ve(n.bucket),a=ve(n.region),c=_a(ve(n.dns_point,n.dnsPoint)),d=[t===""?"access_key_id":"",r===""?"secret_key":"",o===""?"session_token":"",i===""?"bucket":"",a===""?"region":"",c===""?"dns_point":""].filter(b=>b!=="");if(d.length>0)throw new K("credentials-invalid",`S3 \u4E0A\u4F20\u51ED\u8BC1\u683C\u5F0F\u65E0\u6548\uFF1A\u7F3A\u5C11 ${d.join("\u3001")}`);let s=xa(n.expiration??n.expiresAtSeconds),y=ve(n.key_prefix,n.keyPrefix),h=ve(n.identity_id,n.identityId);return {accessKeyId:t,secretAccessKey:r,sessionToken:o,bucket:i,region:a,dnsPoint:c,...s===void 0?{}:{expiresAtSeconds:s},...y===""?{}:{keyPrefix:y},...h===""?{}:{identityId:h}}}function ka(e,n){if(n-e.fetchedAtMs>=Ma)return false;let{expiresAtSeconds:t}=e.credential;return t===void 0?true:t*1e3-Sa>n}function uo(e){let n=new Map,t=new Map;async function r(o,i){let a;try{a=await e({bucket:o,forceRefresh:i});}catch(d){let s=d instanceof Error?d.message:String(d);throw new K("credentials-request-failed",`S3 \u4E0A\u4F20\u51ED\u8BC1\u83B7\u53D6\u5931\u8D25\uFF1Abucket=${o}\uFF1B\u539F\u56E0\uFF1A${s}`,{cause:d})}let c=co(a);return n.set(o,{credential:c,fetchedAtMs:Date.now()}),c}return {resolve(o,i){if(e===void 0)return Promise.reject(new K("credentials-provider-missing","media upload: \u5BBF\u4E3B\u672A\u6CE8\u5165 getUploadCredentials\uFF0C\u65E0\u6CD5\u7533\u8BF7 S3 \u4E34\u65F6\u51ED\u8BC1"));let a=i?.forceRefresh===true,c=a?void 0:n.get(o);if(c!==void 0&&ka(c,Date.now()))return Promise.resolve(c.credential);n.delete(o);let d=t.get(o);if(d!==void 0)return d;let s=r(o,a).finally(()=>{t.get(o)===s&&t.delete(o);});return t.set(o,s),s}}}function Ra(){if(typeof window>"u"||typeof document>"u")return {recordingSupported:false,recordingBlockers:["no-media-devices"],playbackSupported:false};let e=[];window.isSecureContext===false&&e.push("insecure-context"),(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)&&e.push("no-media-devices"),typeof MediaRecorder>"u"&&e.push("no-media-recorder");let n=window,t=window.AudioContext!==void 0||n.webkitAudioContext!==void 0,r=window.OfflineAudioContext!==void 0||n.webkitOfflineAudioContext!==void 0;return (!t||!r)&&e.push("audio-context-blocked"),{recordingSupported:e.length===0,recordingBlockers:e,playbackSupported:typeof Audio<"u"}}var q=class extends Error{code;constructor(n,t,r){super(t??n,r),this.name="VoiceError",this.code=n;}};function Nn(e){return e instanceof q?e.code:void 0}function lo(e){switch(e instanceof DOMException||e instanceof Error?e.name:""){case "NotAllowedError":case "SecurityError":case "PermissionDeniedError":return new q("permission-denied","\u9EA6\u514B\u98CE\u6743\u9650\u88AB\u62D2\u7EDD",{cause:e});case "NotFoundError":case "DevicesNotFoundError":return new q("device-not-found","\u672A\u627E\u5230\u53EF\u7528\u9EA6\u514B\u98CE",{cause:e});case "NotReadableError":case "TrackStartError":case "AbortError":return new q("device-busy","\u9EA6\u514B\u98CE\u88AB\u5360\u7528\u6216\u542F\u52A8\u5931\u8D25",{cause:e});default:return new q("device-busy",e instanceof Error?e.message:"\u9EA6\u514B\u98CE\u542F\u52A8\u5931\u8D25",{cause:e})}}var ce=16e3,Ea=new URL("./speex-runtime.txt",import.meta.url).href,St=null,Ta=15e3;async function Da(){document.querySelector('script[data-speex-runtime="true"]')?.remove();let e=new AbortController,n=setTimeout(()=>e.abort(new Error("Speex runtime fetch timeout")),Ta),t;try{t=await fetch(Ea,{signal:e.signal});}finally{clearTimeout(n);}if(!t.ok)throw new Error(`Speex runtime fetch failed: ${t.status}`);let r=await t.text();if(r.trimStart().startsWith("<"))throw new Error("Speex runtime fetch returned HTML instead of script");let o=document.createElement("script");o.dataset.speexRuntime="true",o.text=r,document.head.appendChild(o);}async function xt(){let e=typeof window>"u"?void 0:window;return e?.__speexInH5!==void 0?e.__speexInH5:(St??=(async()=>{if(e===void 0||typeof document>"u")throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u4EC5\u53EF\u5728\u6D4F\u89C8\u5668\u73AF\u5883\u52A0\u8F7D");if(await Da(),e.__speexInH5===void 0&&e.initAudio?.(),e.__speexInH5===void 0)throw new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u521D\u59CB\u5316\u5931\u8D25");return e.__speexInH5})().catch(n=>{throw St=null,n instanceof q?n:new q("codec-unavailable","Speex \u8FD0\u884C\u65F6\u52A0\u8F7D\u5931\u8D25",{cause:n})}),St)}function po(){xt().catch(()=>{});}function Ae(e,n,t){for(let r=0;r<t.length;r+=1)e.setUint8(n+r,t.charCodeAt(r));}function Ua(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);Ae(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ae(o,8,"WAVE"),Ae(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),Ae(o,36,"data"),o.setUint32(40,e.length*2,true);let i=44;for(let a=0;a<e.length;a+=1){let c=Math.max(-1,Math.min(1,e[a]??0));o.setInt16(i,c<0?c*32768:c*32767,true),i+=2;}return r}function _t(e){if(e instanceof Int16Array)return e;let n=new Int16Array(e.length);for(let t=0;t<e.length;t+=1){let r=Math.max(-1,Math.min(1,e[t]??0));n[t]=r<0?r*32768:r*32767;}return n}var Oa=40,kt=120,Ba=40,Rt=80;function Na(e,n){let t=Math.min(Math.floor(n*Oa/1e3),Math.floor(e.length/2));for(let r=0;r<t;r+=1){let o=r/t;e[r]=Math.round((e[r]??0)*o);let i=e.length-1-r;e[i]=Math.round((e[i]??0)*o);}return e}function Et(e,n){if(e.length===0)return e;let t=Math.min(Math.floor(n*kt/1e3),Math.max(0,e.length-1)),r=t>0?e.subarray(t):e,o=new Float32Array(r),i=Math.min(Math.floor(n*Ba/1e3),Math.floor(o.length/2));for(let a=0;a<i;a+=1){let c=a/i;o[a]=(o[a]??0)*c;let d=o.length-1-a;o[d]=(o[d]??0)*c;}return o}function Kn(e,n){let r=new ArrayBuffer(44+e.length*2),o=new DataView(r);return Ae(o,0,"RIFF"),o.setUint32(4,36+e.length*2,true),Ae(o,8,"WAVE"),Ae(o,12,"fmt "),o.setUint32(16,16,true),o.setUint16(20,1,true),o.setUint16(22,1,true),o.setUint32(24,n,true),o.setUint32(28,n*2,true),o.setUint16(32,2,true),o.setUint16(34,16,true),Ae(o,36,"data"),o.setUint32(40,e.length*2,true),new Int16Array(r,44).set(e),new Uint8Array(r)}function Ka(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t+=1)n[t]=e.charCodeAt(t)&255;return n}function Ga(e){let t="";for(let r=0;r<e.length;r+=32768)t+=String.fromCharCode(...e.subarray(r,Math.min(r+32768,e.length)));return t}async function fo(e,n){let t=await xt(),r=Math.floor(n*Rt/1e3),o=new Float32Array(r+e.length);o.set(e,r);let i=Ua(o,n);try{return Ka(t.encodeFile(i))}catch(a){throw new q("encode-failed","\u8BED\u97F3\u7F16\u7801\u5931\u8D25",{cause:a})}}async function mo(e){let n=await xt();try{let[t,r]=n.decodeFile(Ga(e));if(t.length===0)throw new Error("decoded empty pcm");let o=Na(_t(t),r.rate>0?r.rate:ce),i=r.rate>0?r.rate:ce;return {samples:o,sampleRate:i,durationMs:Math.round(o.length/i*1e3)}}catch(t){throw t instanceof q?t:new q("decode-failed","\u8BED\u97F3\u89E3\u7801\u5931\u8D25",{cause:t})}}async function go(e){let n=await mo(e);return {wavData:Kn(n.samples,n.sampleRate),durationMs:n.durationMs}}var La=.5,Ha=2;function yo(e){if(typeof e!="number"||!Number.isFinite(e))throw new q("invalid-playback-rate",`\u64AD\u653E\u901F\u7387\u5FC5\u987B\u662F\u6709\u9650\u6570\u5B57\uFF0C\u6536\u5230 ${String(e)}`);return Math.min(Math.max(e,La),Ha)}function Fa(e={}){let n=e.cacheMax??8,t={activeId:"",isPlaying:false,loadingId:"",progress:0,currentTimeMs:0,errorIds:new Set,playbackRate:e.playbackRate===void 0?1:yo(e.playbackRate)},r=new Set;function o(){for(let p of r)p(t);}let i=null,a=new Map,c=0,d=false,s=false;function y(p){let u=a.get(p);return u!==void 0&&(a.delete(p),a.set(p,u)),u}function h(p,u){if(d)return URL.revokeObjectURL(u.url),u;let w=a.get(p);if(w!==void 0)return URL.revokeObjectURL(u.url),a.delete(p),a.set(p,w),w;for(a.set(p,u);a.size>n;){let A;for(let v of a.keys())if(v!==t.activeId){A=v;break}if(A===void 0)break;let k=a.get(A);a.delete(A),k!==void 0&&URL.revokeObjectURL(k.url);}return u}function b(p){p.paused||p.pause(),p.removeAttribute("src");try{p.load();}catch{}}function m(p,u){return !d&&p===c&&t.activeId===u}function M(p){p.defaultPlaybackRate=t.playbackRate,p.playbackRate=t.playbackRate;}function I(){if(i!==null)return i;let p=new Audio;return p.preload="auto",M(p),p.addEventListener("timeupdate",()=>{t.activeId!==""&&(t.currentTimeMs=p.currentTime*1e3,t.progress=p.duration>0?Math.min(1,p.currentTime/p.duration):0,o());}),p.addEventListener("ended",()=>{R(),b(p),o();}),p.addEventListener("pause",()=>{t.activeId!==""&&(t.isPlaying=false,o());}),i=p,p}function R(){t.activeId="",t.isPlaying=false,t.progress=0,t.currentTimeMs=0;}function D(){c+=1,s=false,t.loadingId="",R(),i!==null&&b(i),o();}function E(p){t.errorIds=new Set([...t.errorIds,p]);}function x(p){if(!t.errorIds.has(p))return;let u=new Set(t.errorIds);u.delete(p),t.errorIds=u;}async function C(p,u){let w=y(p);if(w!==void 0)return {entry:w};let A;try{A=await u();}catch(k){return {entry:null,error:{code:Nn(k),cause:k}}}if(A===null)return {entry:null};try{let{wavData:k,durationMs:v}=await go(A),S={url:URL.createObjectURL(new Blob([k],{type:"audio/wav"})),durationMs:v};return {entry:h(p,S)}}catch(k){return {entry:null,error:{code:Nn(k),cause:k}}}}async function _(p,u){if(d)return;let w=I();if(x(p),t.activeId===p){if(t.isPlaying){w.pause();return}let v=++c;try{await w.play();}catch{if(!m(v,p))return;E(p),o();return}if(!m(v,p))return;t.isPlaying=true,o(),u.onPlayStart?.();return}if(t.loadingId===p)return;D();let A=++c;t.loadingId=p,o();let k=await C(p,u.load);if(A===c){if(t.loadingId="",k.entry===null){E(p),o(),k.error!==void 0&&u.onDecodeError?.(k.error.code,k.error.cause);return}w.src=k.entry.url,M(w),t.activeId=p,t.progress=0,t.currentTimeMs=0,o();try{await w.play();}catch(v){if(!m(A,p))return;R(),b(w),E(p),o(),u.onDecodeError?.(void 0,v);return}m(A,p)&&(t.isPlaying=true,o(),u.onPlayStart?.());}}function U(p,u){i===null||t.activeId!==p||!Number.isFinite(i.duration)||i.duration<=0||(i.currentTime=Math.min(Math.max(u,0),.999)*i.duration);}function l(p){i===null||t.activeId!==p||t.isPlaying&&(s=true,i.pause());}function f(p){if(i===null||t.activeId!==p||!s)return;s=false;let u=++c;i.play().then(()=>{m(u,p)&&(t.isPlaying=true,o());}).catch(()=>{m(u,p)&&(E(p),o());});}function g(p){let u=yo(p);u!==t.playbackRate&&(t.playbackRate=u,i!==null&&M(i),o());}function P(){if(!d){d=true,D();for(let p of a.values())URL.revokeObjectURL(p.url);a.clear(),r.clear(),i=null;}}return {getState:()=>t,subscribe:p=>(r.add(p),()=>r.delete(p)),toggle:_,seek:U,beginScrub:l,endScrub:f,setPlaybackRate:g,stop:D,dispose:P}}function qa(e){if(e.length===0)return 0;let n=0;for(let t=0;t<e.length;t+=1){let r=((e[t]??128)-128)/128;n+=r*r;}return Math.min(1,Math.sqrt(n/e.length)*Math.SQRT2)}function ja(e,n,t){if(e.length===0||n<=0||t<=0)return 0;let r=n/t,o=0,i=0;for(let a=0;a<e.length;a+=1){let c=a*r,d=.2;c<200?d=.15:c<300?d=.4:c<=3400?d=1:c<=6e3&&(d=.45),o+=(e[a]??0)/255*d,i+=d;}return i>0?o/i:0}function ho(e){let n=qa(e.timeDomain),t=ja(e.frequency,e.sampleRate,e.fftSize),r=n*.55+t*.45;return Math.min(1,r*e.boost)**.72}var Gn=class{constructor(n=.45,t=.18){this.attack=n;this.release=t;}attack;release;value=0;next(n){let t=Math.min(1,Math.max(0,n));return t>this.value?this.value+=(t-this.value)*this.attack:this.value+=(t-this.value)*this.release,this.value}};var $a=5e3,Tt=15e3,Ja=25e3,Va=25e3;function an(e,n,t){return new Promise((r,o)=>{let i=setTimeout(()=>o(new Error(t)),n);e.then(a=>{clearTimeout(i),r(a);},a=>{clearTimeout(i),o(a);});})}async function za(){if(typeof navigator>"u"||navigator.mediaDevices?.getUserMedia===void 0)throw new q("no-media-devices","\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u9EA6\u514B\u98CE\u91C7\u96C6");let e=navigator.mediaDevices.getUserMedia({audio:Wa()});try{return await an(e,Va,"\u9EA6\u514B\u98CE\u6388\u6743\u8BF7\u6C42\u8D85\u65F6")}catch(n){throw e.then(t=>t.getTracks().forEach(r=>r.stop())).catch(()=>{}),lo(n)}}function Wa(){return {channelCount:1,echoCancellation:true,noiseSuppression:true,autoGainControl:true}}var Ya=50,Xa=.12,Qa=2.6,Za=.06,es=256;function ns(){return typeof MediaRecorder>"u"?"":["audio/webm","audio/webm;codecs=opus","audio/mp4","audio/aac","audio/ogg;codecs=opus"].find(n=>MediaRecorder.isTypeSupported(n))??""}async function ts(e,n,t){let r=window.AudioContext??window.webkitAudioContext,o=window.OfflineAudioContext??window.webkitOfflineAudioContext;if(o===void 0||t==null&&r===void 0)throw new q("audio-context-blocked","AudioContext \u4E0D\u53EF\u7528");let i=t??new r,a=t==null;try{i.state==="suspended"&&await an(i.resume(),Tt,"audioContext.resume timeout").catch(()=>{});let c=await an(i.decodeAudioData(await e.arrayBuffer()),Tt,"decodeAudioData timeout"),d=Math.max(1,Math.ceil(c.duration*n)),s=new o(1,d,n),y=s.createBufferSource();return y.buffer=c,y.connect(s.destination),y.start(0),(await an(s.startRendering(),Tt,"offlineAudioContext.startRendering timeout")).getChannelData(0).slice()}catch(c){throw c instanceof q?c:new q("decode-failed","\u5F55\u97F3\u6BB5\u89E3\u7801\u5931\u8D25",{cause:c})}finally{a&&i.close().catch(()=>{});}}function bo(e){let n=0;for(let o of e)n+=o.length;let t=new Float32Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}async function rs(e={}){if(typeof MediaRecorder>"u")throw new q("no-media-recorder","\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u5F55\u97F3");let n;e.stream!==void 0?n=e.stream:n=await za(),po();let t=ns(),r=e.maxDurationMs??6e4,o="recording",i=[],a=0,c=[],d=null,s=null,y=null,h=[],b=0,m=false;function M(){try{let p;try{p=t!==""?new MediaRecorder(n,{mimeType:t}):new MediaRecorder(n);}catch{p=new MediaRecorder(n);}return h=[],p.ondataavailable=u=>{u.data.size>0&&h.push(u.data);},p.start(250),b=Date.now(),p}catch(p){throw p instanceof q?p:new q("device-busy","\u5F55\u97F3\u5668\u542F\u52A8\u5931\u8D25",{cause:p})}}let I=e.amplitude?.intervalMs??Ya,R=e.amplitude?.boost??Qa,D=e.amplitude?.smoothing??Xa,E=e.amplitude?.minVolume??Za;function x(){let p=Math.floor(r/1e3*ce),u=0;for(let A of i)u+=A.length;if(u>p){let A=p,k=[];for(let v of i){if(A<=0)break;v.length<=A?(k.push(v),A-=v.length):(k.push(v.slice(0,A)),A=0);}i.length=0,i.push(...k);}a=Math.min(a,r);let w=Math.max(0,Math.ceil(r/I));c.length>w&&(c.length=w);}async function C(){if(o!=="recording"){e.onMaxDuration?.();return}e.onMaxDuration?.(),o="paused";let p=P().then(()=>x());y=p;try{await p;}catch(u){console.warn("[im-browser] pauseAtMaxDuration settle failed",u);}}let _=setInterval(()=>{!m&&o==="recording"&&f()>=r&&(m=true,C());},250),U=null,l=null;try{let p=window.AudioContext??window.webkitAudioContext;if(p!==void 0){U=new p,U.state==="suspended"&&U.resume().catch(()=>{});let u=U.createMediaStreamSource(n),w=U.createAnalyser();w.fftSize=es,w.smoothingTimeConstant=D,u.connect(w);let A=new Uint8Array(w.frequencyBinCount),k=new Uint8Array(w.fftSize),v=new Gn;l=setInterval(()=>{if(o!=="recording"||d===null)return;w.getByteFrequencyData(A),w.getByteTimeDomainData(k);let S=ho({timeDomain:k,frequency:A,sampleRate:U.sampleRate,fftSize:w.fftSize,boost:R}),T=v.next(S),O=T<E?0:T;c.push(Math.round(O*255)),e.onAmplitude?.(O);},I);}}catch(p){console.warn("[im-browser] amplitude analyser setup failed",p);}function f(){let p=o==="recording"&&d!==null?Date.now()-b:0;return a+p}function g(){_!==null&&(clearInterval(_),_=null),l!==null&&(clearInterval(l),l=null),U?.close().catch(()=>{}),U=null;for(let p of n.getTracks())p.stop();}function P(){if(s!==null)return s;let p=d;return p===null?Promise.resolve():(d=null,s=(async()=>{await new Promise(A=>{if(p.state==="inactive"){A();return}let k=setTimeout(()=>{console.warn("[im-browser] recorder onstop timed out, settling with received chunks"),A();},$a);p.onstop=()=>{clearTimeout(k),A();},p.stop();});let u=new Blob(h,{type:p.mimeType||t||"audio/webm"});if(h=[],u.size===0)return;let w=await ts(u,ce,U);w.length!==0&&(i.push(w),a+=w.length/ce*1e3);})().finally(()=>{s=null;}),s)}try{d=M();}catch(p){throw o="closed",g(),p}return {getState:()=>o,recordedMs:f,async pause(){o==="recording"&&(o="paused",await P(),(m||a>=r)&&x());},async resume(){o!=="paused"||m||(d=M(),o="recording");},async finish(){if(o==="closed")throw new q("empty-recording","\u5F55\u97F3\u4F1A\u8BDD\u5DF2\u7ED3\u675F");o="closed";let p=async()=>{try{y!==null?await y:await P(),x();}finally{g();}let u=bo(i);if(u.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let w=Et(u,ce);if(w.length===0)throw new q("empty-recording","\u5F55\u97F3\u5185\u5BB9\u4E3A\u7A7A");let A=Math.min(c.length,Math.ceil(kt/I));return {data:await fo(w,ce),durationMs:Math.round(w.length/ce*1e3)+Rt,waveform:c.slice(A),filename:`AUDIO_${Date.now()}.ogg`,mimeType:"audio/ogg"}};try{return await an(p(),Ja,"\u5F55\u97F3\u5B9A\u7A3F\u8D85\u65F6")}catch(u){throw g(),u instanceof q?u:new q("encode-failed","\u5F55\u97F3\u5B9A\u7A3F\u5931\u8D25",{cause:u})}},cancel(){o="closed";let p=d;if(d=null,p!==null&&(p.ondataavailable=null,p.onstop=null,p.state!=="inactive"))try{p.stop();}catch{}i.length=0,g();},async previewWav(){y!==null?await y:s!==null&&await s,x();let p=bo(i),u=Et(p,ce);if(u.length===0)throw new q("empty-recording","\u6682\u65E0\u53EF\u8BD5\u542C\u7684\u5F55\u97F3\u5185\u5BB9");return {wavData:Kn(_t(u),ce),durationMs:Math.round(u.length/ce*1e3)}}}}function Me(e){let n=new Map;return {shouldRenegotiate(t,r,o){if(r===void 0)return true;if(o!==void 0&&!e(o,r))return false;let i=n.get(t);return i!==void 0&&e(i,r)?false:(n.set(t,r),true)},reset(t){n.delete(t);}}}function wo(e,n){return e.length===n.length&&e.every((t,r)=>t===n[r])}var de=class extends Error{constructor(n,t){super(n,t),this.name="ChannelKeyError";}};function Co(e){let n=e.trim(),t=n.replace(/-/g,"+").replace(/_/g,"/");if(t===""||!/^[A-Z0-9+/]*={0,2}$/i.test(t)||t.length%4===1)throw new de("channel secret_key \u4E0D\u662F\u5408\u6CD5 Base64");let r=t.replace(/=+$/,""),o=r+"=".repeat((4-r.length%4)%4),i;try{i=atob(o);}catch(s){throw new de("channel secret_key Base64 \u89E3\u7801\u5931\u8D25",{cause:s})}let a=Uint8Array.from(i,s=>s.charCodeAt(0)&255);if(a.length===0)throw new de("channel secret_key Base64 \u89E3\u7801\u7ED3\u679C\u4E3A\u7A7A");let c=new Uint8Array(16);c.set(a.subarray(0,c.length));let d=n.length===16&&/^[\x20-\x7E]+$/.test(n)?Uint8Array.from(n,s=>s.charCodeAt(0)):void 0;return {canonical:c,...d===void 0?{}:{legacyAscii:d},metadata:{channelKeyCharLength:n.length,decodedByteLength:a.length,padByteCount:Math.max(0,16-a.length),legacyAsciiCandidate:d!==void 0}}}function os(e){let n=new Map,t=new Map,r=new Map,o=new Map,i=Me(wo);function a(C){return {canonical:C.canonical.slice(),...C.legacyAscii===void 0?{}:{legacyAscii:C.legacyAscii.slice()},metadata:{...C.metadata}}}function c(C){return [{strategy:"canonical-base64-pad",key:C.canonical.slice()},...C.legacyAscii===void 0?[]:[{strategy:"legacy-ascii16",key:C.legacyAscii.slice()}]]}function d(C){n.delete(C),t.delete(C),r.delete(C),o.set(C,(o.get(C)??0)+1);}function s(C){let _=o.get(C)??0,U=(async()=>{try{let l=await e.loadSecretKey(C);if(l===null||l.trim()==="")throw new de(`channel secret_key \u7F3A\u5931\uFF08channelId=${C}\uFF09`);let f=Co(l);return (o.get(C)??0)===_&&n.set(C,a(f)),f}catch(l){let f=l instanceof de?l:new de(`channel secret_key \u52A0\u8F7D\u5931\u8D25\uFF08channelId=${C}\uFF09`,{cause:l});throw e.onError?.(f.message,l),f}})().finally(()=>{t.get(C)===U&&t.delete(C);});return t.set(C,U),U}function y(C,_){let U=t.get(C);if(U!==void 0)return U;i.shouldRenegotiate(C,_.staleKey,n.get(C)?.canonical)&&d(C);}function h(C,_){let U=C.trim();if(U===""){let f=new de("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(f.message),Promise.reject(f)}if(_!==void 0){let f=y(U,_);if(f!==void 0)return f.then(a)}let l=n.get(U);return l!==void 0?Promise.resolve(a(l)):t.get(U)??s(U)}function b(C,_){let U=C.trim();if(U===""){let P=new de("channel id \u4E0D\u80FD\u4E3A\u7A7A");return e.onError?.(P.message),Promise.reject(P)}if(_!==void 0){let P=y(U,_);if(P!==void 0)return P.then(p=>p.canonical.slice())}let l=n.get(U);if(l!==void 0)return Promise.resolve(l.canonical.slice());let f=r.get(U);if(f!==void 0)return f;let g=(t.get(U)??s(U)).then(P=>P.canonical.slice()).finally(()=>{r.get(U)===g&&r.delete(U);});return r.set(U,g),g}function m(C){return n.get(C.trim())?.canonical.slice()??null}async function M(C,_){let U=await h(C,_);return c(U)}function I(C){let _=n.get(C.trim());return _===void 0?[]:c(_)}function R(C){let _=n.get(C.trim());return _===void 0?null:{..._.metadata}}function D(C,_){let U=C.trim();if(U==="")throw new de("channel id \u4E0D\u80FD\u4E3A\u7A7A");let l=Co(_);d(U),i.reset(U),n.set(U,a(l));}function E(C){let _=C.trim();_!==""&&(d(_),i.reset(_));}function x(){let C=new Set([...n.keys(),...t.keys(),...r.keys(),...o.keys()]);for(let _ of C)o.set(_,(o.get(_)??0)+1),i.reset(_);n.clear(),t.clear(),r.clear();}return {getChannelKey:b,getCachedChannelKey:m,getChannelKeyCandidates:M,getCachedChannelKeyCandidates:I,getCachedChannelKeyMetadata:R,primeChannelKey:D,clearChannelKey:E,clearAll:x}}function Dt(){let e=globalThis.scheduler;return typeof e?.yield=="function"?e.yield():new Promise(n=>setTimeout(n,0))}var Ut=2654435769,Po=16,ye=8,Ot=16,vo=32;function Ao(e){if(e.length<Ot)throw new Error(`TEA key \u957F\u5EA6\u4E0D\u8DB3\uFF1A${e.length}\uFF0C\u9700 \u2265 ${Ot} \u5B57\u8282`);let n=new DataView(e.buffer,e.byteOffset,Ot);return [n.getUint32(0,true),n.getUint32(4,true),n.getUint32(8,true),n.getUint32(12,true)]}function cn(e,n,t,r,o=new Uint8Array(e.length)){let i=Ao(n),a=Math.floor(e.length/ye),c=r===void 0?a:Math.min(a,Math.floor(r/ye)),d=new DataView(e.buffer,e.byteOffset,e.byteLength),s=new DataView(o.buffer,o.byteOffset,o.byteLength);if(t==="decrypt"){let[h,b,m,M]=i;for(let I=0;I<c*ye;I+=ye){let R=d.getUint32(I,true),D=d.getUint32(I+4,true),E=Math.imul(Ut,16)>>>0;for(let x=0;x<Po;x++)D=D-(Math.imul(R,16)+m^R+E^(R>>>5)+M)>>>0,R=R-(Math.imul(D,16)+h^D+E^(D>>>5)+b)>>>0,E=E-Ut>>>0;s.setUint32(I,R,true),s.setUint32(I+4,D,true);}}else {let[h,b,m,M]=i;for(let I=0;I<c*ye;I+=ye){let R=d.getUint32(I,true),D=d.getUint32(I+4,true),E=0;for(let x=0;x<Po;x++)E=E+Ut>>>0,R=R+(Math.imul(D,16)+h^D+E^(D>>>5)+b)>>>0,D=D+(Math.imul(R,16)+m^R+E^(R>>>5)+M)>>>0;s.setUint32(I,R,true),s.setUint32(I+4,D,true);}}let y=c*ye;return y<e.length&&o.set(e.subarray(y),y),o}function dn(e,n){return cn(n,e,"decrypt")}function un(e,n){return cn(n,e,"encrypt")}function Mo(e,n){return cn(n,e,"encrypt",vo)}function So(e,n){return cn(n,e,"decrypt",vo)}var is=1024*1024,Io=64*1024,as=8;function ss(){return Dt()}function sn(e){if(e?.aborted)throw new DOMException("TEA \u5206\u5757\u5904\u7406\u5DF2\u53D6\u6D88","AbortError")}async function Bt(e,n,t,r=is,o={}){if(!Number.isInteger(r)||r<=0||r%ye!==0)throw new RangeError(`TEA \u5206\u5757\u5927\u5C0F\u5FC5\u987B\u662F ${ye} \u7684\u6B63\u6574\u6570\u500D\uFF1A${r}`);Ao(e);let i=o.yieldToMain??ss,a=o.yieldToMain??(()=>new Promise(y=>setTimeout(y,0))),c=n.size,d=[],s=0;for(;s<c;){sn(o.signal);let y=Math.min(s+r,c),h=new Uint8Array(await n.slice(s,y).arrayBuffer());sn(o.signal);let b=new Uint8Array(h.length),m=performance.now();for(let M=0;M<h.length;M+=Io){sn(o.signal);let I=Math.min(M+Io,h.length);cn(h.subarray(M,I),e,t,void 0,b.subarray(M,I)),I<h.length&&performance.now()-m>=as&&(await a(),sn(o.signal),m=performance.now());}d.push(new Blob([b])),s=y,o.onProgress?.(s,c),s<c&&await i();}return sn(o.signal),new Blob(d)}var xo=8,Ln=16;function cs(e){let n=le.md.md5.create();return n.update(e,"utf8"),n.digest().toHex()}function ko(e){return new TextEncoder().encode(e)}function ds(e){let n=e.length;for(;n>0&&e[n-1]===0;)n-=1;return new TextDecoder().decode(e.subarray(0,n))}function us(e){let n=atob(e),t=new Uint8Array(n.length);for(let r=0;r<n.length;r++)t[r]=n.charCodeAt(r);return t}function ls(e){let n="";for(let t of e)n+=String.fromCharCode(t);return btoa(n)}function ps(e){let n=Math.ceil(e.length/xo)*xo;if(n===e.length)return e;let t=new Uint8Array(n);return t.set(e),t}function Ro(e,n=cs){let t=e.trim();if(t==="")throw new Error("collect TEA key: userId \u4E3A\u7A7A");let r=n(t).replace(/[^0-9a-f]/gi,"");if(r.length<Ln)throw new Error("collect TEA key: MD5 \u957F\u5EA6\u4E0D\u8DB3");let o=ko(r.slice(0,Ln).toUpperCase());if(o.length<Ln)throw new Error("collect TEA key: \u6D3E\u751F\u7ED3\u679C\u4E0D\u8DB3 16 \u5B57\u8282");return o.subarray(0,Ln)}function Eo(e,n,t){return ls(un(Ro(n,t),ps(ko(e))))}function fs(e,n,t){return ds(dn(Ro(n,t),us(e)))}function ms(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Nt(e){let n=e.trim();if(n===""||!n.startsWith("{"))return null;try{return ms(JSON.parse(n))}catch{return null}}function gs(e){let n=e.trim(),t=n.indexOf("}");return t>=0?n.slice(0,t+1):n}function To(e,n,t){let r=Nt(e);if(r!==null)return r;if(e.trim()===""||n.trim()==="")return null;try{let o=fs(e,n,t);return Nt(o)??Nt(gs(o))}catch{return null}}function Do(){return new Worker(new URL("./crypto.worker.js",import.meta.url),{type:"classic",name:"im-crypto"})}function ys(e){if(e===null||typeof e!="object")return false;let n=e;return n.version===1&&Number.isSafeInteger(n.generation)&&n.generation>=0&&typeof n.operationId=="string"&&n.operationId.length<=256}function Uo(e){return ys(e)?e.kind==="ready"||e.kind==="protocol-error"?e.operationId==="":e.operationId===""?false:e.kind==="cancelled"||e.kind==="crypto-error"?true:e.kind==="result"?e.data instanceof ArrayBuffer:e.kind==="batch-result"?Array.isArray(e.items)&&e.items.length>0&&e.items.length<=8&&e.items.every(n=>n!==null&&typeof n=="object"&&Number.isSafeInteger(n.itemIndex)&&n.itemIndex>=0&&n.result!==null&&typeof n.result=="object"&&(n.result.ok===true?n.result.plain instanceof ArrayBuffer:n.result.ok===false&&(n.result.stage==="rsa"||n.result.stage==="tea"))):e.kind==="progress"&&Number.isSafeInteger(e.completed)&&e.completed>0:false}var Cs=16,Ps=12,Is=16,vs=12,Kt=8*1024*1024;function he(e){return !("items"in e)&&"teaKey"in e.input}function Hn(e){return "plain"in e.input?e.input.plain:e.input.cipherData}function Bo(){return Object.assign(new Error("Crypto operation cancelled"),{name:"AbortError"})}function As(e){let n=new Map,t=new Set,r,o=false,i,a=false,c=0,d=0,s,y=0,h=0,b,m=0;function M(u,w,A,k){e.diagnostics?.record(w===void 0?"debug":"error","sdk","crypto",u,()=>{let v=[...n.values()],S=v.filter(T=>!T.sent);return {generation:e.generation,...A===void 0?{}:{operationId:A.request.operationId,durationMs:Date.now()-A.enqueuedAt},data:{pendingCount:n.size,inputBytes:c,activeCount:v.length-S.length,waitingCount:S.length,waitingInputBytes:S.reduce((T,O)=>T+O.bytes,0),rsaCount:v.filter(T=>!("items"in T.request)&&!he(T.request)).length,batchCount:v.filter(T=>"items"in T.request).length,teaCount:v.filter(T=>he(T.request)).length,...A===void 0?{}:{taskKind:"items"in A.request?"batch":he(A.request)?"tea":"rsa",priority:A.request.priority},...k===void 0?{}:{phase:k.phase,phaseElapsedMs:k.phaseElapsedMs,budgetMs:k.budgetMs},...w===void 0?{}:{reason:w},...A?.sentAt===void 0?{}:{queueWaitMs:A.sentAt-A.enqueuedAt,roundtripMs:Date.now()-A.sentAt}}}});}function I(u,w,A){u.settled||(u.settled=true,u.request.signal?.removeEventListener("abort",u.onAbort),A!==void 0?u.reject(A):u.resolve(w));}function R(u){n.delete(u.request.operationId),s===u&&(s=void 0),u.sent&&(c-=u.bytes),t.add(u.request.operationId),t.size>256&&t.delete(t.values().next().value);}function D(){b!==void 0&&clearTimeout(b),b=void 0,r!==void 0&&(r.removeEventListener("message",f),r.removeEventListener("messageerror",g),r.removeEventListener("error",P),r.terminate(),r=void 0);}function E(u,w){if(i===void 0){i=new _(u),D(),u!=="disposed"&&M("crypto-executor-failed",u,w?.task,w);for(let A of n.values())I(A,void 0,i);n.clear(),s=void 0,c=0,t.clear(),u==="disposed"&&M("crypto-executor-disposed");}}function x(u,w){try{return r.postMessage(u,w??[]),!0}catch{return E("messageerror"),false}}function C(u){return {version:1,generation:e.generation,operationId:u}}function _$1(){if(b=void 0,r===void 0||i!==void 0)return;let u=Date.now(),w=Math.max(0,u-m);if(m=u,!a){o?[...n.values()].some(S=>S.sent)&&(h+=w):y+=w;for(let S of n.values())o&&!S.sent&&(S.waitElapsed+=w);let A=e.lifecycleAware?1e4:6e4,k=e.lifecycleAware?3e4:6e4;if(!o&&y>=A)return E("timeout",{phase:"handshake",phaseElapsedMs:y,budgetMs:A});if(h>=k)return E("timeout",{phase:"no-progress",phaseElapsedMs:h,budgetMs:k});let v=[...n.values()].find(S=>!S.sent&&S.waitElapsed>=6e4);if(v!==void 0)return E("timeout",{phase:"admission-wait",phaseElapsedMs:v.waitElapsed,budgetMs:6e4,task:v})}(!o||n.size>0)&&(b=setTimeout(_$1,250));}function U(){if(!(r!==void 0||i!==void 0)){if(e.workerFactory===void 0&&typeof Worker>"u")return E("unavailable");try{r=(e.workerFactory??Do)(),r.addEventListener("message",f),r.addEventListener("messageerror",g),r.addEventListener("error",P);}catch{E("load-failed");return}m=Date.now(),b=setTimeout(_$1,250),x({...C(""),kind:"init"});}}function l(){if(!(!o||r===void 0||i!==void 0))for(;;){let u=[...n.values()].filter(S=>S.sent);if(u.length>=Cs||u.some(S=>S.exclusive||S.bytes>Kt))return;let w=[...n.values()].filter(S=>!S.sent),A=w.find(S=>S.request.priority==="foreground"),k=u.filter(S=>S.request.priority==="background").length<Ps?w.find(S=>S.request.priority==="background"):void 0,v=s??(k!==void 0&&(A===void 0||d>=4)?k:A);if(v===void 0)return;if(u.length>0&&(v.exclusive||v.bytes>Kt)||c>0&&c+v.bytes>Kt){s=v;return}s=void 0,d=v.request.priority==="foreground"?Math.min(4,d+1):0,v.sent=true,v.sentAt=Date.now();for(let S of w)S.waitElapsed=0;c+=v.bytes,u.length===0&&(h=0);try{if("items"in v.request){let S=[...new Set(v.request.items.map(O=>O.input.privateKey))],T=v.request.items.map(O=>({itemIndex:O.itemIndex,keyIndex:S.indexOf(O.input.privateKey),secretKey:new Uint8Array(O.input.secretKey).buffer,cipherData:new Uint8Array(O.input.cipherData).buffer}));if(!x({...C(v.request.operationId),kind:"decrypt-batch",keys:S,items:T,priority:v.request.priority},T.flatMap(O=>[O.secretKey,O.cipherData])))return}else if(he(v.request)){let S=new Uint8Array(v.request.input.teaKey.subarray(0,16)).buffer,T=new Uint8Array(Hn(v.request)).buffer,O="plain"in v.request.input?{...C(v.request.operationId),kind:"encrypt-tea",teaKey:S,plain:T,priority:v.request.priority}:{...C(v.request.operationId),kind:"decrypt-tea",teaKey:S,cipherData:T,priority:v.request.priority};if(!x(O,[S,T]))return}else {let S=new Uint8Array(v.request.input.data).buffer;if(!x({...C(v.request.operationId),kind:"decrypt-rsa",data:S,privateKey:v.request.input.privateKey,priority:v.request.priority},[S]))return}}catch{E("messageerror");return}M("crypto-task-dispatched",void 0,v);}}function f(u){if(i!==void 0)return;if(!Uo(u.data))return E("protocol-mismatch");let w=u.data;if(w.kind==="protocol-error"||w.kind==="ready"&&w.generation!==e.generation)return E("protocol-mismatch");if(w.generation!==e.generation)return;if(w.kind==="ready"){if(o)return E("protocol-mismatch");o=true,h=0,l();return}if(!o)return E("protocol-mismatch");let A=n.get(w.operationId);if(A===void 0)return t.has(w.operationId)?void 0:E("protocol-mismatch");if(!A.sent)return E("protocol-mismatch");if(w.kind==="progress"){if(he(A.request)||w.completed<=A.completed||"items"in A.request&&w.completed>A.request.items.length)return E("protocol-mismatch");A.completed=w.completed,h=0;return}if(w.kind==="cancelled"&&!A.cancelled)return E("protocol-mismatch");let k;if(w.kind==="batch-result"){if(!("items"in A.request))return E("protocol-mismatch");let v=new Map(w.items.map(S=>[S.itemIndex,S.result]));if(v.size!==w.items.length||w.items.length!==A.request.items.length||A.request.items.some(S=>!v.has(S.itemIndex)))return E("protocol-mismatch");k=A.request.items.map(({itemIndex:S})=>{let T=v.get(S);return {itemIndex:S,result:T.ok?{ok:true,plain:new Uint8Array(T.plain)}:T}});}else if((w.kind==="result"||w.kind==="crypto-error")&&"items"in A.request)return E("protocol-mismatch");if(w.kind==="result"&&he(A.request)&&w.data.byteLength!==A.bytes-16)return E("protocol-mismatch");if(!A.cancelled)if(k!==void 0)I(A,k);else if(w.kind==="result"&&!("items"in A.request))I(A,new Uint8Array(w.data));else {if(w.kind==="result"||w.kind==="batch-result")return E("protocol-mismatch");I(A,void 0,Object.assign(new Error("Crypto input could not be processed"),{name:"CryptoComputationError"}));}M(A.cancelled?"crypto-task-cancelled":"crypto-task-completed",void 0,A),R(A),h=0,l();}function g(){E("messageerror");}function P(u){u.preventDefault(),E(o?"crashed":"load-failed");}function p(u){if(i!==void 0)return Promise.reject(i);if(u.signal?.aborted)return Promise.reject(Bo());if(he(u)&&(!(u.input.teaKey instanceof Uint8Array)||u.input.teaKey.byteLength<16||!(Hn(u)instanceof Uint8Array)||Hn(u).byteLength>262144))return Promise.reject(new _("protocol-mismatch"));if("items"in u&&(!Array.isArray(u.items)||u.items.length===0||u.items.length>8||u.items.some(k=>!Number.isSafeInteger(k.itemIndex)||k.itemIndex<0||typeof k.input.privateKey!="string"||!(k.input.secretKey instanceof Uint8Array)||!(k.input.cipherData instanceof Uint8Array))||new Set(u.items.map(k=>k.itemIndex)).size!==u.items.length))return Promise.reject(new _("protocol-mismatch"));let w="items"in u?u.items.reduce((k,v)=>k+v.input.secretKey.byteLength+v.input.cipherData.byteLength,0)+[...new Set(u.items.map(k=>k.input.privateKey))].reduce((k,v)=>k+v.length*2,0):he(u)?Hn(u).byteLength+16:u.input.data.byteLength+u.input.privateKey.length*2;if("items"in u&&u.items.length>1&&w>262144)return Promise.reject(new _("protocol-mismatch"));if(u.generation!==e.generation||u.operationId===""||u.operationId.length>256||n.has(u.operationId)||t.has(u.operationId))return Promise.reject(new _("protocol-mismatch"));let A=[...n.values()].filter(k=>!k.sent);return A.length>=Is||u.priority==="background"&&A.filter(k=>k.request.priority==="background").length>=vs?Promise.reject(new _("queue-full")):new Promise((k,v)=>{let S={request:"items"in u?{...u,items:u.items.map(T=>({itemIndex:T.itemIndex,input:{...T.input}}))}:he(u)?{...u,input:{...u.input}}:{...u,input:{...u.input}},resolve:k,reject:v,sent:false,settled:false,cancelled:false,bytes:w,exclusive:"items"in u&&w>262144,completed:0,waitElapsed:0,enqueuedAt:Date.now(),onAbort(){S.cancelled=true,I(S,void 0,Bo()),S.sent?x({...C(u.operationId),kind:"cancel"}):(R(S),l());}};n.set(u.operationId,S),u.signal?.addEventListener("abort",S.onAbort,{once:true}),U(),r!==void 0&&b===void 0&&(m=Date.now(),b=setTimeout(_$1,250)),l();})}return {decryptRsa:u=>p(u),decryptBatch:u=>p(u),decryptTea:u=>p(u),encryptTea:u=>p(u),promote(u){let w=n.get(u);w===void 0||w.cancelled||(w.request.priority="foreground",w.sent&&x({...C(u),kind:"promote"}),l());},setSuspended(u){a=u,m=Date.now();},dispose(){E("disposed");}}}var Ms="core";var ln=class extends Error{code=502;constructor(n,t){super(`core JSON \u4F20\u8F93\u5931\u8D25\uFF1A${n||"unknown transport error"}`,t===void 0?void 0:{cause:t}),this.name="CoreJsonTransportError";}},Q=class extends Error{businessCode;operation;constructor(n,t,r){super(`${n}\u5931\u8D25\uFF1Acode=${t}${r?` ${r}`:""}`),this.name="CoreJsonBusinessError",this.businessCode=t,this.operation=n;}};async function B(e,n,t,r){let o=r!==void 0&&"responseMode"in r&&r.responseMode==="strict",i;try{i=await e(n,{target:Ms,data:t,...r?.method===void 0?{}:{method:r.method},...r?.headers===void 0?{}:{headers:r.headers},...r?.prefix===void 0?{}:{prefix:r.prefix}});}catch(a){throw o?new ln(a instanceof Error?a.message:String(a),a):a}if(o){let a=typeof i.msg=="string"?i.msg:"";if(i.code===502)throw new ln(a);return i.code!==200?{ok:false,code:i.code,message:a,data:i.data}:{ok:true,code:200,message:a,data:i.data}}return {code:i.code,data:i.code===200&&i.data!=null?i.data:null}}function No(e,n){let t=n.clientType===void 0?{public_key:n.publicKey}:{public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return B(e,"/user/encrypt_info/info",t,r)}function je(e,n){return n===void 0?e:new Promise((t,r)=>{let o=()=>r(new DOMException("\u5BC6\u94A5\u534F\u5546\u7B49\u5F85\u5DF2\u53D6\u6D88","AbortError")),i=()=>n.removeEventListener("abort",o);n.aborted?o():n.addEventListener("abort",o,{once:true}),e.then(a=>{i(),t(a);},a=>{i(),r(a);});})}function Ss(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}var xs=0;function _s(e){let n=e.clientType,t=new Map,r=new Map,o=Me((E,x)=>E===x),i=++xs,a=0,c=false,d=null,s=null;function y(E){if(c||E?.aborted===true)throw new DOMException("\u7528\u6237\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function h(){if(y(),d!==null)return Promise.resolve(d);if(s!==null)return s;let E=Promise.resolve().then(()=>(y(),e.crypto.generateTempKeyPair())).then(x=>(y(),d=x,x)).finally(()=>{s===E&&(s=null);});return s=E,E}function b(E,x,C){if(y(C),$$1(x)||x instanceof Error&&x.name==="AbortError")throw x;return e.onError?.(E,x),null}async function m(E,x){let C=x.controller.signal;y(C);let _;try{_=await h(),y(C);}catch(g){return b(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08userId=${E}\uFF09`,g,C)}let U;try{U=await No(e.client,{publicKey:_.publicKeyBase64,clientType:n}),y(C);}catch(g){return b(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${E}\uFF09`,g,C)}if(U.data===null)return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08userId=${E}\uFF0Ccode=${U.code}\uFF09`),null;let l=U.data.prv_key??U.data.prvKey??"",f=String(U.data.version??"").trim();if(l==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08userId=${E}\uFF09`),null;try{let g=await e.cryptoExecutor.decryptRsa({operationId:x.operationId,generation:e.generation,input:{data:Ss(l),privateKey:_.privateKey},priority:x.priority,signal:C});y(C);let P=new TextDecoder().decode(g).trim();if(P==="")return e.onError?.(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08userId=${E}\uFF09`),null;let p=U.data.pub_key?.trim(),u={privateKey:P,version:f,...p?{publicKey:p}:{}};return t.set(E,u),u}catch(g){return b(`\u7528\u6237\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08userId=${E}\uFF09`,g,C)}}async function M(E,x){y(x?.signal);let C=E.trim();if(C==="")return null;let _=r.get(C),U=x!==void 0&&("staleKey"in x||x.signal===void 0&&x.priority===void 0);_===void 0&&U&&o.shouldRenegotiate(C,x.staleKey,t.get(C)?.privateKey)&&t.delete(C);let l=t.get(C);if(_===void 0&&l!==void 0)return await Promise.resolve(),y(x?.signal),l;if(_===void 0){let g={operationId:`user-key:${i}:${++a}`,controller:new AbortController,priority:x?.priority??"foreground"},P=je(m(C,g),g.controller.signal).finally(()=>{r.get(C)?.operationId===g.operationId&&r.delete(C);});_=Object.assign(g,{promise:P}),r.set(C,_);}(x?.priority??"foreground")==="foreground"&&R(C);let f=await je(_.promise,x?.signal);return y(_.controller.signal),y(x?.signal),f}function I(E){return c?null:t.get(E.trim())??null}function R(E){let x=r.get(E.trim());c||x===void 0||x.priority==="foreground"||(x.priority="foreground",e.cryptoExecutor.promote(x.operationId));}function D(){if(!c){c=true;for(let[E,x]of r)x.controller.abort(),o.reset(E);for(let E of t.keys())o.reset(E);r.clear(),t.clear(),o=Me((E,x)=>E===x),d=null,s=null;}}return {getUserPrivateKey:M,getCachedPrivateKey:I,dispose:D,promote:R}}function Ko(e,n){let t=n.clientType===void 0?{group_id:n.groupId,public_key:n.publicKey}:{group_id:n.groupId,public_key:n.publicKey,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return B(e,"/user_group/encrypt_info",t,r)}function ks(e){let n=e.trim().replace(/-/g,"+").replace(/_/g,"/"),t=n+"=".repeat((4-n.length%4)%4),r=atob(t),o=new Uint8Array(r.length);for(let i=0;i<r.length;i++)o[i]=r.charCodeAt(i)&255;return o}var Rs=0;function Es(e){let n=e.clientType,t=new Map,r=new Map,o=new Map,i=Me((C,_)=>C===_),a=++Rs,c=0,d=false,s=null,y=null;function h(C){if(d||C?.aborted===true)throw new DOMException("\u7FA4\u5BC6\u94A5\u534F\u5546\u5DF2\u53D6\u6D88","AbortError")}function b(){if(h(),s!==null)return Promise.resolve(s);if(y!==null)return y;let C=Promise.resolve().then(()=>(h(),e.crypto.generateTempKeyPair())).then(_=>(h(),s=_,_)).finally(()=>{y===C&&(y=null);});return y=C,C}function m(C,_,U){if(h(U),$$1(_)||_ instanceof Error&&_.name==="AbortError")throw _;return e.onError?.(C,_),null}async function M(C,_){let U=_.controller.signal;h(U);let l;try{l=await b(),h(U);}catch(w){return m(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u751F\u6210\u4E34\u65F6 RSA \u5BC6\u94A5\u5931\u8D25\uFF08groupId=${C}\uFF09`,w,U)}let f;try{f=await Ko(e.client,{groupId:C,publicKey:l.publicKeyBase64,clientType:n}),h(U);}catch(w){return m(`\u7FA4\u5BC6\u94A5\u534F\u5546\u8BF7\u6C42\u5F02\u5E38\uFF08groupId=${C}\uFF09`,w,U)}if(f.data===null)return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u4E1A\u52A1\u5931\u8D25\uFF08groupId=${C}\uFF0Ccode=${f.code}\uFF09`),null;let g=f.data,P=String(g.prv_key??g.prvKey??g.private_key??"").trim(),p=String(g.pub_key??g.pubKey??g.public_key??"").trim(),u=String(g.version??"").trim();if(P==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\u54CD\u5E94\u7F3A\u5C11 prv_key\uFF08groupId=${C}\uFF09`),null;try{let w=await e.cryptoExecutor.decryptRsa({operationId:_.operationId,generation:e.generation,input:{data:ks(P),privateKey:l.privateKey},priority:_.priority,signal:U});h(U);let A=new TextDecoder().decode(w).trim();if(A==="")return e.onError?.(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u89E3\u51FA\u7684\u79C1\u94A5\u4E3A\u7A7A\uFF08groupId=${C}\uFF09`),null;let k={privateKey:A,publicKey:p,version:u};return t.set(C,k),k}catch(w){return m(`\u7FA4\u5BC6\u94A5\u534F\u5546\uFF1A\u4E34\u65F6\u79C1\u94A5\u89E3 prv_key \u5931\u8D25\uFF08groupId=${C}\uFF09`,w,U)}}async function I(C,_){h(_?.signal);let U=C.trim(),l=r.get(U)??0,f=()=>{if(h(_?.signal),l!==(r.get(U)??0))throw new DOMException("\u7FA4\u5BC6\u94A5\u5DF2\u6E05\u7406","AbortError")};if(U==="")return null;let g=o.get(U),P=_!==void 0&&("staleKey"in _||_.signal===void 0&&_.priority===void 0);g===void 0&&P&&i.shouldRenegotiate(U,_.staleKey,t.get(U)?.privateKey)&&t.delete(U);let p=t.get(U);if(g===void 0&&p!==void 0)return await Promise.resolve(),f(),p;if(g===void 0){let w={operationId:`group-key:${a}:${++c}`,controller:new AbortController,priority:_?.priority??"foreground"},A=je(M(U,w),w.controller.signal).finally(()=>{o.get(U)?.operationId===w.operationId&&o.delete(U);});g=Object.assign(w,{promise:A}),o.set(U,g);}(_?.priority??"foreground")==="foreground"&&D(U);let u=await je(g.promise,_?.signal);return h(g.controller.signal),f(),u}function R(C){return d?null:t.get(C.trim())??null}function D(C){let _=o.get(C.trim());d||_===void 0||_.priority==="foreground"||(_.priority="foreground",e.cryptoExecutor.promote(_.operationId));}function E(){if(!d){d=true;for(let[C,_]of o)_.controller.abort(),i.reset(C);for(let C of t.keys())i.reset(C);o.clear(),t.clear(),i=Me((C,_)=>C===_),s=null,y=null;}}function x(C){let _=C.trim();r.set(_,(r.get(_)??0)+1),o.get(_)?.controller.abort(),o.delete(_),t.delete(_),i.reset(_);}return {getGroupKeys:I,getCachedGroupKeys:R,getCachedGroupKeyVersion:C=>R(C)?.version??null,clearGroupKeys:x,dispose:E,promote:D}}async function pn(e,n){let t=n.clientType===void 0?{other_user_openid:n.userId}:{other_user_openid:n.userId,clientType:n.clientType},r=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await B(e,"/user/info/other",t,r)).data}function Ts(e){let n=e.clientType,t=new Map,r=new Map;async function o(a){try{let d=((await pn(e.client,{userId:a,clientType:n}))?.public_key??"").trim();return d===""?(e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\uFF1A/user/info/other \u65E0 public_key\uFF08userId=${a}\uFF09`),null):(t.set(a,d),d)}catch(c){return e.onError?.(`\u53D6\u5BF9\u7AEF\u516C\u94A5\u8BF7\u6C42\u5F02\u5E38\uFF08userId=${a}\uFF09`,c),null}}function i(a,c){let d=a.trim();if(d==="")return Promise.resolve(null);c?.force===true&&t.delete(d);let s=t.get(d);if(s!==void 0)return Promise.resolve(s);let y=r.get(d);if(y!==void 0)return y;let h=o(d).finally(()=>{r.get(d)===h&&r.delete(d);});return r.set(d,h),h}return {getPeerPublicKey:i}}function Ds(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Us(e){return Uint8Array.from(e,n=>n.charCodeAt(0)&255)}function Os(e){return e.replace(/(.{64})/g,`$1
|
|
2
|
-
`).trim()}function Bs(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u79C1\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return le.pki.privateKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return le.pki.privateKeyFromAsn1(le.asn1.fromDer(le.util.decode64(t)))}catch(i){r.push(i);}let o=Os(t);for(let i of ["PRIVATE KEY","RSA PRIVATE KEY"])try{return le.pki.privateKeyFromPem(`-----BEGIN ${i}-----
|
|
3
|
-
${o}
|
|
4
|
-
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u79C1\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 PKCS1-DER / PKCS8-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function*Ns(e){let n=Bs(e.privateKey),t=Math.ceil(n.n.bitLength()/8),{data:r}=e;if(r.length===0)throw new Error("RSA \u89E3\u5BC6\uFF1A\u5BC6\u6587\u4E3A\u7A7A");let o=[];for(let d=0;d<r.length;d+=t){let s=Math.min(d+t,r.length);try{let y=n.decrypt(Ds(r.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Us(y)),yield o.length;}catch(y){let h=y instanceof Error?y.message:String(y);throw new Error(`RSA-PKCS1 \u89E3\u5BC6\u5931\u8D25\uFF08\u5BC6\u6587 ${r.length}B\uFF0C\u5757 ${d}..${s}\uFF0CkeySize ${t}B\uFF0C\u79C1\u94A5 ${n.n.bitLength()}bit\uFF09\uFF1A${h}`)}}let i=o.reduce((d,s)=>d+s.length,0),a=new Uint8Array(i),c=0;for(let d of o)a.set(d,c),c+=d.length;return a}function Gt(e){let n=Ns(e),t=n.next();for(;!t.done;)t=n.next();return t.value}var De=16;function Ks(e){let n="";for(let t of e)n+=String.fromCharCode(t);return n}function Gs(e){let n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t)&255;return n}function Ls(e){return e.replace(/(.{64})/g,`$1
|
|
5
|
-
`).trim()}function Hs(e){return e.replace(/-----BEGIN[^-]+-----/g,"").replace(/-----END[^-]+-----/g,"").replace(/\s+/g,"")}function Fs(e){let n=Gt({data:e.secretKey,privateKey:e.privateKey});if(n.length<De)throw new Error(`\u7AEF\u5230\u7AEF\u89E3\u5BC6\u5931\u8D25\uFF1ARSA \u89E3\u51FA\u7684 teaKey \u957F\u5EA6 ${n.length} < ${De}`);return dn(n,e.cipherData)}function qs(e){let n=(e??"").trim();if(n==="")throw new Error("RSA \u516C\u94A5\u4E3A\u7A7A");if(n.includes("-----BEGIN"))return le.pki.publicKeyFromPem(n);let t=n.replace(/\s+/g,""),r=[];try{return le.pki.publicKeyFromAsn1(le.asn1.fromDer(le.util.decode64(t)))}catch(i){r.push(i);}let o=Ls(t);for(let i of ["PUBLIC KEY","RSA PUBLIC KEY"])try{return le.pki.publicKeyFromPem(`-----BEGIN ${i}-----
|
|
6
|
-
${o}
|
|
7
|
-
-----END ${i}-----`)}catch(a){r.push(a);}throw new Error(`RSA \u516C\u94A5\u89E3\u6790\u5931\u8D25\uFF08\u5DF2\u8BD5 SPKI-DER / SPKI-PEM / PKCS1-PEM\uFF09\uFF1A${r[0]instanceof Error?r[0].message:String(r[0])}`)}function Go(){let e=new Uint8Array(De),n=new Uint8Array(1);for(let t=0;t<De;t++){let r=0;do globalThis.crypto.getRandomValues(n),r=n[0]??0;while(r===0);e[t]=r;}return e}function js(e,n){if(n.length===0)throw new Error("RSA \u52A0\u5BC6\uFF1A\u660E\u6587\u4E3A\u7A7A");let t=qs(e),r=Math.ceil(t.n.bitLength()/8)-11;if(r<=0)throw new Error(`RSA \u52A0\u5BC6\uFF1A\u516C\u94A5\u4F4D\u6570\u8FC7\u5C0F\uFF08${t.n.bitLength()}bit\uFF09`);let o=[];for(let d=0;d<n.length;d+=r){let s=Math.min(d+r,n.length),y=t.encrypt(Ks(n.subarray(d,s)),"RSAES-PKCS1-V1_5");o.push(Gs(y));}let i=o.reduce((d,s)=>d+s.length,0),a=new Uint8Array(i),c=0;for(let d of o)a.set(d,c),c+=d.length;return a}function $s(e){let n=e.teaKey??Go();if(n.length<De)throw new Error(`\u7AEF\u5230\u7AEF\u52A0\u5BC6\u5931\u8D25\uFF1AteaKey \u957F\u5EA6 ${n.length} < ${De}`);let t=n.subarray(0,De),r=un(t,e.plain);return {secretKey:js(e.publicKey,t),cipherData:r}}function Js(e){return dn(e.teaKey,e.cipherData)}function Vs(e){return un(e.teaKey,e.plain)}function zs(e){return Bt(e.teaKey,e.plain,"encrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Ws(e){return Bt(e.teaKey,e.cipherData,"decrypt",void 0,e.signal===void 0?{}:{signal:e.signal})}function Ys(e){return Mo(e.teaKey,e.plain)}function Xs(e){return So(e.teaKey,e.cipherData)}function Qs(){return new Promise((e,n)=>{le.pki.rsa.generateKeyPair({bits:2048,e:65537,workers:-1},(t,r)=>{if(t){n(t);return}e({publicKeyBase64:Hs(le.pki.publicKeyToPem(r.publicKey)),privateKey:le.pki.privateKeyToPem(r.privateKey)});});})}function Zs(){return {decryptEndToEnd:Fs,encryptEndToEnd:$s,decryptSymmetric:Js,encryptSymmetric:Vs,encryptSymmetricChunked:zs,decryptSymmetricChunked:Ws,encryptFileSimple:Ys,decryptFileSimple:Xs,randomTeaKey:Go,generateTempKeyPair:Qs,rsaDecryptPkcs1:Gt}}function Lt(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function fn(e,n){return B(e,"/friend/apply/list_paginated",{type:n.listType,page:n.page,page_size:n.pageSize},Lt(n.clientType,"GET"))}function mn(e,n){return B(e,"/friend/apply/agree",{id:n.applicationId},Lt(n.clientType,"POST"))}function gn(e,n){return B(e,"/friend/apply/del",{id:n.applicationId},Lt(n.clientType,"POST"))}var Lo=50,Ho=20,Fo=1,Ht=2,Ft=3,ec=4,nc=5,qo=0,tc=1,rc=2;function oc(e){switch(e){case qo:case tc:case rc:return e;default:return}}var $e=class extends Error{constructor(t,r){super(`application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ApplicationHttpError";}code},Z=class extends Error{constructor(n){super(`application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ApplicationMappingError";}};function $(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function jo(e){let n=$(e);if(n==="")return;if(/^\d+$/.test(n)){let r=Number(n);return !Number.isSafeInteger(r)||r<=0?void 0:n.length>=13?r:r*1e3}let t=Date.parse(n);return Number.isFinite(t)?t:void 0}function $o(e){let n=$(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=oc(t);if(r===void 0)throw new Z(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===qo}function ic(e){let n=$(e.type);if(n==="")return true;if(Number(n)!==Fo)throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${n}`);return true}function ac(e){let n=Number($(e.type));if(n!==Ht&&n!==Ft&&n!==ec&&n!==nc)throw new Z(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${$(e.type)||"<empty>"}`);return n}function Fn(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>Lo)throw new Z(`limit \u5FC5\u987B\u4E3A 1-${Lo}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Z("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new Z("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Jo(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new Z("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function qt(e){let n=e.trim();if(n==="")throw new Z("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function sc(e){let n=qt($(e.id)||$(e.aid)),t=$(e.user_id)||$(e.user_info?.user_id),r=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(t===""||r==="")throw new Z(`\u8054\u7CFB\u4EBA\u7533\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let o=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),i=$(e.user_info?.mid),a=jo(e.create_time??e.createTime??e.update_version);return {applicationId:n,applicantId:t,applicantName:r,...o===""?{}:{applicantAvatar:o},...i===""?{}:{applicantDisplayId:i},message:$(e.remarks??e.introduce_self),...a===void 0?{}:{createdAt:a}}}function cc(e){let n=qt($(e.id)||$(e.aid)),t=$(e.group_id)||$(e.group_info?.group_id);if(t==="")throw new Z(`GROUP id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let r=$(e.user_id)||$(e.user_info?.user_id),o=$(e.nick_name??e.nickname??e.name)||$(e.user_info?.nick_name??e.user_info?.nickname??e.user_info?.name);if(r===""||o==="")throw new Z(`GROUP \u7533\u8BF7\u4EBA\u6216\u9080\u8BF7\u4EBA\u8EAB\u4EFD\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=$(e.head_img_url??e.avatar)||$(e.user_info?.head_img_url??e.user_info?.avatar),a=$(e.user_info?.mid),c=$(e.group_info?.name??e.group_info?.group_name);if(c==="")throw new Z(`GROUP \u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let d=$(e.group_info?.head_img_url??e.group_info?.avatar),s=jo(e.create_time??e.createTime??e.update_version);return {applicationId:n,groupId:t,kind:Number(e.type)===Ft?"invite":"request",actor:{id:r,name:o,...i===""?{}:{avatarUrl:i},...a===""?{}:{displayId:a}},target:{id:t,name:c,...d===""?{}:{avatarUrl:d}},message:$(e.remarks??e.introduce_self),...s===void 0?{}:{createdAt:s}}}async function qn(e,n,t){let r=await t(e.client,{applicationId:qt(n),clientType:e.clientType});if(!r.ok)throw new $e(r.code,r.message)}function dc(e){async function n(t){let{pageSize:r}=Fn(t),{page:o}=Fn(t);for(let i=0;i<Ho;i+=1){let a=await fn(e.client,{listType:Fo,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new $e(a.code,a.message);let c=Jo(a.data),d=c.filter(h=>ic(h)&&$o(h)).map(sc),s=c.length<r,y=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(y)}};o=y;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>qn(e,t,mn),ignoreApplication:t=>qn(e,t,gn)}}function uc(e){async function n(t){let{pageSize:r}=Fn(t),{page:o}=Fn(t);for(let i=0;i<Ho;i+=1){let a=await fn(e.client,{listType:Ht,page:o,pageSize:r,clientType:e.clientType});if(!a.ok)throw new $e(a.code,a.message);let c=Jo(a.data),d=c.filter(h=>{let b=ac(h);return (b===Ht||b===Ft)&&$o(h)}).map(cc),s=c.length<r,y=o+1;if(d.length>0||s)return {items:d,exhausted:s,...s?{}:{nextCursor:String(y)}};o=y;}return {items:[],exhausted:false,nextCursor:String(o)}}return {listPendingApplications:n,acceptApplication:t=>qn(e,t,mn),ignoreApplication:t=>qn(e,t,gn)}}function F(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function lc(e){if(typeof e=="boolean")return e;if(typeof e=="number")return e===0?false:e===1?true:void 0;if(typeof e=="string"){let n=e.trim();if(n==="0"||n.toLowerCase()==="false")return false;if(n==="1"||n.toLowerCase()==="true")return true}}function pc(e){let n=Number(e);return n===1?{configType:"pinned-game"}:n===2?{configType:"float-link"}:n===3?{configType:"float-game"}:Number.isInteger(n)&&n>=0?{configType:"unknown",rawConfigType:n}:{configType:"unknown"}}function fc(e){let n=Number(e.product_id),t=lc(e.is_dynamic);return {...pc(e.config_type),...F(e.appid)===void 0?{}:{appId:F(e.appid)},...Number.isInteger(n)?{productId:n}:{},...F(e.domain)===void 0?{}:{domain:F(e.domain)},...F(e.suffix_address)===void 0?{}:{suffixAddress:F(e.suffix_address)},...F(e.developer_id)===void 0?{}:{developerId:F(e.developer_id)},...F(e.introduction)===void 0?{}:{introduction:F(e.introduction)},...F(e.icon)===void 0?{}:{icon:F(e.icon)},...F(e.icon_small)===void 0?{}:{iconSmall:F(e.icon_small)},...F(e.icon_medium)===void 0?{}:{iconMedium:F(e.icon_medium)},...F(e.icon_large)===void 0?{}:{iconLarge:F(e.icon_large)},...t===void 0?{}:{isDynamic:t},...F(e.lang_types)===void 0?{}:{langTypes:F(e.lang_types)},...F(e.currency_types)===void 0?{}:{currencyTypes:F(e.currency_types)},...F(e.simple_chinese_name)===void 0?{}:{nameZhHans:F(e.simple_chinese_name)},...F(e.unsimplified_chinese_name)===void 0?{}:{nameZhHant:F(e.unsimplified_chinese_name)},...F(e.english_name)===void 0?{}:{nameEn:F(e.english_name)},...F(e.vietnamese_name)===void 0?{}:{nameVi:F(e.vietnamese_name)},...F(e.thai_name)===void 0?{}:{nameTh:F(e.thai_name)},...F(e.h5_url)===void 0?{}:{h5Url:F(e.h5_url)}}}function Vo(e,n){return Array.isArray(e.mini_program_rel_list)?e.mini_program_rel_list.filter(t=>t!==null&&typeof t=="object").map(t=>fc(t)):n.source==="info"?[]:void 0}function zo(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function Wo(e,n){return B(e,"/user_radio/list",{user_id:n.userId,update_version:n.updateVersion,page:n.page,page_size:n.pageSize},zo(n.clientType,"GET"))}function Yo(e,n){return B(e,"/user_radio/info",{radio_id:n.channelId},zo(n.clientType,"POST"))}var Xo=500,yn=class extends Error{constructor(t,r){super(`CHANNEL HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelHttpError";}code},be=class extends Error{constructor(n){super(`CHANNEL profile \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelProfileMappingError";}};function Qo(e,n){let t=typeof e=="string"||typeof e=="number"?String(e).trim():"";if(t==="")throw new be(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ue(e){let n=typeof e=="string"||typeof e=="number"?String(e).trim():"";return n===""?void 0:n}function Je(e){return Number(e)===1}function mc(e){if(typeof e=="number")return e===0?false:e===1?true:void 0;if(typeof e=="string"){let n=e.trim();if(n==="0")return false;if(n==="1")return true}}function gc(e,n){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":n===false?"guest":"unknown"}function yc(e){let n=e.is_in===void 0?void 0:Je(e.is_in),t=Je(e.radio_user?.is_del),r=Je(e.radio_user?.is_black);return Number(e.status)===3?"dismissed":t&&r?"removed":r?"blacklisted":t?"left":n===false?"guest":e.status!==void 0&&Number(e.status)!==2?"unknown_restricted":"active"}function hc(e,n,t){let r=Ue(e.radio_user?.user_id),o=e.radio_setting?.un_speaking_user_ids,i=Ue(e.radio_setting?.un_speaking_period);return {role:n,baseState:t,resolvedState:t,allMembersMuted:Je(e.radio_setting?.is_unspeeking_all),currentUserMuted:r!==void 0&&Array.isArray(o)&&o.map(String).includes(r),...i===void 0?{}:{mutePeriod:i}}}function bc(e){if(e!=null)return Number(e)===1?"standard":Number(e)===2?"competition":"unknown"}function wc(e){let n=Ue(e);return n!==void 0&&/^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Cc(e,n){let t=e.replace(/^0+(?=\d)/,""),r=n.replace(/^0+(?=\d)/,"");return t.length!==r.length?t.length>r.length?t:r:t>=r?t:r}function Zo(e,n,t){let r=Qo(e.radio_id??e.id,"id"),o=Qo(e.name,"name"),i=e.is_in===void 0?void 0:Je(e.is_in),a=gc(e.radio_user?.role_id,i),c=yc(e),d=hc(e,a,c),s=Wa$1({channelState:c,snapshot:d,nowMs:n}),y={...d,resolvedState:s.channelState},h=wc(e.update_version),b=Ue(e.head_img_url),m=Ue(e.desc),M=Ue(e.user_id),I=Number(e.total_users),R=bc(e.type),D=mc(e.radio_setting?.is_unvisit_other),E=e.verify_way===void 0?void 0:Number(e.verify_way),x=E!==void 0&&Number.isSafeInteger(E)?E:void 0,C=Ue(e.invite_code),_=Vo(e,{source:t});return {id:r,name:o,...b===void 0?{}:{avatar:b},...m===void 0?{}:{description:m},...M===void 0?{}:{ownerId:M},...Number.isFinite(I)&&I>=0?{memberCount:I}:{},...x===void 0?{}:{verifyType:x},...C===void 0?{}:{inviteCode:C},role:a,permissions:s.permissions,channelState:s.channelState,allMembersMuted:y.allMembersMuted,...D===void 0?{}:{memberPrivateChatDisabled:D},accessSnapshot:y,...e.radio_user?.is_undisturb===void 0?{}:{muted:Je(e.radio_user.is_undisturb)},...R===void 0?{}:{channelKind:R},...h===void 0?{}:{updateVersion:h},..._===void 0?{}:{miniProgramRels:_}}}function ei(e){return {...e,updatedAt:Date.now()}}function ni(e,n){if(e.accessSnapshot===void 0)return {...e,permissions:Va$1(e.role,e.channelState)};let t=Wa$1({channelState:e.channelState,snapshot:e.accessSnapshot,permissions:e.permissions,nowMs:n});return {...e,channelState:t.channelState,permissions:t.permissions,allMembersMuted:e.allMembersMuted??e.accessSnapshot.allMembersMuted,accessSnapshot:{...e.accessSnapshot,resolvedState:t.channelState}}}function jt(e,n){let{updatedAt:t,...r}=ni(e,n);return r}function Pc(e){let n=new Map,t=new Map,r=new Map,o="0",i=false,a=null,c=0,d=null,s=0;function y(){if(i)return Promise.resolve();if(a!==null)return a;let m=c;return a=(async()=>{if(e.storage!==void 0){let[M,I]=await Promise.all([e.storage.getChannelProfiles(),e.storage.getChannelListVersion()]);if(m!==c)return;for(let R of M)n.set(R.id,ni(R,e.now?.()??Date.now()));o=/^\d+$/.test(I)?I:"0";}i=true;})().finally(()=>{a=null;}),a}function h(m){if(m?.forceRefresh!==true&&d!==null)return d;let M=++s,I=(async()=>{await y();let R=(await e.getUserId()).trim();if(R==="")throw new be("user_id \u4E0D\u80FD\u4E3A\u7A7A");let D=m?.forceRefresh===true?"0":o,E=[];for(let C=1;;C+=1){let _=await Wo(e.client,{userId:R,updateVersion:D,page:C,pageSize:Xo,clientType:e.clientType});if(!_.ok)throw new yn(_.code,_.message);if(_.data===null)break;if(!Array.isArray(_.data))throw new be("list data \u5FC5\u987B\u662F\u6570\u7EC4");let U=e.now?.()??Date.now(),l=_.data.map(f=>Zo(f,U,"list"));if(E.push(...l),l.length<Xo)break}if(M!==s)return [...n.values()].map(C=>jt(C,e.now?.()??Date.now()));let x=o;for(let C of E)n.set(C.id,ei(C)),C.updateVersion!==void 0&&(x=Cc(x,C.updateVersion));return o=x,e.storage!==void 0&&(await e.storage.saveChannelProfiles([...n.values()]),await e.storage.saveChannelListVersion(o)),[...n.values()].map(C=>jt(C,e.now?.()??Date.now()))})();return d=I,I.finally(()=>{d===I&&(d=null);}).catch(()=>{}),I}function b(m,M){let I=m.trim();if(I==="")return Promise.reject(new be("channel id \u4E0D\u80FD\u4E3A\u7A7A"));let R=M?.forceRefresh===true;if(!R){let x=t.get(I);if(x!==void 0)return x}let D=(r.get(I)??0)+1;R&&r.set(I,D);let E=(async()=>{await y();let x=n.get(I);if(!R&&x!==void 0&&x.miniProgramRels!==void 0)return jt(x,e.now?.()??Date.now());let C=await Yo(e.client,{channelId:I,clientType:e.clientType});if(!C.ok)throw new yn(C.code,C.message);if(C.data===null||C.data===void 0)throw new be("info data \u4E0D\u80FD\u4E3A\u7A7A");let _=Zo(C.data,e.now?.()??Date.now(),"info");if(_.id!==I)throw new be(`info id \u4E0D\u5339\u914D\uFF1A\u8BF7\u6C42 ${I}\uFF0C\u54CD\u5E94 ${_.id}`);if((r.get(I)??D)===D){let U=ei(_);n.set(I,U),await e.storage?.saveChannelProfiles([U]);}return _})().finally(()=>{t.get(I)===E&&t.delete(I);});return r.set(I,D),t.set(I,E),E}return {listProfiles:h,getProfile:b,clearCache(){c+=1,s+=1;for(let m of new Set([...n.keys(),...t.keys(),...r.keys()]))r.set(m,(r.get(m)??0)+1);n.clear(),t.clear(),d=null,o="0",i=true,a=null;}}}function ti(e,n){return fn(e,{listType:2,page:n.page,pageSize:n.pageSize,clientType:n.clientType})}function ri(e,n){return mn(e,n)}function oi(e,n){return gn(e,n)}var Ic=20,ii=50,vc=20,Ac=2,Mc=3,si=4,Sc=5,ci=0,xc=1,_c=2;function kc(e){switch(e){case ci:case xc:case _c:return e;default:return}}var hn=class extends Error{constructor(t,r){super(`CHANNEL join application HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelJoinApplicationHttpError";}code},re=class extends Error{constructor(n){super(`CHANNEL join application \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelJoinApplicationMappingError";}};function J(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Rc(e){let n=J(e);if(n==="")return;if(/^\d+$/.test(n)){let r=Number(n);return !Number.isSafeInteger(r)||r<=0?void 0:n.length>=13?r:r*1e3}let t=Date.parse(n);return Number.isFinite(t)?t:void 0}function Ec(e){let n=J(e.status);if(e.status===void 0||n==="")return true;let t=Number(n),r=kc(t);if(r===void 0)throw new re(`\u672A\u77E5\u7533\u8BF7\u72B6\u6001\uFF1A${n}`);return r===ci}function Tc(e){let n=Number(J(e.type));if(n!==Ac&&n!==Mc&&n!==si&&n!==Sc)throw new re(`GROUP/CHANNEL \u6DF7\u5408\u9875\u51FA\u73B0\u672A\u77E5 type\uFF1A${J(e.type)||"<empty>"}`);return n}function Dc(e){let n=J(e.id)||J(e.aid),t=J(e.user_id)||J(e.user_info?.user_id),r=e.radio_info??e.channel_info,o=J(e.radio_id)||J(e.channel_id)||J(r?.radio_id)||J(r?.channel_id);if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new re(`\u7533\u8BF7\u4EBA id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);if(o==="")throw new re(`CHANNEL id \u4E0D\u80FD\u4E3A\u7A7A\uFF08applicationId=${n}\uFF09`);let i=J(e.user_info?.nick_name)||J(e.user_info?.nickname)||J(e.user_info?.name)||t,a=J(e.user_info?.head_img_url)||J(e.user_info?.avatar),c=J(e.user_info?.mid),d=J(r?.name)||J(r?.radio_name)||J(r?.channel_name)||o,s=J(r?.head_img_url)||J(r?.avatar),y=Rc(e.create_time??e.createTime);return {applicationId:n,applicantId:t,applicantName:i,...a===""?{}:{applicantAvatar:a},...c===""?{}:{applicantDisplayId:c},channelId:o,channelName:d,...s===""?{}:{channelAvatar:s},message:J(e.remarks)||J(e.introduce_self),...y===void 0?{}:{createdAt:y}}}function ai(e){if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>ii)throw new re(`limit \u5FC5\u987B\u4E3A 1-${ii}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit||Ic};if(!/^[1-9]\d*$/.test(e.cursor))throw new re("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let n=Number(e.cursor);if(!Number.isSafeInteger(n))throw new re("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:n,pageSize:e.limit}}function Uc(e){if(e!=null&&Array.isArray(e.list))return e.list;let n=e?.count??e?.total,t=n===0||typeof n=="string"&&/^0+$/.test(n.trim());if(e?.list===null&&t)return [];throw new re("data.list \u5FC5\u987B\u662F\u6570\u7EC4\uFF0C\u6216\u5728 count=0 \u65F6\u4E3A null")}function Oc(e){let n=e.trim();if(n==="")throw new re("\u7533\u8BF7\u8BB0\u5F55 id \u4E0D\u80FD\u4E3A\u7A7A");return n}function Bc(e){async function n(r){let{pageSize:o}=ai(r),{page:i}=ai(r);for(let a=0;a<vc;a+=1){let c=await ti(e.client,{page:i,pageSize:o,clientType:e.clientType});if(!c.ok)throw new hn(c.code,c.message);let d=Uc(c.data),s=d.filter(b=>Tc(b)===si&&Ec(b)).map(Dc),y=d.length<o,h=i+1;if(s.length>0||y)return {items:s,exhausted:y,...y?{}:{nextCursor:String(h)}};i=h;}return {items:[],exhausted:false,nextCursor:String(i)}}async function t(r,o){let i=await o(e.client,{applicationId:Oc(r),clientType:e.clientType});if(!i.ok)throw new hn(i.code,i.message)}return {listJoinApplications:n,acceptJoinApplication:r=>t(r,ri),ignoreJoinApplication:r=>t(r,oi)}}function jn(e,n){return {responseMode:"strict",method:n,...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function $t(e,n){return B(e,"/user_radio/users",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},jn(n.clientType,"GET"))}function Jt(e,n){return B(e,"/user_radio/search_user",{radio_id:n.channelId,nick_name:n.query,page:n.page,page_size:n.pageSize,update_version:n.updateVersion??"0"},jn(n.clientType,"POST"))}function di(e,n){return B(e,"/user_radio/admins",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},jn(n.clientType,"GET"))}function ui(e,n){return B(e,"/user_radio/user/infos",{radio_id:n.channelId,user_ids:n.userIds.join(",")},jn(n.clientType,"POST"))}var $n=18,Nc=12,Kc=300*1e3,Gc=32,bn=class extends Error{constructor(t,r){super(`CHANNEL member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMemberHttpError";}code},Y=class extends Error{constructor(n){super(`CHANNEL member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMemberMappingError";}};function we(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Lc(e){return Number(e)===1?"member":Number(e)===9?"admin":Number(e)===10?"owner":"unknown"}function Hc(e){let n=we(e);return /^\d+$/.test(n)?n.replace(/^0+(?=\d)/,""):void 0}function Vt(e,n){return e===void 0?n===void 0?0:-1:n===void 0?1:e.length!==n.length?e.length>n.length?1:-1:e===n?0:e>n?1:-1}function li(e,n){let t=we(e.radio_id);if(t==="")throw new Y("radio_id \u4E0D\u80FD\u4E3A\u7A7A");if(t!==n)throw new Y(`\u6210\u5458\u9891\u9053 ${t} \u4E0E\u8BF7\u6C42\u9891\u9053 ${n} \u4E0D\u4E00\u81F4`);let r=we(e.user_id)||we(e.user_info?.user_id);if(r==="")throw new Y("user_id \u4E0D\u80FD\u4E3A\u7A7A");if(e.is_master!==void 0){let s=Number(e.is_master);if(s!==0&&s!==1)throw new Y(`is_master \u975E\u6CD5\uFF1A${we(e.is_master)}`)}let o=we(e.nick_name),i=we(e.user_info?.nick_name)||we(e.user_info?.name),a=we(e.user_info?.head_img_url),c=Hc(e.update_version),d=Number(e.join_type);return {userId:r,...o===""?{}:{nickname:o},displayName:o||i||r,...a===""?{}:{avatar:a},role:Lc(e.role_id),...Number.isInteger(d)?{joinType:d}:{},...c===void 0?{}:{updateVersion:c}}}function Fc(e){if(e.channelId.trim()==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>$n)throw new Y(`limit \u5FC5\u987B\u4E3A 1-${$n}`);if(e.cursor===void 0)return {page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new Y("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new Y("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {page:t,pageSize:e.limit}}function pi(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function qc(e){let n=e.now??(()=>Date.now()),t=e.isActive??(()=>true),r=e.cacheTtlMs??Kc,o=new Map,i=new Map,a=new Map,c=new Map,d=new Map,s=new Set,y=new Set,h=(f,g)=>`${f}:${g}`;function b(f){let g=d.get(f);return g!==void 0?g:(d.set(f,0),0)}function m(f){let g=f.trim();if(g==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");return g}function M(f){for(i.delete(f.channelId),i.set(f.channelId,f);i.size>Gc;){let g=i.keys().next().value;if(g===void 0)break;i.delete(g);}}function I(f){let g=i.get(f);if(g!==void 0)return M(g),Promise.resolve(g);if(y.has(f)||e.storage?.getChannelMemberSnapshot===void 0)return Promise.resolve(null);let P=a.get(f);if(P!==void 0)return P;let p=b(f),u=e.storage.getChannelMemberSnapshot(f).then(w=>!t()||w===null||w.channelId!==f||p!==b(f)||y.has(f)?null:(M(w),w)).finally(()=>{a.get(f)===u&&a.delete(f);});return a.set(f,u),u}function R(f,g){let P=f.map(u=>u.userId),p=new Map(f.map(u=>[u.userId,u]));for(let u of g){p.has(u.userId)||P.push(u.userId);let w=p.get(u.userId);(w===void 0||Vt(u.updateVersion,w.updateVersion)>=0)&&p.set(u.userId,u);}return P.map(u=>p.get(u))}async function D(f,g){let P=await Da$1(g);return f.filter(p=>P.match(p.displayName)!==null||P.match(p.userId,{pinyin:false})!==null)}async function E(f,g,P={}){if(!t()||g!==b(f.channelId))return;let p=f.channelId,u=y.has(p),w=P.allowPersistentRebuild===true&&u&&e.storage?.deleteChannelMemberSnapshot===void 0&&e.storage?.saveChannelMemberSnapshot!==void 0;(!u||w)&&await e.storage?.saveChannelMemberSnapshot?.(f),t()&&g===b(p)&&(M(f),P.allowPersistentRebuild===true&&(!u||e.storage?.deleteChannelMemberSnapshot===void 0)&&y.delete(p));}async function x(f,g,P,p,u=false,w){let A=await I(f);if(!t()||P!==b(f))return;let k=n(),v=w!==void 0&&A?.nextCursor===w,S=u&&A!==null&&!v,T=p!==void 0&&!S?p.nextCursor:A?.nextCursor,O={channelId:f,items:R(A?.items??[],g),...T===void 0?{}:{nextCursor:T},exhausted:S?A.exhausted:p?.exhausted??A?.exhausted??false,updatedAt:k};await E(O,P);}async function C(f,g,P){if(!t()||P!==b(f))return [...g];let p=n(),u=p+r,w=[],A=[],k=new Map;for(let v of g){let S=h(f,v.userId),T=o.get(S)?.member;if(T!==void 0&&Vt(v.updateVersion,T.updateVersion)<0){A.push(T);continue}w.push({channelId:f,...v,updatedAt:p}),A.push(v),k.set(S,{member:v,expiresAt:u});}if(w.length>0&&t()&&P===b(f)&&!s.has(f)&&(await e.storage?.saveChannelMembers?.(w),e.storage?.getChannelMembers!==void 0&&t()&&P===b(f))){let v=await e.storage.getChannelMembers(f,w.map(T=>T.userId)),S=new Map(v.map(T=>{let{channelId:O,updatedAt:N,...j}=T;return [j.userId,{member:j,updatedAt:N}]}));for(let T=0;T<A.length;T+=1){let O=A[T];if(O===void 0)continue;let N=S.get(O.userId);N===void 0||Vt(N.member.updateVersion,O.updateVersion)<=0||(A[T]=N.member,k.set(h(f,O.userId),{member:N.member,expiresAt:N.updatedAt+r}));}}if(t()&&P===b(f))for(let[v,S]of k)o.set(v,S);return A}async function _(f,g){let P=m(f.channelId),{page:p,pageSize:u}=Fc({...f,channelId:P}),w=b(P),A=await g(P,p,u);if(!A.ok)throw new bn(A.code,A.message);if(A.data!==null&&!Array.isArray(A.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let k=pi((A.data??[]).map(T=>li(T,P))),v=await C(P,k,w),S=(A.data??[]).length<u;return {items:v,exhausted:S,...S?{}:{nextCursor:String(p+1)}}}function U(f){let g=m(f),P=c.get(g);if(P!==void 0)return P;let p=b(g),u=(async()=>{let w,A=false,k=[];for(let S=0;S<Nc&&!A;S+=1){let T=await _({channelId:g,limit:$n,...w===void 0?{}:{cursor:w}},(O,N,j)=>$t(e.client,{channelId:O,page:N,pageSize:j,clientType:e.clientType}));if(!t()||p!==b(g))throw new Y("\u6210\u5458\u5FEB\u7167\u9884\u53D6\u5DF2\u56E0\u6210\u5458\u53D8\u5316\u5931\u6548");k=R(k,T.items),w=T.nextCursor,A=T.exhausted;}let v={channelId:g,items:k,...w===void 0?{}:{nextCursor:w},exhausted:A,updatedAt:n()};return await E(v,p,{allowPersistentRebuild:true}),{items:v.items,...v.nextCursor===void 0?{}:{nextCursor:v.nextCursor},exhausted:v.exhausted}})().finally(()=>{c.get(g)===u&&c.delete(g);});return c.set(g,u),u}async function l(f){let g=m(f),P=b(g)+1;d.set(g,P),s.add(g),y.add(g),i.delete(g),a.delete(g),c.delete(g);let p=`${g}:`;for(let u of o.keys())u.startsWith(p)&&o.delete(u);e.storage?.deleteChannelMembers===void 0&&e.storage?.deleteChannelMemberSnapshot===void 0||(await Promise.all([e.storage.deleteChannelMembers?.(g),e.storage.deleteChannelMemberSnapshot?.(g)]),P===b(g)&&(e.storage?.deleteChannelMembers!==void 0&&s.delete(g),e.storage?.deleteChannelMemberSnapshot!==void 0&&y.delete(g)));}return {async prefetchMembers(f){let g=m(f),P=await I(g),p=y.has(g);P!==null&&!p&&P.updatedAt+r>n()||await U(g);},async getCachedMembers(f){let g=m(f.channelId),P=await I(g);if(P===null)return null;let p=f.query?.trim()??"";return p===""&&y.has(g)?null:p===""?{items:[...P.items],...P.nextCursor===void 0?{}:{nextCursor:P.nextCursor},exhausted:P.exhausted}:{items:await D(P.items,p),exhausted:true}},async refreshMembers(f){let g=m(f.channelId),P=f.query?.trim()??"";if(P==="")return U(g);let p=b(g),[u,w]=await Promise.all([_({channelId:g,query:P,limit:$n},(k,v,S)=>Jt(e.client,{channelId:k,query:P,page:v,pageSize:S,updateVersion:"0",clientType:e.clientType})),I(g)]),A=w===null?[]:await D(w.items,P);return await x(g,u.items,p),{...u,items:R(u.items,A)}},async listMembers(f){let g=m(f.channelId),P={...f,channelId:g},p=b(g),u=await _(P,(w,A,k)=>$t(e.client,{channelId:w,page:A,pageSize:k,clientType:e.clientType}));return await x(g,u.items,p,u,P.cursor!==void 0,P.cursor),u},async searchMembers(f){let g=f.query.trim();if(g==="")return Promise.reject(new Y("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"));let P=m(f.channelId),p={...f,channelId:P},u=b(P),w=await _(p,(A,k,v)=>Jt(e.client,{channelId:A,query:g,page:k,pageSize:v,updateVersion:"0",clientType:e.clientType}));return await x(P,w.items,u),w},listAdmins:f=>_(f,(g,P,p)=>di(e.client,{channelId:g,page:P,pageSize:p,clientType:e.clientType})),async getMembersByIds(f,g,P){let p=f.trim();if(p==="")throw new Y("channelId \u4E0D\u80FD\u4E3A\u7A7A");let u=[...new Set(g.map(v=>v.trim()).filter(Boolean))];if(u.length===0)return [];let w=P?.forceRefresh===true,A=new Map,k=[];for(let v of u){let S=o.get(h(p,v));!w&&S!==void 0&&S.expiresAt>n()?A.set(v,S.member):k.push(v);}if(!w&&k.length>0&&!s.has(p)&&e.storage?.getChannelMembers!==void 0){let v=b(p),S=await e.storage.getChannelMembers(p,k);if(t()&&v===b(p))for(let{channelId:T,updatedAt:O,...N}of S)T===p&&(o.set(h(p,N.userId),{member:N,expiresAt:O+r}),O+r>n()&&A.set(N.userId,N));k=k.filter(T=>!A.has(T));}if(!t())return u.flatMap(v=>A.has(v)?[A.get(v)]:[]);if(k.length>0){let v=b(p),S=await ui(e.client,{channelId:p,userIds:k,clientType:e.clientType});if(!S.ok)throw new bn(S.code,S.message);if(S.data!==null&&!Array.isArray(S.data))throw new Y("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let T=pi((S.data??[]).map(G=>li(G,p))),O=k.filter(G=>!T.some(X=>X.userId===G)),N=w&&O.length>0&&v===b(p),j;N?(await l(p),j=T):j=await C(p,T,v);for(let G of j)A.set(G.userId,G);}return u.flatMap(v=>A.has(v)?[A.get(v)]:[])},invalidateChannelMembers:l,clearCache(){let f=new Set(d.keys());for(let g of o.keys())f.add(g.slice(0,g.indexOf(":")));for(let g of i.keys())f.add(g);for(let g of a.keys())f.add(g);for(let g of c.keys())f.add(g);for(let g of s)f.add(g);for(let g of y)f.add(g);for(let g of f)d.set(g,b(g)+1);o.clear(),i.clear(),a.clear(),c.clear(),s.clear(),y.clear();}}}function fi(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}function mi(e,n){return B(e,"/user_radio/member/list",{radio_id:n.channelId,page:n.page,page_size:n.pageSize},fi(n.clientType))}function gi(e,n){return B(e,"/user_radio/member/search",{radio_id:n.channelId,search_name:n.query,page:n.page,page_size:n.pageSize},fi(n.clientType))}var yi=18,Jn=class extends Error{constructor(t,r){super(`CHANNEL @ member HTTP \u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`);this.code=t;this.name="ChannelMentionMemberHttpError";}code},fe=class extends Error{constructor(n){super(`CHANNEL @ member \u6620\u5C04\u5931\u8D25\uFF1A${n}`),this.name="ChannelMentionMemberMappingError";}};function Ve(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function jc(e){let n=Ve(e.user_id);if(n==="")throw new fe("user_id \u4E0D\u80FD\u4E3A\u7A7A");let t=Ve(e.radio_user_nickname)||Ve(e.nick_name)||Ve(e.name)||Ve(e.mid)||n,r=Ve(e.head_img_url);return {userId:n,displayName:t,...r===""?{}:{avatar:r}}}function $c(e){let n=e.channelId.trim();if(n==="")throw new fe("channelId \u4E0D\u80FD\u4E3A\u7A7A");if(!Number.isInteger(e.limit)||e.limit<=0||e.limit>yi)throw new fe(`limit \u5FC5\u987B\u4E3A 1-${yi}`);if(e.cursor===void 0)return {channelId:n,page:1,pageSize:e.limit};if(!/^[1-9]\d*$/.test(e.cursor))throw new fe("page cursor \u5FC5\u987B\u4E3A\u6B63\u5341\u8FDB\u5236\u6574\u6570");let t=Number(e.cursor);if(!Number.isSafeInteger(t))throw new fe("page cursor \u8D85\u51FA\u5B89\u5168\u6574\u6570\u8303\u56F4");return {channelId:n,page:t,pageSize:e.limit}}function Jc(e){let n=[],t=new Map;for(let r of e)t.has(r.userId)||n.push(r.userId),t.set(r.userId,r);return n.map(r=>t.get(r))}function Vc(e){async function n(t,r){let{channelId:o,page:i,pageSize:a}=$c(t),c=await r({channelId:o,page:i,pageSize:a,clientType:e.clientType});if(!c.ok)throw new Jn(c.code,c.message);if(c.data!==null&&!Array.isArray(c.data))throw new fe("data \u5FC5\u987B\u4E3A\u6570\u7EC4\u6216 null");let d=c.data??[],s=Jc(d.map(jc)),y=d.length<a;return {items:s,exhausted:y,...y?{}:{nextCursor:String(i+1)}}}return {listMentionMembers:t=>n(t,r=>mi(e.client,r)),searchMentionMembers:t=>{let r=t.query.trim();return r===""?Promise.reject(new fe("\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A")):n(t,o=>gi(e.client,{...o,query:r}))}}}function zc(e){let n=e.fetch??((t,r)=>globalThis.fetch(t,r));return {async postProtobuf({path:t,body:r,headers:o,signal:i}){let a=await e.getBaseUrl();if(!a)throw new Error("CmHttp.postProtobuf\uFF1A\u7F3A\u5C11 CM HTTP \u57FA\u5740\uFF08getCmHttpBaseUrl \u4E3A\u7A7A\uFF09");let c={"Content-Type":"application/octet-stream"},d=e.getClientType?.();d!==void 0&&(c["Client-type"]=String(d)),Object.assign(c,o);let s=await e.getAuth();s!==null&&s.token!==""&&s.userId!==""&&(c.Authorization=`${s.token}:${s.userId}`);let y=await n(`${a}${t}`,{method:"POST",body:r,headers:c,signal:i});if(!y.ok)throw new aa$1({path:t,status:y.status,statusText:y.statusText});let h=await y.arrayBuffer();return new Uint8Array(h)}}}var me=class extends Error{constructor(n){super(n),this.name="DirectoryMappingError";}};function Vn(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new me(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function te(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function wn(e){let n=te(e);return n===""?void 0:n}function Wc(e){let n=Vn(e,"\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879"),t=n.user_info===void 0?n:Vn(n.user_info,"\u8054\u7CFB\u4EBA user_info"),r=te(t.user_id??n.friend_user_id??n.user_id);if(r==="")throw new me("\u8054\u7CFB\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A user_id");let o=te(n.remark_name)||te(n.contact_name)||te(t.nick_name)||te(t.username)||te(t.mid)||r,i=te(t.nick_name)||te(t.username)||te(t.mid)||r,a=wn(t.head_img_url),c=wn(t.username)??wn(t.mid);return {id:r,kind:"individual",displayName:o,cardDisplayName:i,...a===void 0?{}:{avatarUrl:a},...c===void 0?{}:{username:c}}}function Yc(e){let n=Vn(e,"\u7FA4\u7EC4\u76EE\u5F55\u9879"),t=te(n.group_id);if(t==="")throw new me("\u7FA4\u7EC4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A group_id");let r=wn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"group",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Xc(e){let n=Vn(e,"\u793E\u7FA4\u76EE\u5F55\u9879"),t=te(n.radio_id??n.id);if(t==="")throw new me("\u793E\u7FA4\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A radio_id/id");let r=wn(n.head_img_url),o=te(n.name)||t;return {id:t,kind:"channel",displayName:o,cardDisplayName:o,...r===void 0?{}:{avatarUrl:r}}}function Qc(e,n){if(!Number.isSafeInteger(e)||e<1)throw new me("\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n)||n<1||n>100)throw new me("\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570")}function Zc(e){return {async list(n){Qc(n.page,n.pageSize);let t=n.kind==="individual"?"/friend/list":n.kind==="group"?"/user_group/list":"/user_radio/list",r=n.kind==="channel"&&e.getUserId!==void 0?String(await e.getUserId()).trim():"",i=(await B(e.client,t,{...r===""?{}:{user_id:r},update_version:0,page:n.page,page_size:n.pageSize},{responseMode:"strict",method:"GET",...e.clientType===void 0?{}:{headers:{"Client-type":String(e.clientType)}}})).data??[];if(!Array.isArray(i))throw new me(`${n.kind} \u76EE\u5F55 data \u5FC5\u987B\u662F\u6570\u7EC4`);let a=n.kind==="individual"?Wc:n.kind==="group"?Yc:Xc,c=new Map;for(let s of i){let y=a(s);c.set(y.id,y);}let d=i.length<n.pageSize;return {items:[...c.values()],...d?{}:{nextPage:n.page+1},exhausted:d}}}}var ed="https://api.giphy.com/v1/gifs",ze=class extends Error{constructor(t){super(t==="core"?"\u8868\u60C5 Core API \u672A\u914D\u7F6E":"Giphy API key \u672A\u914D\u7F6E");this.provider=t;this.name="ExpressionProviderUnavailableError";}provider},z=class extends Error{constructor(n){super(n),this.name="ExpressionMappingError";}},Oe=class extends Error{constructor(t,r){super(`Giphy \u8BF7\u6C42\u5931\u8D25\uFF1AHTTP ${t}${r?` ${r}`:""}`);this.status=t;this.name="GiphyHttpError";}status};function ie(e,n){if(e===null||typeof e!="object"||Array.isArray(e))throw new z(`${n} \u5FC5\u987B\u662F\u5BF9\u8C61`);return e}function oe(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function xe(e,n){let t=oe(e);if(t==="")throw new z(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function Ye(e){let n=oe(e);return n===""?void 0:n}function We(e,n){let t=Number(e);if(!Number.isSafeInteger(t)||t<0)throw new z(`${n} \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570`);return t}function nd(e,n){let t=Number(e);if(!Number.isSafeInteger(t))throw new z(`${n} \u5FC5\u987B\u662F\u5B89\u5168\u6574\u6570`);return t}function hi(e,n){let t=Number(e);if(!Number.isFinite(t)||t<=0)throw new z(`${n} \u5FC5\u987B\u662F\u6709\u9650\u6B63\u6570`);return t}function Be(e,n){let t=xe(e,n),r;try{r=new URL(t);}catch(o){throw new z(`${n} \u4E0D\u662F\u5408\u6CD5 URL\uFF1A${o instanceof Error?o.message:String(o)}`)}if(r.protocol!=="https:"&&r.protocol!=="http:")throw new z(`${n} \u53EA\u652F\u6301 HTTP(S)`);if(r.username!==""||r.password!=="")throw new z(`${n} \u4E0D\u5141\u8BB8\u5305\u542B URL \u51ED\u636E`);return t}function zt(e,n){if(e==null)return [];if(Array.isArray(e))return e;let r=ie(e,n).list;if(r==null)return [];if(!Array.isArray(r))throw new z(`${n}.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null`);return r}function Cn(e){return e==="sticker"?1:e==="gif"?2:3}function bi(e){let n=ie(e,"\u8D34\u56FE\u5305"),t=Ye(n.onlineTime??n.online_time),r=n.isPlatformIssued??n.is_platform_issued;return {id:xe(n.packId??n.pack_id,"\u8D34\u56FE\u5305 packId"),nameZh:oe(n.nameZh??n.name_zh),nameEn:oe(n.nameEn??n.name_en),nameTh:oe(n.nameTh??n.name_th),nameTw:oe(n.nameTw??n.name_tw),nameVi:oe(n.nameVi??n.name_vi),publisher:oe(n.publisher),trayIconUrl:Be(n.trayIcon??n.tray_icon,"\u8D34\u56FE\u5305 trayIcon"),sortWeight:nd(n.sortWeight??n.sort_weight??0,"\u8D34\u56FE\u5305 sortWeight"),isPlatformIssued:r===true||Number(r)===1,...t===void 0?{}:{onlineTime:t},stickerCount:We(n.stickerCount??n.sticker_count??0,"\u8D34\u56FE\u5305 stickerCount")}}function Wt(e,n,t,r){let o=ie(e,t),i=Ye(o.id),a={...i===void 0?{}:{recordId:i},url:Be(o.imgUrl??o.img_url,`${t} imgUrl`),width:We(o.width??0,`${t} width`),height:We(o.height??0,`${t} height`)};if(n==="sticker")return {kind:n,...a,packageId:xe(r??o.packId??o.pack_id,`${t} packageId`),resourceId:xe(o.fileName??o.file_name,`${t} resourceId`)};let c=Ye(o.fileName??o.file_name);return {kind:n,...a,...c===void 0?{}:{resourceId:c}}}function td(e,n){if(n!=="emoji")return Wt(e,n,"\u6700\u8FD1\u4F7F\u7528\u9879");let t=ie(e,"\u6700\u8FD1 emoji"),r=Ye(t.id);return {kind:"emoji",...r===void 0?{}:{recordId:r},token:xe(t.imgUrl??t.img_url,"\u6700\u8FD1 emoji token"),resourceId:xe(t.fileName??t.file_name,"\u6700\u8FD1 emoji resourceId")}}function wi(e,n,t){let r=Cn(n);return zt(e,t).filter(o=>{let i=ie(o,`${t} item`),a=i.favType??i.fav_type;if(a==null)return true;let c=Number(a);if(c!==1&&c!==2&&c!==3)throw new z(`${t} item.favType \u5FC5\u987B\u662F 1\u30012 \u6216 3`);return c===r})}function Pi(e){return {fav_type:Cn(e.kind),pack_id:e.kind==="sticker"?e.packageId:"",img_url:Be(e.url,"\u8868\u60C5\u5199\u5165 imgUrl"),file_name:e.resourceId??"",width:e.width,height:e.height}}function rd(e){return e.kind!=="emoji"?Pi(e):{fav_type:Cn(e.kind),pack_id:"",img_url:e.token,file_name:e.resourceId,width:0,height:0}}function Ci(e){let n=[...new Set(e.map(t=>t.trim()).filter(Boolean))];if(n.length===0||n.length>30||n.some(t=>t.includes("|")))throw new z("\u6279\u91CF\u5220\u9664 recordIds \u5FC5\u987B\u5305\u542B 1-30 \u4E2A\u4E0D\u542B\u7AD6\u7EBF\u7684\u552F\u4E00\u975E\u7A7A id");return n.join("|")}function od(e){let n=ie(e,"Giphy item"),t=ie(n.images,"Giphy item.images"),r=ie(t.original,"Giphy item.images.original"),o=t.fixed_width,i=o==null?void 0:ie(o,"Giphy item.images.fixed_width"),a=Be(r.url,"Giphy original.url"),c=i===void 0?void 0:Ye(i.url),d=i===void 0?void 0:Ye(i.webp),s=d===void 0?c===void 0?a:Be(c,"Giphy fixed_width.url"):Be(d,"Giphy fixed_width.webp"),y=d!==void 0&&c!==void 0&&c!==d?Be(c,"Giphy fixed_width.url"):void 0;return {kind:"gif",resourceId:xe(n.id,"Giphy item.id"),title:oe(n.title)||"GIF",url:a,previewUrl:s,...y===void 0?{}:{fallbackPreviewUrl:y},width:hi(r.width,"Giphy original.width"),height:hi(r.height,"Giphy original.height")}}function id(e,n){let t=ie(e,"Giphy response");if(!Array.isArray(t.data))throw new z("Giphy response.data \u5FC5\u987B\u662F\u6570\u7EC4");let r=ie(t.pagination,"Giphy response.pagination"),o=We(r.offset??n,"Giphy pagination.offset");if(o!==n)throw new z("Giphy pagination.offset \u4E0E\u8BF7\u6C42 offset \u4E0D\u4E00\u81F4");let i=We(r.count??t.data.length,"Giphy pagination.count"),a=We(r.total_count??r.totalCount??0,"Giphy pagination.total_count"),c=new Map;for(let s of t.data){let y=od(s);c.set(y.resourceId,y);}let d=o+i;return {items:[...c.values()],offset:o,totalCount:a,...i>0&&d<a?{nextOffset:d}:{}}}function ad(e){async function n(r,o,i){if(e.coreClient===void 0)throw new ze("core");let a=await B(e.coreClient,r,o,{method:"POST",responseMode:"strict"});if(!a.ok)throw new Q(i,a.code,a.message);return a.data}async function t(r,o){let i=e.giphyApiKey?.trim()??"";if(i==="")throw new ze("giphy");let a=e.fetcher??globalThis.fetch;if(typeof a!="function")throw new ze("giphy");let c=new URLSearchParams({api_key:i,limit:String(o.limit),offset:String(o.offset),...o.query===void 0?{}:{q:o.query,lang:"en"}}),d;try{d=await a(`${ed}/${r}?${c.toString()}`);}catch{throw new Oe(0,"network failure")}let s;try{s=await d.json();}catch(h){throw d.ok?new z(`Giphy response \u4E0D\u662F JSON\uFF1A${h instanceof Error?h.message:String(h)}`):new Oe(d.status,"")}if(!d.ok){let h=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0,b=h!==null&&typeof h=="object"&&!Array.isArray(h)?oe(h.msg):"";throw new Oe(d.status,b)}let y=s!==null&&typeof s=="object"&&!Array.isArray(s)?s.meta:void 0;if(y!==null&&typeof y=="object"&&!Array.isArray(y)){let h=y,b=Number(h.status);if(Number.isFinite(b)&&b!==200)throw new Oe(b,oe(h.msg))}return id(s,o.offset)}return {async listStickerPacks(r){let o=await n("/user/sticker/pack_list",r===void 0?{}:{version:r},"\u8D34\u56FE\u5305\u5217\u8868");if(Array.isArray(o))return {version:"",items:o.map(bi)};if(o==null)return {version:"",items:[]};let i=ie(o,"\u8D34\u56FE\u5305\u5217\u8868 data"),a=i.list??i.packs;if(a==null)return {version:oe(i.version),items:[]};if(!Array.isArray(a))throw new z("\u8D34\u56FE\u5305\u5217\u8868 data.list \u5FC5\u987B\u662F\u6570\u7EC4\u6216 null");return {version:oe(i.version),items:a.map(bi)}},async listStickerItems(r){let o=await n("/user/sticker/item_list",{pack_id:r},"\u8D34\u56FE\u660E\u7EC6\u5217\u8868");return zt(o,"\u8D34\u56FE\u660E\u7EC6\u5217\u8868 data").map(i=>Wt(i,"sticker","\u8D34\u56FE\u660E\u7EC6",r))},async listFavorites(r){let o=await n("/user/sticker/my_fav/list",{fav_type:Cn(r)},"\u8868\u60C5\u6536\u85CF\u5217\u8868");return wi(o,r,"\u8868\u60C5\u6536\u85CF\u5217\u8868 data").map(i=>Wt(i,r,"\u8868\u60C5\u6536\u85CF\u9879"))},async addFavorite(r){await n("/user/sticker/my_fav/add",Pi(r),"\u6DFB\u52A0\u8868\u60C5\u6536\u85CF");},async deleteFavorites(r){await n("/user/sticker/my_fav/del",{ids:Ci(r)},"\u5220\u9664\u8868\u60C5\u6536\u85CF");},async listRecent(r){let o=await n("/user/sticker/recent/list",{fav_type:Cn(r)},"\u6700\u8FD1\u4F7F\u7528\u5217\u8868");return wi(o,r,"\u6700\u8FD1\u4F7F\u7528\u5217\u8868 data").map(i=>td(i,r))},async reportRecent(r){await n("/user/sticker/recent/report",rd(r),"\u4E0A\u62A5\u6700\u8FD1\u4F7F\u7528");},async deleteRecent(r){await n("/user/sticker/recent/del",{ids:Ci(r)},"\u5220\u9664\u6700\u8FD1\u4F7F\u7528");},async listReactionTop(r){let o=await n("/user/reaction/emoji/top",r===void 0?{}:{limit:r},"\u5FEB\u6377\u56DE\u5E94 Top \u5217\u8868");return zt(o,"\u5FEB\u6377\u56DE\u5E94 Top data").map(i=>{let a=ie(i,"\u5FEB\u6377\u56DE\u5E94 Top \u9879");return xe(a.emoji,"\u5FEB\u6377\u56DE\u5E94 emoji")})},async reportReaction(r){await n("/user/reaction/emoji/report",{emoji:r},"\u4E0A\u62A5\u5FEB\u6377\u56DE\u5E94");},listGiphyTrending:r=>t("trending",r),searchGiphy:r=>t("search",r)}}async function Ii(e,n){let t=n.clientType===void 0?void 0:{headers:{"Client-type":String(n.clientType)}};return (await B(e,"/user_group/info",{group_id:n.groupId},t)).data}function sd(e){if(Array.isArray(e))return e;if(typeof e!="object"||e===null)return [];let n=e,t=["list","users","user_list","members","member_list","members_list"];for(let r of t)if(Array.isArray(n[r]))return n[r];if(Array.isArray(n.data))return n.data;if(typeof n.data=="object"&&n.data!==null){let r=n.data;for(let o of t)if(Array.isArray(r[o]))return r[o]}return []}function cd(e){if(typeof e=="number")return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);return Number.isNaN(n)?void 0:n}}var vi=200,dd=50;async function Ai(e,n){let t=String(n.updateVersion??0).trim()||"0",r=[],o;for(let i=1;i<=dd;i++){let a={group_id:n.groupId,update_version:t,page:String(i),page_size:String(vi)},{data:c}=await B(e,"/user_group/user/list",a,{method:"GET",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(c===null)break;let d=sd(c);if(d.length===0)break;for(let y of d){let h=String(y.user_id??y.userId??"").trim();if(h==="")continue;let b={userId:h,nickName:String(y.nick_name??y.nickName??"").trim()},m=cd(y.join_type??y.joinType);m!==void 0&&(b.joinType=m),r.push(b);}let s=c.update_version;if(typeof s=="number"&&(o=s),d.length<vi)break}return {members:r,updateVersion:o}}async function Mi(e,n){return (await B(e,"/user/info/friend",{friend_user_id:n.userId})).data}var ud=1440*60*1e3;function Yt(e,n,t=ud){let r=new Map,o=new Map,i=new Map;function a(y){let h=(i.get(y)??0)+1;i.set(y,h);let b=e(y).then(m=>(m!==null&&i.get(y)===h&&(r.set(y,m),n?.save(y,m).catch(()=>{})),m)).finally(()=>{o.get(y)===b&&o.delete(y);});return o.set(y,b),b}return {get:async(y,h)=>{if(h?.forceRefresh===true)return a(y);let b=r.get(y);if(b!==void 0)return b;let m=o.get(y);if(m!==void 0)return m;if(n!==void 0)try{let M=i.get(y)??0,I=await n.get(y);if(I!==null)return (i.get(y)??0)===M&&(r.set(y,I.value),Date.now()-I.updatedAt>t&&a(y)),I.value}catch{}return a(y)},peek:async y=>{let h=r.get(y);if(h!==void 0)return {value:h,stale:false};if(n===void 0)return null;try{let b=i.get(y)??0,m=await n.get(y);if(m!==null)return (i.get(y)??0)===b&&r.set(y,m.value),{value:m.value,stale:Date.now()-m.updatedAt>t}}catch{}return null},clear:()=>{for(let y of new Set([...r.keys(),...o.keys(),...i.keys()]))i.set(y,(i.get(y)??0)+1);r.clear(),o.clear();}}}function ld(e){async function n(b){let m=await Mi(e.client,{userId:b})??await pn(e.client,{userId:b});return m===null?null:ya$1(m)}async function t(b){let m=await Ii(e.client,{groupId:b,clientType:e.clientType});return m===null?null:za$1(m)}async function r(b){let{members:m}=await Ai(e.client,{groupId:b,clientType:e.clientType});return m.length===0?null:m}function o(b){let m={};for(let M of b)M.nickName!==""&&(m[M.userId]=M.nickName);return m}let{storage:i}=e,a=i===void 0?void 0:{get:async b=>{let m=await i.getUserProfile(b);return m===null?null:{value:m,updatedAt:m.updatedAt}},save:async(b,m)=>{await i.saveUserProfile({...m,updatedAt:Date.now()});}},c=i===void 0?void 0:{get:async b=>{let m=await i.getGroupMembers(b);return m===null?null:{value:m.members.map(M=>({userId:M.userId,nickName:M.groupNick,...M.joinType===void 0?{}:{joinType:M.joinType}})),updatedAt:m.updatedAt}},save:async(b,m)=>{let M=m.map(I=>({userId:I.userId,groupNick:I.nickName,...I.joinType===void 0?{}:{joinType:I.joinType}}));await i.saveGroupMembers({groupId:b,members:M,updatedAt:Date.now()});}},d=i===void 0?void 0:{get:async b=>{let m=await i.getGroupProfile(b);return m===null?null:{value:m,updatedAt:m.updatedAt}},save:async(b,m)=>{await i.saveGroupProfile({...m,updatedAt:Date.now()});}},s=Yt(n,a),y=Yt(t,d),h=Yt(r,c);return {getUserProfile:(b,m)=>s.get(b,m),getGroupProfile:(b,m)=>y.get(b,m),getGroupMemberNames:async(b,m)=>{let M=await h.get(b,m);return M===null?null:o(M)},listGroupMembers:(b,m)=>h.get(b,m),peekUserProfile:b=>s.peek(b),peekGroupMemberNames:async b=>{let m=await h.peek(b);return m===null?null:{value:o(m.value),stale:m.stale}},peekGroupMembers:b=>h.peek(b),peekGroupProfile:b=>y.peek(b),clearCache:()=>{s.clear(),y.clear(),h.clear();}}}var zn=class extends Error{responseCode;operation;constructor(n,t,r){let o=n==="bind"?"\u7ED1\u5B9A":"\u89E3\u7ED1";super(`${o}\u673A\u5668\u4EBA\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="RobotConversationBindError",this.responseCode=t,this.operation=n;}},Xe=class extends Error{constructor(n){super(n),this.name="RobotConversationBindMappingError";}};function pd(e){let n=e.robotId.trim(),t=e.conversationId.trim();if(n==="")throw new Xe("\u7ED1\u5B9A\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");if(t==="")throw new Xe("\u7ED1\u5B9A\u673A\u5668\u4EBA conversationId \u4E0D\u80FD\u4E3A\u7A7A");if(e.groupType!==1&&e.groupType!==2)throw new Xe("\u7ED1\u5B9A\u673A\u5668\u4EBA groupType \u5FC5\u987B\u662F 1 \u6216 2");return {robotId:n,conversationId:t,groupType:e.groupType,...e.clientType===void 0?{}:{clientType:e.clientType}}}async function Si(e,n,t){let r=pd(t),i=await B(e,n==="bind"?"/robot/bind_group":"/robot/un_bind_group",{robot_id:r.robotId,object_id:r.conversationId,relation_type:r.groupType},{responseMode:"strict",method:"POST",...r.clientType===void 0?{}:{headers:{"Client-type":String(r.clientType)}}});if(!i.ok)throw new zn(n,i.code,i.message)}function fd(e,n){return Si(e,"bind",n)}function md(e,n){return Si(e,"unbind",n)}function gd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function ae(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function yd(e){return ae(e.client,"/user_radio/edit",{radio_id:e.channelId,...e.name===void 0?{}:{name:e.name},...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl},...e.description===void 0?{}:{desc:e.description}},"\u4FEE\u6539\u793E\u7FA4\u8D44\u6599")}function hd(e){return ae(e.client,"/user_radio/user/setting",{radio_id:e.channelId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function bd(e){return ae(e.client,"/user_radio/member/edit",{radio_id:e.channelId,radio_user_id:e.userId,nick_name:e.nickname},"\u4FEE\u6539\u793E\u7FA4\u6635\u79F0")}function wd(e){let n=e.userIds.map(t=>({user_id:gd(t)}));return ae(e.client,"/user_radio/invited_users",{radio_id:e.channelId,members:JSON.stringify(n)},"\u9080\u8BF7\u793E\u7FA4\u6210\u5458")}function Cd(e){return ae(e.client,"/user_radio/kick_user",{radio_id:e.channelId,user_id:e.userId},"\u79FB\u9664\u793E\u7FA4\u6210\u5458")}function Pd(e){return ae(e.client,"/user_radio/add_admin",{radio_id:e.channelId,user_id:e.userId},"\u8BBE\u4E3A\u793E\u7FA4\u7BA1\u7406\u5458")}function Id(e){return ae(e.client,"/user_radio/del_admin",{radio_id:e.channelId,user_id:e.userId},"\u53D6\u6D88\u793E\u7FA4\u7BA1\u7406\u5458")}function vd(e){return ae(e.client,"/user_radio/transfer",{radio_id:e.channelId,user_id:e.userId},"\u8F6C\u8BA9\u793E\u7FA4")}function Ad(e){return ae(e.client,"/user_radio/user/quit",{radio_id:e.channelId,...e.newOwnerId===void 0?{}:{user_id:e.newOwnerId}},"\u9000\u51FA\u793E\u7FA4")}function Md(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,verify_way:e.verifyType,...e.verifyType===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u793E\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}function Sd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unspeeking_all:e.muted?"1":"0"},e.muted?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u8A00":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u8A00")}function xd(e){return ae(e.client,"/user_radio/edit_setting",{radio_id:e.channelId,is_unvisit_other:e.disabled?"1":"0"},e.disabled?"\u5F00\u542F\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A":"\u5173\u95ED\u793E\u7FA4\u5168\u5458\u7981\u79C1\u804A")}function _d(e){return ae(e.client,"/user_radio/closed",{radio_id:e.channelId},"\u89E3\u6563\u793E\u7FA4")}async function kd(e){a(e.signal),Rd(e.channelId,"channel");let n=e.index.trim();if(n==="")throw new Error("CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 index \u7F3A\u5931");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId),a(e.signal);let t=e.containAnchor??true,r=R({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:n,direction:0,count:20,contain:t?1:0}]}),o=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:r,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal);let i=U(o,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps);if(t){let c=i.messages.filter(d=>d.extensions?.historyCursor===n);if(c.length!==1)throw new Error(`CHANNEL \u5386\u53F2\u4E0A\u4E0B\u6587 anchor \u5FC5\u987B\u4E00\u4E00\u5BF9\u5E94\uFF08channelId=${e.channelId}, index=${n}, count=${c.length}\uFF09`)}let a$1=i.nextBaseIndexes[e.channelId];return {messages:i.messages,hasNewer:(i.messageCounts[e.channelId]??0)===20&&a$1!==void 0&&a$1!==n,...a$1===void 0?{}:{nextCursor:a$1}}}function Rd(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL ${n} id \u975E\u6CD5\uFF1A${e}`);return t}async function Ed(e){let n=Td(e.indexes),t=g.encode(g.create({sUserId:Xt(e.userId,"user"),lsIndex:n.map(i=>({sChnnId:Xt(i.channelId,"channel"),sIndex:i.readCursor}))})),r=await e.http.postProtobuf({path:"/channel/v1/readIndexes/edit",body:t}),o=h.decode(r);if(o.errcode!==0)throw new Error(`CHANNEL readIndexes/edit \u5931\u8D25\uFF1Aerrcode=${o.errcode}`)}function Td(e){if(e.length===0)throw new Error("CHANNEL readIndexes/edit \u81F3\u5C11\u9700\u8981\u4E00\u4E2A index");let n=new Set;return e.map(t=>{Xt(t.channelId,"channel");let r=t.readCursor.trim();if(r==="")throw new Error(`CHANNEL readIndexes/edit cursor \u7F3A\u5931\uFF08channelId=${t.channelId}\uFF09`);if(n.has(t.channelId))throw new Error(`CHANNEL readIndexes/edit \u9891\u9053\u91CD\u590D\uFF08channelId=${t.channelId}\uFF09`);return n.add(t.channelId),{channelId:t.channelId,readCursor:r}})}function Xt(e,n){if(!/^\d+$/.test(e))throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);let t=BigInt(e);if(t<=0n)throw new Error(`CHANNEL readIndexes ${n} id \u975E\u6CD5\uFF1A${e}`);return t}function Pn(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function xi(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}async function Dd(e){let n=await B(e,"/friend/black/list",{},{responseMode:"strict",method:"POST"});if(!n.ok)throw new Error(`\u52A0\u8F7D\u9ED1\u540D\u5355\u5931\u8D25\uFF08${n.code}\uFF09\uFF1A${n.message||"unknown error"}`);if(n.data===null||n.data===void 0)return Object.freeze([]);if(!Array.isArray(n.data))throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94 data \u5FC5\u987B\u662F\u6570\u7EC4");return Object.freeze(n.data.map(t=>{let r=xi(t),o=xi(r?.user_info);if(r===void 0||o===void 0)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_info");let i=Pn(r.user_id),a=Pn(o.user_id),c=a||i;if(c==="")throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");if(i!==""&&a!==""&&i!==a)throw new Error("\u52A0\u8F7D\u9ED1\u540D\u5355\uFF1A\u5173\u7CFB\u8BB0\u5F55\u4E0E user_info \u8EAB\u4EFD\u4E0D\u4E00\u81F4");let d=Pn(o.nick_name??o.nickname)||c,s=Pn(r.remark_name),y=Pn(o.head_img_url??o.avatar);return Object.freeze({userId:c,displayName:s||d,nickname:d,...s===""?{}:{remark:s},...y===""?{}:{avatarUrl:y}})}))}async function Ud(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u8BBE\u7F6E\u9ED1\u540D\u5355\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(e,"/user/black/set",{friend_user_id:t,status:n.blocked?2:1},{responseMode:"strict",method:"POST"});if(!r.ok)throw new Error(`${n.blocked?"\u52A0\u5165":"\u79FB\u51FA"}\u9ED1\u540D\u5355\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}var Wn=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u7528\u6237\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="ContactUserSearchError",this.responseCode=n;}},Yn=class extends Error{kind;responseCode;constructor(n,t,r){super(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="ContactFriendshipRequestError",this.kind=n,this.responseCode=t;}},Qt={HIDDEN_CONTACT:40112,OWN_FRIEND_LIMIT_REACHED:40121,TARGET_FRIEND_LIMIT_REACHED:40122},Od=36875,Bd=40113;function Zt(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function Ce(e){let n=Zt(e);return n===""?void 0:n}function _i(e){let n=Array.isArray(e)?e[0]:e;return n!==null&&typeof n=="object"?n:void 0}function Nd(e){switch(e){case Qt.HIDDEN_CONTACT:return "hidden-contact";case Qt.OWN_FRIEND_LIMIT_REACHED:return "own-friend-limit";case Qt.TARGET_FRIEND_LIMIT_REACHED:return "target-friend-limit";default:return "remote"}}async function Kd(e,n){let t=n.query.trim();if(t==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1Aquery \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(e,"/user/info/search",{username:t},{responseMode:"strict",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok)throw new Wn(r.code,r.message);let o=_i(r.data);if(o===void 0)return null;let i=Zt(o.user_id??o.userId);if(i==="")throw new Error("\u641C\u7D22\u7528\u6237\uFF1A\u54CD\u5E94\u7F3A\u5C11 user_id");let a=Zt(o.nick_name??o.nickname??o.name)||i,c=o.friend_status??o.friendStatus,d=c===void 0?void 0:Number(c);if(d!==void 0&&!Number.isInteger(d))throw new Error("\u641C\u7D22\u7528\u6237\uFF1Afriend_status \u975E\u6CD5");return {userId:i,nickname:a,...Ce(o.username)===void 0?{}:{username:Ce(o.username)},...Ce(o.mid)===void 0?{}:{miCallId:Ce(o.mid)},...Ce(o.head_img_url??o.avatar)===void 0?{}:{avatarUrl:Ce(o.head_img_url??o.avatar)},...Ce(o.per_signature??o.signature)===void 0?{}:{signature:Ce(o.per_signature??o.signature)},...d===void 0?{}:{friendStatus:d}}}async function Gd(e,n){let t=n.userId.trim(),r=n.message.trim(),o=n.remark?.trim();if(t===""||r==="")throw new Error("\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1AuserId \u548C message \u4E0D\u80FD\u4E3A\u7A7A");let i=await B(e,"/friend/apply/do",{to_user_id:t,remarks:r,...o===void 0||o===""?{}:{remark_nick_name:o}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!i.ok)throw new Yn(Nd(i.code),i.code,i.message);let a=_i(i.data),c=Number(a?.status??0);if(c!==0&&c!==1&&c!==2)throw new Error(`\u53D1\u9001\u597D\u53CB\u7533\u8BF7\uFF1A\u672A\u77E5\u7ED3\u679C\u72B6\u6001 ${c}`);let d=Ce(a?.message??a?.msg??i.message);return {status:c,...d===void 0?{}:{message:d}}}async function Ld(e,n){let t=n.userId.trim();if(t==="")throw new Error("\u5220\u9664\u597D\u53CB\uFF1AuserId \u4E0D\u80FD\u4E3A\u7A7A");let r=await B(e,"/friend/del",{friend_user_id:t},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!r.ok&&r.code!==Bd)throw new Error(`\u5220\u9664\u597D\u53CB\u5931\u8D25\uFF08${r.code}\uFF09\uFF1A${r.message||"unknown error"}`)}async function Hd(e,n){let t=n.reporterUserId.trim(),r=n.targetUserId.trim(),o=n.problem.trim();if(t===""||r===""||o==="")throw new Error("\u4E3E\u62A5\u8054\u7CFB\u4EBA\uFF1AreporterUserId\u3001targetUserId \u548C problem \u4E0D\u80FD\u4E3A\u7A7A");let i=await B(e,"/user/report_user/add",{user_id:t,to_user_id:r,problem:o,images:"1"},{responseMode:"strict",method:"POST"});if(!i.ok)throw new Q("\u4E3E\u62A5\u8054\u7CFB\u4EBA",i.code,i.message)}function Fd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function qd(e){let n=e.memberIds.map(t=>({user_id:Fd(t)}));return B(e.client,"/user_radio/create",{name:e.name,secret_key:e.secretKey,is_hidden:"0",members:JSON.stringify(n),...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl}},{method:"POST",responseMode:"strict"})}function jd(e){return B(e.client,"/user_group/create_face",{is_hidden:"0"},{method:"POST",responseMode:"strict"})}function $d(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}function Jd(e){let n=e.memberIds.map(t=>({user_id:$d(t)}));return B(e.client,"/user_group/create",{name:e.name,is_hidden:"0",members:JSON.stringify(n),...e.avatarUrl===void 0?{}:{head_img_url:e.avatarUrl}},{method:"POST",responseMode:"strict"})}function Qe(e){if(e.trim()==="")throw new Error("board pinned message groupId \u4E0D\u80FD\u4E3A\u7A7A")}function Ze(e){if(e.trim()==="")throw new Error("channel board pinned message channelId \u4E0D\u80FD\u4E3A\u7A7A")}function ki(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function Vd(e){Qe(e.groupId);let n=await B(e.client,"/api/v1/board/get_board_msg_top",{group_ids:e.groupId,group_type:2},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(!ki(n.data))throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u5BF9\u8C61");let t=n.data[e.groupId];if(t===void 0&&Object.keys(n.data).length===0)return {...n,data:null};if(t===void 0)throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u5355\u7FA4\u54CD\u5E94\u5305\u542B\u975E\u76EE\u6807 groupId");if(!ki(t)||t.group_id!==e.groupId||t.group_type!==2||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==2)throw new Error("board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(o.envelope.receiverId!==e.groupId)throw new Error("board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 groupId \u4E0D\u4E00\u81F4");return {...n,data:{groupId:r.group_id,groupType:2,messageContent:r.msg_content}}}function Ri(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}async function zd(e){Ze(e.channelId);let n=await B(e.client,"/api/v1/board/get_board_msg_top",{group_ids:e.channelId,group_type:1},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(!Ri(n.data))throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u5BF9\u8C61");let t=n.data[e.channelId];if(t===void 0&&Object.keys(n.data).length===0)return {...n,data:null};if(t===void 0)throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u5355\u9891\u9053\u54CD\u5E94\u5305\u542B\u975E\u76EE\u6807 channelId");if(!Ri(t)||t.group_id!==e.channelId||t.group_type!==1||typeof t.msg_content!="string"||t.msg_content==="")throw new Error("channel board get \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u7F6E\u9876\u8BB0\u5F55\u5B57\u6BB5\u4E0D\u5339\u914D");let r=t,o=i(r.msg_content);if(o.envelope.convType!==3)throw new Error("channel board get \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(o.envelope.receiverId!==e.channelId)throw new Error("channel board get \u5FEB\u7167 receiverId \u4E0E\u54CD\u5E94 channelId \u4E0D\u4E00\u81F4");return {...n,data:{channelId:r.group_id,groupType:1,messageContent:r.msg_content}}}async function Wd(e,n){let r=(await B(e,"/user_radio/info",{radio_id:n.channelId},{...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}})).data?.secret_key;return typeof r=="string"&&r.trim()!==""?r:null}function Yd(e){if(typeof e!="string"||e.length===0)return false;try{let n=new URL(e);return n.protocol==="http:"||n.protocol==="https:"}catch{return false}}async function Xd(e){let n=await e("/system/background/list",{target:"core",method:"POST",data:{}});if(n.code!==200)throw new Error(`\u4F1A\u8BDD\u80CC\u666F\u9884\u7F6E\u5217\u8868\u8BF7\u6C42\u5931\u8D25\uFF1A${n.code}${n.msg?` ${n.msg}`:""}`);if(!Array.isArray(n.data?.lists))throw new Error("\u4F1A\u8BDD\u80CC\u666F\u9884\u7F6E\u5217\u8868\u54CD\u5E94\u7F3A\u5C11 lists");let t=[],r=new Set;for(let o of n.data.lists){let i=typeof o.id=="string"||typeof o.id=="number"?String(o.id):"";i.length===0||o.is_enabled!==1||!Yd(o.img_url)||r.has(i)||(r.add(i),t.push({id:i,url:o.img_url,...typeof o.name=="string"&&o.name.length>0?{name:o.name}:{}}));}return t}function Qd(e){let n=Number(e);return Number.isSafeInteger(n)&&String(n)===e?n:e}async function In(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message)}function Zd(e){let n=e.userIds.map(t=>({user_id:Qd(t)}));return In(e.client,"/user_group/invited",{group_id:e.groupId,members:JSON.stringify(n)},"\u9080\u8BF7\u7FA4\u6210\u5458")}function eu(e){return In(e.client,"/user_group/kick",{group_id:e.groupId,out_user_id:e.userId},"\u79FB\u9664\u7FA4\u6210\u5458")}function nu(e){return In(e.client,"/user_group/transfer",{group_id:e.groupId,new_user_id:e.userId},"\u8F6C\u8BA9\u7FA4\u7EC4")}function tu(e){return In(e.client,"/user_group/user/quit",{group_id:e.groupId,...e.newOwnerId===void 0?{}:{new_user_id:e.newOwnerId}},"\u9000\u51FA\u7FA4\u7EC4")}function ru(e){return In(e.client,"/user_group/edit",{group_id:e.groupId,verify_way:e.verifyWay,...e.verifyWay===4&&e.inviteCode!==void 0?{invite_code:e.inviteCode}:{}},"\u4FEE\u6539\u666E\u901A\u7FA4\u5165\u7FA4\u9A8C\u8BC1\u65B9\u5F0F")}var ou=new Set([200,32768]);async function iu(e){let n=pa$1({userId:e.userId,groupId:e.groupId}),t=await e.http.postProtobuf({path:"/offline/v1/group/read_all",body:n}),{code:r}=qa$1(t);if(!ou.has(r))throw new Error(`\u7FA4 read_all \u4E1A\u52A1\u5931\u8D25\uFF1Acode=${r}\uFF08groupId=${e.groupId}\uFF09`)}var vn=class extends Error{constructor(n){super(`${n}\u54CD\u5E94\u5305\u542B\u65E0\u6CD5\u8BC6\u522B\u7684 is_waitting`),this.name="MembershipJoinMappingError";}};function au(e,n){if(e===true||e===1||e==="1")return Object.freeze({outcome:"waiting"});if(e==null||e===false||e===0||e==="0")return Object.freeze({outcome:"joined"});throw new vn(n)}async function Ei(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);if(o.data===null||o.data===void 0)throw new vn(r);return au(o.data.is_waitting,r)}async function Ti(e,n,t,r){let o=await B(e,n,t,{method:"POST",responseMode:"strict"});if(!o.ok)throw new Q(r,o.code,o.message);return Object.freeze({outcome:"joined"})}function su(e){return Ei(e.client,"/user_group/apply",{group_id:e.groupId,qrcode_type:2,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u666E\u901A\u7FA4")}function cu(e){return Ti(e.client,"/user_group/enter_by_invite_code",{group_id:e.groupId,invite_code:e.inviteCode},"\u4F7F\u7528\u9080\u8BF7\u7801\u52A0\u5165\u666E\u901A\u7FA4")}function du(e){return Ei(e.client,"/user_radio/add/apply",{radio_id:e.channelId,remarks:e.remarks??""},"\u7533\u8BF7\u52A0\u5165\u793E\u7FA4")}function uu(e){return Ti(e.client,"/user_radio/enter_by_invite_code",{radio_id:e.channelId,invite_code:e.inviteCode},"\u4F7F\u7528\u9080\u8BF7\u7801\u52A0\u5165\u793E\u7FA4")}async function lu(e){if(Qe(e.groupId),e.messageContent.trim()==="")throw new Error("board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==2)throw new Error("board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 2");if(n.envelope.receiverId!==e.groupId)throw new Error("board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 groupId \u4E0D\u4E00\u81F4");let t=await B(e.client,"/api/v1/board/board_msg_top",{group_id:e.groupId,group_type:2,msg_content:e.messageContent},{method:"POST",prefix:"",responseMode:"strict"});if(!t.ok)return t;if(t.data!==null)throw new Error("board pin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...t,data:null}}async function pu(e){if(Ze(e.channelId),e.messageContent.trim()==="")throw new Error("channel board pinned message messageContent \u4E0D\u80FD\u4E3A\u7A7A");let n=i(e.messageContent);if(n.envelope.convType!==3)throw new Error("channel board pin \u5FEB\u7167 convType \u5FC5\u987B\u4E3A 3");if(n.envelope.receiverId!==e.channelId)throw new Error("channel board pin \u5FEB\u7167 receiverId \u4E0E\u76EE\u6807 channelId \u4E0D\u4E00\u81F4");let t=await B(e.client,"/api/v1/board/board_msg_top",{group_id:e.channelId,group_type:1,msg_content:e.messageContent},{method:"POST",prefix:"",responseMode:"strict"});if(!t.ok)return t;if(t.data!==null)throw new Error("channel board pin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...t,data:null}}async function fu(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.();let n=ua$1({userId:e.userId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/chat/msg/by_id",body:n,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,onReaction:e.onReaction,onPlaintextFallback:e.onPlaintextFallback};return e.asyncDecrypt===void 0?va$1(t,r,e.decryptDeps,e.messageIds):xa$1(t,r,e.decryptDeps,e.messageIds,e.asyncDecrypt)}async function mu(e){a(e.asyncDecrypt?.signal),e.asyncDecrypt?.assertCurrent?.(),e.asyncDecrypt===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let n=ma$1({userId:e.userId,groupId:e.groupId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/offline/v1/group/msg/by_id",body:n,...e.asyncDecrypt?.signal===void 0?{}:{signal:e.asyncDecrypt.signal}}),r={selfId:e.userId,keepRaw:true,source:"history",onReaction:e.onReaction};return e.asyncDecrypt===void 0?na$1(t,r,e.decryptDeps,e.messageIds):oa$1(t,{...r,expectedGroupId:e.groupId},e.decryptDeps,e.messageIds,{...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:o=>e.prepareKeys([...o])}})}async function gu(e){e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let n=W$1({userId:e.userId,channelId:e.channelId,messageIds:e.messageIds,clientType:e.clientType}),t=await e.http.postProtobuf({path:"/channel/v1/msg/by_id",body:n});return X(t,{selfId:e.userId,keepRaw:true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"msgById",surface:"msg-by-id",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps,e.messageIds)}var yu=20,Di=10,er=30,hu=100;async function bu(e){let n=[];for(let t of Oi(e.channels,yu)){let r=Q$1({userId:e.userId,clientType:e.clientType,channels:t}),o=await e.http.postProtobuf({path:"/channel/v1/sessions",body:r}),i={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:t.map(c=>c.channelId),diagnostic:{endpoint:"sessions",surface:"session-last",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType}},a=T(o,i);await Ui(e,a.sessions.filter(c=>c.channelState==="active"||c.raw?.status===0).map(c=>c.channelId)),n.push(...T(o,{...i,onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps).sessions);}return n}async function wu(e){let n=Iu(e.channelBatchSize),t=e.messageCount??er,r=vu(e.maxPagesPerBatch),o$1=new Map;for(let i of Oi(e.pulls,n)){let a$1=i.map(s=>({...s})),c=new Map(a$1.map(s=>[s.channelId,new Set([s.baseIndex])])),d=0;for(;a$1.length>0;){a(e.signal),await e.beforePage?.(),a(e.signal);let s=e.isChannelCurrent;if(s!==void 0&&(a$1=a$1.filter(I=>s(I.channelId))),a$1.length===0)break;if(d>=r){let I=a$1.map(({channelId:R,baseIndex:D})=>`${R}@${D}`).join(",");throw new Error(`channel offline \u5206\u9875\u8D85\u8FC7 maxPagesPerBatch=${r}\uFF08active=${I}\uFF09`)}d+=1;let y=R({userId:e.userId,clientType:e.clientType,pulls:a$1.map(I=>({channelId:I.channelId,baseIndex:I.baseIndex,direction:0,count:t,contain:0}))});a(e.signal);let h=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:y,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal),await Ui(e,a$1.map(I=>I.channelId)),a(e.signal);let b={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:a$1.map(I=>I.channelId),diagnostic:{endpoint:"offlineMessages",surface:"offline-batch",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},m=e.yieldToEventLoop===void 0?U(h,b,e.decryptDeps):await V$1(h,b,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal});a(e.signal);let M=[];for(let I of a$1){let R=m.nextBaseIndexes[I.channelId],D=m.messageCounts[I.channelId]??0;if(R===void 0)continue;let E=c.get(I.channelId);if(E.has(R))throw new Error(`channel offline cursor \u5FAA\u73AF\uFF08channelId=${I.channelId}, baseIndex=${R}\uFF09`);D<t||(E.add(R),M.push({channelId:I.channelId,baseIndex:R}));}await e.onPage?.(m.messages,{pulls:a$1.map(I=>({...I})),nextBaseIndexes:{...m.nextBaseIndexes},messageCounts:{...m.messageCounts}}),a(e.signal);for(let I of m.messages)o$1.has(I.id)||o$1.set(I.id,I);a$1=M;}}return [...o$1.values()].sort(o)}async function Cu(e){a(e.signal);let n=e.count??er;if(!Number.isInteger(n)||n<=0)throw new Error("channel latest: count \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=R({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:"",direction:1,count:n,contain:0}]});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});a(e.signal);let o={selfId:e.userId,keepRaw:e.keepRaw??true,expectedChannelIds:[e.channelId],diagnostic:{endpoint:"offlineMessages",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},i=e.yieldToEventLoop===void 0?{...U(r,o,e.decryptDeps),firstBaseIndex:f.decode(r).lsMessage[0]?.sIndex}:await V$1(r,o,e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal}),a$1=i.batchSize===n,c=i.firstBaseIndex;if(a$1&&(typeof c!="string"||c.trim()===""))throw new Error(`channel latest: \u6EE1\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08channelId=${e.channelId}\uFF09`);return {messages:i.messages,hasOlder:a$1,...a$1?{nextCursor:c}:{}}}async function Pu(e){a(e.signal);let n=e.count??er;e.decryptDeps!==void 0&&e.prepareKey!==void 0&&await e.prepareKey(e.channelId);let t=S({userId:e.userId,clientType:e.clientType,channelId:e.channelId,baseIndex:e.baseIndex,count:n,contain:e.contain??0});a(e.signal);let r=await e.http.postProtobuf({path:"/channel/v1/offlineMessages",body:t,...e.signal===void 0?{}:{signal:e.signal}});return a(e.signal),Y$1(r,{selfId:e.userId,channelId:e.channelId,requestedBaseIndex:e.baseIndex,requestedCount:n,keepRaw:e.keepRaw??true,diagnostic:{endpoint:"history",surface:"history-page",...e.operationId===void 0?{}:{operationId:e.operationId},clientTypeHeader:e.clientType,clientTypeBody:e.clientType},onContentDecodeError:e.onContentDecodeError,onReaction:e.onReaction},e.decryptDeps)}async function Ui(e,n){if(e.decryptDeps===void 0||e.prepareKeys===void 0)return;let t=[...new Set(n.filter(Boolean))];t.length>0&&await e.prepareKeys(t);}function Iu(e){if(e===void 0)return Di;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: channelBatchSize \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return Math.min(e,Di)}function vu(e){if(e===void 0)return hu;if(!Number.isInteger(e)||e<=0)throw new Error("channel offline: maxPagesPerBatch \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");return e}function Oi(e,n){let t=[];for(let r=0;r<e.length;r+=n)t.push(e.slice(r,r+n));return t}async function Bi(e,n){a(n.asyncDecrypt?.signal),n.asyncDecrypt?.assertCurrent?.();let t=ra$1({userId:n.userId,clientType:n.clientType,limit:n.limit,deliveredMsgInfos:n.deliveredMsgInfos}),r=await n.http.postProtobuf({path:e,body:t,...n.asyncDecrypt?.signal===void 0?{}:{signal:n.asyncDecrypt.signal}}),o={selfId:n.userId,keepRaw:true,onReaction:n.onReaction};return n.asyncDecrypt===void 0?ta$1(r,o,n.decryptDeps):wa$1(r,o,n.decryptDeps,n.asyncDecrypt)}function Ni(e){return Bi("/offline/v1/chat",e)}function Ki(e){return Bi("/offline/v1/owner_chat",e)}function Au(e){return Ni(e).then(n=>(sa$1(n),n.messages))}function Mu(e){return Ki(e).then(n=>(sa$1(n),n.messages))}function nr(e){if(e.asyncDecrypt!==void 0)return {...e.asyncDecrypt,...e.prepareKeys===void 0?{}:{prepareKeys:n=>e.prepareKeys([...n])}}}function Gi(e){return [...new Set(e.filter(n=>n!==void 0&&n!==""))]}async function Su(e){let n=nr(e);a(n?.signal),n?.assertCurrent?.();let t=da$1({userId:e.userId,clientType:e.clientType,limit:e.limit,deliveredMsgIds:e.deliveredMsgInfos?.map(o=>o.msgId)}),r=await e.http.postProtobuf({path:"/offline/v1/group",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return fa$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ga$1(r,{selfId:e.userId}),i=Gi(o.messages.map(a=>a.conversationId));i.length>0&&await e.prepareKeys(i);}return ga$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function xu(e){let n=nr(e);a(n?.signal),n?.assertCurrent?.();let t=ea$1({userId:e.userId,clientType:e.clientType,size:e.size}),r=await e.http.postProtobuf({path:"/offline/v1/group/session",body:t,...n?.signal===void 0?{}:{signal:n.signal}});if(n!==void 0)return ia$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps,n);if(e.prepareKeys!==void 0&&e.decryptDeps!==void 0){let o=ha$1(r,{selfId:e.userId}),i=Gi([...o.unreads.map(a=>a.groupId),...o.messages.map(a=>a.conversationId)]);i.length>0&&await e.prepareKeys(i);}return ha$1(r,{selfId:e.userId,keepRaw:true,onReaction:e.onReaction},e.decryptDeps)}async function _u(e){let n=nr(e),t=e.signal??n?.signal;a(t),a(n?.signal),n?.assertCurrent?.(),n===void 0&&e.prepareKeys!==void 0&&e.decryptDeps!==void 0&&e.groupId!==""&&await e.prepareKeys([e.groupId]);let r=ja$1({userId:e.userId,groupId:e.groupId,baseTime:e.baseTime,direct:e.direct,limit:e.limit,clientType:e.clientType});a(t);let o=await e.http.postProtobuf({path:"/offline/v1/group/history_msg",body:r,...t===void 0?{}:{signal:t}});a(t);let i={selfId:e.userId,keepRaw:e.keepRaw??true,source:"history",onReaction:e.onReaction};return n!==void 0?la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:n.yieldToEventLoop,signal:t},n):e.yieldToEventLoop===void 0?ka$1(o,i,e.decryptDeps):la$1(o,{...i,expectedGroupId:e.groupId},e.decryptDeps,{yieldToEventLoop:e.yieldToEventLoop,signal:e.signal})}async function ku(e){let n=Fa$1({userId:e.userId,clientType:e.clientType,limit:e.limit??100,msgId:String(Date.now()),deliveredMsgIds:e.deliveredMsgIds}),t=await e.http.postProtobuf({path:"/offline/v1/signal",body:n,...e.signal===void 0?{}:{signal:e.signal}});return Ga$1(t)}var en=class extends Error{responseCode;operation;constructor(n,t,r){let o=n==="profile"?"\u8BFB\u53D6\u673A\u5668\u4EBA\u8D44\u6599":n==="confirm"?"\u786E\u8BA4\u673A\u5668\u4EBA\u5F00\u804A":"\u8BFB\u53D6\u673A\u5668\u4EBA\u6307\u4EE4";super(`${o}\u5931\u8D25\uFF08${t}\uFF09\uFF1A${r||"unknown error"}`),this.name="RobotProfileError",this.responseCode=t,this.operation=n;}},ue=class extends Error{constructor(n){super(n),this.name="RobotProfileMappingError";}};function An(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function se(e){let n=An(e);return n===""?void 0:n}function Ne(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function tr(e){return An(e.robot_id??e.robotId)}function Ru(e){let n=Ne(e);if(n!==void 0&&tr(n)!=="")return n;let t=Ne(n?.data);if(t!==void 0&&tr(t)!=="")return t;throw new ue("\u673A\u5668\u4EBA\u8D44\u6599\u7F3A\u5C11\u7A33\u5B9A robot_id")}function Eu(e){if(e==null||e==="")return;let n=typeof e=="number"?e:Number(e);if(!Number.isSafeInteger(n)||n<0)throw new ue("\u673A\u5668\u4EBA\u4F7F\u7528\u4EBA\u6570\u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return n}function Li(e){if(!(e==null||e==="")){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false;throw new ue("\u673A\u5668\u4EBA\u9996\u6B21\u5F00\u804A\u6807\u8BB0\u5FC5\u987B\u662F\u5E03\u5C14\u503C")}}function Tu(e){let n=Ru(e),t=tr(n),r=An(n.robot_name??n.robotName)||t,o=se(n.mid??n.botMid??n.bot_mid),i=se(n.img_url??n.imgUrl),a=se(n.developer_name??n.developerName??n.developer),c=se(n.desc??n.description),d=Eu(n.users_count??n.usersCount??n.useNum),s=Li(n.first),y=se(n.app_id??n.appId),h=se(n.developer_id??n.developerId),b=se(n.app_name??n.appName),m=se(n.domain),M=se(n.suffix_address??n.suffixAddress),I=se(n.h5_url??n.h5Url),R=Li(n.is_dynamic??n.isDynamic);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{developerName:a},...c===void 0?{}:{description:c},...d===void 0?{}:{userCount:d},...s===void 0?{}:{firstChat:s},...y===void 0?{}:{appId:y},...h===void 0?{}:{developerId:h},...b===void 0?{}:{appName:b},...m===void 0?{}:{domain:m},...M===void 0?{}:{suffixAddress:M},...I===void 0?{}:{h5Url:I},...R===void 0?{}:{dynamicHost:R}}}function rr(e){let n=e.trim();if(n==="")throw new ue("\u673A\u5668\u4EBA robotId \u4E0D\u80FD\u4E3A\u7A7A");return n}function Du(e){if(e!==void 0){if(!Number.isSafeInteger(e)||e<1||e>5)throw new ue("\u673A\u5668\u4EBA\u8D44\u6599 lang \u5FC5\u987B\u662F 1 \u5230 5 \u7684\u6574\u6570");return e}}function or(e){return {responseMode:"strict",method:"POST",...e===void 0?{}:{headers:{"Client-type":String(e)}}}}async function Uu(e,n){let t=rr(n.robotId),r=Du(n.lang),o=await B(e,"/robot/info",{robot_id:t,...r===void 0?{}:{lang:r}},or(n.clientType));if(!o.ok)throw new en("profile",o.code,o.message);return Tu(o.data)}async function Ou(e,n){let t=rr(n.robotId),r=await B(e,"/robot/confirm_chat_robot",{robot_id:t},or(n.clientType));if(!r.ok)throw new en("confirm",r.code,r.message)}function Bu(e){let n=Ne(e),t=Ne(n?.data),r=n?.chat_menus??n?.chatMenus??t?.chat_menus??t?.chatMenus;if(r===void 0)return [];if(!Array.isArray(r))throw new ue("\u673A\u5668\u4EBA\u6307\u4EE4 chat_menus \u5FC5\u987B\u662F\u6570\u7EC4");return r}function Nu(e){try{return Ne(JSON.parse(e))}catch{return}}function Fi(e,n=0){if(n>2)return;let t=Ne(e)??(typeof e=="string"?Nu(e):void 0);if(t===void 0)return;let r=se(t.app_id??t.appId),o=se(t.domain);if(r!==void 0&&o!==void 0){let a=se(t.path);return {appId:r,domain:o,...a===void 0?{}:{path:a}}}let i=t.content??t.msg_content??t.msgContent;if(!(i===void 0||i===e))return Fi(i,n+1)}function Hi(e){let n=Ne(e);if(n===void 0)throw new ue("\u673A\u5668\u4EBA\u6307\u4EE4\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=An(n.menu_id??n.menuId??n.id),r=An(n.menu_name??n.menuName);if(t===""||r==="")throw new ue("\u673A\u5668\u4EBA\u6307\u4EE4\u7F3A\u5C11 menu_id \u6216 menu_name");let o=n.msg_type??n.msgType,i=o===void 0?0:Number(o);if(!Number.isSafeInteger(i))throw new ue("\u673A\u5668\u4EBA\u6307\u4EE4 msg_type \u5FC5\u987B\u662F\u6574\u6570");if(i===2){let a=Fi(n.msg_content??n.msgContent??n.content);if(a!==void 0)return {id:t,name:r,kind:"app",appId:a.appId,domain:a.domain,...a.path===void 0?{}:{path:a.path}}}return {id:t,name:r,kind:"message",requestsReply:i===0||i===1}}function Ku(e){let n=[];for(let t of Bu(e)){if(Array.isArray(t)){for(let r of t)n.push(Hi(r));continue}n.push(Hi(t));}return n}async function Gu(e,n){let t=rr(n.robotId),r=await B(e,"/robot/chat_menu",{robot_id:t},or(n.clientType));if(!r.ok)throw new en("menu",r.code,r.message);return Ku(r.data)}function qi(e,n,t){let r=e.trim(),o=/^0+$/.test(r);if(!/^\d+$/.test(r)||!t&&o)throw new Error(`\u673A\u5668\u4EBA\u6307\u4EE4 ${n} \u5FC5\u987B\u662F${t?"\u975E\u8D1F":"\u6B63"}\u6574\u6570`);return BigInt(r)}function ir(e){let n=[],t=e;for(;t>0x7fn;)n.push(Number(t&0x7fn|0x80n)),t>>=7n;return n.push(Number(t)),n}function Lu(e,n){let t=[...new TextEncoder().encode(n)];return [e<<3|2,...ir(BigInt(t.length)),...t]}function Hu(e){let n=qi(e.menuId,"menuId",true),t=e.robotId.trim(),r=qi(e.userId,"userId",false);if(t==="")throw new Error("\u673A\u5668\u4EBA\u6307\u4EE4 robotId \u4E0D\u80FD\u4E3A\u7A7A");let o=[8,...ir(n),...Lu(2,t),24,...ir(r)];return Uint8Array.from(o)}function Mn(e,n){let t=0n,r=0n,o=n;for(;o<e.length&&r<=63n;){let i=e[o];if(o+=1,t|=BigInt(i&127)<<r,(i&128)===0)return {value:t,offset:o};r+=7n;}throw new Error("\u673A\u5668\u4EBA\u56FA\u5B9A\u56DE\u590D protobuf \u622A\u65AD")}function Fu(e,n,t){if(t===0)return Mn(e,n).offset;if(t===1)return n+8;if(t===5)return n+4;if(t===2){let r=Mn(e,n),o=Number(r.value);if(!Number.isSafeInteger(o)||o<0||r.offset+o>e.length)throw new Error("\u673A\u5668\u4EBA\u56FA\u5B9A\u56DE\u590D protobuf \u622A\u65AD");return r.offset+o}throw new Error(`\u673A\u5668\u4EBA\u56FA\u5B9A\u56DE\u590D protobuf \u5B57\u6BB5\u7C7B\u578B\u4E0D\u652F\u6301\uFF1A${t}`)}function qu(e){let n=0n,t=0n,r="",o=0,i=0n,a=new Uint8Array,c=0;for(;c<e.length;){let d=Mn(e,c),s=Number(d.value>>3n),y=Number(d.value&7n);if(c=d.offset,y===0&&(s===1||s===2||s===4||s===5)){let b=Mn(e,c);c=b.offset,s===1?n=b.value:s===2?t=b.value:s===4?o=Number(b.value):i=b.value;continue}if(y===2&&(s===3||s===6)){let b=Mn(e,c),m=Number(b.value);if(!Number.isSafeInteger(m)||m<0||b.offset+m>e.length)throw new Error("\u673A\u5668\u4EBA\u56FA\u5B9A\u56DE\u590D protobuf \u622A\u65AD");let M=e.subarray(b.offset,b.offset+m);s===3?r=new TextDecoder().decode(M):a=Uint8Array.from(M),c=b.offset+m;continue}let h=Fu(e,c,y);if(h>e.length)throw new Error("\u673A\u5668\u4EBA\u56FA\u5B9A\u56DE\u590D protobuf \u622A\u65AD");c=h;}return {toId:n.toString(),fromId:t.toString(),msgId:r,msgType:o,msgTime:i,content:a}}async function ju(e,n){let t=await e.postProtobuf({path:"/robotRouter/fixed_chat_msg",body:Hu(n)});return qu(t)}var Xn=class extends Error{responseCode;constructor(n,t){super(`\u641C\u7D22\u673A\u5668\u4EBA\u5931\u8D25\uFF08${n}\uFF09\uFF1A${t||"unknown error"}`),this.name="RobotDirectoryError",this.responseCode=n;}},pe=class extends Error{constructor(n){super(n),this.name="RobotDirectoryMappingError";}};function ar(e){return typeof e=="string"||typeof e=="number"?String(e).trim():""}function ji(e){let n=ar(e);return n===""?void 0:n}function sr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function $u(e){if(e===true||e===1||e==="1")return true;if(e===false||e===0||e==="0")return false}function Ju(e){let n=sr(e);if(n===void 0)throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u5FC5\u987B\u662F\u5BF9\u8C61");let t=ar(n.robot_id??n.robotId);if(t==="")throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55\u9879\u7F3A\u5C11\u7A33\u5B9A robot_id");let r=ar(n.robot_name??n.robotName)||t,o=ji(n.mid??n.botMid??n.bot_mid),i=ji(n.img_url??n.imgUrl),a=$u(n.bind);return {id:t,displayName:r,...o===void 0?{}:{username:o},...i===void 0?{}:{avatarUrl:i},...a===void 0?{}:{bound:a}}}function Vu(e){if(Array.isArray(e))return e;let n=sr(e);if(n===void 0)throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 data \u5FC5\u987B\u662F\u5BF9\u8C61\u6216\u6570\u7EC4");let t=n.data??n.list;if(!Array.isArray(t))throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 data.data \u5FC5\u987B\u662F\u6570\u7EC4");return t}function zu(e){let n=sr(e);if(n===void 0)return;let t=n.total_count??n.totalCount;if(t===void 0)return;let r=typeof t=="number"?t:Number(t);if(!Number.isSafeInteger(r)||r<0)throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 total_count \u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");return r}async function Wu(e,n){if(!Number.isSafeInteger(n.page)||n.page<1)throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 page \u5FC5\u987B\u662F\u6B63\u6574\u6570");if(!Number.isSafeInteger(n.pageSize)||n.pageSize<1||n.pageSize>100)throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 pageSize \u5FC5\u987B\u662F 1-100 \u7684\u6574\u6570");let t=n.keyword?.trim()??"",r=n.groupId?.trim()??"";if(r===""!=(n.groupType===void 0))throw new pe("\u673A\u5668\u4EBA\u76EE\u5F55 groupId \u4E0E groupType \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B\u6216\u540C\u65F6\u7701\u7565");let o=await B(e,"/robot/search_robot",{page:n.page,page_size:n.pageSize,...t===""?{}:{keyword:t},...r===""||n.groupType===void 0?{}:{group_id:r,group_type:n.groupType},...n.boundOnly===true?{search_type:1}:{}},{responseMode:"strict",method:"POST",...n.clientType===void 0?{}:{headers:{"Client-type":String(n.clientType)}}});if(!o.ok)throw new Xn(o.code,o.message);let a=Vu(o.data).map(Ju),c=zu(o.data),d=c===void 0?a.length<n.pageSize:n.page*n.pageSize>=c;return {items:a,exhausted:d}}var Yu={direct:"/friend/undisturb/set",group:"/user_group/user/edit",channel:"/user_radio/user/setting",robot:"/friend/undisturb/set"},Xu={direct:"friend_user_id",group:"group_id",channel:"radio_id",robot:"friend_user_id"};async function Qu(e){let n=Yu[e.conversationType],t=Xu[e.conversationType];if(n===void 0||t===void 0)throw new Error(`\u514D\u6253\u6270\u672A\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\uFF1A${e.conversationType}`);let{code:r}=await B(e.client,n,{[t]:e.targetId,is_undisturb:e.muted?"1":"0"},{method:"POST"});if(r!==200)throw new Error(`\u514D\u6253\u6270\u8BBE\u7F6E\u5931\u8D25\uFF1Acode=${r}\uFF08${e.conversationType} ${e.targetId}\uFF09`)}async function Zu(e){let n={friend_user_id:e.userId};e.name!==void 0&&(n.nick_name=e.name),e.email!==void 0&&(n.ext_email=JSON.stringify(e.email)),e.phones!==void 0&&(n.ext_mobile=JSON.stringify(e.phones.map(r=>({country_code:r.countryCode,mobile:r.mobile}))));let{code:t}=await B(e.client,"/friend/remarks/update",n,{method:"POST"});if(t!==200)throw new Error(`\u8BBE\u7F6E\u597D\u53CB\u5907\u6CE8\u5931\u8D25\uFF1Acode=${t}\uFF08userId=${e.userId}\uFF09`)}async function el(e){let{code:n}=await B(e.client,"/user_group/user/edit",{group_id:e.groupId,nick_name:e.nickname},{method:"POST"});if(n!==200)throw new Error(`\u4FEE\u6539\u7FA4\u5185\u6635\u79F0\u5931\u8D25\uFF1Acode=${n}\uFF08groupId=${e.groupId}\uFF09`)}async function nl(e){Qe(e.groupId);let n=await B(e.client,"/api/v1/board/board_msg_top_cancel",{group_id:e.groupId,group_type:2},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(n.data!==null)throw new Error("board unpin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...n,data:null}}async function tl(e){Ze(e.channelId);let n=await B(e.client,"/api/v1/board/board_msg_top_cancel",{group_id:e.channelId,group_type:1},{method:"POST",prefix:"",responseMode:"strict"});if(!n.ok)return n;if(n.data!==null)throw new Error("channel board unpin \u54CD\u5E94\u7ED3\u6784\u975E\u6CD5\uFF1A\u6210\u529F data \u5FC5\u987B\u4E3A\u7A7A");return {...n,data:null}}async function rl(e){let n={group_id:e.groupId};e.name!==void 0&&(n.name=e.name),e.avatarUrl!==void 0&&(n.head_img_url=e.avatarUrl);let{code:t}=await B(e.client,"/user_group/edit",n,{method:"POST"});if(t!==200)throw new Error(`\u4FEE\u6539\u7FA4\u8D44\u6599\u5931\u8D25\uFF1Acode=${t}\uFF08groupId=${e.groupId}\uFF09`)}var ol="1970-01-01 08:00:00",il="2000",al="",Qn=class extends Error{constructor(){super("\u4F1A\u8BDD\u6536\u85CF Core API \u672A\u914D\u7F6E"),this.name="SessionFavoriteProviderUnavailableError";}},_e=class extends Error{constructor(n){super(n),this.name="SessionFavoriteMappingError";}};function W(e){return typeof e=="string"?e:e==null?"":String(e)}function Sn(e,n){let t=W(e).trim();if(t==="")throw new _e(`${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function sl(e){let n=typeof e=="number"?e:Number(String(e??"").trim());return n===1?"text":n===2?"image":n===3?"video":n===4?"voice":n===5?"location":n===11?"file":n===28?"mediaAlbum":n===29?"filesAlbum":n===30?"liveRoom":null}function cl(e){return e==="text"?1:e==="image"?2:e==="video"?3:e==="voice"?4:e==="location"?5:e==="mediaAlbum"?28:e==="filesAlbum"?29:e==="liveRoom"?30:11}function dl(e){if(e==="direct")return 0;if(e==="group")return 1;if(e==="channel")return 2;throw new _e(`favorite conversation type ${e}`)}function Zn(e,n){return n==="text"||n==="location"?W(e.content).trim():n==="file"?W(e.fileName||e.file_name||e.name).trim():n==="mediaAlbum"||n==="filesAlbum"?W(e.caption).trim():n==="liveRoom"?W(e.liveRoomName).trim()||W(e.broadcasterUserName).trim():""}function ul(e,n){let t=W(e.group_id).trim(),r=W(e.radio_id).trim(),o=Number(W(e.msg_type).trim());if(o===1&&t!=="")return {conversationType:"group",conversationId:t};if(o===2&&r!=="")return {conversationType:"channel",conversationId:r};if(t!=="")return {conversationType:"group",conversationId:t};if(r!=="")return {conversationType:"channel",conversationId:r};if(o===0){let i=W(e.from_id).trim(),a=W(e.to_id).trim(),c=i===n.trim()?a:i;if(c!=="")return {conversationType:"direct",conversationId:c}}return null}function ll(e,n){let t=e.from_user,r=W(t?.nick_name||t?.nickname||t?.name).trim();return r===""?n:r}function pl(e,n){let t=W(e.uu_id).trim(),r=sl(e.content_type),o=To(W(e.msg_body),n);if(t===""||r===null||o===null)return null;let i=W(e.from_id).trim();return Object.freeze({collectId:t,msgId:W(e.msg_id).trim(),kind:r,senderId:i,senderName:ll(e,i),avatarUrl:W(e.from_user?.avatar).trim(),createdAt:W(e.create_time||e.update_time||e.msg_time).trim(),text:Zn(o,r),imageUrl:Pb(r,o),fileName:r==="filesAlbum"?Qb(o).map(a=>a.fileName).join(" "):r==="file"?Zn(o,"file"):"",body:r==="filesAlbum"?Rb(o):Object.freeze({...o}),conversation:ul(e,n)})}function fl(e){if(e==null)return [];if(Array.isArray(e))return e;if(typeof e=="object"&&e!==null&&"list"in e){let n=e.list;if(n==null)return [];if(Array.isArray(n))return n}throw new _e("favorite list data \u5FC5\u987B\u662F\u6570\u7EC4\u6216 { list }")}function ml(){if(typeof crypto>"u"||typeof crypto.randomUUID!="function")throw new _e("collect uuid \u4E0D\u53EF\u7528");return crypto.randomUUID()}function gl(e){return Object.freeze({...e,body:Object.freeze({...e.body}),conversation:e.conversation===null?null:Object.freeze({...e.conversation})})}function yl(e){async function n(t,r,o){if(e.coreClient===void 0)throw new Qn;let i=await B(e.coreClient,t,r,{method:"POST",responseMode:"strict",prefix:al});if(!i.ok)throw new Q(o,i.code,i.message);return i.data}return {async list(){let t=Sn(e.getUserId(),"favorite userId"),r=await n("/api/v1/user/favorite/list",{start_time:ol,page_size:il},"\u4F1A\u8BDD\u6536\u85CF\u5217\u8868");return Object.freeze(fl(r).flatMap(o=>{let i=pl(o,t);return i===null?[]:[i]}))},async add(t){let r=Sn(e.getUserId(),"favorite userId"),o=(e.createCollectId??ml)(),i={msg_id:Sn(t.messageId,"favorite msgId"),content_type:cl(t.kind),msg_type:dl(t.conversation.conversationType),msg_time:String(t.createdAt),from_id:Sn(t.senderId,"favorite fromId"),to_id:Sn(t.peerId,"favorite toId"),is_hide:t.hide===true?"1":"0",uu_id:o,msg_body:Eo(JSON.stringify(t.plainBody),r)};return t.conversation.conversationType==="group"&&(i.group_id=t.conversation.conversationId),t.conversation.conversationType==="channel"&&(i.radio_id=t.conversation.conversationId),await n("/api/v1/user/favorite/add",i,"\u6DFB\u52A0\u4F1A\u8BDD\u6536\u85CF"),gl({collectId:o,msgId:t.messageId.trim(),kind:t.kind,senderId:t.senderId.trim(),senderName:t.senderId.trim(),avatarUrl:"",createdAt:String(t.createdAt),text:Zn(t.plainBody,t.kind),imageUrl:Pb(t.kind,t.plainBody),fileName:t.kind==="filesAlbum"?Qb(t.plainBody).map(a=>a.fileName).join(" "):t.kind==="file"?Zn(t.plainBody,"file"):"",body:t.kind==="filesAlbum"?Rb(t.plainBody):t.plainBody,conversation:t.conversation})},async delete(t){let r=[...new Set(t.map(o=>o.trim()).filter(o=>o!==""))];if(r.length===0)throw new _e("favorite ids \u4E0D\u80FD\u4E3A\u7A7A");await n("/api/v1/user/favorite/del",{ids:r.join("|")},"\u5220\u9664\u4F1A\u8BDD\u6536\u85CF");}}}async function $i(e,n){a(n);let t=await createMD5();a(n);let r=performance.now();for(let o=0;o<e.size;o+=1024*1024){a(n);let i=new Uint8Array(await e.slice(o,o+1024*1024).arrayBuffer());a(n),t.update(i),performance.now()-r>=8&&(await new Promise(a=>setTimeout(a,0)),a(n),r=performance.now());}return a(n),t.digest("hex")}var Ji="image/jpeg";function cr(e,n){return e.type!==""||n===void 0||n===""?e:new Blob([e],{type:n})}function bl(e){let n=0;return {fileMd5:$i,async imageDimensions(t,r,o){let i=await e.prepare({operationId:`core-image-dimensions-${++n}`,generation:0,kind:"image",file:cr(t,r),includePoster:false},o);return {width:i.width,height:i.height}},async imageThumbnail(t,r,o){let i=await e.prepare({operationId:`core-image-thumbnail-${++n}`,generation:0,kind:"image",file:cr(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality}},o);if(i.posterData===void 0)throw new Error("\u56FE\u7247\u7F29\u7565\u56FE\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,mimeType:Ji}},async videoPoster(t,r,o){let i=await e.prepare({operationId:`core-video-poster-${++n}`,generation:0,kind:"video",file:cr(t,r?.mimeType),...r?.maxSize===void 0?{}:{maxSize:r.maxSize},...r?.targetBytes===void 0?{}:{targetBytes:r.targetBytes},...r?.maxBytes===void 0?{}:{maxBytes:r.maxBytes},...r?.quality===void 0?{}:{quality:r.quality},...r?.minQuality===void 0?{}:{minQuality:r.minQuality},...r?.atTime===void 0?{}:{atTime:r.atTime}},o);if(i.posterData===void 0)throw new Error("\u89C6\u9891\u5C01\u9762\u751F\u6210\u5931\u8D25\uFF1A\u6267\u884C\u5668\u672A\u8FD4\u56DE poster");return {data:new Uint8Array(i.posterData),width:i.width,height:i.height,duration:Math.round(i.duration??0),mimeType:Ji}}}}function wl(e){return e>=192&&e<=207&&e!==196&&e!==200&&e!==204}function Cl(e){return e!==void 0&&e>=5&&e<=8}function Pl(e,n,t){return Cl(t)?{width:n,height:e}:{width:e,height:n}}function Il(e,n,t){if(n+6>t)return;for(let[d,s]of [69,120,105,102,0,0].entries())if(e.getUint8(n+d)!==s)return;let r=n+6;if(r+8>t)return;let o=e.getUint16(r,false);if(o!==19789&&o!==18761)return;let i=o===18761;if(e.getUint16(r+2,i)!==42)return;let a=r+e.getUint32(r+4,i);if(a+2>t)return;let c=e.getUint16(a,i);for(let d=0;d<c;d++){let s=a+2+d*12;if(s+12>t)return;if(e.getUint16(s,i)===274)return e.getUint16(s+8,i)}}function vl(e,n){let t,r=2;for(;r+4<=n;){if(e.getUint8(r)!==255)return;let o=e.getUint8(r+1);if(o===255){r+=1;continue}if(o===218||o===217)return;let i=e.getUint16(r+2,false);if(i<2)return;let a=r+4,c=r+2+i;if(c>n)return;if(wl(o)){if(a+5>n)return;let d=e.getUint16(a+1,false),s=e.getUint16(a+3,false);return s<=0||d<=0?void 0:Pl(s,d,t)}o===225&&t===void 0&&(t=Il(e,a,c)),r=c;}}function Al(e,n){if(n<24)return;let t=e.getUint32(16,false),r=e.getUint32(20,false);return t>0&&r>0?{width:t,height:r}:void 0}function Ml(e,n){if(n<10)return;let t=e.getUint16(6,true),r=e.getUint16(8,true);return t>0&&r>0?{width:t,height:r}:void 0}function Sl(e,n){if(n<30)return;let t=e.getUint32(12,false);if(t===1448097824){let r=e.getUint16(26,true)&16383,o=e.getUint16(28,true)&16383;return r>0&&o>0?{width:r,height:o}:void 0}if(t===1448097868){let r=e.getUint32(21,true),o=(r&16383)+1,i=(r>>>14&16383)+1;return {width:o,height:i}}if(t===1448097880){let r=(e.getUint16(24,true)|e.getUint8(26)<<16)+1,o=(e.getUint16(27,true)|e.getUint8(29)<<16)+1;return {width:r,height:o}}}function et(e,n,t){return n<t.length?false:t.every((r,o)=>e.getUint8(o)===r)}async function Vi(e){if(e.size===0)return;let n=new Uint8Array(await e.slice(0,Math.min(e.size,262144)).arrayBuffer()),t=new DataView(n.buffer,n.byteOffset,n.byteLength),r=n.byteLength;if(et(t,r,[255,216,255]))return vl(t,r);if(et(t,r,[137,80,78,71,13,10,26,10]))return Al(t,r);if(et(t,r,[71,73,70,56]))return Ml(t,r);if(et(t,r,[82,73,70,70])&&r>=12&&t.getUint32(8,false)===1464156752)return Sl(t,r)}var Qi=320,xl=12*1024,Zi=20*1024,_l=.9,kl=.72,Rl=320,El=10*1024,Tl=16*1024,Dl=.84,Ul=.68,ea=15e3,Ol=1;function Bl(){if(typeof navigator>"u")return 2;let e=navigator.userAgent;if(/iPad|iPhone|iPod/.test(e)||/Macintosh/.test(e)&&(navigator.maxTouchPoints??0)>1)return 1;let t=navigator.deviceMemory;return t!==void 0&&t<=2?1:2}function zi(e){let n={active:0,disposed:false},t=[];function r(){for(;!n.disposed&&n.active<e&&t.length>0;){let o=t.shift();if(o.signal?.aborted){o.reject(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));continue}o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),n.active+=1;let i=false;o.resolve(()=>{i||(i=true,n.active-=1,r());});}}return {acquire(o){return n.disposed?Promise.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E")):new Promise((i,a)=>{let c={resolve:i,reject:a,...o===void 0?{}:{signal:o}};o!==void 0&&(c.onAbort=()=>{let d=t.indexOf(c);d>=0&&t.splice(d,1),a(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},o.addEventListener("abort",c.onAbort,{once:true})),t.push(c),r();})},dispose(){n.disposed=true;for(let o of t.splice(0))o.onAbort!==void 0&&o.signal?.removeEventListener("abort",o.onAbort),o.reject(new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E"));}}}function ke(e){if(e?.aborted)throw new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError")}var Wi=16777216,Nl=4096;function Kl(e,n){let t=Math.min(1,Nl/Math.max(e,n)),r=Math.max(1,Math.round(e*t)),o=Math.max(1,Math.round(n*t)),i=r*o;if(i>Wi){let a=Math.sqrt(Wi/i);r=Math.max(1,Math.floor(r*a)),o=Math.max(1,Math.floor(o*a));}return {width:r,height:o}}function lr(e,n,t){let r=Math.min(1,t/Math.max(e,n));return Kl(Math.max(1,Math.round(e*r)),Math.max(1,Math.round(n*r)))}async function Yi(e,n,t){ke(t);let r=await new Promise(o=>e.toBlob(o,"image/jpeg",n));if(ke(t),r===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1ACanvas \u7F16\u7801\u8FD4\u56DE\u7A7A\u7ED3\u679C");return await r.arrayBuffer()}function dr(e,n){if(!Number.isInteger(e)||e<=0)throw new RangeError(`${n}\u5FC5\u987B\u662F\u6B63\u6574\u6570`)}function Xi(e,n){if(!Number.isFinite(e)||e<=0||e>1)throw new RangeError(`${n}\u5FC5\u987B\u5927\u4E8E 0 \u4E14\u4E0D\u8D85\u8FC7 1`)}async function nt(e,n,t,r,o){let i=r.kind==="video",a=i?"\u89C6\u9891\u5C01\u9762":"\u56FE\u7247\u7F29\u7565\u56FE",c=r.maxSize??(i?Rl:Qi),d=r.targetBytes??(i?El:xl),s=r.maxBytes??(i?Tl:Zi),y=r.quality??(i?Dl:_l),h=r.minQuality??(i?Ul:kl);if(dr(c,`${a}\u6700\u5927\u8FB9\u957F`),dr(d,`${a}\u76EE\u6807\u5B57\u8282\u6570`),dr(s,`${a}\u6700\u5927\u5B57\u8282\u6570`),Xi(y,`${a}\u521D\u59CB\u8D28\u91CF`),Xi(h,`${a}\u6700\u4F4E\u8D28\u91CF`),d>s)throw new RangeError(`${a}\u76EE\u6807\u5B57\u8282\u6570\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5B57\u8282\u6570`);if(h>y)throw new RangeError(`${a}\u6700\u4F4E\u8D28\u91CF\u4E0D\u80FD\u9AD8\u4E8E\u521D\u59CB\u8D28\u91CF`);ke(o);let b=document.createElement("canvas");try{let m=b.getContext("2d");if(m===null)throw new Error("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u65E0\u6CD5\u521B\u5EFA Canvas 2D \u4E0A\u4E0B\u6587");let M=C=>{ke(o),b.width=C.width,b.height=C.height,m.drawImage(e,0,0,C.width,C.height);},I=lr(n,t,c);M(I);let R=Math.min(200,Math.max(I.width,I.height)),D,E=[...new Set([y,Math.max(h,y-.12),h])];for(let C of E){let _=await Yi(b,C,o);if((D===void 0||_.byteLength<D.byteLength)&&(D=_),_.byteLength<=d)return _}let x=Math.max(I.width,I.height);if(x>R&&D!==void 0){let C=Math.sqrt(d/D.byteLength),_=Math.max(R,Math.floor(x*Math.min(.9,Math.max(.5,C))));I=lr(n,t,_),M(I);for(let U of [y,h]){let l=await Yi(b,U,o);if(l.byteLength<D.byteLength&&(D=l),l.byteLength<=d)return l}}if(D!==void 0&&D.byteLength<=s)return D;throw new Error(`${a}\u751F\u6210\u5931\u8D25\uFF1A\u7F16\u7801\u7ED3\u679C\u8D85\u8FC7 ${s} \u5B57\u8282\u786C\u4E0A\u9650`)}finally{b.width=0,b.height=0;}}function ur(e,n,t,r){return ke(t),new Promise((o,i)=>{let a=()=>n==="seeked"?!e.seeking:e.readyState>=(n==="loadedmetadata"?1:2),c,d,s,y,h=()=>{c!==void 0&&clearTimeout(c),e.removeEventListener(n,d),e.removeEventListener("error",s),t?.removeEventListener("abort",y);};d=()=>{a()&&(h(),o());},s=()=>{h(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u524D\u89E3\u7801\u9519\u8BEF`));},y=()=>{h(),i(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},c=setTimeout(()=>{h(),i(new Error(`\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A${n} \u8D85\u65F6`));},ea),e.addEventListener(n,d),e.addEventListener("error",s,{once:true}),t?.addEventListener("abort",y,{once:true});try{r?.(),t?.aborted?y():e.error!==null?s():d();}catch(b){h(),i(b);}})}async function Gl(e,n){ke(n);let t=e.maxSize??Qi,r=e.maxBytes??Zi,o=await Vi(e.file);ke(n);function i(y,h){return e.file.type==="image/jpeg"&&e.file.size<=r&&Math.max(y,h)<=t}if(o!==void 0){if(e.includePoster===false)return o;if(i(o.width,o.height))return {...o,posterData:await e.file.arrayBuffer()}}let a=o===void 0?void 0:lr(o.width,o.height,t),c;try{c=a===void 0?await createImageBitmap(e.file):await createImageBitmap(e.file,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:"high"});}catch(y){if(n?.aborted)throw y}if(c!==void 0)try{ke(n);let y=o??{width:c.width,height:c.height};return e.includePoster===!1?y:o===void 0&&i(c.width,c.height)?{...y,posterData:await e.file.arrayBuffer()}:{...y,posterData:await nt(c,c.width,c.height,e,n)}}finally{c.close();}let d=URL.createObjectURL(e.file),s=new Image;try{await new Promise((h,b)=>{let m,M,I=()=>{m!==void 0&&clearTimeout(m),s.onload=null,s.onerror=null,n?.removeEventListener("abort",M);};M=()=>{I(),b(new DOMException("\u5A92\u4F53\u9884\u89C8\u51C6\u5907\u5DF2\u53D6\u6D88","AbortError"));},s.onload=()=>{I(),h();},s.onerror=()=>{I(),b(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u9519\u8BEF"));},m=setTimeout(()=>{I(),b(new Error("\u56FE\u7247\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1AImage \u89E3\u7801\u8D85\u65F6"));},ea),n?.addEventListener("abort",M,{once:!0}),s.src=d;});let y=o??{width:s.naturalWidth,height:s.naturalHeight};return e.includePoster===!1?y:i(s.naturalWidth,s.naturalHeight)?{...y,posterData:await e.file.arrayBuffer()}:{...y,posterData:await nt(s,s.naturalWidth,s.naturalHeight,e,n)}}finally{s.removeAttribute("src"),URL.revokeObjectURL(d);}}async function Ll(e,n){let t=URL.createObjectURL(e.file),r=document.createElement("video");r.muted=true,r.preload="metadata",r.playsInline=true;try{await ur(r,"loadedmetadata",n,()=>{r.src=t,r.load();});let o=r.videoWidth,i=r.videoHeight;if(o<=0||i<=0)throw new Error("\u89C6\u9891\u9884\u89C8\u51C6\u5907\u5931\u8D25\uFF1A\u89C6\u9891\u5C3A\u5BF8\u65E0\u6548");let a=Number.isFinite(r.duration)&&r.duration>0?r.duration:void 0,c=e.atTime===void 0?a===void 0?0:Math.min(1,a/2):Math.max(0,Math.min(e.atTime,a??e.atTime));c>0&&await ur(r,"seeked",n,()=>{r.currentTime=c;}),await ur(r,"loadeddata",n,()=>{r.preload="auto";});let d=a===void 0?void 0:a,s;try{s=await nt(r,o,i,e,n);}catch(h){if(n?.aborted||h instanceof RangeError)throw h}let y;if(e.includeDisplayPoster)try{y=await nt(r,o,i,{...e,maxSize:960,targetBytes:160*1024,maxBytes:256*1024,quality:.9,minQuality:.8},n);}catch(h){if(n?.aborted||h instanceof RangeError)throw h}return {width:o,height:i,...d===void 0?{}:{duration:d},...s===void 0?{}:{posterData:s},...y===void 0?{}:{displayPosterData:y}}}finally{r.pause(),r.removeAttribute("src"),r.load(),URL.revokeObjectURL(t);}}function Hl(e={}){let n=e.maxConcurrency??Bl();if(!Number.isInteger(n)||n<1||n>4)throw new RangeError("\u5A92\u4F53\u9884\u89C8\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-4 \u7684\u6574\u6570");let t=zi(n),r=zi(Ol),o=false;return {async prepare(i,a){if(o)throw new Error("\u5A92\u4F53\u9884\u89C8\u6267\u884C\u5668\u5DF2\u91CA\u653E");let c=i.kind==="video",d=await(c?r:t).acquire(a);try{return c?await Ll(i,a):await Gl(i,a)}finally{d();}},dispose(){o||(o=true,t.dispose(),r.dispose());}}}function tt(e=6){if(!Number.isSafeInteger(e)||e<1)throw new RangeError("\u5A92\u4F53\u8BF7\u6C42\u5E76\u53D1\u4E0A\u9650\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let n=0,t=[];function r(){for(;n<e&&t.length>0;){let o=0,i=t[0].getPriority?.()??0;for(let c=1;c<t.length;c+=1){let d=t[c].getPriority?.()??0;d>i&&(o=c,i=d);}let a=t.splice(o,1)[0];if(a.signal?.removeEventListener("abort",a.cancel),a.signal?.aborted){a.cancel();continue}n+=1,a.start();}}return async function(i,a,c){if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");await new Promise((d,s)=>{let y={signal:i,getPriority:c,start:d,cancel:()=>{let h=t.indexOf(y);h>=0&&t.splice(h,1),s(new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError"));}};i?.addEventListener("abort",y.cancel,{once:true}),t.push(y),r();});try{if(i?.aborted)throw new DOMException("\u5A92\u4F53\u4F20\u8F93\u5DF2\u53D6\u6D88","AbortError");return await a()}finally{n-=1,r();}}}var xn=16*1024*1024,_n=3,pr=3,rt=6,Fl=5*1024**3,ot=1e4;function it(e,n){if(!Number.isSafeInteger(e)||e<0)throw new K("upload-source-invalid","\u5A92\u4F53\u4E0A\u4F20\u5927\u5C0F\u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");let t=n&&e>xn,r=t?Math.ceil(e/xn):1;if(!t&&e>Fl)throw new K("upload-size-exceeded","\u5355\u6B21 PUT \u6700\u591A\u652F\u6301 5 GiB\uFF1B\u66F4\u5927\u5BF9\u8C61\u9700\u8981\u663E\u5F0F\u542F\u7528\u5E76\u914D\u7F6E\u5206\u7247\u4E0A\u4F20");if(r>ot)throw new K("upload-size-exceeded","\u5F53\u524D 16 MiB \u5206\u7247\u7B56\u7565\u6700\u591A\u652F\u6301 10,000 \u7247\uFF08156.25 GiB\uFF09");return {multipart:t,partSize:xn,partCount:r}}function ql(e,n,t,r){let o=/^bytes (\d+)-(\d+)\/(\d+)$/.exec(e.headers.get("content-range")??""),i=e.headers.get("etag")??"",a=e.headers.get("content-length"),c=Number(o?.[1]),d=Number(o?.[2]),s=Number(o?.[3]);if(e.status!==206||o===null||![c,d,s].every(Number.isSafeInteger)||s<=0||c!==n||d!==Math.min(t,s-1)||d<c||!/^"[\x21\x23-\x7E\x80-\xFF]*"$/.test(i)||a!==null&&(!/^\d+$/.test(a)||Number(a)!==d-c+1)||e.headers.get("content-encoding")!==null&&e.headers.get("content-encoding")!=="identity")throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u54CD\u5E94\u65E0\u6548\uFF1A\u9700\u8981 206\u3001\u6B63\u786E Content-Range\u3001\u5F3A ETag \u548C\u672A\u538B\u7F29\u5B57\u8282\uFF1B\u8BF7\u68C0\u67E5\u4E0B\u8F7D\u57DF\u540D\u7684 CORS ExposeHeaders");if(r!==void 0&&(s!==r.total||i!==r.etag))throw new K("download-object-changed","\u5206\u6BB5\u4E0B\u8F7D\u671F\u95F4\u6587\u4EF6\u7248\u672C\u53D1\u751F\u53D8\u5316\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");return {end:d,total:s,etag:i}}function na(e=true,n,t=xn){if(!Number.isSafeInteger(t)||t<=0)throw new RangeError("\u4E0B\u8F7D\u5206\u6BB5\u5927\u5C0F\u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=tt(rt),o=new WeakMap;async function i(c,d){if(!c.ok)throw new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${c.status}`);return d.onProgress===void 0||c.body===null?d.preferBlob===true?await c.blob():new Uint8Array(await c.arrayBuffer()):$l(c,d.onProgress,d.expectedBytes,d.preferBlob===true)}async function a(c){let d=c.resume?.transport,s=typeof d=="object"&&d!==null?o.get(d):void 0;if(c.resume!==void 0&&(s===void 0||s.url!==c.url))throw c.onResumeInvalidated?.(),new K("download-range-invalid","\u4E0B\u8F7D\u65AD\u70B9\u4E0D\u5C5E\u4E8E\u5F53\u524D\u8D44\u6E90\u6216\u4F20\u8F93\u5B9E\u4F8B\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");let y=new AbortController,h=()=>y.abort(c.signal?.reason);c.signal?.aborted?h():c.signal?.addEventListener("abort",h,{once:true});let b=y.signal,m=s===void 0?[]:[...s.blobs],M=m.reduce((p,u)=>p+(u?.size??0),0),I=s?.object,R=s?.mimeType??"",D=0,E,x=false,C=false,_=p=>{!C&&p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")&&(C=true,E=p),x||(x=true,E=p,y.abort());};function U(){if(c.onResumable===void 0||I===void 0||M===0)return;let p=Object.freeze({});o.set(p,Object.freeze({url:c.url,object:Object.freeze({...I}),mimeType:R,blobs:Object.freeze([...m])}));let u=Object.freeze({bytesDownloaded:M,bytesTotal:I.total,transport:p});c.onResumable(u);}function l(){let p=I.total;c.onProgress?.({percent:Math.min(99,Math.round(M/p*100)),bytesTransferred:M,bytesTotal:p});}function f(p){return I!==void 0&&m[p]?.size===Math.min(t,I.total-p*t)}async function g(p,u,w){let A=p.body?.getReader();if(A===void 0)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u6CA1\u6709\u54CD\u5E94\u5B57\u8282\u6D41");let k=()=>{A.cancel().catch(()=>{});};b.addEventListener("abort",k,{once:true});let v=0;try{for(;;){if(b.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let S=await A.read();if(b.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");if(S.done)break;if(v+=S.value.byteLength,v>w)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u8D85\u8FC7 Content-Range");let T=m[u];m[u]=new Blob(T===void 0?[S.value]:[T,S.value]),M+=S.value.byteLength,U(),l();}if(v!==w)throw new K("download-range-invalid","\u5206\u6BB5\u4E0B\u8F7D\u5B57\u8282\u6570\u4E0E Content-Range \u4E0D\u4E00\u81F4");l();}finally{b.removeEventListener("abort",k),await A.cancel().catch(()=>{}),A.releaseLock();}}async function P(p,u=false){let w=u?0:p*t+(m[p]?.size??0),A=u?0:I===void 0?w+t-1:Math.min((p+1)*t-1,I.total-1);return r(b,async()=>{let k=await fetch(c.url,{signal:b,cache:"no-store",headers:{Range:`bytes=${w}-${A}`}});if(s===void 0&&I===void 0&&p===0&&k.status===200)return n?.record("info","sdk","media","download-range-unavailable",()=>({data:{reason:"server-returned-full-response"}})),m[0]=await i(k,{...c,preferBlob:true}),"single";if(k.status===429||k.status>=500)throw await k.body?.cancel().catch(()=>{}),new K("download-range-failed",`\u5A92\u4F53\u4E0B\u8F7D\u5931\u8D25\uFF1AHTTP ${k.status}`);let v;try{v=ql(k,w,A,I);}catch(S){throw await k.body?.cancel().catch(()=>{}),S}if(I===void 0&&(I=v,R=k.headers.get("content-type")??"",n?.record("debug","sdk","media","download-range-started",()=>({data:{bytesTotal:v.total,partSizeBytes:t,concurrency:pr}}))),u){if((await k.arrayBuffer()).byteLength!==1)throw new K("download-range-invalid","\u4E0B\u8F7D\u5BF9\u8C61\u6821\u9A8C\u54CD\u5E94\u957F\u5EA6\u65E0\u6548")}else await g(k,p,v.end-w+1);return "range"},c.getPriority)}try{if(I!==void 0)for(;D<Math.ceil(I.total/t)&&f(D);)D+=1;let p=I!==void 0&&D===Math.ceil(I.total/t),u=await P(D++,p);if(u==="range"){let A=Math.ceil(I.total/t),k=Array.from({length:Math.min(pr,Math.max(0,A-D))},async()=>{try{for(;!b.aborted&&D<A;){let v=D++;f(v)||await P(v);}}catch(v){_(v);}});if(await Promise.allSettled(k),x)throw E}if(b.aborted)throw new DOMException("\u5A92\u4F53\u4E0B\u8F7D\u5DF2\u53D6\u6D88","AbortError");let w=[];if(u==="range")for(let A=0;A<Math.ceil(I.total/t);A+=1){if(!f(A))throw new K("download-range-invalid","\u4E0B\u8F7D\u4ECD\u7F3A\u5C11\u5206\u6BB5\uFF0C\u4E0D\u80FD\u4EA4\u4ED8\u5B8C\u6574\u6587\u4EF6");w.push(m[A]);}return u==="single"?m[0]:new Blob(w,{type:R})}catch(p){throw y.abort(),C||p instanceof K&&(p.code==="download-range-invalid"||p.code==="download-object-changed")?c.onResumeInvalidated?.():U(),n?.record("warn","sdk","media","download-range-failed",()=>({data:{code:p instanceof K?p.code:"download-failed"}})),p}finally{c.signal?.removeEventListener("abort",h);}}return async function(d){if(d.resume!==void 0&&!e)throw d.onResumeInvalidated?.(),new K("download-range-invalid","\u5F53\u524D\u4E0B\u8F7D\u5668\u672A\u5F00\u542F\u65AD\u70B9\u4E0B\u8F7D\uFF0C\u8BF7\u91CD\u65B0\u4E0B\u8F7D");if(e&&(d.resume!==void 0||d.onResumable!==void 0||d.preferBlob===true&&Number.isFinite(d.expectedBytes)&&d.expectedBytes>t)){let s=await a(d);return d.preferBlob===true?s:new Uint8Array(await s.arrayBuffer())}return r(d.signal,async()=>{if(d.onProgress!==void 0&&typeof XMLHttpRequest<"u")return jl(d);let s=await fetch(d.url,d.signal===void 0?{}:{signal:d.signal});return i(s,d)},d.getPriority)}}function jl(e){let n=e.preferBlob===true;return new Promise((t,r)=>{let o=new XMLHttpRequest,i=false,a=()=>{},c=()=>{e.signal?.removeEventListener("abort",a),o.onprogress=null,o.onload=null,o.onerror=null,o.onabort=null;},d=s=>{i||(i=true,c(),s());};if(a=()=>{o.abort(),d(()=>r(new DOMException("media download canceled","AbortError")));},o.open("GET",e.url,true),o.responseType=n?"blob":"arraybuffer",o.onprogress=s=>{let y=e.expectedBytes!==void 0&&Number.isFinite(e.expectedBytes)&&e.expectedBytes>0?Math.floor(e.expectedBytes):0,h=s.lengthComputable&&s.total>0?s.total:y,b=h>0?Math.min(99,Math.round(s.loaded/h*100)):0;e.onProgress?.({percent:b,bytesTransferred:s.loaded,bytesTotal:h});},o.onload=()=>{if(o.status<200||o.status>=300){d(()=>r(new Error(`media download \u5931\u8D25\uFF1AHTTP ${o.status}`)));return}let s=o.response;if(n){if(!(typeof Blob<"u"&&s instanceof Blob)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE Blob")));return}d(()=>t(s));return}if(!(s instanceof ArrayBuffer)){d(()=>r(new Error("media download \u5931\u8D25\uFF1AXHR \u672A\u8FD4\u56DE ArrayBuffer")));return}d(()=>t(new Uint8Array(s)));},o.onerror=()=>d(()=>r(new Error("media download \u5931\u8D25\uFF1Anetwork"))),o.onabort=()=>d(()=>r(new DOMException("media download canceled","AbortError"))),e.signal?.aborted){a();return}e.signal?.addEventListener("abort",a,{once:true}),o.send();})}async function $l(e,n,t,r=false){let o=Number(e.headers.get("content-length")??0),i=t!==void 0&&Number.isFinite(t)&&t>0?Math.floor(t):0,a=Number.isFinite(o)&&o>0?o:i,c=0,d=e.body.pipeThrough(new TransformStream({transform(y,h){c+=y.byteLength;let b=a>0?Math.min(99,Math.round(c/a*100)):0;n({percent:b,bytesTransferred:c,bytesTotal:a}),h.enqueue(y);}})),s=new Response(d,{headers:e.headers});return r?await s.blob():new Uint8Array(await s.arrayBuffer())}var ta=async(e,n)=>{if(e?.aborted)throw new DOMException("media upload canceled","AbortError");return await n()},fr="is missing ETag in UploadPart response";function mr(e){if(typeof e!="object"||e===null)return false;let n=e;return n.name==="NoSuchUpload"||n.Code==="NoSuchUpload"}function Jl(e,n,t){return e instanceof Uint8Array?e.subarray(n,t):e.slice(n,t)}async function ra(e,n,t){return e.transformPart===void 0?n:await e.transformPart(n instanceof Blob?n:new Blob([n]),t)}function oa(e,n){let t=new Map,r=n,o=n;function i(){if(e.onProgress===void 0)return;let a=r;for(let s of t.values())a+=s;o=Math.max(o,a);let c=e.sourceBytes,d=c>0?Math.min(99,Math.round(o/c*100)):0;e.onProgress({percent:d,bytesTransferred:o,bytesTotal:c,phase:c>0&&o>=c?"finalizing":"transferring"});}return {trackPart(a,c){t.set(a,c),i();},completePart(a,c){t.delete(a),r+=c,i();},report:i}}function ia(e,n){let t=(o,i)=>{if(i.query?.uploadId!==void 0&&i.query.partNumber===void 0)return;let a=i.query?.partNumber,c=a===void 0?0:Number(a);Number.isFinite(c)&&n.trackPart(c,o.loaded);},r=e;return r.on("xhr.upload.progress",t),()=>{r.off?.("xhr.upload.progress",t),r.removeListener?.("xhr.upload.progress",t);}}async function aa(e,n,t=ta){let r=oa(n,0),o=ia(e.handler,r);try{await t(n.signal,async()=>{let i=await ra(n,n.data,1);if(n.signal?.aborted)throw new DOMException("media upload canceled","AbortError");await e.client.send(new e.commands.PutObjectCommand({Bucket:e.bucket,Key:e.key,Body:i,...e.mimeType!==void 0&&e.mimeType!==""?{ContentType:e.mimeType}:{}}),n.signal===void 0?{}:{abortSignal:n.signal});});}finally{o();}}function gr(e,n,t,r){if(e!==void 0&&!(e.bucket!==n.bucket||e.key!==n.key)&&!(e.partSize!==r||e.sourceBytes!==t)&&e.uploadId!=="")return e.parts}async function yr(e){let{target:n,content:t,partSize:r,queueSize:o,runUpload:i=ta}=e;if(t.signal?.aborted===true)throw new DOMException("media upload canceled","AbortError");let a=Math.max(1,Math.ceil(t.sourceBytes/r));if(a>ot)throw new Error(`media upload: \u5206\u7247\u6570 ${a} \u8D85\u8FC7 S3 \u4E0A\u9650 ${ot}\uFF0C\u9700\u8981\u653E\u5927\u5206\u7247\u5927\u5C0F`);let c=gr(e.resume,n,t.sourceBytes,r),d=new Map;if(c!==void 0)for(let x of c)d.set(x.partNumber,x);let s=c===void 0?"":e.resume.uploadId;if(s===""){let x=await n.client.send(new n.commands.CreateMultipartUploadCommand({Bucket:n.bucket,Key:n.key,...n.mimeType!==void 0&&n.mimeType!==""?{ContentType:n.mimeType}:{}}));if(x.UploadId===void 0||x.UploadId==="")throw new Error("media upload: CreateMultipartUpload \u672A\u8FD4\u56DE UploadId");s=x.UploadId,d.clear();}let y=x=>Math.min(r,t.sourceBytes-(x-1)*r),h=0;for(let x of d.keys())h+=y(x);let b=oa(t,h),m=ia(n.handler,b),M=()=>({bucket:n.bucket,key:n.key,uploadId:s,partSize:r,sourceBytes:t.sourceBytes,parts:[...d.values()].sort((x,C)=>x.partNumber-C.partNumber)});e.onResumable?.(M()),b.report();let I=new AbortController,R=()=>I.abort();t.signal?.addEventListener("abort",R,{once:true}),t.signal?.aborted&&R();let D=1;async function E(){for(;;){if(I.signal.aborted)return;let x=D;if(D+=1,x>a)return;if(d.has(x))continue;let C=(x-1)*r,_=Math.min(C+r,t.sourceBytes),U=await i(I.signal,async()=>{let l=await ra(t,Jl(t.data,C,_),x);if(I.signal.aborted)throw new DOMException("media upload canceled","AbortError");return await n.client.send(new n.commands.UploadPartCommand({Bucket:n.bucket,Key:n.key,UploadId:s,PartNumber:x,Body:l}),{abortSignal:I.signal})});if(U.ETag===void 0||U.ETag==="")throw new Error(`media upload: Part ${x} ${fr}`);d.set(x,{partNumber:x,etag:U.ETag}),b.completePart(x,_-C),e.onResumable?.(M());}}try{let x;if(await Promise.allSettled(Array.from({length:Math.min(_n,a,Math.max(1,o))},async()=>{try{await E();}catch(C){let _=C instanceof Error&&C.name==="AbortError";(x===void 0||!_&&qe(x.cause)!==void 0&&qe(C)===void 0)&&(x={cause:C}),R();}})),x!==void 0)throw x.cause;if(t.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(await n.client.send(new n.commands.CompleteMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:s,MultipartUpload:{Parts:[...d.values()].sort((C,_)=>C.partNumber-_.partNumber).map(C=>({PartNumber:C.partNumber,ETag:C.etag}))}}),t.signal===void 0?{}:{abortSignal:t.signal}),e.onCompleted?.(),t.signal?.aborted)throw new DOMException("media upload canceled","AbortError")}finally{t.signal?.removeEventListener("abort",R),m();}}async function kn(e,n){try{await e.client.send(new e.commands.AbortMultipartUploadCommand({Bucket:n.bucket,Key:n.key,UploadId:n.uploadId}));}catch(t){if(!mr(t))throw t}}var Vl=3e4;function sa(e,n){e.handle=async(t,r={})=>{let o=new n({}),i=r.abortSignal,a=new AbortController,c,d=false,s,y=0,h=0,b=()=>{clearTimeout(c),c=setTimeout(()=>{d=true,a.abort();},Vl);},m=()=>a.abort(i?.reason),M=D=>{D.loaded>y&&(y=D.loaded,b()),e.emit("xhr.upload.progress",D,t);},I=D=>{D.loaded>h&&(h=D.loaded,b()),e.emit("xhr.progress",D,t);},R=()=>{s?.readyState===2&&b();};o.on("before.xhr.send",D=>{s=D,s.addEventListener("readystatechange",R),b();}),o.on("xhr.upload.progress",M),o.on("xhr.progress",I),i?.addEventListener("abort",m,{once:true}),i?.aborted&&m();try{let D=await o.handle(t,{...r,abortSignal:a.signal,requestTimeout:0});if(d)throw new K("upload-timeout");if(a.signal.aborted)throw new DOMException("Request aborted","AbortError");if(D.response.statusCode===0)throw new Error("XHR_HTTP_HANDLER_ERROR: Network request failed before receiving an HTTP response");return D}catch(D){throw d?new K("upload-timeout","media upload: \u7F51\u7EDC\u8FDE\u7EED 30 \u79D2\u6CA1\u6709\u63A8\u8FDB",{cause:D}):D}finally{clearTimeout(c),i?.removeEventListener("abort",m),s?.removeEventListener("readystatechange",R),o.removeAllListeners(),o.destroy();}};}function zl(e){if(e instanceof Uint8Array)return e.byteLength;if(typeof Blob<"u"&&e instanceof Blob)return e.size}var ca="\u5206\u7247\u4E0A\u4F20\u8981\u6C42\u8BE5 bucket \u7684 CORS \u653E\u884C POST\uFF08Create/CompleteMultipartUpload\uFF09\u3001DELETE\uFF08AbortMultipartUpload\uFF09\u5E76 ExposeHeaders: ETag";function Wl(e){return e instanceof Error&&e.message.includes(fr)}function Yl(e,n,t){return t!==void 0?new K("multipart-abort-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\u540E\u7684 AbortMultipartUpload \u6E05\u7406\u672A\u6210\u529F\uFF0C\u5DF2\u4E0A\u4F20\u5206\u7247\u53EF\u80FD\u6B8B\u7559\u5728 bucket \u4E2D\u5E76\u7EE7\u7EED\u8BA1\u8D39\uFF08\u5EFA\u8BAE\u6876\u4FA7\u914D\u7F6E AbortIncompleteMultipartUpload \u751F\u547D\u5468\u671F\u89C4\u5219\uFF09\uFF1B${ca}`,{cause:t}):e instanceof K?e:Wl(e)?new K("multipart-etag-missing","media upload: \u5206\u7247\u54CD\u5E94\u8BFB\u4E0D\u5230 ETag\uFF0C\u8FD9\u662F bucket CORS \u7F3A\u5C11 ExposeHeaders: ETag \u7684\u914D\u7F6E\u95EE\u9898\uFF0C\u4E0D\u662F\u7F51\u7EDC\u95EE\u9898",{cause:e}):n&&!(e instanceof Error&&e.name==="AbortError")?new K("multipart-upload-failed",`media upload: \u5206\u7247\u4E0A\u4F20\u5931\u8D25\uFF1B${ca}`,{cause:e}):e}var Xl=new Set(["upload-source-invalid","upload-resume-unavailable","multipart-etag-missing","multipart-abort-failed"]);function hr(e,n){let t=e?.transport;if(t==null||typeof t!="object"||typeof t.logicalBucket!="string"||t.logicalBucket===""||typeof t.objectName!="string"||t.objectName===""||n!==void 0&&t.logicalBucket!==n)return;let r=t.session;if(r==null||typeof r!="object"||typeof r.bucket!="string"||r.bucket===""||typeof r.key!="string"||r.key===""||typeof r.uploadId!="string"||r.uploadId===""||!Number.isSafeInteger(r.partSize)||r.partSize<=0||!Number.isSafeInteger(r.sourceBytes)||r.sourceBytes<0||!Array.isArray(r.parts))return;let o=new Set;for(let i of r.parts){if(i===null||typeof i!="object"||!Number.isSafeInteger(i.partNumber)||i.partNumber<1||i.partNumber>Math.ceil(r.sourceBytes/r.partSize)||o.has(i.partNumber)||typeof i.etag!="string"||i.etag==="")return;o.add(i.partNumber);}return t}var Rn;function da(){if(Rn!==void 0)return Rn;let n=Promise.all([import('@aws-sdk/client-s3'),import('@aws-sdk/xhr-http-handler')]).then(([t,r])=>({S3Client:t.S3Client,commands:{PutObjectCommand:t.PutObjectCommand,CreateMultipartUploadCommand:t.CreateMultipartUploadCommand,UploadPartCommand:t.UploadPartCommand,CompleteMultipartUploadCommand:t.CompleteMultipartUploadCommand,AbortMultipartUploadCommand:t.AbortMultipartUploadCommand},XhrHttpHandler:r.XhrHttpHandler})).catch(t=>{throw Rn===n&&(Rn=void 0),t});return Rn=n,n}function ua(e,n){return new K("multipart-abort-failed","Resource upload failed and incomplete parts could not be removed",{cause:new AggregateError([e,n],"Resource upload and multipart cleanup both failed")})}function Ql(e){if(e===void 0)return "";let n=e.lastIndexOf(".");return n>=0?e.slice(n):""}function Zl(e){return globalThis.crypto.randomUUID()+Ql(e)}function la(e,n){let t=e.keyPrefix??"";return t===""||n.startsWith(t)?n:`${t}${n}`}function ep(e,n){let t=uo(e.getUploadCredentials),r=tt(rt);function o(m,M){if(m==="avatar")return e.avatarBucket??"";if(M==="channel"){let I=e.channelBuckets?.[m]??"";if(I!=="")return I}return e.buckets[m]??""}function i(m,M,I,R=false){let{region:D}=M;return sa(I,m.XhrHttpHandler),new m.S3Client({region:D,maxAttempts:R?1:3,credentials:{accessKeyId:M.accessKeyId,secretAccessKey:M.secretAccessKey,sessionToken:M.sessionToken,...M.expiresAtSeconds===void 0?{}:{expiration:new Date(M.expiresAtSeconds*1e3)}},useAccelerateEndpoint:(e.useAccelerateEndpoint??true)&&!D.toLowerCase().startsWith("cn-"),requestChecksumCalculation:"WHEN_REQUIRED",requestHandler:I})}async function a(m,M,I,R,D,E,x,C){let{multipart:_,partSize:U}=it(x,e.multipartTransfer===true&&e.multipartUpload!==false),l=new m.XhrHttpHandler({}),f=i(m,D,l,M.recoveryManaged===true),g={client:f,handler:l,commands:m.commands,bucket:D.bucket,key:E,...M.mimeType!==void 0&&M.mimeType!==""?{mimeType:M.mimeType}:{}},P={data:M.data,sourceBytes:x,...M.onProgress===void 0?{}:{onProgress:M.onProgress},...M.signal===void 0?{}:{signal:M.signal},...M.transformPart===void 0?{}:{transformPart:M.transformPart}},p=M.resume,u=hr(p),w=_&&u?.logicalBucket===I&&gr(u.session,g,x,U)!==void 0,A=w?u?.session:void 0,k=T=>{A=T;let O=0;for(let N of T.parts)O+=Math.min(T.partSize,T.sourceBytes-(N.partNumber-1)*T.partSize);M.onResumable?.({bytesUploaded:O,transport:{logicalBucket:I,objectName:R,session:T}});},v=()=>{A=void 0,delete M.resume,M.onResumeInvalidated?.();},S;try{if(C.mode==="retain"&&p!==void 0&&!w)throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u76EE\u6807\u6216\u7EED\u4F20\u8BB0\u5F55\u5DF2\u5931\u6548\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20");if(u!==void 0&&!w){try{u.logicalBucket===I?await kn(g,u.session):await h(p);}catch(O){throw C.cleanupFailed=!0,ua(C.retryCause,O)}delete M.resume;}if(M.signal?.aborted)throw new DOMException("media upload canceled","AbortError");if(!_){await aa(g,P,r);return}let T=A;try{await yr({target:g,content:P,partSize:U,queueSize:_n,runUpload:r,...T===void 0?{}:{resume:T},onResumable:k,onCompleted:v});}catch(O){if(M.signal?.aborted||!mr(O)||C.mode==="discard"&&T===void 0)throw O;if(C.mode==="retain")throw new K("upload-resume-unavailable","media upload: \u4E0A\u6B21\u4E0A\u4F20\u5DF2\u65E0\u6CD5\u7EE7\u7EED\uFF0C\u9700\u8981\u786E\u8BA4\u540E\u91CD\u65B0\u5B8C\u6574\u4E0A\u4F20",{cause:O});A=void 0,await yr({target:g,content:P,partSize:U,queueSize:_n,runUpload:r,onResumable:k,onCompleted:v});}}catch(T){if(C.mode==="retain"&&M.signal?.aborted===true&&!["offline","paused","page-preserve","cancelled-preserve"].includes(M.signal.reason)&&A!==void 0)try{await kn(g,A),v();}catch(O){S=O;}throw C.cleanupFailed?T:Yl(T,_,S)}finally{f.destroy();}}async function c(m,M,I,R={mode:"retain"}){let D=o(M,I);if(D==="")throw new K("bucket-unconfigured",`media upload: kind=${M} \u7684\u903B\u8F91\u6876\u540D\u672A\u914D\u7F6E\uFF08\u5BBF\u4E3B IM \u5BF9\u8C61\u5B58\u50A8\u914D\u7F6E\u7F3A\u8BE5\u8D44\u6E90\u7C7B\u578B\uFF09`);let E=zl(m.data);if(E===void 0)throw new K("upload-source-invalid","media upload: \u4E0A\u4F20\u5185\u5BB9\u5FC5\u987B\u662F Uint8Array \u6216 Blob");it(E,e.multipartTransfer===true&&e.multipartUpload!==false);let x=await da();if(R.mode==="discard"&&m.signal?.aborted)throw new DOMException("media upload canceled","AbortError");let C=hr(m.resume,D)?.objectName??Zl(m.filename),_={...m,onResumable:l=>{_.resume=l,m.onResumable?.(l);},onResumeInvalidated:()=>{delete _.resume,m.onResumeInvalidated?.();}},U;try{U=await t.resolve(D,m.forceRefreshCredentials===!0?{forceRefresh:!0}:void 0);let l=la(U,C);try{await a(x,_,D,C,U,l,E,R);}catch(f){if(m.signal?.aborted||m.recoveryManaged===!0||f instanceof K&&Xl.has(f.code))throw f;R.retryCause=f,U=await t.resolve(D,{forceRefresh:!0}),l=la(U,C),await a(x,_,D,C,U,l,E,R);}if(m.signal?.aborted)throw new DOMException("media upload canceled","AbortError");return m.onProgress?.({percent:100,bytesTransferred:E,bytesTotal:E,phase:"finalizing"}),{url:`${U.dnsPoint}/${l}`}}catch(l){let f=hr(_.resume);if(R.mode==="discard"&&!R.cleanupFailed&&f!==void 0&&U!==void 0){let P=new x.XhrHttpHandler({}),p=i(x,U,P);try{await kn({client:p,commands:x.commands},f.session);}catch(u){throw ua(l,u)}finally{p.destroy();}}let g=qe(l);throw g!==void 0&&m.onFailure?.(g),l instanceof K&&(l.code==="upload-resume-unavailable"?m.onFailure?.("resume-unavailable"):l.code==="multipart-abort-failed"&&m.onFailure?.("cleanup-unconfirmed")),l}}function d(m){return c(m,m.kind,m.conversationType)}function s(m){return c({data:m.data,...m.filename===void 0?{}:{filename:m.filename},...m.mimeType===void 0?{}:{mimeType:m.mimeType},...m.signal===void 0?{}:{signal:m.signal},...m.onProgress===void 0?{}:{onProgress:m.onProgress}},m.kind,void 0,{mode:"discard"})}function y(m){return c(m,"avatar")}async function h(m){let M=m.transport;if(M?.session===void 0||M.session.uploadId==="")return;let I=await da(),R=await t.resolve(M.logicalBucket),D=new I.XhrHttpHandler({}),E=i(I,R,D);try{await kn({client:E,commands:I.commands},M.session);}finally{E.destroy();}}let b=na(e.multipartTransfer===true&&e.rangeDownload!==false,n);return {upload:d,uploadAvatar:y,uploadResource:s,download:b,abandonUpload:h}}var V=class extends Error{constructor(t,r){super(`Media upload recovery ${t}`,r);this.reason=t;this.name="MediaUploadRecoveryError",this.code=`IM_MEDIA_UPLOAD_RECOVERY_${t.toUpperCase()}`;}reason;code};function ee(){throw new V("invalid")}function Re(e){return typeof e!="object"||e===null||Array.isArray(e)?ee():e}function Pe(e,n=4096){return typeof e!="string"||e.length===0||e.length>n?ee():e}function Ge(e,n=0){return typeof e!="number"||!Number.isSafeInteger(e)||e<n?ee():e}function br(e){return typeof e!="number"||!Number.isFinite(e)||e<0?ee():e}function at(e,n=4096){if(e!==void 0)return typeof e!="string"||e.length>n?ee():e}function st(e){let n=Re(e);if(n.version!==1||n.kind!=="video"&&n.kind!=="file"||typeof n.encrypted!="boolean")return ee();let t=Re(n.ref);if(t.conversationType!=="direct"&&t.conversationType!=="group"&&t.conversationType!=="channel")return ee();let r=Re(n.source),o=Ge(r.size,1),i=Pe(r.sha256,64);if(!/^[a-f0-9]{64}$/.test(i))return ee();let a=Re(n.resume),c=Re(a.transport),d=Re(c.session),s=Ge(d.partSize,8);if(s%8!==0||Ge(d.sourceBytes,1)!==o||!Array.isArray(d.parts)||d.parts.length>1e4)return ee();let y=new Set,h=0,b=d.parts.map(x=>{let C=Re(x),_=Ge(C.partNumber,1);return _>Math.ceil(o/s)||y.has(_)?ee():(y.add(_),h+=Math.min(s,o-(_-1)*s),{partNumber:_,etag:Pe(C.etag,1024)})});if(Ge(a.bytesUploaded)!==h)return ee();let m;if(n.encrypted){if(!(n.teaKey instanceof Uint8Array)||n.teaKey.length!==16)return ee();m=new Uint8Array(n.teaKey);}else if(n.teaKey!==void 0)return ee();let M;if(n.preview!==void 0){let x=Re(n.preview),C;if(x.thumbData!==void 0){if(!(x.thumbData instanceof Uint8Array)||x.thumbData.byteLength>16*1024)return ee();C=new Uint8Array(x.thumbData);}M={width:br(x.width),height:br(x.height),...x.duration===void 0?{}:{duration:br(x.duration)},...C===void 0?{}:{thumbData:C}};}if(n.filesAlbum!==void 0&&typeof n.filesAlbum!="boolean")return ee();let I=at(r.filename),R=at(r.mimeType,256),D=at(n.caption,16384),E=at(n.refMessageId);return {version:1,ref:{conversationType:t.conversationType,conversationId:Pe(t.conversationId)},messageId:Pe(n.messageId),kind:n.kind,createdAt:Ge(n.createdAt),savedAt:Ge(n.savedAt),encrypted:n.encrypted,source:{size:o,sha256:i,...I===void 0?{}:{filename:I},...R===void 0?{}:{mimeType:R}},...m===void 0?{}:{teaKey:m},...M===void 0?{}:{preview:M},...D===void 0?{}:{caption:D},...E===void 0?{}:{refMessageId:E},...n.filesAlbum===void 0?{}:{filesAlbum:n.filesAlbum},resume:{bytesUploaded:h,transport:{logicalBucket:Pe(c.logicalBucket),objectName:Pe(c.objectName),session:{bucket:Pe(d.bucket),key:Pe(d.key),uploadId:Pe(d.uploadId),partSize:s,sourceBytes:o,parts:b}}}}}function nn(e){if(e?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError")}async function pa(e,n){nn(n);let t=e instanceof Uint8Array?e.byteLength:e.size,r=await createSHA256();nn(n);let o=1024*1024,i=performance.now();for(let a=0;a<t;a+=o){nn(n);let c=e instanceof Uint8Array?e.subarray(a,a+o):new Uint8Array(await e.slice(a,a+o).arrayBuffer());nn(n),r.update(c),performance.now()-i>=8&&(await new Promise(d=>setTimeout(d,0)),nn(n),i=performance.now());}return nn(n),{size:t,sha256:r.digest("hex")}}var rp=1440*60*1e3,op=3;function Ee(e,n){if(!e.conversationId||!n||!["direct","group","channel"].includes(e.conversationType))throw new V("invalid");return JSON.stringify([e.conversationType,e.conversationId,n])}function ip(e){let n=e.namespaceFactory.forAccount(e.accountId),t=n.name("ephemeral","media-upload-recovery","indexed-db"),r=n.name("ephemeral","media-upload-recovery","owner"),o=e.locks===void 0?globalThis.navigator?.locks:e.locks,i=e.now??Date.now,a,c=Promise.resolve(),d=false,s,y=false,h=false,b=0,m=0,M,I,R,D=new Map,E=new WeakMap,x=0;function C(){if(d)throw new V("unavailable")}function _(){E=new WeakMap,x+=1;}function U(v,S){if(C(),v?.aborted)throw new DOMException("Source fingerprint cancelled","AbortError");if(S!==x)throw new V("unavailable")}function l(){return a??=openDB(t,1,{upgrade(v){v.createObjectStore("uploads");},blocking(){k();},terminated(){d=true,_(),g();}}),a}function f(v,S=false){try{if(C(),S&&(!y||h))throw new V("unavailable")}catch(N){return Promise.reject(N)}let T=m,O=c.then(async()=>{if(S&&(!y||T!==m))throw new V("unavailable");try{return await v()}catch(N){throw N instanceof V?N:new V("storage",{cause:N})}});return c=O.then(()=>{},()=>{}),O}function g(){!y||h||(h=true,c.then(()=>{y=false,b=0,m+=1,M?.(),M=void 0;}));}async function P(v){if(C(),v?.aborted)throw new DOMException("Recovery lease cancelled","AbortError");if(!o||h)throw new V("unavailable");if(y||(I===void 0&&(I=new Promise((O,N)=>{try{R=o.request(r,{mode:"exclusive",ifAvailable:!0},async j=>{if(!j||d){N(new V("unavailable"));return}y=!0,m+=1;let G=new Promise(X=>{M=X;});O(),await G;}),R.catch(()=>N(new V("unavailable"))).finally(()=>{I=void 0,h=!1;});}catch{N(new V("unavailable"));}})),await I),d||h||v?.aborted)throw b===0&&g(),v?.aborted?new DOMException("Recovery lease cancelled","AbortError"):new V("unavailable");b+=1;let S=m,T=false;return {release(){T||S!==m||(T=true,b-=1,b===0&&g());}}}function p(v){return i()-v.savedAt>=rp}function u(v){let S=Ee(v.ref,v.messageId),T=Math.min(D.get(S)??v.savedAt,v.savedAt);return D.set(S,T),T}async function w(){let S=(await l()).transaction("uploads",y&&!h?"readwrite":"readonly");try{let T=await S.store.getAll(),O=[];for(let N of T){let j=st(N);u(j),p(j)?S.mode==="readwrite"&&await S.store.delete(Ee(j.ref,j.messageId)):O.push(j);}return await S.done,O}catch(T){try{S.abort();}catch{}throw await S.done.catch(()=>{}),T}}function A(v){let S;try{S=st(v);}catch(T){return Promise.reject(T)}return f(async()=>{let O=(await l()).transaction("uploads","readwrite");try{let N=Ee(S.ref,S.messageId),j=await O.store.getAll(),G=0,X;for(let ut of j){let ge=st(ut);u(ge),p(ge)?await O.store.delete(Ee(ge.ref,ge.messageId)):(G+=1,Ee(ge.ref,ge.messageId)===N&&(X=ge));}if(X){if(X.source.sha256!==S.source.sha256||X.source.size!==S.source.size||X.kind!==S.kind||X.encrypted!==S.encrypted||X.teaKey?.some((ut,ge)=>ut!==S.teaKey?.[ge]))throw new V("invalid");S.savedAt=X.savedAt;}else if(G>=op)throw new V("capacity");let Sr=D.get(N);if(Sr!==void 0&&(S.savedAt=Math.min(Sr,S.savedAt)),p(S)||S.savedAt>i())throw new V("invalid");await O.store.put(S,N),await O.done,u(S);}catch(N){try{O.abort();}catch{}throw await O.done.catch(()=>{}),N}},true)}async function k(){return s||(d=true,_(),s=(async()=>{await c;try{a&&(await a).close();}finally{g(),await R;}})(),s)}return {get:(v,S)=>f(async()=>{let T=Ee(v,S);return (await w()).find(O=>Ee(O.ref,O.messageId)===T)}),list:()=>f(w),save:A,remove:(v,S)=>f(async()=>{let T=Ee(v,S);await(await l()).delete("uploads",T),D.delete(T);},true),clear:()=>(_(),f(async()=>{await(await l()).clear("uploads"),D.clear();},true)),drain:()=>c,fingerprint:async(v,S)=>{let T=x;U(S,T);let O=v instanceof Blob?v:void 0,N=O===void 0?void 0:E.get(O);if(N!==void 0)return {...N};let j=await pa(v,S);U(S,T);let G={size:j.size,sha256:j.sha256};return O!==void 0&&E.set(O,G),{...G}},acquireLease:P,close:k}}function ap(e,n={}){let t=n.locks!==void 0?n.locks:globalThis.navigator?.locks,r=n.createChannel!==void 0?n.createChannel:typeof globalThis.BroadcastChannel=="function"?h=>new BroadcastChannel(h):void 0,o=typeof globalThis.addEventListener=="function"?globalThis:void 0,i=n.pageLifecycleTarget!==void 0?n.pageLifecycleTarget:o,a,c=0;function d(h){try{e.onError(h);}catch{}}function s(h,b=false,m="stopped"){if(a===h&&!b&&(a=void 0),h.resolveReady(false),h.closed)return;h.closed=true,h.controller.abort();let M=[],I=E=>{try{E();}catch(x){M.push(x);}};for(let E of h.cleanups.splice(0))I(E);I(()=>h.channel.close());let R=h.release;h.release=void 0;let D=h.owned;h.owned=false;try{let E=D?e.onChange(!1,m):void 0;Promise.resolve(E).then(()=>R?.(),d);}catch(E){d(E);}for(let E of M)d(E);}function y(h,b){s(h,true),d(b);}return {start(h){if(a?.key===h)return a.ready;let b=++c;if(a&&s(a),b!==c)return Promise.resolve(false);if(!h||!t||!r)return d(new Error("Browser connection ownership requires a key, Web Locks and BroadcastChannel")),Promise.resolve(false);let m;try{m=r(`im-connection:${h}`);}catch(x){return d(x),Promise.resolve(false)}let M,I=new Promise(x=>{M=x;}),R={key:h,channel:m,cleanups:[],owned:false,closed:false,ready:I,resolveReady:M,controller:new AbortController,claim:{startedAt:Date.now(),id:globalThis.crypto.randomUUID()}};a=R;let D=x=>{if(a!==R||R.closed||typeof x.data!="object"||x.data===null)return;let C=x.data;C.type==="session-ended"?s(R):C.type==="takeover"&&typeof C.startedAt=="number"&&Number.isFinite(C.startedAt)&&typeof C.id=="string"&&C.id!==R.claim.id&&(C.startedAt>R.claim.startedAt||C.startedAt===R.claim.startedAt&&C.id>R.claim.id?s(R,true,"replaced"):m.postMessage({type:"takeover",...R.claim}));},E=x=>{a===R&&x.persisted===true&&s(R);};try{i&&(R.cleanups.push(()=>i.removeEventListener("pagehide",E)),i.addEventListener("pagehide",E)),R.cleanups.push(()=>m.removeEventListener("message",D)),m.addEventListener("message",D);let x=setTimeout(()=>y(R,new Error("Browser IM takeover timed out while waiting for the previous page to close")),15e3);R.cleanups.push(()=>clearTimeout(x)),t.request(`im-connection:${h}`,{mode:"exclusive",signal:R.controller.signal},async _=>{if(a!==R||R.closed||!_){R.resolveReady(!1);return}let U=new Promise(l=>{R.release=l;});R.owned=!0,clearTimeout(x);try{await e.onChange(!0);}catch(l){y(R,l);}R.resolveReady(a===R&&R.owned),await U;}).catch(_=>{a===R&&!R.closed&&y(R,_);}),m.postMessage({type:"takeover",...R.claim});}catch(x){y(R,x);}return R.ready},stop(){c++,a&&s(a);},terminate(){c++;let h=a;if(h)try{h.closed||h.channel.postMessage({type:"session-ended"});}catch(b){d(b);}finally{s(h);}},get owned(){return a?.owned??false}}}function sp(){let e=globalThis;return typeof e.addEventListener=="function"&&typeof e.removeEventListener=="function"?e:void 0}function cp(e,n={}){let t=n.target!==void 0?n.target:sp(),r=n.visibilitySource!==void 0?n.visibilitySource:globalThis.document,o=n.pageLifecycleSource!==void 0?n.pageLifecycleSource:t,i=false,a=()=>e.onOnline?.(),c=()=>e.onOffline?.(),d=()=>{r!=null&&r.visibilityState==="visible"?e.onVisible?.():r!=null&&e.onHidden?.();},s=()=>e.onPageHide?.(),y=()=>e.onPageShow?.();return {start(){i||(i=true,r!=null&&r.visibilityState!=="visible"&&e.onHidden?.(),t!=null&&(e.onOnline!==void 0&&t.addEventListener("online",a),e.onOffline!==void 0&&t.addEventListener("offline",c)),r?.addEventListener("visibilitychange",d),o!=null&&(o.addEventListener("pagehide",s),o.addEventListener("pageshow",y)));},stop(){i&&(i=false,t!=null&&(t.removeEventListener("online",a),t.removeEventListener("offline",c)),r?.removeEventListener("visibilitychange",d),o!=null&&(o.removeEventListener("pagehide",s),o.removeEventListener("pageshow",y)));},supportsLifecycle:r!=null||o!=null,get running(){return i}}}var lp=16,fa=128,pp=20,fp=8*1024*1024,mp=2*1024*1024,gp=1440*60*1e3,yp=2*1024*1024*1024,ma=1024*1024*1024,hp=512*1024*1024,bp=256*1024*1024,wp=64*1024,wr="channel:list-version",ga="schema:conversation-key-v1",ya="schema:message-server-order-v1",ha="schema:mini-program-game-preview-v1",ba="im:membership-reset-sort-keys",Cr="default",Le="\uFFFF";function wa(e){if(!(e===void 0||!/^\d+$/.test(e)))return e.replace(/^0+(?=\d)/,"")}function Cp(e,n){let t=wa(e),r=wa(n);return t===void 0?r===void 0?0:-1:r===void 0?1:t.length!==r.length?t.length>r.length?1:-1:t===r?0:t>r?1:-1}function En(e){return `conversation:${L(e)}`}function Ir(e,n){return `${L(e)}\0${n}`}function Pp(e){let n=L(e.conversation);return {...e,key:Ir(e.conversation,e.messageId),conversationKey:n,conversation:{...e.conversation},sContent:e.sContent.slice()}}function Ip(e){let{key:n,conversationKey:t,...r}=e;return {...r,conversation:{...r.conversation},sContent:r.sContent.slice()}}function Dn(e,n){return JSON.stringify([L(e),n])}function Ca(e){let n=I(e);return {...e,messageKey:Dn(n,e.id),conversationKey:L(n)}}function He(e){let{messageKey:n,conversationKey:t,...r}=e;return r}function ct(e){return {...e,id:L(J$1(e)),conversationId:e.id}}function vr(e){if(e.conversationId===void 0)return e;let{conversationId:n,...t}=e;return {...t,id:n}}function Ar(e){return e.conversationType===void 0?e:{...e,conversationId:L(e),storageConversationId:e.conversationId}}function dt(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function Pa(e){return {...e,conversationId:L(K$1(e)),storageConversationId:e.conversationId}}function Mr(e){if(e.storageConversationId===void 0)return e;let{storageConversationId:n,...t}=e;return {...t,conversationId:n}}function vp(e){return {...e,conversationKey:L(e.ref)}}function Ap(e){let{conversationKey:n,...t}=e;return t}function Mp(e){return typeof e=="string"?e:e.conversationId}function Tn(e,n){if(new Set(n.map(t=>t.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${e}`)}async function Sp(e){let n=e.transaction(["messages","sessions","readStates","pinnedMessages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ga))?.value===!0){await n.done;return}let r=n.objectStore("messages");for(let d of await r.getAll())d.conversationKey===void 0&&await r.put(Ca(d));let o=n.objectStore("sessions"),i=new Map;for(let d of await o.getAll()){if(d.conversationId!==void 0)continue;let s=vr(d);i.set(s.id,s.type),await o.put(ct(s)),await o.delete(d.id);}let a=n.objectStore("readStates");for(let d of await a.getAll()){if(d.storageConversationId!==void 0)continue;let s=d.conversationType??i.get(d.conversationId);if(s===void 0)continue;let y={...d,conversationType:s};await a.put(Ar(y)),await a.delete(d.conversationId);}let c=n.objectStore("pinnedMessages");for(let d of await c.getAll()){if(d.storageConversationId!==void 0)continue;let s=Mr(d);await c.put(Pa(s)),await c.delete(d.conversationId);}await t.put({key:ga,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}async function xp(e){let n$1=e.transaction(["messages","readStates","meta"],"readwrite");try{let t=n$1.objectStore("meta");if((await t.get(ya))?.value===!0){await n$1.done;return}let r=n$1.objectStore("readStates"),o=await r.getAll(),i=new Map;for(let y of o){let h=dt(y);h.conversationType==="channel"&&h.readCursorSortKey!==void 0&&h.readCursor!==""&&i.set(L(h),{cursor:h.readCursor});}let a=new Map,c=n$1.objectStore("messages"),d=await c.openCursor();for(;d!==null;){let y=d.value,h=L(I(y)),b=n(y),m=i.get(h);if(m!==void 0&&y.extensions?.historyCursor===m.cursor&&(m.sortKey=b),b!==y.sortKey){let M=a.get(h);M===void 0&&(M=new Map,a.set(h,M)),M.set(y.sortKey,b),await d.update({...y,sortKey:b});}d=await d.continue();}for(let y of o){let h=dt(y);if(h.conversationType===void 0)continue;let b=L(h),m=i.get(b)?.sortKey??(h.readCursorSortKey===void 0?void 0:a.get(b)?.get(h.readCursorSortKey));if(m===void 0&&h.readCursorSortKey!==void 0&&h.conversationType!=="channel"&&h.readCursor!==""){let M=await c.get(Dn(h,h.readCursor));M!==void 0&&L(I(M))===b&&(m=M.sortKey);}m!==void 0&&m!==h.readCursorSortKey&&await r.put({...y,readCursorSortKey:m});}let s=await t.get(ba);if(Array.isArray(s?.value)){let y=!1,h=s.value.map(b=>{if(!Array.isArray(b)||b.length!==2||typeof b[0]!="string"||typeof b[1]!="string")return b;let m=a.get(b[0])?.get(b[1]);return m===void 0?b:(y=!0,[b[0],m])});y&&await t.put({key:ba,value:h});}await t.put({key:ya,value:!0}),await n$1.done;}catch(t){try{n$1.abort();}catch{}try{await n$1.done;}catch{}throw t}}async function _p(e){let n=e.transaction(["messages","meta"],"readwrite");try{let t=n.objectStore("meta");if((await t.get(ha))?.value===!0){await n.done;return}let o=await n.objectStore("messages").openCursor();for(;o!==null;){let i=o.value.body?.miniProgram;o.value.contentType==="miniProgram"&&i!==void 0&&w(i)&&await o.delete(),o=await o.continue();}await t.put({key:ha,value:!0}),await n.done;}catch(t){try{n.abort();}catch{}try{await n.done;}catch{}throw t}}function Pr(e){return `${e.kind}:${encodeURIComponent(e.messageId)}:${e.resourceVersion}`}async function tn(e,n){let t=e.done;t.catch(()=>{});try{let r=await n();return await t,r}catch(r){try{e.abort();}catch{}throw await t.catch(()=>{}),r}}async function kp(e,n){let t=n.namespaceFactory.forAccount(e).name("durable","storage","indexed-db");typeof indexedDB>"u"||await deleteDB(t);}function Rp(e){let{namespaceFactory:n}=e,t=null,r=null,o=0,i=Promise.resolve(),a=Promise.resolve(),c=0,d=e.mediaAssetCache?.maxPendingWriteBytes??bp;if(!Number.isSafeInteger(d)||d<=0)throw new RangeError("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u5F85\u5199\u5185\u5B58\u9884\u7B97\u5FC5\u987B\u662F\u6B63\u6574\u6570");function s(){if(t===null)throw new Error("ImStoragePort \u672A open\uFF1A\u8BF7\u5148 open({ namespace }) \u518D\u8BFB\u5199");return t}function y(l){let f=o,g=r,P=()=>{if(f!==o||g!==r)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58\u64CD\u4F5C\u5DF2\u5931\u6548\uFF1A\u8D26\u53F7\u6216\u5B58\u50A8\u5DF2\u6539\u53D8");s();},p=i.then(async()=>{P();let u=await l();return P(),u});return i=p.then(()=>{},()=>{}),p}function h(l,f){return l.version!==2||!Number.isFinite(l.fetchedAt)||l.fetchedAt<0||f-l.fetchedAt>=gp}async function b(l){if(!Number.isSafeInteger(l.byteLength)||l.byteLength<0)throw new Error("\u6700\u8FD1\u5386\u53F2\u7F13\u5B58 byteLength \u5FC5\u987B\u662F\u975E\u8D1F\u5B89\u5168\u6574\u6570");let f=Date.now();if(l.byteLength>mp||h(l,f))return false;let g=L(l.conversation),P=s().transaction("recentHistoryPages","readwrite");return tn(P,async()=>{let p=await P.store.getAll(),u=[];for(let v of p)h(v,f)?await P.store.delete(v.conversationKey):v.conversationKey!==g&&u.push(v);let w={...l,conversationKey:g};u.push(w),u.sort((v,S)=>v.fetchedAt-S.fetchedAt||v.conversationKey.localeCompare(S.conversationKey));let A=u.reduce((v,S)=>v+S.byteLength,0),k=[];for(;u.length>pp||A>fp;){let v=u.shift();k.push(v),A-=v.byteLength;}if(k.includes(w))return !1;await P.store.put(w);for(let v of k)await P.store.delete(v.conversationKey);return !0})}async function m(l){if(typeof l!="string")return;let f=IDBKeyRange.bound([l,""],[l,Le]),g=(await s().transaction("messages").store.index("by_conv_sort").getAll(f)).map(He);Tn(l,g);}function M(l){let f=a.then(l,l);return a=f.then(()=>{},()=>{}),f}function I$1(l,f){if(l!==o||f===null||f!==r)throw new Error("\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u8D26\u53F7\u4EE3\u9645\u5DF2\u5931\u6548")}function R(){return Math.max(0,Math.floor(e.mediaAssetCache?.now?.()??Date.now()))}function D(l,f){let g=e.mediaAssetCache?.strategies.resolve(l.kind)?.maxIdleMs;return g!==void 0&&(!Number.isSafeInteger(l.lastAccessedAt)||l.lastAccessedAt<0||f-l.lastAccessedAt>=g)}async function E(l,f){I$1(l,f);let g=await s().getAll("mediaAssetMeta");I$1(l,f);let P=R(),p=g.filter(w=>D(w,P));await C(p.map(w=>w.key),l,f),I$1(l,f);let u=new Set(p.map(w=>w.key));return g.filter(w=>!u.has(w.key))}async function x(l){let f=e.mediaAssetCache?.estimateStorage??(async()=>typeof navigator>"u"||navigator.storage?.estimate===void 0?{}:await navigator.storage.estimate());try{let{quota:g,usage:P}=await f();if(g===void 0||!Number.isFinite(g)||g<=0)return ma;let p=l.reduce((A,k)=>A+k.byteLength,0),u=Math.max(0,(P??0)-p),w=Math.max(hp,Math.floor(g*.2));return Math.max(0,Math.min(yp,Math.floor(g-u-w)))}catch{return ma}}async function C(l,f,g){if(l.length===0)return;I$1(f,g);let P=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all(l.flatMap(p=>[P.objectStore("mediaAssets").delete(p),P.objectStore("mediaAssetMeta").delete(p)])),await P.done;}async function _(l,f,g,P){I$1(l,f);let p=s(),u=e.mediaAssetCache?.strategies;if(u===void 0)return;let w=P??await p.getAll("mediaAssetMeta");I$1(l,f);let A=new Set;for(let T of u.list()){let O=w.filter(G=>G.kind===T.kind).sort((G,X)=>G.lastAccessedAt-X.lastAccessedAt),N=O.reduce((G,X)=>G+X.byteLength,0),j=O.length;for(let G of O){if(N<=T.softMaxBytes&&j<=T.maxEntries)break;A.add(G.key),N-=G.byteLength,j-=1;}}let k=w.filter(T=>!A.has(T.key)).sort((T,O)=>T.lastAccessedAt-O.lastAccessedAt),v=Math.max(0,Math.min(await x(w),g??Number.POSITIVE_INFINITY)),S=k.reduce((T,O)=>T+O.byteLength,0);for(let T of k){if(S<=v)break;A.add(T.key),S-=T.byteLength;}await C([...A],l,f);}async function U(l,f,g){I$1(f,g);let P=e.mediaAssetCache?.strategies.resolve(l.kind);if(P===void 0)return "skipped";let p=l.blob,u=p.size,w=await E(f,g),A=await x(w);if(I$1(f,g),u===0||u>P.maxEntryBytes||A<=0||u>Math.floor(A/2))return "skipped";let k=Pr(l),v=R(),S=w.find(G=>G.key===k),T={key:k,kind:l.kind,messageId:l.messageId,resourceVersion:l.resourceVersion,byteLength:u,...l.mimeType===void 0?{}:{mimeType:l.mimeType},createdAt:S?.createdAt??v,lastAccessedAt:v},O=async()=>{I$1(f,g);let G=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([G.objectStore("mediaAssets").put({key:k,blob:p}),G.objectStore("mediaAssetMeta").put(T)]),await G.done;},N=false;try{await O();}catch(G){if(!(G instanceof DOMException)||G.name!=="QuotaExceededError")throw G;N=true,await _(f,g,Math.max(0,A-u)),await O();}let j=S===void 0?[...w,T]:w.map(G=>G.key===k?T:G);return await _(f,g,void 0,N?void 0:j),I$1(f,g),await s().get("mediaAssets",k)===void 0?"skipped":"stored"}return {supportsChannelSyncCheckpoint:true,recentHistoryCache:{get:l=>y(async()=>{let f=L(l),g=s().transaction("recentHistoryPages","readwrite");return tn(g,async()=>{let P=await g.store.get(f);if(P===void 0)return null;if(h(P,Date.now()))return await g.store.delete(f),null;let{conversationKey:p,...u}=P;return u})}),async put(l){let f=structuredClone(l);return y(()=>b(f))},delete:l=>y(async()=>{await s().delete("recentHistoryPages",L(l));}),clear:()=>y(async()=>{await s().clear("recentHistoryPages");})},async open({namespace:l}){if(t!==null&&r===l)return;t!==null&&(t.close(),t=null),r=l;let f=++o,g=n.forAccount(l).name("durable","storage","indexed-db"),P,p=await openDB(g,lp,{upgrade(u,w,A,k){if(u.objectStoreNames.contains("messages"))k.objectStore("messages").indexNames.contains("by_conversation_key_sort")||k.objectStore("messages").createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);else {let v=u.createObjectStore("messages",{keyPath:"messageKey"});v.createIndex("by_conv_sort",["conversationId","sortKey"]),v.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);}if(u.objectStoreNames.contains("sessions")||u.createObjectStore("sessions",{keyPath:"id"}),u.objectStoreNames.contains("readStates")||u.createObjectStore("readStates",{keyPath:"conversationId"}),u.objectStoreNames.contains("drafts")||u.createObjectStore("drafts",{keyPath:"conversationKey"}),u.objectStoreNames.contains("outbox")||u.createObjectStore("outbox",{keyPath:"id"}),u.objectStoreNames.contains("meta")||u.createObjectStore("meta",{keyPath:"key"}),u.objectStoreNames.contains("userProfiles")||u.createObjectStore("userProfiles",{keyPath:"id"}),u.objectStoreNames.contains("groupMembers")||u.createObjectStore("groupMembers",{keyPath:"groupId"}),u.objectStoreNames.contains("groupProfiles")||u.createObjectStore("groupProfiles",{keyPath:"id"}),u.objectStoreNames.contains("pinnedMessages")||u.createObjectStore("pinnedMessages",{keyPath:"conversationId"}),u.objectStoreNames.contains("channelProfiles")||u.createObjectStore("channelProfiles",{keyPath:"id"}),u.objectStoreNames.contains("channelMembers")||u.createObjectStore("channelMembers",{keyPath:["channelId","userId"]}),u.objectStoreNames.contains("channelMemberSnapshots")||u.createObjectStore("channelMemberSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("channelMentionCandidateSnapshots")||u.createObjectStore("channelMentionCandidateSnapshots",{keyPath:"channelId"}),u.objectStoreNames.contains("conversationBackgrounds")||u.createObjectStore("conversationBackgrounds",{keyPath:"key"}),u.objectStoreNames.contains("mediaAssets")||u.createObjectStore("mediaAssets",{keyPath:"key"}),!u.objectStoreNames.contains("mediaAssetMeta")){let v=u.createObjectStore("mediaAssetMeta",{keyPath:"key"});v.createIndex("by_kind_access",["kind","lastAccessedAt"]),v.createIndex("by_access","lastAccessedAt");}u.objectStoreNames.contains("decryptRecoveries")||u.createObjectStore("decryptRecoveries",{keyPath:"key"}).createIndex("by_conversation","conversationKey"),w>0&&w<13&&(k.objectStore("mediaAssets").clear(),k.objectStore("mediaAssetMeta").clear()),u.objectStoreNames.contains("recentHistoryPages")||u.createObjectStore("recentHistoryPages",{keyPath:"conversationKey"}),w>0&&w<16&&k.objectStore("messages").keyPath!=="messageKey"&&(async()=>{let S=await k.objectStore("messages").getAll();for(let O of S)O.messageKey=Dn(I(O),O.id);u.deleteObjectStore("messages");let T=u.createObjectStore("messages",{keyPath:"messageKey"});T.createIndex("by_conv_sort",["conversationId","sortKey"]),T.createIndex("by_conversation_key_sort",["conversationKey","sortKey"]);for(let O=0;O<S.length;O+=fa){let N=S.slice(O,O+fa);await Promise.all(N.map(async j=>T.put(j)));}})().catch(S=>{P=S,k.done.catch(()=>{});try{k.abort();}catch{}});}}).catch(u=>{throw P??u});if(f!==o){p.close();return}try{await Sp(p),await xp(p),await _p(p);}catch(u){throw p.close(),u}if(f!==o){p.close();return}t=p;try{await M(()=>E(f,l));}catch(u){if(p.close(),f!==o)return;throw t===p&&(t=null),u}},async close(){let l=a;o+=1,r=null,t!==null&&(t.close(),t=null),await l;},async clearRebuildableCaches(){return y(async()=>{let l=o,f=r;await M(async()=>{I$1(l,f);let P=s().transaction(["userProfiles","groupMembers","groupProfiles","channelProfiles","channelMembers","channelMemberSnapshots","channelMentionCandidateSnapshots","mediaAssets","mediaAssetMeta","meta","recentHistoryPages"],"readwrite");await Promise.all([P.objectStore("userProfiles").clear(),P.objectStore("groupMembers").clear(),P.objectStore("groupProfiles").clear(),P.objectStore("channelProfiles").clear(),P.objectStore("channelMembers").clear(),P.objectStore("channelMemberSnapshots").clear(),P.objectStore("channelMentionCandidateSnapshots").clear(),P.objectStore("mediaAssets").clear(),P.objectStore("mediaAssetMeta").clear(),P.objectStore("meta").delete(wr),P.objectStore("recentHistoryPages").clear(),P.done]);});})},async hasMany(l){let f=o,g=r,P=l.map(p=>({...p}));return await M(async()=>{if(I$1(f,g),P.length===0)return Object.freeze([]);let p=s().transaction(["mediaAssets","mediaAssetMeta"],"readonly"),u=R(),w=await tn(p,async()=>{let A=new Map;return await Promise.all(P.map(k=>{if(e.mediaAssetCache?.strategies.resolve(k.kind)===void 0)return !1;let v=Pr(k),S=A.get(v);return S===void 0&&(S=Promise.all([p.objectStore("mediaAssets").getKey(v),p.objectStore("mediaAssetMeta").get(v)]).then(([T,O])=>T!==void 0&&O!==void 0&&O.kind===k.kind&&O.messageId===k.messageId&&O.resourceVersion===k.resourceVersion&&Number.isSafeInteger(O.byteLength)&&O.byteLength>0&&!D(O,u)),A.set(v,S)),S}))});return I$1(f,g),Object.freeze(w)})},async get(l){let f=o,g=r;return await M(async()=>{if(I$1(f,g),e.mediaAssetCache?.strategies.resolve(l.kind)===void 0)return null;let P=Pr(l),p=s(),[u,w]=await Promise.all([p.get("mediaAssets",P),p.get("mediaAssetMeta",P)]);I$1(f,g);let A=R();return u===void 0||w===void 0||D(w,A)?(await C([P],f,g),null):(await p.put("mediaAssetMeta",{...w,lastAccessedAt:A}),I$1(f,g),{kind:w.kind,messageId:w.messageId,resourceVersion:w.resourceVersion,blob:u.blob,...w.mimeType===void 0?{}:{mimeType:w.mimeType}})})},async put(l){let f=o,g=r;I$1(f,g);let P=l.blob.size;if(P>d||c+P>d)return "skipped";c+=P;try{return await M(()=>U(l,f,g))}finally{c=Math.max(0,c-P);}},async clear(){let l=o,f=r;await M(async()=>{I$1(l,f);let g=s().transaction(["mediaAssets","mediaAssetMeta"],"readwrite");await Promise.all([g.objectStore("mediaAssets").clear(),g.objectStore("mediaAssetMeta").clear(),g.done]);});},async prune(){let l=o,f=r;await M(()=>E(l,f));},async getMessage(l,f){let g=await s().get("messages",Dn(l,f));if(g===void 0)return null;let P=He(g);return L(I(P))===L(l)?P:null},async getMessages(l,f){let g=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",P=typeof l=="string"?l:L(l);if(await m(l),f.beforeSortKey===void 0&&f.afterSortKey!==void 0){let A=IDBKeyRange.bound([P,f.afterSortKey],[P,Le]),k=[],v=await s().transaction("messages").store.index(g).openCursor(A,"next");for(;v!==null&&k.length<f.limit;)k.push(v.value),v=await v.continue();return k.map(He)}let p=f.beforeSortKey===void 0?IDBKeyRange.bound([P,""],[P,Le]):IDBKeyRange.bound([P,""],[P,f.beforeSortKey],false,true),u=[],w=await s().transaction("messages").store.index(g).openCursor(p,"prev");for(;w!==null&&u.length<f.limit;)u.push(w.value),w=await w.continue();return u.reverse().map(He)},async saveMessages(l){if(l.length===0)return;let f=s().transaction("messages","readwrite");await Promise.all([...l.map(g=>f.store.put(Ca(g))),f.done]);},async searchMessages(l,f){let g=L(l),P=f.keyword?.trim()??"",p=f.contentTypes;if(P===""&&(p===void 0||p.length===0))return {items:[],exhausted:true};let u=P===""?void 0:await Da$1(P),w=f.beforeSortKey===void 0?IDBKeyRange.bound([g,""],[g,Le]):IDBKeyRange.bound([g,""],[g,f.beforeSortKey],false,true),A=2e3,k=[],v=0,S,T=await s().transaction("messages").store.index("by_conversation_key_sort").openCursor(w,"prev");for(;T!==null&&k.length<f.limit&&v<A;){let N=Ha$1(He(T.value));v+=1,S=N.sortKey;let j=p===void 0||p.includes(N.contentType),G=u===void 0||u.match(Ba$1(N))!==null;j&&G&&k.push(N),T=await T.continue();}let O=T===null;return {items:k,exhausted:O,...O?{}:{nextBeforeSortKey:S}}},async getDecryptRecoveries(l){let f=L(l);return (await s().getAllFromIndex("decryptRecoveries","by_conversation",f)).map(Ip)},async saveDecryptRecovery(l){if(l.sContent.byteLength===0||l.sContent.byteLength>wp)throw new Error(`\u89E3\u5BC6\u6062\u590D\u5BC6\u6587\u5B57\u8282\u957F\u5EA6\u975E\u6CD5\uFF1A${l.sContent.byteLength}`);await s().put("decryptRecoveries",Pp(l));},async deleteDecryptRecovery(l,f){await s().delete("decryptRecoveries",Ir(l,f));},async deleteConversationDecryptRecoveries(l){let f=L(l),g=s().transaction("decryptRecoveries","readwrite"),P=await g.store.index("by_conversation").openCursor(IDBKeyRange.only(f));for(;P!==null;)await P.delete(),P=await P.continue();await g.done;},async getSessions(){return (await s().getAll("sessions")).map(vr)},async saveSessions(l){if(l.length===0)return;let f=s().transaction("sessions","readwrite");for(let g of l)await f.store.put(ct(g)),await f.store.delete(g.id);await f.done;},async deleteSession(l){if(typeof l!="string"){let P=s().transaction(["sessions","conversationBackgrounds"],"readwrite");await P.objectStore("sessions").delete(L(l)),await P.objectStore("conversationBackgrounds").delete(En(l)),await P.done;return}let f=(await s().getAll("sessions")).map(vr).filter(P=>P.id===l);Tn(l,f.map(P=>({conversationType:P.type})));let g=s().transaction(["sessions","conversationBackgrounds"],"readwrite");if(f[0]!==void 0){let P=J$1(f[0]);await g.objectStore("sessions").delete(L(P)),await g.objectStore("conversationBackgrounds").delete(En(P));}await g.objectStore("sessions").delete(l),await g.done;},async deleteReadState(l){if(typeof l!="string"){await s().delete("readStates",L(l));return}let g=(await s().getAll("readStates")).map(dt).filter(P=>P.conversationId===l).filter(P=>P.conversationType!==void 0);Tn(l,g),g[0]!==void 0&&await s().delete("readStates",L(g[0])),await s().delete("readStates",l);},async deleteMessage(l,f,g){return y(async()=>{if(g!==void 0&&(g.id!==l.conversationId||g.type!==l.conversationType))throw new Error("\u5220\u9664\u540E\u7684\u4F1A\u8BDD\u6458\u8981\u5FC5\u987B\u5339\u914D\u76EE\u6807\u4F1A\u8BDD");let P=s().transaction(["messages","sessions","decryptRecoveries","recentHistoryPages"],"readwrite");return tn(P,async()=>{let p=P.objectStore("messages"),u=Dn(l,f),w=await p.get(u);if(w!==void 0){let A=He(w);if(A.conversationType!==l.conversationType||A.conversationId!==l.conversationId)return !1;await p.delete(u);}return await P.objectStore("decryptRecoveries").delete(Ir(l,f)),await P.objectStore("recentHistoryPages").delete(L(l)),g!==void 0&&await P.objectStore("sessions").put(ct(g)),w!==void 0})})},async deleteConversationMessages(l){return y(async()=>{let f=Mp(l),g=typeof l=="string"?"by_conv_sort":"by_conversation_key_sort",P=typeof l=="string"?l:L(l),p=IDBKeyRange.bound([P,""],[P,Le]),u=s().transaction(["messages","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return tn(u,async()=>{let w=u.objectStore("messages"),A=u.objectStore("decryptRecoveries"),k=[],v=[];if(typeof l=="string"){let T=(await w.index("by_conv_sort").getAll(p)).map(He);k=(await A.getAll()).filter(N=>N.conversation.conversationId===l),v=(await u.objectStore("recentHistoryPages").getAll()).filter(N=>N.conversation.conversationId===f);let O=await u.objectStore("meta").get(Ya$1({conversationType:"channel",conversationId:f}));Tn(f,[...O===void 0?[]:[{conversationType:"channel"}],...T,...v.map(N=>({conversationType:N.conversation.conversationType})),...k.map(N=>({conversationType:N.conversation.conversationType}))]);}await u.objectStore("meta").delete(Ya$1(typeof l=="string"?{conversationType:"channel",conversationId:f}:l));let S=await w.index(g).openCursor(p);for(;S!==null;)await S.delete(),S=await S.continue();if(typeof l=="string"){for(let T of k)await A.delete(T.key);for(let T of v)await u.objectStore("recentHistoryPages").delete(T.conversationKey);}else {await u.objectStore("recentHistoryPages").delete(L(l));let T=await A.index("by_conversation").openCursor(IDBKeyRange.only(L(l)));for(;T!==null;)await T.delete(),T=await T.continue();}})})},async clearConversationHistory(l,f,g){return y(async()=>{let P=L(l),p=IDBKeyRange.bound([P,""],[P,Le]),u=s().transaction(["messages","sessions","readStates","decryptRecoveries","recentHistoryPages","meta"],"readwrite");return tn(u,async()=>{await u.objectStore("meta").delete(Ya$1(l)),await u.objectStore("recentHistoryPages").delete(P);let w=await u.objectStore("messages").index("by_conversation_key_sort").openCursor(p);for(;w!==null;)await w.delete(),w=await w.continue();let A=await u.objectStore("decryptRecoveries").index("by_conversation").openCursor(IDBKeyRange.only(P));for(;A!==null;)await A.delete(),A=await A.continue();f!==void 0&&await u.objectStore("sessions").put(ct(f)),g!==void 0&&(await u.objectStore("readStates").put(Ar(g)),await u.objectStore("readStates").delete(g.conversationId));})})},async getReadStates(){return (await s().getAll("readStates")).map(dt)},async saveReadState(l){let f=s().transaction("readStates","readwrite");await f.store.put(Ar(l)),l.conversationType!==void 0&&await f.store.delete(l.conversationId),await f.done;},async getDrafts(){return (await s().getAll("drafts")).map(Ap)},async saveDraft(l){await s().put("drafts",vp(l));},async deleteDraft(l){await s().delete("drafts",L(l));},async getConversationBackground(l){return (await s().get("conversationBackgrounds",En(l)))?.background??null},async saveConversationBackground(l,f){let g=En(l);await s().put("conversationBackgrounds",{key:g,background:f});},async deleteConversationBackground(l){await s().delete("conversationBackgrounds",En(l));},async getDefaultConversationBackground(){return (await s().get("conversationBackgrounds",Cr))?.background??null},async saveDefaultConversationBackground(l){await s().put("conversationBackgrounds",{key:Cr,background:l});},async deleteDefaultConversationBackground(){await s().delete("conversationBackgrounds",Cr);},async getOutbox(){return s().getAll("outbox")},async saveOutboxMessage(l){await s().put("outbox",l);},async removeOutboxMessage(l){await s().delete("outbox",l);},async getPinnedMessages(){return (await s().getAll("pinnedMessages")).map(Mr)},async savePinnedMessage(l){let f=s().transaction("pinnedMessages","readwrite");await f.store.put(Pa(l)),await f.store.delete(l.conversationId),await f.done;},async removePinnedMessage(l){if(typeof l!="string"){await s().delete("pinnedMessages",L(l));return}let f=(await s().getAll("pinnedMessages")).map(Mr).filter(g=>g.conversationId===l);Tn(l,f),f[0]!==void 0&&await s().delete("pinnedMessages",L(K$1(f[0]))),await s().delete("pinnedMessages",l);},async getMeta(l){let f=await s().get("meta",l);return f===void 0?null:f.value},async setMeta(l,f){await s().put("meta",{key:l,value:f});},async getUserProfile(l){return await s().get("userProfiles",l)??null},async saveUserProfile(l){await s().put("userProfiles",l);},async getGroupMembers(l){return await s().get("groupMembers",l)??null},async saveGroupMembers(l){await s().put("groupMembers",l);},async getGroupProfile(l){return await s().get("groupProfiles",l)??null},async saveGroupProfile(l){await s().put("groupProfiles",l);},async getChannelProfile(l){return await s().get("channelProfiles",l)??null},async getChannelProfiles(){return s().getAll("channelProfiles")},async saveChannelProfiles(l){if(l.length===0)return;let f=s().transaction("channelProfiles","readwrite");await Promise.all([...l.map(g=>f.store.put(g)),f.done]);},async getChannelListVersion(){let l=await s().get("meta",wr);return typeof l?.value=="string"&&/^\d+$/.test(l.value)?l.value:"0"},async saveChannelListVersion(l){if(!/^\d+$/.test(l))throw new Error(`CHANNEL list version \u975E\u6CD5\uFF1A${l}`);await s().put("meta",{key:wr,value:l});},async getChannelMembers(l,f){if(f.length===0)return [];let g=s().transaction("channelMembers"),P=await Promise.all(f.map(p=>g.store.get([l,p])));return await g.done,P.filter(p=>p!==void 0)},async saveChannelMembers(l){if(l.length===0)return;let f=s().transaction("channelMembers","readwrite");for(let g of l){let P=await f.store.get([g.channelId,g.userId]);P!==void 0&&Cp(g.updateVersion,P.updateVersion)<0||await f.store.put(g);}await f.done;},async deleteChannelMembers(l){let f=IDBKeyRange.bound([l,""],[l,Le]),g=s().transaction("channelMembers","readwrite"),P=await g.store.openCursor(f);for(;P!==null;)await P.delete(),P=await P.continue();await g.done;},async getChannelMemberSnapshot(l){return await s().get("channelMemberSnapshots",l)??null},async saveChannelMemberSnapshot(l){await s().put("channelMemberSnapshots",l);},async deleteChannelMemberSnapshot(l){await s().delete("channelMemberSnapshots",l);},async getChannelMentionCandidateSnapshot(l){return await s().get("channelMentionCandidateSnapshots",l)??null},async saveChannelMentionCandidateSnapshot(l){await s().put("channelMentionCandidateSnapshots",l);},async deleteChannelMentionCandidateSnapshot(l){await s().delete("channelMentionCandidateSnapshots",l);}}}function Ep(e={}){let n=e.createSocket??(m=>new globalThis.WebSocket(m)),t=e.connectTimeoutMs??1e4,r={open:new Set,message:new Set,close:new Set,error:new Set},o,i,a="idle",c;function d(m,M){for(let I of [...r[m]])I(M);}function s(){c!==void 0&&(clearTimeout(c),c=void 0);}function y(m,M){M!==void 0&&(m.removeEventListener("open",M.onOpen),m.removeEventListener("message",M.onMessage),m.removeEventListener("error",M.onError),m.removeEventListener("close",M.onClose));}function h(){if(s(),o!==void 0){y(o,i);try{o.close(1e3);}catch{}o=void 0;}i=void 0;}function b(m,M,I){let R={onOpen:()=>{m===o&&(s(),a="open",d("open",{endpoint:M}));},onMessage:D=>{if(m!==o||a!=="open")return;let E=D?.data;if(E instanceof ArrayBuffer){d("message",{data:E});return}d("error",{error:new Error(`WsTransport\uFF1A\u6536\u5230\u975E ArrayBuffer \u6D88\u606F\uFF08${typeof E}\uFF09\uFF0C\u5DF2\u5FFD\u7565`)});},onError:D=>{m===o&&d("error",{error:new Error(`WsTransport\uFF1AWebSocket error \u4E8B\u4EF6\uFF08${D instanceof Event?D.type:typeof D}\uFF09`)});},onClose:D=>{m===o&&(s(),y(m,R),o=void 0,i=void 0,a="closed",d("close",{code:D?.code??1006,reason:D?.reason??"",wasClean:D?.wasClean??false}));}};if(i=R,m.addEventListener("open",R.onOpen),m.addEventListener("message",R.onMessage),m.addEventListener("error",R.onError),m.addEventListener("close",R.onClose),I>0){let D=setTimeout(()=>{if(!(m!==o||a!=="connecting")){d("error",{error:new Error(`WsTransport\uFF1A\u8FDE\u63A5\u8D85\u65F6\uFF08${I}ms \u672A open\uFF09`)});try{m.close();}catch{}}},I);D.unref?.(),c=D;}}return {get state(){return a},async connect(m,M){let I=m[0];if(I===void 0)throw new Error("WsTransport.connect\uFF1Aendpoints \u4E3A\u7A7A\uFF08P0 single \u7B56\u7565\u9700\u81F3\u5C11\u4E00\u4E2A\u7AEF\u70B9\uFF09");h(),a="connecting";let R;try{R=n(I.url);}catch(D){throw a="closed",D}R.binaryType="arraybuffer",o=R,b(R,I,M?.connectTimeoutMs??t);},async send(m){if(o===void 0||a!=="open")throw new Error(`WsTransport.send\uFF1A\u8FDE\u63A5\u672A\u5C31\u7EEA\uFF08state=${a}\uFF09\uFF0C\u62D2\u7EDD\u53D1\u9001`);o.send(m);},async close(m=1e3,M){s(),o!==void 0&&(a==="connecting"||a==="open")&&(a="closing",o.close(m,M));},on(m,M){return r[m].add(M),()=>{r[m].delete(M);}}}}
|
|
8
|
-
export{Gd as $,bl as $a,Oe as A,wu as Aa,ad as B,Cu as Ba,Ia as C,Pu as Ca,ld as D,Ni as Da,fd as E,Ki as Ea,md as F,Au as Fa,yd as G,Mu as Ga,hd as H,Su as Ha,bd as I,xu as Ia,wd as J,_u as Ja,Cd as K,ku as Ka,Pd as L,Uu as La,Id as M,Ou as Ma,vd as N,Gu as Na,Ad as O,ju as Oa,Md as P,Wu as Pa,Sd as Q,Qu as Qa,xd as R,Zu as Ra,_d as S,el as Sa,kd as T,nl as Ta,Ed as U,tl as Ua,Dd as V,rl as Va,Ud as W,Qn as Wa,Wn as X,_e as Xa,Yn as Y,yl as Ya,Od as Z,Mt as Za,Kd as _,va as _a,os as a,Ld as aa,Hl as ab,Dt as b,Hd as ba,K as bb,As as c,qd as ca,Aa as cb,ln as d,jd as da,it as db,Q as e,Jd as ea,co as eb,_s as f,Vd as fa,ep as fb,Es as g,zd as ga,V as gb,pn as h,Wd as ha,ip as hb,Ts as i,Xd as ia,ap as ib,Zs as j,Zd as ja,cp as jb,$e as k,eu as ka,kp as kb,Z as l,nu as la,Rp as lb,dc as m,tu as ma,Ep as mb,uc as n,ru as na,Ra as nb,yn as o,iu as oa,Nn as ob,be as p,vn as pa,Fa as pb,Pc as q,su as qa,rs as qb,hn as r,cu as ra,re as s,du as sa,Bc as t,uu as ta,qc as u,lu as ua,Vc as v,pu as va,zc as w,fu as wa,Zc as x,mu as xa,ze as y,gu as ya,z,bu as za};
|