paper-manager 0.4.2 → 0.6.0

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 (52) hide show
  1. package/README.md +8 -1
  2. package/dist/commands/knowledge-base.js +31 -0
  3. package/dist/commands/knowledge-base.js.map +1 -1
  4. package/dist/commands/literature.js +56 -21
  5. package/dist/commands/literature.js.map +1 -1
  6. package/dist/commands/util.d.ts +2 -0
  7. package/dist/commands/util.js +24 -0
  8. package/dist/commands/util.js.map +1 -0
  9. package/dist/db/index.d.ts +4 -6
  10. package/dist/db/index.js +29 -42
  11. package/dist/db/index.js.map +1 -1
  12. package/dist/db/index.test.js +26 -73
  13. package/dist/db/index.test.js.map +1 -1
  14. package/dist/db/operations/knowledge-bases.d.ts +7 -6
  15. package/dist/db/operations/knowledge-bases.js +39 -13
  16. package/dist/db/operations/knowledge-bases.js.map +1 -1
  17. package/dist/db/operations/knowledge-bases.test.js +3 -5
  18. package/dist/db/operations/knowledge-bases.test.js.map +1 -1
  19. package/dist/db/operations/literatures.d.ts +8 -8
  20. package/dist/db/operations/literatures.js +63 -66
  21. package/dist/db/operations/literatures.js.map +1 -1
  22. package/dist/db/operations/literatures.test.js +6 -9
  23. package/dist/db/operations/literatures.test.js.map +1 -1
  24. package/dist/db/project/knowledge-bases.d.ts +2 -1
  25. package/dist/db/project/knowledge-bases.js +3 -0
  26. package/dist/db/project/knowledge-bases.js.map +1 -1
  27. package/dist/db/schema.d.ts +370 -1
  28. package/dist/db/schema.js +29 -0
  29. package/dist/db/schema.js.map +1 -1
  30. package/dist/db/test-utils.d.ts +3 -3
  31. package/dist/db/test-utils.js +6 -8
  32. package/dist/db/test-utils.js.map +1 -1
  33. package/dist/db/user/knowledge-bases.d.ts +2 -1
  34. package/dist/db/user/knowledge-bases.js +3 -0
  35. package/dist/db/user/knowledge-bases.js.map +1 -1
  36. package/dist/extractor/index.d.ts +3 -2
  37. package/dist/extractor/index.js +2 -2
  38. package/dist/extractor/index.js.map +1 -1
  39. package/dist/extractor/pdf.d.ts +11 -0
  40. package/dist/extractor/pdf.js +65 -0
  41. package/dist/extractor/pdf.js.map +1 -1
  42. package/dist/extractor/pdf.test.d.ts +1 -0
  43. package/dist/extractor/pdf.test.js +106 -0
  44. package/dist/extractor/pdf.test.js.map +1 -0
  45. package/dist/index.js +2 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/types/index.d.ts +9 -25
  48. package/dist/types/index.js +7 -18
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/types/index.test.js +12 -69
  51. package/dist/types/index.test.js.map +1 -1
  52. package/package.json +3 -1
@@ -0,0 +1,106 @@
1
+ import * as fs from "node:fs";
2
+ import * as os from "node:os";
3
+ import * as path from "node:path";
4
+ import { beforeEach, describe, expect, it } from "vitest";
5
+ import { extractPdfMetadata } from "./pdf.js";
6
+ // ─── Helpers ─────────────────────────────────────────────────
7
+ function buildMinimalPdf(info) {
8
+ const infoEntries = Object.entries(info)
9
+ .map(([k, v]) => `/${k} (${v})`)
10
+ .join(" ");
11
+ const objects = [
12
+ "1 0 obj\n<< /Type /Catalog /Pages 2 0 R >>\nendobj",
13
+ "2 0 obj\n<< /Type /Pages /Kids [3 0 R] /Count 1 >>\nendobj",
14
+ "3 0 obj\n<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] >>\nendobj",
15
+ `4 0 obj\n<< ${infoEntries} >>\nendobj`,
16
+ ];
17
+ let pdf = "%PDF-1.4\n";
18
+ const offsets = [];
19
+ for (const obj of objects) {
20
+ offsets.push(pdf.length);
21
+ pdf += obj + "\n";
22
+ }
23
+ const xrefOffset = pdf.length;
24
+ pdf += "xref\n0 5\n0000000000 65535 f \n";
25
+ for (const off of offsets) {
26
+ pdf += String(off).padStart(10, "0") + " 00000 n \n";
27
+ }
28
+ pdf += `trailer\n<< /Size 5 /Root 1 0 R /Info 4 0 R >>\nstartxref\n${String(xrefOffset)}\n%%EOF`;
29
+ return pdf;
30
+ }
31
+ let tmpDir;
32
+ beforeEach(() => {
33
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "pdf-test-"));
34
+ });
35
+ function writePdf(name, info) {
36
+ const pdfPath = path.join(tmpDir, name);
37
+ fs.writeFileSync(pdfPath, buildMinimalPdf(info));
38
+ return pdfPath;
39
+ }
40
+ // ─── extractPdfMetadata ──────────────────────────────────────
41
+ describe("extractPdfMetadata", () => {
42
+ it("extracts title, author, subject, and keywords", async () => {
43
+ const pdfPath = writePdf("full.pdf", {
44
+ Title: "Attention Is All You Need",
45
+ Author: "Vaswani, Ashish",
46
+ Subject: "A new network architecture based on attention.",
47
+ Keywords: "transformer, attention, deep learning",
48
+ });
49
+ const meta = await extractPdfMetadata(pdfPath);
50
+ expect(meta.title).toBe("Attention Is All You Need");
51
+ expect(meta.author).toBe("Vaswani, Ashish");
52
+ expect(meta.subject).toBe("A new network architecture based on attention.");
53
+ expect(meta.keywords).toEqual(["transformer", "attention", "deep learning"]);
54
+ });
55
+ it("extracts creator field", async () => {
56
+ const pdfPath = writePdf("creator.pdf", {
57
+ Creator: "LaTeX with hyperref",
58
+ });
59
+ const meta = await extractPdfMetadata(pdfPath);
60
+ expect(meta.creator).toBe("LaTeX with hyperref");
61
+ });
62
+ it("parses CreationDate and ModDate", async () => {
63
+ const pdfPath = writePdf("dates.pdf", {
64
+ CreationDate: "D:20231215120000Z",
65
+ ModDate: "D:20240101",
66
+ });
67
+ const meta = await extractPdfMetadata(pdfPath);
68
+ expect(meta.creationDate).toBeInstanceOf(Date);
69
+ expect(meta.creationDate.getUTCFullYear()).toBe(2023);
70
+ expect(meta.creationDate.getUTCMonth()).toBe(11); // December = 11
71
+ expect(meta.creationDate.getUTCDate()).toBe(15);
72
+ expect(meta.modDate).toBeInstanceOf(Date);
73
+ expect(meta.modDate.getUTCFullYear()).toBe(2024);
74
+ });
75
+ it("returns null for invalid dates", async () => {
76
+ const pdfPath = writePdf("baddate.pdf", {
77
+ CreationDate: "not-a-date",
78
+ });
79
+ const meta = await extractPdfMetadata(pdfPath);
80
+ expect(meta.creationDate).toBeNull();
81
+ });
82
+ it("returns null fields and empty keywords when PDF has no metadata", async () => {
83
+ const pdfPath = writePdf("empty.pdf", {});
84
+ const meta = await extractPdfMetadata(pdfPath);
85
+ expect(meta.title).toBeNull();
86
+ expect(meta.author).toBeNull();
87
+ expect(meta.subject).toBeNull();
88
+ expect(meta.creator).toBeNull();
89
+ expect(meta.doi).toBeNull();
90
+ expect(meta.creationDate).toBeNull();
91
+ expect(meta.modDate).toBeNull();
92
+ expect(meta.keywords).toEqual([]);
93
+ });
94
+ it("treats empty strings as null", async () => {
95
+ const pdfPath = writePdf("blank.pdf", { Title: "", Author: " " });
96
+ const meta = await extractPdfMetadata(pdfPath);
97
+ expect(meta.title).toBeNull();
98
+ expect(meta.author).toBeNull();
99
+ });
100
+ it("splits keywords by semicolons", async () => {
101
+ const pdfPath = writePdf("semicolon.pdf", { Keywords: "NLP; transformers; BERT" });
102
+ const meta = await extractPdfMetadata(pdfPath);
103
+ expect(meta.keywords).toEqual(["NLP", "transformers", "BERT"]);
104
+ });
105
+ });
106
+ //# sourceMappingURL=pdf.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.test.js","sourceRoot":"","sources":["../../src/extractor/pdf.test.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { Command } from "commander";
4
4
  import { createConfigCommand } from "./commands/config.js";
5
5
  import { createKnowledgeBaseCommand } from "./commands/knowledge-base.js";
6
6
  import { createLiteratureCommand } from "./commands/literature.js";
7
+ import { createUtilCommand } from "./commands/util.js";
7
8
  import { startup } from "./lifecycle.js";
8
9
  const require = createRequire(import.meta.url);
9
10
  const { version } = require("../package.json");
@@ -15,5 +16,6 @@ program.hook("preAction", () => {
15
16
  program.addCommand(createConfigCommand());
16
17
  program.addCommand(createKnowledgeBaseCommand());
17
18
  program.addCommand(createLiteratureCommand());
19
+ program.addCommand(createUtilCommand());
18
20
  program.parse();
19
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAElF,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAElF,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC7B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;AACjD,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAExC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as z from "zod";
2
+ export type { KnowledgeBaseMetadata, LiteratureMetadata } from "../db/schema.js";
2
3
  export declare const EmbeddingModelConfigSchema: z.ZodObject<{
3
4
  provider: z.ZodEnum<{
4
5
  openai: "openai";
@@ -12,50 +13,33 @@ export declare const EmbeddingModelConfigSchema: z.ZodObject<{
12
13
  export type EmbeddingModelConfig = z.infer<typeof EmbeddingModelConfigSchema> & {
13
14
  id: string;
14
15
  };
15
- export declare const KnowledgeBaseMetadataSchema: z.ZodObject<{
16
- id: z.ZodUUID;
17
- name: z.ZodString;
18
- description: z.ZodString;
19
- embeddingModelId: z.ZodString;
20
- createdAt: z.ZodDate;
21
- updatedAt: z.ZodDate;
16
+ export declare const UpdateKnowledgeBaseSchema: z.ZodObject<{
17
+ name: z.ZodOptional<z.ZodString>;
18
+ description: z.ZodOptional<z.ZodString>;
22
19
  }, z.core.$strip>;
23
- export type KnowledgeBaseMetadata = z.infer<typeof KnowledgeBaseMetadataSchema>;
24
- export declare const LiteratureMetadataSchema: z.ZodObject<{
25
- id: z.ZodUUID;
26
- title: z.ZodString;
27
- titleTranslation: z.ZodNullable<z.ZodString>;
28
- author: z.ZodNullable<z.ZodString>;
29
- abstract: z.ZodNullable<z.ZodString>;
30
- summary: z.ZodNullable<z.ZodString>;
31
- keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
32
- url: z.ZodNullable<z.ZodURL>;
33
- notes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
34
- knowledgeBaseId: z.ZodUUID;
35
- createdAt: z.ZodDate;
36
- updatedAt: z.ZodDate;
37
- }, z.core.$strip>;
38
- export type LiteratureMetadata = z.infer<typeof LiteratureMetadataSchema>;
20
+ export type UpdateKnowledgeBaseInput = z.infer<typeof UpdateKnowledgeBaseSchema>;
39
21
  export declare const CreateLiteratureSchema: z.ZodObject<{
40
- url: z.ZodNullable<z.ZodURL>;
41
22
  title: z.ZodString;
42
23
  titleTranslation: z.ZodNullable<z.ZodString>;
43
24
  author: z.ZodNullable<z.ZodString>;
44
25
  abstract: z.ZodNullable<z.ZodString>;
45
26
  summary: z.ZodNullable<z.ZodString>;
46
27
  keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
28
+ url: z.ZodNullable<z.ZodURL>;
29
+ doi: z.ZodNullable<z.ZodString>;
47
30
  notes: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
48
31
  knowledgeBaseId: z.ZodUUID;
49
32
  }, z.core.$strip>;
50
33
  export type CreateLiteratureInput = z.infer<typeof CreateLiteratureSchema>;
51
34
  export declare const UpdateLiteratureSchema: z.ZodObject<{
52
- url: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
53
35
  title: z.ZodOptional<z.ZodString>;
54
36
  titleTranslation: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
37
  author: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
38
  abstract: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
39
  summary: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
40
  keywords: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
41
+ url: z.ZodOptional<z.ZodNullable<z.ZodURL>>;
42
+ doi: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
43
  notes: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>>;
60
44
  knowledgeBaseId: z.ZodOptional<z.ZodUUID>;
61
45
  }, z.core.$strip>;
@@ -8,18 +8,13 @@ export const EmbeddingModelConfigSchema = z.object({
8
8
  dimensions: z.number().int().positive().optional(),
9
9
  batchSize: z.number().int().positive().optional(),
10
10
  });
11
- // ─── Knowledge Base ─────────────────────────────────────────
12
- export const KnowledgeBaseMetadataSchema = z.object({
13
- id: z.uuid(),
14
- name: z.string().min(1),
15
- description: z.string(),
16
- embeddingModelId: z.string().min(1),
17
- createdAt: z.date(),
18
- updatedAt: z.date(),
11
+ // ─── Knowledge Base Input ───────────────────────────────────
12
+ export const UpdateKnowledgeBaseSchema = z.object({
13
+ name: z.string().min(1).optional(),
14
+ description: z.string().optional(),
19
15
  });
20
- // ─── Literature ─────────────────────────────────────────────
21
- export const LiteratureMetadataSchema = z.object({
22
- id: z.uuid(),
16
+ // ─── Literature Input ───────────────────────────────────────
17
+ export const CreateLiteratureSchema = z.object({
23
18
  title: z.string().min(1),
24
19
  titleTranslation: z.string().nullable(),
25
20
  author: z.string().nullable(),
@@ -27,15 +22,9 @@ export const LiteratureMetadataSchema = z.object({
27
22
  summary: z.string().nullable(),
28
23
  keywords: z.array(z.string()).default([]),
29
24
  url: z.url().nullable(),
25
+ doi: z.string().nullable(),
30
26
  notes: z.record(z.string(), z.string()).default({}),
31
27
  knowledgeBaseId: z.uuid(),
32
- createdAt: z.date(),
33
- updatedAt: z.date(),
34
- });
35
- export const CreateLiteratureSchema = LiteratureMetadataSchema.omit({
36
- id: true,
37
- createdAt: true,
38
- updatedAt: true,
39
28
  });
40
29
  export const UpdateLiteratureSchema = CreateLiteratureSchema.partial();
41
30
  // ─── Config ─────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAMzB,+DAA+D;AAE/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAMH,+DAA+D;AAE/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAIH,+DAA+D;AAE/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,eAAe,EAAE,CAAC,CAAC,IAAI,EAAE;CAC1B,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,OAAO,EAAE,CAAC;AAIvE,+DAA+D;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpF,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { ConfigSchema, CreateLiteratureSchema, EmbeddingModelConfigSchema, KnowledgeBaseMetadataSchema, LiteratureMetadataSchema, UpdateLiteratureSchema, } from "./index.js";
2
+ import { ConfigSchema, CreateLiteratureSchema, EmbeddingModelConfigSchema, UpdateLiteratureSchema, } from "./index.js";
3
3
  // ─── Helpers ─────────────────────────────────────────────────
4
4
  const validUuid = "550e8400-e29b-41d4-a716-446655440000";
5
- const now = new Date();
6
5
  // ─── EmbeddingModelConfigSchema ──────────────────────────────
7
6
  describe("EmbeddingModelConfigSchema", () => {
8
7
  const minimal = { provider: "openai", model: "text-embedding-3-small", apiKey: "sk-test" };
@@ -32,87 +31,31 @@ describe("EmbeddingModelConfigSchema", () => {
32
31
  expect(() => EmbeddingModelConfigSchema.parse({ ...minimal, baseUrl: "not-a-url" })).toThrow();
33
32
  });
34
33
  });
35
- // ─── KnowledgeBaseMetadataSchema ─────────────────────────────
36
- describe("KnowledgeBaseMetadataSchema", () => {
37
- const valid = {
38
- id: validUuid,
39
- name: "My KB",
40
- description: "A test knowledge base",
41
- embeddingModelId: "model-1",
42
- createdAt: now,
43
- updatedAt: now,
44
- };
45
- it("accepts a valid knowledge base", () => {
46
- expect(KnowledgeBaseMetadataSchema.parse(valid)).toMatchObject(valid);
47
- });
48
- it("rejects non-uuid id", () => {
49
- expect(() => KnowledgeBaseMetadataSchema.parse({ ...valid, id: "not-a-uuid" })).toThrow();
50
- });
51
- it("rejects empty name", () => {
52
- expect(() => KnowledgeBaseMetadataSchema.parse({ ...valid, name: "" })).toThrow();
53
- });
54
- it("rejects empty embeddingModelId", () => {
55
- expect(() => KnowledgeBaseMetadataSchema.parse({ ...valid, embeddingModelId: "" })).toThrow();
56
- });
57
- });
58
- // ─── LiteratureMetadataSchema ────────────────────────────────
59
- describe("LiteratureMetadataSchema", () => {
60
- const valid = {
61
- id: validUuid,
62
- title: "A Paper",
34
+ // ─── CreateLiteratureSchema ──────────────────────────────────
35
+ describe("CreateLiteratureSchema", () => {
36
+ const base = {
37
+ title: "Paper",
63
38
  titleTranslation: null,
64
39
  author: null,
65
40
  abstract: null,
66
41
  summary: null,
67
- keywords: [],
68
- url: null,
69
- notes: {},
70
42
  knowledgeBaseId: validUuid,
71
- createdAt: now,
72
- updatedAt: now,
43
+ url: null,
44
+ doi: null,
73
45
  };
74
- it("accepts a minimal valid literature", () => {
75
- expect(LiteratureMetadataSchema.parse(valid)).toMatchObject(valid);
46
+ it("does not require id, createdAt, updatedAt", () => {
47
+ expect(() => CreateLiteratureSchema.parse(base)).not.toThrow();
76
48
  });
77
49
  it("fills defaults for keywords and notes", () => {
78
- const { keywords: _, notes: __, ...without } = valid;
79
- const result = LiteratureMetadataSchema.parse(without);
50
+ const result = CreateLiteratureSchema.parse(base);
80
51
  expect(result.keywords).toEqual([]);
81
52
  expect(result.notes).toEqual({});
82
53
  });
83
- it("accepts populated optional fields", () => {
84
- const full = {
85
- ...valid,
86
- titleTranslation: "一篇论文",
87
- author: "Alice",
88
- abstract: "This paper...",
89
- summary: "Summary here",
90
- keywords: ["ai", "ml"],
91
- url: "https://arxiv.org/abs/1234.5678",
92
- notes: { key: "value" },
93
- };
94
- expect(LiteratureMetadataSchema.parse(full)).toMatchObject(full);
95
- });
96
54
  it("rejects empty title", () => {
97
- expect(() => LiteratureMetadataSchema.parse({ ...valid, title: "" })).toThrow();
55
+ expect(() => CreateLiteratureSchema.parse({ ...base, title: "" })).toThrow();
98
56
  });
99
57
  it("rejects invalid url", () => {
100
- expect(() => LiteratureMetadataSchema.parse({ ...valid, url: "not-a-url" })).toThrow();
101
- });
102
- });
103
- // ─── CreateLiteratureSchema ──────────────────────────────────
104
- describe("CreateLiteratureSchema", () => {
105
- it("does not require id, createdAt, updatedAt", () => {
106
- const input = {
107
- title: "New Paper",
108
- titleTranslation: null,
109
- author: null,
110
- abstract: null,
111
- summary: null,
112
- knowledgeBaseId: validUuid,
113
- url: null,
114
- };
115
- expect(() => CreateLiteratureSchema.parse(input)).not.toThrow();
58
+ expect(() => CreateLiteratureSchema.parse({ ...base, url: "not-a-url" })).toThrow();
116
59
  });
117
60
  });
118
61
  // ─── UpdateLiteratureSchema ──────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/types/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/types/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,gEAAgE;AAEhE,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEzD,gEAAgE;AAEhE,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAE3F,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,IAAI,GAAG;YACX,GAAG,OAAO;YACV,OAAO,EAAE,yBAAyB;YAClC,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,GAAG;SACf,CAAC;QACF,MAAM,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAClG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,OAAO;QACd,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,SAAS;QAC1B,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,IAAI;KACV,CAAC;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;YACvE,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG;YACb,eAAe,EAAE;gBACf,SAAS,EAAE;oBACT,QAAQ,EAAE,QAAiB;oBAC3B,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,SAAS;iBAClB;aACF;YACD,uBAAuB,EAAE,SAAS;SACnC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CACV,YAAY,CAAC,KAAK,CAAC;YACjB,eAAe,EAAE;gBACf,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aACpD;SACF,CAAC,CACH,CAAC,OAAO,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paper-manager",
3
- "version": "0.4.2",
3
+ "version": "0.6.0",
4
4
  "description": "A paper management system.",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/EurFelux/paper-manager",
@@ -29,6 +29,7 @@
29
29
  "chalk": "^5.6.2",
30
30
  "cli-progress": "^3.12.0",
31
31
  "commander": "^14.0.3",
32
+ "drizzle-orm": "^0.45.1",
32
33
  "faiss-node": "^0.5.1",
33
34
  "langchain": "^1.2.28",
34
35
  "mime-types": "^3.0.2",
@@ -40,6 +41,7 @@
40
41
  "@types/better-sqlite3": "^7.6.13",
41
42
  "@types/cli-progress": "^3.11.6",
42
43
  "@types/mime-types": "^3.0.1",
44
+ "drizzle-kit": "^0.31.9",
43
45
  "eslint-plugin-simple-import-sort": "^12.1.1",
44
46
  "oxfmt": "^0.35.0",
45
47
  "oxlint": "^1.50.0",