@mindbase/express-knowledge 1.0.4 → 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 +12 -9
- 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-BHFPDLIO.mjs +0 -27
- package/dist/Knowledge.schema-BHFPDLIO.mjs.map +0 -1
- package/dist/KnowledgeService-JDG23Q4Z.mjs +0 -303
- package/dist/KnowledgeService-JDG23Q4Z.mjs.map +0 -1
- package/dist/TagService-YZAGBPG7.mjs +0 -163
- package/dist/TagService-YZAGBPG7.mjs.map +0 -1
- package/dist/chunk-2G44ILZL.mjs +0 -93
- package/dist/chunk-2G44ILZL.mjs.map +0 -1
- package/dist/chunk-GWIBTASJ.mjs +0 -40
- package/dist/chunk-GWIBTASJ.mjs.map +0 -1
- package/dist/chunk-SG44KRK4.mjs +0 -40
- package/dist/chunk-SG44KRK4.mjs.map +0 -1
- package/dist/chunk-VHBDNZOQ.mjs +0 -10
- package/dist/chunk-VHBDNZOQ.mjs.map +0 -1
- package/dist/index.d.mts +0 -7682
- package/dist/index.mjs +0 -55
- package/dist/index.mjs.map +0 -1
- package/dist/tree-builder-LIYCLUJS.mjs +0 -35
- package/dist/tree-builder-LIYCLUJS.mjs.map +0 -1
package/dist/chunk-GWIBTASJ.mjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
// ../../node_modules/drizzle-zod/index.mjs
|
|
2
|
-
import { getTableColumns as e, is as t } from "drizzle-orm";
|
|
3
|
-
import { MySqlVarChar as n, MySqlVarBinary as r, MySqlChar as o } from "drizzle-orm/mysql-core";
|
|
4
|
-
import { PgUUID as i, PgChar as a, PgVarchar as l } from "drizzle-orm/pg-core";
|
|
5
|
-
import { SQLiteText as s } from "drizzle-orm/sqlite-core";
|
|
6
|
-
import { z as u } from "zod";
|
|
7
|
-
var m = u.union([u.string(), u.number(), u.boolean(), u.null()]);
|
|
8
|
-
var f = u.lazy((() => u.union([m, u.array(f), u.record(f)])));
|
|
9
|
-
function c(t2, n2) {
|
|
10
|
-
const r2 = e(t2), o2 = Object.entries(r2);
|
|
11
|
-
let i2 = Object.fromEntries(o2.map((([e2, t3]) => [e2, p(t3)])));
|
|
12
|
-
n2 && (i2 = Object.assign(i2, Object.fromEntries(Object.entries(n2).map((([e2, t3]) => [e2, "function" == typeof t3 ? t3(i2) : t3])))));
|
|
13
|
-
for (const [e2, t3] of o2) t3.notNull ? t3.hasDefault && (i2[e2] = i2[e2].optional()) : i2[e2] = i2[e2].nullable().optional();
|
|
14
|
-
return u.object(i2);
|
|
15
|
-
}
|
|
16
|
-
function p(e2) {
|
|
17
|
-
let m2;
|
|
18
|
-
if ((function(e3) {
|
|
19
|
-
return "enumValues" in e3 && Array.isArray(e3.enumValues) && e3.enumValues.length > 0;
|
|
20
|
-
})(e2) && (m2 = e2.enumValues.length ? u.enum(e2.enumValues) : u.string()), !m2) {
|
|
21
|
-
if (t(e2, i)) m2 = u.string().uuid();
|
|
22
|
-
else if ("custom" === e2.dataType) m2 = u.any();
|
|
23
|
-
else if ("json" === e2.dataType) m2 = f;
|
|
24
|
-
else if ("array" === e2.dataType) m2 = u.array(p(e2.baseColumn));
|
|
25
|
-
else if ("number" === e2.dataType) m2 = u.number();
|
|
26
|
-
else if ("bigint" === e2.dataType) m2 = u.bigint();
|
|
27
|
-
else if ("boolean" === e2.dataType) m2 = u.boolean();
|
|
28
|
-
else if ("date" === e2.dataType) m2 = u.date();
|
|
29
|
-
else if ("string" === e2.dataType) {
|
|
30
|
-
let i2 = u.string();
|
|
31
|
-
(t(e2, a) || t(e2, l) || t(e2, n) || t(e2, r) || t(e2, o) || t(e2, s)) && "number" == typeof e2.length && (i2 = i2.max(e2.length)), m2 = i2;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return m2 || (m2 = u.any()), m2;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export {
|
|
38
|
-
c
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=chunk-GWIBTASJ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;AAeA,IAAMA,IAAgBC,EAAEC,MAAM,CAACD,EAAEE,OAAAA,GAAUF,EAAEG,OAAAA,GAAUH,EAAEI,QAAAA,GAAWJ,EAAEK,KAAAA,CAAAA,CAAAA;AAAtE,IAGaC,IAA8BN,EAAEO,MAAK,MACjDP,EAAEC,MAAM,CAACF,GAAeC,EAAEQ,MAAMF,CAAAA,GAAaN,EAAES,OAAOH,CAAAA,CAAAA,CAAAA,EAAAA;AA+EjD,SAAUI,EAIfC,IAIAC,IAAAA;AAKA,QAAMC,KAAUC,EAAgBH,EAAAA,GAC1BI,KAAgBC,OAAOC,QAAQJ,EAAAA;AAErC,MAAIK,KAAgBF,OAAOG,YAAYJ,GAAcK,KAAI,CAAA,CAAEC,IAAMC,EAAAA,MACzD,CAACD,IAAME,EAAkBD,EAAAA,CAAAA,EAAAA,CAAAA;AAG7BV,EAAAA,OACHM,KAAgBF,OAAOQ,OACtBN,IACAF,OAAOG,YACNH,OAAOC,QAAQL,EAAAA,EAAQQ,KAAI,CAAA,CAAEC,IAAMI,EAAAA,MAC3B,CACNJ,IACwB,cAAA,OAAjBI,KACJA,GAAaP,EAAAA,IACbO,EAAAA,EAAAA,CAAAA,CAAAA;AAOR,aAAK,CAAOJ,IAAMC,EAAAA,KAAWP,GACvBO,CAAAA,GAAOI,UAEDJ,GAAOK,eACjBT,GAAcG,EAAAA,IAAQH,GAAcG,EAAAA,EAAOO,SAAAA,KAF3CV,GAAcG,EAAAA,IAAQH,GAAcG,EAAAA,EAAOQ,SAAAA,EAAWD,SAAAA;AAMxD,SAAO5B,EAAE8B,OAAOZ,EAAAA;AACjB;AAmDA,SAASa,EAAkBC,IAAAA;AAC1B,MAAIC;AAMJ,OAXD,SAAoBD,IAAAA;AACnB,WAAO,gBAAgBA,MAAUE,MAAMC,QAAQH,GAAOI,UAAAA,KAAeJ,GAAOI,WAAWC,SAAS;EACjG,GAKgBL,EAAAA,MACdC,KAAOD,GAAOI,WAAWC,SAASC,EAAEC,KAAKP,GAAOI,UAAAA,IAAcE,EAAEE,OAAAA,IAAAA,CAG5DP;AACJ,QAAIQ,EAAGT,IAAQU,CAAAA,EACdT,CAAAA,KAAOK,EAAEE,OAAAA,EAASG,KAAAA;aACY,aAApBX,GAAOY,SACjBX,CAAAA,KAAOK,EAAEO,IAAAA;aACqB,WAApBb,GAAOY,SACjBX,CAAAA,KAAOa;aACuB,YAApBd,GAAOY,SACjBX,CAAAA,KAAOK,EAAES,MAAMhB,EAAmBC,GAA6BgB,UAAAA,CAAAA;aACjC,aAApBhB,GAAOY,SACjBX,CAAAA,KAAOK,EAAEW,OAAAA;aACqB,aAApBjB,GAAOY,SACjBX,CAAAA,KAAOK,EAAEY,OAAAA;aACqB,cAApBlB,GAAOY,SACjBX,CAAAA,KAAOK,EAAEa,QAAAA;aACqB,WAApBnB,GAAOY,SACjBX,CAAAA,KAAOK,EAAEc,KAAAA;aACqB,aAApBpB,GAAOY,UAAuB;AACxC,UAAIS,KAAQf,EAAEE,OAAAA;AAAAA,OAGZC,EAAGT,IAAQsB,CAAAA,KAAWb,EAAGT,IAAQuB,CAAAA,KAAcd,EAAGT,IAAQwB,CAAAA,KACvDf,EAAGT,IAAQyB,CAAAA,KAAmBhB,EAAGT,IAAQ0B,CAAAA,KAAcjB,EAAGT,IAAQ2B,CAAAA,MACzC,YAAA,OAAlB3B,GAAOK,WAElBgB,KAAQA,GAAMO,IAAI5B,GAAOK,MAAAA,IAG1BJ,KAAOoB;IACP;;AAOF,SAJKpB,OACJA,KAAOK,EAAEO,IAAAA,IAGHZ;AACR;","names":["literalSchema","z","union","string","number","boolean","null","jsonSchema","lazy","array","record","createInsertSchema","table","refine","columns","getTableColumns","columnEntries","Object","entries","schemaEntries","fromEntries","map","name","column","mapColumnToSchema","assign","refineColumn","notNull","hasDefault","optional","nullable","object","mapColumnToSchema","column","type","Array","isArray","enumValues","length","z","enum","string","is","PgUUID","uuid","dataType","any","jsonSchema","array","baseColumn","number","bigint","boolean","date","sType","PgChar","PgVarchar","MySqlVarChar","MySqlVarBinary","MySqlChar","SQLiteText","max"]}
|
package/dist/chunk-SG44KRK4.mjs
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
c
|
|
3
|
-
} from "./chunk-GWIBTASJ.mjs";
|
|
4
|
-
|
|
5
|
-
// orm/Tag.schema.ts
|
|
6
|
-
import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
|
|
7
|
-
import { z } from "zod";
|
|
8
|
-
var knowledgeTag = sqliteTable("knowledge_tag", {
|
|
9
|
-
id: integer("id").primaryKey({ autoIncrement: true }),
|
|
10
|
-
name: text("name").notNull().unique(),
|
|
11
|
-
color: text("color"),
|
|
12
|
-
userId: integer("user_id"),
|
|
13
|
-
created: integer("created", { mode: "timestamp" })
|
|
14
|
-
});
|
|
15
|
-
var knowledgeTagRelation = sqliteTable("knowledge_tag_relation", {
|
|
16
|
-
knowledgeId: integer("knowledge_id").notNull(),
|
|
17
|
-
tagId: integer("tag_id").notNull()
|
|
18
|
-
});
|
|
19
|
-
var createTagSchema = c(knowledgeTag, {
|
|
20
|
-
name: z.string().min(1, "\u6807\u7B7E\u540D\u4E0D\u80FD\u4E3A\u7A7A").max(50, "\u6807\u7B7E\u540D\u4E0D\u80FD\u8D85\u8FC750\u5B57\u7B26"),
|
|
21
|
-
color: z.string().regex(/^#[0-9A-Fa-f]{6}$/, "\u989C\u8272\u5FC5\u987B\u662F\u5341\u516D\u8FDB\u5236\u683C\u5F0F").optional()
|
|
22
|
-
}).pick({
|
|
23
|
-
name: true,
|
|
24
|
-
color: true
|
|
25
|
-
});
|
|
26
|
-
var updateTagSchema = c(knowledgeTag).partial().extend({
|
|
27
|
-
id: z.number({ required_error: "\u6807\u7B7EID\u4E0D\u80FD\u4E3A\u7A7A" })
|
|
28
|
-
});
|
|
29
|
-
var addTagRelationSchema = z.object({
|
|
30
|
-
tagId: z.number({ required_error: "\u6807\u7B7EID\u4E0D\u80FD\u4E3A\u7A7A" })
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
export {
|
|
34
|
-
knowledgeTag,
|
|
35
|
-
knowledgeTagRelation,
|
|
36
|
-
createTagSchema,
|
|
37
|
-
updateTagSchema,
|
|
38
|
-
addTagRelationSchema
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=chunk-SG44KRK4.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../orm/Tag.schema.ts"],"sourcesContent":["import { sqliteTable, text, integer } from \"drizzle-orm/sqlite-core\";\nimport { createInsertSchema, createSelectSchema } from \"drizzle-zod\";\nimport { z } from \"zod\";\n\n/**\n * 标签表\n */\nexport const knowledgeTag = sqliteTable(\"knowledge_tag\", {\n id: integer(\"id\").primaryKey({ autoIncrement: true }),\n name: text(\"name\").notNull().unique(),\n color: text(\"color\"),\n userId: integer(\"user_id\"),\n created: integer(\"created\", { mode: \"timestamp\" }),\n});\n\n/**\n * 标签关联表(多对多)\n */\nexport const knowledgeTagRelation = sqliteTable(\"knowledge_tag_relation\", {\n knowledgeId: integer(\"knowledge_id\").notNull(),\n tagId: integer(\"tag_id\").notNull(),\n});\n\n// ==================== Zod Schemas ====================\n\n/**\n * 创建标签验证\n */\nexport const createTagSchema = createInsertSchema(knowledgeTag as any, {\n name: z.string().min(1, \"标签名不能为空\").max(50, \"标签名不能超过50字符\") as any,\n color: z.string().regex(/^#[0-9A-Fa-f]{6}$/, \"颜色必须是十六进制格式\").optional() as any,\n}).pick({\n name: true,\n color: true,\n});\n\n/**\n * 更新标签验证\n */\nexport const updateTagSchema = createInsertSchema(knowledgeTag as any)\n .partial()\n .extend({\n id: z.number({ required_error: \"标签ID不能为空\" }),\n });\n\n/**\n * 添加标签关联验证\n */\nexport const addTagRelationSchema = z.object({\n tagId: z.number({ required_error: \"标签ID不能为空\" }),\n});\n"],"mappings":";;;;;AAAA,SAAS,aAAa,MAAM,eAAe;AAE3C,SAAS,SAAS;AAKX,IAAM,eAAe,YAAY,iBAAiB;AAAA,EACvD,IAAI,QAAQ,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,CAAC;AAAA,EACpD,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO;AAAA,EACpC,OAAO,KAAK,OAAO;AAAA,EACnB,QAAQ,QAAQ,SAAS;AAAA,EACzB,SAAS,QAAQ,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,CAAC;AAKM,IAAM,uBAAuB,YAAY,0BAA0B;AAAA,EACxE,aAAa,QAAQ,cAAc,EAAE,QAAQ;AAAA,EAC7C,OAAO,QAAQ,QAAQ,EAAE,QAAQ;AACnC,CAAC;AAOM,IAAM,kBAAkB,EAAmB,cAAqB;AAAA,EACrE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,4CAAS,EAAE,IAAI,IAAI,0DAAa;AAAA,EACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,oEAAa,EAAE,SAAS;AACvE,CAAC,EAAE,KAAK;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AACT,CAAC;AAKM,IAAM,kBAAkB,EAAmB,YAAmB,EAClE,QAAQ,EACR,OAAO;AAAA,EACN,IAAI,EAAE,OAAO,EAAE,gBAAgB,yCAAW,CAAC;AAC7C,CAAC;AAKI,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,OAAO,EAAE,OAAO,EAAE,gBAAgB,yCAAW,CAAC;AAChD,CAAC;","names":[]}
|
package/dist/chunk-VHBDNZOQ.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// ../../node_modules/tsup/assets/esm_shims.js
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
var getFilename = () => fileURLToPath(import.meta.url);
|
|
5
|
-
var __filename = /* @__PURE__ */ getFilename();
|
|
6
|
-
|
|
7
|
-
export {
|
|
8
|
-
__filename
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=chunk-VHBDNZOQ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tsup/assets/esm_shims.js"],"sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n"],"mappings":";AACA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAE9B,IAAM,cAAc,MAAM,cAAc,YAAY,GAAG;AAIhD,IAAM,aAA6B,4BAAY;","names":[]}
|