living-documentation 3.2.0 → 3.4.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.
Potentially problematic release.
This version of living-documentation might be problematic. Click here for more details.
- package/dist/bin/cli.js +7 -7
- package/dist/src/frontend/diagram.html +1183 -0
- package/dist/src/frontend/index.html +1051 -735
- package/dist/src/routes/diagrams.d.ts +3 -0
- package/dist/src/routes/diagrams.d.ts.map +1 -0
- package/dist/src/routes/diagrams.js +66 -0
- package/dist/src/routes/diagrams.js.map +1 -0
- package/dist/src/routes/documents.d.ts +1 -1
- package/dist/src/routes/documents.d.ts.map +1 -1
- package/dist/src/routes/documents.js +46 -40
- package/dist/src/routes/documents.js.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +3 -0
- package/dist/src/server.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagrams.d.ts","sourceRoot":"","sources":["../../../src/routes/diagrams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA8CjC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyCvD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.diagramsRouter = diagramsRouter;
|
|
7
|
+
const express_1 = require("express");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
function diagramsFilePath(docsPath) {
|
|
11
|
+
return path_1.default.join(docsPath, '.diagrams.json');
|
|
12
|
+
}
|
|
13
|
+
function loadDiagrams(docsPath) {
|
|
14
|
+
const filePath = diagramsFilePath(docsPath);
|
|
15
|
+
if (!fs_1.default.existsSync(filePath))
|
|
16
|
+
return [];
|
|
17
|
+
try {
|
|
18
|
+
return JSON.parse(fs_1.default.readFileSync(filePath, 'utf-8'));
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function saveDiagrams(docsPath, diagrams) {
|
|
25
|
+
fs_1.default.writeFileSync(diagramsFilePath(docsPath), JSON.stringify(diagrams, null, 2), 'utf-8');
|
|
26
|
+
}
|
|
27
|
+
function diagramsRouter(docsPath) {
|
|
28
|
+
const router = (0, express_1.Router)();
|
|
29
|
+
router.get('/', (_req, res) => {
|
|
30
|
+
const diagrams = loadDiagrams(docsPath);
|
|
31
|
+
res.json(diagrams.map(({ id, title }) => ({ id, title })));
|
|
32
|
+
});
|
|
33
|
+
router.get('/:id', (req, res) => {
|
|
34
|
+
const diagrams = loadDiagrams(docsPath);
|
|
35
|
+
const diagram = diagrams.find(d => d.id === req.params.id);
|
|
36
|
+
if (!diagram)
|
|
37
|
+
return res.status(404).json({ error: 'Not found' });
|
|
38
|
+
res.json(diagram);
|
|
39
|
+
});
|
|
40
|
+
router.put('/:id', (req, res) => {
|
|
41
|
+
const diagrams = loadDiagrams(docsPath);
|
|
42
|
+
const { title, nodes, edges } = req.body;
|
|
43
|
+
const diagram = {
|
|
44
|
+
id: req.params.id,
|
|
45
|
+
title: typeof title === 'string' ? title : 'Sans titre',
|
|
46
|
+
nodes: Array.isArray(nodes) ? nodes : [],
|
|
47
|
+
edges: Array.isArray(edges) ? edges : [],
|
|
48
|
+
};
|
|
49
|
+
const idx = diagrams.findIndex(d => d.id === req.params.id);
|
|
50
|
+
if (idx >= 0) {
|
|
51
|
+
diagrams[idx] = diagram;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
diagrams.push(diagram);
|
|
55
|
+
}
|
|
56
|
+
saveDiagrams(docsPath, diagrams);
|
|
57
|
+
res.json(diagram);
|
|
58
|
+
});
|
|
59
|
+
router.delete('/:id', (req, res) => {
|
|
60
|
+
const diagrams = loadDiagrams(docsPath);
|
|
61
|
+
saveDiagrams(docsPath, diagrams.filter(d => d.id !== req.params.id));
|
|
62
|
+
res.json({ ok: true });
|
|
63
|
+
});
|
|
64
|
+
return router;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=diagrams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagrams.js","sourceRoot":"","sources":["../../../src/routes/diagrams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AA4EpD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoJxD"}
|
|
@@ -13,13 +13,13 @@ const config_1 = require("../lib/config");
|
|
|
13
13
|
function collectMdFiles(dir, baseDir) {
|
|
14
14
|
const results = [];
|
|
15
15
|
for (const entry of fs_1.default.readdirSync(dir, { withFileTypes: true })) {
|
|
16
|
-
if (entry.name.startsWith(
|
|
16
|
+
if (entry.name.startsWith("."))
|
|
17
17
|
continue;
|
|
18
18
|
const fullPath = path_1.default.join(dir, entry.name);
|
|
19
19
|
if (entry.isDirectory()) {
|
|
20
20
|
results.push(...collectMdFiles(fullPath, baseDir));
|
|
21
21
|
}
|
|
22
|
-
else if (entry.isFile() && entry.name.toLowerCase().endsWith(
|
|
22
|
+
else if (entry.isFile() && entry.name.toLowerCase().endsWith(".md")) {
|
|
23
23
|
results.push(path_1.default.relative(baseDir, fullPath));
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -29,14 +29,14 @@ function listDocs(docsPath, extraFiles = [], filenamePattern) {
|
|
|
29
29
|
// Extra files first, in config order, always General
|
|
30
30
|
const extraDocs = [];
|
|
31
31
|
for (const filePath of extraFiles) {
|
|
32
|
-
if (!filePath.endsWith(
|
|
32
|
+
if (!filePath.endsWith(".md") || !fs_1.default.existsSync(filePath))
|
|
33
33
|
continue;
|
|
34
34
|
const filename = path_1.default.basename(filePath);
|
|
35
35
|
const meta = (0, parser_1.parseFilename)(filename, filenamePattern);
|
|
36
36
|
extraDocs.push({
|
|
37
37
|
...meta,
|
|
38
38
|
id: encodeURIComponent(filePath.slice(0, -3)),
|
|
39
|
-
category:
|
|
39
|
+
category: "General",
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
// Regular docs: recursive scan, sorted by relative path
|
|
@@ -45,8 +45,8 @@ function listDocs(docsPath, extraFiles = [], filenamePattern) {
|
|
|
45
45
|
const subdir = path_1.default.dirname(relPath);
|
|
46
46
|
const meta = (0, parser_1.parseFilename)(filename, filenamePattern);
|
|
47
47
|
const id = encodeURIComponent(relPath.slice(0, -3));
|
|
48
|
-
const category = meta.category ===
|
|
49
|
-
? subdir.replace(/[_-]+/g,
|
|
48
|
+
const category = meta.category === "General" && subdir !== "."
|
|
49
|
+
? subdir.replace(/[_-]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase())
|
|
50
50
|
: meta.category;
|
|
51
51
|
return { ...meta, id, filename: relPath, category };
|
|
52
52
|
});
|
|
@@ -62,7 +62,7 @@ function safeFilePath(docsPath, filename) {
|
|
|
62
62
|
function resolveDocPath(docsPath, doc, extraFiles) {
|
|
63
63
|
const id = decodeURIComponent(doc.id);
|
|
64
64
|
if (path_1.default.isAbsolute(id)) {
|
|
65
|
-
const filePath = id +
|
|
65
|
+
const filePath = id + ".md";
|
|
66
66
|
return extraFiles.includes(filePath) ? filePath : null;
|
|
67
67
|
}
|
|
68
68
|
return safeFilePath(docsPath, doc.filename);
|
|
@@ -70,18 +70,18 @@ function resolveDocPath(docsPath, doc, extraFiles) {
|
|
|
70
70
|
function documentsRouter(docsPath) {
|
|
71
71
|
const router = (0, express_1.Router)();
|
|
72
72
|
// GET /api/documents — list all docs with metadata
|
|
73
|
-
router.get(
|
|
73
|
+
router.get("/", (_req, res) => {
|
|
74
74
|
try {
|
|
75
75
|
const { extraFiles = [], filenamePattern } = (0, config_1.readConfig)(docsPath);
|
|
76
76
|
res.json(listDocs(docsPath, extraFiles, filenamePattern));
|
|
77
77
|
}
|
|
78
78
|
catch {
|
|
79
|
-
res.status(500).json({ error:
|
|
79
|
+
res.status(500).json({ error: "Failed to list documents" });
|
|
80
80
|
}
|
|
81
81
|
});
|
|
82
82
|
// GET /api/documents/search?q=query — full-text search
|
|
83
|
-
router.get(
|
|
84
|
-
const query = (req.query.q ??
|
|
83
|
+
router.get("/search", (req, res) => {
|
|
84
|
+
const query = (req.query.q ?? "").toLowerCase().trim();
|
|
85
85
|
if (!query)
|
|
86
86
|
return res.json([]);
|
|
87
87
|
try {
|
|
@@ -92,20 +92,20 @@ function documentsRouter(docsPath) {
|
|
|
92
92
|
const filePath = resolveDocPath(docsPath, doc, extraFiles);
|
|
93
93
|
if (!filePath || !fs_1.default.existsSync(filePath))
|
|
94
94
|
continue;
|
|
95
|
-
const content = fs_1.default.readFileSync(filePath,
|
|
95
|
+
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
96
96
|
const inTitle = doc.title.toLowerCase().includes(query);
|
|
97
97
|
const inCategory = doc.category.toLowerCase().includes(query);
|
|
98
98
|
const inContent = content.toLowerCase().includes(query);
|
|
99
99
|
if (inTitle || inCategory || inContent) {
|
|
100
|
-
let excerpt =
|
|
100
|
+
let excerpt = "";
|
|
101
101
|
if (inContent) {
|
|
102
102
|
const idx = content.toLowerCase().indexOf(query);
|
|
103
103
|
const start = Math.max(0, idx - 60);
|
|
104
104
|
const end = Math.min(content.length, idx + query.length + 90);
|
|
105
105
|
excerpt =
|
|
106
|
-
(start > 0 ?
|
|
107
|
-
content.slice(start, end).replace(/\n+/g,
|
|
108
|
-
(end < content.length ?
|
|
106
|
+
(start > 0 ? "…" : "") +
|
|
107
|
+
content.slice(start, end).replace(/\n+/g, " ").trim() +
|
|
108
|
+
(end < content.length ? "…" : "");
|
|
109
109
|
}
|
|
110
110
|
results.push({ ...doc, excerpt });
|
|
111
111
|
}
|
|
@@ -113,86 +113,92 @@ function documentsRouter(docsPath) {
|
|
|
113
113
|
res.json(results);
|
|
114
114
|
}
|
|
115
115
|
catch {
|
|
116
|
-
res.status(500).json({ error:
|
|
116
|
+
res.status(500).json({ error: "Search failed" });
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
// GET /api/documents/:id — get a single document (content + rendered HTML)
|
|
120
|
-
router.get(
|
|
120
|
+
router.get("/:id", async (req, res) => {
|
|
121
121
|
const id = decodeURIComponent(req.params.id);
|
|
122
122
|
const { extraFiles = [], filenamePattern } = (0, config_1.readConfig)(docsPath);
|
|
123
123
|
// Extra file: id is an absolute path without .md
|
|
124
124
|
if (path_1.default.isAbsolute(id)) {
|
|
125
|
-
const filePath = id +
|
|
125
|
+
const filePath = id + ".md";
|
|
126
126
|
if (!extraFiles.includes(filePath)) {
|
|
127
|
-
return res.status(403).json({ error:
|
|
127
|
+
return res.status(403).json({ error: "Access denied" });
|
|
128
128
|
}
|
|
129
129
|
if (!fs_1.default.existsSync(filePath)) {
|
|
130
|
-
return res.status(404).json({ error:
|
|
130
|
+
return res.status(404).json({ error: "Document not found" });
|
|
131
131
|
}
|
|
132
132
|
try {
|
|
133
|
-
const content = fs_1.default.readFileSync(filePath,
|
|
133
|
+
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
134
134
|
const meta = (0, parser_1.parseFilename)(path_1.default.basename(filePath), filenamePattern);
|
|
135
135
|
const html = marked_1.marked.parse(content);
|
|
136
|
-
res.json({
|
|
136
|
+
res.json({
|
|
137
|
+
...meta,
|
|
138
|
+
id: req.params.id,
|
|
139
|
+
category: "General",
|
|
140
|
+
content,
|
|
141
|
+
html,
|
|
142
|
+
});
|
|
137
143
|
}
|
|
138
144
|
catch {
|
|
139
|
-
res.status(500).json({ error:
|
|
145
|
+
res.status(500).json({ error: "Failed to read document" });
|
|
140
146
|
}
|
|
141
147
|
return;
|
|
142
148
|
}
|
|
143
149
|
// Normal file inside docsPath
|
|
144
|
-
const filename = id +
|
|
150
|
+
const filename = id + ".md";
|
|
145
151
|
const filePath = safeFilePath(docsPath, filename);
|
|
146
152
|
if (!filePath) {
|
|
147
|
-
return res.status(403).json({ error:
|
|
153
|
+
return res.status(403).json({ error: "Access denied" });
|
|
148
154
|
}
|
|
149
155
|
if (!fs_1.default.existsSync(filePath)) {
|
|
150
|
-
return res.status(404).json({ error:
|
|
156
|
+
return res.status(404).json({ error: "Document not found" });
|
|
151
157
|
}
|
|
152
158
|
try {
|
|
153
|
-
const content = fs_1.default.readFileSync(filePath,
|
|
159
|
+
const content = fs_1.default.readFileSync(filePath, "utf-8");
|
|
154
160
|
const metadata = (0, parser_1.parseFilename)(filename, filenamePattern);
|
|
155
161
|
const html = marked_1.marked.parse(content);
|
|
156
162
|
res.json({ ...metadata, content, html });
|
|
157
163
|
}
|
|
158
164
|
catch {
|
|
159
|
-
res.status(500).json({ error:
|
|
165
|
+
res.status(500).json({ error: "Failed to read document" });
|
|
160
166
|
}
|
|
161
167
|
});
|
|
162
168
|
// PUT /api/documents/:id — update document content
|
|
163
|
-
router.put(
|
|
169
|
+
router.put("/:id", (req, res) => {
|
|
164
170
|
const id = decodeURIComponent(req.params.id);
|
|
165
171
|
const { content } = req.body;
|
|
166
|
-
if (typeof content !==
|
|
167
|
-
return res.status(400).json({ error:
|
|
172
|
+
if (typeof content !== "string") {
|
|
173
|
+
return res.status(400).json({ error: "content is required" });
|
|
168
174
|
}
|
|
169
175
|
const { extraFiles = [] } = (0, config_1.readConfig)(docsPath);
|
|
170
176
|
// Extra file: id is an absolute path without .md
|
|
171
177
|
if (path_1.default.isAbsolute(id)) {
|
|
172
|
-
const filePath = id +
|
|
178
|
+
const filePath = id + ".md";
|
|
173
179
|
if (!extraFiles.includes(filePath)) {
|
|
174
|
-
return res.status(403).json({ error:
|
|
180
|
+
return res.status(403).json({ error: "Access denied" });
|
|
175
181
|
}
|
|
176
182
|
try {
|
|
177
|
-
fs_1.default.writeFileSync(filePath, content,
|
|
183
|
+
fs_1.default.writeFileSync(filePath, content, "utf-8");
|
|
178
184
|
return res.json({ ok: true });
|
|
179
185
|
}
|
|
180
186
|
catch {
|
|
181
|
-
return res.status(500).json({ error:
|
|
187
|
+
return res.status(500).json({ error: "Failed to write document" });
|
|
182
188
|
}
|
|
183
189
|
}
|
|
184
190
|
// Normal file inside docsPath
|
|
185
|
-
const filename = id +
|
|
191
|
+
const filename = id + ".md";
|
|
186
192
|
const filePath = safeFilePath(docsPath, filename);
|
|
187
193
|
if (!filePath) {
|
|
188
|
-
return res.status(403).json({ error:
|
|
194
|
+
return res.status(403).json({ error: "Access denied" });
|
|
189
195
|
}
|
|
190
196
|
try {
|
|
191
|
-
fs_1.default.writeFileSync(filePath, content,
|
|
197
|
+
fs_1.default.writeFileSync(filePath, content, "utf-8");
|
|
192
198
|
return res.json({ ok: true });
|
|
193
199
|
}
|
|
194
200
|
catch {
|
|
195
|
-
return res.status(500).json({ error:
|
|
201
|
+
return res.status(500).json({ error: "Failed to write document" });
|
|
196
202
|
}
|
|
197
203
|
});
|
|
198
204
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/routes/documents.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,WAAW,CAAC,EAChC,QAAQ,EACR,IAAI,EACJ,WAAmB,GACpB,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD/B"}
|
package/dist/src/server.js
CHANGED
|
@@ -11,6 +11,7 @@ const documents_1 = require("./routes/documents");
|
|
|
11
11
|
const config_1 = require("./routes/config");
|
|
12
12
|
const browse_1 = require("./routes/browse");
|
|
13
13
|
const images_1 = require("./routes/images");
|
|
14
|
+
const diagrams_1 = require("./routes/diagrams");
|
|
14
15
|
const config_2 = require("./lib/config");
|
|
15
16
|
async function startServer({ docsPath, port, openBrowser = false, }) {
|
|
16
17
|
const app = (0, express_1.default)();
|
|
@@ -22,6 +23,7 @@ async function startServer({ docsPath, port, openBrowser = false, }) {
|
|
|
22
23
|
app.use('/api/config', (0, config_1.configRouter)(docsPath));
|
|
23
24
|
app.use('/api/browse', (0, browse_1.browseRouter)());
|
|
24
25
|
app.use('/api/images', (0, images_1.imagesRouter)(docsPath));
|
|
26
|
+
app.use('/api/diagrams', (0, diagrams_1.diagramsRouter)(docsPath));
|
|
25
27
|
// Static frontend assets
|
|
26
28
|
const frontendPath = path_1.default.join(__dirname, 'frontend');
|
|
27
29
|
app.use(express_1.default.static(frontendPath));
|
|
@@ -29,6 +31,7 @@ async function startServer({ docsPath, port, openBrowser = false, }) {
|
|
|
29
31
|
app.use('/images', express_1.default.static(path_1.default.join(docsPath, 'images')));
|
|
30
32
|
app.get('/', (_req, res) => res.sendFile(path_1.default.join(frontendPath, 'index.html')));
|
|
31
33
|
app.get('/admin', (_req, res) => res.sendFile(path_1.default.join(frontendPath, 'admin.html')));
|
|
34
|
+
app.get('/diagram', (_req, res) => res.sendFile(path_1.default.join(frontendPath, 'diagram.html')));
|
|
32
35
|
return new Promise((resolve) => {
|
|
33
36
|
app.listen(port, () => {
|
|
34
37
|
const url = `http://localhost:${port}`;
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";;;;;AAgBA,kCAwDC;AAxED,sDAA8B;AAC9B,gDAAwB;AACxB,iDAAqC;AACrC,kDAAqD;AACrD,4CAA+C;AAC/C,4CAA+C;AAC/C,4CAA+C;AAC/C,gDAAmD;AACnD,yCAA2C;AAQpC,KAAK,UAAU,WAAW,CAAC,EAChC,QAAQ,EACR,IAAI,EACJ,WAAW,GAAG,KAAK,GACL;IACd,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAEzC,4CAA4C;IAC5C,IAAA,oBAAW,EAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,MAAM;IACN,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,qBAAY,GAAE,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,IAAA,yBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC;IAEnD,yBAAyB;IACzB,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAEtC,gDAAgD;IAChD,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAO,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAElE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CACzB,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CACpD,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAC9B,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CACpD,CAAC;IACF,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAChC,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CACtD,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACpB,MAAM,GAAG,GAAG,oBAAoB,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,QAAQ;QAAE,IAAA,oBAAI,EAAC,SAAS,GAAG,GAAG,CAAC,CAAC;SAC5C,IAAI,QAAQ,KAAK,OAAO;QAAE,IAAA,oBAAI,EAAC,aAAa,GAAG,GAAG,CAAC,CAAC;;QACpD,IAAA,oBAAI,EAAC,aAAa,GAAG,GAAG,CAAC,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "living-documentation",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "A CLI tool that serves a local Markdown documentation viewer",
|
|
5
5
|
"main": "dist/src/server.js",
|
|
6
6
|
"bin": {
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"README.md"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "tsc && node scripts/copy-assets.
|
|
14
|
+
"build": "tsc && ts-node scripts/copy-assets.ts && chmod +x dist/bin/cli.js",
|
|
15
15
|
"dev": "nodemon --watch src --watch bin --ext ts,html --exec 'ts-node bin/cli.ts'",
|
|
16
16
|
"start": "node dist/bin/cli.js",
|
|
17
17
|
"prepublishOnly": "npm run build"
|