zcw-shared 2.11.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/constants/apiErrorCodes.d.ts +2 -2
  2. package/dist/constants/apiErrorCodes.js +11 -12
  3. package/dist/constants/apiErrorCodes.js.map +1 -1
  4. package/dist/functions/chat/chatShellTabConfig.d.ts +6 -1
  5. package/dist/functions/chat/chatShellTabConfig.js +27 -24
  6. package/dist/functions/chat/chatShellTabConfig.js.map +1 -1
  7. package/dist/functions/chat/chatShellTabEditor.js +1 -0
  8. package/dist/functions/chat/chatShellTabEditor.js.map +1 -1
  9. package/dist/functions/dom/copyHtmlAndPlainToClipboard.d.ts +1 -0
  10. package/dist/functions/dom/copyHtmlAndPlainToClipboard.js +68 -0
  11. package/dist/functions/dom/copyHtmlAndPlainToClipboard.js.map +1 -0
  12. package/dist/functions/im/forwardBundlePayload.d.ts +23 -0
  13. package/dist/functions/im/forwardBundlePayload.js +59 -0
  14. package/dist/functions/im/forwardBundlePayload.js.map +1 -0
  15. package/dist/functions/im/getActiveMentionQuery.d.ts +4 -0
  16. package/dist/functions/im/getActiveMentionQuery.js +23 -0
  17. package/dist/functions/im/getActiveMentionQuery.js.map +1 -0
  18. package/dist/functions/im/imInlineContentTokens.d.ts +49 -0
  19. package/dist/functions/im/imInlineContentTokens.js +185 -0
  20. package/dist/functions/im/imInlineContentTokens.js.map +1 -0
  21. package/dist/functions/im/imRichClipboardPlain.d.ts +8 -0
  22. package/dist/functions/im/imRichClipboardPlain.js +162 -0
  23. package/dist/functions/im/imRichClipboardPlain.js.map +1 -0
  24. package/dist/functions/im/imRichContentHtml.d.ts +53 -0
  25. package/dist/functions/im/imRichContentHtml.js +476 -0
  26. package/dist/functions/im/imRichContentHtml.js.map +1 -0
  27. package/dist/functions/im/index.d.ts +4 -0
  28. package/dist/functions/im/index.js +5 -0
  29. package/dist/functions/im/index.js.map +1 -0
  30. package/dist/functions/im/parseImMentionSegments.d.ts +8 -4
  31. package/dist/functions/im/parseImMentionSegments.js +32 -2
  32. package/dist/functions/im/parseImMentionSegments.js.map +1 -1
  33. package/dist/functions/tencent-cloud/deploy.tcb.d.ts +0 -1
  34. package/dist/functions/tencent-cloud/deploy.tcb.js +0 -1
  35. package/dist/functions/tencent-cloud/deploy.tcb.js.map +1 -1
  36. package/dist/schemas/video.schema.d.ts +6 -6
  37. package/package.json +21 -15
  38. package/types/chat-shell-tab-config.d.ts +5 -4
  39. package/types/im-api.d.ts +11 -1
  40. package/types/im-chat.d.ts +40 -4
  41. package/types/im-forward.d.ts +37 -0
  42. package/types/im-reply.d.ts +6 -0
@@ -13,5 +13,5 @@ export declare const API_HTTP_STATUS: {
13
13
  readonly INTERNAL_SERVER_ERROR: 500;
14
14
  readonly SERVICE_UNAVAILABLE: 503;
15
15
  };
16
- export declare const API_ERROR_MESSAGES: Record<number, string>;
17
- export declare function getApiErrorMessage(statusCode: number, body?: ApiErrorResponse | null): string;
16
+ export declare const HTTP_ERROR_PAGE_DEFAULT_MESSAGES: Partial<Record<(typeof API_HTTP_STATUS)[keyof typeof API_HTTP_STATUS], string>>;
17
+ export declare function getApiErrorMessage(_statusCode: number, body?: ApiErrorResponse | null): string;
@@ -7,20 +7,19 @@ export const API_HTTP_STATUS = {
7
7
  INTERNAL_SERVER_ERROR: 500,
8
8
  SERVICE_UNAVAILABLE: 503,
9
9
  };
10
- export const API_ERROR_MESSAGES = {
11
- [API_HTTP_STATUS.BAD_REQUEST]: '请求参数错误',
12
- [API_HTTP_STATUS.UNAUTHORIZED]: '未授权,请重新登录',
10
+ export const HTTP_ERROR_PAGE_DEFAULT_MESSAGES = {
13
11
  [API_HTTP_STATUS.FORBIDDEN]: '没有权限访问此资源',
14
- [API_HTTP_STATUS.NOT_FOUND]: '请求的资源不存在',
15
- [API_HTTP_STATUS.INTERNAL_SERVER_ERROR]: '服务器错误,请稍后重试',
16
- [API_HTTP_STATUS.SERVICE_UNAVAILABLE]: '服务暂不可用,请稍后重试',
17
12
  };
18
- const DEFAULT_MESSAGE = '请求失败';
19
- export function getApiErrorMessage(statusCode, body) {
20
- if (body?.message != null) {
21
- const msg = body.message;
22
- return Array.isArray(msg) ? msg[0] ?? DEFAULT_MESSAGE : msg;
13
+ export function getApiErrorMessage(_statusCode, body) {
14
+ if (body?.message == null)
15
+ return '';
16
+ const msg = body.message;
17
+ if (Array.isArray(msg)) {
18
+ return msg
19
+ .map((s) => String(s).trim())
20
+ .filter(Boolean)
21
+ .join(';');
23
22
  }
24
- return API_ERROR_MESSAGES[statusCode] ?? DEFAULT_MESSAGE;
23
+ return String(msg).trim();
25
24
  }
26
25
  //# sourceMappingURL=apiErrorCodes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiErrorCodes.js","sourceRoot":"","sources":["../../src/constants/apiErrorCodes.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,qBAAqB,EAAE,GAAG;IAC1B,mBAAmB,EAAE,GAAG;CAChB,CAAA;AAGV,MAAM,CAAC,MAAM,kBAAkB,GAA2B;IACxD,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,QAAQ;IACvC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,WAAW;IAC3C,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,WAAW;IACxC,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,UAAU;IACvC,CAAC,eAAe,CAAC,qBAAqB,CAAC,EAAE,aAAa;IACtD,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE,cAAc;CACtD,CAAA;AAED,MAAM,eAAe,GAAG,MAAM,CAAA;AAK9B,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,IAA8B;IAE9B,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QACxB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAA;IAC7D,CAAC;IACD,OAAO,kBAAkB,CAAC,UAAU,CAAC,IAAI,eAAe,CAAA;AAC1D,CAAC"}
1
+ {"version":3,"file":"apiErrorCodes.js","sourceRoot":"","sources":["../../src/constants/apiErrorCodes.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU,EAAE,GAAG;IACf,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,qBAAqB,EAAE,GAAG;IAC1B,mBAAmB,EAAE,GAAG;CAChB,CAAA;AAMV,MAAM,CAAC,MAAM,gCAAgC,GAEzC;IACF,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,WAAW;CACzC,CAAA;AAKD,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,IAA8B;IAE9B,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG;aACP,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAC3B,CAAC"}
@@ -1,6 +1,11 @@
1
- import type { ChatShellTabConfig, ChatShellTabbarItem } from '../../../types/chat-shell-tab-config';
1
+ import type { ChatShellDisplaysConfig, ChatShellTabConfig, ChatShellTabbarItem } from '../../../types/chat-shell-tab-config';
2
+ export type { ChatShellDisplaysConfig, ChatShellTabConfig, ChatShellTabbarItem };
2
3
  export declare const DEFAULT_CHAT_SHELL_TABS: ChatShellTabConfig[];
4
+ export declare class ChatShellTabsConfigError extends Error {
5
+ constructor(message: string);
6
+ }
3
7
  export declare function isChatShellTabShellDark(tabs: ChatShellTabConfig[], activeKey: string): boolean;
8
+ export declare function isChatShellTabHideTabbar(tabs: ChatShellTabConfig[], activeKey: string): boolean;
4
9
  export declare function parseChatShellTabsFromDisplays(displays: unknown): ChatShellTabConfig[];
5
10
  export declare function filterChatShellTabsForRuntime(tabs: ChatShellTabConfig[], opts: {
6
11
  isElectron: boolean;
@@ -13,7 +13,7 @@ export const DEFAULT_CHAT_SHELL_TABS = [
13
13
  key: 'ai',
14
14
  label: 'AI',
15
15
  icon: 'cebian_liaotiancebianlan',
16
- iconActive: 'rengongzhineng',
16
+ iconActive: 'ai',
17
17
  route: '/ai',
18
18
  routeName: 'chat-ai',
19
19
  desktopNav: true,
@@ -81,6 +81,12 @@ export const DEFAULT_CHAT_SHELL_TABS = [
81
81
  mobile: true,
82
82
  },
83
83
  ];
84
+ export class ChatShellTabsConfigError extends Error {
85
+ constructor(message) {
86
+ super(message);
87
+ this.name = 'ChatShellTabsConfigError';
88
+ }
89
+ }
84
90
  function normalizeTab(raw) {
85
91
  if (raw == null || typeof raw !== 'object' || Array.isArray(raw))
86
92
  return null;
@@ -112,37 +118,34 @@ function normalizeTab(raw) {
112
118
  mobile: o.mobile !== false,
113
119
  useMineAvatar: o.useMineAvatar === true,
114
120
  shellDark: o.shellDark === true ? true : undefined,
121
+ hideTabbar: o.hideTabbar === true ? true : undefined,
115
122
  };
116
123
  }
124
+ function findChatShellTabByKey(tabs, activeKey) {
125
+ return tabs.find((t) => t.key === activeKey);
126
+ }
117
127
  export function isChatShellTabShellDark(tabs, activeKey) {
118
- const tab = tabs.find((t) => t.key === activeKey);
119
- return tab?.shellDark === true;
128
+ return findChatShellTabByKey(tabs, activeKey)?.shellDark === true;
129
+ }
130
+ export function isChatShellTabHideTabbar(tabs, activeKey) {
131
+ return findChatShellTabByKey(tabs, activeKey)?.hideTabbar === true;
120
132
  }
121
133
  export function parseChatShellTabsFromDisplays(displays) {
122
- const d = displays;
123
- const shell = d?.chatShell;
134
+ if (displays == null || typeof displays !== 'object' || Array.isArray(displays)) {
135
+ throw new ChatShellTabsConfigError('page-config displays 缺失,无法解析 chatShell.tabs');
136
+ }
137
+ const shell = displays.chatShell;
124
138
  const fromShell = shell?.tabs;
125
- if (Array.isArray(fromShell) && fromShell.length > 0) {
126
- const parsed = fromShell
127
- .map((t) => normalizeTab(t))
128
- .filter((t) => t != null);
129
- if (parsed.length > 0)
130
- return parsed;
139
+ if (!Array.isArray(fromShell) || fromShell.length === 0) {
140
+ throw new ChatShellTabsConfigError('displays.chatShell.tabs 未配置或为空');
131
141
  }
132
- const legacy = d
133
- ?.mobileTabbar?.enabledTabs;
134
- if (Array.isArray(legacy) && legacy.length > 0) {
135
- const order = legacy.map((x) => String(x));
136
- const byKey = new Map(DEFAULT_CHAT_SHELL_TABS.map((t) => [t.key, { ...t }]));
137
- const out = [];
138
- for (const key of order) {
139
- const tab = byKey.get(key);
140
- if (tab)
141
- out.push(tab);
142
- }
143
- return out.length > 0 ? out : [...DEFAULT_CHAT_SHELL_TABS];
142
+ const parsed = fromShell
143
+ .map((t) => normalizeTab(t))
144
+ .filter((t) => t != null);
145
+ if (parsed.length === 0) {
146
+ throw new ChatShellTabsConfigError('displays.chatShell.tabs 无有效 Tab 项');
144
147
  }
145
- return [...DEFAULT_CHAT_SHELL_TABS];
148
+ return parsed;
146
149
  }
147
150
  export function filterChatShellTabsForRuntime(tabs, opts) {
148
151
  return tabs.filter((t) => {
@@ -1 +1 @@
1
- {"version":3,"file":"chatShellTabConfig.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatShellTabConfig.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabConfig.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ export function stripEditableChatShellTabs(tabs) {
35
35
  hideLabel: rest.hideLabel === true ? true : undefined,
36
36
  desktopHideLabel: rest.desktopHideLabel === false ? false : undefined,
37
37
  shellDark: rest.shellDark === true ? true : undefined,
38
+ hideTabbar: rest.hideTabbar === true ? true : undefined,
38
39
  };
39
40
  return tab;
40
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chatShellTabEditor.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabEditor.ts"],"names":[],"mappings":"AAKA,IAAI,UAAU,GAAG,CAAC,CAAA;AAClB,SAAS,WAAW;IAClB,UAAU,IAAI,CAAC,CAAA;IACf,OAAO,OAAO,UAAU,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,UAAU,GAAG,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAA0B;IAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC;QACJ,QAAQ,EAAE,WAAW,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,KAAK;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAA4B;IAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAuB;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,SAAS;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,SAAS;YAC9C,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,SAAS;YAC1D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,iBAAiB;gBACxB,CAAC,CAAC,SAAS;YACf,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC3D,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACzD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACjD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrE,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtD,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"chatShellTabEditor.js","sourceRoot":"","sources":["../../../src/functions/chat/chatShellTabEditor.ts"],"names":[],"mappings":"AAKA,IAAI,UAAU,GAAG,CAAC,CAAA;AAClB,SAAS,WAAW;IAClB,UAAU,IAAI,CAAC,CAAA;IACf,OAAO,OAAO,UAAU,EAAE,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,UAAU,GAAG,CAAC,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAA0B;IAE1B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC;QACJ,QAAQ,EAAE,WAAW,EAAE;QACvB,UAAU,EAAE,CAAC,CAAC,UAAU,KAAK,KAAK;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,KAAK;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAA4B;IAE5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAuB;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,SAAS;YAChD,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,SAAS;YAC9C,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,SAAS;YAC1D,iBAAiB,EACf,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,IAAI,CAAC,iBAAiB;gBACxB,CAAC,CAAC,SAAS;YACf,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC3D,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACzD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACjD,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC7D,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACrE,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrD,UAAU,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACxD,CAAA;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function copyHtmlAndPlainToClipboard(html: string, plain: string): Promise<boolean>;
@@ -0,0 +1,68 @@
1
+ import { copyTextToClipboard } from './copyTextToClipboard';
2
+ export async function copyHtmlAndPlainToClipboard(html, plain) {
3
+ const wireHtml = html.trim();
4
+ const restorablePlain = plain.trim();
5
+ if (!wireHtml && !restorablePlain)
6
+ return false;
7
+ const w = globalThis;
8
+ const nav = w.navigator;
9
+ const doc = w.document;
10
+ const clipboard = nav?.clipboard;
11
+ if (clipboard?.write && typeof w.ClipboardItem === 'function' && wireHtml && w.Blob) {
12
+ try {
13
+ await clipboard.write([
14
+ new w.ClipboardItem({
15
+ 'text/html': new w.Blob([wireHtml], { type: 'text/html' }),
16
+ 'text/plain': new w.Blob([restorablePlain || wireHtml], {
17
+ type: 'text/plain',
18
+ }),
19
+ }),
20
+ ]);
21
+ return true;
22
+ }
23
+ catch {
24
+ }
25
+ }
26
+ if (wireHtml && doc?.body) {
27
+ const sel = w.window?.getSelection?.() ?? null;
28
+ const savedRanges = [];
29
+ if (sel) {
30
+ for (let i = 0; i < sel.rangeCount; i++) {
31
+ savedRanges.push(sel.getRangeAt(i));
32
+ }
33
+ }
34
+ try {
35
+ const host = doc.createElement('div');
36
+ const h = host;
37
+ h.contentEditable = 'true';
38
+ h.innerHTML = wireHtml;
39
+ h.style.cssText =
40
+ 'position:fixed;top:0;left:0;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden;';
41
+ doc.body.appendChild(host);
42
+ const range = doc.createRange?.();
43
+ range?.selectNodeContents(host);
44
+ sel?.removeAllRanges();
45
+ if (range)
46
+ sel?.addRange(range);
47
+ const ok = doc.execCommand?.('copy') ?? false;
48
+ doc.body.removeChild(host);
49
+ sel?.removeAllRanges();
50
+ for (const r of savedRanges) {
51
+ try {
52
+ sel?.addRange(r);
53
+ }
54
+ catch {
55
+ }
56
+ }
57
+ if (ok)
58
+ return true;
59
+ }
60
+ catch {
61
+ }
62
+ }
63
+ if (restorablePlain) {
64
+ return copyTextToClipboard(restorablePlain);
65
+ }
66
+ return false;
67
+ }
68
+ //# sourceMappingURL=copyHtmlAndPlainToClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyHtmlAndPlainToClipboard.js","sourceRoot":"","sources":["../../../src/functions/dom/copyHtmlAndPlainToClipboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare const IM_FORWARD_BUNDLE_EXTRA_KEY = "forward_bundle";
2
+ export declare const IM_FORWARD_BUNDLE_CONTENT_VERSION = 1;
3
+ export interface ImForwardBundleStoredItem {
4
+ sender_id?: string;
5
+ sender_name: string;
6
+ type: string;
7
+ content: string;
8
+ snippet: string;
9
+ message_id?: string;
10
+ sender_seq?: number;
11
+ extra_data?: Record<string, unknown>;
12
+ }
13
+ export interface ImForwardBundleExtra {
14
+ items: ImForwardBundleStoredItem[];
15
+ }
16
+ export interface ImForwardBundleContentPayload {
17
+ v: typeof IM_FORWARD_BUNDLE_CONTENT_VERSION;
18
+ items: ImForwardBundleStoredItem[];
19
+ }
20
+ export declare function imForwardBundleHasRenderablePayload(bundle: ImForwardBundleExtra | null | undefined): boolean;
21
+ export declare function serializeForwardBundleContent(items: readonly ImForwardBundleStoredItem[]): string;
22
+ export declare function parseForwardBundleFromContent(content: string | undefined | null): ImForwardBundleExtra | null;
23
+ export declare function parseForwardBundleFromImMessage(messageType: string | undefined | null, content: string | undefined | null, extraData?: Record<string, unknown> | null): ImForwardBundleExtra | null;
@@ -0,0 +1,59 @@
1
+ export const IM_FORWARD_BUNDLE_EXTRA_KEY = 'forward_bundle';
2
+ export const IM_FORWARD_BUNDLE_CONTENT_VERSION = 1;
3
+ function isValidStoredItem(raw) {
4
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
5
+ return false;
6
+ const rec = raw;
7
+ const snippet = String(rec.snippet ?? '').trim();
8
+ const content = String(rec.content ?? '').trim();
9
+ return snippet.length > 0 || content.length > 0;
10
+ }
11
+ function normalizeBundleExtra(raw) {
12
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
13
+ return null;
14
+ const items = raw.items;
15
+ if (!Array.isArray(items) || items.length === 0)
16
+ return null;
17
+ const out = items.filter(isValidStoredItem);
18
+ return out.length > 0 ? { items: out } : null;
19
+ }
20
+ export function imForwardBundleHasRenderablePayload(bundle) {
21
+ return (bundle?.items?.length ?? 0) > 0;
22
+ }
23
+ export function serializeForwardBundleContent(items) {
24
+ const payload = {
25
+ v: IM_FORWARD_BUNDLE_CONTENT_VERSION,
26
+ items: [...items],
27
+ };
28
+ return JSON.stringify(payload);
29
+ }
30
+ export function parseForwardBundleFromContent(content) {
31
+ const c = String(content ?? '').trim();
32
+ if (!c || c[0] !== '{')
33
+ return null;
34
+ try {
35
+ const raw = JSON.parse(c);
36
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
37
+ return null;
38
+ const rec = raw;
39
+ const v = Number(rec.v);
40
+ if (v !== IM_FORWARD_BUNDLE_CONTENT_VERSION)
41
+ return null;
42
+ return normalizeBundleExtra({ items: rec.items });
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ export function parseForwardBundleFromImMessage(messageType, content, extraData) {
49
+ if (String(messageType ?? '').trim() !== 'forward_bundle')
50
+ return null;
51
+ const fromContent = parseForwardBundleFromContent(content);
52
+ if (fromContent)
53
+ return fromContent;
54
+ if (!extraData || typeof extraData !== 'object' || Array.isArray(extraData)) {
55
+ return null;
56
+ }
57
+ return normalizeBundleExtra(extraData[IM_FORWARD_BUNDLE_EXTRA_KEY]);
58
+ }
59
+ //# sourceMappingURL=forwardBundlePayload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forwardBundlePayload.js","sourceRoot":"","sources":["../../../src/functions/im/forwardBundlePayload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getActiveMentionQuery(text: string, cursorPos: number): {
2
+ atIndex: number;
3
+ filter: string;
4
+ } | null;
@@ -0,0 +1,23 @@
1
+ export function getActiveMentionQuery(text, cursorPos) {
2
+ if (cursorPos < 0 || cursorPos > text.length)
3
+ return null;
4
+ const before = text.slice(0, cursorPos);
5
+ let searchEnd = before.length;
6
+ while (searchEnd >= 0) {
7
+ const atIndex = before.lastIndexOf('@', searchEnd - 1);
8
+ if (atIndex < 0)
9
+ return null;
10
+ if (atIndex > 0 && !/[\s\n]/.test(before[atIndex - 1])) {
11
+ searchEnd = atIndex;
12
+ continue;
13
+ }
14
+ const tail = before.slice(atIndex + 1);
15
+ if (tail.includes('\n') || /\s/.test(tail)) {
16
+ searchEnd = atIndex > 0 ? atIndex - 1 : -1;
17
+ continue;
18
+ }
19
+ return { atIndex, filter: tail };
20
+ }
21
+ return null;
22
+ }
23
+ //# sourceMappingURL=getActiveMentionQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getActiveMentionQuery.js","sourceRoot":"","sources":["../../../src/functions/im/getActiveMentionQuery.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,qBAAqB,CACnC,IAAY,EACZ,SAAiB;IAEjB,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;IACvC,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;IAC7B,OAAO,SAAS,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAA;QACtD,IAAI,OAAO,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QAC5B,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC;YACxD,SAAS,GAAG,OAAO,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1C,SAAQ;QACV,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,49 @@
1
+ export declare function formatImFileToken(filePath: string): string;
2
+ export declare const formatImLocalFileToken: typeof formatImFileToken;
3
+ export declare function formatImImageLocalToken(attachKey: string): string;
4
+ export interface ImImageIntrinsicDimensions {
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export declare function formatImImageUrlToken(url: string, dimensions?: ImImageIntrinsicDimensions): string;
9
+ export declare function parseImImageUrlTokenPayload(payload: string): {
10
+ url: string;
11
+ width?: number;
12
+ height?: number;
13
+ };
14
+ export type ImRichContentSegment = {
15
+ type: 'text';
16
+ text: string;
17
+ } | {
18
+ type: 'mention';
19
+ userId: string;
20
+ raw: string;
21
+ label?: string;
22
+ } | {
23
+ type: 'file';
24
+ path: string;
25
+ raw: string;
26
+ } | {
27
+ type: 'image';
28
+ url: string;
29
+ raw: string;
30
+ pending: boolean;
31
+ attachKey?: string;
32
+ width?: number;
33
+ height?: number;
34
+ };
35
+ export declare function parseImRichContentSegments(content: string): ImRichContentSegment[];
36
+ export declare function contentHasImageLocalTokens(content: string): boolean;
37
+ export declare function replaceImImageLocalToken(content: string, attachKey: string, url: string, dimensions?: ImImageIntrinsicDimensions): string;
38
+ export declare function replaceImImageUrlToken(content: string, fromUrl: string, toUrl: string, dimensions?: ImImageIntrinsicDimensions): string;
39
+ export declare function contentHasImRichInlineTokens(content: string): boolean;
40
+ export type MaterializeImRichContentOptions = {
41
+ resolveMentionLabel?: (userId: string) => string;
42
+ mentionFallbackLabel?: (userId: string) => string;
43
+ formatLocalFilePath?: (path: string) => string;
44
+ preserveLocalFileTokens?: boolean;
45
+ preserveImageUrlTokens?: boolean;
46
+ formatImageUrl?: (url: string) => string;
47
+ formatImagePending?: () => string;
48
+ };
49
+ export declare function materializeImRichContentTokensInText(content: string, options?: MaterializeImRichContentOptions): string;
@@ -0,0 +1,185 @@
1
+ import { parseImMentionTokenPayload } from './parseImMentionSegments';
2
+ export function formatImFileToken(filePath) {
3
+ const p = filePath.trim();
4
+ return `local-file:[${p}]`;
5
+ }
6
+ export const formatImLocalFileToken = formatImFileToken;
7
+ export function formatImImageLocalToken(attachKey) {
8
+ const k = attachKey.trim();
9
+ return `img:[local:${k}]`;
10
+ }
11
+ export function formatImImageUrlToken(url, dimensions) {
12
+ const u = url.trim();
13
+ if (!u)
14
+ return '';
15
+ const w = Math.round(dimensions?.width ?? 0);
16
+ const h = Math.round(dimensions?.height ?? 0);
17
+ if (w > 0 && h > 0) {
18
+ return `img:[url:${u};w:${w};h:${h}]`;
19
+ }
20
+ return `img:[url:${u}]`;
21
+ }
22
+ export function parseImImageUrlTokenPayload(payload) {
23
+ const raw = payload.trim();
24
+ if (!raw)
25
+ return { url: '' };
26
+ const body = raw.startsWith('url:') ? raw.slice(4) : raw;
27
+ if (!body)
28
+ return { url: '' };
29
+ const dimMatch = body.match(/;w:(\d+);h:(\d+)$/);
30
+ if (dimMatch?.index != null) {
31
+ const width = Number.parseInt(dimMatch[1], 10);
32
+ const height = Number.parseInt(dimMatch[2], 10);
33
+ const url = body.slice(0, dimMatch.index).trim();
34
+ return {
35
+ url,
36
+ ...(width > 0 && height > 0 ? { width, height } : {}),
37
+ };
38
+ }
39
+ return { url: body.trim() };
40
+ }
41
+ const INLINE_TOKEN_RE = /@\[uid:([^\]]+)\]|local-file:\[([^\]]+)\]|file:\[([^\]]+)\]|img:\[local:([^\]]+)\]|img:\[url:([^\]]+)\]/g;
42
+ export function parseImRichContentSegments(content) {
43
+ if (!content)
44
+ return [{ type: 'text', text: '' }];
45
+ const segments = [];
46
+ let last = 0;
47
+ const re = new RegExp(INLINE_TOKEN_RE.source, 'g');
48
+ let m;
49
+ while ((m = re.exec(content)) !== null) {
50
+ if (m.index > last) {
51
+ segments.push({ type: 'text', text: content.slice(last, m.index) });
52
+ }
53
+ if (m[1] != null) {
54
+ const parsed = parseImMentionTokenPayload(m[1]);
55
+ segments.push({
56
+ type: 'mention',
57
+ userId: parsed.userId,
58
+ raw: m[0],
59
+ ...(parsed.label ? { label: parsed.label } : {}),
60
+ });
61
+ }
62
+ else if (m[2] != null) {
63
+ segments.push({ type: 'file', path: m[2], raw: m[0] });
64
+ }
65
+ else if (m[3] != null) {
66
+ segments.push({ type: 'file', path: m[3], raw: m[0] });
67
+ }
68
+ else if (m[4] != null) {
69
+ segments.push({
70
+ type: 'image',
71
+ url: '',
72
+ attachKey: m[4],
73
+ raw: m[0],
74
+ pending: true,
75
+ });
76
+ }
77
+ else if (m[5] != null) {
78
+ const parsed = parseImImageUrlTokenPayload(m[5]);
79
+ segments.push({
80
+ type: 'image',
81
+ url: parsed.url,
82
+ ...(parsed.width != null && parsed.height != null
83
+ ? { width: parsed.width, height: parsed.height }
84
+ : {}),
85
+ raw: m[0],
86
+ pending: false,
87
+ });
88
+ }
89
+ last = m.index + m[0].length;
90
+ }
91
+ if (last < content.length) {
92
+ segments.push({ type: 'text', text: content.slice(last) });
93
+ }
94
+ if (segments.length === 0) {
95
+ return [{ type: 'text', text: content }];
96
+ }
97
+ return segments;
98
+ }
99
+ export function contentHasImageLocalTokens(content) {
100
+ return /img:\[local:[^\]]+\]/.test(content);
101
+ }
102
+ export function replaceImImageLocalToken(content, attachKey, url, dimensions) {
103
+ const from = formatImImageLocalToken(attachKey);
104
+ const to = formatImImageUrlToken(url, dimensions);
105
+ return content.includes(from) ? content.split(from).join(to) : content;
106
+ }
107
+ export function replaceImImageUrlToken(content, fromUrl, toUrl, dimensions) {
108
+ const to = formatImImageUrlToken(toUrl, dimensions);
109
+ const fromWithDims = formatImImageUrlToken(fromUrl, dimensions);
110
+ if (content.includes(fromWithDims)) {
111
+ return content.split(fromWithDims).join(to);
112
+ }
113
+ const fromPlain = formatImImageUrlToken(fromUrl);
114
+ if (content.includes(fromPlain)) {
115
+ return content.split(fromPlain).join(to);
116
+ }
117
+ return content;
118
+ }
119
+ const INLINE_TOKEN_IN_TEXT = /@\[uid:|local-file:\[|img:\[|file:\[/;
120
+ export function contentHasImRichInlineTokens(content) {
121
+ return INLINE_TOKEN_IN_TEXT.test(content ?? '');
122
+ }
123
+ function basenameFromPath(path) {
124
+ const p = path.trim();
125
+ if (!p)
126
+ return '';
127
+ const parts = p.split(/[/\\]/);
128
+ return parts[parts.length - 1] || p;
129
+ }
130
+ function defaultFormatLocalFilePath(path) {
131
+ const name = basenameFromPath(path);
132
+ return name ? `[文件] ${name}` : '[文件]';
133
+ }
134
+ function defaultFormatMentionLabel(userId, options, embeddedLabel) {
135
+ const id = userId.trim();
136
+ const label = embeddedLabel?.trim() ||
137
+ options?.resolveMentionLabel?.(id)?.trim() ||
138
+ options?.mentionFallbackLabel?.(id)?.trim();
139
+ if (label)
140
+ return `@${label}`;
141
+ if (id.length > 14)
142
+ return `@${id.slice(0, 12)}…`;
143
+ return `@${id || '…'}`;
144
+ }
145
+ export function materializeImRichContentTokensInText(content, options) {
146
+ const raw = content ?? '';
147
+ if (!raw || !INLINE_TOKEN_IN_TEXT.test(raw))
148
+ return raw;
149
+ const segments = parseImRichContentSegments(raw);
150
+ let out = '';
151
+ for (const seg of segments) {
152
+ if (seg.type === 'text') {
153
+ out += seg.text;
154
+ continue;
155
+ }
156
+ if (seg.type === 'mention') {
157
+ out += defaultFormatMentionLabel(seg.userId, options, seg.label);
158
+ continue;
159
+ }
160
+ if (seg.type === 'file') {
161
+ if (options?.preserveLocalFileTokens) {
162
+ out += seg.raw;
163
+ }
164
+ else {
165
+ out +=
166
+ options?.formatLocalFilePath?.(seg.path) ??
167
+ defaultFormatLocalFilePath(seg.path);
168
+ }
169
+ continue;
170
+ }
171
+ if (seg.type === 'image') {
172
+ if (seg.pending) {
173
+ out += options?.formatImagePending?.() ?? '[图片]';
174
+ }
175
+ else if (options?.preserveImageUrlTokens) {
176
+ out += seg.raw;
177
+ }
178
+ else {
179
+ out += options?.formatImageUrl?.(seg.url) ?? '[图片]';
180
+ }
181
+ }
182
+ }
183
+ return out;
184
+ }
185
+ //# sourceMappingURL=imInlineContentTokens.js.map