@fgbg/mdocs 0.6.3 → 0.6.6

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 (112) hide show
  1. package/dist/server/access/access-control.js +14 -8
  2. package/dist/server/access/access-control.js.map +1 -1
  3. package/dist/server/access/access-control.test.js +66 -0
  4. package/dist/server/access/access-control.test.js.map +1 -1
  5. package/dist/server/app.js +23 -0
  6. package/dist/server/app.js.map +1 -1
  7. package/dist/server/db/repositories/document-comment.repo.js +104 -0
  8. package/dist/server/db/repositories/document-comment.repo.js.map +1 -0
  9. package/dist/server/db/repositories/document.repo.js +15 -0
  10. package/dist/server/db/repositories/document.repo.js.map +1 -1
  11. package/dist/server/db/schema.js +16 -0
  12. package/dist/server/db/schema.js.map +1 -1
  13. package/dist/server/documents/document-comment.service.js +58 -0
  14. package/dist/server/documents/document-comment.service.js.map +1 -0
  15. package/dist/server/documents/document-comment.service.test.js +283 -0
  16. package/dist/server/documents/document-comment.service.test.js.map +1 -0
  17. package/dist/server/documents/document.service.js +13 -2
  18. package/dist/server/documents/document.service.js.map +1 -1
  19. package/dist/server/routes/bookmarks.routes.js +3 -3
  20. package/dist/server/routes/bookmarks.routes.js.map +1 -1
  21. package/dist/server/routes/document-comments.routes.js +47 -0
  22. package/dist/server/routes/document-comments.routes.js.map +1 -0
  23. package/dist/server/routes/documents.routes.js +2 -1
  24. package/dist/server/routes/documents.routes.js.map +1 -1
  25. package/dist/server/routes/visitors.routes.js +13 -0
  26. package/dist/server/routes/visitors.routes.js.map +1 -1
  27. package/dist/shared/permissions.js +29 -0
  28. package/dist/shared/permissions.js.map +1 -0
  29. package/dist/web/assets/_baseUniq-DS9pVOy0.js +1 -0
  30. package/dist/web/assets/arc-DAB1JNnk.js +1 -0
  31. package/dist/web/assets/architectureDiagram-Q4EWVU46-WYo8a6GX.js +36 -0
  32. package/dist/web/assets/{blockDiagram-DXYQGD6D-wwRs96sw.js → blockDiagram-DXYQGD6D-CqkI9uKB.js} +2 -2
  33. package/dist/web/assets/{c4Diagram-AHTNJAMY-B6au_8I_.js → c4Diagram-AHTNJAMY-BI4Bl_HO.js} +2 -2
  34. package/dist/web/assets/channel-DlUQLYub.js +1 -0
  35. package/dist/web/assets/chunk-4BX2VUAB-DzPZwDOG.js +1 -0
  36. package/dist/web/assets/{chunk-4TB4RGXK-DX6iaz3S.js → chunk-4TB4RGXK-D0NGUE1z.js} +1 -1
  37. package/dist/web/assets/chunk-55IACEB6-1XVMg9Js.js +1 -0
  38. package/dist/web/assets/chunk-EDXVE4YY-z3jLXeWo.js +1 -0
  39. package/dist/web/assets/{chunk-FMBD7UC4-CFFjUdMt.js → chunk-FMBD7UC4-DeXyPz7h.js} +1 -1
  40. package/dist/web/assets/{chunk-OYMX7WX6-CTJq6xov.js → chunk-OYMX7WX6-CmRlNtCd.js} +1 -1
  41. package/dist/web/assets/chunk-QZHKN3VN-DXwM7MmQ.js +1 -0
  42. package/dist/web/assets/chunk-YZCP3GAM-s_WB68wJ.js +1 -0
  43. package/dist/web/assets/classDiagram-6PBFFD2Q-Cf62N1BC.js +1 -0
  44. package/dist/web/assets/classDiagram-v2-HSJHXN6E-Cf62N1BC.js +1 -0
  45. package/dist/web/assets/clone-BUEtzX3c.js +1 -0
  46. package/dist/web/assets/cose-bilkent-S5V4N54A-MtzVxx_Y.js +1 -0
  47. package/dist/web/assets/dagre-KV5264BT-Mp5AKuR5.js +4 -0
  48. package/dist/web/assets/diagram-5BDNPKRD-CtN8Fqpk.js +10 -0
  49. package/dist/web/assets/diagram-G4DWMVQ6-CAhqmLP8.js +24 -0
  50. package/dist/web/assets/diagram-MMDJMWI5-DBk1dOYU.js +43 -0
  51. package/dist/web/assets/diagram-TYMM5635-CH4k6lty.js +24 -0
  52. package/dist/web/assets/{erDiagram-SMLLAGMA-C4KsuAES.js → erDiagram-SMLLAGMA-BFoCdw9-.js} +2 -2
  53. package/dist/web/assets/{flowDiagram-DWJPFMVM-DQr0r-te.js → flowDiagram-DWJPFMVM-D9KBecPB.js} +2 -2
  54. package/dist/web/assets/ganttDiagram-T4ZO3ILL-CresfMLG.js +292 -0
  55. package/dist/web/assets/gitGraphDiagram-UUTBAWPF-DP5O-_i5.js +106 -0
  56. package/dist/web/assets/graph-Bd51bvIf.js +1 -0
  57. package/dist/web/assets/index-BXNK7EI6.css +1 -0
  58. package/dist/web/assets/index-uETRqqQV.js +5749 -0
  59. package/dist/web/assets/infoDiagram-42DDH7IO-H7gTlbQG.js +2 -0
  60. package/dist/web/assets/{ishikawaDiagram-UXIWVN3A-Bfe7jLNM.js → ishikawaDiagram-UXIWVN3A-Ca-ZtWO5.js} +5 -5
  61. package/dist/web/assets/{journeyDiagram-VCZTEJTY-GH0K0rRc.js → journeyDiagram-VCZTEJTY-BH8uoEPi.js} +2 -2
  62. package/dist/web/assets/{kanban-definition-6JOO6SKY-BEDDeNIP.js → kanban-definition-6JOO6SKY-BYMXy7AP.js} +2 -2
  63. package/dist/web/assets/layout-DMJW32Fl.js +1 -0
  64. package/dist/web/assets/linear-NjqjuVgd.js +1 -0
  65. package/dist/web/assets/min-DN_5NXWW.js +1 -0
  66. package/dist/web/assets/{mindmap-definition-QFDTVHPH-BPIZHODy.js → mindmap-definition-QFDTVHPH-DmnKaXBw.js} +2 -2
  67. package/dist/web/assets/{pieDiagram-DEJITSTG-BSdVnPU3.js → pieDiagram-DEJITSTG-BOrBkLIg.js} +2 -2
  68. package/dist/web/assets/{quadrantDiagram-34T5L4WZ-qtwjXc-O.js → quadrantDiagram-34T5L4WZ-D4nF2Bmb.js} +2 -2
  69. package/dist/web/assets/{requirementDiagram-MS252O5E-CfYimIVg.js → requirementDiagram-MS252O5E-ti4rb30R.js} +2 -2
  70. package/dist/web/assets/sankeyDiagram-XADWPNL6-Dk2TuAOs.js +10 -0
  71. package/dist/web/assets/{sequenceDiagram-FGHM5R23-C3eaCl2b.js → sequenceDiagram-FGHM5R23-Dirpom9z.js} +2 -2
  72. package/dist/web/assets/stateDiagram-FHFEXIEX-DR_dEmkN.js +1 -0
  73. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-BEVCpiDZ.js +1 -0
  74. package/dist/web/assets/{timeline-definition-GMOUNBTQ-CrzW8IAn.js → timeline-definition-GMOUNBTQ-B7tUgMo8.js} +2 -2
  75. package/dist/web/assets/{vennDiagram-DHZGUBPP-DFeVaZZ0.js → vennDiagram-DHZGUBPP-BYsoxoXZ.js} +2 -2
  76. package/dist/web/assets/wardley-RL74JXVD-B1VF0RIs.js +162 -0
  77. package/dist/web/assets/{wardleyDiagram-NUSXRM2D-AFYHgygz.js → wardleyDiagram-NUSXRM2D-BfGbaSpn.js} +2 -2
  78. package/dist/web/assets/{xychartDiagram-5P7HB3ND-Bl3jUZi7.js → xychartDiagram-5P7HB3ND-CYIFicEB.js} +2 -2
  79. package/dist/web/index.html +2 -2
  80. package/package.json +2 -2
  81. package/dist/web/assets/_baseUniq-C8Krf7vg.js +0 -1
  82. package/dist/web/assets/arc-DhPqFLbO.js +0 -1
  83. package/dist/web/assets/architectureDiagram-Q4EWVU46-DSMMLv0f.js +0 -36
  84. package/dist/web/assets/channel-BtLbgpmU.js +0 -1
  85. package/dist/web/assets/chunk-4BX2VUAB-C23ChKEZ.js +0 -1
  86. package/dist/web/assets/chunk-55IACEB6-G7TSBxwj.js +0 -1
  87. package/dist/web/assets/chunk-EDXVE4YY-KjxiGbvb.js +0 -1
  88. package/dist/web/assets/chunk-QZHKN3VN-DzNVUG8U.js +0 -1
  89. package/dist/web/assets/chunk-YZCP3GAM-BzoPFVTZ.js +0 -1
  90. package/dist/web/assets/classDiagram-6PBFFD2Q-CMd6-oet.js +0 -1
  91. package/dist/web/assets/classDiagram-v2-HSJHXN6E-CMd6-oet.js +0 -1
  92. package/dist/web/assets/clone-BHKyEql5.js +0 -1
  93. package/dist/web/assets/cose-bilkent-S5V4N54A-BjDZd9l9.js +0 -1
  94. package/dist/web/assets/dagre-KV5264BT-jOT3M-lg.js +0 -4
  95. package/dist/web/assets/diagram-5BDNPKRD-BRHjQbYj.js +0 -10
  96. package/dist/web/assets/diagram-G4DWMVQ6-CSk8B_Xh.js +0 -24
  97. package/dist/web/assets/diagram-MMDJMWI5-Bu26fzFR.js +0 -43
  98. package/dist/web/assets/diagram-TYMM5635-CKDIzCTD.js +0 -24
  99. package/dist/web/assets/ganttDiagram-T4ZO3ILL-DqegX84h.js +0 -292
  100. package/dist/web/assets/gitGraphDiagram-UUTBAWPF-BSG26nMf.js +0 -106
  101. package/dist/web/assets/graph-ClvoMnzi.js +0 -1
  102. package/dist/web/assets/index-B9F0vkgf.js +0 -5335
  103. package/dist/web/assets/index-BGgkhvun.css +0 -1
  104. package/dist/web/assets/infoDiagram-42DDH7IO-DnvhS6ju.js +0 -2
  105. package/dist/web/assets/layout-DxVnjuNN.js +0 -1
  106. package/dist/web/assets/linear-D9m4fnnH.js +0 -1
  107. package/dist/web/assets/mermaid.core-Cm-6D9vU.js +0 -309
  108. package/dist/web/assets/min-BMznNHa6.js +0 -1
  109. package/dist/web/assets/sankeyDiagram-XADWPNL6-D2dQzWtM.js +0 -10
  110. package/dist/web/assets/stateDiagram-FHFEXIEX-DnlgxSQD.js +0 -1
  111. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-MZvp0j3j.js +0 -1
  112. package/dist/web/assets/wardley-RL74JXVD-yTNowK7G.js +0 -162
@@ -142,20 +142,26 @@ export function canEditDocument(row, visitorId, domainInfo) {
142
142
  }
143
143
  // private 域:按五档实际语义
144
144
  if (row.permission === Permission.PRIVATE) {
145
- // 仅创建者可写
146
- return false;
145
+ // 仅创建者可写,或靠 invite
146
+ const invite = findDocumentInvite(getDb(), row.document_id, visitorId);
147
+ return invite?.permission === "edit";
147
148
  }
148
149
  if (row.permission === Permission.DOMAIN_READ) {
149
- // domain_read:仅创建者可写(已在第 1 步排除了)
150
- return false;
150
+ // domain_read:仅创建者可写,或靠 invite
151
+ const invite = findDocumentInvite(getDb(), row.document_id, visitorId);
152
+ return invite?.permission === "edit";
151
153
  }
152
154
  if (row.permission === Permission.DOMAIN_WRITE) {
153
- // domain_write:域成员可写,但 private 域只有创建者一名成员
154
- return false;
155
+ // domain_write:域成员可写,或靠 invite
156
+ if (domainInfo.isDomainMember)
157
+ return true;
158
+ const invite = findDocumentInvite(getDb(), row.document_id, visitorId);
159
+ return invite?.permission === "edit";
155
160
  }
156
161
  if (row.permission === Permission.PUBLIC_READ) {
157
- // public_read:仅创建者可写
158
- return false;
162
+ // public_read:仅创建者可写,或靠 invite
163
+ const invite = findDocumentInvite(getDb(), row.document_id, visitorId);
164
+ return invite?.permission === "edit";
159
165
  }
160
166
  // public_write:任何人可写
161
167
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../src/server/access/access-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.js","sourceRoot":"","sources":["../../../src/server/access/access-control.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,72 @@ function seedDocInDomain(options) {
53
53
  }
54
54
  return domainId;
55
55
  }
56
+ /** 插入一条文档邀请 */
57
+ function seedInvite(docId, visitorId, permission = "read") {
58
+ const db = testDbRef.db;
59
+ db.prepare(`INSERT INTO document_invites (document_id, visitor_id, permission) VALUES (?, ?, ?)`).run(docId, visitorId, permission);
60
+ }
61
+ // ============================================================
62
+ // invite 权限(新增)
63
+ // ============================================================
64
+ describe("document invite — read", () => {
65
+ it("private 域:被 invite read 的非创建者可读", () => {
66
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.PRIVATE, docId: "invite-doc" });
67
+ seedInvite("invite-doc", OTHER, "read");
68
+ expect(() => assertDocumentAccess("invite-doc", OTHER, "read")).not.toThrow();
69
+ });
70
+ it("restricted 域:非成员被 invite read 可读", () => {
71
+ seedDocInDomain({ domainPermission: "restricted", docPermission: Permission.DOMAIN_READ, docId: "invite-doc2" });
72
+ seedInvite("invite-doc2", OTHER, "read");
73
+ expect(() => assertDocumentAccess("invite-doc2", OTHER, "read")).not.toThrow();
74
+ });
75
+ });
76
+ describe("document invite — edit", () => {
77
+ it("private 域:被 invite edit 的非创建者可编辑", () => {
78
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.PRIVATE, docId: "edit-doc" });
79
+ seedInvite("edit-doc", OTHER, "edit");
80
+ expect(() => assertDocumentAccess("edit-doc", OTHER, "edit")).not.toThrow();
81
+ });
82
+ it("private 域:被 invite read 的非创建者不可编辑(403)", () => {
83
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.PRIVATE, docId: "edit-doc2" });
84
+ seedInvite("edit-doc2", OTHER, "read");
85
+ expect(() => assertDocumentAccess("edit-doc2", OTHER, "edit")).toThrow(DocumentError);
86
+ });
87
+ it("restricted 域:被 invite edit 的非成员可编辑", () => {
88
+ seedDocInDomain({ domainPermission: "restricted", docPermission: Permission.DOMAIN_READ, docId: "edit-doc3" });
89
+ seedInvite("edit-doc3", OTHER, "edit");
90
+ expect(() => assertDocumentAccess("edit-doc3", OTHER, "edit")).not.toThrow();
91
+ });
92
+ it("restricted 域:被 invite read 的非成员不可编辑(403)", () => {
93
+ seedDocInDomain({ domainPermission: "restricted", docPermission: Permission.DOMAIN_READ, docId: "edit-doc4" });
94
+ seedInvite("edit-doc4", OTHER, "read");
95
+ expect(() => assertDocumentAccess("edit-doc4", OTHER, "edit")).toThrow(DocumentError);
96
+ });
97
+ it("private 域 + domain_read:被 invite edit 的非创建者可编辑", () => {
98
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.DOMAIN_READ, docId: "edit-doc5" });
99
+ seedInvite("edit-doc5", OTHER, "edit");
100
+ expect(() => assertDocumentAccess("edit-doc5", OTHER, "edit")).not.toThrow();
101
+ });
102
+ it("private 域 + public_read:被 invite edit 的非创建者可编辑", () => {
103
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.PUBLIC_READ, docId: "edit-doc6" });
104
+ seedInvite("edit-doc6", OTHER, "edit");
105
+ expect(() => assertDocumentAccess("edit-doc6", OTHER, "edit")).not.toThrow();
106
+ });
107
+ it("private 域 + domain_write:域成员可编辑,无需 invite", () => {
108
+ seedDocInDomain({
109
+ domainPermission: "private",
110
+ docPermission: Permission.DOMAIN_WRITE,
111
+ docId: "edit-doc7",
112
+ memberIds: [OTHER],
113
+ });
114
+ expect(() => assertDocumentAccess("edit-doc7", OTHER, "edit")).not.toThrow();
115
+ });
116
+ it("private 域 + domain_write:非域成员被 invite edit 可编辑", () => {
117
+ seedDocInDomain({ domainPermission: "private", docPermission: Permission.DOMAIN_WRITE, docId: "edit-doc8" });
118
+ seedInvite("edit-doc8", OTHER, "edit");
119
+ expect(() => assertDocumentAccess("edit-doc8", OTHER, "edit")).not.toThrow();
120
+ });
121
+ });
56
122
  // ============================================================
57
123
  // validateDomainPermission
58
124
  // ============================================================
@@ -1 +1 @@
1
- {"version":3,"file":"access-control.test.js","sourceRoot":"","sources":["../../../src/server/access/access-control.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control.test.js","sourceRoot":"","sources":["../../../src/server/access/access-control.test.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { buildDomainMemberTemplatesRouter } from "./routes/domain-member-templat
13
13
  import { buildFoldersRouter } from "./routes/folders.routes.js";
14
14
  import { buildCliTokensRouter } from "./routes/cli-tokens.routes.js";
15
15
  import { buildBookmarksRouter } from "./routes/bookmarks.routes.js";
16
+ import { documentCommentsRouter } from "./routes/document-comments.routes.js";
16
17
  import { buildAssetsUploadRouter, serveAssetFile } from "./routes/assets.routes.js";
17
18
  import { startIndexTimer } from "./search/document-index-manager.js";
18
19
  import { useLogger } from "./logger/logger.js";
@@ -39,6 +40,26 @@ export function buildApp() {
39
40
  app.get("/api/assets/:assetId", (req, res) => {
40
41
  serveAssetFile(req, res);
41
42
  });
43
+ // 获取评论列表:无需认证(能读文档就能看评论)
44
+ app.get("/api/documents/:documentId/comments", async (req, res) => {
45
+ const { documentId } = req.params;
46
+ if (!documentId) {
47
+ return res.status(400).json({ error: "缺少 documentId" });
48
+ }
49
+ try {
50
+ const { documentCommentService } = await import("./documents/document-comment.service.js");
51
+ const comments = await documentCommentService.getCommentsByDocumentId(documentId);
52
+ res.json({
53
+ data: {
54
+ comments,
55
+ total: comments.filter((c) => !c.isDeleted).length,
56
+ },
57
+ });
58
+ }
59
+ catch (err) {
60
+ res.status(400).json({ error: err.message });
61
+ }
62
+ });
42
63
  // 后续 /api 路由均需经过身份认证
43
64
  app.use("/api", authMiddleware);
44
65
  app.use("/api/assets", buildAssetsUploadRouter());
@@ -50,6 +71,8 @@ export function buildApp() {
50
71
  app.use("/api/folders", buildFoldersRouter());
51
72
  app.use("/api/cli", buildCliTokensRouter());
52
73
  app.use("/api/bookmarks", buildBookmarksRouter());
74
+ // 发表/删除评论:需要认证
75
+ app.use("/api/documents", documentCommentsRouter);
53
76
  // 兜底:未匹配到的 API 路径返回 404
54
77
  app.use("/api", (_req, res) => {
55
78
  res.status(404).json({ error: { code: "NOT_FOUND", message: "api not found" } });
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { randomUUID } from "crypto";
2
+ export class DocumentCommentRepository {
3
+ db;
4
+ constructor(db) {
5
+ this.db = db;
6
+ }
7
+ /** 创建评论 */
8
+ async create(params) {
9
+ const now = new Date().toISOString();
10
+ const commentId = randomUUID();
11
+ this.db
12
+ .prepare(`INSERT INTO document_comments (
13
+ comment_id, document_id, visitor_id, visitor_name,
14
+ parent_id, reply_to_visitor_id, reply_to_visitor_name,
15
+ content, is_deleted, created_at, updated_at
16
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0, ?, ?)`)
17
+ .run(commentId, params.documentId, params.visitorId, params.visitorName, params.parentId, params.replyToVisitorId, params.replyToVisitorName, params.content, now, now);
18
+ return this.getById(commentId);
19
+ }
20
+ /** 根据 ID 获取评论 */
21
+ async getById(commentId) {
22
+ const row = this.db
23
+ .prepare(`SELECT
24
+ comment_id as commentId,
25
+ document_id as documentId,
26
+ visitor_id as visitorId,
27
+ visitor_name as visitorName,
28
+ parent_id as parentId,
29
+ reply_to_visitor_id as replyToVisitorId,
30
+ reply_to_visitor_name as replyToVisitorName,
31
+ content,
32
+ is_deleted as isDeleted,
33
+ created_at as createdAt,
34
+ updated_at as updatedAt
35
+ FROM document_comments
36
+ WHERE comment_id = ?`)
37
+ .get(commentId);
38
+ return row ? { ...row, isDeleted: Boolean(row.isDeleted) } : null;
39
+ }
40
+ /** 获取文档的所有评论 */
41
+ async getByDocumentId(documentId) {
42
+ const rows = this.db
43
+ .prepare(`SELECT
44
+ comment_id as commentId,
45
+ document_id as documentId,
46
+ visitor_id as visitorId,
47
+ visitor_name as visitorName,
48
+ parent_id as parentId,
49
+ reply_to_visitor_id as replyToVisitorId,
50
+ reply_to_visitor_name as replyToVisitorName,
51
+ content,
52
+ is_deleted as isDeleted,
53
+ created_at as createdAt,
54
+ updated_at as updatedAt
55
+ FROM document_comments
56
+ WHERE document_id = ?
57
+ ORDER BY created_at ASC`)
58
+ .all(documentId);
59
+ return rows.map((r) => ({ ...r, isDeleted: Boolean(r.isDeleted) }));
60
+ }
61
+ /** 获取某根评论的所有回复 */
62
+ async getReplies(parentId) {
63
+ const rows = this.db
64
+ .prepare(`SELECT
65
+ comment_id as commentId,
66
+ document_id as documentId,
67
+ visitor_id as visitorId,
68
+ visitor_name as visitorName,
69
+ parent_id as parentId,
70
+ reply_to_visitor_id as replyToVisitorId,
71
+ reply_to_visitor_name as replyToVisitorName,
72
+ content,
73
+ is_deleted as isDeleted,
74
+ created_at as createdAt,
75
+ updated_at as updatedAt
76
+ FROM document_comments
77
+ WHERE parent_id = ?
78
+ ORDER BY created_at ASC`)
79
+ .all(parentId);
80
+ return rows.map((r) => ({ ...r, isDeleted: Boolean(r.isDeleted) }));
81
+ }
82
+ /** 软删除评论 */
83
+ async softDelete(commentId) {
84
+ const result = this.db
85
+ .prepare(`UPDATE document_comments SET is_deleted = 1, updated_at = ? WHERE comment_id = ?`)
86
+ .run(new Date().toISOString(), commentId);
87
+ return (result.changes || 0) > 0;
88
+ }
89
+ /** 检查是否为根评论(用于校验两层结构约束) */
90
+ async isRootComment(commentId) {
91
+ const row = this.db
92
+ .prepare(`SELECT parent_id FROM document_comments WHERE comment_id = ?`)
93
+ .get(commentId);
94
+ return row?.parent_id == null;
95
+ }
96
+ /** 获取文档评论数 */
97
+ async countByDocumentId(documentId) {
98
+ const row = this.db
99
+ .prepare(`SELECT COUNT(*) as count FROM document_comments WHERE document_id = ? AND is_deleted = 0`)
100
+ .get(documentId);
101
+ return row.count;
102
+ }
103
+ }
104
+ //# sourceMappingURL=document-comment.repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-comment.repo.js","sourceRoot":"","sources":["../../../../src/server/db/repositories/document-comment.repo.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,21 @@ export function listDocumentsByDomain(db, domainId) {
28
28
  FROM documents WHERE domain_id = ? ORDER BY relative_path`)
29
29
  .all(domainId);
30
30
  }
31
+ export function listDocumentsByVisitor(db, visitorId) {
32
+ const rows = db
33
+ .prepare(`SELECT document_id, domain_id, relative_path, display_name, created_at, updated_at, permission
34
+ FROM documents WHERE owner_visitor_id = ? ORDER BY updated_at DESC`)
35
+ .all(visitorId);
36
+ return rows.map((row) => ({
37
+ documentId: row.document_id,
38
+ domainId: row.domain_id,
39
+ relativePath: row.relative_path,
40
+ displayName: row.display_name,
41
+ createdAt: row.created_at,
42
+ updatedAt: row.updated_at,
43
+ permission: row.permission,
44
+ }));
45
+ }
31
46
  /**
32
47
  * 根据文档 ID 查找单篇文档。
33
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"document.repo.js","sourceRoot":"","sources":["../../../../src/server/db/repositories/document.repo.ts"],"names":[],"mappings":"AA8CA;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAqB,EAAE,QAAgB;IAC5E,mCAAmC;IACnC,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN,yDAAyD,CAC1D;SACA,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjB,oBAAoB;IACpB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAqB,EAAE,QAAgB;IAC3E,OAAO,EAAE;SACN,OAAO,CACN;;;iEAG2D,CAC5D;SACA,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAqB,EAAE,UAAkB;IACxE,OAAO,EAAE;SACN,OAAO,CACN;;;4CAGsC,CACvC;SACA,GAAG,CAAC,UAAU,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAqB,EAAE,QAAgB,EAAE,YAAoB;IAC9F,OAAO,EAAE;SACN,OAAO,CACN;;;gEAG0D,CAC3D;SACA,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAqB,EAAE,KAA0B;IAC9E,EAAE,CAAC,OAAO,CACR;;;;oDAIgD,CACjD,CAAC,GAAG,CACH,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,QAAQ,IAAI,IAAI,EACtB,KAAK,CAAC,QAAQ,IAAI,IAAI,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAqB,EAAE,KAAiC;IAC5F,+BAA+B;IAC/B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,EAAE,CAAC,OAAO,CACR;;6BAEuB,CACxB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,OAAO,CACR;;6BAEuB,CACxB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAqB,EAAE,UAAkB;IACtE,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAqB,EACrB,QAAgB,EAChB,UAAkB;IAElB,OAAO,EAAE;SACN,OAAO,CACN,sEAAsE,CACvE;SACA,GAAG,CAAC,QAAQ,EAAE,GAAG,UAAU,GAAG,CAAC,CAAC;AACrC,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAqB,EACrB,UAAkB,EAClB,SAAiB;IAEjB,OAAO,EAAE;SACN,OAAO,CACN,2GAA2G,CAC5G;SACA,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,EAAqB,EACrB,UAAkB,EAClB,SAAiB,EACjB,UAAkB;IAElB,EAAE,CAAC,OAAO,CACR;yFACqF,CACtF,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,UAAkB,EAAE,SAAiB;IAC/F,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACjH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAqB,EAAE,UAAkB;IAC3E,OAAO,EAAE;SACN,OAAO,CACN,wFAAwF,CACzF;SACA,GAAG,CAAC,UAAU,CAAC,CAAC;AACrB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yCAAyC,CAAC,EAAqB,EAAE,SAAiB;IAChG,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;;;+BAGyB,CAC1B;SACA,GAAG,CAAC,SAAS,CAAC,CAAC;IAClB,gBAAgB;IAChB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,EAAqB,EACrB,QAAgB,EAChB,SAAiB;IAEjB,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN;;;;eAIS,CACV;SACA,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC5B,iCAAiC;IACjC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAqB,EAAE,QAAgB;IAC1E,OAAO,EAAE;SACN,OAAO,CACN;;;iEAG2D,CAC5D;SACA,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAqB,EAAE,QAAgB;IAC3E,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CACN,yDAAyD,CAC1D;SACA,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"document.repo.js","sourceRoot":"","sources":["../../../../src/server/db/repositories/document.repo.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,22 @@ const SCHEMA_STATEMENTS = [
120
120
  PRIMARY KEY (visitor_id, document_id)
121
121
  )`,
122
122
  `CREATE INDEX IF NOT EXISTS idx_bookmarks_visitor ON document_bookmarks (visitor_id)`,
123
+ `CREATE TABLE IF NOT EXISTS document_comments (
124
+ comment_id TEXT PRIMARY KEY,
125
+ document_id TEXT NOT NULL,
126
+ visitor_id TEXT NOT NULL,
127
+ visitor_name TEXT NOT NULL,
128
+ parent_id TEXT,
129
+ reply_to_visitor_id TEXT,
130
+ reply_to_visitor_name TEXT,
131
+ content TEXT NOT NULL,
132
+ is_deleted INTEGER NOT NULL DEFAULT 0,
133
+ created_at TEXT NOT NULL,
134
+ updated_at TEXT NOT NULL
135
+ )`,
136
+ `CREATE INDEX IF NOT EXISTS idx_comments_document ON document_comments (document_id, created_at DESC)`,
137
+ `CREATE INDEX IF NOT EXISTS idx_comments_parent ON document_comments (parent_id)`,
138
+ `CREATE INDEX IF NOT EXISTS idx_comments_visitor ON document_comments (visitor_id)`,
123
139
  ];
124
140
  /**
125
141
  * 在数据库上应用完整 Schema。
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/db/schema.ts"],"names":[],"mappings":"AAEA,gCAAgC;AAChC,MAAM,iBAAiB,GAAa;IAClC;;;;;;;;IAQE;IACF,qFAAqF;IACrF;;;;;;;IAOE;IACF;;;;;;;;;;;;;;;;IAgBE;IACF,0EAA0E;IAC1E,gFAAgF;IAChF;;;;;;;;IAQE;IACF;;;;;;;;IAQE;IACF,6EAA6E;IAC7E,oFAAoF;IACpF,yCAAyC;IACzC,+BAA+B;IAC/B;;;;;;IAME;IACF;;;;;IAKE;IACF,uFAAuF;IACvF;;;;;IAKE;IACF,oFAAoF;IACpF,sFAAsF;IACtF;;;;;;;IAOE;IACF,6GAA6G;IAC7G;;;IAGE;IACF;;;;;;;;;IASE;IACF;;;;;;;IAOE;IACF,8EAA8E;IAC9E;;;;;IAKE;IACF,qFAAqF;IACrF;;;;;;;;;;;;IAYE;IACF,sGAAsG;IACtG,iFAAiF;IACjF,mFAAmF;CACpF,CAAC;AAGF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAqB;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7B,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,mBAAmB,CAAC,EAAE,CAAC,CAAC;QACxB,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC1B,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,EAAE,EAAE,CAAC;AACP,CAAC;AAED,6BAA6B;AAC7B,SAAS,iBAAiB,CAAC,EAAqB;IAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAwB,CAAC;IAClF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,EAAqB;IAChD,IAAI,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO;IAEpC,uCAAuC;IACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC1D,EAAE,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC,GAAG,EAAE,CAAC;QACxF,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,0CAA0C;IAC1C,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChE,EAAE,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAED,uCAAuC;AACvC,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,mDAAmD,CAAC;SAC5D,GAAG,CAAC,SAAS,CAAC,CAAC;IAClB,IAAI,GAAG;QAAE,OAAO;IAChB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,EAAE,CAAC,OAAO,CACR;+BAC2B,CAC5B,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED,0EAA0E;AAC1E,SAAS,qBAAqB,CAAC,EAAqB;IAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtC,0BAA0B;IAC1B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO;IAEnC,oCAAoC;IACpC,kCAAkC;IAClC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;IAeN,CAAC,CAAC;IAEJ,EAAE,CAAC,IAAI,CAAC;;;;;mBAKS,CAAC,CAAC;IAEnB,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAChC,EAAE,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAEzD,OAAO;IACP,EAAE,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACpF,EAAE,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;AAC5F,CAAC;AAED,2EAA2E;AAC3E,SAAS,qBAAqB,CAAC,EAAqB;IAClD,MAAM,KAAK,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO;IAClC,EAAE,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,GAAG,EAAwB,CAAC;IACpF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,iDAAiD;AACjD,SAAS,2BAA2B,CAAC,EAAqB;IACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAAE,OAAO;IAC5C,EAAE,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAqB;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,GAAG,EAAwB,CAAC;IACnF,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { getDb } from "../db/connection.js";
2
+ import { DocumentCommentRepository } from "../db/repositories/document-comment.repo.js";
3
+ export class DocumentCommentService {
4
+ repo;
5
+ db;
6
+ constructor(db = getDb()) {
7
+ this.db = db;
8
+ this.repo = new DocumentCommentRepository(db);
9
+ }
10
+ /** 创建评论 */
11
+ async createComment(params) {
12
+ // 校验:如果有 parentId,必须是根评论(保证两层结构)
13
+ if (params.parentId) {
14
+ const isRoot = await this.repo.isRootComment(params.parentId);
15
+ if (!isRoot) {
16
+ throw new Error("只能回复根评论,不支持更深层级嵌套");
17
+ }
18
+ }
19
+ if (!params.content.trim()) {
20
+ throw new Error("评论内容不能为空");
21
+ }
22
+ if (params.content.length > 512) {
23
+ throw new Error("评论内容不能超过 512 个字符");
24
+ }
25
+ return this.repo.create(params);
26
+ }
27
+ /** 获取文档的所有评论 */
28
+ async getCommentsByDocumentId(documentId) {
29
+ return this.repo.getByDocumentId(documentId);
30
+ }
31
+ /** 删除评论(软删除)
32
+ * - 评论作者可以删除自己的评论
33
+ * - 文档创建者可以删除该文档下的所有评论
34
+ */
35
+ async deleteComment(commentId, visitorId) {
36
+ const comment = await this.repo.getById(commentId);
37
+ if (!comment) {
38
+ throw new Error("评论不存在");
39
+ }
40
+ // 获取文档信息,检查是否是文档创建者
41
+ const doc = this.db
42
+ .prepare("SELECT owner_visitor_id FROM documents WHERE document_id = ?")
43
+ .get(comment.documentId);
44
+ const isDocOwner = doc && doc.owner_visitor_id === visitorId;
45
+ const isCommentAuthor = comment.visitorId === visitorId;
46
+ // 只有评论作者或文档创建者可以删除
47
+ if (!isCommentAuthor && !isDocOwner) {
48
+ throw new Error("只能删除自己的评论或文档下的评论");
49
+ }
50
+ return this.repo.softDelete(commentId);
51
+ }
52
+ /** 获取文档评论数 */
53
+ async countComments(documentId) {
54
+ return this.repo.countByDocumentId(documentId);
55
+ }
56
+ }
57
+ export const documentCommentService = new DocumentCommentService();
58
+ //# sourceMappingURL=document-comment.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-comment.service.js","sourceRoot":"","sources":["../../../src/server/documents/document-comment.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAExF,MAAM,OAAO,sBAAsB;IAChB,IAAI,CAA4B;IAChC,EAAE,CAAoB;IAEvC,YAAY,EAAE,GAAG,KAAK,EAAE;QACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,WAAW;IACX,KAAK,CAAC,aAAa,CAAC,MAQnB;QACC,iCAAiC;QACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,uBAAuB,CAAC,UAAkB;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,SAAiB;QACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,oBAAoB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,8DAA8D,CAAC;aACvE,GAAG,CAAC,OAAO,CAAC,UAAU,CAA6C,CAAC;QAEvE,MAAM,UAAU,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC;QAC7D,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;QAExD,mBAAmB;QACnB,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,cAAc;IACd,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}