@whispering233/ai-editor-shared 0.0.21 → 0.0.29
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/dist/constants/backup.d.ts +5 -5
- package/dist/constants/backup.d.ts.map +1 -1
- package/dist/constants/backup.js +5 -7
- package/dist/constants/backup.js.map +1 -1
- package/dist/constants/entity.d.ts +7 -7
- package/dist/constants/entity.d.ts.map +1 -1
- package/dist/constants/entity.js +7 -8
- package/dist/constants/entity.js.map +1 -1
- package/dist/constants/hook.d.ts +4 -4
- package/dist/constants/hook.d.ts.map +1 -1
- package/dist/constants/hook.js +4 -5
- package/dist/constants/hook.js.map +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/outline.d.ts +1 -1
- package/dist/constants/outline.d.ts.map +1 -1
- package/dist/constants/outline.js +2 -3
- package/dist/constants/outline.js.map +1 -1
- package/dist/constants/tool.d.ts +6 -6
- package/dist/constants/tool.d.ts.map +1 -1
- package/dist/constants/tool.js +9 -10
- package/dist/constants/tool.js.map +1 -1
- package/dist/types/api.d.ts +69 -45
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +173 -162
- package/dist/types/api.js.map +1 -1
- package/dist/types/chat.d.ts +7 -7
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/types/chat.js +0 -1
- package/dist/types/chat.js.map +1 -1
- package/dist/types/entity.d.ts +31 -31
- package/dist/types/entity.d.ts.map +1 -1
- package/dist/types/entity.js +1 -2
- package/dist/types/entity.js.map +1 -1
- package/dist/types/outline.d.ts +25 -25
- package/dist/types/outline.d.ts.map +1 -1
- package/dist/types/outline.js +2 -3
- package/dist/types/outline.js.map +1 -1
- package/dist/types/project.d.ts +18 -18
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +0 -1
- package/dist/types/project.js.map +1 -1
- package/dist/types/tool.d.ts +15 -15
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +35 -39
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/backup.d.ts +14 -14
- package/dist/utils/backup.d.ts.map +1 -1
- package/dist/utils/backup.js +28 -31
- package/dist/utils/backup.js.map +1 -1
- package/dist/utils/format.d.ts +3 -3
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +3 -4
- package/dist/utils/format.js.map +1 -1
- package/dist/utils/id.d.ts +6 -6
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +7 -9
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/mapping.d.ts +4 -4
- package/dist/utils/mapping.d.ts.map +1 -1
- package/dist/utils/mapping.js +20 -20
- package/dist/utils/mapping.js.map +1 -1
- package/dist/utils/reference-file.d.ts +4 -4
- package/dist/utils/reference-file.d.ts.map +1 -1
- package/dist/utils/reference-file.js +14 -16
- package/dist/utils/reference-file.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
//
|
|
1
|
+
// 参考资料文件工具纯函数(批次十一)
|
|
2
2
|
// 职责:md 文件(YAML frontmatter + markdown 正文)的解析/序列化 + 文件名 sanitize。
|
|
3
3
|
// 约束(shared 硬约束):纯 TS 无 Node 内置模块——仅字符串处理,client 可打包。
|
|
4
|
-
// 契约来源:doc/design/decisions.md 决策 43(文件 = 真相源:frontmatter 自包含可重建索引)、
|
|
5
|
-
// doc/database/schema.md(reference data 字段 kind/file_name/file_mtime)。
|
|
6
4
|
//
|
|
7
|
-
// frontmatter
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
5
|
+
// frontmatter 格式( Q1=方案 A):
|
|
6
|
+
// ---
|
|
7
|
+
// title: 五行相生相克 摘抄
|
|
8
|
+
// category: material
|
|
9
|
+
// tags: [五行, 设定]
|
|
10
|
+
// ---
|
|
11
|
+
// 正文 markdown…
|
|
14
12
|
// 解析容错:frontmatter 缺失/非法 → 按纯 markdown 处理(title=undefined、category=undefined、
|
|
15
|
-
//
|
|
13
|
+
// tags=[]、body=全文),调用方兜底(title=文件名去扩展名、category=material)。
|
|
16
14
|
/** YAML frontmatter 边界标记(须独占一行) */
|
|
17
15
|
export const FRONTMATTER_DELIMITER = "---";
|
|
18
16
|
/** 提取 frontmatter 块内原始行(不含 --- 边界)与正文偏移;无 frontmatter → null */
|
|
@@ -27,7 +25,7 @@ function splitFrontmatter(text) {
|
|
|
27
25
|
for (let i = 0; i < lines.length; i++) {
|
|
28
26
|
if (lines[i].trim() === FRONTMATTER_DELIMITER) {
|
|
29
27
|
const body = lines.slice(i + 1).join("\n");
|
|
30
|
-
// 去掉 body
|
|
28
|
+
// 去掉 body 开头单个换行( 闭合行后紧跟空行是惯例,保留语义不吞内容)
|
|
31
29
|
// 与末尾恰一个换行(POSIX 文件末尾换行惯例;roundtrip 稳定:serialize 输出 \n → parse 去掉)
|
|
32
30
|
return { rawLines: lines.slice(0, i), body: body.replace(/^\n/, "").replace(/\n$/, "") };
|
|
33
31
|
}
|
|
@@ -53,7 +51,7 @@ function parseKeyValue(line) {
|
|
|
53
51
|
return { key, value: unquoted.trim() };
|
|
54
52
|
}
|
|
55
53
|
/**
|
|
56
|
-
* 解析 md 文件文本(frontmatter +
|
|
54
|
+
* 解析 md 文件文本(frontmatter + 正文)。
|
|
57
55
|
* 容错:无 frontmatter / 起始无闭合 → 全当正文;单行值数组/引号/注释行(# 开头)跳过;
|
|
58
56
|
* 重复 key 后者覆盖;未知 key 忽略(title/category/tags 之外的字段不进入索引,但序列化时保留——
|
|
59
57
|
* 见 serializeReferenceFile 的 extraLines 参数)。
|
|
@@ -91,7 +89,7 @@ export function parseReferenceFrontmatter(text) {
|
|
|
91
89
|
}
|
|
92
90
|
return { title, category, tags, extraLines: unknown, body: block.body };
|
|
93
91
|
}
|
|
94
|
-
/** 序列化参考文件全文(frontmatter +
|
|
92
|
+
/** 序列化参考文件全文(frontmatter + 正文; 格式) */
|
|
95
93
|
export function serializeReferenceFile(input) {
|
|
96
94
|
const lines = [FRONTMATTER_DELIMITER];
|
|
97
95
|
lines.push(`title: ${input.title}`);
|
|
@@ -107,13 +105,13 @@ export function serializeReferenceFile(input) {
|
|
|
107
105
|
return `${lines.join("\n")}\n`;
|
|
108
106
|
}
|
|
109
107
|
/**
|
|
110
|
-
* 文件名 sanitize
|
|
108
|
+
* 文件名 sanitize(创建时标题作文件名;禁路径分隔符/保留字符/控制字符/纯点)。
|
|
111
109
|
* 规则对齐 sanitizeBackupName(B2.6)心智:Windows 保留字符 `\ / : * ? " < > |`、控制字符、
|
|
112
110
|
* 首尾空白/点、纯点(. / ..)全部清除/替换;空结果 → "未命名";截断 100 字符(name 上限)。
|
|
113
111
|
* 返回不含 .md 扩展名的基名(调用方自行拼接)。
|
|
114
112
|
*/
|
|
115
113
|
export function sanitizeReferenceFileName(name) {
|
|
116
|
-
// 保留 CJK
|
|
114
|
+
// 保留 CJK/字母数字/空格/常见标点( _ . 【】、,。;:!?·),其余替换为空格后折叠
|
|
117
115
|
const cleaned = name
|
|
118
116
|
// 控制字符与路径分隔符/保留字符 → 空格
|
|
119
117
|
.replace(/[\u0000-\u001f\u007f\\/:*?"<>|]/g, " ")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-file.js","sourceRoot":"","sources":["../../src/utils/reference-file.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"reference-file.js","sourceRoot":"","sources":["../../src/utils/reference-file.ts"],"names":[],"mappings":"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"}
|