@tencent-rtc/mcp 1.0.7 → 1.1.6

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 (365) hide show
  1. package/README.md +8 -4
  2. package/index.js +2 -0
  3. package/index.js.map +1 -1
  4. package/libs/TLSSigAPIv2.d.ts +134 -0
  5. package/libs/TLSSigAPIv2.js +243 -0
  6. package/package.json +1 -1
  7. package/resource/doc/chatuikit/react/chat_window_integration.md +92 -0
  8. package/resource/doc/chatuikit/react/components/chat.md +44 -0
  9. package/resource/doc/chatuikit/react/components/chatheader.md +189 -0
  10. package/resource/doc/chatuikit/react/components/conversation-list.md +1017 -0
  11. package/resource/doc/chatuikit/react/components/message-input.md +950 -0
  12. package/resource/doc/chatuikit/react/components/message-list.md +485 -0
  13. package/resource/doc/chatuikit/react/components/tuikit.md +80 -0
  14. package/resource/doc/chatuikit/react/create-group.md +23 -0
  15. package/resource/doc/chatuikit/react/init.md +26 -0
  16. package/resource/doc/chatuikit/react/integration.md +14 -10
  17. package/resource/doc/chatuikit/vue/chat_window_integration.md +155 -0
  18. package/resource/doc/chatuikit/vue/components/chat.md +50 -0
  19. package/resource/doc/chatuikit/{vue3 → vue}/components/chatheader.md +1 -1
  20. package/resource/doc/chatuikit/vue/components/conversation-list.md +770 -0
  21. package/resource/doc/chatuikit/{vue3/components/MessageInput.md → vue/components/message-input.md} +4 -1
  22. package/resource/doc/chatuikit/vue/components/message-list.md +662 -0
  23. package/resource/doc/chatuikit/vue/components/tuikit.md +45 -0
  24. package/resource/doc/chatuikit/vue/create-group.md +25 -0
  25. package/resource/doc/chatuikit/vue/init.md +40 -0
  26. package/resource/doc/chatuikit/{vue3 → vue}/integration.md +34 -74
  27. package/resource/doc/livekit/vue/components/barrage.md +616 -0
  28. package/resource/doc/livekit/vue/components/broadcast.md +595 -0
  29. package/resource/doc/livekit/vue/components/co-guest-panel.md +130 -0
  30. package/resource/doc/livekit/vue/components/live-audience-list.md +282 -0
  31. package/resource/doc/livekit/vue/components/live-list.md +200 -0
  32. package/resource/doc/livekit/vue/components/live-player.md +269 -0
  33. package/resource/doc/livekit/vue/components/live-scene-panel.md +175 -0
  34. package/resource/doc/livekit/vue/components/live-view.md +398 -0
  35. package/resource/doc/livekit/vue/components/stream-mixer.md +446 -0
  36. package/resource/doc/livekit/vue/states/live-state.md +3591 -0
  37. package/resource/doc/roomkit/vue/states/device-state.md +369 -0
  38. package/resource/doc/roomkit/vue/states/login-state.md +59 -0
  39. package/resource/doc/roomkit/vue/states/room-list-state.md +355 -0
  40. package/resource/doc/roomkit/vue/states/room-participant-state.md +388 -0
  41. package/server-config.js +35 -0
  42. package/server-config.js.map +1 -0
  43. package/tools/call/{get-native-call-integration-guide.js → get-native-call-integration.js} +5 -6
  44. package/tools/call/get-native-call-integration.js.map +1 -0
  45. package/tools/call/{get-web-call-integration-guide.js → get-web-call-integration.js} +7 -7
  46. package/tools/call/get-web-call-integration.js.map +1 -0
  47. package/tools/chat/create-group.js +30 -0
  48. package/tools/chat/create-group.js.map +1 -0
  49. package/tools/chat/get-chat-faq.js +3 -3
  50. package/tools/chat/get-chat-faq.js.map +1 -1
  51. package/tools/chat/get-native-chat-integration.js +34 -0
  52. package/tools/chat/get-native-chat-integration.js.map +1 -0
  53. package/tools/chat/get-web-chat-component-detail.js +9 -5
  54. package/tools/chat/get-web-chat-component-detail.js.map +1 -1
  55. package/tools/chat/get-web-chat-integration.js +37 -0
  56. package/tools/chat/get-web-chat-integration.js.map +1 -0
  57. package/tools/chat/get-web-chat-uikit-init.js +30 -0
  58. package/tools/chat/get-web-chat-uikit-init.js.map +1 -0
  59. package/tools/chat/get-web-chat-window-integration.js +37 -0
  60. package/tools/chat/get-web-chat-window-integration.js.map +1 -0
  61. package/tools/common/get-usersig.js +31 -26
  62. package/tools/common/get-usersig.js.map +1 -1
  63. package/tools/common/present-framework-choice.js +9 -19
  64. package/tools/common/present-framework-choice.js.map +1 -1
  65. package/tools/common/record-prompt.js +7 -8
  66. package/tools/common/record-prompt.js.map +1 -1
  67. package/tools/common/record-result.js +9 -8
  68. package/tools/common/record-result.js.map +1 -1
  69. package/tools/index.js +32 -13
  70. package/tools/index.js.map +1 -1
  71. package/tools/live/get-web-live-component-detail.js +34 -0
  72. package/tools/live/get-web-live-component-detail.js.map +1 -0
  73. package/tools/live/get-web-live-state-detail.js +34 -0
  74. package/tools/live/get-web-live-state-detail.js.map +1 -0
  75. package/tools/room/get-web-room-state-detail.js +34 -0
  76. package/tools/room/get-web-room-state-detail.js.map +1 -0
  77. package/tools/rtcengine/get-rtcengine-web-sdk-integration-guide.js +35 -0
  78. package/tools/rtcengine/get-rtcengine-web-sdk-integration-guide.js.map +1 -0
  79. package/tools/rtcengine/{get-rtcenigne-faq.js → get-trtc-web-sdk-faq.js} +5 -5
  80. package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +1 -0
  81. package/tools/rtcengine/get-trtc-web-sdk-integration-guide.js +36 -0
  82. package/tools/rtcengine/get-trtc-web-sdk-integration-guide.js.map +1 -0
  83. package/utils/generate-usersig.js +7 -9
  84. package/utils/generate-usersig.js.map +1 -1
  85. package/utils/handle-component-name.js +57 -0
  86. package/utils/handle-component-name.js.map +1 -0
  87. package/utils/handle-framework.js +9 -0
  88. package/utils/handle-framework.js.map +1 -0
  89. package/utils/handle-state-name.js +29 -0
  90. package/utils/handle-state-name.js.map +1 -0
  91. package/@tencent/aegis-node-sdk/CHANGELOG.md +0 -8
  92. package/@tencent/aegis-node-sdk/LICENSE +0 -21
  93. package/@tencent/aegis-node-sdk/README.md +0 -562
  94. package/@tencent/aegis-node-sdk/lib/aegis.min.js +0 -1
  95. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/config.d.ts +0 -14
  96. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/global.d.ts +0 -1
  97. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/index.d.ts +0 -9
  98. package/@tencent/aegis-node-sdk/lib/packages/core/src/constant/report-ignore.d.ts +0 -2
  99. package/@tencent/aegis-node-sdk/lib/packages/core/src/core.d.ts +0 -85
  100. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/afterRequestHooks.d.ts +0 -3
  101. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/beforeRequestHooks.d.ts +0 -9
  102. package/@tencent/aegis-node-sdk/lib/packages/core/src/hooks/modifyRequestHooks.d.ts +0 -3
  103. package/@tencent/aegis-node-sdk/lib/packages/core/src/index.d.ts +0 -9
  104. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/config.d.ts +0 -62
  105. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/env.d.ts +0 -11
  106. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/index.d.ts +0 -4
  107. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/log.d.ts +0 -130
  108. package/@tencent/aegis-node-sdk/lib/packages/core/src/interface/send.d.ts +0 -34
  109. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/format.d.ts +0 -2
  110. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/index.d.ts +0 -18
  111. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/length-limit.d.ts +0 -8
  112. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/pv.d.ts +0 -8
  113. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/remove-payload.d.ts +0 -2
  114. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/repeat-limit.d.ts +0 -4
  115. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/report.d.ts +0 -10
  116. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/sample.d.ts +0 -3
  117. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/throttle.d.ts +0 -3
  118. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/index.d.ts +0 -34
  119. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/jwt.d.ts +0 -12
  120. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/ot-js.d.ts +0 -14
  121. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/trace/uuid.d.ts +0 -2
  122. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/whitelist.d.ts +0 -12
  123. package/@tencent/aegis-node-sdk/lib/packages/core/src/pipes/write-before.d.ts +0 -3
  124. package/@tencent/aegis-node-sdk/lib/packages/core/src/plugin.d.ts +0 -33
  125. package/@tencent/aegis-node-sdk/lib/packages/core/src/polyfill.d.ts +0 -0
  126. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/destroy.d.ts +0 -2
  127. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/event-emitter.d.ts +0 -18
  128. package/@tencent/aegis-node-sdk/lib/packages/core/src/util/index.d.ts +0 -60
  129. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/index.d.ts +0 -15
  130. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/interface/selector.d.ts +0 -5
  131. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/pipes/batch-report-pipe.d.ts +0 -6
  132. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_base.d.ts +0 -18
  133. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/protocol/protocol_http.d.ts +0 -12
  134. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/ip_selector.d.ts +0 -10
  135. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/polaris_selector.d.ts +0 -20
  136. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/selector/selector_base.d.ts +0 -27
  137. package/@tencent/aegis-node-sdk/lib/packages/node-sdk/src/util/eval_require.d.ts +0 -2
  138. package/@tencent/aegis-node-sdk/package.json +0 -19
  139. package/@tencent/polaris/README.md +0 -407
  140. package/@tencent/polaris/dist/consumer/health.d.ts +0 -126
  141. package/@tencent/polaris/dist/consumer/health.js +0 -283
  142. package/@tencent/polaris/dist/consumer/health.js.map +0 -1
  143. package/@tencent/polaris/dist/consumer/index.d.ts +0 -120
  144. package/@tencent/polaris/dist/consumer/index.js +0 -348
  145. package/@tencent/polaris/dist/consumer/index.js.map +0 -1
  146. package/@tencent/polaris/dist/consumer/monitor.d.ts +0 -145
  147. package/@tencent/polaris/dist/consumer/monitor.js +0 -343
  148. package/@tencent/polaris/dist/consumer/monitor.js.map +0 -1
  149. package/@tencent/polaris/dist/consumer/selector.d.ts +0 -73
  150. package/@tencent/polaris/dist/consumer/selector.js +0 -316
  151. package/@tencent/polaris/dist/consumer/selector.js.map +0 -1
  152. package/@tencent/polaris/dist/errors.d.ts +0 -373
  153. package/@tencent/polaris/dist/errors.js +0 -154
  154. package/@tencent/polaris/dist/errors.js.map +0 -1
  155. package/@tencent/polaris/dist/global.d.ts +0 -16
  156. package/@tencent/polaris/dist/global.js +0 -18
  157. package/@tencent/polaris/dist/global.js.map +0 -1
  158. package/@tencent/polaris/dist/index.d.ts +0 -62
  159. package/@tencent/polaris/dist/index.js +0 -145
  160. package/@tencent/polaris/dist/index.js.map +0 -1
  161. package/@tencent/polaris/dist/instance.d.ts +0 -109
  162. package/@tencent/polaris/dist/instance.js +0 -38
  163. package/@tencent/polaris/dist/instance.js.map +0 -1
  164. package/@tencent/polaris/dist/limiter/bucket.d.ts +0 -51
  165. package/@tencent/polaris/dist/limiter/bucket.js +0 -152
  166. package/@tencent/polaris/dist/limiter/bucket.js.map +0 -1
  167. package/@tencent/polaris/dist/limiter/index.d.ts +0 -73
  168. package/@tencent/polaris/dist/limiter/index.js +0 -149
  169. package/@tencent/polaris/dist/limiter/index.js.map +0 -1
  170. package/@tencent/polaris/dist/limiter/ratelimit.d.ts +0 -27
  171. package/@tencent/polaris/dist/limiter/ratelimit.js +0 -134
  172. package/@tencent/polaris/dist/limiter/ratelimit.js.map +0 -1
  173. package/@tencent/polaris/dist/limiter/ratelimiter/base.d.ts +0 -17
  174. package/@tencent/polaris/dist/limiter/ratelimiter/base.js +0 -15
  175. package/@tencent/polaris/dist/limiter/ratelimiter/base.js.map +0 -1
  176. package/@tencent/polaris/dist/limiter/ratelimiter/global.d.ts +0 -59
  177. package/@tencent/polaris/dist/limiter/ratelimiter/global.js +0 -397
  178. package/@tencent/polaris/dist/limiter/ratelimiter/global.js.map +0 -1
  179. package/@tencent/polaris/dist/limiter/ratelimiter/index.d.ts +0 -3
  180. package/@tencent/polaris/dist/limiter/ratelimiter/index.js +0 -19
  181. package/@tencent/polaris/dist/limiter/ratelimiter/index.js.map +0 -1
  182. package/@tencent/polaris/dist/limiter/ratelimiter/local.d.ts +0 -17
  183. package/@tencent/polaris/dist/limiter/ratelimiter/local.js +0 -52
  184. package/@tencent/polaris/dist/limiter/ratelimiter/local.js.map +0 -1
  185. package/@tencent/polaris/dist/location.d.ts +0 -48
  186. package/@tencent/polaris/dist/location.js +0 -67
  187. package/@tencent/polaris/dist/location.js.map +0 -1
  188. package/@tencent/polaris/dist/logging.d.ts +0 -106
  189. package/@tencent/polaris/dist/logging.js +0 -130
  190. package/@tencent/polaris/dist/logging.js.map +0 -1
  191. package/@tencent/polaris/dist/metadata.d.ts +0 -78
  192. package/@tencent/polaris/dist/metadata.js +0 -119
  193. package/@tencent/polaris/dist/metadata.js.map +0 -1
  194. package/@tencent/polaris/dist/plugins/breaker/polaris.d.ts +0 -47
  195. package/@tencent/polaris/dist/plugins/breaker/polaris.js +0 -162
  196. package/@tencent/polaris/dist/plugins/breaker/polaris.js.map +0 -1
  197. package/@tencent/polaris/dist/plugins/lb/base.d.ts +0 -24
  198. package/@tencent/polaris/dist/plugins/lb/base.js +0 -32
  199. package/@tencent/polaris/dist/plugins/lb/base.js.map +0 -1
  200. package/@tencent/polaris/dist/plugins/lb/edf.d.ts +0 -24
  201. package/@tencent/polaris/dist/plugins/lb/edf.js +0 -77
  202. package/@tencent/polaris/dist/plugins/lb/edf.js.map +0 -1
  203. package/@tencent/polaris/dist/plugins/lb/hashring.d.ts +0 -24
  204. package/@tencent/polaris/dist/plugins/lb/hashring.js +0 -53
  205. package/@tencent/polaris/dist/plugins/lb/hashring.js.map +0 -1
  206. package/@tencent/polaris/dist/plugins/lb/sticky.d.ts +0 -31
  207. package/@tencent/polaris/dist/plugins/lb/sticky.js +0 -88
  208. package/@tencent/polaris/dist/plugins/lb/sticky.js.map +0 -1
  209. package/@tencent/polaris/dist/plugins/lb/swrr.d.ts +0 -25
  210. package/@tencent/polaris/dist/plugins/lb/swrr.js +0 -72
  211. package/@tencent/polaris/dist/plugins/lb/swrr.js.map +0 -1
  212. package/@tencent/polaris/dist/plugins/lb/wr.d.ts +0 -17
  213. package/@tencent/polaris/dist/plugins/lb/wr.js +0 -50
  214. package/@tencent/polaris/dist/plugins/lb/wr.js.map +0 -1
  215. package/@tencent/polaris/dist/plugins/lb/wrr.d.ts +0 -19
  216. package/@tencent/polaris/dist/plugins/lb/wrr.js +0 -81
  217. package/@tencent/polaris/dist/plugins/lb/wrr.js.map +0 -1
  218. package/@tencent/polaris/dist/plugins/logging/console.d.ts +0 -10
  219. package/@tencent/polaris/dist/plugins/logging/console.js +0 -38
  220. package/@tencent/polaris/dist/plugins/logging/console.js.map +0 -1
  221. package/@tencent/polaris/dist/plugins/naming/local-server/index.d.ts +0 -32
  222. package/@tencent/polaris/dist/plugins/naming/local-server/index.js +0 -88
  223. package/@tencent/polaris/dist/plugins/naming/local-server/index.js.map +0 -1
  224. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.d.ts +0 -124
  225. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js +0 -398
  226. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/base.js.map +0 -1
  227. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.d.ts +0 -27
  228. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js +0 -287
  229. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/discover.js.map +0 -1
  230. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.d.ts +0 -15
  231. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js +0 -43
  232. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/index.js.map +0 -1
  233. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.d.ts +0 -28
  234. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js +0 -249
  235. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/monitor.js.map +0 -1
  236. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.d.ts +0 -19
  237. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js +0 -222
  238. package/@tencent/polaris/dist/plugins/naming/polaris-server/adapter/ratelimit.js.map +0 -1
  239. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.d.ts +0 -26
  240. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js +0 -99
  241. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/bidi.js.map +0 -1
  242. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.d.ts +0 -60
  243. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js +0 -259
  244. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/index.js.map +0 -1
  245. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/discover.proto +0 -24
  246. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/monitor.proto +0 -18
  247. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/grpc/pb/ratelimit.proto +0 -12
  248. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.d.ts +0 -39
  249. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js +0 -115
  250. package/@tencent/polaris/dist/plugins/naming/polaris-server/connector/http/index.js.map +0 -1
  251. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/api.proto +0 -24
  252. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/client.proto +0 -22
  253. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/model.proto +0 -28
  254. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/ratelimit.proto +0 -80
  255. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/request.proto +0 -18
  256. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/response.proto +0 -65
  257. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/routing.proto +0 -66
  258. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/service.proto +0 -95
  259. package/@tencent/polaris/dist/plugins/naming/polaris-server/discover-pb/types.d.ts +0 -1568
  260. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.d.ts +0 -36
  261. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.js +0 -51
  262. package/@tencent/polaris/dist/plugins/naming/polaris-server/index.js.map +0 -1
  263. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/api.proto +0 -18
  264. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/circuitbreak.proto +0 -67
  265. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/request.proto +0 -82
  266. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/response.proto +0 -11
  267. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkcache.proto +0 -46
  268. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdkconfiguration.proto +0 -16
  269. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/sdktoken.proto +0 -10
  270. package/@tencent/polaris/dist/plugins/naming/polaris-server/monitor-pb/types.d.ts +0 -1102
  271. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.d.ts +0 -29
  272. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js +0 -77
  273. package/@tencent/polaris/dist/plugins/naming/polaris-server/pool.js.map +0 -1
  274. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/api.proto +0 -12
  275. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/ratelimit.proto +0 -28
  276. package/@tencent/polaris/dist/plugins/naming/polaris-server/ratelimit-pb/types.d.ts +0 -395
  277. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.d.ts +0 -13
  278. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js +0 -116
  279. package/@tencent/polaris/dist/plugins/naming/polaris-server/rules.js.map +0 -1
  280. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.d.ts +0 -67
  281. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.js +0 -67
  282. package/@tencent/polaris/dist/plugins/naming/polaris-server/types.js.map +0 -1
  283. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.d.ts +0 -99
  284. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js +0 -217
  285. package/@tencent/polaris/dist/plugins/naming/polaris-server/utils.js.map +0 -1
  286. package/@tencent/polaris/dist/plugins/registry/memory.d.ts +0 -10
  287. package/@tencent/polaris/dist/plugins/registry/memory.js +0 -50
  288. package/@tencent/polaris/dist/plugins/registry/memory.js.map +0 -1
  289. package/@tencent/polaris/dist/plugins/router/polaris/nearby.d.ts +0 -51
  290. package/@tencent/polaris/dist/plugins/router/polaris/nearby.js +0 -145
  291. package/@tencent/polaris/dist/plugins/router/polaris/nearby.js.map +0 -1
  292. package/@tencent/polaris/dist/plugins/router/polaris/rule.d.ts +0 -11
  293. package/@tencent/polaris/dist/plugins/router/polaris/rule.js +0 -174
  294. package/@tencent/polaris/dist/plugins/router/polaris/rule.js.map +0 -1
  295. package/@tencent/polaris/dist/plugins/router/trpc/canary.d.ts +0 -25
  296. package/@tencent/polaris/dist/plugins/router/trpc/canary.js +0 -36
  297. package/@tencent/polaris/dist/plugins/router/trpc/canary.js.map +0 -1
  298. package/@tencent/polaris/dist/plugins/router/trpc/env.d.ts +0 -10
  299. package/@tencent/polaris/dist/plugins/router/trpc/env.js +0 -34
  300. package/@tencent/polaris/dist/plugins/router/trpc/env.js.map +0 -1
  301. package/@tencent/polaris/dist/plugins/router/trpc/set.d.ts +0 -56
  302. package/@tencent/polaris/dist/plugins/router/trpc/set.js +0 -106
  303. package/@tencent/polaris/dist/plugins/router/trpc/set.js.map +0 -1
  304. package/@tencent/polaris/dist/plugins/shaping/unirate.d.ts +0 -31
  305. package/@tencent/polaris/dist/plugins/shaping/unirate.js +0 -124
  306. package/@tencent/polaris/dist/plugins/shaping/unirate.js.map +0 -1
  307. package/@tencent/polaris/dist/plugins/shaping/warmup.d.ts +0 -61
  308. package/@tencent/polaris/dist/plugins/shaping/warmup.js +0 -171
  309. package/@tencent/polaris/dist/plugins/shaping/warmup.js.map +0 -1
  310. package/@tencent/polaris/dist/plugins/weight/polaris.d.ts +0 -23
  311. package/@tencent/polaris/dist/plugins/weight/polaris.js +0 -159
  312. package/@tencent/polaris/dist/plugins/weight/polaris.js.map +0 -1
  313. package/@tencent/polaris/dist/plugins.d.ts +0 -619
  314. package/@tencent/polaris/dist/plugins.js +0 -91
  315. package/@tencent/polaris/dist/plugins.js.map +0 -1
  316. package/@tencent/polaris/dist/polaris.d.ts +0 -33
  317. package/@tencent/polaris/dist/polaris.js +0 -59
  318. package/@tencent/polaris/dist/polaris.js.map +0 -1
  319. package/@tencent/polaris/dist/provider/index.d.ts +0 -102
  320. package/@tencent/polaris/dist/provider/index.js +0 -168
  321. package/@tencent/polaris/dist/provider/index.js.map +0 -1
  322. package/@tencent/polaris/dist/registry.d.ts +0 -174
  323. package/@tencent/polaris/dist/registry.js +0 -660
  324. package/@tencent/polaris/dist/registry.js.map +0 -1
  325. package/@tencent/polaris/dist/rules.d.ts +0 -163
  326. package/@tencent/polaris/dist/rules.js +0 -24
  327. package/@tencent/polaris/dist/rules.js.map +0 -1
  328. package/@tencent/polaris/dist/scripts/postinstall.d.ts +0 -1
  329. package/@tencent/polaris/dist/scripts/postinstall.js +0 -71
  330. package/@tencent/polaris/dist/scripts/postinstall.js.map +0 -1
  331. package/@tencent/polaris/dist/service.d.ts +0 -18
  332. package/@tencent/polaris/dist/service.js +0 -3
  333. package/@tencent/polaris/dist/service.js.map +0 -1
  334. package/@tencent/polaris/dist/skeleton.d.ts +0 -87
  335. package/@tencent/polaris/dist/skeleton.js +0 -282
  336. package/@tencent/polaris/dist/skeleton.js.map +0 -1
  337. package/@tencent/polaris/dist/utils.d.ts +0 -36
  338. package/@tencent/polaris/dist/utils.js +0 -74
  339. package/@tencent/polaris/dist/utils.js.map +0 -1
  340. package/@tencent/polaris/dist/weak.d.ts +0 -11
  341. package/@tencent/polaris/dist/weak.js +0 -44
  342. package/@tencent/polaris/dist/weak.js.map +0 -1
  343. package/@tencent/polaris/package.json +0 -114
  344. package/libs/lib-generate-test-usersig-es.min.d.ts +0 -6
  345. package/libs/lib-generate-test-usersig-es.min.js +0 -2
  346. package/resource/doc/chatuikit/react/generate_UserSig.md +0 -306
  347. package/resource/doc/chatuikit/react/integrate_tuichat_only_react.md +0 -202
  348. package/resource/doc/chatuikit/react/integrate_tuichat_react.md +0 -279
  349. package/resource/doc/chatuikit/vue/generate_UserSig.md +0 -306
  350. package/resource/doc/chatuikit/vue/integrate_only_tuichat_Vue_web.md +0 -124
  351. package/resource/doc/chatuikit/vue/integrate_tuikit_Vue_web.md +0 -552
  352. package/streamableHttp.js +0 -74
  353. package/streamableHttp.js.map +0 -1
  354. package/tools/call/get-native-call-integration-guide.js.map +0 -1
  355. package/tools/call/get-web-call-integration-guide.js.map +0 -1
  356. package/tools/chat/get-native-chat-integration-guide.js +0 -34
  357. package/tools/chat/get-native-chat-integration-guide.js.map +0 -1
  358. package/tools/chat/get-web-chat-integration-guide.js +0 -35
  359. package/tools/chat/get-web-chat-integration-guide.js.map +0 -1
  360. package/tools/rtcengine/get-rtcengine-integration-guide.js +0 -33
  361. package/tools/rtcengine/get-rtcengine-integration-guide.js.map +0 -1
  362. package/tools/rtcengine/get-rtcenigne-faq.js.map +0 -1
  363. /package/resource/doc/chatuikit/{vue3 → vue}/components/avatar.md +0 -0
  364. /package/resource/doc/chatuikit/{vue3 → vue}/components/component-list.md +0 -0
  365. /package/resource/doc/chatuikit/{vue3 → vue}/components/userpicker.md +0 -0
@@ -0,0 +1,398 @@
1
+ This document provides a detailed introduction to the **live stream video component (LiveView)**. You can refer to the sample code in this document to integrate our pre-developed components into your existing project, or customize the style and layout according to your needs by following the component customization section in the document.
2
+
3
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027862798/7120df7bb00111f0bd1d5254001c06ec.png)
4
+
5
+
6
+ ## Core Features
7
+ <table>
8
+ <tr>
9
+ <td rowspan="1" colSpan="1" >**Feature Category**</td>
10
+
11
+ <td rowspan="1" colSpan="1" >**Specific Capacity**</td>
12
+ </tr>
13
+
14
+ <tr>
15
+ <td rowspan="1" colSpan="1" >**Smart stream switchover**</td>
16
+
17
+ <td rowspan="1" colSpan="1" >LiveView can switch stream types automatically based on the current user's identity (audience or host).<br>- Audience mode: The component plays ultra-low-latency video streams to ensure smooth viewing for millions of audience members while drastically reducing traffic costs.<br>- Connected mode: The component automatically switches to TRTC streaming, providing millisecond-level ultra-low latency to ensure real-time, clear interaction experience between connected users.</td>
18
+ </tr>
19
+
20
+ <tr>
21
+ <td rowspan="1" colSpan="1" >**Customizable UI**</td>
22
+
23
+ <td rowspan="1" colSpan="1" >To meet diverse business scenarios, LiveView provides custom UI slots, enabling full control over the co-broadcasting user's video stream area. You can rewrite the UI display, flexibly define the user's avatar, nickname, status, and other information, and easily create a unique visual experience that matches your brand style.</td>
24
+ </tr>
25
+ </table>
26
+
27
+
28
+ ## Component Integration
29
+
30
+ ### Step 1: Configuring the Environment and Activating the Service
31
+
32
+ Before quick integration, you need to refer to [preparations](https://write.woa.com/document/185222107981008896), meet the related environment configuration and activate the corresponding service.
33
+
34
+ ### Step 2: Dependency Installation
35
+
36
+
37
+
38
+
39
+ 【npm】
40
+ ``` bash
41
+ npm install tuikit-atomicx-vue3@latest @tencentcloud/uikit-base-component-vue3 --save
42
+ ```
43
+
44
+
45
+ 【pnpm】
46
+ ``` bash
47
+ pnpm add tuikit-atomicx-vue3@latest @tencentcloud/uikit-base-component-vue3
48
+ ```
49
+
50
+
51
+ 【yarn】
52
+ ``` bash
53
+ yarn add tuikit-atomicx-vue3@latest @tencentcloud/uikit-base-component-vue3
54
+ ```
55
+
56
+ ### Step 3: Joining the Live Room and Performing Voice Chat
57
+
58
+ Introduce and use LiveView in your project. Copy the following example code directly to your project to join the corresponding live streaming room for co-streaming.
59
+ ``` typescript
60
+ <template>
61
+ <UIKitProvider theme="dark" language="zh-CN">
62
+ <div class="app">
63
+ <LiveView />
64
+ </div>
65
+ </UIKitProvider>
66
+ </template>
67
+
68
+ <script setup lang="ts">
69
+ import { onMounted } from 'vue';
70
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
71
+ import { LiveView, useLoginState, useLiveState, useCoGuestState } from 'tuikit-atomicx-vue3';
72
+
73
+ const { login } = useLoginState();
74
+ const { joinLive } = useLiveState();
75
+ const { sendCoGuestRequest } = useCoGuestState();
76
+
77
+ async function initLogin() {
78
+ try {
79
+ await login({
80
+ sdkAppId: 0, // SDKAppID, see Step 1 to get
81
+ userId: '', // UserID, see Step 1 to get
82
+ userSig: '', // userSig, see Step 1 to get
83
+ });
84
+ } catch (error) {
85
+ console.error('login error:', error);
86
+ }
87
+ }
88
+
89
+ onMounted(async () => {
90
+ await initLogin();
91
+ // After the audience enters the live room
92
+ // LiveView starts VOD automatically with ultra-low latency
93
+ await joinLive({
94
+ liveId: 'existing live streaming room Id',
95
+ })
96
+ // The client can join the live room by calling the corresponding method and switch mic as needed.
97
+ // After the audience successfully goes on mic, LiveView autoplays TRTC streaming.
98
+ await sendCoGuestRequest();
99
+ });
100
+ </script>
101
+
102
+ <style>.app {width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center}</style>
103
+ ```
104
+
105
+ ## Component Customization
106
+
107
+ LiveView provides flexible component customization slots. These slots support adjusting the style and layout of elements like avatars, nicknames, and status based on your needs, and also allow customizing the video stream area UI for co-streaming. Below are usage examples for the slots.
108
+
109
+ #### Component Slot
110
+ <table>
111
+ <tr>
112
+ <td rowspan="1" colSpan="1" >**Name**</td>
113
+
114
+ <td rowspan="1" colSpan="1" >**Parameter**</td>
115
+
116
+ <td rowspan="1" colSpan="1" >**Description**</td>
117
+ </tr>
118
+
119
+ <tr>
120
+ <td rowspan="1" colSpan="1" >streamViewUI</td>
121
+
122
+ <td rowspan="1" colSpan="1" >userInfo</td>
123
+
124
+ <td rowspan="1" colSpan="1" >Display UI for custom seat</td>
125
+ </tr>
126
+ </table>
127
+
128
+ ``` java
129
+ // Example of using the streamViewUI slot
130
+ <LiveView>
131
+ <CustomSeatViewUI #streamViewUI></CustomSeatViewUI>
132
+ </LiveView>
133
+ ```
134
+ 1. `userInfo` defines the basic info and status of each seat in a live streaming room:
135
+
136
+ <table>
137
+ <tr>
138
+ <td rowspan="1" colSpan="1" >Parameter</td>
139
+
140
+ <td rowspan="1" colSpan="1" >Type</td>
141
+
142
+ <td rowspan="1" colSpan="1" >Required</td>
143
+
144
+ <td rowspan="1" colSpan="1" >Description</td>
145
+ </tr>
146
+
147
+ <tr>
148
+ <td rowspan="1" colSpan="1" >`userInfo`</td>
149
+
150
+ <td rowspan="1" colSpan="1" >`userInfo`</td>
151
+
152
+ <td rowspan="1" colSpan="1" >optional</td>
153
+
154
+ <td rowspan="1" colSpan="1" >User information of the current occupant in this seat. If the seat is empty, it is `undefined`.</td>
155
+ </tr>
156
+ </table>
157
+
158
+ ``` typescript
159
+ interface SeatInfo {
160
+ userInfo?: SeatUserInfo; // User info on the seat (optional)
161
+ }
162
+ ```
163
+ 2. `userInfo` defines the user details of each seat in a live streaming room:
164
+
165
+ <table>
166
+ <tr>
167
+ <td rowspan="1" colSpan="1" >Parameter</td>
168
+
169
+ <td rowspan="1" colSpan="1" >Type</td>
170
+
171
+ <td rowspan="1" colSpan="1" >Required</td>
172
+
173
+ <td rowspan="1" colSpan="1" >Description</td>
174
+ </tr>
175
+
176
+ <tr>
177
+ <td rowspan="1" colSpan="1" >`roomId`</td>
178
+
179
+ <td rowspan="1" colSpan="1" >`string`</td>
180
+
181
+ <td rowspan="1" colSpan="1" >Required</td>
182
+
183
+ <td rowspan="1" colSpan="1" >The unique identifier of the current live streaming room, used to distinguish different live streaming rooms</td>
184
+ </tr>
185
+
186
+ <tr>
187
+ <td rowspan="1" colSpan="1" >`userId`</td>
188
+
189
+ <td rowspan="1" colSpan="1" >`string`</td>
190
+
191
+ <td rowspan="1" colSpan="1" >Required</td>
192
+
193
+ <td rowspan="1" colSpan="1" >User's unique identifier must be unique in the entire system</td>
194
+ </tr>
195
+
196
+ <tr>
197
+ <td rowspan="1" colSpan="1" >`userName`</td>
198
+
199
+ <td rowspan="1" colSpan="1" >`string`</td>
200
+
201
+ <td rowspan="1" colSpan="1" >Required</td>
202
+
203
+ <td rowspan="1" colSpan="1" >The name displayed for users in live streams supports Chinese and English characters.</td>
204
+ </tr>
205
+
206
+ <tr>
207
+ <td rowspan="1" colSpan="1" >`avatarUrl`</td>
208
+
209
+ <td rowspan="1" colSpan="1" >`string`</td>
210
+
211
+ <td rowspan="1" colSpan="1" >Required</td>
212
+
213
+ <td rowspan="1" colSpan="1" >The complete URL address of the user profile photo, supporting HTTPS protocol</td>
214
+ </tr>
215
+
216
+ <tr>
217
+ <td rowspan="1" colSpan="1" >`microphoneStatus`</td>
218
+
219
+ <td rowspan="1" colSpan="1" >`DeviceStatus`</td>
220
+
221
+ <td rowspan="1" colSpan="1" >Required</td>
222
+
223
+ <td rowspan="1" colSpan="1" >Microphone status</td>
224
+ </tr>
225
+
226
+ <tr>
227
+ <td rowspan="1" colSpan="1" >`microphoneStatusReason`</td>
228
+
229
+ <td rowspan="1" colSpan="1" >`DeviceStatusReason`</td>
230
+
231
+ <td rowspan="1" colSpan="1" >Required</td>
232
+
233
+ <td rowspan="1" colSpan="1" >The cause for mic status change, to distinguish between user proactive operation and administrator operation</td>
234
+ </tr>
235
+
236
+ <tr>
237
+ <td rowspan="1" colSpan="1" >`cameraStatus`</td>
238
+
239
+ <td rowspan="1" colSpan="1" >`DeviceStatus`</td>
240
+
241
+ <td rowspan="1" colSpan="1" >Required</td>
242
+
243
+ <td rowspan="1" colSpan="1" >Camera status</td>
244
+ </tr>
245
+
246
+ <tr>
247
+ <td rowspan="1" colSpan="1" >`cameraStatusReason`</td>
248
+
249
+ <td rowspan="1" colSpan="1" >`DeviceStatusReason`</td>
250
+
251
+ <td rowspan="1" colSpan="1" >Required</td>
252
+
253
+ <td rowspan="1" colSpan="1" >The cause for camera status change, to distinguish between user proactive operation and administrator operation</td>
254
+ </tr>
255
+ </table>
256
+
257
+ ``` typescript
258
+ interface SeatUserInfo {
259
+ roomId: string; // Live streaming room ID
260
+ userId: string; // Unique user ID
261
+ userName: string; // User Display Name
262
+ avatarUrl: string; // User Avatar URL
263
+ microphoneStatus: DeviceStatus; // Microphone Status
264
+ allowOpenMicrophone: boolean; // Whether to allow turning on microphone
265
+ cameraStatus: DeviceStatus; // Camera Status
266
+ allowOpenCamera: boolean; // Whether to allow turning on camera
267
+ }
268
+
269
+ export type SeatUserInfo = {
270
+ liveId: string; // Live streaming room ID
271
+ userId: string; // Unique user ID
272
+ userName: string; // User Display Name
273
+ avatarUrl: string; // User Avatar URL
274
+ microphoneStatus: DeviceStatus; // Microphone Status
275
+ microphoneStatusReason: DeviceStatusReason; // Reason for the modification
276
+ cameraStatus: DeviceStatus; // Camera Status
277
+ cameraStatusReason: DeviceStatusReason; // Reason for the modification
278
+ }
279
+ ```
280
+ 3. `RegionInfo` defines the display area and hierarchical information of the seat in the video canvas:
281
+
282
+ <table>
283
+ <tr>
284
+ <td rowspan="1" colSpan="1" >Parameter</td>
285
+
286
+ <td rowspan="1" colSpan="1" >Type</td>
287
+
288
+ <td rowspan="1" colSpan="1" >Required</td>
289
+
290
+ <td rowspan="1" colSpan="1" >Description</td>
291
+ </tr>
292
+
293
+ <tr>
294
+ <td rowspan="1" colSpan="1" >`x`</td>
295
+
296
+ <td rowspan="1" colSpan="1" >`number`</td>
297
+
298
+ <td rowspan="1" colSpan="1" >Required</td>
299
+
300
+ <td rowspan="1" colSpan="1" >X-coordinate of the region's top-left corner relative to the canvas (pixel value)</td>
301
+ </tr>
302
+
303
+ <tr>
304
+ <td rowspan="1" colSpan="1" >`y`</td>
305
+
306
+ <td rowspan="1" colSpan="1" >`number`</td>
307
+
308
+ <td rowspan="1" colSpan="1" >Required</td>
309
+
310
+ <td rowspan="1" colSpan="1" >Y-coordinate of the region's top-left corner relative to the canvas (pixel value)</td>
311
+ </tr>
312
+
313
+ <tr>
314
+ <td rowspan="1" colSpan="1" >`w`</td>
315
+
316
+ <td rowspan="1" colSpan="1" >`number`</td>
317
+
318
+ <td rowspan="1" colSpan="1" >Required</td>
319
+
320
+ <td rowspan="1" colSpan="1" >Width of the region (pixel value), must be greater than 0</td>
321
+ </tr>
322
+
323
+ <tr>
324
+ <td rowspan="1" colSpan="1" >`h`</td>
325
+
326
+ <td rowspan="1" colSpan="1" >`number`</td>
327
+
328
+ <td rowspan="1" colSpan="1" >Required</td>
329
+
330
+ <td rowspan="1" colSpan="1" >Height of the region (pixel value), must be greater than 0</td>
331
+ </tr>
332
+
333
+ <tr>
334
+ <td rowspan="1" colSpan="1" >`zOrder`</td>
335
+
336
+ <td rowspan="1" colSpan="1" >`number`</td>
337
+
338
+ <td rowspan="1" colSpan="1" >Required</td>
339
+
340
+ <td rowspan="1" colSpan="1" >Z-order, the larger the value, the more positioned towards the front, for processing display priority of overlap regions</td>
341
+ </tr>
342
+ </table>
343
+
344
+ ``` typescript
345
+ interface RegionInfo {
346
+ x: number; // Top-left X-axis coordinate of the region
347
+ y: number; // Top-left Y-axis coordinate of the region
348
+ w: number; // Region width
349
+ h: number; // Region height
350
+ zOrder: number; // Z-order
351
+ }
352
+ ```
353
+
354
+ #### Custom Slot Example
355
+
356
+ To help you better experience and understand the customized capability of the LiveView component's streamViewUI slot, we provide a **live streaming and mic connection scenario** example for your reference. You can refer to the above **Step 3** to incrementally copy the following code into your project to achieve a similar scenario effect.
357
+ ``` typescript
358
+ <template>
359
+ <LiveView>
360
+ <template #streamViewUI="{ userInfo }">
361
+ <div
362
+ class="live-stream-view"
363
+ :class="{ 'is-anchor': isAnchor(userInfo), 'is-guest': !isAnchor(userInfo) }"
364
+ >
365
+ <!-- Video stream area -->
366
+ <div class="video-area">
367
+ <!-- The video stream will be rendered automatically -->
368
+ </div>
369
+
370
+ <!-- User information overlay -->
371
+ <div class="user-overlay">
372
+ <div class="user-badge" :class="{ 'anchor-badge': isAnchor(userInfo) }">
373
+ {{ isAnchor(userInfo) ? 'Anchor' : 'Audience' }}
374
+ </div>
375
+ <div class="user-name">{{ userInfo.userName }}</div>
376
+ <div class="device-status">
377
+ <span :class="['mic', userInfo.microphoneStatus]"></span>
378
+ <span :class="['camera', userInfo.cameraStatus]"></span>
379
+ </div>
380
+ </div>
381
+ </div>
382
+ </template>
383
+ </LiveView>
384
+ </template>
385
+
386
+ <script setup lang="ts">
387
+ import { LiveView } from 'tuikit-atomicx-vue3';
388
+ import type { SeatUserInfo } from 'tuikit-atomicx-vue3';
389
+
390
+ // Determine whether it is an anchor (based on business logic)
391
+ const isAnchor = (userInfo: SeatUserInfo) => {
392
+ // Here you can judge based on uid and role
393
+ return userInfo.userId.includes('anchor') || userInfo.userName.includes('Anchor');
394
+ };
395
+ </script>
396
+
397
+ <style scoped>.live-stream-view{position:relative;width:100%;height:100%;border-radius:8px;overflow:hidden}.live-stream-view.is-anchor{border:3px solid #ff6b35;box-shadow:0 0 20px rgba(255,107,53,.3)}.live-stream-view.is-guest{border:1px solid #ddd}.video-area{width:100%;height:100%;background:#000}.user-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));padding:10px;color:#fff}.user-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;margin-bottom:5px;background:#666}.anchor-badge{background:#ff6b35;color:#fff}.user-name{font-weight:700;margin-bottom:5px}.device-status span{margin-right:5px;opacity:.8}.device-status .camera.Off,.device-status .mic.Off{opacity:.3}</style>
398
+ ```