@koushuang/im 0.1.1-preview.3

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 (200) hide show
  1. package/dist/_virtual/_plugin-vue_export-helper.cjs +2 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.cjs.map +1 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.mjs +10 -0
  4. package/dist/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
  5. package/dist/api/auth.cjs +2 -0
  6. package/dist/api/auth.cjs.map +1 -0
  7. package/dist/api/auth.d.ts +48 -0
  8. package/dist/api/auth.mjs +30 -0
  9. package/dist/api/auth.mjs.map +1 -0
  10. package/dist/core/client.cjs +2 -0
  11. package/dist/core/client.cjs.map +1 -0
  12. package/dist/core/client.d.ts +38 -0
  13. package/dist/core/client.mjs +117 -0
  14. package/dist/core/client.mjs.map +1 -0
  15. package/dist/core/createClient.cjs +2 -0
  16. package/dist/core/createClient.cjs.map +1 -0
  17. package/dist/core/createClient.d.ts +6 -0
  18. package/dist/core/createClient.mjs +9 -0
  19. package/dist/core/createClient.mjs.map +1 -0
  20. package/dist/core/events.d.ts +36 -0
  21. package/dist/core/index.d.ts +4 -0
  22. package/dist/core/types.d.ts +127 -0
  23. package/dist/http/createHttp.cjs +2 -0
  24. package/dist/http/createHttp.cjs.map +1 -0
  25. package/dist/http/createHttp.d.ts +5 -0
  26. package/dist/http/createHttp.mjs +29 -0
  27. package/dist/http/createHttp.mjs.map +1 -0
  28. package/dist/http/types.cjs +2 -0
  29. package/dist/http/types.cjs.map +1 -0
  30. package/dist/http/types.d.ts +14 -0
  31. package/dist/http/types.mjs +9 -0
  32. package/dist/http/types.mjs.map +1 -0
  33. package/dist/index.cjs +2 -0
  34. package/dist/index.cjs.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.mjs +38 -0
  37. package/dist/index.mjs.map +1 -0
  38. package/dist/mock.cjs +2 -0
  39. package/dist/mock.cjs.map +1 -0
  40. package/dist/mock.d.ts +2 -0
  41. package/dist/mock.mjs +7 -0
  42. package/dist/mock.mjs.map +1 -0
  43. package/dist/node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.cjs +2 -0
  44. package/dist/node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.cjs.map +1 -0
  45. package/dist/node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs +20 -0
  46. package/dist/node_modules/.pnpm/mitt@3.0.1/node_modules/mitt/dist/mitt.mjs.map +1 -0
  47. package/dist/protocol/envelope.cjs +2 -0
  48. package/dist/protocol/envelope.cjs.map +1 -0
  49. package/dist/protocol/envelope.d.ts +3 -0
  50. package/dist/protocol/envelope.mjs +19 -0
  51. package/dist/protocol/envelope.mjs.map +1 -0
  52. package/dist/protocol/guards.cjs +2 -0
  53. package/dist/protocol/guards.cjs.map +1 -0
  54. package/dist/protocol/guards.d.ts +2 -0
  55. package/dist/protocol/guards.mjs +7 -0
  56. package/dist/protocol/guards.mjs.map +1 -0
  57. package/dist/protocol/index.d.ts +2 -0
  58. package/dist/shared/index.d.ts +1 -0
  59. package/dist/shared/visibility.cjs +2 -0
  60. package/dist/shared/visibility.cjs.map +1 -0
  61. package/dist/shared/visibility.d.ts +2 -0
  62. package/dist/shared/visibility.mjs +10 -0
  63. package/dist/shared/visibility.mjs.map +1 -0
  64. package/dist/style.cjs +2 -0
  65. package/dist/style.cjs.map +1 -0
  66. package/dist/style.css +12 -0
  67. package/dist/style.d.ts +1 -0
  68. package/dist/style.mjs +2 -0
  69. package/dist/style.mjs.map +1 -0
  70. package/dist/tui/mapper.cjs +2 -0
  71. package/dist/tui/mapper.cjs.map +1 -0
  72. package/dist/tui/mapper.d.ts +3 -0
  73. package/dist/tui/mapper.mjs +25 -0
  74. package/dist/tui/mapper.mjs.map +1 -0
  75. package/dist/tui/store.cjs +2 -0
  76. package/dist/tui/store.cjs.map +1 -0
  77. package/dist/tui/store.d.ts +2 -0
  78. package/dist/tui/store.mjs +19 -0
  79. package/dist/tui/store.mjs.map +1 -0
  80. package/dist/tui/tim.cjs +2 -0
  81. package/dist/tui/tim.cjs.map +1 -0
  82. package/dist/tui/tim.d.ts +2 -0
  83. package/dist/tui/tim.mjs +116 -0
  84. package/dist/tui/tim.mjs.map +1 -0
  85. package/dist/ui/components/FontSizeControl.vue.cjs +2 -0
  86. package/dist/ui/components/FontSizeControl.vue.cjs.map +1 -0
  87. package/dist/ui/components/FontSizeControl.vue.d.ts +13 -0
  88. package/dist/ui/components/FontSizeControl.vue.mjs +8 -0
  89. package/dist/ui/components/FontSizeControl.vue.mjs.map +1 -0
  90. package/dist/ui/components/FontSizeControl.vue2.cjs +2 -0
  91. package/dist/ui/components/FontSizeControl.vue2.cjs.map +1 -0
  92. package/dist/ui/components/FontSizeControl.vue2.mjs +45 -0
  93. package/dist/ui/components/FontSizeControl.vue2.mjs.map +1 -0
  94. package/dist/ui/components/ImChatRoom.vue.cjs +2 -0
  95. package/dist/ui/components/ImChatRoom.vue.cjs.map +1 -0
  96. package/dist/ui/components/ImChatRoom.vue.d.ts +38 -0
  97. package/dist/ui/components/ImChatRoom.vue.mjs +55 -0
  98. package/dist/ui/components/ImChatRoom.vue.mjs.map +1 -0
  99. package/dist/ui/components/ImChatRoom.vue2.cjs +2 -0
  100. package/dist/ui/components/ImChatRoom.vue2.cjs.map +1 -0
  101. package/dist/ui/components/ImChatRoom.vue2.mjs +5 -0
  102. package/dist/ui/components/ImChatRoom.vue2.mjs.map +1 -0
  103. package/dist/ui/components/ImKit.vue.cjs +2 -0
  104. package/dist/ui/components/ImKit.vue.cjs.map +1 -0
  105. package/dist/ui/components/ImKit.vue.d.ts +17 -0
  106. package/dist/ui/components/ImKit.vue.mjs +17 -0
  107. package/dist/ui/components/ImKit.vue.mjs.map +1 -0
  108. package/dist/ui/components/ImKit.vue2.cjs +2 -0
  109. package/dist/ui/components/ImKit.vue2.cjs.map +1 -0
  110. package/dist/ui/components/ImKit.vue2.mjs +5 -0
  111. package/dist/ui/components/ImKit.vue2.mjs.map +1 -0
  112. package/dist/ui/components/ImMessageInput.vue.cjs +2 -0
  113. package/dist/ui/components/ImMessageInput.vue.cjs.map +1 -0
  114. package/dist/ui/components/ImMessageInput.vue.d.ts +22 -0
  115. package/dist/ui/components/ImMessageInput.vue.mjs +5 -0
  116. package/dist/ui/components/ImMessageInput.vue.mjs.map +1 -0
  117. package/dist/ui/components/ImMessageInput.vue2.cjs +2 -0
  118. package/dist/ui/components/ImMessageInput.vue2.cjs.map +1 -0
  119. package/dist/ui/components/ImMessageInput.vue2.mjs +33 -0
  120. package/dist/ui/components/ImMessageInput.vue2.mjs.map +1 -0
  121. package/dist/ui/components/PcConversationListSplit.vue.cjs +2 -0
  122. package/dist/ui/components/PcConversationListSplit.vue.cjs.map +1 -0
  123. package/dist/ui/components/PcConversationListSplit.vue.d.ts +8 -0
  124. package/dist/ui/components/PcConversationListSplit.vue.mjs +8 -0
  125. package/dist/ui/components/PcConversationListSplit.vue.mjs.map +1 -0
  126. package/dist/ui/components/PcConversationListSplit.vue2.cjs +2 -0
  127. package/dist/ui/components/PcConversationListSplit.vue2.cjs.map +1 -0
  128. package/dist/ui/components/PcConversationListSplit.vue2.mjs +90 -0
  129. package/dist/ui/components/PcConversationListSplit.vue2.mjs.map +1 -0
  130. package/dist/ui/components/SysMessage.vue.cjs +2 -0
  131. package/dist/ui/components/SysMessage.vue.cjs.map +1 -0
  132. package/dist/ui/components/SysMessage.vue.d.ts +19 -0
  133. package/dist/ui/components/SysMessage.vue.mjs +8 -0
  134. package/dist/ui/components/SysMessage.vue.mjs.map +1 -0
  135. package/dist/ui/components/SysMessage.vue2.cjs +2 -0
  136. package/dist/ui/components/SysMessage.vue2.cjs.map +1 -0
  137. package/dist/ui/components/SysMessage.vue2.mjs +42 -0
  138. package/dist/ui/components/SysMessage.vue2.mjs.map +1 -0
  139. package/dist/ui/index.d.ts +8 -0
  140. package/dist/ui/layouts/ChatLayoutH5.vue.cjs +2 -0
  141. package/dist/ui/layouts/ChatLayoutH5.vue.cjs.map +1 -0
  142. package/dist/ui/layouts/ChatLayoutH5.vue.d.ts +22 -0
  143. package/dist/ui/layouts/ChatLayoutH5.vue.mjs +8 -0
  144. package/dist/ui/layouts/ChatLayoutH5.vue.mjs.map +1 -0
  145. package/dist/ui/layouts/ChatLayoutH5.vue2.cjs +2 -0
  146. package/dist/ui/layouts/ChatLayoutH5.vue2.cjs.map +1 -0
  147. package/dist/ui/layouts/ChatLayoutH5.vue2.mjs +49 -0
  148. package/dist/ui/layouts/ChatLayoutH5.vue2.mjs.map +1 -0
  149. package/dist/ui/layouts/ChatLayoutPc.vue.cjs +2 -0
  150. package/dist/ui/layouts/ChatLayoutPc.vue.cjs.map +1 -0
  151. package/dist/ui/layouts/ChatLayoutPc.vue.d.ts +39 -0
  152. package/dist/ui/layouts/ChatLayoutPc.vue.mjs +8 -0
  153. package/dist/ui/layouts/ChatLayoutPc.vue.mjs.map +1 -0
  154. package/dist/ui/layouts/ChatLayoutPc.vue2.cjs +2 -0
  155. package/dist/ui/layouts/ChatLayoutPc.vue2.cjs.map +1 -0
  156. package/dist/ui/layouts/ChatLayoutPc.vue2.mjs +66 -0
  157. package/dist/ui/layouts/ChatLayoutPc.vue2.mjs.map +1 -0
  158. package/dist/ui/mock/consultMeta.cjs +2 -0
  159. package/dist/ui/mock/consultMeta.cjs.map +1 -0
  160. package/dist/ui/mock/consultMeta.d.ts +9 -0
  161. package/dist/ui/mock/consultMeta.mjs +29 -0
  162. package/dist/ui/mock/consultMeta.mjs.map +1 -0
  163. package/dist/ui/mock/mock-driver.cjs +2 -0
  164. package/dist/ui/mock/mock-driver.cjs.map +1 -0
  165. package/dist/ui/mock/mock-driver.d.ts +2 -0
  166. package/dist/ui/mock/mock-driver.mjs +51 -0
  167. package/dist/ui/mock/mock-driver.mjs.map +1 -0
  168. package/dist/ui/mock/mock.d.ts +2 -0
  169. package/dist/ui/renderers/MessageProxy.cjs +2 -0
  170. package/dist/ui/renderers/MessageProxy.cjs.map +1 -0
  171. package/dist/ui/renderers/MessageProxy.d.ts +24 -0
  172. package/dist/ui/renderers/MessageProxy.mjs +36 -0
  173. package/dist/ui/renderers/MessageProxy.mjs.map +1 -0
  174. package/dist/ui/renderers/createMessageComponent.cjs +2 -0
  175. package/dist/ui/renderers/createMessageComponent.cjs.map +1 -0
  176. package/dist/ui/renderers/createMessageComponent.d.ts +4 -0
  177. package/dist/ui/renderers/createMessageComponent.mjs +15 -0
  178. package/dist/ui/renderers/createMessageComponent.mjs.map +1 -0
  179. package/dist/ui/renderers/historyFilter.cjs +2 -0
  180. package/dist/ui/renderers/historyFilter.cjs.map +1 -0
  181. package/dist/ui/renderers/historyFilter.d.ts +10 -0
  182. package/dist/ui/renderers/historyFilter.mjs +41 -0
  183. package/dist/ui/renderers/historyFilter.mjs.map +1 -0
  184. package/dist/ui/renderers/registry.cjs +2 -0
  185. package/dist/ui/renderers/registry.cjs.map +1 -0
  186. package/dist/ui/renderers/registry.d.ts +3 -0
  187. package/dist/ui/renderers/registry.mjs +17 -0
  188. package/dist/ui/renderers/registry.mjs.map +1 -0
  189. package/dist/ui/renderers/resolve.cjs +2 -0
  190. package/dist/ui/renderers/resolve.cjs.map +1 -0
  191. package/dist/ui/renderers/resolve.d.ts +2 -0
  192. package/dist/ui/renderers/resolve.mjs +8 -0
  193. package/dist/ui/renderers/resolve.mjs.map +1 -0
  194. package/dist/ui/styles/style.d.ts +0 -0
  195. package/dist/utils/log.cjs +2 -0
  196. package/dist/utils/log.cjs.map +1 -0
  197. package/dist/utils/log.d.ts +1 -0
  198. package/dist/utils/log.mjs +7 -0
  199. package/dist/utils/log.mjs.map +1 -0
  200. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessageComponent.cjs","sources":["../../../src/ui/renderers/createMessageComponent.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport type { IMMessage } from '../../core/types'\nimport { resolveRenderer } from './registry'\n\nexport function createMessageComponent(msg: IMMessage) {\n return defineComponent({\n name: 'HlImCustomMessage',\n setup() {\n const Comp = resolveRenderer(msg)\n if (!Comp) return () => h('pre', JSON.stringify(msg.payload, null, 2))\n return () => h(Comp as any, { envelope: msg.payload })\n },\n })\n}\n"],"names":["createMessageComponent","msg","defineComponent","Comp","resolveRenderer","h"],"mappings":"mIAIO,SAASA,EAAuBC,EAAgB,CACrD,OAAOC,kBAAgB,CACrB,KAAM,oBACN,OAAQ,CACN,MAAMC,EAAOC,EAAAA,gBAAgBH,CAAG,EAChC,OAAKE,EACE,IAAME,EAAAA,EAAEF,EAAa,CAAE,SAAUF,EAAI,QAAS,EADnC,IAAMI,EAAAA,EAAE,MAAO,KAAK,UAAUJ,EAAI,QAAS,KAAM,CAAC,CAAC,CAEvE,CAAA,CACD,CACH"}
@@ -0,0 +1,4 @@
1
+ import { IMMessage } from '../../core/types';
2
+ export declare function createMessageComponent(msg: IMMessage): import('vue').DefineComponent<{}, () => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
3
+ [key: string]: any;
4
+ }>, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,15 @@
1
+ import { defineComponent as n, h as r } from "vue";
2
+ import { resolveRenderer as t } from "./registry.mjs";
3
+ function m(e) {
4
+ return n({
5
+ name: "HlImCustomMessage",
6
+ setup() {
7
+ const o = t(e);
8
+ return o ? () => r(o, { envelope: e.payload }) : () => r("pre", JSON.stringify(e.payload, null, 2));
9
+ }
10
+ });
11
+ }
12
+ export {
13
+ m as createMessageComponent
14
+ };
15
+ //# sourceMappingURL=createMessageComponent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessageComponent.mjs","sources":["../../../src/ui/renderers/createMessageComponent.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport type { IMMessage } from '../../core/types'\nimport { resolveRenderer } from './registry'\n\nexport function createMessageComponent(msg: IMMessage) {\n return defineComponent({\n name: 'HlImCustomMessage',\n setup() {\n const Comp = resolveRenderer(msg)\n if (!Comp) return () => h('pre', JSON.stringify(msg.payload, null, 2))\n return () => h(Comp as any, { envelope: msg.payload })\n },\n })\n}\n"],"names":["createMessageComponent","msg","defineComponent","Comp","resolveRenderer","h"],"mappings":";;AAIO,SAASA,EAAuBC,GAAgB;AACrD,SAAOC,EAAgB;AAAA,IACrB,MAAM;AAAA,IACN,QAAQ;AACN,YAAMC,IAAOC,EAAgBH,CAAG;AAChC,aAAKE,IACE,MAAME,EAAEF,GAAa,EAAE,UAAUF,EAAI,SAAS,IADnC,MAAMI,EAAE,OAAO,KAAK,UAAUJ,EAAI,SAAS,MAAM,CAAC,CAAC;AAAA,IAEvE;AAAA,EAAA,CACD;AACH;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@tencentcloud/chat-uikit-engine");function u(t){const e=t?.time??t?.createdAt??t?.payload?.time??0;return typeof e!="number"?0:e<1e12?e*1e3:e}function o(t){let e=!1,a=[];const s=r.TUIStore.watch(r.StoreName.CHAT,{messageList:i=>{if(!t.enabled||e||!Array.isArray(i)||(a=i,t.showHistory()))return;const n=i.filter(l=>u(l)>=t.sessionStartAt);if(n.length!==i.length){e=!0;try{r.TUIStore.update(r.StoreName.CHAT,"messageList",n)}finally{queueMicrotask(()=>e=!1)}}}});return{restoreFullList(){if(a?.length){e=!0;try{r.TUIStore.update(r.StoreName.CHAT,"messageList",a)}finally{queueMicrotask(()=>e=!1)}}},dispose(){s?.()}}}exports.installChatHistoryFilter=o;
2
+ //# sourceMappingURL=historyFilter.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historyFilter.cjs","sources":["../../../src/ui/renderers/historyFilter.ts"],"sourcesContent":["import { TUIStore, StoreName } from '@tencentcloud/chat-uikit-engine'\n\ntype FilterOpts = {\n enabled: boolean\n sessionStartAt: number\n showHistory: () => boolean\n}\n\nfunction toMs(msg: any): number {\n const t = msg?.time ?? msg?.createdAt ?? msg?.payload?.time ?? 0\n if (typeof t !== 'number') return 0\n return t < 1e12 ? t * 1000 : t\n}\n\nexport function installChatHistoryFilter(opts: FilterOpts) {\n let isPatching = false\n let lastFullList: any[] = []\n\n const unwatch = TUIStore.watch(StoreName.CHAT, {\n messageList: (list: any[]) => {\n if (!opts.enabled) return\n if (isPatching) return\n if (!Array.isArray(list)) return\n lastFullList = list\n\n if (opts.showHistory()) return\n\n const filtered = list.filter((m) => toMs(m) >= opts.sessionStartAt)\n if (filtered.length === list.length) return\n\n // 更新 store 让 <Chat/> 直接渲染过滤后的 list\n isPatching = true\n try {\n TUIStore.update(StoreName.CHAT, 'messageList', filtered)\n } finally {\n // 防止 watch 递归触发\n queueMicrotask(() => (isPatching = false))\n }\n },\n })\n\n return {\n restoreFullList() {\n if (!lastFullList?.length) return\n isPatching = true\n try {\n TUIStore.update(StoreName.CHAT, 'messageList', lastFullList)\n } finally {\n queueMicrotask(() => (isPatching = false))\n }\n },\n dispose() {\n unwatch?.()\n },\n }\n}\n"],"names":["toMs","msg","t","installChatHistoryFilter","opts","isPatching","lastFullList","unwatch","TUIStore","StoreName","list","filtered","m"],"mappings":"mIAQA,SAASA,EAAKC,EAAkB,CAC9B,MAAMC,EAAID,GAAK,MAAQA,GAAK,WAAaA,GAAK,SAAS,MAAQ,EAC/D,OAAI,OAAOC,GAAM,SAAiB,EAC3BA,EAAI,KAAOA,EAAI,IAAOA,CAC/B,CAEO,SAASC,EAAyBC,EAAkB,CACzD,IAAIC,EAAa,GACbC,EAAsB,CAAA,EAE1B,MAAMC,EAAUC,EAAAA,SAAS,MAAMC,EAAAA,UAAU,KAAM,CAC7C,YAAcC,GAAgB,CAM5B,GALI,CAACN,EAAK,SACNC,GACA,CAAC,MAAM,QAAQK,CAAI,IACvBJ,EAAeI,EAEXN,EAAK,eAAe,OAExB,MAAMO,EAAWD,EAAK,OAAQE,GAAMZ,EAAKY,CAAC,GAAKR,EAAK,cAAc,EAClE,GAAIO,EAAS,SAAWD,EAAK,OAG7B,CAAAL,EAAa,GACb,GAAI,CACFG,EAAAA,SAAS,OAAOC,EAAAA,UAAU,KAAM,cAAeE,CAAQ,CACzD,QAAA,CAEE,eAAe,IAAON,EAAa,EAAM,CAC3C,EACF,CAAA,CACD,EAED,MAAO,CACL,iBAAkB,CAChB,GAAKC,GAAc,OACnB,CAAAD,EAAa,GACb,GAAI,CACFG,EAAAA,SAAS,OAAOC,EAAAA,UAAU,KAAM,cAAeH,CAAY,CAC7D,QAAA,CACE,eAAe,IAAOD,EAAa,EAAM,CAC3C,EACF,EACA,SAAU,CACRE,IAAA,CACF,CAAA,CAEJ"}
@@ -0,0 +1,10 @@
1
+ type FilterOpts = {
2
+ enabled: boolean;
3
+ sessionStartAt: number;
4
+ showHistory: () => boolean;
5
+ };
6
+ export declare function installChatHistoryFilter(opts: FilterOpts): {
7
+ restoreFullList(): void;
8
+ dispose(): void;
9
+ };
10
+ export {};
@@ -0,0 +1,41 @@
1
+ import { TUIStore as n, StoreName as a } from "@tencentcloud/chat-uikit-engine";
2
+ function o(t) {
3
+ const e = t?.time ?? t?.createdAt ?? t?.payload?.time ?? 0;
4
+ return typeof e != "number" ? 0 : e < 1e12 ? e * 1e3 : e;
5
+ }
6
+ function c(t) {
7
+ let e = !1, i = [];
8
+ const u = n.watch(a.CHAT, {
9
+ messageList: (r) => {
10
+ if (!t.enabled || e || !Array.isArray(r) || (i = r, t.showHistory())) return;
11
+ const s = r.filter((l) => o(l) >= t.sessionStartAt);
12
+ if (s.length !== r.length) {
13
+ e = !0;
14
+ try {
15
+ n.update(a.CHAT, "messageList", s);
16
+ } finally {
17
+ queueMicrotask(() => e = !1);
18
+ }
19
+ }
20
+ }
21
+ });
22
+ return {
23
+ restoreFullList() {
24
+ if (i?.length) {
25
+ e = !0;
26
+ try {
27
+ n.update(a.CHAT, "messageList", i);
28
+ } finally {
29
+ queueMicrotask(() => e = !1);
30
+ }
31
+ }
32
+ },
33
+ dispose() {
34
+ u?.();
35
+ }
36
+ };
37
+ }
38
+ export {
39
+ c as installChatHistoryFilter
40
+ };
41
+ //# sourceMappingURL=historyFilter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historyFilter.mjs","sources":["../../../src/ui/renderers/historyFilter.ts"],"sourcesContent":["import { TUIStore, StoreName } from '@tencentcloud/chat-uikit-engine'\n\ntype FilterOpts = {\n enabled: boolean\n sessionStartAt: number\n showHistory: () => boolean\n}\n\nfunction toMs(msg: any): number {\n const t = msg?.time ?? msg?.createdAt ?? msg?.payload?.time ?? 0\n if (typeof t !== 'number') return 0\n return t < 1e12 ? t * 1000 : t\n}\n\nexport function installChatHistoryFilter(opts: FilterOpts) {\n let isPatching = false\n let lastFullList: any[] = []\n\n const unwatch = TUIStore.watch(StoreName.CHAT, {\n messageList: (list: any[]) => {\n if (!opts.enabled) return\n if (isPatching) return\n if (!Array.isArray(list)) return\n lastFullList = list\n\n if (opts.showHistory()) return\n\n const filtered = list.filter((m) => toMs(m) >= opts.sessionStartAt)\n if (filtered.length === list.length) return\n\n // 更新 store 让 <Chat/> 直接渲染过滤后的 list\n isPatching = true\n try {\n TUIStore.update(StoreName.CHAT, 'messageList', filtered)\n } finally {\n // 防止 watch 递归触发\n queueMicrotask(() => (isPatching = false))\n }\n },\n })\n\n return {\n restoreFullList() {\n if (!lastFullList?.length) return\n isPatching = true\n try {\n TUIStore.update(StoreName.CHAT, 'messageList', lastFullList)\n } finally {\n queueMicrotask(() => (isPatching = false))\n }\n },\n dispose() {\n unwatch?.()\n },\n }\n}\n"],"names":["toMs","msg","t","installChatHistoryFilter","opts","isPatching","lastFullList","unwatch","TUIStore","StoreName","list","filtered","m"],"mappings":";AAQA,SAASA,EAAKC,GAAkB;AAC9B,QAAMC,IAAID,GAAK,QAAQA,GAAK,aAAaA,GAAK,SAAS,QAAQ;AAC/D,SAAI,OAAOC,KAAM,WAAiB,IAC3BA,IAAI,OAAOA,IAAI,MAAOA;AAC/B;AAEO,SAASC,EAAyBC,GAAkB;AACzD,MAAIC,IAAa,IACbC,IAAsB,CAAA;AAE1B,QAAMC,IAAUC,EAAS,MAAMC,EAAU,MAAM;AAAA,IAC7C,aAAa,CAACC,MAAgB;AAM5B,UALI,CAACN,EAAK,WACNC,KACA,CAAC,MAAM,QAAQK,CAAI,MACvBJ,IAAeI,GAEXN,EAAK,eAAe;AAExB,YAAMO,IAAWD,EAAK,OAAO,CAACE,MAAMZ,EAAKY,CAAC,KAAKR,EAAK,cAAc;AAClE,UAAIO,EAAS,WAAWD,EAAK,QAG7B;AAAA,QAAAL,IAAa;AACb,YAAI;AACF,UAAAG,EAAS,OAAOC,EAAU,MAAM,eAAeE,CAAQ;AAAA,QACzD,UAAA;AAEE,yBAAe,MAAON,IAAa,EAAM;AAAA,QAC3C;AAAA;AAAA,IACF;AAAA,EAAA,CACD;AAED,SAAO;AAAA,IACL,kBAAkB;AAChB,UAAKC,GAAc,QACnB;AAAA,QAAAD,IAAa;AACb,YAAI;AACF,UAAAG,EAAS,OAAOC,EAAU,MAAM,eAAeH,CAAY;AAAA,QAC7D,UAAA;AACE,yBAAe,MAAOD,IAAa,EAAM;AAAA,QAC3C;AAAA;AAAA,IACF;AAAA,IACA,UAAU;AACR,MAAAE,IAAA;AAAA,IACF;AAAA,EAAA;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../components/SysMessage.vue.cjs"),t=new Map;function e(s,n){t.set(s,n)}function o(s){return t.get(s)}e("sys.notice",r);e("sys.alert",r);e("sys.progress",r);e("sys.tip",r);exports.registerRenderer=e;exports.resolveRenderer=o;
2
+ //# sourceMappingURL=registry.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.cjs","sources":["../../../src/ui/renderers/registry.ts"],"sourcesContent":["// packages/im/src/ui/renderers/registry.ts\nimport type { Component } from 'vue'\nimport SysMessage from '../components/SysMessage.vue'\nimport { logTag } from '../../utils/log'\n\nconst map = new Map<string, Component>()\n\nexport function registerRenderer(type: string, comp: Component) {\n map.set(type, comp)\n}\n\nexport function resolveRenderer(type: string) {\n return map.get(type)\n}\n\nregisterRenderer('sys.notice', SysMessage)\nregisterRenderer('sys.alert', SysMessage)\nregisterRenderer('sys.progress', SysMessage)\nregisterRenderer('sys.tip', SysMessage)\n"],"names":["map","registerRenderer","type","comp","resolveRenderer","SysMessage"],"mappings":"oIAKMA,MAAU,IAET,SAASC,EAAiBC,EAAcC,EAAiB,CAC9DH,EAAI,IAAIE,EAAMC,CAAI,CACpB,CAEO,SAASC,EAAgBF,EAAc,CAC5C,OAAOF,EAAI,IAAIE,CAAI,CACrB,CAEAD,EAAiB,aAAcI,CAAU,EACzCJ,EAAiB,YAAaI,CAAU,EACxCJ,EAAiB,eAAgBI,CAAU,EAC3CJ,EAAiB,UAAWI,CAAU"}
@@ -0,0 +1,3 @@
1
+ import { Component } from 'vue';
2
+ export declare function registerRenderer(type: string, comp: Component): void;
3
+ export declare function resolveRenderer(type: string): Component | undefined;
@@ -0,0 +1,17 @@
1
+ import e from "../components/SysMessage.vue.mjs";
2
+ const t = /* @__PURE__ */ new Map();
3
+ function s(r, n) {
4
+ t.set(r, n);
5
+ }
6
+ function i(r) {
7
+ return t.get(r);
8
+ }
9
+ s("sys.notice", e);
10
+ s("sys.alert", e);
11
+ s("sys.progress", e);
12
+ s("sys.tip", e);
13
+ export {
14
+ s as registerRenderer,
15
+ i as resolveRenderer
16
+ };
17
+ //# sourceMappingURL=registry.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.mjs","sources":["../../../src/ui/renderers/registry.ts"],"sourcesContent":["// packages/im/src/ui/renderers/registry.ts\nimport type { Component } from 'vue'\nimport SysMessage from '../components/SysMessage.vue'\nimport { logTag } from '../../utils/log'\n\nconst map = new Map<string, Component>()\n\nexport function registerRenderer(type: string, comp: Component) {\n map.set(type, comp)\n}\n\nexport function resolveRenderer(type: string) {\n return map.get(type)\n}\n\nregisterRenderer('sys.notice', SysMessage)\nregisterRenderer('sys.alert', SysMessage)\nregisterRenderer('sys.progress', SysMessage)\nregisterRenderer('sys.tip', SysMessage)\n"],"names":["map","registerRenderer","type","comp","resolveRenderer","SysMessage"],"mappings":";AAKA,MAAMA,wBAAU,IAAA;AAET,SAASC,EAAiBC,GAAcC,GAAiB;AAC9D,EAAAH,EAAI,IAAIE,GAAMC,CAAI;AACpB;AAEO,SAASC,EAAgBF,GAAc;AAC5C,SAAOF,EAAI,IAAIE,CAAI;AACrB;AAEAD,EAAiB,cAAcI,CAAU;AACzCJ,EAAiB,aAAaI,CAAU;AACxCJ,EAAiB,gBAAgBI,CAAU;AAC3CJ,EAAiB,WAAWI,CAAU;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../protocol/envelope.cjs");function n(e){return e.type!=="TIMCustomElem"?null:o.decodeEnvelope(e.payload.extension)}exports.resolveEnvelopeFromMessage=n;
2
+ //# sourceMappingURL=resolve.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.cjs","sources":["../../../src/ui/renderers/resolve.ts"],"sourcesContent":["import type { IMMessage } from '../../core/types'\n// import { resolveRenderer } from './registry'\nimport { logTag } from '../../utils/log'\nimport { decodeEnvelope } from '../../protocol'\n\nexport function resolveEnvelopeFromMessage(msg: IMMessage) {\n // logTag('msg7777', msg)\n if (msg.type !== 'TIMCustomElem') return null\n const extension = decodeEnvelope(msg.payload.extension)\n // logTag('extension', extension)\n // let res = resolveRenderer(extension?.type ?? '')\n // logTag('extensionres', res)\n return extension\n}\n"],"names":["resolveEnvelopeFromMessage","msg","decodeEnvelope"],"mappings":"+HAKO,SAASA,EAA2BC,EAAgB,CAEzD,OAAIA,EAAI,OAAS,gBAAwB,KACvBC,EAAAA,eAAeD,EAAI,QAAQ,SAAS,CAKxD"}
@@ -0,0 +1,2 @@
1
+ import { IMMessage } from '../../core/types';
2
+ export declare function resolveEnvelopeFromMessage(msg: IMMessage): import('../..').Envelope<any> | null;
@@ -0,0 +1,8 @@
1
+ import { decodeEnvelope as o } from "../../protocol/envelope.mjs";
2
+ function r(e) {
3
+ return e.type !== "TIMCustomElem" ? null : o(e.payload.extension);
4
+ }
5
+ export {
6
+ r as resolveEnvelopeFromMessage
7
+ };
8
+ //# sourceMappingURL=resolve.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.mjs","sources":["../../../src/ui/renderers/resolve.ts"],"sourcesContent":["import type { IMMessage } from '../../core/types'\n// import { resolveRenderer } from './registry'\nimport { logTag } from '../../utils/log'\nimport { decodeEnvelope } from '../../protocol'\n\nexport function resolveEnvelopeFromMessage(msg: IMMessage) {\n // logTag('msg7777', msg)\n if (msg.type !== 'TIMCustomElem') return null\n const extension = decodeEnvelope(msg.payload.extension)\n // logTag('extension', extension)\n // let res = resolveRenderer(extension?.type ?? '')\n // logTag('extensionres', res)\n return extension\n}\n"],"names":["resolveEnvelopeFromMessage","msg","decodeEnvelope"],"mappings":";AAKO,SAASA,EAA2BC,GAAgB;AAEzD,SAAIA,EAAI,SAAS,kBAAwB,OACvBC,EAAeD,EAAI,QAAQ,SAAS;AAKxD;"}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=(o,...e)=>{console.log(`%c${o}`,"background:#f3de2c;color:#ef476f;padding:2px 6px;border-radius:3px;",...e)};exports.logTag=g;
2
+ //# sourceMappingURL=log.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.cjs","sources":["../../src/utils/log.ts"],"sourcesContent":["export const logTag = (label: string, ...args: any[]) => {\n console.log(`%c${label}`, 'background:#f3de2c;color:#ef476f;padding:2px 6px;border-radius:3px;', ...args)\n}\n"],"names":["logTag","label","args"],"mappings":"gFAAO,MAAMA,EAAS,CAACC,KAAkBC,IAAgB,CACvD,QAAQ,IAAI,KAAKD,CAAK,GAAI,sEAAuE,GAAGC,CAAI,CAC1G"}
@@ -0,0 +1 @@
1
+ export declare const logTag: (label: string, ...args: any[]) => void;
@@ -0,0 +1,7 @@
1
+ const d = (o, ...c) => {
2
+ console.log(`%c${o}`, "background:#f3de2c;color:#ef476f;padding:2px 6px;border-radius:3px;", ...c);
3
+ };
4
+ export {
5
+ d as logTag
6
+ };
7
+ //# sourceMappingURL=log.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.mjs","sources":["../../src/utils/log.ts"],"sourcesContent":["export const logTag = (label: string, ...args: any[]) => {\n console.log(`%c${label}`, 'background:#f3de2c;color:#ef476f;padding:2px 6px;border-radius:3px;', ...args)\n}\n"],"names":["logTag","label","args"],"mappings":"AAAO,MAAMA,IAAS,CAACC,MAAkBC,MAAgB;AACvD,UAAQ,IAAI,KAAKD,CAAK,IAAI,uEAAuE,GAAGC,CAAI;AAC1G;"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@koushuang/im",
3
+ "version": "0.1.1-preview.3",
4
+ "type": "module",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.cjs"
13
+ },
14
+ "./mock": {
15
+ "types": "./dist/mock.d.ts",
16
+ "import": "./dist/mock.mjs",
17
+ "require": "./dist/mock.cjs"
18
+ },
19
+ "./drivers/tui": {
20
+ "types": "./dist/drivers/tui.d.ts",
21
+ "import": "./dist/drivers/tui.mjs",
22
+ "require": "./dist/drivers/tui.cjs"
23
+ },
24
+ "./style": {
25
+ "import": "./dist/style.mjs",
26
+ "require": "./dist/style.cjs",
27
+ "default": "./dist/style.css"
28
+ },
29
+ "./style.css": "./dist/style.css",
30
+ "./im.css": "./dist/im.css"
31
+ },
32
+ "peerDependencies": {
33
+ "vue": "^3.3.0"
34
+ },
35
+ "dependencies": {
36
+ "@tencentcloud/chat": "^3.6.3",
37
+ "@tencentcloud/chat-uikit-engine": "2.5.7",
38
+ "@tencentcloud/chat-uikit-vue3": "^4.5.2",
39
+ "@tencentcloud/tui-core": "^2.5.1",
40
+ "vue-request": "^2.0.4",
41
+ "mitt": "^3.0.1"
42
+ },
43
+ "scripts": {
44
+ "build": "vite build",
45
+ "dev": "vite build --watch"
46
+ },
47
+ "sideEffects": [
48
+ "**/*.css",
49
+ "**/*.scss"
50
+ ],
51
+ "publishConfig": {
52
+ "access": "public",
53
+ "files": [
54
+ "dist",
55
+ "README.md",
56
+ "LICENSE"
57
+ ],
58
+ "registry": "https://registry.npmjs.org/"
59
+ },
60
+ "files": [
61
+ "dist",
62
+ "README.md",
63
+ "LICENSE"
64
+ ]
65
+ }