@whispering233/ai-editor-server 0.0.20 → 0.0.26
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/client-dist/assets/index-CUNOIWK0.css +1 -0
- package/client-dist/assets/index-CjPnD5TI.js +518 -0
- package/client-dist/index.html +2 -2
- package/dist/backup.d.ts +78 -78
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +138 -139
- package/dist/backup.js.map +1 -1
- package/dist/consistency.d.ts +3 -3
- package/dist/consistency.d.ts.map +1 -1
- package/dist/consistency.js +4 -4
- package/dist/consistency.js.map +1 -1
- package/dist/debug.d.ts +1 -1
- package/dist/debug.js +7 -7
- package/dist/debug.js.map +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -37
- package/dist/index.js.map +1 -1
- package/dist/middleware/error.d.ts +4 -4
- package/dist/middleware/error.d.ts.map +1 -1
- package/dist/middleware/error.js +7 -9
- package/dist/middleware/error.js.map +1 -1
- package/dist/middleware/project.d.ts +9 -9
- package/dist/middleware/project.d.ts.map +1 -1
- package/dist/middleware/project.js +23 -23
- package/dist/middleware/project.js.map +1 -1
- package/dist/reference-files.d.ts +12 -12
- package/dist/reference-files.d.ts.map +1 -1
- package/dist/reference-files.js +20 -21
- package/dist/reference-files.js.map +1 -1
- package/dist/routes/chat.d.ts +18 -18
- package/dist/routes/chat.d.ts.map +1 -1
- package/dist/routes/chat.js +70 -83
- package/dist/routes/chat.js.map +1 -1
- package/dist/routes/delta.d.ts.map +1 -1
- package/dist/routes/delta.js +27 -28
- package/dist/routes/delta.js.map +1 -1
- package/dist/routes/entity.d.ts.map +1 -1
- package/dist/routes/entity.js +44 -45
- package/dist/routes/entity.js.map +1 -1
- package/dist/routes/names.d.ts.map +1 -1
- package/dist/routes/names.js +8 -9
- package/dist/routes/names.js.map +1 -1
- package/dist/routes/outline.d.ts +1 -1
- package/dist/routes/outline.d.ts.map +1 -1
- package/dist/routes/outline.js +23 -24
- package/dist/routes/outline.js.map +1 -1
- package/dist/routes/project.d.ts +6 -6
- package/dist/routes/project.d.ts.map +1 -1
- package/dist/routes/project.js +91 -95
- package/dist/routes/project.js.map +1 -1
- package/dist/routes/proposal.d.ts.map +1 -1
- package/dist/routes/proposal.js +40 -42
- package/dist/routes/proposal.js.map +1 -1
- package/dist/routes/reference.d.ts.map +1 -1
- package/dist/routes/reference.js +1 -2
- package/dist/routes/reference.js.map +1 -1
- package/dist/routes/relation.d.ts.map +1 -1
- package/dist/routes/relation.js +14 -15
- package/dist/routes/relation.js.map +1 -1
- package/dist/routes/settings.d.ts +35 -17
- package/dist/routes/settings.d.ts.map +1 -1
- package/dist/routes/settings.js +157 -52
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/trash.d.ts.map +1 -1
- package/dist/routes/trash.js +15 -16
- package/dist/routes/trash.js.map +1 -1
- package/package.json +7 -7
- package/client-dist/assets/index-B51Kcb1K.css +0 -1
- package/client-dist/assets/index-zgl3whdc.js +0 -104
package/dist/routes/entity.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
// 实体路由(S3.3):GET 列表 / POST 创建 / GET 详情 / PUT 部分更新 / DELETE 软删 / PUT event move(C2
|
|
2
|
-
// + PUT timepoint move / POST event move_to(G2
|
|
1
|
+
// 实体路由(S3.3):GET 列表 / POST 创建 / GET 详情 / PUT 部分更新 / DELETE 软删 / PUT event move(C2)
|
|
2
|
+
// + PUT timepoint move / POST event move_to(G2)
|
|
3
3
|
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
// 实体不存在或已软删 → 404 ENTITY_NOT_FOUND
|
|
4
|
+
// (软删级联)、(时间轴事件:全局线性序 sort_order,仅 event 使用)、
|
|
5
|
+
// G2 修订(时间标签点实体化:timepoint 全局线性序 + occurs_at 挂载 + 跨组拖拽复合端点)。
|
|
6
|
+
// 错误映射(对照 错误码):
|
|
7
|
+
// type 参数非法 / 参数校验失败 → 400 VALIDATION_ERROR(zod 抛错由 errorHandler 统一映射,含 fields)
|
|
8
|
+
// 实体不存在或已软删 → 404 ENTITY_NOT_FOUND
|
|
10
9
|
import { Hono } from "hono";
|
|
11
10
|
import { existsSync } from "node:fs";
|
|
12
11
|
import { join } from "node:path";
|
|
@@ -27,7 +26,7 @@ export function parseTypeParam(type) {
|
|
|
27
26
|
}
|
|
28
27
|
return parsed.data;
|
|
29
28
|
}
|
|
30
|
-
/** 按类型精确校验 data
|
|
29
|
+
/** 按类型精确校验 data(:各 type 的 data 字段 schema;宽松 record 之外的精校验) */
|
|
31
30
|
function validateDataByType(type, data) {
|
|
32
31
|
const check = ENTITY_DATA_SCHEMAS[type].safeParse(data);
|
|
33
32
|
if (!check.success) {
|
|
@@ -42,7 +41,7 @@ entityRoutes.get("/:type", (c) => {
|
|
|
42
41
|
if (!parsed.success)
|
|
43
42
|
throw parsed.error;
|
|
44
43
|
const { q, offset, limit, sort, order, tag, parent_id } = parsed.data;
|
|
45
|
-
//
|
|
44
|
+
// 标签筛选:走既有 matchDataFilters.tags 内部管道(S6.3 工具下沉能力挂到 REST)
|
|
46
45
|
const result = listEntities(project.db, {
|
|
47
46
|
type,
|
|
48
47
|
q,
|
|
@@ -51,12 +50,12 @@ entityRoutes.get("/:type", (c) => {
|
|
|
51
50
|
sort,
|
|
52
51
|
order,
|
|
53
52
|
filters: tag !== undefined ? { tags: [tag] } : undefined,
|
|
54
|
-
// 空串防御(oracle P2):`?parent_id=` 空串与「不传 =
|
|
53
|
+
// 空串防御(oracle P2):`?parent_id=` 空串与「不传 = 不过滤」不一致——归一化为 undefined
|
|
55
54
|
parentId: type === "setting" && parent_id !== "" ? parent_id : undefined,
|
|
56
55
|
});
|
|
57
|
-
// M2(2026-08 批次六):setting
|
|
56
|
+
// M2(2026-08 批次六):setting 列表附加上级设定( 层级 = belongs_to)——
|
|
58
57
|
// 补查全量设定间层级边(listRelations 已做软删端点可见性过滤),按 childId 映射附加
|
|
59
|
-
// parentId/parentName
|
|
58
|
+
// parentId/parentName(稀疏:无父的设定不出现该字段);其余类型不附加(仅 setting)
|
|
60
59
|
if (type === "setting") {
|
|
61
60
|
const { relations } = listRelations(project.db, { sourceType: "setting", targetType: "setting", relationType: "belongs_to" }, 1, project.root);
|
|
62
61
|
const parentByChild = new Map();
|
|
@@ -88,9 +87,9 @@ entityRoutes.get("/:type/:id", (c) => {
|
|
|
88
87
|
throw new HttpError(404, "ENTITY_NOT_FOUND", `实体不存在: ${id}`);
|
|
89
88
|
}
|
|
90
89
|
const deltaCount = countDeltasForEntity(project.db, id);
|
|
91
|
-
// relations 紧邻(S3.2:listRelations depth=1
|
|
90
|
+
// relations 紧邻(S3.2:listRelations depth=1,任一端点软删即不可见,;
|
|
92
91
|
// outline.json 校验路径 = project.root)。
|
|
93
|
-
//
|
|
92
|
+
// **双向邻接**(「紧邻 1 跳」未明示方向,产品语义为展示所有关联):
|
|
94
93
|
// source 方向(该实体作为起点) + target 方向(该实体作为终点)两次查询,
|
|
95
94
|
// 按关系 id 去重(source 方向优先、保持稳定顺序;自环 A→A 两方向均命中但只出现一次)
|
|
96
95
|
const sourceRels = listRelations(project.db, { sourceId: row.id }, 1, project.root).relations;
|
|
@@ -114,7 +113,7 @@ entityRoutes.get("/:type/:id", (c) => {
|
|
|
114
113
|
}));
|
|
115
114
|
});
|
|
116
115
|
// POST /api/v1/entity/:type —— 创建(name 必填 1-100;data 按类型精确校验;201)
|
|
117
|
-
// reference
|
|
116
|
+
// reference 特例:kind 缺省视为 link(url 必填校验);kind='file' → 先落盘
|
|
118
117
|
// references/<标题 sanitize>.md(frontmatter + 正文)再建索引(data 补 file_name/file_mtime/content 镜像)
|
|
119
118
|
entityRoutes.post("/:type", async (c) => {
|
|
120
119
|
const project = requireCurrentProject();
|
|
@@ -128,7 +127,7 @@ entityRoutes.post("/:type", async (c) => {
|
|
|
128
127
|
}
|
|
129
128
|
let data = parsed.data.data ?? {};
|
|
130
129
|
if (type === "reference") {
|
|
131
|
-
const kind = data.kind === "file" ? "file" : "link"; // 缺省视为 link
|
|
130
|
+
const kind = data.kind === "file" ? "file" : "link"; // 缺省视为 link
|
|
132
131
|
if (kind === "link") {
|
|
133
132
|
// link 类:url 必填(trim 非空)
|
|
134
133
|
if (typeof data.url !== "string" || data.url.trim() === "") {
|
|
@@ -155,9 +154,9 @@ entityRoutes.post("/:type", async (c) => {
|
|
|
155
154
|
return c.json(ok({ id: row.id, type: row.type, name: row.name, data: row.data, createdAt: row.created_at }), 201);
|
|
156
155
|
});
|
|
157
156
|
// PUT /api/v1/entity/:type/:id —— 部分更新(仅合并传入字段;data 浅合并)
|
|
158
|
-
// reference file
|
|
159
|
-
//
|
|
160
|
-
//
|
|
157
|
+
// reference file 类特例:**先原子写文件再更新 DB**——正文真相在文件:
|
|
158
|
+
// 请求未携带 data.content 时(行内编辑标题/分类/标签)读原文件正文与最新元数据重写 frontmatter 保留正文;
|
|
159
|
+
// 文件读失败(外部删除)→ 409 REFERENCE_FILE_MISSING 提示先扫描;文件名不随标题重命名(创建时确定)
|
|
161
160
|
entityRoutes.put("/:type/:id", async (c) => {
|
|
162
161
|
const project = requireCurrentProject();
|
|
163
162
|
const type = parseTypeParam(c.req.param("type"));
|
|
@@ -205,10 +204,10 @@ entityRoutes.put("/:type/:id", async (c) => {
|
|
|
205
204
|
}
|
|
206
205
|
return c.json(ok({ id: row.id, updated: true }));
|
|
207
206
|
});
|
|
208
|
-
// PUT /api/v1/entity/event/:id/move ——
|
|
207
|
+
// PUT /api/v1/entity/event/:id/move —— 时间轴事件重排()
|
|
209
208
|
// 请求 { order }(0-based 全局事件线性序;越界 clamp:负数→0、超总数→末尾——db 层 moveEvent 语义);
|
|
210
209
|
// 响应 200 { moved: true };事件不存在或已软删 → 404 ENTITY_NOT_FOUND。
|
|
211
|
-
// 仅 event 支持(专端点路径):其余实体类型无 sort_order
|
|
210
|
+
// 仅 event 支持(专端点路径):其余实体类型无 sort_order 语义()。
|
|
212
211
|
entityRoutes.put("/event/:id/move", async (c) => {
|
|
213
212
|
const project = requireCurrentProject();
|
|
214
213
|
const id = c.req.param("id");
|
|
@@ -222,10 +221,10 @@ entityRoutes.put("/event/:id/move", async (c) => {
|
|
|
222
221
|
}
|
|
223
222
|
return c.json(ok({ moved: true }));
|
|
224
223
|
});
|
|
225
|
-
// PUT /api/v1/entity/timepoint/:id/move —— 时间轴时间点重排(G2
|
|
224
|
+
// PUT /api/v1/entity/timepoint/:id/move —— 时间轴时间点重排(G2,,「PUT /entity/timepoint/:id/move」)
|
|
226
225
|
// 请求 { order }(0-based 全局时间点线性序;越界 clamp、负数 400 schema 拒绝——语义同 event move);
|
|
227
226
|
// 响应 200 { moved: true };时间点不存在或已软删 → 404 ENTITY_NOT_FOUND。
|
|
228
|
-
//
|
|
227
|
+
// 注意:拖拽时间点**不改其下事件序**(双独立线性序, G2 修订)——moveTimepoint 只碰
|
|
229
228
|
// timepoint 行,event.sort_order 与 occurs_at 挂载均不动。仅 timepoint 支持(专端点路径)。
|
|
230
229
|
entityRoutes.put("/timepoint/:id/move", async (c) => {
|
|
231
230
|
const project = requireCurrentProject();
|
|
@@ -243,12 +242,12 @@ entityRoutes.put("/timepoint/:id/move", async (c) => {
|
|
|
243
242
|
/** move_to 事务内哨兵:moveEvent 返回 null(事件不存在/已软删)→ 抛错回滚事务,路由映射 404 */
|
|
244
243
|
class MoveToTargetNotFoundError extends Error {
|
|
245
244
|
}
|
|
246
|
-
// PUT /api/v1/entity/setting/:id/move —— 设定同级重排 / 改父 +
|
|
247
|
-
//
|
|
245
|
+
// PUT /api/v1/entity/setting/:id/move —— 设定同级重排 / 改父 + 重排(2026-08 批次十三,
|
|
246
|
+
// 修订「设定无 sort_order 语义」约束;「PUT /entity/setting/:id/move」)
|
|
248
247
|
// 请求 { parent_id: string | null, order?: number }(settingMoveReqSchema,strict):
|
|
249
|
-
//
|
|
250
|
-
//
|
|
251
|
-
//
|
|
248
|
+
// 复合写端点(对齐 G2 event move_to 先例)——改父 + 目标同级组重排一次事务提交:
|
|
249
|
+
// 改父 = 事务内建新 belongs_to 边(防环沿用,违反 → 400 VALIDATION_ERROR)+ 删旧边;
|
|
250
|
+
// 重排 = 目标组内 sort_order 重写 0..n-1(NULL 沉底,仅被移行刷 updated_at)。
|
|
252
251
|
// 响应 200 { moved: true };设定不存在/已软删 → 404 ENTITY_NOT_FOUND;
|
|
253
252
|
// 自指/成环/目标父不存在 → 400 VALIDATION_ERROR(RelationError SETTING_CYCLE/ENDPOINT_NOT_FOUND 映射)。
|
|
254
253
|
entityRoutes.put("/setting/:id/move", async (c) => {
|
|
@@ -275,16 +274,16 @@ entityRoutes.put("/setting/:id/move", async (c) => {
|
|
|
275
274
|
throw mapRelationError(err);
|
|
276
275
|
}
|
|
277
276
|
});
|
|
278
|
-
// POST /api/v1/entity/event/:id/move_to —— 事件跨组拖拽复合端点(G2
|
|
279
|
-
//
|
|
277
|
+
// POST /api/v1/entity/event/:id/move_to —— 事件跨组拖拽复合端点(G2,,
|
|
278
|
+
// 「POST /entity/event/:id/move_to」)
|
|
280
279
|
// 请求 { timepoint_id: string | null, order: number }(eventMoveToReqSchema):
|
|
281
|
-
//
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
//
|
|
285
|
-
//
|
|
286
|
-
//
|
|
287
|
-
//
|
|
280
|
+
// 事务内一次完成(原子,无中间态)——
|
|
281
|
+
// 1. 事件存在性先校验(不存在/已软删 → 404,在任何写操作之前)
|
|
282
|
+
// 2. 移除事件旧 occurs_at 挂载(物理删——「手动删关系 = 物理删」,
|
|
283
|
+
// 改挂载即重建轻量关系;**同 timepoint 幂等**:目标与旧挂载相同 → 跳过重建,关系 id 不变)
|
|
284
|
+
// 3. timepoint_id 非 null 时建立新挂载(createRelation 校验 timepoint 端点存在性,失败 400)
|
|
285
|
+
// 4. moveEvent 按 order 重排事件全局线性序(组内序 = 全局序投影,跨组后全数组重排)
|
|
286
|
+
// timepoint_id = null → 移出到「未挂载」兜底区(仅重排,不建挂载)。
|
|
288
287
|
// 响应 200 { moved: true };事件不存在/已软删 → 404 ENTITY_NOT_FOUND(事务回滚,旧挂载不丢);
|
|
289
288
|
// timepoint 不存在/已软删 → 400 VALIDATION_ERROR(RelationError ENDPOINT_NOT_FOUND 映射)。
|
|
290
289
|
// 决策论证(vs 前端按序调两次 DELETE+POST+move):非事务分步有中间态风险(拖拽中断/断连残留
|
|
@@ -299,8 +298,8 @@ entityRoutes.post("/event/:id/move_to", async (c) => {
|
|
|
299
298
|
try {
|
|
300
299
|
const result = withTransaction(project.db, () => {
|
|
301
300
|
// 1. 事件存在性先校验(不存在/已软删 → null → 404)——**必须在任何写操作之前**,
|
|
302
|
-
//
|
|
303
|
-
//
|
|
301
|
+
// 杜绝「建了新挂载/删了旧挂载却 404」的半状态(moveEvent 的 null 检查在最后,
|
|
302
|
+
// 不能依赖它做首查——createRelation 会在前面以 400 抢先抛出)
|
|
304
303
|
if (getEntity(project.db, id) === null) {
|
|
305
304
|
throw new MoveToTargetNotFoundError();
|
|
306
305
|
}
|
|
@@ -308,13 +307,13 @@ entityRoutes.post("/event/:id/move_to", async (c) => {
|
|
|
308
307
|
const oldMount = eventOccursAt(project.db, id);
|
|
309
308
|
// 目标与旧挂载不同(含目标为 null 移出挂载)→ 需要重建挂载;相同 → 幂等跳过(只重排)
|
|
310
309
|
const targetChanged = oldMount === null || oldMount.source_id !== parsed.data.timepoint_id;
|
|
311
|
-
// 3. 改挂载:目标与旧挂载不同(或目标为 null)→
|
|
312
|
-
//
|
|
310
|
+
// 3. 改挂载:目标与旧挂载不同(或目标为 null)→ 移除旧挂载(物理删——
|
|
311
|
+
// 「手动删关系 = 物理删」,改挂载即重建轻量关系)
|
|
313
312
|
if (oldMount !== null && targetChanged) {
|
|
314
313
|
deleteRelation(project.db, oldMount.id);
|
|
315
314
|
}
|
|
316
315
|
// 4. 建新挂载(timepoint_id 非 null 且目标已变;createRelation 校验 timepoint 端点存在性——
|
|
317
|
-
//
|
|
316
|
+
// 不存在/已软删抛 RelationError ENDPOINT_NOT_FOUND → 400;旧挂载已删,不会 RELATION_EXISTS)
|
|
318
317
|
if (parsed.data.timepoint_id !== null && targetChanged) {
|
|
319
318
|
createRelation(project.db, {
|
|
320
319
|
sourceType: "timepoint",
|
|
@@ -340,8 +339,8 @@ entityRoutes.post("/event/:id/move_to", async (c) => {
|
|
|
340
339
|
throw mapRelationError(err); // RelationError(ENDPOINT_NOT_FOUND → 400 / RELATION_EXISTS → 409)
|
|
341
340
|
}
|
|
342
341
|
});
|
|
343
|
-
// DELETE /api/v1/entity/:type/:id ——
|
|
344
|
-
// reference file
|
|
342
|
+
// DELETE /api/v1/entity/:type/:id —— 软删(级联软删关系与 Delta,本体保留可还原)
|
|
343
|
+
// reference file 类特例:先移文件入 references/.trash/(冲突递增命名)再 DB 软删——
|
|
345
344
|
// 文件移动失败 → 操作报错(文件未动、索引未删,可重试);DB 软删失败(罕见)→ 文件在 .trash/ 且
|
|
346
345
|
// 索引未软删,scan 反向规则(references/ 下缺失 → 软删)自愈
|
|
347
346
|
entityRoutes.delete("/:type/:id", (c) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/routes/entity.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,yDAAyD;AACzD,EAAE;AACF,2FAA2F;AAC3F,wDAAwD;AACxD,mEAAmE;AACnE,6BAA6B;AAC7B,kFAAkF;AAClF,qCAAqC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,aAAa,EACb,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACtO,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;AAEvC,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,sFAAsF;AACtF,SAAS,kBAAkB,CAAC,IAAgB,EAAE,IAA6B;IACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,kDAAkD;IACvE,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/B,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IACtE,iEAAiE;IACjE,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE;QACtC,IAAI;QACJ,CAAC;QACD,MAAM;QACN,KAAK;QACL,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QACxD,mEAAmE;QACnE,QAAQ,EAAE,IAAI,KAAK,SAAS,IAAI,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACzE,CAAC,CAAC;IACH,4DAA4D;IAC5D,uDAAuD;IACvD,4DAA4D;IAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CACjC,OAAO,CAAC,EAAE,EACV,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,EAC5E,CAAC,EACD,OAAO,CAAC,IAAI,CACb,CAAC;QACF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqD,CAAC;QACnF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;gBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,GAAG,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,CAAC;QACD,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,2EAA2E;QAChG,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,KAAK,IAAI,EAAE;KACnB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iEAAiE;AACjE,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;IACnC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxD,+DAA+D;IAC/D,qCAAqC;IACrC,mDAAmD;IACnD,+CAA+C;IAC/C,oDAAoD;IACpD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;IAC9F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,CAAC;QACD,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS;QACT,UAAU;QACV,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,kEAAkE;AAClE,iEAAiE;AACjE,4FAA4F;AAC5F,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACtC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAmB;QACxE,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,yBAAyB;YACzB,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,MAAM,IAAI,GAAG,yBAAyB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAClC,OAAO,CAAC,IAAI,EACZ,QAAQ,EACR,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAG,IAAI,CAAC,IAA2B,IAAI,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,EACrJ,IAAI,CACL,CAAC;YACF,IAAI,GAAG;gBACL,GAAG,IAAI;gBACP,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,EAC7F,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,yDAAyD;AACzD,uDAAuD;AACvD,uEAAuE;AACvE,oEAAoE;AACpE,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACvD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,wBAAwB,EAAE,wBAAwB,QAAQ,wBAAwB,CAAC,CAAC;YAC/G,CAAC;YACD,8DAA8D;YAC9D,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1D,MAAM,YAAY,GAAI,IAAI,EAAE,IAA2B,IAAI,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC;YACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,IAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACjF,MAAM,QAAQ,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9E,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAClC,OAAO,CAAC,IAAI,EACZ,QAAQ,EACR,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EACzF,QAAQ,CACT,CAAC;YACF,iDAAiD;YACjD,IAAI,GAAG;gBACL,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBACf,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,QAAQ;gBACnB,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,QAAQ;aAClB,CAAC;YACF,IAAI,GAAG,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,yEAAyE;AACzE,2DAA2D;AAC3D,iEAAiE;AACjE,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC9C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB;IACzE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,8GAA8G;AAC9G,4EAA4E;AAC5E,4DAA4D;AAC5D,4DAA4D;AAC5D,wEAAwE;AACxE,YAAY,CAAC,GAAG,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB;IACzE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,yBAA0B,SAAQ,KAAK;CAAG;AAEhD,8EAA8E;AAC9E,2EAA2E;AAC3E,gFAAgF;AAChF,uDAAuD;AACvD,uEAAuE;AACvE,qEAAqE;AACrE,2DAA2D;AAC3D,0FAA0F;AAC1F,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAChD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB;IAC1E,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CACxB,OAAO,CAAC,EAAE,EACV,EAAE,EACF,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAC7D,OAAO,CAAC,IAAI,CACb,CAAC;QACF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACtE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,mEAAmE;AACnE,gDAAgD;AAChD,2EAA2E;AAC3E,uBAAuB;AACvB,wCAAwC;AACxC,sDAAsD;AACtD,+DAA+D;AAC/D,4EAA4E;AAC5E,+DAA+D;AAC/D,iDAAiD;AACjD,uEAAuE;AACvE,iFAAiF;AACjF,0DAA0D;AAC1D,+CAA+C;AAC/C,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB;IAC1E,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;YAC9C,qDAAqD;YACrD,sDAAsD;YACtD,8CAA8C;YAC9C,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBACvC,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC;YACD,qCAAqC;YACrC,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,kDAAkD;YAClD,MAAM,aAAa,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3F,kDAAkD;YAClD,+BAA+B;YAC/B,IAAI,QAAQ,KAAK,IAAI,IAAI,aAAa,EAAE,CAAC;gBACvC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,wEAAwE;YACxE,+EAA+E;YAC/E,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,IAAI,aAAa,EAAE,CAAC;gBACvD,cAAc,CACZ,OAAO,CAAC,EAAE,EACV;oBACE,UAAU,EAAE,WAAW;oBACvB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;oBAClC,UAAU,EAAE,OAAO;oBACnB,QAAQ,EAAE,EAAE;oBACZ,YAAY,EAAE,WAAW;iBAC1B,EACD,OAAO,CAAC,IAAI,CACb,CAAC;YACJ,CAAC;YACD,2DAA2D;YAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM,IAAI,yBAAyB,EAAE,CAAC;YACxC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;YAC7C,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,kEAAkE;IACjG,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,qEAAqE;AACrE,sEAAsE;AACtE,0DAA0D;AAC1D,0CAA0C;AAC1C,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;IACtC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YACzC,qDAAqD;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/D,+DAA+D;gBAC/D,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC3B,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,CAAC;QACD,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;KACjE,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/routes/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/routes/names.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../src/routes/names.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAQ5B,yCAAyC;AACzC,eAAO,MAAM,WAAW,4EAAa,CAAC"}
|
package/dist/routes/names.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
//
|
|
2
|
-
// 契约来源:doc/api/endpoints.md「POST /api/v1/names/resolve」节
|
|
1
|
+
// 名称解析路由(批次十四):POST /api/v1/names/resolve
|
|
3
2
|
// 用途:把工具调用参数中的 id 解析为人类可读名称(label = 类型中文,name = 实体名/节点标题),
|
|
4
|
-
//
|
|
5
|
-
// 前缀分流(id 约定见
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
3
|
+
// 供前端渲染摘要行(不暴露裸 id)。解析收敛服务端单点——按 id 前缀分流查库。
|
|
4
|
+
// 前缀分流(id 约定见 「id 约定」):
|
|
5
|
+
// char-/set-/loc-/hook-/ev-/tp-/ref- → entities 表(getEntity 已过滤软删)
|
|
6
|
+
// vol-/ch-/sc- → outline.json 节点(findOutlineNode 读侧不过滤软删——deleted: true 返回 null)
|
|
7
|
+
// rel- → null(关系无名称语义)
|
|
8
|
+
// 其余前缀(proj-/prop_/sess_/call_/未知)→ null
|
|
10
9
|
// 响应 names 键集 = 请求 ids 去重后全集(每个 id 必有条目,未命中 = null)
|
|
11
10
|
import { Hono } from "hono";
|
|
12
11
|
import { getEntity, findOutlineNode, readOutlineFile } from "@whispering233/ai-editor-db";
|
|
@@ -18,7 +17,7 @@ import { requireCurrentProject } from "../middleware/project.js";
|
|
|
18
17
|
export const namesRoutes = new Hono();
|
|
19
18
|
/** 实体 id 前缀(char-/set-/loc-/hook-/ev-/tp-/ref-,ENTITY_ID_PREFIX 同源) */
|
|
20
19
|
const ENTITY_PREFIXES = ["char-", "set-", "loc-", "hook-", "ev-", "tp-", "ref-"];
|
|
21
|
-
/** 大纲节点 id 前缀(vol-/ch-/sc
|
|
20
|
+
/** 大纲节点 id 前缀(vol-/ch-/sc) */
|
|
22
21
|
const OUTLINE_PREFIXES = ["vol-", "ch-", "sc-"];
|
|
23
22
|
/** 解析单个 id:未命中/未知前缀 → null */
|
|
24
23
|
function resolveOne(id, project) {
|
package/dist/routes/names.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/routes/names.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../src/routes/names.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/outline.d.ts
CHANGED
|
@@ -6,6 +6,6 @@ export declare const outlineRoutes: Hono<import("hono/types").BlankEnv, import("
|
|
|
6
6
|
export declare function collectSubtreeIds(tree: OutlineFileTree, nodeId: string): string[];
|
|
7
7
|
/** 生成 SQL IN 占位符串(id 集来自服务端生成的 nanoid,无注入面;空集返回 "(NULL)" 恒假) */
|
|
8
8
|
export declare function inPlaceholders(ids: string[]): string;
|
|
9
|
-
/** OutlineError → HttpError 映射(对照
|
|
9
|
+
/** OutlineError → HttpError 映射(对照 错误码,文件头注释表) */
|
|
10
10
|
export declare function mapOutlineError(err: unknown): never;
|
|
11
11
|
//# sourceMappingURL=outline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/routes/outline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/routes/outline.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAW5B,OAAO,KAAK,EAAmB,eAAe,EAA6C,MAAM,iCAAiC,CAAC;AAanI,yCAAyC;AACzC,eAAO,MAAM,aAAa,4EAAa,CAAC;AA4BxC,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAajF;AAED,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAEpD;AA0LD,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAcnD"}
|
package/dist/routes/outline.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// 大纲路由(S2.2):GET/POST /outline、PUT /outline/:nodeId、PUT move、DELETE、GET path
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
// OUTLINE_ANCESTOR_DELETED → 409 OUTLINE_ANCESTOR_DELETED(决策 12 修订)
|
|
3
|
+
// 错误映射(db OutlineError → HttpError,对照 错误码):
|
|
4
|
+
// NODE_NOT_FOUND → 404 OUTLINE_NODE_NOT_FOUND
|
|
5
|
+
// PARENT_NOT_FOUND → 400 OUTLINE_NODE_NOT_FOUND(父不存在是参数问题,非资源访问)
|
|
6
|
+
// INVALID_HIERARCHY → 400 VALIDATION_ERROR(严格三层违反)
|
|
7
|
+
// OUTLINE_ANCESTOR_DELETED → 409 OUTLINE_ANCESTOR_DELETED
|
|
9
8
|
// 说明:级联还原/物理清除(cascadeRestore/cascadePurge)已下沉 db 包 queries/trash.ts(S4.1);
|
|
10
|
-
//
|
|
11
|
-
//
|
|
9
|
+
// 级联软删(cascadeSoftDelete)保留在路由层——与软删端点同文件内联,S4.1 任务边界只下沉
|
|
10
|
+
// 还原/清除两个 helper(trash.ts 路由直接 import @whispering233/ai-editor-db)。
|
|
12
11
|
import { Hono } from "hono";
|
|
13
12
|
import { findOutlineNode, readOutlineFile } from "@whispering233/ai-editor-db";
|
|
14
13
|
import { getOutlinePathIds } from "@whispering233/ai-editor-db";
|
|
@@ -21,7 +20,7 @@ import { requireCurrentProject } from "../middleware/project.js";
|
|
|
21
20
|
/** 大纲路由(挂载于 /api/v1/outline,index.ts) */
|
|
22
21
|
export const outlineRoutes = new Hono();
|
|
23
22
|
/**
|
|
24
|
-
* 按节点层级精确校验 data
|
|
23
|
+
* 按节点层级精确校验 data(麦基字段集,OUTLINE_NODE_DATA_SCHEMAS;
|
|
25
24
|
* 宽松 record 之外的精校验,与 entity.ts validateDataByType 同构;
|
|
26
25
|
* 失败 → errorHandler → 400 VALIDATION_ERROR(含 fields))
|
|
27
26
|
*/
|
|
@@ -31,7 +30,7 @@ function validateNodeData(type, data) {
|
|
|
31
30
|
throw check.error;
|
|
32
31
|
}
|
|
33
32
|
}
|
|
34
|
-
/**
|
|
33
|
+
/** 递归过滤软删节点(常规查询默认过滤;deleted 节点整棵子树丢弃) */
|
|
35
34
|
function filterDeletedTree(tree) {
|
|
36
35
|
const filterNodes = (nodes) => nodes
|
|
37
36
|
.filter((n) => n.deleted !== true)
|
|
@@ -64,7 +63,7 @@ export function inPlaceholders(ids) {
|
|
|
64
63
|
return ids.length === 0 ? "(NULL)" : `(${ids.map(() => "?").join(",")})`;
|
|
65
64
|
}
|
|
66
65
|
/**
|
|
67
|
-
* 级联软删该节点及子树关联的 relation/delta
|
|
66
|
+
* 级联软删该节点及子树关联的 relation/delta(任一端点软删即不可见):
|
|
68
67
|
* - relations:source 或 target 命中子树任一节点 → 标 deleted_at(含 plot_edge 画布连线)
|
|
69
68
|
* - deltas:node_id 命中子树任一节点 → 标 deleted_at
|
|
70
69
|
* 返回 { relations, deltas } 实际级联数(UPDATE.changes)。
|
|
@@ -87,7 +86,7 @@ outlineRoutes.get("/", (c) => {
|
|
|
87
86
|
throw query.error;
|
|
88
87
|
}
|
|
89
88
|
const tree = readOutlineFile(project.root);
|
|
90
|
-
// shared 映射(oracle
|
|
89
|
+
// shared 映射(oracle 回修后支持「chapter 直挂 root」——换回 mapOutlineFileToTree,
|
|
91
90
|
// 删除 S2.2 的自写 mapTreeToApi 绕过)
|
|
92
91
|
const apiTree = mapOutlineFileToTree(filterDeletedTree(tree));
|
|
93
92
|
if (query.data.with_metadata === true) {
|
|
@@ -96,11 +95,11 @@ outlineRoutes.get("/", (c) => {
|
|
|
96
95
|
return c.json(ok(apiTree));
|
|
97
96
|
});
|
|
98
97
|
/**
|
|
99
|
-
* with_metadata 联查统计(跨 outline.json × data.db
|
|
100
|
-
* - hookCount:该节点出发的伏笔管理关系(plants/advances/resolves,source=outline_node → hook
|
|
101
|
-
* - charCount:appears_in
|
|
98
|
+
* with_metadata 联查统计(跨 outline.json × data.db,):
|
|
99
|
+
* - hookCount:该节点出发的伏笔管理关系(plants/advances/resolves,source=outline_node → hook,)
|
|
100
|
+
* - charCount:appears_in 指向该节点的关系数( 示例:char → 大纲节点)
|
|
102
101
|
* - deltaCount:该节点触发的 Delta 数(delta_records.node_id)
|
|
103
|
-
*
|
|
102
|
+
* 均为运行时计算,不写回数据( _health 同款口径)。
|
|
104
103
|
*/
|
|
105
104
|
function attachMetadata(tree, db) {
|
|
106
105
|
const hookStmt = db.prepare(`SELECT COUNT(*) AS c FROM relation_records
|
|
@@ -123,7 +122,7 @@ function attachMetadata(tree, db) {
|
|
|
123
122
|
for (const vol of tree.children)
|
|
124
123
|
visit(vol);
|
|
125
124
|
}
|
|
126
|
-
// POST /api/v1/outline —— 创建节点(严格三层,parent_id
|
|
125
|
+
// POST /api/v1/outline —— 创建节点(严格三层,parent_id 必填,;data 按层级精校验)
|
|
127
126
|
outlineRoutes.post("/", async (c) => {
|
|
128
127
|
const project = requireCurrentProject();
|
|
129
128
|
const raw = await c.req.json().catch(() => null);
|
|
@@ -150,7 +149,7 @@ outlineRoutes.post("/", async (c) => {
|
|
|
150
149
|
updatedAt: node.updated_at,
|
|
151
150
|
}), 201);
|
|
152
151
|
});
|
|
153
|
-
// PUT /api/v1/outline/:nodeId —— 更新标题/描述/结构化 data(data
|
|
152
|
+
// PUT /api/v1/outline/:nodeId —— 更新标题/描述/结构化 data(data 部分合并)
|
|
154
153
|
outlineRoutes.put("/:nodeId", async (c) => {
|
|
155
154
|
const project = requireCurrentProject();
|
|
156
155
|
const raw = await c.req.json().catch(() => null);
|
|
@@ -193,21 +192,21 @@ outlineRoutes.put("/:nodeId/move", async (c) => {
|
|
|
193
192
|
}
|
|
194
193
|
return c.json(ok({ moved: true, ...result }));
|
|
195
194
|
});
|
|
196
|
-
// DELETE /api/v1/outline/:nodeId —— 软删 +
|
|
197
|
-
//
|
|
195
|
+
// DELETE /api/v1/outline/:nodeId —— 软删 + 递归级联
|
|
196
|
+
// 写序:**先 DB 后 JSON**——先级联软删 relation/delta,再原子写 outline.json;
|
|
198
197
|
// 崩溃残留方向(DB 已级联、JSON 未标,节点未标 deleted):无法从 DB 记录可靠反推
|
|
199
198
|
// (实体侧级联会软删节点↔实体关系而节点仍存活),不在 S4.2 补标范围;
|
|
200
199
|
// S4.2 启动一致性校验(consistency.ts)兜底幽灵反向:节点已软删而关联 relation/delta
|
|
201
|
-
// 未软删 → 以节点软删为准补标 DB
|
|
200
|
+
// 未软删 → 以节点软删为准补标 DB 记录(幂等自愈)
|
|
202
201
|
outlineRoutes.delete("/:nodeId", (c) => {
|
|
203
202
|
const project = requireCurrentProject();
|
|
204
203
|
const nodeId = c.req.param("nodeId");
|
|
205
204
|
const tree = readOutlineFile(project.root);
|
|
206
205
|
const subtreeIds = collectSubtreeIds(tree, nodeId); // 404 语义
|
|
207
206
|
const deletedAt = nowIso();
|
|
208
|
-
// 1. DB 级联软删关联关系与 Delta
|
|
207
|
+
// 1. DB 级联软删关联关系与 Delta(节点/端点软删即不可见)
|
|
209
208
|
const { relations, deltas } = cascadeSoftDelete(project.db, subtreeIds, deletedAt);
|
|
210
|
-
// 2. JSON 原子写(软删节点 +
|
|
209
|
+
// 2. JSON 原子写(软删节点 + 递归子树, 版本戳)
|
|
211
210
|
let children;
|
|
212
211
|
try {
|
|
213
212
|
children = deleteOutlineNode(project.root, nodeId, deletedAt).children;
|
|
@@ -231,7 +230,7 @@ outlineRoutes.get("/:nodeId/path", (c) => {
|
|
|
231
230
|
}
|
|
232
231
|
return c.json(ok({ nodeId, path }));
|
|
233
232
|
});
|
|
234
|
-
/** OutlineError → HttpError 映射(对照
|
|
233
|
+
/** OutlineError → HttpError 映射(对照 错误码,文件头注释表) */
|
|
235
234
|
export function mapOutlineError(err) {
|
|
236
235
|
if (err instanceof OutlineError) {
|
|
237
236
|
switch (err.code) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/routes/outline.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/routes/outline.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/project.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ export declare function setProjectRoot(root: string | null): void;
|
|
|
4
4
|
/** books/ 子目录名(书架模式:创作根/books/<书名>/) */
|
|
5
5
|
export declare const BOOKS_DIR_NAME = "books";
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* 规范化并校验项目路径(create/open 通用):
|
|
8
8
|
*
|
|
9
|
-
* 1. **必须是绝对路径**:
|
|
10
|
-
*
|
|
9
|
+
* 1. **必须是绝对路径**: 要求绝对路径;path.resolve 对相对输入会基于
|
|
10
|
+
* process.cwd 折叠,语义歧义(cwd 变化结果即变),显式拒绝
|
|
11
11
|
* 2. **path.resolve 规范化**:折叠 `..` 与重复分隔符(防 `..` 逃逸——规范化后即为最终操作目录,
|
|
12
|
-
*
|
|
12
|
+
* 不再拼接用户输入)
|
|
13
13
|
* 3. **realpath 一致性校验**:解析后的真实路径(符号链接展开)必须与规范化路径一致,否则拒绝——
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* 校验语义(「防越权读写任意目录」):本应用单项目根模型下「允许范围」即规范化后的
|
|
15
|
+
* 路径本身,符号链接会把读写导向意外位置(链接指向任意目录即越权),故链接跳转一律拒绝
|
|
16
16
|
*
|
|
17
17
|
* 调用方约定:create 流程在调用前先 mkdirSync(目录可能尚不存在,realpath 需要目录存在);
|
|
18
18
|
* open 流程目录不存在时 realpath 抛错 → 同样 400。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/routes/project.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAC;AAmD1C,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED,wCAAwC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkBzD;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,4EAAa,CAAC"}
|