@docubook/core 1.6.1 → 1.6.2

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=compile.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/compile.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,122 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { preProcess, postProcess, createDefaultRehypePlugins, createDefaultRemarkPlugins, parseMdx, } from "../compile";
3
+ function buildPreTree(lang, code) {
4
+ return {
5
+ type: "element",
6
+ tagName: "pre",
7
+ properties: {},
8
+ children: [
9
+ {
10
+ type: "element",
11
+ tagName: "code",
12
+ properties: { className: [`language-${lang}`] },
13
+ children: [{ type: "text", value: code }],
14
+ },
15
+ ],
16
+ };
17
+ }
18
+ describe("preProcess", () => {
19
+ it("extracts raw code and language from pre>code", () => {
20
+ const tree = buildPreTree("typescript", "const x = 1");
21
+ preProcess()(tree);
22
+ const el = tree;
23
+ expect(el.raw).toBe("const x = 1");
24
+ expect(el.language).toBe("typescript");
25
+ });
26
+ it("handles language with colon suffix (title)", () => {
27
+ const tree = buildPreTree("js:app.js", "console.log('hi')");
28
+ preProcess()(tree);
29
+ const el = tree;
30
+ expect(el.language).toBe("js");
31
+ });
32
+ it("skips non-pre elements", () => {
33
+ const tree = {
34
+ type: "element",
35
+ tagName: "div",
36
+ properties: {},
37
+ children: [],
38
+ };
39
+ preProcess()(tree);
40
+ expect(tree.raw).toBeUndefined();
41
+ });
42
+ });
43
+ describe("postProcess", () => {
44
+ it("copies raw and language to properties", () => {
45
+ const tree = {
46
+ type: "element",
47
+ tagName: "pre",
48
+ properties: {},
49
+ raw: "const x = 1",
50
+ language: "ts",
51
+ codeTitle: "example.ts",
52
+ children: [],
53
+ };
54
+ postProcess()(tree);
55
+ const el = tree;
56
+ expect(el.properties?.raw).toBe("const x = 1");
57
+ expect(el.properties?.["data-language"]).toBe("ts");
58
+ expect(el.properties?.["data-title"]).toBe("example.ts");
59
+ });
60
+ it("does not overwrite existing data-language", () => {
61
+ const tree = {
62
+ type: "element",
63
+ tagName: "pre",
64
+ properties: { "data-language": "python" },
65
+ language: "ts",
66
+ children: [],
67
+ };
68
+ postProcess()(tree);
69
+ expect(tree.properties?.["data-language"]).toBe("python");
70
+ });
71
+ });
72
+ describe("createDefaultRehypePlugins", () => {
73
+ it("returns an array of plugins", () => {
74
+ const plugins = createDefaultRehypePlugins();
75
+ expect(Array.isArray(plugins)).toBe(true);
76
+ expect(plugins.length).toBeGreaterThan(0);
77
+ });
78
+ });
79
+ describe("createDefaultRemarkPlugins", () => {
80
+ it("returns an array of plugins", () => {
81
+ const plugins = createDefaultRemarkPlugins();
82
+ expect(Array.isArray(plugins)).toBe(true);
83
+ expect(plugins.length).toBeGreaterThan(0);
84
+ });
85
+ });
86
+ describe("parseMdx", () => {
87
+ it("compiles basic MDX with frontmatter", async () => {
88
+ const mdx = `---
89
+ title: Test
90
+ ---
91
+
92
+ ## Hello World`;
93
+ const result = await parseMdx(mdx);
94
+ expect(result.frontmatter.title).toBe("Test");
95
+ expect(result.content).toBeDefined();
96
+ });
97
+ it("compiles MDX without frontmatter when disabled", async () => {
98
+ const mdx = `## Just Content`;
99
+ const result = await parseMdx(mdx, { parseFrontmatter: false });
100
+ expect(result.content).toBeDefined();
101
+ });
102
+ it("compiles code blocks with language", async () => {
103
+ const mdx = `---
104
+ title: Code
105
+ ---
106
+
107
+ \`\`\`typescript
108
+ const x: number = 1
109
+ \`\`\``;
110
+ const result = await parseMdx(mdx);
111
+ expect(result.frontmatter.title).toBe("Code");
112
+ expect(result.content).toBeDefined();
113
+ });
114
+ it("applies GFM (tables)", async () => {
115
+ const mdx = `| A | B |
116
+ | - | - |
117
+ | 1 | 2 |`;
118
+ const result = await parseMdx(mdx, { parseFrontmatter: false });
119
+ expect(result.content).toBeDefined();
120
+ });
121
+ });
122
+ //# sourceMappingURL=compile.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../../src/__tests__/compile.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=content.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/content.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import path from "path";
3
+ import { readMdxFileBySlug, parseMdxFile, compileParsedMdxFile, createMdxContentService, } from "../content";
4
+ const FIXTURES_ROOT = path.resolve(__dirname, "__fixtures__");
5
+ describe("readMdxFileBySlug", () => {
6
+ it("reads flat slug (getting-started.mdx)", async () => {
7
+ const result = await readMdxFileBySlug("getting-started", {
8
+ rootDir: FIXTURES_ROOT,
9
+ });
10
+ expect(result.content).toContain("title: Getting Started");
11
+ expect(result.filePath).toBe("docs/getting-started.mdx");
12
+ });
13
+ it("reads nested slug via index.mdx (guide/index.mdx)", async () => {
14
+ const result = await readMdxFileBySlug("guide", {
15
+ rootDir: FIXTURES_ROOT,
16
+ });
17
+ expect(result.content).toContain("title: Guide Overview");
18
+ expect(result.filePath).toBe("docs/guide/index.mdx");
19
+ });
20
+ it("reads root slug as index.mdx", async () => {
21
+ const result = await readMdxFileBySlug("", {
22
+ rootDir: FIXTURES_ROOT,
23
+ });
24
+ expect(result.content).toContain("title: Home");
25
+ expect(result.filePath).toBe("docs/index.mdx");
26
+ });
27
+ it("throws on non-existent slug", async () => {
28
+ await expect(readMdxFileBySlug("does-not-exist", { rootDir: FIXTURES_ROOT })).rejects.toThrow("Could not find mdx file");
29
+ });
30
+ it("rejects path traversal attempts", async () => {
31
+ await expect(readMdxFileBySlug("../../etc/passwd", { rootDir: FIXTURES_ROOT })).rejects.toThrow("Could not find mdx file");
32
+ });
33
+ });
34
+ describe("parseMdxFile", () => {
35
+ it("extracts frontmatter and tocs", async () => {
36
+ const raw = await readMdxFileBySlug("getting-started", {
37
+ rootDir: FIXTURES_ROOT,
38
+ });
39
+ const parsed = parseMdxFile(raw);
40
+ expect(parsed.frontmatter.title).toBe("Getting Started");
41
+ expect(parsed.frontmatter.description).toBe("Quick start guide");
42
+ expect(parsed.tocs.length).toBeGreaterThan(0);
43
+ expect(parsed.tocs[0].text).toBe("Installation");
44
+ expect(parsed.tocs[0].href).toBe("#installation");
45
+ });
46
+ it("strips frontmatter from content", async () => {
47
+ const raw = await readMdxFileBySlug("getting-started", {
48
+ rootDir: FIXTURES_ROOT,
49
+ });
50
+ const parsed = parseMdxFile(raw);
51
+ expect(parsed.content).not.toContain("---");
52
+ expect(parsed.content).toContain("## Installation");
53
+ });
54
+ it("supports custom tocsExtractor", async () => {
55
+ const raw = await readMdxFileBySlug("getting-started", {
56
+ rootDir: FIXTURES_ROOT,
57
+ });
58
+ const parsed = parseMdxFile(raw, {
59
+ tocsExtractor: () => [{ level: 1, text: "Custom", href: "#custom" }],
60
+ });
61
+ expect(parsed.tocs).toEqual([{ level: 1, text: "Custom", href: "#custom" }]);
62
+ });
63
+ });
64
+ describe("compileParsedMdxFile", () => {
65
+ it("compiles parsed MDX to React content", async () => {
66
+ const raw = await readMdxFileBySlug("getting-started", {
67
+ rootDir: FIXTURES_ROOT,
68
+ });
69
+ const parsed = parseMdxFile(raw);
70
+ const compiled = await compileParsedMdxFile(parsed);
71
+ expect(compiled.content).toBeDefined();
72
+ expect(compiled.frontmatter.title).toBe("Getting Started");
73
+ expect(compiled.tocs.length).toBeGreaterThan(0);
74
+ expect(compiled.filePath).toBe("docs/getting-started.mdx");
75
+ });
76
+ });
77
+ describe("createMdxContentService", () => {
78
+ const service = createMdxContentService({
79
+ readOptions: { rootDir: FIXTURES_ROOT },
80
+ });
81
+ it("getParsedForSlug returns parsed data", async () => {
82
+ const parsed = await service.getParsedForSlug("getting-started");
83
+ expect(parsed.frontmatter.title).toBe("Getting Started");
84
+ expect(parsed.tocs.length).toBeGreaterThan(0);
85
+ });
86
+ it("getFrontmatterForSlug returns frontmatter only", async () => {
87
+ const fm = await service.getFrontmatterForSlug("guide");
88
+ expect(fm.title).toBe("Guide Overview");
89
+ });
90
+ it("getTocsForSlug returns tocs only", async () => {
91
+ const tocs = await service.getTocsForSlug("getting-started");
92
+ expect(tocs[0].text).toBe("Installation");
93
+ expect(tocs[1].text).toBe("Usage");
94
+ });
95
+ it("getCompiledForSlug returns compiled result", async () => {
96
+ const compiled = await service.getCompiledForSlug("getting-started");
97
+ expect(compiled.content).toBeDefined();
98
+ expect(compiled.frontmatter.title).toBe("Getting Started");
99
+ });
100
+ it("supports frontmatterEnricher", async () => {
101
+ const enrichedService = createMdxContentService({
102
+ readOptions: { rootDir: FIXTURES_ROOT },
103
+ frontmatterEnricher: (fm) => ({ ...fm, enriched: true }),
104
+ });
105
+ const parsed = await enrichedService.getParsedForSlug("getting-started");
106
+ expect(parsed.frontmatter.enriched).toBe(true);
107
+ });
108
+ });
109
+ //# sourceMappingURL=content.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.test.js","sourceRoot":"","sources":["../../src/__tests__/content.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docubook/core",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Shared MDX compile pipeline and markdown utilities for DocuBook",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,6 +17,7 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "tsc -p tsconfig.json",
20
+ "test": "vitest run",
20
21
  "clean": "rm -rf dist",
21
22
  "prepublishOnly": "pnpm run clean && pnpm run build"
22
23
  },