mdts 0.5.1 → 0.7.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 (51) hide show
  1. package/dist/cli.js +5 -1
  2. package/dist/frontend/bundle.js +10202 -493
  3. package/dist/frontend/markdown.css +3 -3
  4. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_architecture-O4VJ6CD3_mjs.bundle.js +22 -0
  5. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_gitGraph-ZV4HHKMB_mjs.bundle.js +22 -0
  6. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_info-63CPKGFF_mjs.bundle.js +22 -0
  7. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_packet-HUATNLJX_mjs.bundle.js +22 -0
  8. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_pie-WTHONI2E_mjs.bundle.js +22 -0
  9. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_radar-NJJJXTRR_mjs.bundle.js +22 -0
  10. package/dist/frontend/node_modules_mermaid-js_parser_dist_chunks_mermaid-parser_core_treemap-75Q7IDZK_mjs.bundle.js +22 -0
  11. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_classDiagram-M3E45YP4_mjs.bundle.js +22 -0
  12. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_classDiagram-v2-YAWTLIQI_mjs.bundle.js +22 -0
  13. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_diagram-5UYTHUR4_mjs.bundle.js +32 -0
  14. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_infoDiagram-LHK5PUON_mjs.bundle.js +22 -0
  15. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_pieDiagram-NIOCPIFQ_mjs.bundle.js +32 -0
  16. package/dist/frontend/node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-v2-5AN5P6BG_mjs.bundle.js +22 -0
  17. package/dist/frontend/vendors-node_modules_cytoscape_dist_cytoscape_esm_mjs.bundle.js +22 -0
  18. package/dist/frontend/vendors-node_modules_dagre-d3-es_src_dagre_index_js.bundle.js +682 -0
  19. package/dist/frontend/vendors-node_modules_dagre-d3-es_src_graphlib_index_js.bundle.js +42 -0
  20. package/dist/frontend/vendors-node_modules_katex_dist_katex_mjs.bundle.js +22 -0
  21. package/dist/frontend/vendors-node_modules_lodash-es__baseClone_js-node_modules_lodash-es__baseFlatten_js-node_modu-64f2a5.bundle.js +852 -0
  22. package/dist/frontend/vendors-node_modules_lodash-es__basePickBy_js-node_modules_lodash-es__hasUnicode_js-node_modu-b1bc3b.bundle.js +232 -0
  23. package/dist/frontend/vendors-node_modules_mermaid-js_parser_dist_mermaid-parser_core_mjs.bundle.js +1582 -0
  24. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_architectureDiagram-SUXI7LT5_mjs.bundle.js +74 -0
  25. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_blockDiagram-6J76NXCF_mjs.bundle.js +52 -0
  26. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_c4Diagram-6F6E4RAY_mjs.bundle.js +32 -0
  27. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_chunk-OW32GOEJ_mjs.bundle.js +42 -0
  28. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_chunk-SZ463SBG_mjs.bundle.js +52 -0
  29. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_dagre-JOIXM2OF_mjs.bundle.js +42 -0
  30. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_diagram-VMROVX33_mjs.bundle.js +42 -0
  31. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_diagram-ZTM2IBQH_mjs.bundle.js +32 -0
  32. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_erDiagram-3M52JZNH_mjs.bundle.js +52 -0
  33. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_flowDiagram-KYDEHFYC_mjs.bundle.js +62 -0
  34. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_ganttDiagram-EK5VF46D_mjs.bundle.js +52 -0
  35. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-GW3U2K7C_mjs.bundle.js +42 -0
  36. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_journeyDiagram-EWQZEKCU_mjs.bundle.js +42 -0
  37. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_kanban-definition-ZSS6B67P_mjs.bundle.js +32 -0
  38. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_mindmap-definition-6CBA2TL7_mjs.bundle.js +52 -0
  39. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_quadrantDiagram-2OG54O6I_mjs.bundle.js +22 -0
  40. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_requirementDiagram-QOLK2EJ7_mjs.bundle.js +42 -0
  41. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_sankeyDiagram-4UZDY2LN_mjs.bundle.js +162 -0
  42. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_sequenceDiagram-SKLFT4DO_mjs.bundle.js +42 -0
  43. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_stateDiagram-MI5ZYTHO_mjs.bundle.js +22 -0
  44. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_timeline-definition-MYPXXCX6_mjs.bundle.js +22 -0
  45. package/dist/frontend/vendors-node_modules_mermaid_dist_chunks_mermaid_core_xychartDiagram-H2YORKM3_mjs.bundle.js +22 -0
  46. package/dist/server/routes/filetree.js +8 -8
  47. package/dist/server/routes/outline.js +23 -22
  48. package/dist/server/server.js +8 -73
  49. package/dist/server/watcher.js +136 -0
  50. package/dist/utils/logger.js +12 -0
  51. package/package.json +4 -3
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.setupWatcher = void 0;
40
+ const chokidar_1 = __importDefault(require("chokidar"));
41
+ const fs = __importStar(require("fs"));
42
+ const ws_1 = require("ws");
43
+ const logger_1 = require("../utils/logger");
44
+ let contentWatcher = null;
45
+ let currentWatchedFile = null;
46
+ const setupWatcher = (directory, server, port) => {
47
+ const wss = new ws_1.WebSocketServer({ server });
48
+ wss.on('listening', () => {
49
+ logger_1.logger.log(`🚀 WebSocket server listening at ws://localhost:${port}`);
50
+ });
51
+ wss.on('connection', (ws) => {
52
+ logger_1.logger.log('🤝 Livereload Client connected');
53
+ ws.on('message', (message) => handleWebSocketMessage(ws, message.toString()));
54
+ ws.on('close', () => handleWebSocketClose(wss));
55
+ ws.on('error', (e) => logger_1.logger.error('🚫 Error on WebSocket client:', e));
56
+ });
57
+ setupDirectoryWatcher(directory, wss);
58
+ };
59
+ exports.setupWatcher = setupWatcher;
60
+ const handleWebSocketMessage = (ws, message) => {
61
+ try {
62
+ const data = JSON.parse(message);
63
+ if (data.type === 'watch-file' && typeof data.filePath === 'string') {
64
+ setupContentWatcher(ws, data.filePath);
65
+ }
66
+ }
67
+ catch (e) {
68
+ logger_1.logger.error('🚫 Error parsing WebSocket message:', e);
69
+ }
70
+ };
71
+ const handleWebSocketClose = (wss) => {
72
+ logger_1.logger.log('👋 Livereload Client closed');
73
+ if (wss.clients.size === 0) {
74
+ contentWatcher === null || contentWatcher === void 0 ? void 0 : contentWatcher.close();
75
+ contentWatcher = null;
76
+ currentWatchedFile = null;
77
+ }
78
+ };
79
+ const setupDirectoryWatcher = (directory, wss) => {
80
+ try {
81
+ const watcher = chokidar_1.default.watch(directory, {
82
+ ignored: (watchedFilePath) => {
83
+ if (watchedFilePath.includes('node_modules')) {
84
+ return true;
85
+ }
86
+ try {
87
+ if (fs.statSync(watchedFilePath).isDirectory()) {
88
+ return false;
89
+ }
90
+ }
91
+ catch (_a) {
92
+ return false;
93
+ }
94
+ return !isMarkdownOrSimpleAsset(watchedFilePath);
95
+ },
96
+ ignoreInitial: true,
97
+ });
98
+ watcher.on('add', (filePath) => {
99
+ logger_1.logger.log(`🌲 File added: ${filePath}, reloading tree...`);
100
+ wss.clients.forEach((client) => {
101
+ client.send(JSON.stringify({ type: 'reload-tree' }));
102
+ });
103
+ });
104
+ watcher.on('unlink', (filePath) => {
105
+ logger_1.logger.log(`🌲 File removed: ${filePath}, reloading tree...`);
106
+ wss.clients.forEach((client) => {
107
+ client.send(JSON.stringify({ type: 'reload-tree' }));
108
+ });
109
+ });
110
+ return watcher;
111
+ }
112
+ catch (e) {
113
+ logger_1.logger.error('🚫 Error watching directory:', e);
114
+ logger_1.logger.error('Livereload will be disabled');
115
+ return null;
116
+ }
117
+ };
118
+ const setupContentWatcher = (ws, filePath) => {
119
+ if (filePath !== currentWatchedFile) {
120
+ logger_1.logger.log(`👀 Watching file: ${filePath}`);
121
+ currentWatchedFile = filePath;
122
+ contentWatcher === null || contentWatcher === void 0 ? void 0 : contentWatcher.close(); // Close existing content watcher if any
123
+ contentWatcher = chokidar_1.default.watch(filePath, { ignoreInitial: true });
124
+ contentWatcher.on('change', (changedFilePath) => {
125
+ logger_1.logger.log(`🔃 File changed: ${changedFilePath}, reloading content...`);
126
+ ws.send(JSON.stringify({ type: 'reload-content' }));
127
+ });
128
+ contentWatcher.on('error', (e) => {
129
+ logger_1.logger.error(`🚫 Error watching content file ${filePath}:`, e);
130
+ });
131
+ }
132
+ };
133
+ const isMarkdownOrSimpleAsset = (filePath) => {
134
+ const ext = filePath.toLowerCase().split('.').pop();
135
+ return !!ext && (ext === 'md' || ext === 'markdown');
136
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logger = void 0;
4
+ class Logger {
5
+ log(message, ...args) {
6
+ console.log(message, ...args);
7
+ }
8
+ error(message, ...args) {
9
+ console.error(message, ...args);
10
+ }
11
+ }
12
+ exports.logger = new Logger();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mdts",
3
- "version": "0.5.1",
3
+ "version": "0.7.0",
4
4
  "description": "A markdown preview server.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,12 +12,13 @@
12
12
  ],
13
13
  "scripts": {
14
14
  "build": "tsc && cp -R public/. dist/server/public",
15
- "build:frontend": "cd packages/frontend && npm run build && cp -R dist/. ../../dist/frontend",
15
+ "build:frontend": "cd packages/frontend && npm run build",
16
16
  "jest": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config jest.config.js",
17
17
  "watch": "npm run jest -- --watch",
18
18
  "test": "npm run jest -- --selectProjects test",
19
19
  "lint": "npm run jest -- --selectProjects lint",
20
- "start": "npm run build && npm run build:frontend && node dist/index.js"
20
+ "start": "npm run build && npm run build:frontend && node dist/index.js",
21
+ "dev": "npm run build && npm run build:frontend && tsc --watch --preserveWatchOutput & cd packages/frontend && npm run build -- --watch & node dist/index.js"
21
22
  },
22
23
  "repository": {
23
24
  "type": "git",