k2-im 0.1.58 → 0.2.1

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.
Files changed (470) hide show
  1. package/README.md +3 -1
  2. package/dist/browser.js +1 -1
  3. package/dist/chat-kit-pinia.d.ts +225 -170
  4. package/dist/chat-kit-pinia.js +1 -1
  5. package/dist/chat-kit-vue.d.ts +64 -44
  6. package/dist/chat-kit-vue.js +1 -1
  7. package/dist/chat-kit.d.ts +226 -171
  8. package/dist/chat-kit.js +1 -1
  9. package/dist/crypto.worker.js +17 -25
  10. package/dist/i18n.d.ts +61 -41
  11. package/dist/i18n.js +1 -1
  12. package/dist/index.d.ts +241 -186
  13. package/dist/index.js +1 -1
  14. package/dist/modules/api-protocol-client/src/bi-feedback.js +1 -0
  15. package/dist/modules/api-protocol-client/src/browser.js +1 -0
  16. package/dist/modules/api-protocol-client/src/client.js +1 -0
  17. package/dist/modules/api-protocol-client/src/config.js +1 -0
  18. package/dist/modules/api-protocol-client/src/constants.js +1 -0
  19. package/dist/modules/api-protocol-client/src/json.js +1 -0
  20. package/dist/modules/api-protocol-client/src/nonce.js +1 -0
  21. package/dist/modules/api-protocol-client/src/transports/axios.js +1 -0
  22. package/dist/modules/api-protocol-client/src/utils.js +1 -0
  23. package/dist/modules/crypto/browser.js +1 -0
  24. package/dist/modules/crypto/driver.js +1 -0
  25. package/dist/modules/crypto/vendor/crypto/index_bg.js +1 -0
  26. package/dist/modules/im-browser/src/crypto/channel-key-service.js +1 -0
  27. package/dist/modules/im-browser/src/crypto/collect-tea.js +1 -0
  28. package/dist/modules/im-browser/src/crypto/crypto-task-executor.js +1 -0
  29. package/dist/modules/im-browser/src/crypto/crypto-worker-factory.js +1 -0
  30. package/dist/modules/im-browser/src/crypto/crypto-worker-protocol.js +1 -0
  31. package/dist/modules/im-browser/src/crypto/encrypt-key-service.js +1 -0
  32. package/dist/modules/im-browser/src/crypto/group-key-service.js +1 -0
  33. package/dist/modules/im-browser/src/crypto/peer-public-key-service.js +1 -0
  34. package/dist/modules/im-browser/src/crypto/rsa-private-key.js +1 -0
  35. package/dist/modules/im-browser/src/crypto/rsa-tea-crypto-adapter.js +1 -0
  36. package/dist/modules/im-browser/src/crypto/stale-key-refresh.js +1 -0
  37. package/dist/modules/im-browser/src/crypto/tea.js +1 -0
  38. package/dist/modules/im-browser/src/crypto/wait-for-key-signal.js +1 -0
  39. package/dist/modules/im-browser/src/http/application-http-adapters.js +1 -0
  40. package/dist/modules/im-browser/src/http/channel-http-adapter.js +1 -0
  41. package/dist/modules/im-browser/src/http/channel-join-application-http-adapter.js +1 -0
  42. package/dist/modules/im-browser/src/http/channel-member-http-adapter.js +1 -0
  43. package/dist/modules/im-browser/src/http/channel-mention-member-http-adapter.js +1 -0
  44. package/dist/modules/im-browser/src/http/cm-http-adapter.js +1 -0
  45. package/dist/modules/im-browser/src/http/directory-http-adapter.js +1 -0
  46. package/dist/modules/im-browser/src/http/expression-http-adapter.js +1 -0
  47. package/dist/modules/im-browser/src/http/lazy-api-protocol-client.js +1 -0
  48. package/dist/modules/im-browser/src/http/profile-http-adapter.js +1 -0
  49. package/dist/modules/im-browser/src/http/requests/applications.js +1 -0
  50. package/dist/modules/im-browser/src/http/requests/bind-robot-conversation.js +1 -0
  51. package/dist/modules/im-browser/src/http/requests/board-pinned-message-validation.js +1 -0
  52. package/dist/modules/im-browser/src/http/requests/channel-join-applications.js +1 -0
  53. package/dist/modules/im-browser/src/http/requests/channel-management.js +1 -0
  54. package/dist/modules/im-browser/src/http/requests/channel-members.js +1 -0
  55. package/dist/modules/im-browser/src/http/requests/channel-mention-members.js +1 -0
  56. package/dist/modules/im-browser/src/http/requests/channel-message-context.js +1 -0
  57. package/dist/modules/im-browser/src/http/requests/channel-mini-program-rel.js +1 -0
  58. package/dist/modules/im-browser/src/http/requests/channel-profile.js +1 -0
  59. package/dist/modules/im-browser/src/http/requests/channel-read-index.js +1 -0
  60. package/dist/modules/im-browser/src/http/requests/contact-blocklist.js +1 -0
  61. package/dist/modules/im-browser/src/http/requests/contact-friendship.js +1 -0
  62. package/dist/modules/im-browser/src/http/requests/contact-report.js +1 -0
  63. package/dist/modules/im-browser/src/http/requests/core-json-request.js +1 -0
  64. package/dist/modules/im-browser/src/http/requests/create-channel.js +1 -0
  65. package/dist/modules/im-browser/src/http/requests/create-face-to-face-group.js +1 -0
  66. package/dist/modules/im-browser/src/http/requests/create-group.js +1 -0
  67. package/dist/modules/im-browser/src/http/requests/customer-service-profile.js +1 -0
  68. package/dist/modules/im-browser/src/http/requests/get-board-pinned-message.js +1 -0
  69. package/dist/modules/im-browser/src/http/requests/get-channel-board-pinned-message.js +1 -0
  70. package/dist/modules/im-browser/src/http/requests/get-channel-secret-key.js +1 -0
  71. package/dist/modules/im-browser/src/http/requests/get-conversation-background-presets.js +1 -0
  72. package/dist/modules/im-browser/src/http/requests/get-group-encrypt-info.js +1 -0
  73. package/dist/modules/im-browser/src/http/requests/get-group-info.js +1 -0
  74. package/dist/modules/im-browser/src/http/requests/get-group-member-list.js +1 -0
  75. package/dist/modules/im-browser/src/http/requests/get-user-encrypt-info.js +1 -0
  76. package/dist/modules/im-browser/src/http/requests/get-user-info-friend.js +1 -0
  77. package/dist/modules/im-browser/src/http/requests/get-user-info-other.js +1 -0
  78. package/dist/modules/im-browser/src/http/requests/group-management.js +1 -0
  79. package/dist/modules/im-browser/src/http/requests/mark-group-read-all.js +1 -0
  80. package/dist/modules/im-browser/src/http/requests/membership-join.js +1 -0
  81. package/dist/modules/im-browser/src/http/requests/pin-board-message.js +1 -0
  82. package/dist/modules/im-browser/src/http/requests/pin-channel-board-message.js +1 -0
  83. package/dist/modules/im-browser/src/http/requests/pull-messages-by-id.js +1 -0
  84. package/dist/modules/im-browser/src/http/requests/pull-offline-channel.js +1 -0
  85. package/dist/modules/im-browser/src/http/requests/pull-offline-chat.js +1 -0
  86. package/dist/modules/im-browser/src/http/requests/pull-offline-group.js +1 -0
  87. package/dist/modules/im-browser/src/http/requests/pull-offline-signal.js +1 -0
  88. package/dist/modules/im-browser/src/http/requests/robot-menu-reply.js +1 -0
  89. package/dist/modules/im-browser/src/http/requests/robot-profile.js +1 -0
  90. package/dist/modules/im-browser/src/http/requests/search-robots.js +1 -0
  91. package/dist/modules/im-browser/src/http/requests/set-conversation-undisturb.js +1 -0
  92. package/dist/modules/im-browser/src/http/requests/set-friend-remark.js +1 -0
  93. package/dist/modules/im-browser/src/http/requests/set-group-nickname.js +1 -0
  94. package/dist/modules/im-browser/src/http/requests/unpin-board-message.js +1 -0
  95. package/dist/modules/im-browser/src/http/requests/unpin-channel-board-message.js +1 -0
  96. package/dist/modules/im-browser/src/http/requests/update-group-info.js +1 -0
  97. package/dist/modules/im-browser/src/http/session-favorite-http-adapter.js +1 -0
  98. package/dist/modules/im-browser/src/media/file-md5.js +1 -0
  99. package/dist/modules/im-browser/src/media/image-clipboard.js +1 -0
  100. package/dist/modules/im-browser/src/media/image-header-dimensions.js +1 -0
  101. package/dist/modules/im-browser/src/media/media-downloader.js +1 -0
  102. package/dist/modules/im-browser/src/media/media-preview-adapter.js +1 -0
  103. package/dist/modules/im-browser/src/media/media-preview-preparation-executor.js +1 -0
  104. package/dist/modules/im-browser/src/media/media-request-limiter.js +1 -0
  105. package/dist/modules/im-browser/src/media/media-transfer-adapter.js +1 -0
  106. package/dist/modules/im-browser/src/media/media-transfer-errors.js +1 -0
  107. package/dist/modules/im-browser/src/media/media-transfer-policy.js +1 -0
  108. package/dist/modules/im-browser/src/media/media-upload-credentials.js +1 -0
  109. package/dist/modules/im-browser/src/media/media-upload-recovery-codec.js +1 -0
  110. package/dist/modules/im-browser/src/media/media-upload-recovery-store.js +1 -0
  111. package/dist/modules/im-browser/src/media/media-upload-source-fingerprint.js +1 -0
  112. package/dist/modules/im-browser/src/media/s3-multipart-uploader.js +1 -0
  113. package/dist/modules/im-browser/src/media/xhr-upload-idle-timeout.js +1 -0
  114. package/dist/modules/im-browser/src/network/browser-connection-ownership.js +1 -0
  115. package/dist/modules/im-browser/src/network/network-monitor.js +1 -0
  116. package/dist/modules/im-browser/src/scheduling/yield-to-browser.js +1 -0
  117. package/dist/modules/im-browser/src/storage/indexed-db-storage-adapter.js +1 -0
  118. package/dist/modules/im-browser/src/transport/ws-transport.js +1 -0
  119. package/dist/modules/im-browser/src/voice/voice-amplitude.js +1 -0
  120. package/dist/modules/im-browser/src/voice/voice-capabilities.js +1 -0
  121. package/dist/modules/im-browser/src/voice/voice-codec.js +1 -0
  122. package/dist/modules/im-browser/src/voice/voice-errors.js +1 -0
  123. package/dist/modules/im-browser/src/voice/voice-playback.js +1 -0
  124. package/dist/modules/im-browser/src/voice/voice-player.js +1 -0
  125. package/dist/modules/im-browser/src/voice/voice-recorder.js +1 -0
  126. package/dist/modules/im-chat-kit/src/i18n/use-im-text.js +1 -0
  127. package/dist/modules/im-chat-kit/src/pinia/applications.store.js +1 -0
  128. package/dist/modules/im-chat-kit/src/pinia/capabilities.store.js +1 -0
  129. package/dist/modules/im-chat-kit/src/pinia/composer.store.js +1 -0
  130. package/dist/modules/im-chat-kit/src/pinia/context.js +1 -0
  131. package/dist/modules/im-chat-kit/src/pinia/conversation-activation.js +1 -0
  132. package/dist/modules/im-chat-kit/src/pinia/conversation-deletion.js +1 -0
  133. package/dist/modules/im-chat-kit/src/pinia/conversation-list.store.js +1 -0
  134. package/dist/modules/im-chat-kit/src/pinia/expression.store.js +1 -0
  135. package/dist/modules/im-chat-kit/src/pinia/history-return-after-send.js +1 -0
  136. package/dist/modules/im-chat-kit/src/pinia/media-transfer-estimate.js +1 -0
  137. package/dist/modules/im-chat-kit/src/pinia/media.store.js +1 -0
  138. package/dist/modules/im-chat-kit/src/pinia/message-operations.store.js +1 -0
  139. package/dist/modules/im-chat-kit/src/pinia/profile-directory.store.js +1 -0
  140. package/dist/modules/im-chat-kit/src/pinia/quoted-message.store.js +1 -0
  141. package/dist/modules/im-chat-kit/src/pinia/reaction.store.js +1 -0
  142. package/dist/modules/im-chat-kit/src/pinia/search-senders.js +1 -0
  143. package/dist/modules/im-chat-kit/src/pinia/search.store.js +1 -0
  144. package/dist/modules/im-chat-kit/src/pinia/session-favorites.store.js +1 -0
  145. package/dist/modules/im-chat-kit/src/pinia/session.store.js +1 -0
  146. package/dist/modules/im-chat-kit/src/pinia/thread-paging.store.js +1 -0
  147. package/dist/modules/im-chat-kit/src/pinia/thread-return-to-latest.js +1 -0
  148. package/dist/modules/im-chat-kit/src/pinia/thread.store.js +1 -0
  149. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-open.js +1 -0
  150. package/dist/modules/im-chat-kit/src/presentation/channel-mini-program-rels.js +1 -0
  151. package/dist/modules/im-chat-kit/src/presentation/conversation-list.js +1 -0
  152. package/dist/modules/im-chat-kit/src/presentation/conversation-unread.js +1 -0
  153. package/dist/modules/im-chat-kit/src/presentation/delayed-loading-indicator.js +1 -0
  154. package/dist/modules/im-chat-kit/src/presentation/media-source-priority.js +1 -0
  155. package/dist/modules/im-chat-kit/src/presentation/message-notification.js +1 -0
  156. package/dist/modules/im-chat-kit/src/presentation/message-search.js +1 -0
  157. package/dist/modules/im-chat-kit/src/presentation/mini-program-game-preview.js +1 -0
  158. package/dist/modules/im-chat-kit/src/presentation/mini-program-open-url.js +1 -0
  159. package/dist/modules/im-chat-kit/src/runtime/chat-runtime.js +1 -0
  160. package/dist/modules/im-chat-kit/src/runtime/conversation-prefetch-controller.js +1 -0
  161. package/dist/modules/im-chat-kit/src/runtime/media-object-url-registry.js +1 -0
  162. package/dist/modules/im-chat-kit/src/runtime/runtime-operation.js +1 -0
  163. package/dist/modules/im-chat-kit/src/services/capabilities.js +1 -0
  164. package/dist/modules/im-chat-kit/src/services/channel-member-management.service.js +1 -0
  165. package/dist/modules/im-chat-kit/src/services/channel-profile-management.service.js +1 -0
  166. package/dist/modules/im-chat-kit/src/services/channel-send-restriction.js +1 -0
  167. package/dist/modules/im-chat-kit/src/services/direct-contact-management.service.js +1 -0
  168. package/dist/modules/im-chat-kit/src/services/forward.service.js +1 -0
  169. package/dist/modules/im-chat-kit/src/services/group-member-management.service.js +1 -0
  170. package/dist/modules/im-chat-kit/src/services/group-profile-management.service.js +1 -0
  171. package/dist/modules/im-chat-kit/src/services/image-copy.service.js +1 -0
  172. package/dist/modules/im-chat-kit/src/services/media-file-classification.js +1 -0
  173. package/dist/modules/im-chat-kit/src/services/media.service.js +1 -0
  174. package/dist/modules/im-chat-kit/src/services/message.service.js +1 -0
  175. package/dist/modules/im-chat-kit/src/services/pinned-message-rules.js +1 -0
  176. package/dist/modules/im-chat-kit/src/services/pinned-message.service.js +1 -0
  177. package/dist/modules/im-chat-kit/src/services/profile-access.service.js +1 -0
  178. package/dist/modules/im-chat-kit/src/services/profile-directory.service.js +1 -0
  179. package/dist/modules/im-chat-kit/src/services/profile-display.js +1 -0
  180. package/dist/modules/im-chat-kit/src/services/profile.service.js +1 -0
  181. package/dist/modules/im-chat-kit/src/services/read.service.js +1 -0
  182. package/dist/modules/im-chat-kit/src/services/robot-sender-profile.js +1 -0
  183. package/dist/modules/im-chat-kit/src/services/search.service.js +1 -0
  184. package/dist/modules/im-chat-kit/src/services/send.service.js +1 -0
  185. package/dist/modules/im-chat-kit/src/thread/active-date.js +1 -0
  186. package/dist/modules/im-chat-kit/src/thread/create-thread-items.js +1 -0
  187. package/dist/modules/im-chat-kit/src/thread/message-locate-result.js +1 -0
  188. package/dist/modules/im-chat-kit/src/thread/new-message-badge.js +1 -0
  189. package/dist/modules/im-chat-kit/src/thread/resolve-message-body-kind.js +1 -0
  190. package/dist/modules/im-chat-kit/src/thread/resolve-quoted-message-presentation.js +1 -0
  191. package/dist/modules/im-chat-kit/src/thread/viewport-rules.js +1 -0
  192. package/dist/modules/im-chat-kit/src/utils/emoji/emoji-legacy-catalog.json.js +1 -0
  193. package/dist/modules/im-chat-kit/src/utils/emoji/index.js +1 -0
  194. package/dist/modules/im-chat-kit/src/utils/emoji/recent.js +1 -0
  195. package/dist/modules/im-chat-kit/src/utils/emoji/unicode-emoji-catalog.json.js +1 -0
  196. package/dist/modules/im-chat-kit/src/utils/emoji/unicode.js +1 -0
  197. package/dist/modules/im-chat-kit/src/utils/highlight.js +1 -0
  198. package/dist/modules/im-chat-kit/src/utils/link.js +1 -0
  199. package/dist/modules/im-chat-kit/src/utils/media-batch.js +1 -0
  200. package/dist/modules/im-chat-kit/src/utils/media-dimensions.js +1 -0
  201. package/dist/modules/im-chat-kit/src/utils/media-format.js +1 -0
  202. package/dist/modules/im-chat-kit/src/utils/media-transfer-presentation.js +1 -0
  203. package/dist/modules/im-chat-kit/src/utils/time-display.js +1 -0
  204. package/dist/modules/im-chat-kit/src/utils/waveform.js +1 -0
  205. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadBodySwitch.js +1 -0
  206. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadItems.js +1 -0
  207. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadSurface.js +1 -0
  208. package/dist/modules/im-chat-kit/src/vue/thread/ImThreadViewport.js +1 -0
  209. package/dist/modules/im-chat-kit/src/vue/thread/message-renderer-registry.js +1 -0
  210. package/dist/modules/im-chat-kit/src/vue/thread/thread-idle-task.js +1 -0
  211. package/dist/modules/im-chat-kit/src/vue/thread/thread-layout-measurements.js +1 -0
  212. package/dist/modules/im-chat-kit/src/vue/thread/thread-read-actions-context.js +1 -0
  213. package/dist/modules/im-chat-kit/src/vue/thread/thread-surface-context.js +1 -0
  214. package/dist/modules/im-chat-kit/src/vue/thread/thread-viewport-context.js +1 -0
  215. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-target-group.js +1 -0
  216. package/dist/modules/im-chat-kit/src/vue/thread/thread-visibility-targets.js +1 -0
  217. package/dist/modules/im-chat-kit/src/vue/thread/use-im-thread-layout-measurement.js +1 -0
  218. package/dist/modules/im-core/src/abort.js +1 -0
  219. package/dist/modules/im-core/src/cache-namespace.js +1 -0
  220. package/dist/modules/im-core/src/connection/backoff.js +1 -0
  221. package/dist/modules/im-core/src/connection/connection-manager.js +1 -0
  222. package/dist/modules/im-core/src/connection/heartbeat-manager.js +1 -0
  223. package/dist/modules/im-core/src/conversation-identity.js +1 -0
  224. package/dist/modules/im-core/src/diagnostics.js +1 -0
  225. package/dist/modules/im-core/src/event-emitter.js +1 -0
  226. package/dist/modules/im-core/src/login/login-handler.js +1 -0
  227. package/dist/modules/im-core/src/mapping/bot-sender.js +1 -0
  228. package/dist/modules/im-core/src/mapping/call-record-body.js +1 -0
  229. package/dist/modules/im-core/src/mapping/channel-message-mapper.js +1 -0
  230. package/dist/modules/im-core/src/mapping/channel-notify-mapper.js +1 -0
  231. package/dist/modules/im-core/src/mapping/channel-offline-mapper.js +1 -0
  232. package/dist/modules/im-core/src/mapping/channel-pinned-message-mapper.js +1 -0
  233. package/dist/modules/im-core/src/mapping/channel-read-position.js +1 -0
  234. package/dist/modules/im-core/src/mapping/contact-body.js +1 -0
  235. package/dist/modules/im-core/src/mapping/content-body.js +1 -0
  236. package/dist/modules/im-core/src/mapping/conversation.js +1 -0
  237. package/dist/modules/im-core/src/mapping/crypto-batch-preparation.js +1 -0
  238. package/dist/modules/im-core/src/mapping/customer-service-body.js +1 -0
  239. package/dist/modules/im-core/src/mapping/customer-service-message-mapper.js +1 -0
  240. package/dist/modules/im-core/src/mapping/decrypt-recovery.js +1 -0
  241. package/dist/modules/im-core/src/mapping/file-body.js +1 -0
  242. package/dist/modules/im-core/src/mapping/files-album-body.js +1 -0
  243. package/dist/modules/im-core/src/mapping/game-body.js +1 -0
  244. package/dist/modules/im-core/src/mapping/gift-body.js +1 -0
  245. package/dist/modules/im-core/src/mapping/group-message-mapper.js +1 -0
  246. package/dist/modules/im-core/src/mapping/group-notify-mapper.js +1 -0
  247. package/dist/modules/im-core/src/mapping/group-offline-mapper.js +1 -0
  248. package/dist/modules/im-core/src/mapping/image-body.js +1 -0
  249. package/dist/modules/im-core/src/mapping/live-room-body.js +1 -0
  250. package/dist/modules/im-core/src/mapping/media-album-body.js +1 -0
  251. package/dist/modules/im-core/src/mapping/merge.js +1 -0
  252. package/dist/modules/im-core/src/mapping/mes-chat-mapper.js +1 -0
  253. package/dist/modules/im-core/src/mapping/message-id.js +1 -0
  254. package/dist/modules/im-core/src/mapping/message-mapper.js +1 -0
  255. package/dist/modules/im-core/src/mapping/messages-by-id.js +1 -0
  256. package/dist/modules/im-core/src/mapping/mini-program-body.js +1 -0
  257. package/dist/modules/im-core/src/mapping/offline-mapper.js +1 -0
  258. package/dist/modules/im-core/src/mapping/pinned-message-mapper.js +1 -0
  259. package/dist/modules/im-core/src/mapping/profile-mapper.js +1 -0
  260. package/dist/modules/im-core/src/mapping/reaction-mapper.js +1 -0
  261. package/dist/modules/im-core/src/mapping/recall-mapper.js +1 -0
  262. package/dist/modules/im-core/src/mapping/red-packet-body.js +1 -0
  263. package/dist/modules/im-core/src/mapping/robot-body.js +1 -0
  264. package/dist/modules/im-core/src/mapping/robot-message-mapper.js +1 -0
  265. package/dist/modules/im-core/src/mapping/search-text.js +1 -0
  266. package/dist/modules/im-core/src/mapping/session-mapper.js +1 -0
  267. package/dist/modules/im-core/src/mapping/signal-offline-mapper.js +1 -0
  268. package/dist/modules/im-core/src/mapping/sort.js +1 -0
  269. package/dist/modules/im-core/src/mapping/sticker-body.js +1 -0
  270. package/dist/modules/im-core/src/mapping/stored-message.js +1 -0
  271. package/dist/modules/im-core/src/mapping/system-event-timeline-policy.js +1 -0
  272. package/dist/modules/im-core/src/mapping/text-segments.js +1 -0
  273. package/dist/modules/im-core/src/mapping/transfer-body.js +1 -0
  274. package/dist/modules/im-core/src/mapping/transfer-status.js +1 -0
  275. package/dist/modules/im-core/src/mapping/unread-divider.js +1 -0
  276. package/dist/modules/im-core/src/mapping/video-body.js +1 -0
  277. package/dist/modules/im-core/src/mapping/voice-body.js +1 -0
  278. package/dist/modules/im-core/src/message-flow/call/direct-call-manager.js +1 -0
  279. package/dist/modules/im-core/src/message-flow/call/direct-call-record.js +1 -0
  280. package/dist/modules/im-core/src/message-flow/call/direct-p2p-call.js +1 -0
  281. package/dist/modules/im-core/src/message-flow/call/group-call-manager.js +1 -0
  282. package/dist/modules/im-core/src/message-flow/call/group-call-record.js +1 -0
  283. package/dist/modules/im-core/src/message-flow/conversation-support.js +1 -0
  284. package/dist/modules/im-core/src/message-flow/edit/edit-frame.js +1 -0
  285. package/dist/modules/im-core/src/message-flow/edit/edit-manager.js +1 -0
  286. package/dist/modules/im-core/src/message-flow/edit/edit-receive-handlers.js +1 -0
  287. package/dist/modules/im-core/src/message-flow/edit/edit-strategy.js +1 -0
  288. package/dist/modules/im-core/src/message-flow/expression/expression-message.js +1 -0
  289. package/dist/modules/im-core/src/message-flow/forward/can-transmit.js +1 -0
  290. package/dist/modules/im-core/src/message-flow/forward/forward-content-spec.js +1 -0
  291. package/dist/modules/im-core/src/message-flow/forward/forward-messages.js +1 -0
  292. package/dist/modules/im-core/src/message-flow/game/game-message.js +1 -0
  293. package/dist/modules/im-core/src/message-flow/gift/gift-message.js +1 -0
  294. package/dist/modules/im-core/src/message-flow/live-room/live-room-message.js +1 -0
  295. package/dist/modules/im-core/src/message-flow/media/media-sender.js +1 -0
  296. package/dist/modules/im-core/src/message-flow/mini-program/mini-program-message.js +1 -0
  297. package/dist/modules/im-core/src/message-flow/reaction/can-react.js +1 -0
  298. package/dist/modules/im-core/src/message-flow/reaction/reaction-manager.js +1 -0
  299. package/dist/modules/im-core/src/message-flow/reaction/reaction-receive-handlers.js +1 -0
  300. package/dist/modules/im-core/src/message-flow/read/channel-read-receive-handlers.js +1 -0
  301. package/dist/modules/im-core/src/message-flow/read/channel-read-strategy.js +1 -0
  302. package/dist/modules/im-core/src/message-flow/read/customer-service-read-strategy.js +1 -0
  303. package/dist/modules/im-core/src/message-flow/read/direct-read-sync.js +1 -0
  304. package/dist/modules/im-core/src/message-flow/read/group-read-strategy.js +1 -0
  305. package/dist/modules/im-core/src/message-flow/read/read-strategy.js +1 -0
  306. package/dist/modules/im-core/src/message-flow/read/robot-read-strategy.js +1 -0
  307. package/dist/modules/im-core/src/message-flow/recall/channel-message-deletion-manager.js +1 -0
  308. package/dist/modules/im-core/src/message-flow/recall/recall-frame.js +1 -0
  309. package/dist/modules/im-core/src/message-flow/recall/recall-manager.js +1 -0
  310. package/dist/modules/im-core/src/message-flow/recall/recall-receive-handlers.js +1 -0
  311. package/dist/modules/im-core/src/message-flow/recall/recall-strategy.js +1 -0
  312. package/dist/modules/im-core/src/message-flow/receive/channel-application-receive-handlers.js +1 -0
  313. package/dist/modules/im-core/src/message-flow/receive/channel-notify-receive-handlers.js +1 -0
  314. package/dist/modules/im-core/src/message-flow/receive/channel-receive-handlers.js +1 -0
  315. package/dist/modules/im-core/src/message-flow/receive/command-handler-registry.js +1 -0
  316. package/dist/modules/im-core/src/message-flow/receive/contact-application-answer-receive-handlers.js +1 -0
  317. package/dist/modules/im-core/src/message-flow/receive/contact-application-receive-handlers.js +1 -0
  318. package/dist/modules/im-core/src/message-flow/receive/direct-receive-handlers.js +1 -0
  319. package/dist/modules/im-core/src/message-flow/receive/friend-action-receive-handlers.js +1 -0
  320. package/dist/modules/im-core/src/message-flow/receive/group-event-receive-handlers.js +1 -0
  321. package/dist/modules/im-core/src/message-flow/receive/group-receive-handlers.js +1 -0
  322. package/dist/modules/im-core/src/message-flow/receive/mes-chat-receive-handlers.js +1 -0
  323. package/dist/modules/im-core/src/message-flow/receive/robot-receive-handlers.js +1 -0
  324. package/dist/modules/im-core/src/message-flow/receive/session-favorite-receive-handlers.js +1 -0
  325. package/dist/modules/im-core/src/message-flow/receive/wallet-notify-receive-handlers.js +1 -0
  326. package/dist/modules/im-core/src/message-flow/send/channel-outgoing-frame.js +1 -0
  327. package/dist/modules/im-core/src/message-flow/send/channel-send-strategy.js +1 -0
  328. package/dist/modules/im-core/src/message-flow/send/direct-outgoing-frame.js +1 -0
  329. package/dist/modules/im-core/src/message-flow/send/direct-send-strategy.js +1 -0
  330. package/dist/modules/im-core/src/message-flow/send/group-outgoing-frame.js +1 -0
  331. package/dist/modules/im-core/src/message-flow/send/group-send-strategy.js +1 -0
  332. package/dist/modules/im-core/src/message-flow/send/robot-outgoing-frame.js +1 -0
  333. package/dist/modules/im-core/src/message-flow/send/robot-send-strategy.js +1 -0
  334. package/dist/modules/im-core/src/message-flow/send/send-strategy-registry.js +1 -0
  335. package/dist/modules/im-core/src/message-flow/transfer/transfer-message.js +1 -0
  336. package/dist/modules/im-core/src/outbox/outbox-manager.js +1 -0
  337. package/dist/modules/im-core/src/packet-router.js +1 -0
  338. package/dist/modules/im-core/src/ports/crypto-port.js +1 -0
  339. package/dist/modules/im-core/src/ports/crypto-task-executor.js +1 -0
  340. package/dist/modules/im-core/src/ports/http-port.js +1 -0
  341. package/dist/modules/im-core/src/ports/media-asset-cache-port.js +1 -0
  342. package/dist/modules/im-core/src/push/push-registration.js +1 -0
  343. package/dist/modules/im-core/src/read/read-reporter.js +1 -0
  344. package/dist/modules/im-core/src/request-tracker.js +1 -0
  345. package/dist/modules/im-core/src/session-favorite-album.js +1 -0
  346. package/dist/modules/im-core/src/session-favorite-files.js +1 -0
  347. package/dist/modules/im-core/src/state/channel-permissions.js +1 -0
  348. package/dist/modules/im-core/src/state/channel-restriction-coordinator.js +1 -0
  349. package/dist/modules/im-core/src/state/domain-state.js +1 -0
  350. package/dist/modules/im-core/src/state/draft-store.js +1 -0
  351. package/dist/modules/im-core/src/state/group-restriction-coordinator.js +1 -0
  352. package/dist/modules/im-core/src/state/local-message-window-read-error.js +1 -0
  353. package/dist/modules/im-core/src/state/message-reactions.js +1 -0
  354. package/dist/modules/im-core/src/state/message-store.js +1 -0
  355. package/dist/modules/im-core/src/state/message-window-store.js +1 -0
  356. package/dist/modules/im-core/src/state/pinned-message-coordinator.js +1 -0
  357. package/dist/modules/im-core/src/state/pinned-message-store.js +1 -0
  358. package/dist/modules/im-core/src/state/read-store.js +1 -0
  359. package/dist/modules/im-core/src/state/session-sort.js +1 -0
  360. package/dist/modules/im-core/src/state/session-store.js +1 -0
  361. package/dist/modules/im-core/src/sync/channel-sync-checkpoint.js +1 -0
  362. package/dist/modules/im-core/src/sync/sync-manager.js +1 -0
  363. package/dist/modules/im-i18n/src/catalog/en-US.js +1 -0
  364. package/dist/modules/im-i18n/src/catalog/index.js +1 -0
  365. package/dist/modules/im-i18n/src/catalog/th-TH.js +1 -0
  366. package/dist/modules/im-i18n/src/catalog/vi-VN.js +1 -0
  367. package/dist/modules/im-i18n/src/catalog/zh-CN.js +1 -0
  368. package/dist/modules/im-i18n/src/catalog/zh-TW.js +1 -0
  369. package/dist/modules/im-i18n/src/create-im-i18n.js +1 -0
  370. package/dist/modules/im-i18n/src/format/failure.js +1 -0
  371. package/dist/modules/im-i18n/src/format/last-message.js +1 -0
  372. package/dist/modules/im-i18n/src/format/media.js +1 -0
  373. package/dist/modules/im-i18n/src/format/mention.js +1 -0
  374. package/dist/modules/im-i18n/src/format/service-text.js +1 -0
  375. package/dist/modules/im-i18n/src/format/system-message.js +1 -0
  376. package/dist/modules/im-i18n/src/internal/duration.js +1 -0
  377. package/dist/modules/im-i18n/src/internal/interpolate.js +1 -0
  378. package/dist/modules/im-i18n/src/locale.js +1 -0
  379. package/dist/modules/im-protocol/src/board-pinned-message.js +1 -0
  380. package/dist/modules/im-protocol/src/frame-codec.js +1 -0
  381. package/dist/modules/im-protocol/src/protobuf/gen/channel_pb.js +1 -0
  382. package/dist/modules/im-protocol/src/protobuf/gen/group_pb.js +1 -0
  383. package/dist/modules/im-protocol/src/protobuf/gen/im.app.msg_pb.js +1 -0
  384. package/dist/modules/im-protocol/src/protobuf/gen/im.channel_pb.js +1 -0
  385. package/dist/modules/im-protocol/src/protobuf/gen/im.group_pb.js +1 -0
  386. package/dist/modules/im-protocol/src/protobuf/gen/im.login_pb.js +1 -0
  387. package/dist/modules/im-protocol/src/protobuf/gen/im.msg_pb.js +1 -0
  388. package/dist/modules/im-protocol/src/protobuf/gen/im.pub_pb.js +1 -0
  389. package/dist/modules/im-protocol/src/protobuf/gen/im.robot_pb.js +1 -0
  390. package/dist/modules/im-protocol/src/protobuf/gen/im.sig_pb.js +1 -0
  391. package/dist/modules/im-protocol/src/protobuf/gen/msg_pb.js +1 -0
  392. package/dist/modules/im-protocol/src/protobuf/registry.js +1 -0
  393. package/dist/modules/im-sdk/src/cache-prefix-migration.js +1 -0
  394. package/dist/modules/im-sdk/src/create-im-client.js +1 -0
  395. package/dist/modules/im-sdk/src/domains/channel.js +1 -0
  396. package/dist/modules/im-sdk/src/domains/contact.js +1 -0
  397. package/dist/modules/im-sdk/src/domains/conversation.js +1 -0
  398. package/dist/modules/im-sdk/src/domains/group.js +1 -0
  399. package/dist/modules/im-sdk/src/domains/media-byte-computation.js +1 -0
  400. package/dist/modules/im-sdk/src/domains/media.js +1 -0
  401. package/dist/modules/im-sdk/src/domains/message.js +1 -0
  402. package/dist/modules/im-sdk/src/domains/pinned-message-source.js +1 -0
  403. package/dist/modules/im-sdk/src/domains/pinned-message.js +1 -0
  404. package/dist/modules/im-sdk/src/domains/session.js +1 -0
  405. package/dist/modules/im-sdk/src/product/applications.js +1 -0
  406. package/dist/modules/im-sdk/src/product/calls.js +1 -0
  407. package/dist/modules/im-sdk/src/product/capabilities.js +1 -0
  408. package/dist/modules/im-sdk/src/product/channel-mention-candidates.js +1 -0
  409. package/dist/modules/im-sdk/src/product/conversation-background.js +1 -0
  410. package/dist/modules/im-sdk/src/product/conversation-entry-unread.js +1 -0
  411. package/dist/modules/im-sdk/src/product/conversation-handle.js +1 -0
  412. package/dist/modules/im-sdk/src/product/conversations.js +1 -0
  413. package/dist/modules/im-sdk/src/product/customer-service.js +1 -0
  414. package/dist/modules/im-sdk/src/product/diagnostic-memory-buffer.js +1 -0
  415. package/dist/modules/im-sdk/src/product/diagnostics.js +1 -0
  416. package/dist/modules/im-sdk/src/product/directory.js +1 -0
  417. package/dist/modules/im-sdk/src/product/draft.js +1 -0
  418. package/dist/modules/im-sdk/src/product/emoji-catalog.js +1 -0
  419. package/dist/modules/im-sdk/src/product/emoji-catalog.json.js +1 -0
  420. package/dist/modules/im-sdk/src/product/events.js +1 -0
  421. package/dist/modules/im-sdk/src/product/expressions.js +1 -0
  422. package/dist/modules/im-sdk/src/product/face-to-face-group.js +1 -0
  423. package/dist/modules/im-sdk/src/product/group-calls.js +1 -0
  424. package/dist/modules/im-sdk/src/product/image-format.js +1 -0
  425. package/dist/modules/im-sdk/src/product/local-data.js +1 -0
  426. package/dist/modules/im-sdk/src/product/media.js +1 -0
  427. package/dist/modules/im-sdk/src/product/mention.js +1 -0
  428. package/dist/modules/im-sdk/src/product/message.js +1 -0
  429. package/dist/modules/im-sdk/src/product/messages-by-id.js +1 -0
  430. package/dist/modules/im-sdk/src/product/outbox.js +1 -0
  431. package/dist/modules/im-sdk/src/product/profiles.js +1 -0
  432. package/dist/modules/im-sdk/src/product/resource-uploader.js +1 -0
  433. package/dist/modules/im-sdk/src/product/robots.js +1 -0
  434. package/dist/modules/im-sdk/src/product/search.js +1 -0
  435. package/dist/modules/im-sdk/src/product/session-favorites.js +1 -0
  436. package/dist/modules/im-sdk/src/product/settings.js +1 -0
  437. package/dist/modules/im-sdk/src/runtime/advanced-message-diagnostics.js +1 -0
  438. package/dist/modules/im-sdk/src/runtime/channel-read-summary-refresh.js +1 -0
  439. package/dist/modules/im-sdk/src/runtime/customer-service-legacy-recovery.js +1 -0
  440. package/dist/modules/im-sdk/src/runtime/decrypt-diagnostics.js +1 -0
  441. package/dist/modules/im-sdk/src/runtime/foreground-work-coordinator.js +1 -0
  442. package/dist/modules/im-sdk/src/runtime/group-history-page-boundary.js +1 -0
  443. package/dist/modules/im-sdk/src/runtime/key-prefetch.js +1 -0
  444. package/dist/modules/im-sdk/src/runtime/local-media-preview.js +1 -0
  445. package/dist/modules/im-sdk/src/runtime/media-cache-maintenance.js +1 -0
  446. package/dist/modules/im-sdk/src/runtime/media-upload-recovery.js +1 -0
  447. package/dist/modules/im-sdk/src/runtime/protobuf-wire-shape.js +1 -0
  448. package/dist/modules/im-sdk/src/runtime/receiving-activity.js +1 -0
  449. package/dist/modules/im-sdk/src/runtime/recent-history-fetcher.js +1 -0
  450. package/dist/modules/im-sdk/src/runtime/recent-history-prefetch.js +1 -0
  451. package/dist/modules/im-sdk/src/runtime/session-http-clients.js +1 -0
  452. package/dist/modules/im-sdk/src/runtime/session-runtime.js +1 -0
  453. package/dist/modules/im-sdk/src/runtime/signal-offline-poller.js +1 -0
  454. package/dist/request-crypto.js +1 -1
  455. package/dist/sdk.d.ts +170 -111
  456. package/dist/sdk.js +1 -1
  457. package/package.json +2 -2
  458. package/dist/browser-GFKMMRZD.js +0 -1
  459. package/dist/browser-RTCHWSQ2.js +0 -2
  460. package/dist/chunk-2U2JMY5V.js +0 -1
  461. package/dist/chunk-B5V2O54N.js +0 -1
  462. package/dist/chunk-I7YY5G76.js +0 -1
  463. package/dist/chunk-IDECJJXC.js +0 -0
  464. package/dist/chunk-PHJQ6QKU.js +0 -2
  465. package/dist/chunk-Q2DEFN53.js +0 -1
  466. package/dist/chunk-SXY56EVC.js +0 -0
  467. package/dist/chunk-TIQ37Q7E.js +0 -2
  468. package/dist/chunk-VMNZGJNM.js +0 -2
  469. package/dist/chunk-WOT6VMZA.js +0 -1
  470. package/dist/chunk-X7ZBIWYF.js +0 -8
package/dist/sdk.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-IDECJJXC.js';export{e as IMAGE_MESSAGE_ACCEPT,n as IM_CHAT_FONT_SCALES,g as IM_DIAGNOSTIC_CATEGORIES,j as IM_EMOJI_CATALOG,c as ImPinnedMessageOperationError,m as buildSessionFavoritePlainBody,d as createFaceToFaceGroupQrPayload,o as createImClient,h as createImConsoleDiagnosticSink,r as createImDiagnosticMemoryBuffer,s as createImResourceUploader,i as createSdkDiagnosticWriter,f as isSupportedImageFile,a as migrateImCachePrefix,k as resolveImEmojiToken,l as resolveSessionFavoriteKindFromMessage}from'./chunk-VMNZGJNM.js';export{bb as MediaTransferError,pb as createVoicePlayer,qb as createVoiceRecordingSession,nb as detectVoiceCapabilities,cb as mediaTransferErrorCodeOf,eb as normalizeMediaUploadCredentials,ob as voiceErrorCodeOf}from'./chunk-X7ZBIWYF.js';export{Oa as EDIT_WINDOW_MS,q as MEDIA_ALBUM_CAPTION_MAX_LENGTH,r as MEDIA_ALBUM_MAX_ITEMS,Ta as REACTION_SUPPORTED_CONTENT_TYPES,Ua as canReactToMessage,Sa as canTransmit,Qa as canTransmitByType,Ra as canTransmitContent,y as classifyStickerImageType,Da as createImTextSearchMatcher,Ba as extractSearchText,Ca as getImTextSearchInitial,Nb as parseSessionFavoriteAlbumItems,Qb as parseSessionFavoriteFileItems,Pa as requiresForwardTypeConfirmation,Wa as resolveChannelAccess,s as resolveMediaAlbumSendContentType,Ob as resolveSessionFavoriteAlbumCaption,Mb as resolveSessionFavoriteAlbumItemPreviewUrl,Ia as resolveTextSegments,$a as sortSessions,ab as sumSessionsUnread}from'./chunk-PHJQ6QKU.js';import'./chunk-WOT6VMZA.js';
1
+ import{EDIT_WINDOW_MS as r}from"./modules/im-core/src/message-flow/edit/edit-manager.js";import{IMAGE_MESSAGE_ACCEPT as o,isSupportedImageFile as s}from"./modules/im-sdk/src/product/image-format.js";import{IM_CHAT_FONT_SCALES as m}from"./modules/im-sdk/src/product/settings.js";import{IM_DIAGNOSTIC_CATEGORIES as e,createImConsoleDiagnosticSink as i,createSdkDiagnosticWriter as c}from"./modules/im-sdk/src/product/diagnostics.js";import{IM_EMOJI_CATALOG as t,resolveImEmojiToken as d}from"./modules/im-sdk/src/product/emoji-catalog.js";import{ImPinnedMessageOperationError as p}from"./modules/im-sdk/src/domains/pinned-message.js";import{MEDIA_ALBUM_CAPTION_MAX_LENGTH as a,MEDIA_ALBUM_MAX_ITEMS as f,resolveMediaAlbumSendContentType as u}from"./modules/im-core/src/mapping/media-album-body.js";import{MediaTransferError as l,mediaTransferErrorCodeOf as j}from"./modules/im-browser/src/media/media-transfer-errors.js";import{REACTION_SUPPORTED_CONTENT_TYPES as n,canReactToMessage as g}from"./modules/im-core/src/message-flow/reaction/can-react.js";import{buildSessionFavoritePlainBody as b,resolveSessionFavoriteKindFromMessage as k}from"./modules/im-sdk/src/product/session-favorites.js";import{canTransmit as v,canTransmitByType as w,canTransmitContent as x,requiresForwardTypeConfirmation as y}from"./modules/im-core/src/message-flow/forward/can-transmit.js";import{classifyStickerImageType as h}from"./modules/im-core/src/mapping/sticker-body.js";import{createFaceToFaceGroupQrPayload as q}from"./modules/im-sdk/src/product/face-to-face-group.js";import{createImClient as z}from"./modules/im-sdk/src/create-im-client.js";import{createImDiagnosticMemoryBuffer as A}from"./modules/im-sdk/src/product/diagnostic-memory-buffer.js";import{createImResourceUploader as B}from"./modules/im-sdk/src/product/resource-uploader.js";import{createImTextSearchMatcher as C,extractSearchText as D,getImTextSearchInitial as E}from"./modules/im-core/src/mapping/search-text.js";import{createVoicePlayer as F}from"./modules/im-browser/src/voice/voice-player.js";import{createVoiceRecordingSession as G}from"./modules/im-browser/src/voice/voice-recorder.js";import{detectVoiceCapabilities as H}from"./modules/im-browser/src/voice/voice-capabilities.js";import{migrateImCachePrefix as I}from"./modules/im-sdk/src/cache-prefix-migration.js";import{normalizeMediaUploadCredentials as J}from"./modules/im-browser/src/media/media-upload-credentials.js";import{parseSessionFavoriteAlbumItems as K,resolveSessionFavoriteAlbumCaption as L,resolveSessionFavoriteAlbumItemPreviewUrl as M}from"./modules/im-core/src/session-favorite-album.js";import{parseSessionFavoriteFileItems as N}from"./modules/im-core/src/session-favorite-files.js";import{resolveChannelAccess as O}from"./modules/im-core/src/state/channel-permissions.js";import{resolveTextSegments as P}from"./modules/im-core/src/mapping/text-segments.js";import{sortSessions as Q}from"./modules/im-core/src/state/session-sort.js";import{sumSessionsUnread as R}from"./modules/im-core/src/state/domain-state.js";import{voiceErrorCodeOf as S}from"./modules/im-browser/src/voice/voice-errors.js";export{r as EDIT_WINDOW_MS,o as IMAGE_MESSAGE_ACCEPT,m as IM_CHAT_FONT_SCALES,e as IM_DIAGNOSTIC_CATEGORIES,t as IM_EMOJI_CATALOG,p as ImPinnedMessageOperationError,a as MEDIA_ALBUM_CAPTION_MAX_LENGTH,f as MEDIA_ALBUM_MAX_ITEMS,l as MediaTransferError,n as REACTION_SUPPORTED_CONTENT_TYPES,b as buildSessionFavoritePlainBody,g as canReactToMessage,v as canTransmit,w as canTransmitByType,x as canTransmitContent,h as classifyStickerImageType,q as createFaceToFaceGroupQrPayload,z as createImClient,i as createImConsoleDiagnosticSink,A as createImDiagnosticMemoryBuffer,B as createImResourceUploader,C as createImTextSearchMatcher,c as createSdkDiagnosticWriter,F as createVoicePlayer,G as createVoiceRecordingSession,H as detectVoiceCapabilities,D as extractSearchText,E as getImTextSearchInitial,s as isSupportedImageFile,j as mediaTransferErrorCodeOf,I as migrateImCachePrefix,J as normalizeMediaUploadCredentials,K as parseSessionFavoriteAlbumItems,N as parseSessionFavoriteFileItems,y as requiresForwardTypeConfirmation,O as resolveChannelAccess,d as resolveImEmojiToken,u as resolveMediaAlbumSendContentType,L as resolveSessionFavoriteAlbumCaption,M as resolveSessionFavoriteAlbumItemPreviewUrl,k as resolveSessionFavoriteKindFromMessage,P as resolveTextSegments,Q as sortSessions,R as sumSessionsUnread,S as voiceErrorCodeOf};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "k2-im",
3
3
  "type": "module",
4
- "version": "0.1.58",
4
+ "version": "0.2.1",
5
5
  "private": false,
6
6
  "license": "MIT",
7
7
  "publishConfig": {
@@ -47,7 +47,7 @@
47
47
  "README.md"
48
48
  ],
49
49
  "scripts": {
50
- "build": "tsup --config tsup.config.mjs && node scripts/bundle-declarations.mjs && node scripts/copy-assets.mjs",
50
+ "build": "node scripts/build-runtime.mjs && node scripts/bundle-declarations.mjs",
51
51
  "typecheck": "tsc -p tsconfig.json --noEmit"
52
52
  },
53
53
  "peerDependencies": {
@@ -1 +0,0 @@
1
- import'./chunk-WOT6VMZA.js';import {loadBrowserCryptoDriver}from'./request-crypto.js';import {parse,isInteger,isSafeNumber}from'lossless-json';import Nt from'axios';var W="b097f885e9577cdb04d9faf91aa08329";function bt(t){return Object.keys(t).sort((r,o)=>r.localeCompare(o,void 0,{numeric:true})).map(r=>r+t[r]).join("")}function J(t,e){let r=bt(e);return t.cryptMd5(W+r+W).toUpperCase()}var Y={core:"/api/h5",wallet:"/api/h5",bi:"/bi/h5",im:""};function Ct(t){return isInteger(t)?isSafeNumber(t)?Number.parseInt(t,10):t:Number.parseFloat(t)}function k(t){return parse(t,void 0,{parseNumber:Ct})}var G="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";function L(t){if(!Number.isSafeInteger(t)||t<0)throw new RangeError("\u968F\u673A\u5B57\u7B26\u4E32\u957F\u5EA6\u5FC5\u987B\u662F\u975E\u8D1F\u6574\u6570");let e=new Uint8Array(16),r="";for(;r.length<t;){globalThis.crypto.getRandomValues(e);for(let o of e)if(!(o>=248)&&(r+=G.charAt(o%G.length),r.length===t))return r}return r}function K(){return L(10)}function X(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Array.isArray(t)?Object.fromEntries(t):{...t}:{}}function Q(t){return t?t instanceof Headers?Object.fromEntries(t.entries()):Object.fromEntries(Object.entries(t).map(([e,r])=>[e,Array.isArray(r)?r.join(", "):String(r)])):{}}function Z(t,e){let r=e.toLowerCase();return Object.entries(t).find(([n])=>n.toLowerCase()===r)?.[1]??null}function x(t,e=2){return t.toString().padStart(e,"0")}function tt(t){return `${t.getFullYear()}-${x(t.getMonth()+1)}-${x(t.getDate())} ${x(t.getHours())}:${x(t.getMinutes())}:${x(t.getSeconds())}`}function ht(t){if(t!=null)return typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"||typeof t=="bigint"?String(t):t&&typeof t=="object"?JSON.stringify(t):String(t)}function et(t){let e={};for(let[r,o]of Object.entries(t)){let n=ht(o);n!==void 0&&(e[r]=n);}return e}function rt(t=16){return L(t)}function ot(t){let e={deviceBrand:"web",deviceInfo:"web",deviceNumber:"",deviceToken:"web"},r=t||(typeof navigator<"u"?navigator.userAgent:"");if(!r)return e;let o=r.match(/(Chrome|Firefox|Safari|Edg)\/([\d.]+)/i);return o?{deviceBrand:"web",deviceInfo:`${o[1]}/${o[2]}`,deviceNumber:o[2]??"",deviceToken:"web"}:{...e,deviceInfo:r}}function nt(t){let e=String(t||"").trim().toLowerCase();return e==="cn"||e.startsWith("zh-cn")?"cn":e==="tc"||e.startsWith("zh-tw")||e.startsWith("zh-hk")?"tc":e==="vn"||e.startsWith("vi")?"vn":e==="th"||e.startsWith("th")?"th":e==="en"||e.startsWith("en")?"en":"cn"}function b(t,e){return {baseUrl:e?.baseUrl??"",prefix:e?.prefix??Y[t]}}function Ot(t){return t.replace(/^\/+|\/+$/g,"")}function st(t,e,r){let o=t.replace(/\/+$/g,""),n=Ot(e),s=r.startsWith("/")?r:`/${r}`,a=n?`/${n}`:"";return `${o}${a}${s}`}function it(t,e){let r=new URLSearchParams(Object.entries(e).map(([p,c])=>[p,String(c)])).toString();if(!r)return t;let o=t.indexOf("#"),n=o>=0?t.slice(0,o):t,s=o>=0?t.slice(o):"",a=n.includes("?")?n.endsWith("?")||n.endsWith("&")?"":"&":"?";return `${n}${a}${r}${s}`}function H(t){return !!t&&t.toLowerCase().includes("application/json")}function q(t){return !!t&&t.toLowerCase().startsWith("text/")}function _(t){return t==null?new Uint8Array:typeof t=="string"?new TextEncoder().encode(t):t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new TextEncoder().encode(JSON.stringify(t))}function B(t){return typeof t=="string"?t:new TextDecoder().decode(_(t))}function at(t){return typeof FormData<"u"&&t instanceof FormData}var _t=new Set(["content-etag","token","req-id"]);function pt(t){let e=t.rawBody,r=e!==null&&typeof e=="object"&&"code"in e?e.code:void 0;return {transportStatus:t.transportStatus,...t.httpStatus===void 0?{}:{httpStatus:t.httpStatus},...typeof r=="number"&&Number.isFinite(r)?{businessCode:r}:{}}}function Et(t){return Number.isInteger(t)&&t>=400&&t<=599?t:502}function St(t,e){return {code:t.status,msg:t.statusText,data:null,time:Math.floor(e/1e3)}}function Dt(t,e){return {code:502,msg:t instanceof Error?t.message:String(t),data:null,time:Math.floor(e/1e3)}}function kt(t){if(!t||typeof t!="object")return false;let e=t;return Number.isFinite(e.code)&&"data"in e}function ct(t,e,r,o){if(H(r))return k(B(e.data));if(q(r))return B(e.data);let n=_(e.data),s=o?t.crypto.decryptAes(n):n,a=new TextDecoder().decode(s);return k(a)}async function ut(t,e,r){if(!t.onDebugRecord)return;let o={...e.meta,response:e.response,...r?{error:{name:r instanceof Error?r.name:void 0,message:r instanceof Error?r.message:String(r)}}:{}};try{await t.onDebugRecord(o);}catch{}}function Bt(t,e,r,o,n){if(r.customUrl)return t;let s=b(o,e.config.targets[o]),a=r.baseUrl??s.baseUrl;return st(a,n,t)}function Mt(t,e){let r=new AbortController,o=setTimeout(()=>r.abort(),t),n=()=>r.abort();return e&&(e.aborted?r.abort():e.addEventListener("abort",n,{once:true})),{signal:r.signal,dispose:()=>{clearTimeout(o),e?.removeEventListener("abort",n);}}}async function Ut(t,e,r,o,n,s,a){let p=Q(e.headers),c=Z(p,"content-type");if(e.status<200||e.status>=300){let i;if(o)i=void 0;else try{i=ct(t,e,c,r);}catch{i=void 0;}return {response:kt(i)?i:St(e,a),meta:{...n,transportStatus:"http_error",httpStatus:e.status,contentType:c,responseHeaders:p,...i!==void 0?{rawBody:i}:{},timings:{totalMs:a-s,upstreamMs:a-s}}}}let l=Date.now();if(o){let i=_(e.data),u=Date.now();return {response:{code:e.status,data:i,time:Math.floor(u/1e3)},meta:{...n,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:p,rawBody:i,timings:{totalMs:u-s,upstreamMs:a-s,parseMs:u-l}}}}try{if(H(c)){let P=ct(t,e,c,!1),f=Date.now();return {response:P,meta:{...n,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:p,rawBody:P,timings:{totalMs:f-s,upstreamMs:a-s,parseMs:f-l}}}}if(q(c)){let P=B(e.data),f=Date.now();return {response:{code:e.status,msg:e.statusText,data:P,time:Math.floor(f/1e3)},meta:{...n,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:p,rawBody:P,timings:{totalMs:f-s,upstreamMs:a-s,parseMs:f-l}}}}let i=_(e.data),u=Date.now(),R=r?t.crypto.decryptAes(i):i,w=Date.now(),y=new TextDecoder().decode(R),h=k(y),E=Date.now();return {response:h,meta:{...n,transportStatus:"success",httpStatus:e.status,contentType:c,responseHeaders:p,rawBody:h,timings:{totalMs:E-s,upstreamMs:a-s,parseMs:E-l,...r?{decryptMs:w-u}:{}}}}}catch(i){let u=Date.now();return {response:{code:Et(e.status),msg:i instanceof Error?i.message:String(i),data:null,time:Math.floor(u/1e3)},meta:{...n,transportStatus:"invalid_response",httpStatus:e.status,contentType:c,responseHeaders:p,timings:{totalMs:u-s,upstreamMs:a-s,parseMs:u-l}}}}}function vt(t){return async function(r,o={}){let n=t.now??(()=>new Date),s=t.randomNonce??K,a=t.randomRequestId??(()=>`req-${crypto.randomUUID().replaceAll("-","")}`),p=t.randomETag??(()=>rt()),c=(o.method??"POST").toUpperCase(),l=o.target??"core",i=b(l,t.config.targets[l]),u=o.prefix??i.prefix??"",R=o.body!=null,w=et(o.data??{}),y=r==="/v1/feedback"&&u==="/bi/h5",h=y?false:o.encrypt??!R,E=y?false:o.sign??!R,P=n(),f=p(),F=a(),mt=o.token??await t.getToken?.()??"",dt=nt(o.locale??t.getLocale?.()),O=t.getBrowserInfo?.()??ot(o.userAgent),S={app_id:"5",os_type:"4",app_version:t.config.appVersion,sign_method:"md5",timestamp:tt(P),nonce:s()},g={...S,...w,nonce:S.nonce},M=S,j=w,C=g;!y&&E&&(g.sign=t.crypto.generateSign("api",t.config.envType,g,f),S.sign=g.sign);let Pt={app_version:t.config.appVersion,"X-ENC-VERSION":t.config.appVersion,"X-APP-TYPE":"h5","Client-type":"2","Content-ETag":f,"brand-id":t.config.brandId,"channel-id":o.channelId||t.config.channelId,device_brand:O.deviceBrand,device_info:O.deviceInfo,device_number:O.deviceNumber,device_token:O.deviceToken,lang:dt,"mch-id":t.config.merchantId,"req-id":F,token:mt},Tt=X(o.headers),At=Object.fromEntries(Object.entries(Tt).filter(([T])=>!_t.has(T.toLowerCase()))),U=r,I,m={...Pt,...At};if(R)I=o.body??void 0,M=null,j=o.data??null,C=o.data??null;else if(y){let T=String(P.getTime()),d={"app-id":"1","app-version":t.config.appVersion,"sys-type":"h5","sys-version":O.deviceNumber,time:T};M=d,m={...m,...d,sign:J(t.crypto,d),"Content-Type":"application/json"},I=JSON.stringify(w),C=w;}else c==="GET"?(U=it(U,g),C=g):h?(I=t.crypto.encryptAes(new TextEncoder().encode(JSON.stringify(g))),m["Content-Type"]=m["Content-Type"]||"application/octet-stream",C=g):(I=JSON.stringify(g),m["Content-Type"]=m["Content-Type"]||"application/json",C=g);at(I)&&delete m["Content-Type"];let v=Bt(U,t,o,l,u),N=Date.now(),$=o.timeoutMs??6e4,z=Mt($,o.signal),V={requestId:F,eTag:f,method:c,upstreamUrl:v,requestHeaders:m,requestCommonParams:M,requestBusinessParams:j,requestParams:C},D;try{let T=await t.transport({url:v,method:c,headers:m,body:I,signal:z.signal,timeoutMs:$,onUploadProgress:o.onUploadProgress}),d=Date.now(),A=await Ut(t,T,h&&!y,o.responseMode==="raw",V,N,d);return o.onResponse&&(D=pt(A.meta),A.observation=D),await ut(t,A),!o.skipBusinessResponseHandler&&t.onBusinessResponse&&await t.onBusinessResponse(A.response,{request:{path:r,method:c,target:l,url:v},options:o}),A}catch(T){let d=Date.now(),A={response:Dt(T,d),...D===void 0?{}:{observation:D},meta:{...V,transportStatus:"network_error",timings:{totalMs:d-N,upstreamMs:d-N}}};return await ut(t,A,T),A}finally{z.dispose();}}}function lt(t){let e=vt(t);return async function(o,n={}){let s=await e(o,n);return await n.onResponse?.(s.observation??pt(s.meta)),s.response}}function ft(t={}){let e={core:b("core",{baseUrl:t.coreBaseUrl||"",...t.targets?.core}),wallet:b("wallet",{baseUrl:t.walletBaseUrl||"",...t.targets?.wallet}),bi:b("bi",{baseUrl:t.biBaseUrl||"",...t.targets?.bi}),im:b("im",{baseUrl:t.imBaseUrl||"",...t.targets?.im})};return {appVersion:t.appVersion||"",brandId:t.brandId||"",merchantId:t.merchantId||"",channelId:t.channelId||"",envType:t.envType||"prod",targets:e}}function gt(t={}){let e=t.axios??Nt.create();return async r=>{let o=await e.request({url:r.url,method:r.method,headers:r.headers,data:r.body,signal:r.signal,timeout:r.timeoutMs,onUploadProgress:r.onUploadProgress?n=>{let s=typeof n.progress=="number"?n.progress:typeof n.total=="number"&&n.total>0?n.loaded/n.total:void 0;r.onUploadProgress?.({loaded:n.loaded,...typeof n.total=="number"?{total:n.total}:{},...typeof s=="number"?{progress:s}:{},event:n});}:void 0,responseType:"arraybuffer",transformResponse:n=>n,validateStatus:()=>true});return {status:o.status,statusText:o.statusText,headers:o.headers,data:o.data}}}async function pe(t={}){let e=await loadBrowserCryptoDriver(),r=ft(t.config);return lt({...t,config:r,crypto:e,transport:t.transport??gt()})}export{pe as createBrowserApiProtocolClient};
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-WOT6VMZA.js';function M(e){return {cryptMd5:e.crypt_md5,generateSign:e.generate_sign,encryptAes:e.encrypt_aes,decryptAes:e.decrypt_aes}}var m={};a$1(m,{__wbg_get_67b2ba62fc30de12:()=>P,__wbg_get_b9b93047fe3cf45b:()=>z,__wbg_length_e2d2a49132c1b256:()=>G,__wbg_ownKeys_3930041068756f1f:()=>Q,__wbg_set_wasm:()=>E,__wbindgen_debug_string:()=>X,__wbindgen_init_externref_table:()=>Y,__wbindgen_is_object:()=>Z,__wbindgen_string_get:()=>v,__wbindgen_string_new:()=>ee,__wbindgen_throw:()=>te,crypt_md5:()=>V,decrypt_aes:()=>J,encrypt_aes:()=>H,generate_sign:()=>K});var c;function E(e){c=e;}function U(e){let t=c.__externref_table_alloc();return c.__wbindgen_export_2.set(t,e),t}function C(e,t){try{return e.apply(this,t)}catch(n){let r=U(n);c.__wbindgen_exn_store(r);}}function S(e){let t=typeof e;if(t=="number"||t=="boolean"||e==null)return `${e}`;if(t=="string")return `"${e}"`;if(t=="symbol"){let o=e.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){let o=e.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(e)){let o=e.length,s="[";o>0&&(s+=S(e[0]));for(let i=1;i<o;i++)s+=`, ${S(e[i])}`;return s+="]",s}let n=/\[object ([^\]]+)\]/.exec(toString.call(e)),r;if(n&&n.length>1)r=n[1];else return toString.call(e);if(r=="Object")try{return `Object(${JSON.stringify(e)})`}catch{return "Object"}return e instanceof Error?`${e.name}: ${e.message}
2
- ${e.stack}`:r}var u=0,g=null;function a(){return (g===null||g.byteLength===0)&&(g=new Uint8Array(c.memory.buffer)),g}var L=typeof TextEncoder>"u"?(0, module.require)("util").TextEncoder:TextEncoder,p=new L("utf-8"),N=typeof p.encodeInto=="function"?function(e,t){return p.encodeInto(e,t)}:function(e,t){let n=p.encode(e);return t.set(n),{read:e.length,written:n.length}};function d(e,t,n){if(n===void 0){let _=p.encode(e),f=t(_.length,1)>>>0;return a().subarray(f,f+_.length).set(_),u=_.length,f}let r=e.length,o=t(r,1)>>>0,s=a(),i=0;for(;i<r;i++){let _=e.charCodeAt(i);if(_>127)break;s[o+i]=_;}if(i!==r){i!==0&&(e=e.slice(i)),o=n(o,r,r=i+e.length*3,1)>>>0;let _=a().subarray(o+i,o+r),f=N(e,_);i+=f.written,o=n(o,r,i,1)>>>0;}return u=i,o}var l=null;function y(){return (l===null||l.buffer.detached===true||l.buffer.detached===void 0&&l.buffer!==c.memory.buffer)&&(l=new DataView(c.memory.buffer)),l}function $(e){return e==null}var R=typeof TextDecoder>"u"?(0, module.require)("util").TextDecoder:TextDecoder,W=new R("utf-8",{ignoreBOM:true,fatal:true});W.decode();function w(e,t){return e=e>>>0,W.decode(a().subarray(e,e+t))}function V(e){let t,n;try{let r=d(e,c.__wbindgen_malloc,c.__wbindgen_realloc),o=u,s=c.crypt_md5(r,o);return t=s[0],n=s[1],w(s[0],s[1])}finally{c.__wbindgen_free(t,n,1);}}function q(e){let t=c.__wbindgen_export_2.get(e);return c.__externref_table_dealloc(e),t}function K(e,t,n,r){let o,s;try{let i=d(e,c.__wbindgen_malloc,c.__wbindgen_realloc),_=u,f=d(t,c.__wbindgen_malloc,c.__wbindgen_realloc),I=u,k=$(r)?0:d(r,c.__wbindgen_malloc,c.__wbindgen_realloc),F=u,b=c.generate_sign(i,_,f,I,n,k,F),T=b[0],D=b[1];if(b[3])throw T=0,D=0,q(b[2]);return o=T,s=D,w(T,D)}finally{c.__wbindgen_free(o,s,1);}}function j(e,t){let n=t(e.length*1,1)>>>0;return a().set(e,n/1),u=e.length,n}function B(e,t){return e=e>>>0,a().subarray(e/1,e/1+t)}function H(e){let t=j(e,c.__wbindgen_malloc),n=u,r=c.encrypt_aes(t,n),o=B(r[0],r[1]).slice();return c.__wbindgen_free(r[0],r[1]*1,1),o}function J(e){let t=j(e,c.__wbindgen_malloc),n=u,r=c.decrypt_aes(t,n),o=B(r[0],r[1]).slice();return c.__wbindgen_free(r[0],r[1]*1,1),o}function P(){return C((e,t)=>Reflect.get(e,t),arguments)}function z(e,t){return e[t>>>0]}function G(e){return e.length}function Q(){return C(e=>Reflect.ownKeys(e),arguments)}function X(e,t){let n=S(t),r=d(n,c.__wbindgen_malloc,c.__wbindgen_realloc),o=u;y().setInt32(e+4,o,true),y().setInt32(e+0,r,true);}function Y(){let e=c.__wbindgen_export_2,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,true),e.set(t+3,false);}function Z(e){let t=e;return typeof t=="object"&&t!==null}function v(e,t){let n=t,r=typeof n=="string"?n:void 0,o=$(r)?0:d(r,c.__wbindgen_malloc,c.__wbindgen_realloc),s=u;y().setInt32(e+4,s,true),y().setInt32(e+0,o,true);}function ee(e,t){return w(e,t)}function te(e,t){throw new Error(w(e,t))}var h=null,x=null;async function ne(){let e=await fetch(new URL("./vendor/crypto/index_bg.wasm",import.meta.url));if(!e.ok)throw new Error(`crypto wasm \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${e.status}`);let t={"./index_bg.js":m},n;if(typeof WebAssembly.instantiateStreaming=="function")try{n=await WebAssembly.instantiateStreaming(e.clone(),t);}catch{n=await WebAssembly.instantiate(await e.arrayBuffer(),t);}else n=await WebAssembly.instantiate(await e.arrayBuffer(),t);return E(n.instance.exports),n.instance.exports.__wbindgen_start(),M(m)}async function re(){return x||(x=ne().catch(e=>{throw x=null,e})),h=await x,h}await re();function A(){if(!h)throw new Error("crypto driver \u5C1A\u672A\u521D\u59CB\u5316\uFF0C\u8BF7\u5148 await loadBrowserCryptoDriver()");return h}function ie(e){return A().cryptMd5(e)}function se(e,t,n,r=null){return A().generateSign(e,t,n,r)}function _e(e){return A().encryptAes(e)}function ue(e){return A().decryptAes(e)}export{ie as cryptMd5,ue as decryptAes,_e as encryptAes,se as generateSign,re as loadBrowserCryptoDriver};
@@ -1 +0,0 @@
1
- import {j as j$1,p,b as b$2,i,l,f,q as q$1}from'./chunk-VMNZGJNM.js';import {lb,kb}from'./chunk-X7ZBIWYF.js';import {Sa,b as b$1,c,Oa,Ua,Wa,q,Ra}from'./chunk-PHJQ6QKU.js';import {a}from'./chunk-WOT6VMZA.js';var kn=14,_n="game:rps",Nn="game:dice";function nn(e){if(e.stableKey.length===0||e.stableKey.trim()!==e.stableKey)throw new TypeError("Emoji recent item \u9700\u8981\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684 stableKey")}function Dn(e,t){nn(t);let n=new Set([t.stableKey]),r=[t];for(let o of e)if(nn(o),!n.has(o.stableKey)&&(n.add(o.stableKey),r.push(o),r.length===14))break;return Object.freeze(r)}var tn=["0x1f600","0x1f603","0x1f604","0x1f601","0x1f606","0x1f605","0x1f923","0x1f602","0x1f642","0x1f643","0x1f609","0x1f60a","0x1f607","0x1f970","0x1f60d","0x1f929","0x1f618","0x1f617","0x1f61a","0x1f619","0x1f60b","0x1f61b","0x1f61c","0x1f92a","0x1f61d","0x1f911","0x1f917","0x1f92d","0x1f92b","0x1f914","0x1f910","0x1f928","0x1f610","0x1f611","0x1f636","0x1f60f","0x1f612","0x1f644","0x1f62c","0x1f925","0x1f60c","0x1f614","0x1f62a","0x1f924","0x1f634","0x1f637","0x1f912","0x1f915","0x1f922","0x1f92e","0x1f927","0x1f975","0x1f976","0x1f974","0x1f635","0x1f92f","0x1f920","0x1f973","0x1f60e","0x1f913","0x1f9d0","0x1f615","0x1f61f","0x1f641","0x1f62e","0x1f62f","0x1f632","0x1f633","0x1f97a","0x1f626","0x1f627","0x1f628","0x1f630","0x1f625","0x1f622","0x1f62d","0x1f631","0x1f616","0x1f623","0x1f61e","0x1f613","0x1f629","0x1f62b","0x1f971","0x1f624","0x1f621","0x1f620","0x1f92c","0x1f608","0x1f47f","0x1f480","0x1f4a9","0x1f921","0x1f479","0x1f47a","0x1f47b","0x1f47d","0x1f47e","0x1f916","0x1f63a","0x1f638","0x1f639","0x1f63b","0x1f63c","0x1f63d","0x1f640","0x1f63f","0x1f63e","0x1f648","0x1f649","0x1f64a","0x1f48c","0x1f498","0x1f49d","0x1f496","0x1f497","0x1f493","0x1f49e","0x1f495","0x1f49f","0x1f494","0x1f9e1","0x1f49b","0x1f49a","0x1f499","0x1f49c","0x1f90e","0x1f5a4","0x1f90d","0x1f48b","0x1f4af","0x1f4a2","0x1f4a5","0x1f4ab","0x1f4a6","0x1f4a8","0x1f4ac","0x1f4ad","0x1f4a4","0x1f44b","0x1f91a","0x1f590","0x270b","0x1f596","0x1f44c","0x1f90f","0x270c","0x1f91e","0x1f91f","0x1f918","0x1f919","0x1f448","0x1f449","0x1f446","0x1f595","0x1f447","0x1f44d","0x1f44e","0x270a","0x1f44a","0x1f91b","0x1f91c","0x1f44f","0x1f64c","0x1f450","0x1f932","0x1f91d","0x1f64f","0x270d","0x1f485","0x1f933","0x1f4aa","0x1f9be","0x1f9bf","0x1f9b5","0x1f9b6","0x1f442","0x1f9bb","0x1f443","0x1f9e0","0x1f9b7","0x1f9b4","0x1f440","0x1f445","0x1f444","0x1f435","0x1f9a7","0x1f436","0x1f98a","0x1f99d","0x1f431","0x1f981","0x1f42f","0x1f42e","0x1f437","0x1f43d","0x1f42d","0x1f439","0x1f430","0x1f43b","0x1f428","0x1f43c","0x1f9a5","0x1f983","0x1f414","0x1f423","0x1f425","0x1f427","0x1f985","0x1f986","0x1f989","0x1f9a9","0x1f99a","0x1f99c","0x1f438","0x1f433","0x1f980","0x1f490","0x1f338","0x1f4ae","0x1f339","0x1f940","0x1f33a","0x1f33b","0x1f340","0x1f341","0x1f342","0x1f343","0x1f9c0","0x1f969","0x1f354","0x1f35f","0x1f355","0x1f32d","0x1f96a","0x1f32e","0x1f32f","0x1f365","0x1f36b","0x2615","0x1f37a","0x1f943","0x1f30f","0x1f9f1","0x1f6d1","0x1f6a7","0x2693","0x1f680","0x23f3","0x231a","0x23f0","0x1f553","0x1f319","0x1f31a","0x1f31b","0x1f31c","0x1f31d","0x1f31e","0x1fa90","0x2b50","0x1f31f","0x1f320","0x1f30c","0x26c5","0x1f300","0x1f308","0x1f302","0x2614","0x26a1","0x26c4","0x1f525","0x1f4a7","0x1f30a","0x1f383","0x1f384","0x1f386","0x1f387","0x1f9e8","0x2728","0x1f388","0x1f389","0x1f38a","0x1f38b","0x1f38d","0x1f38e","0x1f38f","0x1f390","0x1f391","0x1f9e7","0x1f380","0x1f381","0x1f3ab","0x1f3c6","0x1f3c5","0x1f947","0x1f948","0x1f949","0x1f3c1","0x1f6a9","0x1f38c","0x1f3f4"];var Gn=1114111,Bn=55296,Ln=57343,rn=65039,jn="0123456789abcdef";function Fn(e,t){if(!e.startsWith("0x")||e.length<=2)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let n=e.slice(2);for(let o of n)if(!jn.includes(o))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${t}`);let r=Number.parseInt(n,16);if(!Number.isSafeInteger(r)||r>Gn||r>=Bn&&r<=Ln)throw new RangeError(`Unicode emoji code point \u8D8A\u754C: ${t}`);return r}function me(e){if(e.length===0||e.trim()!==e)throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);let t=e.split(" ");if(t.some(n=>n.length===0))throw new TypeError(`\u975E\u6CD5 Unicode emoji code: ${e}`);return Object.freeze(t.map(n=>Fn(n,e)))}function Hn(e){return String.fromCodePoint(...me(e))}function Re(e){return e.map(t=>`0x${t.toString(16)}`).join(" ")}function Un(e){let t=me(e),n=Re(t);if(n!==e)throw new TypeError(`Unicode emoji code \u5FC5\u987B\u4F7F\u7528 canonical \u5C0F\u5199\u683C\u5F0F: ${e}`);return Object.freeze({stableKey:`unicode:${n}`,code:e,codePoints:t,text:String.fromCodePoint(...t),kind:"unicode"})}var we=Object.freeze(tn.map(Un)),Q=new Map,ee=new Map;for(let e of we){if(Q.has(e.code)||ee.has(e.text))throw new Error(`Unicode emoji \u76EE\u5F55\u5B58\u5728\u91CD\u590D\u9879: ${e.code}`);Q.set(e.code,e),ee.set(e.text,e);}for(let e of we){let n=e.codePoints.at(-1)===rn?e.codePoints.slice(0,-1):[...e.codePoints,rn],r=Re(n),o=String.fromCodePoint(...n);Q.has(r)||Q.set(r,e),ee.has(o)||ee.set(o,e);}function Vn(e){if(e.startsWith("0x")){let t=Re(me(e));return Q.get(t)}return ee.get(e)}var on=["[100\u5206]","[VS]","[\u4E0A]","[\u4E0B]","[\u4E0D\u542C]","[\u4E0D\u770B]","[\u4E0D\u9AD8\u5174]","[\u4EB2\u543B]","[\u4F1E]","[\u51FB\u638C]","[\u5357\u74DC\u5934]","[\u53F3]","[\u54C8\u54C8]","[\u54E6]","[\u5564\u9152]","[\u55B7\u568F]","[\u5723\u8BDE\u6811]","[\u5929\u4F7F\u7B11]","[\u5956\u676F]","[\u5BB3\u6015]","[\u5DE6]","[\u5E73\u9759]","[\u5F3A\u58EE]","[\u5F69\u8679]","[\u5F97\u610F]","[\u5FAE\u7B11]","[\u5FC3\u7D2F]","[\u5FC3\u8DF3]","[\u601D\u8003]","[\u6076\u9B54\u6012]","[\u6076\u9B54\u7B11]","[\u6210\u957F]","[\u6293\u72C2]","[\u62F3\u5934]","[\u6325\u624B]","[\u63E1\u62F3]","[\u65E0]","[\u661F\u661F]","[\u661F\u661F\u773C]","[\u6708\u997C]","[\u6C14\u6124]","[\u6EE1\u8DB3]","[\u706B]","[\u718A\u732B]","[\u7231\u4F60]","[\u725B]","[\u72D7]","[\u732B]","[\u7591\u60D1]","[\u7687\u51A0]","[\u778C\u7761]","[\u795D]","[\u79D8]","[\u7BEE\u7403]","[\u7F8E\u5473]","[\u836F]","[\u8DB3\u7403]","[\u95EA\u7535]","[\u95EA\u8000\u7684\u5FC3]","[\u96EA\u82B1]","[\u997A\u5B50]","[\u9A6C]","[\u9B3C]","[\u9E21]","[\u9F13\u638C]","[\u9F20]","[ALLIN]","[\u4F24\u5FC3]","[\u4FBF\u4FBF]","[\u5077\u7B11]","[\u50B2\u6162]","[\u50BB\u7B11]","[\u5192\u6C57]","[\u51CB\u96F6]","[\u53D1\u5446]","[\u53EF\u601C]","[\u53F9\u6C14]","[\u5403\u60CA]","[\u5403\u74DC]","[\u5408\u638C]","[\u5446\u6EDE]","[\u5455\u5410]","[\u5492\u9A82]","[\u5496\u5561]","[\u54C7]","[\u559C\u7231]","[\u5634\u5507]","[\u563F\u54C8]","[\u56F0]","[\u56F0\u4F4F]","[\u5927\u54ED]","[\u5927\u7B11]","[\u592A\u9633]","[\u5931\u671B]","[\u594B\u6597]","[\u5978\u7B11]","[\u59D4\u5C48]","[\u5BB3\u7F9E]","[\u5C2C\u7B11]","[\u5E72\u676F]","[\u5E86\u795D]","[\u5FC3\u788E]","[\u6050\u60E7]","[\u60CA\u8BB6]","[\u6109\u60A6]","[\u611F\u5192]","[\u6124\u6012]","[\u61CA\u607C]","[\u620F\u5F04]","[\u6253\u51FB]","[\u62A0\u9F3B]","[\u62B1\u62F3]","[\u62C5\u5FC3]","[\u62DC\u62DC]","[\u62E5\u62B1]","[\u6342\u8138]","[\u63E1\u624B]","[\u642C\u7816]","[\u6536\u5230]","[\u6536\u5272]","[\u65B9\u5757]","[\u65E0\u8BED]","[\u6655]","[\u6708\u4EAE]","[\u673A\u667A]","[\u6C57]","[\u6D77\u8482]","[\u70B8\u5F39]","[\u70DF\u82B1]","[\u718A\u54ED\u4E86]","[\u7206\u7AF9]","[\u7231\u5FC3]","[\u725B\u5E02]","[\u72D7\u5934]","[\u732A]","[\u73AB\u7470]","[\u751F\u65E5\u86CB\u7CD5]","[\u767D\u773C]","[\u76B1\u7709]","[\u770B\u6DA8]","[\u770B\u8DCC]","[\u7728\u773C]","[\u7761\u89C9]","[\u793C\u7269]","[\u793E\u4F1A]","[\u798F]","[\u7B11\u54ED]","[\u7CD6\u679C]","[\u7EA2\u5305]","[\u8036]","[\u8138\u7EA2]","[\u82E6\u6DA9]","[\u83DC\u5200]","[\u8870]","[\u88C2\u5F00]","[\u8981\u54ED\u4E86]","[\u8C03\u76AE]","[\u8D5E]","[\u8E29]","[\u9119\u89C6]","[\u9177]","[\u91D1\u94B1]","[\u9501\u7BB1]","[\u957F\u8349]","[\u95EE\u53F7]","[\u95F9\u5267]","[\u9634\u9669]","[\u964D\u843D\u4F1E]","[\u96BE\u8FC7]","[\u98DE\u543B]","[\u9AB7\u9AC5]","[\u9EBB\u5C06]"];var an=j$1,zn=new Set(on),Wn="/images/emoji/v1",$n=(()=>{let e=new Map;for(let t of an)for(let n of t.tokens)e.set(n,t);return e})();function Xn(e){return $n.get(e)}function Yn(e,t=Wn){return `${t}/${e.file}`}var Jn=/\[[^[\]]{1,20}\]/g,qn=(()=>{let e=new Map;for(let t of an)e.set(t.code,t);return e})();function Cr(e,t){let n=qn.get(e);return n===void 0?void 0:Yn(n,t)}var Zn=/\[[^[\]]{1,20}\]/;function Mr(e){return Zn.test(e)}function Qn(){return e=>{let t=[];for(let n of e.matchAll(Jn)){let r=Xn(n[0]);if(n.index!==void 0){if(r!==void 0){t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"emoji",text:n[0],code:r.code}});continue}zn.has(n[0])&&t.push({start:n.index,end:n.index+n[0].length-1,segment:{kind:"legacy-emoji-placeholder",text:n[0]}});}}return t}}var et=Qn();function br(e){if(e.contentType!=="text"||e.encryption.decryptFailed===true||e.mention!==void 0)return null;let t=e.body.text;if(t===void 0||t==="")return null;let n=et(t);if(n.length===0)return null;let r=0,o=[];for(let a of n){if(a.start!==r||a.segment.kind!=="emoji"&&a.segment.kind!=="legacy-emoji-placeholder")return null;o.push(a.segment),r=a.end+1;}return r!==t.length?null:Object.freeze({segments:Object.freeze(o),count:o.length})}function Sr(e){if(!Number.isFinite(e)||e<1)return "";let t=Math.floor(e);return t>1e4?"10k+":t>=1e3?`${Math.floor(t/1e3)}k`:String(t)}function Pr(e){return e.reduce((t,n)=>t+ +(!n.muted&&n.unreadCount>0),0)}function Tr(e){return e.source!=="live"?{show:false,reason:"not-live"}:e.permission===null?{show:false,reason:"unsupported"}:e.permission!=="granted"?{show:false,reason:"permission-denied"}:e.visibilityState==="visible"?{show:false,reason:"page-visible"}:e.accountId!==""&&e.senderId===e.accountId?{show:false,reason:"self-message"}:e.contentType==="system"?{show:false,reason:"system-message"}:e.muted?{show:false,reason:"conversation-muted"}:e.globallyEnabled?{show:true}:{show:false,reason:"globally-disabled"}}function sn(e){let t=new Map,n=new Set,r=e.revokeObjectUrl??(v=>URL.revokeObjectURL(v)),o=e.now??Date.now,a=e.maxIdleMs;if((!Number.isFinite(a)||a<=0))throw new RangeError("maxIdleMs must be a finite positive number");let s,i;function c(){s!==void 0&&clearTimeout(s),s=void 0,i=void 0;}function l(){let v=Number.POSITIVE_INFINITY;for(let y of t.values())y.evictable&&y.leases===0&&(v=Math.min(v,y.lastAccessedAt+a));s!==void 0&&i===v||(c(),Number.isFinite(v)&&(i=v,s=setTimeout(()=>{s=void 0,i=void 0,p();},Math.min(2147483647,Math.max(0,v-o()))),s.unref?.()));}function f(v){v.revoked||(v.revoked=true,n.delete(v),r(v.url));}function g(v){t.get(v.key)===v&&t.delete(v.key),v.retired=true,v.leases===0?f(v):n.add(v);}function m(){let v=0,y=0;for(let P of t.values())P.evictable&&(v+=1,y+=P.byteSize+(P.videoPoster?.size??0));return {entries:v,bytes:y}}function C(){let v=m();for(;v.entries>e.maxCachedEntries||v.bytes>e.maxCachedBytes;){let y;for(let P of t.values())if(P.evictable&&P.leases===0){y=P;break}if(y===void 0)return;g(y),v=m();}}function p(){if(a!==void 0){let v=o();for(let y of t.values())y.evictable&&y.leases===0&&v-y.lastAccessedAt>=a&&g(y);}C(),l();}function d(v,y,P){let N=P.byteSize??0,K=Number.isFinite(N)&&N>0?Math.floor(N):0,T=t.get(v);if(T?.url===y){T.byteSize=K,T.videoPoster=P.videoPoster,T.evictable=P.evictable,T.lastAccessedAt=o(),t.delete(v),t.set(v,T),p();return}T!==void 0&&g(T),t.set(v,{key:v,url:y,byteSize:K,videoPoster:P.videoPoster,evictable:P.evictable,leases:0,retired:false,revoked:false,lastAccessedAt:o()}),p();}function M(v,y){p();let P=t.get(v);if(P===void 0)return false;let N=t.get(y);return N!==void 0&&N!==P&&g(N),t.delete(v),P.key=y,t.set(y,P),l(),true}function S(v,y){p();let P=t.get(v);return P===void 0?false:(y!==void 0&&Number.isFinite(y)&&y>0&&(P.byteSize=Math.floor(y)),P.evictable=true,P.lastAccessedAt=o(),t.delete(v),t.set(v,P),p(),t.get(v)===P)}function A(v){p();let y=t.get(v);if(y===void 0||y.revoked)return;y.leases+=1,y.lastAccessedAt=o(),t.delete(v),t.set(v,y),l();let P=false;return Object.freeze({url:y.url,...y.videoPoster===void 0?{}:{videoPoster:y.videoPoster},release(){P||(P=true,y.leases=Math.max(0,y.leases-1),y.leases===0&&!y.revoked&&(y.lastAccessedAt=o()),y.retired&&y.leases===0&&f(y),p());}})}function x(v){let y=t.get(v);y!==void 0&&g(y),p();}function k(v){for(let y of [...t.keys()])y.startsWith(v)&&x(y);}function B(){c();let v=[...t.values()];t.clear();for(let y of [...v,...n])f(y);n.clear();}function ve(){for(let v of t.values())v.evictable&&g(v);p();}return {register:d,move:M,makeEvictable:S,acquire:A,has:v=>(p(),t.has(v)&&!t.get(v).revoked),remove:x,removeByPrefix:k,clearAll:B,clearCached:ve,prune:p,getStats:()=>(p(),Object.freeze({activeEntries:t.size,retiredEntries:n.size,...m()}))}}var nt=20;function tt(){if(typeof navigator>"u")return {maxCachedEntries:6,maxCachedBytes:512*1024*1024};let e=navigator,t=e.deviceMemory??4,n=/Android|iPhone|iPad|Mobile/i.test(e.userAgent);return e.connection?.saveData===true||t<=2||navigator.hardwareConcurrency<=2?{maxCachedEntries:2,maxCachedBytes:128*1024*1024}:n?{maxCachedEntries:4,maxCachedBytes:256*1024*1024}:t>=8&&navigator.hardwareConcurrency>=8?{maxCachedEntries:9,maxCachedBytes:1024*1024*1024}:{maxCachedEntries:6,maxCachedBytes:512*1024*1024}}function ne(e){let t=`message\0${e.conversationType}\0${e.conversationId}\0${e.messageId}`;return e.itemIndex===void 0?t:`${t}\0${e.itemIndex}`}function rt(e){return `message\0${e.conversationType}\0${e.conversationId}\0`}function Ae(e){return `source\0${e}`}function cn(e){if(!(typeof e!="object"||e===null||!("code"in e))){if(e.code==="IM_CONNECTION_OWNED_ELSEWHERE")return "lifecycle.connectionOccupied";if(e.code==="IM_CONNECTION_OWNERSHIP_UNAVAILABLE")return "lifecycle.connectionCoordinationUnavailable"}}function Zr(e){let t=b$1(e.cachePrefix),n=c(t),r=e.createClient??p,o=e.createStorage??(u=>typeof indexedDB>"u"?void 0:lb({...u,mediaAssetCache:{strategies:b$2()}})),a=e.createProfile,s=e.deleteStorage??(u=>kb(u.accountId,{namespaceFactory:u.namespaceFactory})),i$1=null,c$1=null,l=false,f,g,m,C=0,p$1,d=false,M,S=false,A,x={wsUrl:"",userId:"",token:"",deviceToken:"",channelType:"0",cmHttpBaseUrl:""},k=i(e.debug,()=>({generation:C,...x.userId===""?{}:{accountId:x.userId}}));k.record("debug","chat-kit","session","runtime-created");function B(){return {generation:C,...x.userId===""?{}:{accountId:x.userId}}}function ve(){x.userId="",x.token="",x.deviceToken="",x.channelType="0";}let v={},y={},P={},N=new Map,K=new WeakMap,T=sn({...tt(),maxIdleMs:10080*60*1e3}),ce=new Set,Y=new Set,de=new Set;function J(){for(let u of de)u();}function ye(u=false){let h=B(),I=i$1,E=g!==void 0||m!==void 0;g?.(),g=void 0,m?.(),m=void 0,E&&k.record("debug","chat-kit","session","client-subscriptions-released",()=>h),u||I?.connection.disconnect("im-chat-auth-changed"),i$1=null,c$1=null;let R=f;f=void 0;let D;try{D=I!==null&&p$1?.uploadRecovery?.enabled&&!u?I.logout({localData:"preserve"}).finally(()=>I.dispose()):Promise.resolve(I!==null?I.dispose():R?.close());}catch(z){D=Promise.reject(z);}let L=D.catch(z=>{S=true,A=z,k.record("error","chat-kit","session","previous-client-dispose-failed",()=>({...h,error:{message:"\u65E7 IM Client \u6E05\u7406\u5931\u8D25\uFF0C\u5DF2\u963B\u6B62\u65B0\u8D26\u53F7\u51C6\u5907",data:z}}));});M=M===void 0?L:Promise.all([M,L]).then(()=>{}),C+=1,v={},y={},P={},Ce(),N.clear(),J();}function le(){if(d)throw new Error("ChatRuntime \u5DF2 dispose\uFF0C\u4E0D\u80FD\u521B\u5EFA/\u590D\u7528 client");if(i$1===null){let h=o({namespaceFactory:n});f=h;let I=p$1?.getCoreClient(),E=p$1?.getCoreApi?.();l=I!==void 0||E!==void 0;let R=p$1?.clientType??2,D=C,L=p$1?.onRequestError,z=I&&a?a({client:I,clientType:R,storage:f}):void 0,An={authProvider:{getLoginContext:async()=>{let _=p$1?.getSession?.(),G=p$1?.getSession!==void 0,W=(G?_?.userId:x.userId)?.trim()??"",Xe=(G?_?.token:x.token)?.trim()??"";return W===""||Xe===""||W!==x.userId?null:{userId:W,token:Xe,deviceToken:x.deviceToken,clientType:R,channelType:Number(x.channelType)}}},endpointProvider:{getEndpoints:async()=>[{url:x.wsUrl}],getCmHttpBaseUrl:async()=>x.cmHttpBaseUrl},cache:{prefix:t},adapters:{namespaceFactory:n,storage:{create:_=>{if(_.namespaceFactory!==n)throw new Error("ChatRuntime storage namespace factory \u4E0D\u4E00\u81F4");return h},purgeCurrentAccount:_=>s(_)}},profile:z,media:p$1?.getMediaConfig(),uploadRecovery:p$1?.uploadRecovery,expressions:p$1?.getExpressionOptions?.(),coreApi:E,coreClient:I,onRequestError:L===void 0?void 0:_=>!d&&C===D?L(_):void 0,debug:e.debug},$e=r(An),Me=$e.events;if(Me===void 0&&Y.size>0)throw Promise.resolve(f?.close?.()).catch(()=>{}),f=void 0,new Error("IM client \u7F3A\u5C11\u4EA7\u54C1\u4E8B\u4EF6 API");i$1=$e,g=i$1.connection.subscribe(_=>{if((_.type==="message:updated"||_.type==="message:received")&&_.message.status==="failed"&&_.message.failure?.displayCode==="media.uploadInterrupted"&&_.message.failure.retryable===false){let G=_.message,W=ne({conversationType:G.conversationType,conversationId:G.conversationId,messageId:G.id});T.remove(W),T.removeByPrefix(`${W}\0`);}for(let G of ce)G(_);}),Me!==void 0&&(m=Me.subscribe(_=>{for(let G of Y)G(_);})),k.record("debug","chat-kit","session","client-subscriptions-established",()=>B());}return i$1}function We(){let u=le();return c$1??=q$1(u,{coreApiAvailable:l}),c$1}function Ce(){K=new WeakMap,T.clearAll();}function wn(u){T.removeByPrefix(rt(u));}return {getClient:()=>i$1,getProductClient:()=>i$1===null?null:We(),ensureProductClient:We,getConnectionState:()=>i$1?.connection.state??"idle",getGeneration:()=>C,getCredentials:()=>x,getMediaConfig:()=>p$1?.getMediaConfig(),getDiagnostics:()=>k,configureHost(u){p$1=u;},applySession(u,h,I){let E=u?.userId??"",R=u?.token??"",D=i$1!==null&&(x.userId!==E||x.token!==R);return D&&ye(x.userId===E&&R!==""),x.wsUrl=h.wsUrl,x.cmHttpBaseUrl=h.cmHttpBaseUrl,x.userId=E,x.token=R,x.deviceToken=I,x.channelType="0",k.record("info","chat-kit","session","session-applied",()=>({data:{accountId:E,hasToken:R!=="",didReset:D}})),{didReset:D,hasToken:R!==""}},ensureClient:le,async prepare(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(x.userId==="")return {ok:false,errorKey:"lifecycle.missingLoginState"};let u=Date.now(),h=B();k.record("info","chat-kit","session","prepare-start",()=>h);try{let I=x.userId,E=x.token;if(M!==void 0&&await M,d||C!==h.generation||x.userId!==I||x.token!==E)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 prepare");if(S)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:A});return await le().connection.prepare(),k.record("info","chat-kit","session","prepare-complete",()=>({...h,durationMs:Date.now()-u})),{ok:!0}}catch(I){k.record("error","chat-kit","session","prepare-failed",()=>({...h,durationMs:Date.now()-u,error:{message:"ChatRuntime prepare \u5931\u8D25",data:I}}));let E=cn(I);return E!==void 0?{ok:false,errorKey:E}:{ok:false,errorKey:"lifecycle.prepareFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},async connect(){if(d)return {ok:false,errorKey:"lifecycle.disposed"};if(x.wsUrl===""||x.userId===""||x.token==="")return {ok:false,errorKey:"lifecycle.missingConnectParams"};let u=Date.now(),h=B();k.record("info","chat-kit","connection","connect-start",()=>h);try{let I=x.userId,E=x.token;if(M!==void 0&&await M,d||C!==h.generation||x.userId!==I||x.token!==E)throw new Error("IM session \u5DF2\u53D8\u5316\uFF0C\u53D6\u6D88\u65E7 connect");if(S)throw new Error("\u65E7 IM Client \u672A\u80FD\u5B8C\u6210\u6E05\u7406\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5",{cause:A});return await le().connection.connect(),k.record("info","chat-kit","connection","connect-complete",()=>({...h,durationMs:Date.now()-u})),{ok:!0}}catch(I){k.record("error","chat-kit","connection","connect-failed",()=>({...h,durationMs:Date.now()-u,error:{message:"ChatRuntime connect \u5931\u8D25",data:I}}));let E=cn(I);return E!==void 0?{ok:false,errorKey:E}:{ok:false,errorKey:"lifecycle.connectFailed",errorParams:{reason:I instanceof Error?I.message:String(I)}}}},disconnect(){let u=B();k.record("info","chat-kit","connection","disconnect",()=>u),i$1?.connection.disconnect("im-chat-manual");},async logout(u){let h=Date.now(),I=B();k.record("info","chat-kit","session","logout-start",()=>({...I,data:u}));let E=i$1,R,D;if(E!==null)try{D=E.logout(u);}catch(L){R=L;}if(ve(),C+=1,D!==void 0)try{await D;}catch(L){R=L;}if(v={},y={},P={},Ce(),N.clear(),J(),k.record(R===void 0?"info":"error","chat-kit","session",R===void 0?"logout-complete":"logout-failed",()=>({...I,durationMs:Date.now()-h,...R===void 0?{}:{error:{message:"ChatRuntime logout \u5931\u8D25",data:R}}})),R!==void 0)throw R},resetForAuthChange:ye,dispose(){if(d)return;d=true;let u=B();k.record("info","chat-kit","session","dispose",()=>u),ye(true),ce.clear(),Y.clear(),de.clear();},subscribeEvents(u){return ce.add(u),()=>{ce.delete(u);}},subscribeProductEvents(u){return Y.add(u),()=>{Y.delete(u);}},getSenderProfileCache:()=>v,setSenderProfileCache(u){v=u,J();},getGroupMemberNames:()=>y,setGroupMemberNames(u){y=u,J();},getChannelMemberProfiles:()=>P,setChannelMemberProfiles(u){P=u,J();},subscribeProfileChange(u){return de.add(u),()=>{de.delete(u);}},putSelfVoiceBytes(u,h){for(N.delete(u),N.set(u,h);N.size>nt;){let I=N.keys().next().value;if(I===void 0)break;N.delete(I);}},getSelfVoiceBytes:u=>N.get(u),clearSelfVoiceBytes(){N.clear();},rememberLocalVideoPoster(u,h){K.set(u,h);},createLocalMediaPreview(u){let h=URL.createObjectURL(u);return T.register(Ae(h),h,{byteSize:u.size,evictable:false,videoPoster:K.get(u)}),h},discardLocalMediaPreview(u){T.remove(Ae(u));},trackLocalMediaPreview(u,h){T.move(Ae(h),ne(u));},resolveMediaPreviewToRemote(u,h,I){let E=ne(u);h==="image"||h==="video"?T.makeEvictable(E,I):T.remove(E);},hasMediaBlob(u){return T.has(ne(u))},acquireMediaBlob(u){return T.acquire(ne(u))},async clearMediaCache(){let u=i$1,h=C;if(u===null)throw new Error("IM session is not ready");if(T.clearCached(),await u.media.clearCache(),C!==h||i$1!==u)throw new Error("IM session changed during media cache cleanup")},cleanupLocalMediaBlobs:Ce,cleanupConversationMediaBlobs:wn}}function dn(e){return "group"in e?e.group:e.channel}function ln(e,t,n){if(t.conversationType!==e.ref.conversationType||t.conversationId!==e.ref.conversationId||t.status!=="sent"||t.recalled!==void 0||t.deletedForEveryone!==void 0||t.encryption.decryptFailed===true||!["text","image","video","voice","file","filesAlbum","miniProgram","transfer","gift","game"].includes(t.contentType)||t.contentType==="filesAlbum"&&!Ra(t))return false;if(n===null)return true;let r=dn(n);return r.conversationType!==e.ref.conversationType||r.conversationId!==e.ref.conversationId||n.messageId!==t.id}function ot(e){let{session:t,message:n,currentPinnedMessage:r,selfId:o,ownerId:a}=e;return t?.ref.conversationType==="group"&&(t.groupState===void 0||t.groupState==="active")&&o!==""&&a!==void 0&&a!==""&&o===a&&ln(t,n,r)}function at(e){let{session:t,message:n,currentPinnedMessage:r}=e;return t?.ref.conversationType==="channel"&&t.channelState==="active"&&t.channelPermissions?.moderateMessages===true&&ln(t,n,r)}function no(e){return e.session?.ref.conversationType==="group"?ot(e):e.session?.ref.conversationType==="channel"?at(e):false}function fn(e,t){if(e===null)return false;let n=dn(e);return n.conversationType===t.conversationType&&n.conversationId===t.conversationId&&e.messageId===t.id}function it(e,t,n,r){let o=e[r];if(o&&o.remark!=="")return o.remark;let a=n===""?void 0:t[n]?.[r];return a!==void 0&&a!==""?a:o&&o.nickname!==""?o.nickname:""}function ro(e,t,n,r,o){let a=it(e,t,n,r);if(a!=="")return a;let s=(o??"").trim();return s!==""?s:r.length>12?`${r.slice(0,6)}\u2026${r.slice(-4)}`:r}function st(e,t,n,r){let o=e[r];if(o?.remark!==void 0&&o.remark!=="")return o.remark;let a=t[n]?.[r]?.displayName;return a!==void 0&&a!==""&&a!==r?a:o?.nickname!==void 0&&o.nickname!==""?o.nickname:""}function oo(e,t,n,r){return st(e,t,n,r)||r}function ao(e,t,n,r){let o=t[n]?.[r]?.avatar;return o!==void 0&&o!==""?o:ct(e,r)}function ct(e,t){return e[t]?.avatar??""}function io(e,t){return e[t]?.nickname??""}function so(e){return (e.remark??"").trim()||e.nickname||e.id}function ke(e,t,n=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0?false:n-(e.serverTime??e.createdAt)<=300*1e3}function _e(e,t,n,r=Date.now()){return e.senderId!==t||e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.body.text===void 0||e.body.text===""?false:r-(e.serverTime??e.createdAt)<=n}var w=Object.freeze({availability:"available",reason:"ok"});function b(e){return Object.freeze({availability:"unavailable",reason:e})}function dt(e,t){return e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}function te(e){if(e.status!=="sent"||e.recalled!==void 0||e.deletedForEveryone!==void 0||e.contentType==="system")return b("unsupported-type")}function lt(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true&&["text","image","video","voice","file","filesAlbum","miniProgram","game","mediaAlbum","liveRoom"].includes(e.contentType)&&(e.contentType!=="filesAlbum"||Ra(e))}function ft(e){return e.status==="sent"&&e.recalled===void 0&&e.deletedForEveryone===void 0}function re(e){return e.conversationType==="channel"?e.value.canMutateMessages:(e.conversationType==="group",e.value.canUseMessageActions)}function un(e,t,n={}){return t.availability==="available"?"":e==="direct"?n.mode!=="target"?"":t.reason==="blocked"||t.reason==="not-friend"?"directBlock.contactRequired":"":e==="group"?t.reason==="left"?"groupBlock.left":t.reason==="removed"?"groupBlock.removed":t.reason==="dismissed"?"groupBlock.dismissed":"groupBlock.unknownRestricted":e==="channel"?t.reason==="guest"?"channelBlock.guest":t.reason==="left"?"channelBlock.left":t.reason==="removed"?"channelBlock.removed":t.reason==="dismissed"?"channelBlock.dismissed":t.reason==="muted-all"?"channelBlock.allMembersMuted":t.reason==="muted-self"?"channelBlock.currentUserMuted":t.reason==="muted"?"channelBlock.muted":t.reason==="blacklisted"?"channelBlock.blacklisted":"channelBlock.unknownRestricted":""}function mo(e,t){switch(t){case "conversation.openProfile":return e.conversationType==="direct"||e.conversationType==="group",e.value.canOpenProfile;case "conversation.readHistory":return e.conversationType==="direct"?w:e.value.canReadHistory;case "conversation.listPreferences":return e.conversationType==="channel"?e.value.state==="muted"?w:e.value.canOpenProfile:e.conversationType==="group"?e.value.canOpenProfile:w;case "composer.send":return e.value.canSendMessages;case "composer.mentionAll":return e.conversationType==="channel"?e.value.canMentionAll:w;case "profile.edit":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canEditProfile:w;case "relationship.manage":return e.conversationType==="direct"?e.value.canManageRelationship:b("unsupported-type");case "members.view":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canViewMembers:b("unsupported-type");case "members.manage":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canManageMembers:b("unsupported-type");case "members.invite":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canInviteMembers:b("unsupported-type");case "members.remove":return e.conversationType==="channel"?e.value.canRemoveMembers:e.conversationType==="group"?e.value.canManageMembers:b("unsupported-type");case "members.setAdmin":return e.conversationType==="channel"?e.value.canSetMemberAdmin:b("unsupported-type");case "ownership.transfer":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canTransferOwnership:b("unsupported-type");case "conversation.leave":return e.conversationType==="channel"||e.conversationType==="group"?e.value.canLeave:b("unsupported-type");case "channel.manageMute":return e.conversationType==="channel"?e.value.canManageMute:b("unsupported-type");case "channel.setMemberPrivateChat":return e.conversationType==="channel"?e.value.canSetMemberPrivateChat:b("unsupported-type");case "channel.dismiss":return e.conversationType==="channel"?e.value.canDismiss:b("unsupported-type")}}function go(e,t){let{message:n,pinnedMessage:r,selfId:o,snapshot:a,nowMs:s=Date.now()}=t;if(!dt(a,n))return b("unsupported-type");let i=fn(r,n);switch(e){case "message.react":return n.status!=="sent"||!Ua(n)?b("unsupported-type"):a.conversationType==="channel"?a.value.canSendMessages:w;case "message.forward":{let c=te(n);return c!==void 0?c:Sa(n)?w:b("unsupported-type")}case "message.favorite":{let c=te(n);return c!==void 0?c:n.encryption?.decryptFailed===true?b("unsupported-type"):l(n)!==null?w:b("unsupported-type")}case "message.multiSelect":{let c=te(n);return c!==void 0?c:i?b("message-protected"):w}case "message.reply":{let c=te(n);return c!==void 0?c:a.conversationType==="direct"?w:re(a)}case "message.recall":return i?b("message-protected"):a.conversationType==="direct"?ke(n,o,s)?w:b("role-insufficient"):re(a).availability!=="available"?re(a):ke(n,o,s)?w:b("role-insufficient");case "message.edit":return i?b("message-protected"):a.conversationType==="direct"?_e(n,o,Oa,s)?w:b("role-insufficient"):re(a).availability!=="available"?re(a):_e(n,o,Oa,s)?w:b("role-insufficient");case "message.pin":return i?b("message-protected"):lt(n)&&(a.conversationType==="group"||a.conversationType==="channel")?a.value.canPinMessages:b("unsupported-type");case "message.unpin":return a.conversationType==="group"||a.conversationType==="channel"?a.value.canUnpinMessages:b("unsupported-type");case "message.deleteLocal":{if(i)return b("message-protected");let c=te(n);return c!==void 0?c:n.contentType==="unknown"?b("unsupported-type"):a.conversationType==="direct"||a.conversationType==="group"?w:b("unsupported-type")}case "message.deleteForEveryone":return i?b("message-protected"):a.conversationType!=="channel"||!ft(n)?b("unsupported-type"):a.value.canDeleteMessagesForEveryone}}function po(e,t){let{selfId:n,snapshot:r,targetRole:o="unknown",targetUserId:a}=t;if(a===""||a===n)return b("role-insufficient");if(r.conversationType==="group"){if(e!=="members.removeTarget")return b("unsupported-type");let i=r.value.canManageMembers;return i.availability!=="available"?i:r.value.ownerId!==void 0&&a===r.value.ownerId?b("role-insufficient"):w}if(r.conversationType!=="channel")return b("unsupported-type");if(e==="members.removeTarget"||e==="members.editNicknameTarget"){let i=r.value.canRemoveMembers;return i.availability!=="available"?i:r.value.role==="owner"?o==="member"||o==="admin"?w:b("role-insufficient"):r.value.role==="admin"&&o==="member"?w:b("role-insufficient")}let s=r.value.canSetMemberAdmin;return s.availability!=="available"?s:r.value.role!=="owner"?b("role-insufficient"):e==="members.setAdminTarget"?o==="member"?w:b("role-insufficient"):o==="admin"?w:b("role-insufficient")}function mn(e){if(e===void 0||e==="active")return "";switch(e){case "guest":return "channelBlock.guest";case "left":return "channelBlock.left";case "removed":return "channelBlock.removed";case "dismissed":return "channelBlock.dismissed";case "muted":return "channelBlock.muted";case "blacklisted":return "channelBlock.blacklisted";case "unknown_restricted":return "channelBlock.unknownRestricted"}}function gn(e,t=Date.now()){if(e?.channelState===void 0)return "channelBlock.unknownRestricted";let n=Wa({channelState:e.channelState,snapshot:e.channelAccessSnapshot,permissions:e.channelPermissions,nowMs:t});return n.channelState==="muted"?n.muteReason==="all-members"?"channelBlock.allMembersMuted":n.muteReason==="current-user"?"channelBlock.currentUserMuted":"channelBlock.muted":n.channelState!=="active"?mn(n.channelState)||"channelBlock.unknownRestricted":n.permissions.sendMessages?"":"channelBlock.unknownRestricted"}var j=9;function ut(e={}){let t=typeof navigator<"u"?navigator:void 0,n=e.deviceMemoryGb??(typeof t?.deviceMemory=="number"?t.deviceMemory:4),r=Math.floor(n*1024*1024*1024/8);return Math.min(512*1024*1024,Math.max(64*1024*1024,r))}async function pn(e,t,n={}){if(e.length===0)return {processedCount:0,rejectedByLimit:false};let r=e.length>9;r&&n.onRejectedByLimit?.({reason:"count-limit",maxCount:9,selectedCount:e.length});let o=e.slice(0,9);if(n.startAll)return await Promise.all(o.map(l=>t(l).catch(()=>false))),{processedCount:o.length,rejectedByLimit:r};let a=ut(n),s=Math.max(1,Math.floor(n.maxConcurrency??Number.POSITIVE_INFINITY)),i=0,c=new Set;for(let l of o){for(;c.size>0&&(c.size>=s||i+l.size>a);)await Promise.race(c);i+=l.size;let f=t(l).catch(()=>false).finally(()=>{i-=l.size,c.delete(f);});c.add(f);}return await Promise.all(c),{processedCount:o.length,rejectedByLimit:r}}async function vn(e){if(await oe(e)!=="not-gif")return "sticker";if(await f(e))return "image";let t=e.type.trim().toLowerCase();return t.startsWith("image/")||/\.(?:jpe?g|png|webp|gif|svgz?|heic|heif|avif|bmp|tiff?|ico|jfif|jxl|psd|dng|raw)$/i.test(e.name)?"unsupported-image":t.startsWith("video/")?"video":"file"}async function oe(e){let t=e.type.trim().toLowerCase(),n=new Uint8Array(await e.slice(0,6).arrayBuffer()),r=n.length===6?String.fromCharCode(...n):"",o=r==="GIF87a"||r==="GIF89a",a=t==="image/gif";return o&&(a||t==="")?"gif":o||a?"invalid-gif":"not-gif"}async function Ne(e){return await oe(e)==="gif"}var mt=new Set(["group","channel"]),gt=new Set(["group","channel"]),yn=30*1024*1024,De=200*1024*1024,Oe=2*1024*1024*1024,pt=3*1024*1024;function ie(e,t,n){let r=e.getConversationHandle();if(!(r===void 0||n===void 0||n==="supergroup"))return r.ref.conversationId===t&&r.ref.conversationType===n?r:void 0}function se(e,t){return e.retainConversationHandle?.(t)??(()=>{})}function ae(e,t){try{return e.getSnapshot().messages.find(n=>n.contentType==="video"?n.body.video?.url===t:n.contentType==="image"?n.body.image?.url===t:n.contentType==="sticker"?n.body.sticker?.url===t:n.contentType==="mediaAlbum"?n.body.mediaAlbum?.items.some(r=>r.url===t)===!0:!1)?.id}catch{return}}function Ge(e){if(e===void 0)return;let t=e.atAll?[{userId:"0",displayName:""}]:[];for(let n of e.atUserIds)t.push({userId:n,displayName:e.atUsersName?.[n]??n});return t.length===0?void 0:t}function vt(e){if(e===void 0||e==="active")return "";switch(e){case "left":return "groupBlock.left";case "removed":return "groupBlock.removed";case "dismissed":return "groupBlock.dismissed";default:return "groupBlock.unknownRestricted"}}function To(e){return mt.has(e)}function yt(e){return gt.has(e)}function Ro(e,t=Date.now()){return e?.type==="channel"?gn(e,t):e?.type==="group"?vt(e.groupState):""}function F(e,t,n,r={}){let o=e.getProductClient();if(o===null)return "";let a=n??o.conversations.list().find(i=>i.ref.conversationId===t)?.ref.conversationType;if(a===void 0||a==="supergroup")return "";let s=o.capabilities.get({conversationType:a,conversationId:t}).value.canSendMessages;return un(a,s,r)}async function wo(e,t,n){let r=e.getClient(),o=t.text.trim();if(r===null)return n.setNote(n.t("common.notConnected")),false;if(t.conversationId==="")return n.setNote(n.t("common.selectOrOpenConversation")),false;if(o==="")return false;let a=e.getGeneration();try{let s=t.conversationType;if(s===void 0)return n.setNote(n.t("common.conversationTypeNotReady")),!1;let i=ie(n,t.conversationId,s);if(i===void 0)return n.setNote(n.t("common.conversationNotReady")),!1;let c=F(e,t.conversationId,s);if(c!=="")return n.setNote(n.t(c)),!1;let l=se(n,i);try{let f=await i.messages.sendText(o,{...yt(s)?{mentions:Ge(t.mention)}:{},...t.refMessageId===void 0?{}:{replyToMessageId:t.refMessageId}});return n.refreshActiveMessages(),f.ok?e.getGeneration()===a:(e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:f.error.code})),!1)}finally{l();}}catch(s){return e.getGeneration()===a&&n.setNote(n.t("send.failed",{reason:s instanceof Error?s.message:String(s)})),false}}async function Cn(e,t,n){let{kind:r,file:o,conversationId:a,conversationType:s,refMessageId:i}=t,c=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(a===""||s===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f$1=ie(n,a,s);if(f$1===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let g=F(e,a,s);if(g!=="")return n.setNote(n.t(g)),false;let m=r==="video"?De:r==="file"?Oe:r==="sticker"?pt:yn;if(o.size>m)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(m/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(m/1024/1024)})),false;let C=e.getGeneration();if(o.size===0)return e.getGeneration()===C&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;if(r==="sticker"&&!await Ne(o))return e.getGeneration()===C&&n.setNote(n.t("send.mediaFormatMismatch",{name:o.name})),false;let p=se(n,f$1),d;try{if(r==="image"&&!await f(o))return e.getGeneration()===C&&n.setNote(n.t("send.imageFormatUnsupported",{name:o.name})),!1;if(e.getGeneration()!==C)return !1;d=r==="file"?void 0:e.createLocalMediaPreview(o);let M=t.localPreviewMetadata;if(e.getGeneration()!==C)return d!==void 0&&e.discardLocalMediaPreview(d),!1;let S=await(r==="image"?f$1.messages.sendImage(o,{...d===void 0?{}:{localPreviewUrl:d},...M===void 0?{}:{localPreviewMetadata:M},...i===void 0?{}:{replyToMessageId:i}}):r==="video"?f$1.messages.sendVideo(o,{...d===void 0?{}:{localPreviewUrl:d},...M===void 0?{}:{localPreviewMetadata:M},...i===void 0?{}:{replyToMessageId:i}}):r==="sticker"?f$1.messages.sendGif(o,{...d===void 0?{}:{localPreviewUrl:d},...i===void 0?{}:{replyToMessageId:i}}):f$1.messages.sendFile(o,{fileName:o.name,...t.caption===void 0?{}:{caption:t.caption},...t.filesAlbum===void 0?{}:{filesAlbum:t.filesAlbum},...i===void 0?{}:{replyToMessageId:i}}));if(n.refreshActiveMessages(),!S.ok){if(e.getGeneration()===C&&S.error.code!=="IM_SDK_MEDIA_PAUSED"&&S.error.code!=="IM_SDK_MEDIA_CANCELLED"&&(S.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):S.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:c,reason:S.error.code}))),d!==void 0){let A=ae(f$1,d);A===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:A},d);}return !1}return e.getGeneration()===C}catch(M){if(e.getGeneration()===C&&n.setNote(n.t("send.mediaFailed",{label:c,reason:M instanceof Error?M.message:String(M)})),d!==void 0){let S=ae(f$1,d);S===void 0?e.discardLocalMediaPreview(d):e.trackLocalMediaPreview({conversationId:a,conversationType:s,messageId:S},d);}return false}finally{p();}}async function Ao(e,t,n){let{kind:r,file:o,messageId:a,conversationId:s,conversationType:i}=t,c=n.t(`label.${r}`);if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;let l=ie(n,s,i);if(l===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f=F(e,s,i);if(f!=="")return n.setNote(n.t(f)),false;let g=r==="video"?De:Oe;if(o.size>g)return n.pushMediaLimitItem({name:o.name,sizeMb:o.size/1024/1024,label:c,maxMb:Math.round(g/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:o.name,label:c,maxMb:Math.round(g/1024/1024)})),false;let m=e.getGeneration();if(o.size===0)return e.getGeneration()===m&&n.setNote(n.t("send.mediaEmpty",{label:c})),false;let C=se(n,l),p;try{if(p=r==="video"?e.createLocalMediaPreview(o):void 0,e.getGeneration()!==m)return p!==void 0&&e.discardLocalMediaPreview(p),!1;let d=await(r==="video"?l.messages.replaceInterruptedVideo(a,o,{...p===void 0?{}:{localPreviewUrl:p}}):l.messages.replaceInterruptedFile(a,o,{fileName:o.name}));if(n.refreshActiveMessages(),!d.ok){e.getGeneration()===m&&d.error.code!=="IM_SDK_MEDIA_PAUSED"&&d.error.code!=="IM_SDK_MEDIA_CANCELLED"&&(d.error.code==="IM_SDK_VIDEO_DURATION_TOO_LONG"?n.showWarning?.(n.t("send.videoTooLong",{name:o.name,maxMinutes:5})):d.error.code==="IM_SDK_VIDEO_DURATION_UNAVAILABLE"?n.showWarning?.(n.t("send.videoDurationUnavailable",{name:o.name})):n.setNote(n.t("send.mediaFailed",{label:c,reason:d.error.code})));let M=p!==void 0&&l.getSnapshot().messages.some(S=>S.id===a&&S.contentType==="video"&&S.body.video?.url===p);return p!==void 0&&!M?e.discardLocalMediaPreview(p):p!==void 0&&e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},p),!1}return e.getGeneration()===m}catch(d){return e.getGeneration()===m&&n.setNote(n.t("send.mediaFailed",{label:c,reason:d instanceof Error?d.message:String(d)})),p!==void 0&&(ae(l,p)===a?e.trackLocalMediaPreview({conversationId:s,conversationType:i,messageId:a},p):e.discardLocalMediaPreview(p)),false}finally{C();}}function Ct(e){let t=e.getMediaConfig()?.buckets.voice;return t!==void 0&&t!==""}async function ko(e,t,n){let{payload:r,conversationId:o,conversationType:a,refMessageId:s}=t;if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(o===""||a===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let c=ie(n,o,a);if(c===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let l=F(e,o,a);if(l!=="")return n.setNote(n.t(l)),false;if(r.data.length===0)return n.setNote(n.t("send.voiceEmpty")),false;if(!Ct(e))return n.setNote(n.t("send.voiceStorageNotConfigured")),false;let f=e.getGeneration(),g=se(n,c);try{let m=new File([r.data],r.filename,{type:r.mimeType}),C=await c.messages.sendVoice(m,{durationMs:r.durationMs,waveform:r.waveform,...s===void 0?{}:{replyToMessageId:s}});return n.refreshActiveMessages(),C.ok?e.getGeneration()!==f?!1:(e.putSelfVoiceBytes(C.message.id,r.data),!0):(e.getGeneration()===f&&C.error.code!=="IM_SDK_MEDIA_PAUSED"&&C.error.code!=="IM_SDK_MEDIA_CANCELLED"&&n.setNote(n.t("send.voiceFailed",{reason:C.error.code})),!1)}catch(m){return e.getGeneration()===f&&n.setNote(n.t("send.voiceFailed",{reason:m instanceof Error?m.message:String(m)})),false}finally{g();}}var Mt=new Set(["IM_SDK_VIDEO_TOO_LARGE","IM_SDK_VIDEO_PREVIEW_METADATA_INVALID","IM_SDK_VIDEO_DURATION_TOO_LONG","IM_SDK_VIDEO_DURATION_UNAVAILABLE"]);async function _o(e,t,n){let{caption:r,conversationId:o,conversationType:a,items:s,refMessageId:i}=t;if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),false;if(o===""||a===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let l=ie(n,o,a);if(l===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let f$1=F(e,o,a);if(f$1!=="")return n.setNote(n.t(f$1)),false;if(s.length===0)return false;let g=e.getGeneration();for(let d of s){let M=n.t(`label.${d.kind}`),S=d.kind==="video"?De:yn;if(d.file.size>S)return n.pushMediaLimitItem({name:d.file.name,sizeMb:d.file.size/1024/1024,label:M,maxMb:Math.round(S/1024/1024)}),n.showWarning?.(n.t("send.mediaTooLarge",{name:d.file.name,label:M,maxMb:Math.round(S/1024/1024)})),false;if(d.file.size===0)return n.setNote(n.t("send.mediaEmpty",{label:M})),false}for(let d of s){let M=await oe(d.file);if(d.kind==="image"&&M==="not-gif"&&!await f(d.file))return e.getGeneration()===g&&n.setNote(n.t("send.imageFormatUnsupported",{name:d.file.name})),false;if(M!=="not-gif")return e.getGeneration()!==g||n.showWarning?.(n.t("send.mediaFailed",{label:n.t("label.image"),reason:"IM_SDK_MEDIA_ALBUM_GIF_UNSUPPORTED"})),false}if(e.getGeneration()!==g)return false;let m=se(n,l),C=s.map(d=>e.createLocalMediaPreview(d.file)),p=d=>{C.forEach((M,S)=>{d===void 0?e.discardLocalMediaPreview(M):e.trackLocalMediaPreview({conversationId:o,conversationType:a,messageId:d,itemIndex:S},M);});};try{if(e.getGeneration()!==g)return p(void 0),!1;let d=await l.messages.sendMediaAlbum(s.map((M,S)=>({kind:M.kind,file:M.file,localPreviewUrl:C[S],...M.localPreviewMetadata===void 0?{}:{localPreviewMetadata:M.localPreviewMetadata}})),{...r===void 0||r.trim()===""?{}:{caption:r},...t.hd===void 0?{}:{hd:t.hd},...i===void 0?{}:{replyToMessageId:i}});if(n.refreshActiveMessages(),!d.ok){if(e.getGeneration()===g&&d.error.code!=="IM_SDK_MEDIA_PAUSED"&&d.error.code!=="IM_SDK_MEDIA_CANCELLED"){let M=n.t(Mt.has(d.error.code)?"label.video":"label.image");n.setNote(n.t("send.mediaFailed",{label:M,reason:d.error.code}));}return p(ae(l,C[0])),!1}return e.getGeneration()===g}catch(d){return e.getGeneration()===g&&n.setNote(n.t("send.mediaFailed",{label:n.t("label.image"),reason:d instanceof Error?d.message:String(d)})),p(ae(l,C[0])),false}finally{m();}}async function No(e,t,n){let r=t.files.slice(0,9);t.files.length>9&&(n.setMediaBatchLimit({selectedCount:t.files.length,maxCount:9}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:9,ignoredCount:t.files.length-9})));let o=e.getGeneration(),a=[];for(let i of r){let c=await vn(i);if(e.getGeneration()!==o)break;if(c==="unsupported-image"){n.setNote(n.t("send.imageFormatUnsupported",{name:i.name})),a.push(Promise.resolve(false));continue}a.push(Cn(e,{kind:c,file:i,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n));}let s=await Promise.all(a.map(i=>i.catch(()=>false)));return Object.freeze({selectedCount:t.files.length,processedCount:a.length,acceptedCount:s.filter(Boolean).length,rejectedByLimit:t.files.length>9})}async function Do(e,t,n){if(t.caption!==void 0&&Array.from(t.caption).length>q)return n.setNote(n.t("send.mediaFailed",{label:n.t("label.file"),reason:"IM_SDK_MEDIA_ALBUM_CAPTION_TOO_LONG"})),Object.freeze({selectedCount:t.files.length,processedCount:0,acceptedCount:0,rejectedByLimit:false});let r=0,o=0,a=!!t.caption?.trim(),s=-1;for(let c=0;c<Math.min(t.files.length,9);c++){let l=t.files[c];l.size>0&&l.size<=Oe&&l.name.trim()!==""&&(s=c);}let i=await pn(t.files,async c=>{let l=o++,f=await Cn(e,{kind:"file",...a?{filesAlbum:true,...l===s?{caption:t.caption}:{}}:{},file:c,conversationId:t.conversationId,conversationType:t.conversationType,...t.refMessageId===void 0?{}:{refMessageId:t.refMessageId}},n);return f&&(r+=1),f},{startAll:true,onRejectedByLimit:c=>{n.setMediaBatchLimit({selectedCount:c.selectedCount,maxCount:c.maxCount}),n.showWarning?.(n.t("send.mediaCountLimit",{maxCount:c.maxCount,ignoredCount:c.selectedCount-c.maxCount}));}});return Object.freeze({selectedCount:t.files.length,processedCount:i.processedCount,acceptedCount:r,rejectedByLimit:i.rejectedByLimit})}async function Oo(e,t,n){let r=e.getClient(),o=n.getConversationHandle();if(r===null||o===void 0)return n.setNote(n.t("send.cancelFailed")),false;let a=e.getGeneration();try{let s=r.media.getSnapshot().filter(i=>i.direction==="upload"&&i.messageId===t&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);return s.length!==1?(n.setNote(n.t("send.cancelFailed")),!1):(await r.media.cancel(s[0].id),e.getGeneration()!==a||n.getConversationHandle()!==o?!1:(n.refreshActiveMessages(),!0))}catch{return e.getGeneration()===a&&n.getConversationHandle()===o&&n.setNote(n.t("send.cancelFailed")),false}}async function Go(e,t,n,r){let o=e.getClient();if(o===null)return false;let a=n.getConversationHandle();if(a===void 0)return n.setNote(n.t("send.retryFailed")),false;let s=e.getGeneration(),i=o.media.getSnapshot().find(l=>l.direction==="upload"&&(l.state==="failed"||l.state==="canceled")&&l.messageId===t&&l.ref.conversationType===a.ref.conversationType&&l.ref.conversationId===a.ref.conversationId);if(i!==void 0)try{return r===void 0?await o.media.retry(i.id):await o.media.retry(i.id,r),e.getGeneration()!==s?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===s&&n.setNote(n.t("send.retryFailed")),false}if(r?.restartUpload===true)return n.setNote(n.t("send.retryFailed")),false;let c=o.outbox.getSnapshot().find(l=>l.messageId===t);if(c===void 0||c.ref.conversationType!==a.ref.conversationType||c.ref.conversationId!==a.ref.conversationId)return n.setNote(n.t("send.retryFailed")),false;try{return await o.outbox.retry(t),e.getGeneration()!==s?!1:(n.refreshActiveMessages(),!0)}catch{return e.getGeneration()===s&&n.setNote(n.t("send.retryFailed")),false}}var Et={};a(Et,{executeForwardMessages:()=>St,forwardMessages:()=>Pt});function bt(e,t){let n=e.getConversationHandle();if(n!==void 0)return t.every(r=>r.conversationType!=="supergroup"&&r.conversationType===n.ref.conversationType&&r.conversationId===n.ref.conversationId)?n:void 0}function xt(e){let t=e?.code;return typeof t=="string"&&t!==""?t:"unknown"}function It(e,t){let n=e;return typeof n?.code=="string"&&typeof n.category=="string"&&typeof n.operation=="string"&&typeof n.retryable=="boolean"?n:Object.freeze({code:"IM_CHAT_KIT_FORWARD_FAILED",category:"state",operation:"message-operations.forward",retryable:false,conversation:Object.freeze({...t.ref}),cause:e})}function ht(e,t){return t.every(n=>n.conversationType!=="supergroup"&&n.conversationType===e.ref.conversationType&&n.conversationId===e.ref.conversationId)}async function St(e,t){let n="forward";if(e.getProductClient()===null||e.getConnectionState()!=="authenticated"||t.handle===void 0||!ht(t.handle,t.messages))return Object.freeze({ok:false,operation:n,reason:"not-ready"});if(t.messages.length===0||t.targets.length===0)return Object.freeze({ok:false,operation:n,reason:"empty-input"});for(let f of t.targets){let g=F(e,f.conversationId,f.conversationType,{mode:"target"});if(g!=="")return Object.freeze({ok:false,operation:n,reason:"target-blocked",blockReason:g})}let o=t.messages.filter(Sa),a=t.messages.length-o.length;if(o.length===0)return Object.freeze({ok:false,operation:n,reason:"all-skipped",skippedCount:a});let s=e.getGeneration(),i;try{i=await t.handle.messages.forward(o.map(f=>f.id),t.targets);}catch(f){return e.getGeneration()!==s?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:It(f,t.handle)})}if(e.getGeneration()!==s)return Object.freeze({ok:false,operation:n,reason:"stale"});let c=i.sent.length,l=a+i.skippedSourceMessageIds.length;return Object.freeze(c===0?{ok:false,operation:n,reason:i.failed.length>0?"sdk-rejected":"all-skipped",...i.failed[0]===void 0?{}:{error:i.failed[0].error},result:i,skippedCount:l}:{ok:true,operation:n,result:i,sentCount:c,skippedCount:l})}async function Pt(e,t,n){if(e.getClient()===null)return n.setNote(n.t("common.notConnected")),null;if(t.messages.length===0||t.targets.length===0)return n.setNote(n.t("forward.emptyInput")),null;let o=bt(n,t.messages);if(o===void 0)return n.setNote(n.t("common.conversationNotReady")),null;for(let g of t.targets){let m=F(e,g.conversationId,g.conversationType,{mode:"target"});if(m!=="")return n.setNote(n.t(m)),null}let a=t.messages.filter(Sa),s=t.messages.length-a.length;if(a.length===0)return n.setNote(n.t("forward.allSkipped")),null;let i=e.getGeneration(),c;try{c=await o.messages.forward(a.map(g=>g.id),t.targets);}catch(g){return e.getGeneration()===i&&n.getConversationHandle()===o&&n.setNote(n.t("forward.failed",{reason:xt(g)})),null}if(e.getGeneration()!==i||n.getConversationHandle()!==o)return c;let l=c.sent.length,f=s+c.skippedSourceMessageIds.length;if(l===0){let g=c.failed[0];g!==void 0?n.setNote(n.t("forward.failed",{reason:g.error.code})):f>0?n.setNote(n.t("forward.allSkipped")):n.setNote(n.t("forward.failed",{reason:"unknown"}));}else f>0?n.setNote(n.t("forward.partialSkipped",{skipped:f,ok:l})):n.setNote(n.t("forward.done"));return n.refreshActiveMessages?.(),c}var Lt={};a(Lt,{deleteChannelMessageForEveryone:()=>Gt,editMessage:()=>Bt,executeDeleteChannelMessageForEveryone:()=>Nt,executeDeleteLocalMessage:()=>_t,executeRecallMessage:()=>kt,executeRetryMessage:()=>Dt,recallMessage:()=>Ot});var Tt={IM_SDK_MESSAGE_PINNED:"recall.pinned",IM_SDK_MESSAGE_NOT_FOUND:"recall.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"recall.not-found",IM_SDK_RECALL_NOT_OWN:"recall.not-own",IM_SDK_RECALL_NOT_SENT:"recall.not-sent",IM_SDK_RECALL_EXPIRED:"recall.expired",IM_SDK_RECALL_UNSUPPORTED:"recall.unsupported",IM_SDK_RECALL_TIMEOUT:"recall.timeout",IM_SDK_RECALL_FAILED:"recall.failed",IM_SDK_RECALL_DISCONNECTED:"recall.disconnected"},Rt={IM_SDK_MESSAGE_PINNED:"edit.pinned",IM_SDK_MESSAGE_NOT_FOUND:"edit.not-found",IM_SDK_MESSAGE_STATE_MISMATCH:"edit.not-found",IM_SDK_EDIT_NOT_OWN:"edit.not-own",IM_SDK_EDIT_NOT_SENT:"edit.not-sent",IM_SDK_EDIT_RECALLED:"edit.recalled",IM_SDK_EDIT_DELETED:"edit.deleted",IM_SDK_EDIT_EXPIRED:"edit.expired",IM_SDK_EDIT_UNSUPPORTED:"edit.unsupported",IM_SDK_DIRECT_MENTION_UNSUPPORTED:"edit.unsupported",IM_SDK_EDIT_EMPTY:"edit.empty",IM_SDK_EDIT_RESTRICTED:"edit.restricted",IM_SDK_EDIT_CONTENT_UNSUPPORTED:"edit.unsupported-content",IM_SDK_EDIT_KEY_UNAVAILABLE:"edit.no-key",IM_SDK_EDIT_ENCRYPT_FAILED:"edit.encrypt-failed",IM_SDK_EDIT_TIMEOUT:"edit.timeout",IM_SDK_EDIT_FAILED:"edit.failed",IM_SDK_EDIT_DISCONNECTED:"edit.disconnected"},wt={IM_SDK_MESSAGE_PINNED:"pinned.protected",IM_SDK_MESSAGE_NOT_FOUND:"channelDelete.notFound",IM_SDK_CHANNEL_DELETE_UNSUPPORTED:"channelDelete.unsupported",IM_SDK_CHANNEL_DELETE_NOT_SENT:"channelDelete.notSent",IM_SDK_CHANNEL_DELETE_UNAVAILABLE:"channelDelete.unavailable",IM_SDK_CHANNEL_DELETE_FORBIDDEN:"channelDelete.forbidden",IM_SDK_CHANNEL_DELETE_TIMEOUT:"channelDelete.timeout",IM_SDK_CHANNEL_DELETE_FAILED:"channelDelete.failed",IM_SDK_CHANNEL_DELETE_DISCONNECTED:"channelDelete.disconnected"};function Be(e,t){let n=e.getConversationHandle();if(!(n===void 0||t.conversationType==="supergroup"))return n.ref.conversationType===t.conversationType&&n.ref.conversationId===t.conversationId?n:void 0}function Le(e){return typeof e?.code=="string"?e.code:void 0}function At(e){return typeof e=="object"&&e!==null&&typeof e.code=="string"&&typeof e.category=="string"&&typeof e.operation=="string"&&typeof e.retryable=="boolean"}function ge(e,t,n){return At(e)?e:Object.freeze({code:"IM_CHAT_KIT_MESSAGE_OPERATION_FAILED",category:"state",operation:`message-operations.${t}`,retryable:false,...n===void 0?{}:{conversation:Object.freeze({...n.ref})},cause:e})}function je(e,t){return e!==void 0&&t.conversationType!=="supergroup"&&e.ref.conversationType===t.conversationType&&e.ref.conversationId===t.conversationId}async function kt(e,t){let n="recall";if(!je(t.handle,t.message))return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.recall(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ge(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function _t(e,t){let n="delete-local";if(!je(t.handle,t.message)||t.handle.ref.conversationType!=="direct"&&t.handle.ref.conversationType!=="group"||t.message.conversationType!=="direct"&&t.message.conversationType!=="group")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteLocal(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ge(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function Nt(e,t){let n="delete-for-everyone";if(!je(t.handle,t.message)||t.handle.ref.conversationType!=="channel"||t.message.conversationType!=="channel")return Object.freeze({ok:false,operation:n,reason:"not-ready"});let r=e.getGeneration();try{await t.handle.messages.deleteForEveryone(t.message.id);}catch(o){return e.getGeneration()!==r?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ge(o,n,t.handle)})}return e.getGeneration()===r?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function Dt(e,t){let n="retry",r=e.getProductClient(),o=t.handle;if(r===null||o===void 0)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let a=e.getGeneration();try{let s=r.media.getSnapshot().find(i=>i.direction==="upload"&&(i.state==="failed"||i.state==="canceled")&&i.messageId===t.messageId&&i.ref.conversationType===o.ref.conversationType&&i.ref.conversationId===o.ref.conversationId);if(s!==void 0)await r.media.retry(s.id,t.options);else {if(t.options?.restartUpload===!0)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});let i=r.outbox.getSnapshot().find(c=>c.messageId===t.messageId);if(i===void 0||i.ref.conversationType!==o.ref.conversationType||i.ref.conversationId!==o.ref.conversationId)return Object.freeze({ok:!1,operation:n,reason:"not-ready"});await r.outbox.retry(t.messageId);}}catch(s){return e.getGeneration()!==a?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:ge(s,n,o)})}return e.getGeneration()===a?Object.freeze({ok:true,operation:n}):Object.freeze({ok:false,operation:n,reason:"stale"})}async function Ot(e,t,n){let r=Be(n,t.message);if(r===void 0){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.recall(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(Tt[Le(a)??""]??"recall.failed"));}}async function Gt(e,t,n){let r=Be(n,t.message);if(r===void 0||r.ref.conversationType!=="channel"||t.message.conversationType!=="channel"){n.setNote(n.t("common.conversationNotReady"));return}let o=e.getGeneration();try{await r.messages.deleteForEveryone(t.message.id);}catch(a){if(e.getGeneration()!==o)return;n.setNote(n.t(wt[Le(a)??""]??"channelDelete.failed"));}}async function Bt(e,t,n){let r=Be(n,t.message);if(r===void 0)return n.setNote(n.t("common.conversationNotReady")),false;let o=e.getGeneration(),a=Ge(t.mention);try{await r.messages.editText(t.message.id,t.text,{...a===void 0?{}:{mentions:a}});}catch(s){return e.getGeneration()!==o||n.setNote(n.t(Rt[Le(s)??""]??"edit.failed")),false}return e.getGeneration()===o}var $t={};a($t,{executePinMessage:()=>Ft,executeSyncPinnedMessage:()=>Ut,executeUnpinMessage:()=>Ht,getPinnedMessage:()=>zt,peekPinnedMessage:()=>Wt,pinMessage:()=>Vt,syncPinnedMessage:()=>bn,unpinMessage:()=>Kt});function $(e,t){let n=e.getProductClient();return n===null||e.getConnectionState()!=="authenticated"?(t?.setNote(t.t("common.notConnected")),null):n}function jt(e){switch(e){case "permission":return "pinned.forbidden";case "network":return "pinned.network";case "contract":return "pinned.contract";case "unsupported":return "pinned.unsupported";default:return "pinned.failed"}}function Mn(e){return typeof e=="object"&&e!==null&&typeof e.category=="string"}function Fe(e,t,n){if(Mn(e))return e;let r=typeof e?.kind=="string"?e.kind:void 0,o=r==="forbidden"?"permission":r==="network"?"network":r==="unsupported"?"unsupported":r==="contract"?"contract":"state";return Object.freeze({code:"IM_CHAT_KIT_PINNED_MESSAGE_OPERATION_FAILED",category:o,operation:`message-operations.${t}`,retryable:o==="network",conversation:Object.freeze({...n}),cause:e})}async function Ft(e,t){let r=$(e);if(r===null||t.message.conversationId!==t.conversation.conversationId||t.message.conversationType!==t.conversation.conversationType)return Object.freeze({ok:false,operation:"pin",reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?Object.freeze({ok:!0,operation:"pin",value:a}):Object.freeze({ok:!1,operation:"pin",reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:"pin",reason:"stale"}):Object.freeze({ok:false,operation:"pin",reason:"sdk-rejected",error:Fe(a,"pin",t.conversation)})}}async function Ht(e,t){let n="unpin",r=$(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o?Object.freeze({ok:!0,operation:n}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:Fe(a,n,t)})}}async function Ut(e,t){let n="sync-pin",r=$(e);if(r===null)return Object.freeze({ok:false,operation:n,reason:"not-ready"});let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?Object.freeze({ok:!0,operation:n,value:a}):Object.freeze({ok:!1,operation:n,reason:"stale"})}catch(a){return e.getGeneration()!==o?Object.freeze({ok:false,operation:n,reason:"stale"}):Object.freeze({ok:false,operation:n,reason:"sdk-rejected",error:Fe(a,n,t)})}}function He(e,t,n,r){if(e.getGeneration()!==t)return;let o=Mn(r)?jt(r.category):"pinned.failed";n.setNote(n.t(o));}async function Vt(e,t,n){let r=$(e,n);if(r===null)return null;let o=e.getGeneration();try{let a=t.conversation.conversationType==="group"?await r.groups.pinMessage(t.conversation,t.message.id):await r.channels.pinMessage(t.conversation,t.message.id);return e.getGeneration()===o?a:null}catch(a){return He(e,o,n,a),null}}async function Kt(e,t,n){let r=$(e,n);if(r===null)return false;let o=e.getGeneration();try{return t.conversationType==="group"?await r.groups.unpinMessage(t):await r.channels.unpinMessage(t),e.getGeneration()===o}catch(a){return He(e,o,n,a),false}}async function zt(e,t,n){let r=await bn(e,t,n);return r.ok?r.value:null}async function bn(e,t,n){let r=$(e,n);if(r===null)return {ok:false};let o=e.getGeneration();try{let a=t.conversationType==="group"?await r.groups.getPinnedMessage(t):await r.channels.getPinnedMessage(t);return e.getGeneration()===o?{ok:!0,value:a}:{ok:!1}}catch(a){return He(e,o,n,a),{ok:false}}}function Wt(e,t){let n=e.getProductClient();return n===null?null:t.conversationType==="group"?n.groups.peekPinnedMessage(t):n.channels.peekPinnedMessage(t)}function Vo(e){return e.conversation.conversationType==="channel"&&e.channelProfile?.memberPrivateChatDisabled!==false?"blocked":e.relationship==="friend"?"friend-profile":"friend-contact"}var lr={};a(lr,{applyGroupMemberNickname:()=>ar,applyGroupMemberRename:()=>rr,applyMemberNames:()=>or,beginSenderProfileUpdate:()=>Ve,clearGroupMemberNicknameProjection:()=>ir,ensureSelfProfile:()=>sr,prewarmActiveSenders:()=>dr,prewarmMemberAvatars:()=>cr,refreshStaleSenders:()=>ze,resolveChannelMembers:()=>tr,resolveGroupMembers:()=>Rn,resolveSenderName:()=>nr});var xn=new WeakMap;function Xt(e){let t=xn.get(e);return t===void 0&&(t=new Map,xn.set(e,t)),t}function Yt(e){let t=e.getClient();if(t!==null){if(t.robots!==void 0)return t.robots;if(!(t.conversations===void 0||t.media===void 0||t.session===void 0))return e.getProductClient()?.robots}}function Jt(e,t){let n={...e.getSenderProfileCache()},r=false;for(let o of t){let a=o.id.trim(),s=o.displayName.trim();if(a===""||s===""||s===a)continue;let i=n[a],c=i!==void 0&&i.nickname!==""&&i.nickname!==a?i.nickname:s,l=i!==void 0&&i.avatar!==""?i.avatar:o.avatarUrl??"";i?.source==="robot-directory"&&i.nickname===c&&i.avatar===l||(n[a]={source:"robot-directory",remark:i?.remark??"",nickname:c,avatar:l},r=true);}r&&e.setSenderProfileCache(n);}async function qt(e,t,n,r){let o=[],a=await e.listFirstPage({scope:{kind:"conversation",conversationType:t,conversationId:n,filter:"bound"},pageSize:100});o.push(...a.items);let s=1;for(;!a.exhausted&&a.nextPageToken!==void 0&&s<10;){if(!r())return;a=await e.listNextPage(a.nextPageToken),o.push(...a.items),s+=1;}return o}function Ue(e,t,n,r){let o=n.trim();if(o===""||r?.isCurrent?.()===false)return Promise.resolve(false);let a=Yt(e);if(a===void 0)return Promise.resolve(true);let s=e.getGeneration(),i=()=>e.getGeneration()===s&&r?.isCurrent?.()!==false,c=Xt(e),l=`${s}\0${t}\0${o}`,f=c.get(l);if(r?.forceRefresh!==true&&f!==void 0&&(f.expiresAt===0||f.expiresAt>Date.now()))return f.task;let g=qt(a,t,o,i).then(m=>m===void 0||!i()?(c.get(l)?.task===g&&c.delete(l),false):(Jt(e,m),c.set(l,{expiresAt:Date.now()+3e5,task:Promise.resolve(true)}),true)).catch(m=>(c.get(l)?.task===g&&c.delete(l),e.getGeneration()===s&&e.getDiagnostics().record("warn","chat-kit","profile","bound-robot-profiles-resolve-failed",()=>({conversation:{conversationType:t,conversationId:o},error:{message:"\u89E3\u6790\u5DF2\u7ED1\u5B9A\u673A\u5668\u4EBA\u540D\u79F0\u5931\u8D25",data:m}})),false));return c.set(l,{expiresAt:0,task:g}),g}var Sn=300*1e3,Zt=new WeakMap,In=new WeakMap;function Ve(e,t,n=false){let r=e.getGeneration(),o=In.get(e);(o===void 0||o.generation!==r)&&(o={generation:r,tokens:new Map},In.set(e,o));let a=o.tokens.get(t),s=!n&&a!==void 0&&a.readers>0?a:{readers:0};s.readers+=1,o.tokens.set(t,s);let i=()=>e.getGeneration()===r&&o.tokens.get(t)===s;return {isCurrent:i,finish(){s.readers-=1;},commit(c){return i()?(e.setSenderProfileCache({...e.getSenderProfileCache(),[t]:c}),true):false}}}var Qt=new WeakMap,er=new WeakMap;function Ke(e,t){let n=t.getGeneration(),r=e.get(t);return (r===void 0||r.generation!==n)&&(r={generation:n,tasks:new Map},e.set(t,r)),r.tasks}function Pn(e,t){return e===void 0?t===void 0?0:-1:t===void 0?1:e.length!==t.length?e.length>t.length?1:-1:e===t?0:e>t?1:-1}var hn=new WeakMap;function O(e){return (e??"").trim()}function En(e,t,n){let r=O(t.nickname),o=O(t.avatar);return n?.source==="robot-directory"?{source:"robot-directory",remark:O(t.remark),nickname:r!==""&&r!==e?r:n.nickname,avatar:o!==""?o:n.avatar}:{remark:O(t.remark),nickname:r,avatar:o}}function X(e){let t=hn.get(e),n=e.getGeneration();return (t===void 0||t.generation!==n)&&(t={generation:n,groups:new Map},hn.set(e,t)),t}function pe(e,t,n,r={}){let o=X(e).groups.get(t);if(o===void 0||o.size===0)return n;let a={...n};for(let[s,i]of o){let c=n[s];if((i===""?c===void 0:c===i)&&r.reconcile===true){o.delete(s);continue}i===""?delete a[s]:a[s]=i;}return o.size===0&&X(e).groups.delete(t),a}function Tn(e,t,n){let r=X(e).groups.get(t);if(r!==void 0){if(n===void 0){X(e).groups.delete(t);return}r.delete(n.trim()),r.size===0&&X(e).groups.delete(t);}}function H(e,t,n,r){e.getDiagnostics().record("warn","chat-kit","profile",t,()=>({...r===void 0?{}:{data:r},error:{message:"\u8D44\u6599\u9884\u70ED\u5931\u8D25",data:n}}));}function nr(e,t,n){let r=e.getClient(),o=e.getCredentials().userId;if(t===""||t==="system"||t===o||r===null)return Promise.resolve(false);let a=n?.forceRefresh===true,s=Ke(Zt,e),i=a?void 0:s.get(t);if(i!==void 0)return i;let c=e.getSenderProfileCache();if(!a&&c[t]!==void 0)return Promise.resolve(true);c[t]===void 0&&e.setSenderProfileCache({...c,[t]:{remark:"",nickname:"",avatar:""}});let l=Ve(e,t,a),f=r.contact.getProfile(t,a?{forceRefresh:true}:void 0).then(g=>{if(!l.isCurrent())return false;if(g===null){let m=e.getSenderProfileCache()[t];if(m?.remark===""&&m.nickname===""&&m.avatar===""){let C={...e.getSenderProfileCache()};delete C[t],e.setSenderProfileCache(C);}return true}return l.commit(En(t,g,e.getSenderProfileCache()[t])),true}).catch(g=>{if(!l.isCurrent())return false;if(!a){let m={...e.getSenderProfileCache()};delete m[t],e.setSenderProfileCache(m);}return e.getDiagnostics().record("warn","chat-kit","profile","sender-profile-resolve-failed",()=>({data:{userId:t},error:{message:"\u89E3\u6790\u53D1\u9001\u8005\u8D44\u6599\u5931\u8D25",data:g}})),false}).finally(()=>{l.finish(),s.get(t)===f&&s.delete(t);});return s.set(t,f),f}function Rn(e,t,n){let r=e.getClient();if(t===""||r===null)return Promise.resolve(false);let o=n?.forceRefresh===true,a=Ke(Qt,e),s=o?void 0:a.get(t);if(s!==void 0)return s;let i=e.getGroupMemberNames(),c=e.getGeneration(),l=Ue(e,"group",t,{forceRefresh:o,isCurrent:()=>e.getGeneration()===c});if(!o&&i[t]!==void 0)return l.then(()=>true);let f=i[t]!==void 0;f||e.setGroupMemberNames({...i,[t]:{}});let g=c,m=()=>{if(f||e.getGeneration()!==g)return;let p={...e.getGroupMemberNames()};delete p[t],e.setGroupMemberNames(p);},C=Promise.all([r.group.getMemberNames(t,{forceRefresh:o}),l]).then(([p])=>e.getGeneration()!==g?false:p===null?(m(),false):(e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:pe(e,t,p,{reconcile:true})}),true)).catch(p=>(m(),e.getGeneration()===g&&H(e,"group-member-name-resolve-failed",p,{groupId:t}),false)).finally(()=>{!o&&a.get(t)===C&&a.delete(t);});return o||a.set(t,C),C}function tr(e,t,n,r){let o=e.getClient();if(o===null||t===""||r?.isCurrent?.()===false)return Promise.resolve(false);let a=r?.forceRefresh===true,s=e.getGeneration(),i=Ue(e,"channel",t,{forceRefresh:a,isCurrent:()=>e.getGeneration()===s&&r?.isCurrent?.()!==false}),c=e.getChannelMemberProfiles()[t]??{},l=[...new Set(n.map(d=>d.trim()).filter(d=>d!==""&&d!=="system"))].filter(d=>a||c[d]===void 0||c[d].expiresAt<=Date.now());if(l.length===0)return i.then(()=>true);let f=Ke(er,e),g=`${t}:${[...l].sort().join(",")}`,m=a?void 0:f.get(g);if(m!==void 0)return m;let C=s,p=Promise.all([o.channel.getMembersByIds(t,l,a?{forceRefresh:true}:void 0),i]).then(([d])=>{if(e.getGeneration()!==C||r?.isCurrent?.()===false)return false;let M=Date.now()+Sn,S={...e.getChannelMemberProfiles()[t]??{}};for(let A of d){let x=S[A.userId];x!==void 0&&Pn(A.updateVersion,x.updateVersion)<0||(S[A.userId]={displayName:A.displayName,...A.avatar===void 0?{}:{avatar:A.avatar},role:A.role,...A.updateVersion===void 0?{}:{updateVersion:A.updateVersion},expiresAt:M});}return e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[t]:S}),true}).catch(d=>(e.getGeneration()===C&&e.getDiagnostics().record("warn","chat-kit","profile","channel-members-resolve-failed",()=>({conversation:{conversationType:"channel",conversationId:t},error:{message:"\u89E3\u6790 CHANNEL \u6210\u5458\u8D44\u6599\u5931\u8D25",data:d}})),false)).finally(()=>{!a&&f.get(g)===p&&f.delete(g);});return a||f.set(g,p),p}function rr(e,t,n={}){let r=t.body.system;if(t.contentType!=="system"||r?.eventType!=="group_member_renamed")return;let o=new Set((n.preserveUserIds??[]).map(a=>a.trim()).filter(Boolean));for(let a of r.targetUserIds??[]){let s=a.trim();o.has(s)||Tn(e,t.conversationId,s);}Rn(e,t.conversationId,{forceRefresh:true});}function or(e,t,n){let r={};for(let o of n)o.nickName!==""&&(r[o.userId]=o.nickName);e.setGroupMemberNames({...e.getGroupMemberNames(),[t]:pe(e,t,r)});}function ar(e,t,n,r){let o=t.trim(),a=n.trim();if(o===""||a==="")return;let s=r.trim(),i=X(e),c=i.groups.get(o)??new Map;c.set(a,s),i.groups.set(o,c);let l=e.getGroupMemberNames()[o];if(l===void 0)return;let f={...l};s===""?delete f[a]:f[a]=s,e.setGroupMemberNames({...e.getGroupMemberNames(),[o]:f});}function ir(e,t,n={}){let r=t.trim();if(r===""||(Tn(e,r),n.clearCachedNames!==true))return;let o=e.getGroupMemberNames();if(o[r]===void 0)return;let a={...o};delete a[r],e.setGroupMemberNames(a);}function sr(e){let t=e.getClient(),n=e.getCredentials().userId;if(n===""||t===null||e.getSenderProfileCache()[n]!==void 0)return;let r=e.getGeneration();t.contact.getProfile(n).then(o=>{if(o===null||e.getGeneration()!==r)return;let a=O(o.remark),s=O(o.nickname),i=O(o.avatar);(a!==""||s!==""||i!=="")&&e.getSenderProfileCache()[n]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[n]:{remark:a,nickname:s,avatar:i}});}).catch(o=>{e.getGeneration()===r&&H(e,"self-profile-prefetch-failed",o,{userId:n});});}async function cr(e,t){let n=e.getClient();if(n===null)return;let r=e.getGeneration(),o=[],a=[];for(let s of t){let i=s.userId;e.getSenderProfileCache()[i]===void 0&&o.push((async()=>{let c;try{c=await n.contact.peekProfile(i);}catch(m){e.getGeneration()===r&&H(e,"member-avatar-prefetch-failed",m,{userId:i});return}if(c===null||e.getGeneration()!==r)return;let l=O(c.value.remark),f=O(c.value.nickname),g=O(c.value.avatar);(l!==""||f!==""||g!=="")&&e.getSenderProfileCache()[i]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[i]:{remark:l,nickname:f,avatar:g}}),c.stale&&a.push(i);})());}await Promise.allSettled(o),e.getGeneration()===r&&ze(e,a,void 0);}async function dr(e,t,n,r){let o=e.getClient();if(o===null)return;let a=e.getCredentials().userId,s=e.getGeneration(),i=[],c=[],l=false,f=t[0]?.conversationType;f==="group"&&e.getGroupMemberNames()[n]===void 0&&i.push((async()=>{let m;try{m=await o.group.peekMemberNames(n);}catch(C){e.getGeneration()===s&&H(e,"group-member-name-prefetch-failed",C,{groupId:n});return}m===null||e.getGeneration()!==s||(e.getGroupMemberNames()[n]===void 0&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:pe(e,n,m.value)}),m.stale&&(l=true));})());let g=[...new Set(t.map(m=>m.senderId).filter(m=>m!==""&&m!=="system"&&m!==a))];f==="channel"&&g.length>0&&i.push((async()=>{let m;try{m=await o.channel.getMembersByIds(n,g);}catch(d){e.getGeneration()===s&&H(e,"channel-member-prefetch-failed",d,{conversation:{conversationType:"channel",conversationId:n}});return}if(e.getGeneration()!==s||r?.isCurrent?.()===false)return;let C=Date.now()+Sn,p={...e.getChannelMemberProfiles()[n]??{}};for(let d of m){let M=p[d.userId];M!==void 0&&Pn(d.updateVersion,M.updateVersion)<0||(p[d.userId]={displayName:d.displayName,...d.avatar===void 0?{}:{avatar:d.avatar},role:d.role,...d.updateVersion===void 0?{}:{updateVersion:d.updateVersion},expiresAt:C});}e.setChannelMemberProfiles({...e.getChannelMemberProfiles(),[n]:p});})());for(let m of g)e.getSenderProfileCache()[m]===void 0&&i.push((async()=>{let C;try{C=await o.contact.peekProfile(m);}catch(S){e.getGeneration()===s&&H(e,"sender-profile-prefetch-failed",S,{userId:m});return}if(C===null||e.getGeneration()!==s)return;let p=O(C.value.remark),d=O(C.value.nickname),M=O(C.value.avatar);(p!==""||d!==""||M!=="")&&e.getSenderProfileCache()[m]===void 0&&e.setSenderProfileCache({...e.getSenderProfileCache(),[m]:{remark:p,nickname:d,avatar:M}}),C.stale&&c.push(m);})());await Promise.allSettled(i),e.getGeneration()===s&&ze(e,c,l?n:void 0);}function ze(e,t,n){let r=e.getClient();if(r===null)return;let o=e.getGeneration();n!==void 0&&r.group.getMemberNames(n,{forceRefresh:true}).then(a=>{a!==null&&e.getGeneration()===o&&e.setGroupMemberNames({...e.getGroupMemberNames(),[n]:pe(e,n,a,{reconcile:true})});}).catch(a=>{e.getGeneration()===o&&H(e,"group-member-name-refresh-failed",a,{groupId:n});});for(let a of t){let s=Ve(e,a,true);r.contact.getProfile(a,{forceRefresh:true}).then(i=>{if(i===null||!s.isCurrent())return;let c=e.getSenderProfileCache()[a],l=En(a,i,c);(c===void 0||c.remark!==l.remark||c.nickname!==l.nickname||c.avatar!==l.avatar)&&s.commit(l);}).catch(i=>{s.isCurrent()&&H(e,"sender-profile-refresh-failed",i,{userId:a});}).finally(()=>s.finish());}}async function $o(e,t){let n=U(e),r=t.keyword.trim();return V(n,()=>{switch(t.conversation.conversationType){case "direct":return n.inDirect({conversationType:"direct",conversationId:t.conversation.conversationId},r);case "group":return n.inGroup({conversationType:"group",conversationId:t.conversation.conversationId},r);case "channel":return n.inChannel({conversationType:"channel",conversationId:t.conversation.conversationId},r);case "robot":return n.inRobot({conversationType:"robot",conversationId:t.conversation.conversationId},r)}})}async function Xo(e,t){let n=U(e),r=t.keyword.trim();return V(n,()=>n.texts(t.conversation,r))}function Yo(e,t){let n=U(e),r=t.keyword?.trim();return V(n,()=>n.files(t.conversation,r===void 0||r===""?void 0:r))}function Jo(e,t){let n=U(e);return V(n,()=>n.images(t.conversation))}function qo(e,t){let n=U(e);return V(n,()=>n.videos(t.conversation))}function Zo(e,t){let n=U(e);return V(n,()=>n.voices(t.conversation))}function Qo(e,t){let n=U(e);return V(n,()=>n.next(t))}function U(e){let t=e.getClient();if(t===null)throw new Error("IM client is not available");return t.search.messages}async function V(e,t){let n=await t();for(let r=0;r<5;r+=1){if(n.items.length>0||n.exhausted||r===4)return {results:n.items,...n.nextPageToken===void 0?{}:{nextPageToken:n.nextPageToken},exhausted:n.exhausted};if(n.nextPageToken===void 0)throw new Error("IM search page is missing nextPageToken");n=await e.next(n.nextPageToken);}throw new Error("Unreachable search pagination state")}export{Ao as $,ro as A,ar as Aa,st as B,ir as Ba,oo as C,sr as Ca,ao as D,lr as Da,ct as E,$o as Ea,io as F,Xo as Fa,so as G,Yo as Ga,ke as H,Jo as Ha,_e as I,qo as Ia,un as J,Zo as Ja,mo as K,Qo as Ka,go as L,po as M,mn as N,gn as O,j as P,ut as Q,pn as R,vn as S,oe as T,Ne as U,vt as V,To as W,yt as X,Ro as Y,wo as Z,Cn as _,kn as a,Ct as aa,_n as b,ko as ba,Nn as c,_o as ca,Dn as d,No as da,me as e,Do as ea,Hn as f,Oo as fa,we as g,Go as ga,Vn as h,St as ha,an as i,Et as ia,Wn as j,kt as ja,Xn as k,_t as ka,Yn as l,Nt as la,Jn as m,Dt as ma,Cr as n,Lt as na,Mr as o,Ft as oa,Qn as p,Ht as pa,br as q,Ut as qa,Sr as r,Wt as ra,Pr as s,$t as sa,Tr as t,Vo as ta,Zr as u,Ve as ua,ot as v,nr as va,at as w,Rn as wa,no as x,tr as xa,fn as y,rr as ya,it as z,or as za};