@will1123/lx-ui-utils 1.0.1 → 1.0.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.
- package/README.md +747 -120
- package/dist/dist/index.esm.js +69039 -469
- package/dist/dist/index.esm.min.js +62900 -328
- package/dist/dist/index.esm.min.js.map +1 -1
- package/dist/dist/index.umd.js +69038 -468
- package/dist/dist/index.umd.min.js +346 -13
- package/dist/dist/index.umd.min.js.map +1 -1
- package/dist/es/helper.js +59 -0
- package/dist/es/helper.js.map +1 -0
- package/dist/es/index.js +13 -11
- package/dist/es/index.js.map +1 -1
- package/dist/es/markdown.js +248 -267
- package/dist/es/markdown.js.map +1 -1
- package/dist/es/sse.js +34 -142
- package/dist/es/sse.js.map +1 -1
- package/dist/es/thinking.js +19 -138
- package/dist/es/thinking.js.map +1 -1
- package/dist/lib/helper.js +59 -0
- package/dist/lib/helper.js.map +1 -0
- package/dist/lib/index.js +9 -7
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/markdown.js +249 -268
- package/dist/lib/markdown.js.map +1 -1
- package/dist/lib/sse.js +34 -142
- package/dist/lib/sse.js.map +1 -1
- package/dist/lib/thinking.js +19 -138
- package/dist/lib/thinking.js.map +1 -1
- package/dist/types/helper.d.ts +46 -0
- package/dist/types/helper.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/markdown.d.ts +69 -100
- package/dist/types/markdown.d.ts.map +1 -1
- package/dist/types/sse.d.ts +48 -48
- package/dist/types/sse.d.ts.map +1 -1
- package/dist/types/thinking.d.ts +25 -48
- package/dist/types/thinking.d.ts.map +1 -1
- package/package.json +19 -5
package/dist/types/markdown.d.ts
CHANGED
|
@@ -1,115 +1,84 @@
|
|
|
1
|
+
import { Marked } from 'marked';
|
|
2
|
+
import { default as katex } from 'katex';
|
|
3
|
+
|
|
1
4
|
/**
|
|
2
|
-
*
|
|
5
|
+
* 代码主题类型
|
|
3
6
|
*/
|
|
4
|
-
export
|
|
5
|
-
/** 是否启用代码高亮(默认 false) */
|
|
6
|
-
highlight?: boolean;
|
|
7
|
-
/** 自定义代码高亮语言映射 */
|
|
8
|
-
highlightLanguages?: Record<string, string>;
|
|
9
|
-
/** 是否渲染任务列表(默认 true) */
|
|
10
|
-
taskList?: boolean;
|
|
11
|
-
/** 是否渲染表格(默认 true) */
|
|
12
|
-
table?: boolean;
|
|
13
|
-
/** 是否渲染链接(默认 true) */
|
|
14
|
-
link?: boolean;
|
|
15
|
-
/** 是否渲染图片(默认 true) */
|
|
16
|
-
image?: boolean;
|
|
17
|
-
}
|
|
7
|
+
export type CodeTheme = 'dark' | 'light';
|
|
18
8
|
/**
|
|
19
|
-
*
|
|
9
|
+
* createMarkdownRender 函数配置
|
|
20
10
|
*/
|
|
21
|
-
export interface
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
|
|
11
|
+
export interface CreateMarkdownRenderConfig {
|
|
12
|
+
/** 代码块工具栏是否启用(默认 true) */
|
|
13
|
+
codeBoxToolEnable?: boolean;
|
|
14
|
+
/** 是否启用 KaTeX 公式支持(默认 true) */
|
|
15
|
+
katexEnable?: boolean;
|
|
16
|
+
/** KaTeX 配置选项 */
|
|
17
|
+
katexOptions?: katex.KatexOptions;
|
|
26
18
|
}
|
|
27
19
|
/**
|
|
28
|
-
*
|
|
20
|
+
* 代码块工具栏事件配置
|
|
29
21
|
*/
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* 转义 HTML 特殊字符
|
|
39
|
-
*/
|
|
40
|
-
private escapeHtml;
|
|
41
|
-
/**
|
|
42
|
-
* 渲染代码块
|
|
43
|
-
*/
|
|
44
|
-
private renderCodeBlocks;
|
|
45
|
-
/**
|
|
46
|
-
* 渲染标题
|
|
47
|
-
*/
|
|
48
|
-
private renderHeadings;
|
|
49
|
-
/**
|
|
50
|
-
* 渲染粗体和斜体
|
|
51
|
-
*/
|
|
52
|
-
private renderEmphasis;
|
|
53
|
-
/**
|
|
54
|
-
* 渲染任务列表
|
|
55
|
-
*/
|
|
56
|
-
private renderTaskLists;
|
|
57
|
-
/**
|
|
58
|
-
* 渲染无序列表
|
|
59
|
-
*/
|
|
60
|
-
private renderUnorderedLists;
|
|
61
|
-
/**
|
|
62
|
-
* 渲染有序列表
|
|
63
|
-
*/
|
|
64
|
-
private renderOrderedLists;
|
|
65
|
-
/**
|
|
66
|
-
* 渲染表格
|
|
67
|
-
*/
|
|
68
|
-
private renderTables;
|
|
69
|
-
/**
|
|
70
|
-
* 渲染链接
|
|
71
|
-
*/
|
|
72
|
-
private renderLinks;
|
|
73
|
-
/**
|
|
74
|
-
* 渲染图片
|
|
75
|
-
*/
|
|
76
|
-
private renderImages;
|
|
77
|
-
/**
|
|
78
|
-
* 渲染段落
|
|
79
|
-
*/
|
|
80
|
-
private renderParagraphs;
|
|
81
|
-
/**
|
|
82
|
-
* 渲染换行
|
|
83
|
-
*/
|
|
84
|
-
private renderLineBreaks;
|
|
22
|
+
export interface CodeBoxEventsConfig {
|
|
23
|
+
/** 复制成功回调 */
|
|
24
|
+
onCopySuccess?: (text: string) => void;
|
|
25
|
+
/** 复制失败回调 */
|
|
26
|
+
onCopyError?: (error: Error) => void;
|
|
27
|
+
/** 主题切换回调 */
|
|
28
|
+
onThemeChange?: (theme: CodeTheme) => void;
|
|
85
29
|
}
|
|
86
30
|
/**
|
|
87
|
-
*
|
|
31
|
+
* 从 localStorage 获取代码主题
|
|
88
32
|
*/
|
|
89
|
-
export declare function
|
|
33
|
+
export declare function getMarkdownCodeTheme(): CodeTheme;
|
|
90
34
|
/**
|
|
91
|
-
*
|
|
35
|
+
* 设置代码主题到 localStorage
|
|
92
36
|
*/
|
|
93
|
-
export declare
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
37
|
+
export declare function setMarkdownCodeTheme(theme: CodeTheme): void;
|
|
38
|
+
/**
|
|
39
|
+
* 切换代码主题
|
|
40
|
+
*
|
|
41
|
+
* @returns 新主题
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* import { toggleMarkdownCodeTheme } from '@will1123/lx-ui-utils'
|
|
46
|
+
*
|
|
47
|
+
* // 切换主题
|
|
48
|
+
* const newTheme = toggleMarkdownCodeTheme()
|
|
49
|
+
* // 注意:此函数只切换 localStorage 中的主题,不会更新 DOM
|
|
50
|
+
* // 如需更新 DOM,请配合 updateMarkdownCodeBlocksTheme
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function toggleMarkdownCodeTheme(): CodeTheme;
|
|
54
|
+
/**
|
|
55
|
+
* 更新 DOM 中所有代码块的主题
|
|
56
|
+
*
|
|
57
|
+
* @param themeOrContainer - 主题或容器元素(字符串表示主题,DOM 元素表示容器)
|
|
58
|
+
* @param theme - 主题(当第一个参数是容器时使用)
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* import { updateMarkdownCodeBlocksTheme } from '@will1123/lx-ui-utils'
|
|
63
|
+
*
|
|
64
|
+
* // 方式 1:只传主题(更新 document.body 中的所有代码块)
|
|
65
|
+
* updateMarkdownCodeBlocksTheme('dark')
|
|
66
|
+
*
|
|
67
|
+
* // 方式 2:传容器和主题
|
|
68
|
+
* const container = document.querySelector('#markdown-container')
|
|
69
|
+
* updateMarkdownCodeBlocksTheme(container, 'light')
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function updateMarkdownCodeBlocksTheme(themeOrContainer: CodeTheme | HTMLElement | Document, theme?: CodeTheme): void;
|
|
73
|
+
/**
|
|
74
|
+
* 创建配置好的 Marked 实例
|
|
75
|
+
*/
|
|
76
|
+
export declare function createMarkdownRender(createConfig?: CreateMarkdownRenderConfig): Marked;
|
|
111
77
|
/**
|
|
112
|
-
*
|
|
78
|
+
* 绑定代码块工具栏事件(函数重载)
|
|
113
79
|
*/
|
|
114
|
-
export declare function
|
|
80
|
+
export declare function bindMarkdownCodeBoxEvents(): () => void;
|
|
81
|
+
export declare function bindMarkdownCodeBoxEvents(config: CodeBoxEventsConfig): () => void;
|
|
82
|
+
export declare function bindMarkdownCodeBoxEvents(container: HTMLElement | Document): () => void;
|
|
83
|
+
export declare function bindMarkdownCodeBoxEvents(container: HTMLElement | Document, config: CodeBoxEventsConfig): () => void;
|
|
115
84
|
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa;IACb,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa;IACb,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa;IACb,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,CAGhD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAG3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,SAAS,CAKnD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,EACpD,KAAK,CAAC,EAAE,SAAS,GAChB,IAAI,CAoBN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,GAAE,0BAA+B,UAiF9C;AAqFD;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,IAAI,CAAC;AACxD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,MAAM,IAAI,CAAC;AACd,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,WAAW,GAAG,QAAQ,GAChC,MAAM,IAAI,CAAC;AACd,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,WAAW,GAAG,QAAQ,EACjC,MAAM,EAAE,mBAAmB,GAC1B,MAAM,IAAI,CAAC"}
|
package/dist/types/sse.d.ts
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
+
import { EventSourceMessage } from '@microsoft/fetch-event-source';
|
|
2
|
+
|
|
3
|
+
export type { EventSourceMessage };
|
|
1
4
|
/**
|
|
2
|
-
* SSE
|
|
5
|
+
* SSE 请求配置
|
|
3
6
|
*/
|
|
4
7
|
export interface SSEConfig {
|
|
5
8
|
/** 请求 URL */
|
|
6
9
|
url: string;
|
|
7
|
-
/**
|
|
10
|
+
/** 请求方法(默认 'POST') */
|
|
8
11
|
method?: 'GET' | 'POST';
|
|
9
12
|
/** 请求头 */
|
|
10
13
|
headers?: Record<string, string>;
|
|
11
|
-
/**
|
|
12
|
-
body?:
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export interface SSEMessage {
|
|
20
|
-
/** 数据内容 */
|
|
21
|
-
data: string;
|
|
22
|
-
/** 事件类型 */
|
|
23
|
-
event?: string;
|
|
24
|
-
/** ID */
|
|
25
|
-
id?: string;
|
|
26
|
-
/** 重连时间(毫秒) */
|
|
27
|
-
retry?: number;
|
|
14
|
+
/** 请求体(对象类型) */
|
|
15
|
+
body?: object;
|
|
16
|
+
/** AbortController 的 signal(用于取消请求) */
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
/** 认证 Token */
|
|
19
|
+
token?: string;
|
|
20
|
+
/** 页面隐藏时是否保持连接(默认 true) */
|
|
21
|
+
openWhenHidden?: boolean;
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
24
|
* SSE 事件处理器
|
|
31
25
|
*/
|
|
32
26
|
export interface SSEHandlers {
|
|
27
|
+
/** 连接打开时触发(可验证响应) */
|
|
28
|
+
onOpen?: (response: Response) => void | Promise<void>;
|
|
33
29
|
/** 接收到消息时触发 */
|
|
34
|
-
onMessage?: (message:
|
|
35
|
-
/** 连接打开时触发 */
|
|
36
|
-
onOpen?: () => void;
|
|
30
|
+
onMessage?: (message: EventSourceMessage) => void;
|
|
37
31
|
/** 连接关闭时触发 */
|
|
38
32
|
onClose?: () => void;
|
|
39
33
|
/** 发生错误时触发 */
|
|
40
34
|
onError?: (error: Error) => void;
|
|
41
35
|
}
|
|
42
36
|
/**
|
|
43
|
-
* SSE
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
*
|
|
37
|
+
* 发起 SSE 请求
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* // 基础用法
|
|
42
|
+
* await sse({
|
|
43
|
+
* url: '/api/stream',
|
|
44
|
+
* body: { prompt: 'hello' }
|
|
45
|
+
* }, {
|
|
46
|
+
* onMessage(msg) {
|
|
47
|
+
* console.log(msg.data)
|
|
48
|
+
* }
|
|
49
|
+
* })
|
|
50
|
+
*
|
|
51
|
+
* // 使用 Token 认证
|
|
52
|
+
* await sse({
|
|
53
|
+
* url: '/api/stream',
|
|
54
|
+
* token: 'Bearer your-token',
|
|
55
|
+
* body: { prompt: 'hello' }
|
|
56
|
+
* }, {
|
|
57
|
+
* onOpen(response) {
|
|
58
|
+
* console.log('连接已打开')
|
|
59
|
+
* },
|
|
60
|
+
* onMessage(msg) {
|
|
61
|
+
* console.log(msg.data)
|
|
62
|
+
* },
|
|
63
|
+
* onError(err) {
|
|
64
|
+
* console.error(err)
|
|
65
|
+
* }
|
|
66
|
+
* })
|
|
67
|
+
* ```
|
|
68
68
|
*/
|
|
69
|
-
export declare function sse(config: SSEConfig, handlers: SSEHandlers):
|
|
69
|
+
export declare function sse(config: SSEConfig, handlers: SSEHandlers): Promise<void>;
|
|
70
70
|
//# sourceMappingURL=sse.d.ts.map
|
package/dist/types/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,GAAG,EAAE,MAAM,CAAA;IACX,
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGzF,YAAY,EAAE,kBAAkB,EAAE,CAAA;AAElC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,aAAa;IACb,GAAG,EAAE,MAAM,CAAA;IACX,sBAAsB;IACtB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uCAAuC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qBAAqB;IACrB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,eAAe;IACf,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,cAAc;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAsB,GAAG,CACvB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,GACpB,OAAO,CAAC,IAAI,CAAC,CAqCf"}
|
package/dist/types/thinking.d.ts
CHANGED
|
@@ -1,64 +1,41 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* 深度思考提取配置
|
|
3
3
|
*/
|
|
4
4
|
export interface ThinkingExtractConfig {
|
|
5
5
|
/** 思考标签名称(默认为 'think') */
|
|
6
6
|
tagName?: string;
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
/** 是否移除思考内容后的其余文本 */
|
|
10
|
-
removeRest?: boolean;
|
|
7
|
+
/** 解析模式:'full'(完整标签,默认)| 'end-tag-only'(仅结束标签) */
|
|
8
|
+
mode?: 'full' | 'end-tag-only';
|
|
11
9
|
}
|
|
12
10
|
/**
|
|
13
|
-
*
|
|
11
|
+
* 深度思考提取结果
|
|
14
12
|
*/
|
|
15
13
|
export interface ThinkingResult {
|
|
16
14
|
/** 提取的思考内容 */
|
|
17
15
|
thinking: string;
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
/** 是否找到思考内容 */
|
|
21
|
-
hasThinking: boolean;
|
|
16
|
+
/** 实际回答内容 */
|
|
17
|
+
content: string;
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
|
-
*
|
|
20
|
+
* 从大模型响应中提取深度思考
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* // 默认模式:完整标签
|
|
25
|
+
* const text1 = '这是回答内容'
|
|
26
|
+
* const result1 = extractThinking(text1)
|
|
27
|
+
* // { thinking: '这是思考内容', content: '这是回答内容' }
|
|
28
|
+
*
|
|
29
|
+
* // end-tag-only 模式:只有结束标签
|
|
30
|
+
* const text2 = '这是前面的思考这是后面的正文'
|
|
31
|
+
* const result2 = extractThinking(text2, { mode: 'end-tag-only' })
|
|
32
|
+
* // { thinking: '这是前面的思考', content: '这是后面的正文' }
|
|
33
|
+
*
|
|
34
|
+
* // 没有标签时
|
|
35
|
+
* const text3 = '全部是正文内容'
|
|
36
|
+
* const result3 = extractThinking(text3)
|
|
37
|
+
* // { thinking: '', content: '全部是正文内容' }
|
|
38
|
+
* ```
|
|
25
39
|
*/
|
|
26
40
|
export declare function extractThinking(text: string, config?: ThinkingExtractConfig): ThinkingResult;
|
|
27
|
-
/**
|
|
28
|
-
* 流式提取思考过程(用于 SSE 流式响应)
|
|
29
|
-
*/
|
|
30
|
-
export declare class ThinkingStreamExtractor {
|
|
31
|
-
private config;
|
|
32
|
-
private state;
|
|
33
|
-
private isComplete;
|
|
34
|
-
constructor(config?: ThinkingExtractConfig);
|
|
35
|
-
/**
|
|
36
|
-
* 追加文本并提取思考内容
|
|
37
|
-
*/
|
|
38
|
-
append(text: string): {
|
|
39
|
-
thinking: string;
|
|
40
|
-
rest: string;
|
|
41
|
-
isComplete: boolean;
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* 获取当前提取的思考内容
|
|
45
|
-
*/
|
|
46
|
-
getThinking(): string;
|
|
47
|
-
/**
|
|
48
|
-
* 获取剩余内容
|
|
49
|
-
*/
|
|
50
|
-
getRest(): string;
|
|
51
|
-
/**
|
|
52
|
-
* 是否已完成提取
|
|
53
|
-
*/
|
|
54
|
-
complete(): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* 重置提取器
|
|
57
|
-
*/
|
|
58
|
-
reset(): void;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* 创建流式提取器实例
|
|
62
|
-
*/
|
|
63
|
-
export declare function createThinkingExtractor(config?: ThinkingExtractConfig): ThinkingStreamExtractor;
|
|
64
41
|
//# sourceMappingURL=thinking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../src/thinking.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,
|
|
1
|
+
{"version":3,"file":"thinking.d.ts","sourceRoot":"","sources":["../../src/thinking.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,cAAc;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,qBAA0B,GACjC,cAAc,CAwChB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@will1123/lx-ui-utils",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "LX UI - 灵曦平台 AI 组件库通用工具函数库",
|
|
5
6
|
"main": "dist/lib/index.js",
|
|
6
7
|
"module": "dist/es/index.js",
|
|
@@ -16,7 +17,11 @@
|
|
|
16
17
|
"dist"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|
|
19
|
-
"build": "node scripts/build.
|
|
20
|
+
"build": "node scripts/build.cjs",
|
|
21
|
+
"test": "vitest",
|
|
22
|
+
"test:run": "vitest run",
|
|
23
|
+
"test:ui": "vitest --ui",
|
|
24
|
+
"test:coverage": "vitest run --coverage"
|
|
20
25
|
},
|
|
21
26
|
"keywords": [
|
|
22
27
|
"lx-ui",
|
|
@@ -33,13 +38,22 @@
|
|
|
33
38
|
"url": "git+https://github.com/你的用户名/lx-ui.git",
|
|
34
39
|
"directory": "packages/utils"
|
|
35
40
|
},
|
|
36
|
-
"
|
|
37
|
-
"
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@microsoft/fetch-event-source": "^2.0.1",
|
|
43
|
+
"highlight.js": "^11.11.1",
|
|
44
|
+
"katex": "0.16.12",
|
|
45
|
+
"marked": "^15.0.7",
|
|
46
|
+
"marked-highlight": "^2.2.1"
|
|
38
47
|
},
|
|
39
48
|
"devDependencies": {
|
|
49
|
+
"@types/katex": "^0.16.7",
|
|
50
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
51
|
+
"@vitest/ui": "^4.0.16",
|
|
52
|
+
"fs-extra": "^11.3.2",
|
|
53
|
+
"happy-dom": "^20.0.11",
|
|
40
54
|
"typescript": "^5.3.3",
|
|
41
55
|
"vite": "^5.0.8",
|
|
42
56
|
"vite-plugin-dts": "^3.7.0",
|
|
43
|
-
"
|
|
57
|
+
"vitest": "^4.0.16"
|
|
44
58
|
}
|
|
45
59
|
}
|