@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.
- package/dist/server/access/access-control.js +14 -8
- package/dist/server/access/access-control.js.map +1 -1
- package/dist/server/access/access-control.test.js +66 -0
- package/dist/server/access/access-control.test.js.map +1 -1
- package/dist/server/app.js +23 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/db/repositories/document-comment.repo.js +104 -0
- package/dist/server/db/repositories/document-comment.repo.js.map +1 -0
- package/dist/server/db/repositories/document.repo.js +15 -0
- package/dist/server/db/repositories/document.repo.js.map +1 -1
- package/dist/server/db/schema.js +16 -0
- package/dist/server/db/schema.js.map +1 -1
- package/dist/server/documents/document-comment.service.js +58 -0
- package/dist/server/documents/document-comment.service.js.map +1 -0
- package/dist/server/documents/document-comment.service.test.js +283 -0
- package/dist/server/documents/document-comment.service.test.js.map +1 -0
- package/dist/server/documents/document.service.js +13 -2
- package/dist/server/documents/document.service.js.map +1 -1
- package/dist/server/routes/bookmarks.routes.js +3 -3
- package/dist/server/routes/bookmarks.routes.js.map +1 -1
- package/dist/server/routes/document-comments.routes.js +47 -0
- package/dist/server/routes/document-comments.routes.js.map +1 -0
- package/dist/server/routes/documents.routes.js +2 -1
- package/dist/server/routes/documents.routes.js.map +1 -1
- package/dist/server/routes/visitors.routes.js +13 -0
- package/dist/server/routes/visitors.routes.js.map +1 -1
- package/dist/shared/permissions.js +29 -0
- package/dist/shared/permissions.js.map +1 -0
- package/dist/web/assets/_baseUniq-DS9pVOy0.js +1 -0
- package/dist/web/assets/arc-DAB1JNnk.js +1 -0
- package/dist/web/assets/architectureDiagram-Q4EWVU46-WYo8a6GX.js +36 -0
- package/dist/web/assets/{blockDiagram-DXYQGD6D-wwRs96sw.js → blockDiagram-DXYQGD6D-CqkI9uKB.js} +2 -2
- package/dist/web/assets/{c4Diagram-AHTNJAMY-B6au_8I_.js → c4Diagram-AHTNJAMY-BI4Bl_HO.js} +2 -2
- package/dist/web/assets/channel-DlUQLYub.js +1 -0
- package/dist/web/assets/chunk-4BX2VUAB-DzPZwDOG.js +1 -0
- package/dist/web/assets/{chunk-4TB4RGXK-DX6iaz3S.js → chunk-4TB4RGXK-D0NGUE1z.js} +1 -1
- package/dist/web/assets/chunk-55IACEB6-1XVMg9Js.js +1 -0
- package/dist/web/assets/chunk-EDXVE4YY-z3jLXeWo.js +1 -0
- package/dist/web/assets/{chunk-FMBD7UC4-CFFjUdMt.js → chunk-FMBD7UC4-DeXyPz7h.js} +1 -1
- package/dist/web/assets/{chunk-OYMX7WX6-CTJq6xov.js → chunk-OYMX7WX6-CmRlNtCd.js} +1 -1
- package/dist/web/assets/chunk-QZHKN3VN-DXwM7MmQ.js +1 -0
- package/dist/web/assets/chunk-YZCP3GAM-s_WB68wJ.js +1 -0
- package/dist/web/assets/classDiagram-6PBFFD2Q-Cf62N1BC.js +1 -0
- package/dist/web/assets/classDiagram-v2-HSJHXN6E-Cf62N1BC.js +1 -0
- package/dist/web/assets/clone-BUEtzX3c.js +1 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-MtzVxx_Y.js +1 -0
- package/dist/web/assets/dagre-KV5264BT-Mp5AKuR5.js +4 -0
- package/dist/web/assets/diagram-5BDNPKRD-CtN8Fqpk.js +10 -0
- package/dist/web/assets/diagram-G4DWMVQ6-CAhqmLP8.js +24 -0
- package/dist/web/assets/diagram-MMDJMWI5-DBk1dOYU.js +43 -0
- package/dist/web/assets/diagram-TYMM5635-CH4k6lty.js +24 -0
- package/dist/web/assets/{erDiagram-SMLLAGMA-C4KsuAES.js → erDiagram-SMLLAGMA-BFoCdw9-.js} +2 -2
- package/dist/web/assets/{flowDiagram-DWJPFMVM-DQr0r-te.js → flowDiagram-DWJPFMVM-D9KBecPB.js} +2 -2
- package/dist/web/assets/ganttDiagram-T4ZO3ILL-CresfMLG.js +292 -0
- package/dist/web/assets/gitGraphDiagram-UUTBAWPF-DP5O-_i5.js +106 -0
- package/dist/web/assets/graph-Bd51bvIf.js +1 -0
- package/dist/web/assets/index-BXNK7EI6.css +1 -0
- package/dist/web/assets/index-uETRqqQV.js +5749 -0
- package/dist/web/assets/infoDiagram-42DDH7IO-H7gTlbQG.js +2 -0
- package/dist/web/assets/{ishikawaDiagram-UXIWVN3A-Bfe7jLNM.js → ishikawaDiagram-UXIWVN3A-Ca-ZtWO5.js} +5 -5
- package/dist/web/assets/{journeyDiagram-VCZTEJTY-GH0K0rRc.js → journeyDiagram-VCZTEJTY-BH8uoEPi.js} +2 -2
- package/dist/web/assets/{kanban-definition-6JOO6SKY-BEDDeNIP.js → kanban-definition-6JOO6SKY-BYMXy7AP.js} +2 -2
- package/dist/web/assets/layout-DMJW32Fl.js +1 -0
- package/dist/web/assets/linear-NjqjuVgd.js +1 -0
- package/dist/web/assets/min-DN_5NXWW.js +1 -0
- package/dist/web/assets/{mindmap-definition-QFDTVHPH-BPIZHODy.js → mindmap-definition-QFDTVHPH-DmnKaXBw.js} +2 -2
- package/dist/web/assets/{pieDiagram-DEJITSTG-BSdVnPU3.js → pieDiagram-DEJITSTG-BOrBkLIg.js} +2 -2
- package/dist/web/assets/{quadrantDiagram-34T5L4WZ-qtwjXc-O.js → quadrantDiagram-34T5L4WZ-D4nF2Bmb.js} +2 -2
- package/dist/web/assets/{requirementDiagram-MS252O5E-CfYimIVg.js → requirementDiagram-MS252O5E-ti4rb30R.js} +2 -2
- package/dist/web/assets/sankeyDiagram-XADWPNL6-Dk2TuAOs.js +10 -0
- package/dist/web/assets/{sequenceDiagram-FGHM5R23-C3eaCl2b.js → sequenceDiagram-FGHM5R23-Dirpom9z.js} +2 -2
- package/dist/web/assets/stateDiagram-FHFEXIEX-DR_dEmkN.js +1 -0
- package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-BEVCpiDZ.js +1 -0
- package/dist/web/assets/{timeline-definition-GMOUNBTQ-CrzW8IAn.js → timeline-definition-GMOUNBTQ-B7tUgMo8.js} +2 -2
- package/dist/web/assets/{vennDiagram-DHZGUBPP-DFeVaZZ0.js → vennDiagram-DHZGUBPP-BYsoxoXZ.js} +2 -2
- package/dist/web/assets/wardley-RL74JXVD-B1VF0RIs.js +162 -0
- package/dist/web/assets/{wardleyDiagram-NUSXRM2D-AFYHgygz.js → wardleyDiagram-NUSXRM2D-BfGbaSpn.js} +2 -2
- package/dist/web/assets/{xychartDiagram-5P7HB3ND-Bl3jUZi7.js → xychartDiagram-5P7HB3ND-CYIFicEB.js} +2 -2
- package/dist/web/index.html +2 -2
- package/package.json +2 -2
- package/dist/web/assets/_baseUniq-C8Krf7vg.js +0 -1
- package/dist/web/assets/arc-DhPqFLbO.js +0 -1
- package/dist/web/assets/architectureDiagram-Q4EWVU46-DSMMLv0f.js +0 -36
- package/dist/web/assets/channel-BtLbgpmU.js +0 -1
- package/dist/web/assets/chunk-4BX2VUAB-C23ChKEZ.js +0 -1
- package/dist/web/assets/chunk-55IACEB6-G7TSBxwj.js +0 -1
- package/dist/web/assets/chunk-EDXVE4YY-KjxiGbvb.js +0 -1
- package/dist/web/assets/chunk-QZHKN3VN-DzNVUG8U.js +0 -1
- package/dist/web/assets/chunk-YZCP3GAM-BzoPFVTZ.js +0 -1
- package/dist/web/assets/classDiagram-6PBFFD2Q-CMd6-oet.js +0 -1
- package/dist/web/assets/classDiagram-v2-HSJHXN6E-CMd6-oet.js +0 -1
- package/dist/web/assets/clone-BHKyEql5.js +0 -1
- package/dist/web/assets/cose-bilkent-S5V4N54A-BjDZd9l9.js +0 -1
- package/dist/web/assets/dagre-KV5264BT-jOT3M-lg.js +0 -4
- package/dist/web/assets/diagram-5BDNPKRD-BRHjQbYj.js +0 -10
- package/dist/web/assets/diagram-G4DWMVQ6-CSk8B_Xh.js +0 -24
- package/dist/web/assets/diagram-MMDJMWI5-Bu26fzFR.js +0 -43
- package/dist/web/assets/diagram-TYMM5635-CKDIzCTD.js +0 -24
- package/dist/web/assets/ganttDiagram-T4ZO3ILL-DqegX84h.js +0 -292
- package/dist/web/assets/gitGraphDiagram-UUTBAWPF-BSG26nMf.js +0 -106
- package/dist/web/assets/graph-ClvoMnzi.js +0 -1
- package/dist/web/assets/index-B9F0vkgf.js +0 -5335
- package/dist/web/assets/index-BGgkhvun.css +0 -1
- package/dist/web/assets/infoDiagram-42DDH7IO-DnvhS6ju.js +0 -2
- package/dist/web/assets/layout-DxVnjuNN.js +0 -1
- package/dist/web/assets/linear-D9m4fnnH.js +0 -1
- package/dist/web/assets/mermaid.core-Cm-6D9vU.js +0 -309
- package/dist/web/assets/min-BMznNHa6.js +0 -1
- package/dist/web/assets/sankeyDiagram-XADWPNL6-D2dQzWtM.js +0 -10
- package/dist/web/assets/stateDiagram-FHFEXIEX-DnlgxSQD.js +0 -1
- package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-MZvp0j3j.js +0 -1
- 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
|
-
|
|
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
|
|
150
|
-
|
|
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
|
|
154
|
-
|
|
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
|
-
|
|
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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"}
|
package/dist/server/app.js
CHANGED
|
@@ -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" } });
|
package/dist/server/app.js.map
CHANGED
|
@@ -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":"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"}
|
|
1
|
+
{"version":3,"file":"document.repo.js","sourceRoot":"","sources":["../../../../src/server/db/repositories/document.repo.ts"],"names":[],"mappings":"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"}
|
package/dist/server/db/schema.js
CHANGED
|
@@ -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":"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;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/server/db/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|