@nanocollective/get-md 1.0.2 → 1.1.0-beta.1

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 (62) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +155 -1
  3. package/dist/cli.js +388 -4
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli.spec.js +187 -0
  6. package/dist/cli.spec.js.map +1 -1
  7. package/dist/converters/llm-converter.d.ts +71 -0
  8. package/dist/converters/llm-converter.d.ts.map +1 -0
  9. package/dist/converters/llm-converter.js +191 -0
  10. package/dist/converters/llm-converter.js.map +1 -0
  11. package/dist/converters/llm-converter.spec.d.ts +2 -0
  12. package/dist/converters/llm-converter.spec.d.ts.map +1 -0
  13. package/dist/converters/llm-converter.spec.js +281 -0
  14. package/dist/converters/llm-converter.spec.js.map +1 -0
  15. package/dist/converters/llm-manager.d.ts +88 -0
  16. package/dist/converters/llm-manager.d.ts.map +1 -0
  17. package/dist/converters/llm-manager.js +277 -0
  18. package/dist/converters/llm-manager.js.map +1 -0
  19. package/dist/converters/llm-manager.spec.d.ts +2 -0
  20. package/dist/converters/llm-manager.spec.d.ts.map +1 -0
  21. package/dist/converters/llm-manager.spec.js +280 -0
  22. package/dist/converters/llm-manager.spec.js.map +1 -0
  23. package/dist/extractors/metadata-extractor.js +1 -1
  24. package/dist/extractors/metadata-extractor.js.map +1 -1
  25. package/dist/index.d.ts +14 -4
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +23 -10
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.spec.js +172 -1
  30. package/dist/index.spec.js.map +1 -1
  31. package/dist/optimizers/html-cleaner.js +1 -1
  32. package/dist/optimizers/html-cleaner.js.map +1 -1
  33. package/dist/optimizers/html-cleaner.spec.js +1 -0
  34. package/dist/optimizers/html-cleaner.spec.js.map +1 -1
  35. package/dist/optimizers/llm-formatter.js +2 -2
  36. package/dist/optimizers/llm-formatter.js.map +1 -1
  37. package/dist/optimizers/structure-enhancer.js +3 -3
  38. package/dist/optimizers/structure-enhancer.js.map +1 -1
  39. package/dist/optimizers/structure-enhancer.spec.js +1 -1
  40. package/dist/optimizers/structure-enhancer.spec.js.map +1 -1
  41. package/dist/parsers/markdown-parser.d.ts +36 -0
  42. package/dist/parsers/markdown-parser.d.ts.map +1 -1
  43. package/dist/parsers/markdown-parser.js +267 -45
  44. package/dist/parsers/markdown-parser.js.map +1 -1
  45. package/dist/parsers/markdown-parser.spec.js +106 -98
  46. package/dist/parsers/markdown-parser.spec.js.map +1 -1
  47. package/dist/types.d.ts +149 -0
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/utils/config-loader.d.ts +62 -0
  50. package/dist/utils/config-loader.d.ts.map +1 -0
  51. package/dist/utils/config-loader.js +167 -0
  52. package/dist/utils/config-loader.js.map +1 -0
  53. package/dist/utils/config-loader.spec.d.ts +2 -0
  54. package/dist/utils/config-loader.spec.d.ts.map +1 -0
  55. package/dist/utils/config-loader.spec.js +355 -0
  56. package/dist/utils/config-loader.spec.js.map +1 -0
  57. package/dist/utils/url-fetcher.d.ts.map +1 -1
  58. package/dist/utils/url-fetcher.js +1 -1
  59. package/dist/utils/url-fetcher.js.map +1 -1
  60. package/dist/utils/validators.js +1 -1
  61. package/dist/utils/validators.js.map +1 -1
  62. package/package.json +25 -17
@@ -1,13 +1,13 @@
1
1
  // src/parsers/markdown-parser.ts
2
+ import * as cheerio from "cheerio/slim";
2
3
  import TurndownService from "turndown";
3
4
  import { gfm } from "turndown-plugin-gfm";
4
- import { Readability } from "@mozilla/readability";
5
- import { JSDOM } from "jsdom";
6
- import * as cheerio from "cheerio";
5
+ import { LLMConverter } from "../converters/llm-converter.js";
6
+ import { checkLLMModel } from "../converters/llm-manager.js";
7
+ import { extractMetadata } from "../extractors/metadata-extractor.js";
7
8
  import { cleanHTML } from "../optimizers/html-cleaner.js";
8
9
  import { formatForLLM } from "../optimizers/llm-formatter.js";
9
10
  import { enhanceStructure } from "../optimizers/structure-enhancer.js";
10
- import { extractMetadata } from "../extractors/metadata-extractor.js";
11
11
  export class MarkdownParser {
12
12
  turndown;
13
13
  constructor() {
@@ -28,25 +28,88 @@ export class MarkdownParser {
28
28
  // Set up custom rules optimized for LLMs
29
29
  this.setupLLMRules();
30
30
  }
31
+ /**
32
+ * Convert HTML to Markdown (async version with LLM support)
33
+ *
34
+ * When `useLLM` option is true, this method will use a local LLM model
35
+ * for conversion, providing higher quality output for complex HTML.
36
+ */
37
+ async convertAsync(html, options = {}) {
38
+ const startTime = Date.now();
39
+ const opts = this.normalizeOptions(options);
40
+ // Prepare preprocessed HTML and metadata
41
+ const { contentHtml, metadata, readabilitySuccess } = await this.preprocessHtml(html, opts);
42
+ // Create event emitter that unifies both callback styles
43
+ const emitEvent = this.createEventEmitter(opts);
44
+ let markdown;
45
+ // Decision point: Use LLM or Turndown
46
+ if (opts.useLLM) {
47
+ try {
48
+ markdown = await this.convertWithLLM(contentHtml, opts, emitEvent);
49
+ }
50
+ catch (error) {
51
+ // Handle fallback to Turndown
52
+ if (opts.llmFallback !== false) {
53
+ const reason = error instanceof Error ? error.message : "Unknown error";
54
+ await emitEvent({ type: "fallback-start", reason });
55
+ markdown = this.convertWithTurndown(contentHtml, opts);
56
+ }
57
+ else {
58
+ throw error;
59
+ }
60
+ }
61
+ }
62
+ else {
63
+ markdown = this.convertWithTurndown(contentHtml, opts);
64
+ }
65
+ // Post-process and finalize
66
+ return this.finalizeConversion(html, contentHtml, markdown, metadata, opts, readabilitySuccess, startTime);
67
+ }
68
+ /**
69
+ * Convert HTML to Markdown (sync version, uses Turndown only)
70
+ *
71
+ * For LLM-based conversion, use `convertAsync()` instead.
72
+ */
31
73
  convert(html, options = {}) {
32
74
  const startTime = Date.now();
33
75
  const opts = this.normalizeOptions(options);
76
+ // Warn if LLM options are passed to sync method
77
+ if (opts.useLLM) {
78
+ console.warn("LLM conversion is not available in sync convert(). Use convertAsync() instead.");
79
+ }
80
+ // Disable extractContent for sync version since it requires async
81
+ if (opts.extractContent) {
82
+ console.warn("Content extraction (Readability) is not available in sync convert(). Use convertAsync() instead. Falling back to raw HTML.");
83
+ opts.extractContent = false;
84
+ }
85
+ // Prepare preprocessed HTML and metadata (sync version)
86
+ const { contentHtml, metadata, readabilitySuccess } = this.preprocessHtmlSync(html, opts);
87
+ // Convert with Turndown (sync path)
88
+ const markdown = this.convertWithTurndown(contentHtml, opts);
89
+ // Post-process and finalize
90
+ return this.finalizeConversion(html, contentHtml, markdown, metadata, opts, readabilitySuccess, startTime);
91
+ }
92
+ /**
93
+ * Preprocess HTML: extract content, clean, enhance structure, filter
94
+ */
95
+ async preprocessHtml(html, opts) {
34
96
  // Step 1: Extract main content using Readability
35
97
  let contentHtml = html;
36
98
  let metadata = {};
37
99
  let readabilitySuccess = false;
38
100
  if (opts.extractContent) {
39
101
  try {
40
- const extracted = this.extractMainContent(html, opts.baseUrl);
102
+ const extracted = await this.extractMainContent(html, opts.baseUrl);
41
103
  if (extracted) {
42
104
  contentHtml = extracted.content;
43
105
  metadata = extracted.metadata;
44
106
  readabilitySuccess = true;
45
107
  }
46
108
  }
47
- catch {
48
- // Fallback to raw HTML if Readability fails
49
- console.warn("Readability extraction failed, using raw HTML");
109
+ catch (error) {
110
+ // Fallback to raw HTML if Readability fails or is unavailable (React Native)
111
+ const errorMessage = error instanceof Error ? error.message : String(error);
112
+ console.warn(`Readability extraction failed: ${errorMessage}. Using raw HTML.`);
50
113
  }
51
114
  }
52
115
  // Step 2: Additional metadata extraction
@@ -63,28 +126,144 @@ export class MarkdownParser {
63
126
  contentHtml = this.normalizeCodeBlocks(contentHtml);
64
127
  // Step 5: Filter content based on options
65
128
  contentHtml = this.filterContent(contentHtml, opts);
66
- // Step 6: Apply custom rules if provided
129
+ return { contentHtml, metadata, readabilitySuccess };
130
+ }
131
+ /**
132
+ * Preprocess HTML: clean, enhance structure, filter (sync version - no content extraction)
133
+ */
134
+ preprocessHtmlSync(html, opts) {
135
+ // Skip content extraction in sync version (requires async)
136
+ let contentHtml = html;
137
+ let metadata = {};
138
+ const readabilitySuccess = false;
139
+ // Step 2: Additional metadata extraction
140
+ const additionalMeta = extractMetadata(contentHtml, opts.baseUrl);
141
+ metadata = { ...additionalMeta, ...metadata };
142
+ // Step 3: Clean HTML (remove scripts, styles, ads, etc.)
143
+ contentHtml = cleanHTML(contentHtml, {
144
+ aggressive: opts.aggressiveCleanup,
145
+ baseUrl: opts.baseUrl,
146
+ });
147
+ // Step 4: Enhance structure (improve heading hierarchy, etc.)
148
+ contentHtml = enhanceStructure(contentHtml);
149
+ // Step 4.5: Normalize code blocks (GitHub, etc.)
150
+ contentHtml = this.normalizeCodeBlocks(contentHtml);
151
+ // Step 5: Filter content based on options
152
+ contentHtml = this.filterContent(contentHtml, opts);
153
+ return { contentHtml, metadata, readabilitySuccess };
154
+ }
155
+ /**
156
+ * Convert preprocessed HTML to Markdown using Turndown
157
+ */
158
+ convertWithTurndown(contentHtml, opts) {
159
+ // Apply custom rules if provided
67
160
  if (opts.customRules && opts.customRules.length > 0) {
68
161
  this.applyCustomRules(opts.customRules);
69
162
  }
70
- // Step 7: Convert to markdown
163
+ // Convert to markdown
71
164
  let markdown = this.turndown.turndown(contentHtml);
72
- // Step 8: Apply LLM-specific formatting
165
+ // Apply LLM-specific formatting
73
166
  markdown = formatForLLM(markdown);
74
- // Step 9: Calculate word count and reading time from markdown (before adding frontmatter)
167
+ return markdown;
168
+ }
169
+ /**
170
+ * Convert preprocessed HTML to Markdown using LLM
171
+ */
172
+ async convertWithLLM(contentHtml, opts, emitEvent) {
173
+ // Check if model is available
174
+ await emitEvent({ type: "model-check", status: "checking" });
175
+ const modelPath = opts.llmModelPath;
176
+ const modelStatus = await checkLLMModel({
177
+ modelPath: modelPath || undefined,
178
+ });
179
+ if (!modelStatus.available) {
180
+ await emitEvent({ type: "model-check", status: "not-found" });
181
+ throw new Error("LLM model not found. Download it first using downloadLLMModel() or the CLI command: getmd --download-model");
182
+ }
183
+ await emitEvent({
184
+ type: "model-check",
185
+ status: "found",
186
+ path: modelStatus.path,
187
+ });
188
+ // Create and load the converter
189
+ const converter = new LLMConverter({
190
+ modelPath: modelStatus.path || "",
191
+ onEvent: emitEvent,
192
+ temperature: opts.llmTemperature,
193
+ maxTokens: opts.llmMaxTokens,
194
+ });
195
+ try {
196
+ await converter.loadModel();
197
+ // Convert HTML to Markdown using LLM
198
+ const markdown = await converter.convert(contentHtml);
199
+ return markdown;
200
+ }
201
+ finally {
202
+ // Always unload the model to free memory
203
+ await converter.unload();
204
+ }
205
+ }
206
+ /**
207
+ * Create a unified event emitter from options
208
+ */
209
+ createEventEmitter(opts) {
210
+ return async (event) => {
211
+ // Call unified callback if provided
212
+ if (opts.onLLMEvent) {
213
+ await opts.onLLMEvent(event);
214
+ }
215
+ // Call simplified callbacks based on event type
216
+ if (opts.onDownloadProgress && event.type === "download-progress") {
217
+ opts.onDownloadProgress(event.downloaded, event.total, event.percentage);
218
+ }
219
+ if (opts.onModelStatus) {
220
+ if (event.type === "model-check") {
221
+ if (event.status === "not-found") {
222
+ opts.onModelStatus("not-found");
223
+ }
224
+ }
225
+ else if (event.type === "model-loading") {
226
+ opts.onModelStatus("loading");
227
+ }
228
+ else if (event.type === "model-loaded") {
229
+ opts.onModelStatus("loaded");
230
+ }
231
+ }
232
+ if (opts.onConversionProgress) {
233
+ if (event.type === "conversion-start") {
234
+ opts.onConversionProgress({ stage: "starting" });
235
+ }
236
+ else if (event.type === "conversion-progress") {
237
+ opts.onConversionProgress({
238
+ stage: "converting",
239
+ percentage: event.tokensProcessed
240
+ ? Math.min(100, event.tokensProcessed / 100)
241
+ : undefined,
242
+ });
243
+ }
244
+ else if (event.type === "conversion-complete") {
245
+ opts.onConversionProgress({ stage: "complete", percentage: 100 });
246
+ }
247
+ }
248
+ };
249
+ }
250
+ /**
251
+ * Finalize conversion: add metadata, frontmatter, and calculate stats
252
+ */
253
+ finalizeConversion(originalHtml, contentHtml, markdown, metadata, opts, readabilitySuccess, startTime) {
254
+ // Calculate word count and reading time from markdown
75
255
  const { wordCount, readingTime } = this.calculateMarkdownStats(markdown);
76
256
  metadata.wordCount = wordCount;
77
257
  metadata.readingTime = readingTime;
78
- // Step 10: Add frontmatter if requested
258
+ // Add frontmatter if requested
79
259
  if (opts.includeMeta && Object.keys(metadata).length > 0) {
80
260
  markdown = this.addFrontmatter(markdown, metadata);
81
261
  }
82
- // Step 11: Final cleanup
262
+ // Final cleanup
83
263
  markdown = this.postProcess(markdown);
84
- // Step 12: Validate length
264
+ // Validate length
85
265
  if (opts.maxLength && markdown.length > opts.maxLength) {
86
- markdown =
87
- markdown.substring(0, opts.maxLength) + "\n\n[Content truncated]";
266
+ markdown = `${markdown.substring(0, opts.maxLength)}\n\n[Content truncated]`;
88
267
  }
89
268
  const processingTime = Date.now() - startTime;
90
269
  // Calculate statistics
@@ -95,7 +274,7 @@ export class MarkdownParser {
95
274
  markdown,
96
275
  metadata,
97
276
  stats: {
98
- inputLength: html.length,
277
+ inputLength: originalHtml.length,
99
278
  outputLength: markdown.length,
100
279
  processingTime,
101
280
  readabilitySuccess,
@@ -104,26 +283,51 @@ export class MarkdownParser {
104
283
  },
105
284
  };
106
285
  }
107
- extractMainContent(html, baseUrl) {
108
- const doc = new JSDOM(html, { url: baseUrl });
109
- const reader = new Readability(doc.window.document, {
110
- // Increase content threshold to avoid extracting navigation/sidebars
111
- charThreshold: 500,
112
- });
113
- const article = reader.parse();
114
- if (!article) {
115
- return null;
286
+ async extractMainContent(html, baseUrl) {
287
+ try {
288
+ // Use happy-dom-without-node for DOM implementation
289
+ // Works in Node.js, React Native, and browser environments
290
+ const { Window } = await import("happy-dom-without-node");
291
+ const { Readability } = await import("@mozilla/readability");
292
+ // Save original process (happy-dom overrides it)
293
+ const originalProcess = typeof globalThis !== "undefined"
294
+ ? globalThis
295
+ .process
296
+ : undefined;
297
+ const window = new Window({
298
+ url: baseUrl || "https://example.com",
299
+ });
300
+ const document = window.document;
301
+ // This is safe - we're parsing user-provided HTML in an isolated happy-dom environment,
302
+ // not in a browser context. The HTML is then processed by Readability for extraction.
303
+ document.body.innerHTML = html; // nosemgrep: javascript.browser.security.insecure-document-method.insecure-document-method
304
+ // Restore original process
305
+ if (originalProcess && typeof globalThis !== "undefined") {
306
+ globalThis.process = originalProcess;
307
+ }
308
+ // Cast to bypass TypeScript type checking
309
+ // happy-dom-without-node implements enough of the DOM API for Readability
310
+ const reader = new Readability(document, {
311
+ charThreshold: 500,
312
+ });
313
+ const article = reader.parse();
314
+ if (!article) {
315
+ return null;
316
+ }
317
+ return {
318
+ content: article.content || "",
319
+ metadata: {
320
+ title: article.title || undefined,
321
+ author: article.byline || undefined,
322
+ excerpt: article.excerpt || undefined,
323
+ siteName: article.siteName || undefined,
324
+ },
325
+ };
326
+ }
327
+ catch {
328
+ // Content extraction not available
329
+ throw new Error("Content extraction failed. Set extractContent: false to skip content extraction.");
116
330
  }
117
- return {
118
- content: article.content || "",
119
- metadata: {
120
- title: article.title || undefined,
121
- author: article.byline || undefined,
122
- excerpt: article.excerpt || undefined,
123
- siteName: article.siteName || undefined,
124
- // wordCount and readingTime will be calculated from final markdown
125
- },
126
- };
127
331
  }
128
332
  normalizeCodeBlocks(html) {
129
333
  const $ = cheerio.load(html);
@@ -240,7 +444,7 @@ export class MarkdownParser {
240
444
  replacement: (_content, node) => {
241
445
  const text = node.textContent || "";
242
446
  const lines = text.trim().split("\n");
243
- return ("\n" + lines.map((line) => `> ${line}`).join("\n") + "\n");
447
+ return `\n${lines.map((line) => `> ${line}`).join("\n")}\n`;
244
448
  },
245
449
  });
246
450
  // Remove empty paragraphs and whitespace-only elements
@@ -293,7 +497,7 @@ export class MarkdownParser {
293
497
  }
294
498
  });
295
499
  // Build markdown table
296
- let markdown = "\n| " + headers.join(" | ") + " |\n";
500
+ let markdown = `\n| ${headers.join(" | ")} |\n`;
297
501
  // Add alignment row
298
502
  const alignRow = alignments.map((align) => {
299
503
  if (align === "center")
@@ -302,12 +506,12 @@ export class MarkdownParser {
302
506
  return "---:";
303
507
  return "---";
304
508
  });
305
- markdown += "| " + alignRow.join(" | ") + " |\n";
509
+ markdown += `| ${alignRow.join(" | ")} |\n`;
306
510
  // Add data rows
307
511
  rows.forEach((row) => {
308
- markdown += "| " + row.join(" | ") + " |\n";
512
+ markdown += `| ${row.join(" | ")} |\n`;
309
513
  });
310
- return markdown + "\n";
514
+ return `${markdown}\n`;
311
515
  }
312
516
  applyCustomRules(rules) {
313
517
  rules.forEach((rule) => {
@@ -330,7 +534,7 @@ export class MarkdownParser {
330
534
  }
331
535
  });
332
536
  yaml.push("---");
333
- return yaml.join("\n") + "\n\n" + markdown;
537
+ return `${yaml.join("\n")}\n\n${markdown}`;
334
538
  }
335
539
  calculateMarkdownStats(markdown) {
336
540
  // Remove frontmatter if present
@@ -401,10 +605,11 @@ export class MarkdownParser {
401
605
  markdown = lines.join("\n");
402
606
  // Remove trailing whitespace from lines
403
607
  markdown = markdown.replace(/[^\S\n]+$/gm, "");
404
- return markdown.trim() + "\n";
608
+ return `${markdown.trim()}\n`;
405
609
  }
406
610
  normalizeOptions(options) {
407
611
  return {
612
+ // Core options
408
613
  extractContent: options.extractContent ?? true,
409
614
  includeMeta: options.includeMeta ?? true,
410
615
  customRules: options.customRules ?? [],
@@ -414,7 +619,24 @@ export class MarkdownParser {
414
619
  includeImages: options.includeImages ?? true,
415
620
  includeLinks: options.includeLinks ?? true,
416
621
  includeTables: options.includeTables ?? true,
417
- aggressiveCleanup: options.aggressiveCleanup ?? true, // Back to true with smarter selectors
622
+ aggressiveCleanup: options.aggressiveCleanup ?? true,
623
+ // URL fetching options
624
+ isUrl: options.isUrl,
625
+ timeout: options.timeout ?? 15000,
626
+ followRedirects: options.followRedirects ?? true,
627
+ maxRedirects: options.maxRedirects ?? 5,
628
+ headers: options.headers,
629
+ userAgent: options.userAgent,
630
+ // LLM options
631
+ useLLM: options.useLLM ?? false,
632
+ llmModelPath: options.llmModelPath,
633
+ llmTemperature: options.llmTemperature ?? 0.1,
634
+ llmMaxTokens: options.llmMaxTokens ?? 512000,
635
+ llmFallback: options.llmFallback ?? true,
636
+ onLLMEvent: options.onLLMEvent,
637
+ onDownloadProgress: options.onDownloadProgress,
638
+ onModelStatus: options.onModelStatus,
639
+ onConversionProgress: options.onConversionProgress,
418
640
  };
419
641
  }
420
642
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-parser.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.ts"],"names":[],"mappings":"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"}