@mindbase/express-knowledge 1.0.1 → 1.0.8
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/index.ts +35 -0
- package/module/KnowledgeModule.ts +18 -0
- package/orm/Knowledge.schema.ts +123 -0
- package/orm/Tag.schema.ts +51 -0
- package/package.json +16 -17
- package/routes/knowledge/tags.route.ts +192 -0
- package/routes/knowledge.route.ts +378 -0
- package/service/KnowledgeService.ts +515 -0
- package/service/TagService.ts +271 -0
- package/tsconfig.json +7 -0
- package/types/index.ts +85 -0
- package/utils/path-builder.ts +47 -0
- package/utils/tree-builder.ts +57 -0
- package/zod/knowledge.schema.ts +13 -0
- package/zod/tag.schema.ts +7 -0
- package/dist/Knowledge.schema-7KD5X7KG.mjs +0 -27
- package/dist/Knowledge.schema-7KD5X7KG.mjs.map +0 -1
- package/dist/KnowledgeService-YZHS7UHY.mjs +0 -303
- package/dist/KnowledgeService-YZHS7UHY.mjs.map +0 -1
- package/dist/TagService-VX6SB3S6.mjs +0 -163
- package/dist/TagService-VX6SB3S6.mjs.map +0 -1
- package/dist/chunk-GWIBTASJ.mjs +0 -40
- package/dist/chunk-GWIBTASJ.mjs.map +0 -1
- package/dist/chunk-S3ZXTYZ2.mjs +0 -40
- package/dist/chunk-S3ZXTYZ2.mjs.map +0 -1
- package/dist/chunk-VHBDNZOQ.mjs +0 -10
- package/dist/chunk-VHBDNZOQ.mjs.map +0 -1
- package/dist/chunk-Y47QRG3M.mjs +0 -93
- package/dist/chunk-Y47QRG3M.mjs.map +0 -1
- package/dist/index.d.mts +0 -7668
- package/dist/index.mjs +0 -55
- package/dist/index.mjs.map +0 -1
- package/dist/tree-builder-XZ4OA2TD.mjs +0 -35
- package/dist/tree-builder-XZ4OA2TD.mjs.map +0 -1
package/dist/chunk-Y47QRG3M.mjs
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
c
|
|
3
|
-
} from "./chunk-GWIBTASJ.mjs";
|
|
4
|
-
|
|
5
|
-
// orm/Knowledge.schema.ts
|
|
6
|
-
import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
var knowledge = sqliteTable("knowledge", {
|
|
9
|
-
id: integer("id").primaryKey({ autoIncrement: true }),
|
|
10
|
-
name: text("name").notNull(),
|
|
11
|
-
path: text("path").notNull(),
|
|
12
|
-
level: integer("level").notNull().default(0),
|
|
13
|
-
type: integer("type").notNull(),
|
|
14
|
-
// 0:文件夹 1:笔记 2:书籍
|
|
15
|
-
safe: integer("safe").notNull().default(0),
|
|
16
|
-
userId: integer("user_id").notNull(),
|
|
17
|
-
// 书籍特有字段
|
|
18
|
-
coverImage: text("cover_image"),
|
|
19
|
-
author: text("author"),
|
|
20
|
-
isbn: text("isbn"),
|
|
21
|
-
description: text("description"),
|
|
22
|
-
created: integer("created", { mode: "timestamp" }),
|
|
23
|
-
updated: integer("updated", { mode: "timestamp" }),
|
|
24
|
-
isDelete: integer("is_delete").notNull().default(0),
|
|
25
|
-
isTop: integer("is_top").notNull().default(0),
|
|
26
|
-
content: text("content"),
|
|
27
|
-
contentText: text("content_text"),
|
|
28
|
-
viewType: integer("view_type").default(0)
|
|
29
|
-
});
|
|
30
|
-
var createKnowledgeSchema = c(knowledge, {
|
|
31
|
-
name: z.string().min(1, "\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A").max(255, "\u540D\u79F0\u4E0D\u80FD\u8D85\u8FC7255\u5B57\u7B26"),
|
|
32
|
-
type: z.coerce.number().int().min(0).max(2),
|
|
33
|
-
safe: z.coerce.number().int().min(0).max(2).optional()
|
|
34
|
-
}).pick({
|
|
35
|
-
name: true,
|
|
36
|
-
type: true,
|
|
37
|
-
safe: true,
|
|
38
|
-
description: true,
|
|
39
|
-
content: true,
|
|
40
|
-
contentText: true,
|
|
41
|
-
viewType: true,
|
|
42
|
-
coverImage: true,
|
|
43
|
-
author: true,
|
|
44
|
-
isbn: true
|
|
45
|
-
});
|
|
46
|
-
var batchCreateKnowledgeSchema = z.object({
|
|
47
|
-
parentId: z.number().optional(),
|
|
48
|
-
items: z.array(z.object({
|
|
49
|
-
name: z.string().min(1, "\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A").max(255),
|
|
50
|
-
type: z.coerce.number().int().min(0).max(2)
|
|
51
|
-
})).min(1, "\u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u9879\u76EE")
|
|
52
|
-
});
|
|
53
|
-
var batchDetailKnowledgeSchema = z.object({
|
|
54
|
-
ids: z.array(z.number().int().positive()).min(1, "\u81F3\u5C11\u9700\u8981\u4E00\u4E2AID")
|
|
55
|
-
});
|
|
56
|
-
var updateKnowledgeSchema = c(knowledge).partial().extend({
|
|
57
|
-
id: z.number({ required_error: "ID\u4E0D\u80FD\u4E3A\u7A7A" })
|
|
58
|
-
});
|
|
59
|
-
var listKnowledgeSchema = z.object({
|
|
60
|
-
pageIndex: z.coerce.number().int().positive().optional().default(1),
|
|
61
|
-
pageSize: z.coerce.number().int().positive().optional().default(10),
|
|
62
|
-
level: z.coerce.number().int().min(0).optional(),
|
|
63
|
-
type: z.coerce.number().int().min(0).max(2).optional(),
|
|
64
|
-
safe: z.array(z.coerce.number().int().min(0).max(2)).optional()
|
|
65
|
-
});
|
|
66
|
-
var searchKnowledgeSchema = z.object({
|
|
67
|
-
keyword: z.string().min(1, "\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A"),
|
|
68
|
-
pageIndex: z.coerce.number().int().positive().optional().default(1),
|
|
69
|
-
pageSize: z.coerce.number().int().positive().optional().default(10)
|
|
70
|
-
});
|
|
71
|
-
var moveKnowledgeSchema = z.object({
|
|
72
|
-
newParentId: z.number({ required_error: "\u65B0\u7236\u8282\u70B9ID\u4E0D\u80FD\u4E3A\u7A7A" })
|
|
73
|
-
});
|
|
74
|
-
var updateIsTopSchema = z.object({
|
|
75
|
-
isTop: z.coerce.number().int().min(0).max(1)
|
|
76
|
-
});
|
|
77
|
-
var updateSafeSchema = z.object({
|
|
78
|
-
safe: z.coerce.number().int().min(0).max(2)
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
export {
|
|
82
|
-
knowledge,
|
|
83
|
-
createKnowledgeSchema,
|
|
84
|
-
batchCreateKnowledgeSchema,
|
|
85
|
-
batchDetailKnowledgeSchema,
|
|
86
|
-
updateKnowledgeSchema,
|
|
87
|
-
listKnowledgeSchema,
|
|
88
|
-
searchKnowledgeSchema,
|
|
89
|
-
moveKnowledgeSchema,
|
|
90
|
-
updateIsTopSchema,
|
|
91
|
-
updateSafeSchema
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=chunk-Y47QRG3M.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../orm/Knowledge.schema.ts"],"sourcesContent":["import { sqliteTable, text, integer } from \"drizzle-orm/sqlite-core\";\r\nimport { createInsertSchema, createSelectSchema } from \"drizzle-zod\";\r\nimport { z } from \"zod\";\r\n\r\n/**\r\n * 知识库主表\r\n */\r\nexport const knowledge = sqliteTable(\"knowledge\", {\r\n id: integer(\"id\").primaryKey({ autoIncrement: true }),\r\n name: text(\"name\").notNull(),\r\n path: text(\"path\").notNull(),\r\n level: integer(\"level\").notNull().default(0),\r\n type: integer(\"type\").notNull(), // 0:文件夹 1:笔记 2:书籍\r\n safe: integer(\"safe\").notNull().default(0),\r\n userId: integer(\"user_id\").notNull(),\r\n // 书籍特有字段\r\n coverImage: text(\"cover_image\"),\r\n author: text(\"author\"),\r\n isbn: text(\"isbn\"),\r\n description: text(\"description\"),\r\n created: integer(\"created\", { mode: \"timestamp\" }),\r\n updated: integer(\"updated\", { mode: \"timestamp\" }),\r\n isDelete: integer(\"is_delete\").notNull().default(0),\r\n isTop: integer(\"is_top\").notNull().default(0),\r\n content: text(\"content\"),\r\n contentText: text(\"content_text\"),\r\n viewType: integer(\"view_type\").default(0),\r\n});\r\n\r\n// ==================== Zod Schemas ====================\r\n\r\n/**\r\n * 创建知识库内容验证\r\n */\r\nexport const createKnowledgeSchema = createInsertSchema(knowledge as any, {\r\n name: z.string().min(1, \"名称不能为空\").max(255, \"名称不能超过255字符\") as any,\r\n type: z.coerce.number().int().min(0).max(2) as any,\r\n safe: z.coerce.number().int().min(0).max(2).optional() as any,\r\n}).pick({\r\n name: true,\r\n type: true,\r\n safe: true,\r\n description: true,\r\n content: true,\r\n contentText: true,\r\n viewType: true,\r\n coverImage: true,\r\n author: true,\r\n isbn: true,\r\n});\r\n\r\n/**\r\n * 批量创建验证\r\n */\r\nexport const batchCreateKnowledgeSchema = z.object({\r\n parentId: z.number().optional(),\r\n items: z.array(z.object({\r\n name: z.string().min(1, \"名称不能为空\").max(255),\r\n type: z.coerce.number().int().min(0).max(2),\r\n })).min(1, \"至少需要一个项目\"),\r\n});\r\n\r\n/**\r\n * 批量获取详情验证\r\n */\r\nexport const batchDetailKnowledgeSchema = z.object({\r\n ids: z.array(z.number().int().positive()).min(1, \"至少需要一个ID\"),\r\n});\r\n\r\n/**\r\n * 更新知识库内容验证\r\n */\r\nexport const updateKnowledgeSchema = createInsertSchema(knowledge as any)\r\n .partial()\r\n .extend({\r\n id: z.number({ required_error: \"ID不能为空\" }),\r\n });\r\n\r\n/**\r\n * 列表查询验证\r\n */\r\nexport const listKnowledgeSchema = z.object({\r\n pageIndex: z.coerce.number().int().positive().optional().default(1),\r\n pageSize: z.coerce.number().int().positive().optional().default(10),\r\n level: z.coerce.number().int().min(0).optional(),\r\n type: z.coerce.number().int().min(0).max(2).optional(),\r\n safe: z.array(z.coerce.number().int().min(0).max(2)).optional(),\r\n});\r\n\r\n/**\r\n * 搜索验证\r\n */\r\nexport const searchKnowledgeSchema = z.object({\r\n keyword: z.string().min(1, \"关键词不能为空\"),\r\n pageIndex: z.coerce.number().int().positive().optional().default(1),\r\n pageSize: z.coerce.number().int().positive().optional().default(10),\r\n});\r\n\r\n/**\r\n * 移动节点验证\r\n */\r\nexport const moveKnowledgeSchema = z.object({\r\n newParentId: z.number({ required_error: \"新父节点ID不能为空\" }),\r\n});\r\n\r\n/**\r\n * 更新置顶状态验证\r\n */\r\nexport const updateIsTopSchema = z.object({\r\n isTop: z.coerce.number().int().min(0).max(1),\r\n});\r\n\r\n/**\r\n * 更新安全等级验证\r\n */\r\nexport const updateSafeSchema = z.object({\r\n safe: z.coerce.number().int().min(0).max(2),\r\n});\r\n"],"mappings":"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","names":[]}
|