@nanocollective/get-md 1.0.1 → 1.0.3

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 (55) hide show
  1. package/README.md +25 -3
  2. package/dist/cli.js +2 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/extractors/metadata-extractor.js +1 -1
  5. package/dist/extractors/metadata-extractor.js.map +1 -1
  6. package/dist/extractors/metadata-extractor.spec.d.ts +2 -0
  7. package/dist/extractors/metadata-extractor.spec.d.ts.map +1 -0
  8. package/dist/extractors/metadata-extractor.spec.js +486 -0
  9. package/dist/extractors/metadata-extractor.spec.js.map +1 -0
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.spec.d.ts +2 -0
  15. package/dist/index.spec.d.ts.map +1 -0
  16. package/dist/index.spec.js +518 -0
  17. package/dist/index.spec.js.map +1 -0
  18. package/dist/optimizers/html-cleaner.js +1 -1
  19. package/dist/optimizers/html-cleaner.js.map +1 -1
  20. package/dist/optimizers/html-cleaner.spec.d.ts +2 -0
  21. package/dist/optimizers/html-cleaner.spec.d.ts.map +1 -0
  22. package/dist/optimizers/html-cleaner.spec.js +351 -0
  23. package/dist/optimizers/html-cleaner.spec.js.map +1 -0
  24. package/dist/optimizers/llm-formatter.js +2 -2
  25. package/dist/optimizers/llm-formatter.js.map +1 -1
  26. package/dist/optimizers/llm-formatter.spec.d.ts +2 -0
  27. package/dist/optimizers/llm-formatter.spec.d.ts.map +1 -0
  28. package/dist/optimizers/llm-formatter.spec.js +276 -0
  29. package/dist/optimizers/llm-formatter.spec.js.map +1 -0
  30. package/dist/optimizers/structure-enhancer.js +3 -3
  31. package/dist/optimizers/structure-enhancer.js.map +1 -1
  32. package/dist/optimizers/structure-enhancer.spec.d.ts +2 -0
  33. package/dist/optimizers/structure-enhancer.spec.d.ts.map +1 -0
  34. package/dist/optimizers/structure-enhancer.spec.js +331 -0
  35. package/dist/optimizers/structure-enhancer.spec.js.map +1 -0
  36. package/dist/parsers/markdown-parser.d.ts +1 -1
  37. package/dist/parsers/markdown-parser.d.ts.map +1 -1
  38. package/dist/parsers/markdown-parser.js +58 -37
  39. package/dist/parsers/markdown-parser.js.map +1 -1
  40. package/dist/parsers/markdown-parser.spec.js +106 -98
  41. package/dist/parsers/markdown-parser.spec.js.map +1 -1
  42. package/dist/utils/url-fetcher.d.ts.map +1 -1
  43. package/dist/utils/url-fetcher.js +1 -1
  44. package/dist/utils/url-fetcher.js.map +1 -1
  45. package/dist/utils/url-fetcher.spec.d.ts +2 -0
  46. package/dist/utils/url-fetcher.spec.d.ts.map +1 -0
  47. package/dist/utils/url-fetcher.spec.js +206 -0
  48. package/dist/utils/url-fetcher.spec.js.map +1 -0
  49. package/dist/utils/validators.js +1 -1
  50. package/dist/utils/validators.js.map +1 -1
  51. package/dist/utils/validators.spec.d.ts +2 -0
  52. package/dist/utils/validators.spec.d.ts.map +1 -0
  53. package/dist/utils/validators.spec.js +290 -0
  54. package/dist/utils/validators.spec.js.map +1 -0
  55. package/package.json +8 -14
@@ -200,21 +200,21 @@ const LONG_HTML = `
200
200
  </html>
201
201
  `;
202
202
  // Basic conversion tests
203
- test("MarkdownParser: converts simple HTML to markdown", (t) => {
203
+ test("MarkdownParser: converts simple HTML to markdown", async (t) => {
204
204
  const parser = new MarkdownParser();
205
- const result = parser.convert(SIMPLE_HTML);
205
+ const result = await parser.convert(SIMPLE_HTML);
206
206
  t.true(result.markdown.includes("# Hello World"));
207
207
  t.true(result.markdown.includes("This is a test paragraph"));
208
208
  });
209
- test("MarkdownParser: returns metadata in result", (t) => {
209
+ test("MarkdownParser: returns metadata in result", async (t) => {
210
210
  const parser = new MarkdownParser();
211
- const result = parser.convert(SIMPLE_HTML);
211
+ const result = await parser.convert(SIMPLE_HTML);
212
212
  t.truthy(result.metadata);
213
213
  t.is(typeof result.metadata, "object");
214
214
  });
215
- test("MarkdownParser: returns stats in result", (t) => {
215
+ test("MarkdownParser: returns stats in result", async (t) => {
216
216
  const parser = new MarkdownParser();
217
- const result = parser.convert(SIMPLE_HTML);
217
+ const result = await parser.convert(SIMPLE_HTML);
218
218
  t.truthy(result.stats);
219
219
  t.is(typeof result.stats.inputLength, "number");
220
220
  t.is(typeof result.stats.outputLength, "number");
@@ -224,9 +224,9 @@ test("MarkdownParser: returns stats in result", (t) => {
224
224
  t.is(typeof result.stats.linkCount, "number");
225
225
  });
226
226
  // Code block tests
227
- test("MarkdownParser: converts code blocks with language detection", (t) => {
227
+ test("MarkdownParser: converts code blocks with language detection", async (t) => {
228
228
  const parser = new MarkdownParser();
229
- const result = parser.convert(HTML_WITH_CODE);
229
+ const result = await parser.convert(HTML_WITH_CODE);
230
230
  // Code blocks may have extra newlines due to post-processing
231
231
  t.true(result.markdown.includes("```javascript") ||
232
232
  result.markdown.includes("```\n\nconst x = 42;"));
@@ -235,79 +235,81 @@ test("MarkdownParser: converts code blocks with language detection", (t) => {
235
235
  result.markdown.includes('print("hello")'));
236
236
  t.true(result.markdown.includes('print("hello")'));
237
237
  });
238
- test("MarkdownParser: handles code blocks without language", (t) => {
238
+ test("MarkdownParser: handles code blocks without language", async (t) => {
239
239
  const parser = new MarkdownParser();
240
- const result = parser.convert(HTML_WITH_CODE);
240
+ const result = await parser.convert(HTML_WITH_CODE);
241
241
  t.true(result.markdown.includes("plain code"));
242
242
  t.true(result.markdown.includes("```"));
243
243
  });
244
- test("MarkdownParser: extracts clean code from GitHub data attributes", (t) => {
244
+ test("MarkdownParser: extracts clean code from GitHub data attributes", async (t) => {
245
245
  const parser = new MarkdownParser();
246
- const result = parser.convert(HTML_WITH_GITHUB_CODE);
246
+ const result = await parser.convert(HTML_WITH_GITHUB_CODE);
247
247
  // Should use clean code from data attribute, not HTML-escaped version
248
248
  // Note: The actual implementation correctly extracts clean code
249
249
  t.true(result.markdown.includes("const clean"));
250
250
  t.true(result.markdown.includes("true"));
251
251
  });
252
- test("MarkdownParser: wraps bare pre tags in code elements", (t) => {
252
+ test("MarkdownParser: wraps bare pre tags in code elements", async (t) => {
253
253
  const parser = new MarkdownParser();
254
- const result = parser.convert(HTML_WITH_BARE_PRE);
254
+ const result = await parser.convert(HTML_WITH_BARE_PRE);
255
255
  t.true(result.markdown.includes("```"));
256
256
  t.true(result.markdown.includes("function test()"));
257
257
  });
258
258
  // Image tests
259
- test("MarkdownParser: converts images with alt text", (t) => {
259
+ test("MarkdownParser: converts images with alt text", async (t) => {
260
260
  const parser = new MarkdownParser();
261
- const result = parser.convert(HTML_WITH_IMAGES);
261
+ const result = await parser.convert(HTML_WITH_IMAGES);
262
262
  // Images may have leading slash if baseUrl processing adds it
263
263
  t.true(result.markdown.includes("![Test image]") &&
264
264
  result.markdown.includes("test.jpg"));
265
265
  });
266
- test("MarkdownParser: includes image title when present", (t) => {
266
+ test("MarkdownParser: includes image title when present", async (t) => {
267
267
  const parser = new MarkdownParser();
268
- const result = parser.convert(HTML_WITH_IMAGES);
268
+ const result = await parser.convert(HTML_WITH_IMAGES);
269
269
  t.true(result.markdown.includes('"Test title"'));
270
270
  });
271
- test("MarkdownParser: handles lazy-loaded images with data-src", (t) => {
271
+ test("MarkdownParser: handles lazy-loaded images with data-src", async (t) => {
272
272
  const parser = new MarkdownParser();
273
- const result = parser.convert(HTML_WITH_IMAGES);
273
+ const result = await parser.convert(HTML_WITH_IMAGES);
274
274
  // Lazy loaded images should be extracted (might use data-src or fallback to src)
275
275
  t.true(result.markdown.includes("real.jpg") ||
276
276
  result.markdown.includes("lazy.jpg"));
277
277
  });
278
- test("MarkdownParser: removes images when includeImages is false", (t) => {
278
+ test("MarkdownParser: removes images when includeImages is false", async (t) => {
279
279
  const parser = new MarkdownParser();
280
- const result = parser.convert(HTML_WITH_IMAGES, { includeImages: false });
280
+ const result = await parser.convert(HTML_WITH_IMAGES, {
281
+ includeImages: false,
282
+ });
281
283
  t.false(result.markdown.includes("!["));
282
284
  t.false(result.markdown.includes("test.jpg"));
283
285
  t.is(result.stats.imageCount, 0);
284
286
  });
285
287
  // Link tests
286
- test("MarkdownParser: converts links to markdown format", (t) => {
288
+ test("MarkdownParser: converts links to markdown format", async (t) => {
287
289
  const parser = new MarkdownParser();
288
- const result = parser.convert(HTML_WITH_LINKS);
290
+ const result = await parser.convert(HTML_WITH_LINKS);
289
291
  // Links should be converted (may have trailing slash)
290
292
  t.true(result.markdown.includes("[Example Link]") &&
291
293
  result.markdown.includes("https://example.com"));
292
294
  });
293
- test("MarkdownParser: removes links but keeps text when includeLinks is false", (t) => {
295
+ test("MarkdownParser: removes links but keeps text when includeLinks is false", async (t) => {
294
296
  const parser = new MarkdownParser();
295
- const result = parser.convert(HTML_WITH_LINKS, { includeLinks: false });
297
+ const result = await parser.convert(HTML_WITH_LINKS, { includeLinks: false });
296
298
  t.true(result.markdown.includes("Example Link"));
297
299
  t.false(result.markdown.includes("[Example Link]"));
298
300
  t.false(result.markdown.includes("](https://example.com)"));
299
301
  t.is(result.stats.linkCount, 0);
300
302
  });
301
303
  // Table tests
302
- test("MarkdownParser: converts tables to markdown format", (t) => {
304
+ test("MarkdownParser: converts tables to markdown format", async (t) => {
303
305
  const parser = new MarkdownParser();
304
- const result = parser.convert(HTML_WITH_TABLE);
306
+ const result = await parser.convert(HTML_WITH_TABLE);
305
307
  t.true(result.markdown.includes("| Header 1 | Header 2 | Header 3 |"));
306
308
  t.true(result.markdown.includes("| Cell 1 | Cell 2 | Cell 3 |"));
307
309
  });
308
- test("MarkdownParser: handles table alignment", (t) => {
310
+ test("MarkdownParser: handles table alignment", async (t) => {
309
311
  const parser = new MarkdownParser();
310
- const result = parser.convert(HTML_WITH_TABLE);
312
+ const result = await parser.convert(HTML_WITH_TABLE);
311
313
  // Check for alignment markers (may vary based on processing)
312
314
  const hasLeftAlign = result.markdown.includes("---");
313
315
  const hasCenterAlign = result.markdown.includes(":---:") || result.markdown.includes(": ---:");
@@ -315,122 +317,128 @@ test("MarkdownParser: handles table alignment", (t) => {
315
317
  // At least check that alignment row exists
316
318
  t.true(hasLeftAlign || hasCenterAlign || hasRightAlign);
317
319
  });
318
- test("MarkdownParser: pads table rows to match header length", (t) => {
320
+ test("MarkdownParser: pads table rows to match header length", async (t) => {
319
321
  const parser = new MarkdownParser();
320
- const result = parser.convert(HTML_WITH_TABLE);
322
+ const result = await parser.convert(HTML_WITH_TABLE);
321
323
  // Second row has only 2 cells, should be padded to 3
322
324
  t.true(result.markdown.includes("| Cell 4 | Cell 5 | |"));
323
325
  });
324
- test("MarkdownParser: handles simple tables without thead", (t) => {
326
+ test("MarkdownParser: handles simple tables without thead", async (t) => {
325
327
  const parser = new MarkdownParser();
326
- const result = parser.convert(HTML_WITH_SIMPLE_TABLE);
328
+ const result = await parser.convert(HTML_WITH_SIMPLE_TABLE);
327
329
  t.true(result.markdown.includes("| First | Second |"));
328
330
  t.true(result.markdown.includes("| A | B |"));
329
331
  });
330
- test("MarkdownParser: removes tables when includeTables is false", (t) => {
332
+ test("MarkdownParser: removes tables when includeTables is false", async (t) => {
331
333
  const parser = new MarkdownParser();
332
- const result = parser.convert(HTML_WITH_TABLE, { includeTables: false });
334
+ const result = await parser.convert(HTML_WITH_TABLE, {
335
+ includeTables: false,
336
+ });
333
337
  t.false(result.markdown.includes("| Header 1"));
334
338
  t.false(result.markdown.includes("| Cell 1"));
335
339
  });
336
340
  // Blockquote tests
337
- test("MarkdownParser: converts blockquotes with proper formatting", (t) => {
341
+ test("MarkdownParser: converts blockquotes with proper formatting", async (t) => {
338
342
  const parser = new MarkdownParser();
339
- const result = parser.convert(HTML_WITH_BLOCKQUOTE);
343
+ const result = await parser.convert(HTML_WITH_BLOCKQUOTE);
340
344
  // Blockquotes should have > markers (content may vary based on processing)
341
345
  t.true(result.markdown.includes(">"));
342
346
  t.true(result.markdown.includes("This is a quote") ||
343
347
  result.markdown.includes("quote"));
344
348
  });
345
349
  // List tests
346
- test("MarkdownParser: converts unordered lists", (t) => {
350
+ test("MarkdownParser: converts unordered lists", async (t) => {
347
351
  const parser = new MarkdownParser();
348
- const result = parser.convert(HTML_WITH_LISTS);
352
+ const result = await parser.convert(HTML_WITH_LISTS);
349
353
  t.true(result.markdown.includes("- Item 1"));
350
354
  t.true(result.markdown.includes("- Item 2"));
351
355
  });
352
- test("MarkdownParser: converts ordered lists", (t) => {
356
+ test("MarkdownParser: converts ordered lists", async (t) => {
353
357
  const parser = new MarkdownParser();
354
- const result = parser.convert(HTML_WITH_LISTS);
358
+ const result = await parser.convert(HTML_WITH_LISTS);
355
359
  // Ordered lists should contain numbers and content
356
360
  t.true(result.markdown.includes("First") && result.markdown.includes("Second"));
357
361
  t.true(/\d+\.\s+/.test(result.markdown)); // Contains number followed by dot and space
358
362
  });
359
363
  // Metadata extraction tests
360
- test("MarkdownParser: extracts metadata from HTML", (t) => {
364
+ test("MarkdownParser: extracts metadata from HTML", async (t) => {
361
365
  const parser = new MarkdownParser();
362
- const result = parser.convert(HTML_WITH_METADATA);
366
+ const result = await parser.convert(HTML_WITH_METADATA);
363
367
  t.is(result.metadata.title, "Article Title");
364
368
  t.is(result.metadata.author, "John Doe");
365
369
  t.is(result.metadata.siteName, "Test Site");
366
370
  });
367
- test("MarkdownParser: includes metadata as frontmatter by default", (t) => {
371
+ test("MarkdownParser: includes metadata as frontmatter by default", async (t) => {
368
372
  const parser = new MarkdownParser();
369
- const result = parser.convert(HTML_WITH_METADATA);
373
+ const result = await parser.convert(HTML_WITH_METADATA);
370
374
  t.true(result.markdown.startsWith("---"));
371
375
  t.true(result.markdown.includes("title: Article Title"));
372
376
  t.true(result.markdown.includes("---\n\n"));
373
377
  });
374
- test("MarkdownParser: excludes metadata when includeMeta is false", (t) => {
378
+ test("MarkdownParser: excludes metadata when includeMeta is false", async (t) => {
375
379
  const parser = new MarkdownParser();
376
- const result = parser.convert(HTML_WITH_METADATA, { includeMeta: false });
380
+ const result = await parser.convert(HTML_WITH_METADATA, {
381
+ includeMeta: false,
382
+ });
377
383
  t.false(result.markdown.startsWith("---\ntitle:"));
378
384
  });
379
- test("MarkdownParser: calculates word count and reading time", (t) => {
385
+ test("MarkdownParser: calculates word count and reading time", async (t) => {
380
386
  const parser = new MarkdownParser();
381
- const result = parser.convert(SIMPLE_HTML);
387
+ const result = await parser.convert(SIMPLE_HTML);
382
388
  t.is(typeof result.metadata.wordCount, "number");
383
389
  t.true(result.metadata.wordCount > 0);
384
390
  t.is(typeof result.metadata.readingTime, "number");
385
391
  t.true(result.metadata.readingTime >= 1);
386
392
  });
387
393
  // Content extraction tests
388
- test("MarkdownParser: extracts main content with Readability by default", (t) => {
394
+ test("MarkdownParser: extracts main content with Readability by default", async (t) => {
389
395
  const parser = new MarkdownParser();
390
- const result = parser.convert(HTML_WITH_NOISE);
396
+ const result = await parser.convert(HTML_WITH_NOISE);
391
397
  t.true(result.markdown.includes("Main Content"));
392
398
  t.is(result.stats.readabilitySuccess, true);
393
399
  });
394
- test("MarkdownParser: skips Readability when extractContent is false", (t) => {
400
+ test("MarkdownParser: skips Readability when extractContent is false", async (t) => {
395
401
  const parser = new MarkdownParser();
396
- const result = parser.convert(HTML_WITH_NOISE, { extractContent: false });
402
+ const result = await parser.convert(HTML_WITH_NOISE, {
403
+ extractContent: false,
404
+ });
397
405
  // Should include navigation and footer when not extracting
398
406
  t.true(result.markdown.includes("Navigation") ||
399
407
  result.markdown.includes("Footer"));
400
408
  t.is(result.stats.readabilitySuccess, false);
401
409
  });
402
- test("MarkdownParser: handles Readability failure gracefully", (t) => {
410
+ test("MarkdownParser: handles Readability failure gracefully", async (t) => {
403
411
  const parser = new MarkdownParser();
404
412
  const tinyHtml = "<html><body><p>Too small.</p></body></html>";
405
- const result = parser.convert(tinyHtml);
413
+ const result = await parser.convert(tinyHtml);
406
414
  // Should still produce output even if Readability fails
407
415
  t.truthy(result.markdown);
408
416
  t.true(result.markdown.length > 0);
409
417
  });
410
418
  // Empty element removal tests
411
- test("MarkdownParser: removes empty paragraphs and elements", (t) => {
419
+ test("MarkdownParser: removes empty paragraphs and elements", async (t) => {
412
420
  const parser = new MarkdownParser();
413
- const result = parser.convert(HTML_WITH_EMPTY_ELEMENTS);
421
+ const result = await parser.convert(HTML_WITH_EMPTY_ELEMENTS);
414
422
  t.true(result.markdown.includes("Real content"));
415
423
  t.true(result.markdown.includes("More content"));
416
424
  // Should not have excessive blank lines from empty elements
417
425
  t.false(result.markdown.includes("\n\n\n\n"));
418
426
  });
419
427
  // Post-processing tests
420
- test("MarkdownParser: removes excessive blank lines", (t) => {
428
+ test("MarkdownParser: removes excessive blank lines", async (t) => {
421
429
  const parser = new MarkdownParser();
422
430
  const htmlWithBlanks = `<html><body>
423
431
  <p>First</p>
424
432
  <br><br><br>
425
433
  <p>Second</p>
426
434
  </body></html>`;
427
- const result = parser.convert(htmlWithBlanks);
435
+ const result = await parser.convert(htmlWithBlanks);
428
436
  // Should not have more than 2 consecutive newlines
429
437
  t.false(result.markdown.includes("\n\n\n\n"));
430
438
  });
431
- test("MarkdownParser: ensures proper spacing around code blocks", (t) => {
439
+ test("MarkdownParser: ensures proper spacing around code blocks", async (t) => {
432
440
  const parser = new MarkdownParser();
433
- const result = parser.convert(HTML_WITH_CODE);
441
+ const result = await parser.convert(HTML_WITH_CODE);
434
442
  // Code blocks should have blank lines before/after
435
443
  const lines = result.markdown.split("\n");
436
444
  const codeBlockStarts = lines
@@ -439,34 +447,34 @@ test("MarkdownParser: ensures proper spacing around code blocks", (t) => {
439
447
  // At least one code block should exist
440
448
  t.true(codeBlockStarts.length > 0);
441
449
  });
442
- test("MarkdownParser: ensures proper spacing around headings", (t) => {
450
+ test("MarkdownParser: ensures proper spacing around headings", async (t) => {
443
451
  const parser = new MarkdownParser();
444
452
  const htmlWithHeadings = `<html><body>
445
453
  <p>Paragraph before</p>
446
454
  <h2>Heading</h2>
447
455
  <p>Paragraph after</p>
448
456
  </body></html>`;
449
- const result = parser.convert(htmlWithHeadings);
457
+ const result = await parser.convert(htmlWithHeadings);
450
458
  // Heading should exist in the output
451
459
  t.true(result.markdown.includes("Heading"));
452
460
  t.true(result.markdown.includes("Paragraph before"));
453
461
  t.true(result.markdown.includes("Paragraph after"));
454
462
  });
455
463
  // Options tests
456
- test("MarkdownParser: respects maxLength option", (t) => {
464
+ test("MarkdownParser: respects maxLength option", async (t) => {
457
465
  const parser = new MarkdownParser();
458
- const result = parser.convert(LONG_HTML, { maxLength: 500 });
466
+ const result = await parser.convert(LONG_HTML, { maxLength: 500 });
459
467
  t.true(result.markdown.length <= 550); // Some margin for truncation message
460
468
  t.true(result.markdown.includes("[Content truncated]"));
461
469
  });
462
- test("MarkdownParser: resolves relative URLs with baseUrl", (t) => {
470
+ test("MarkdownParser: resolves relative URLs with baseUrl", async (t) => {
463
471
  const parser = new MarkdownParser();
464
472
  const html = '<html><body><a href="/page">Link</a></body></html>';
465
- const result = parser.convert(html, { baseUrl: "https://example.com" });
473
+ const result = await parser.convert(html, { baseUrl: "https://example.com" });
466
474
  t.true(result.markdown.includes("https://example.com/page") ||
467
475
  result.markdown.includes("example.com/page"));
468
476
  });
469
- test("MarkdownParser: accepts custom rules", (t) => {
477
+ test("MarkdownParser: accepts custom rules", async (t) => {
470
478
  const parser = new MarkdownParser();
471
479
  const customRules = [
472
480
  {
@@ -476,45 +484,45 @@ test("MarkdownParser: accepts custom rules", (t) => {
476
484
  },
477
485
  ];
478
486
  const html = "<html><body><strong>Bold</strong></body></html>";
479
- const result = parser.convert(html, { customRules });
487
+ const result = await parser.convert(html, { customRules });
480
488
  t.true(result.markdown.includes("CUSTOM:Bold"));
481
489
  });
482
490
  // Edge cases
483
- test("MarkdownParser: handles empty HTML", (t) => {
491
+ test("MarkdownParser: handles empty HTML", async (t) => {
484
492
  const parser = new MarkdownParser();
485
- const result = parser.convert("");
493
+ const result = await parser.convert("");
486
494
  t.truthy(result.markdown);
487
495
  t.is(typeof result.markdown, "string");
488
496
  });
489
- test("MarkdownParser: handles HTML without body", (t) => {
497
+ test("MarkdownParser: handles HTML without body", async (t) => {
490
498
  const parser = new MarkdownParser();
491
- const result = parser.convert("<html><head><title>Test</title></head></html>");
499
+ const result = await parser.convert("<html><head><title>Test</title></head></html>");
492
500
  t.truthy(result.markdown);
493
501
  t.is(typeof result.markdown, "string");
494
502
  });
495
- test("MarkdownParser: handles malformed HTML gracefully", (t) => {
503
+ test("MarkdownParser: handles malformed HTML gracefully", async (t) => {
496
504
  const parser = new MarkdownParser();
497
505
  const malformed = "<html><body><p>Unclosed paragraph<div>Nested incorrectly</p></div>";
498
- const result = parser.convert(malformed);
506
+ const result = await parser.convert(malformed);
499
507
  t.truthy(result.markdown);
500
508
  t.true(result.markdown.length > 0);
501
509
  });
502
- test("MarkdownParser: preserves special characters in text", (t) => {
510
+ test("MarkdownParser: preserves special characters in text", async (t) => {
503
511
  const parser = new MarkdownParser();
504
512
  const html = "<html><body><p>Price: $100 &amp; €50</p></body></html>";
505
- const result = parser.convert(html);
513
+ const result = await parser.convert(html);
506
514
  t.true(result.markdown.includes("$100"));
507
515
  t.true(result.markdown.includes("€50") || result.markdown.includes("&"));
508
516
  });
509
- test("MarkdownParser: handles nested formatting", (t) => {
517
+ test("MarkdownParser: handles nested formatting", async (t) => {
510
518
  const parser = new MarkdownParser();
511
519
  const html = "<html><body><p><strong>Bold <em>and italic</em></strong></p></body></html>";
512
- const result = parser.convert(html);
520
+ const result = await parser.convert(html);
513
521
  t.true(result.markdown.includes("**"));
514
522
  t.true(result.markdown.includes("*"));
515
523
  });
516
524
  // Multiple option combinations
517
- test("MarkdownParser: applies multiple options together", (t) => {
525
+ test("MarkdownParser: applies multiple options together", async (t) => {
518
526
  const parser = new MarkdownParser();
519
527
  const html = `
520
528
  <html>
@@ -526,7 +534,7 @@ test("MarkdownParser: applies multiple options together", (t) => {
526
534
  </body>
527
535
  </html>
528
536
  `;
529
- const result = parser.convert(html, {
537
+ const result = await parser.convert(html, {
530
538
  includeImages: false,
531
539
  includeLinks: false,
532
540
  includeTables: false,
@@ -539,20 +547,20 @@ test("MarkdownParser: applies multiple options together", (t) => {
539
547
  t.true(result.markdown.includes("# Test"));
540
548
  });
541
549
  // Statistics validation
542
- test("MarkdownParser: provides accurate input/output lengths", (t) => {
550
+ test("MarkdownParser: provides accurate input/output lengths", async (t) => {
543
551
  const parser = new MarkdownParser();
544
- const result = parser.convert(SIMPLE_HTML);
552
+ const result = await parser.convert(SIMPLE_HTML);
545
553
  t.is(result.stats.inputLength, SIMPLE_HTML.length);
546
554
  t.true(result.stats.outputLength > 0);
547
555
  t.is(result.stats.outputLength, result.markdown.length);
548
556
  });
549
- test("MarkdownParser: measures processing time", (t) => {
557
+ test("MarkdownParser: measures processing time", async (t) => {
550
558
  const parser = new MarkdownParser();
551
- const result = parser.convert(SIMPLE_HTML);
559
+ const result = await parser.convert(SIMPLE_HTML);
552
560
  t.true(result.stats.processingTime >= 0);
553
561
  t.true(result.stats.processingTime < 10000); // Should be under 10 seconds
554
562
  });
555
- test("MarkdownParser: counts images and links correctly", (t) => {
563
+ test("MarkdownParser: counts images and links correctly", async (t) => {
556
564
  const parser = new MarkdownParser();
557
565
  const html = `
558
566
  <html><body>
@@ -563,15 +571,15 @@ test("MarkdownParser: counts images and links correctly", (t) => {
563
571
  <a href="/c">Link C</a>
564
572
  </body></html>
565
573
  `;
566
- const result = parser.convert(html);
574
+ const result = await parser.convert(html);
567
575
  t.is(result.stats.imageCount, 2);
568
576
  t.is(result.stats.linkCount, 3);
569
577
  });
570
578
  // Markdown formatting consistency
571
- test("MarkdownParser: uses consistent heading style", (t) => {
579
+ test("MarkdownParser: uses consistent heading style", async (t) => {
572
580
  const parser = new MarkdownParser();
573
581
  const html = "<html><body><h1>H1</h1><h2>H2</h2><h3>H3</h3></body></html>";
574
- const result = parser.convert(html);
582
+ const result = await parser.convert(html);
575
583
  // Headings should exist (checking content rather than exact formatting)
576
584
  t.true(result.markdown.includes("H1"));
577
585
  t.true(result.markdown.includes("H2"));
@@ -579,29 +587,29 @@ test("MarkdownParser: uses consistent heading style", (t) => {
579
587
  // Should use # style headings
580
588
  t.true(result.markdown.includes("#"));
581
589
  });
582
- test("MarkdownParser: uses consistent list markers", (t) => {
590
+ test("MarkdownParser: uses consistent list markers", async (t) => {
583
591
  const parser = new MarkdownParser();
584
- const result = parser.convert(HTML_WITH_LISTS);
592
+ const result = await parser.convert(HTML_WITH_LISTS);
585
593
  // Should use - for unordered lists
586
594
  t.true(result.markdown.includes("- Item"));
587
595
  });
588
- test("MarkdownParser: ends output with single newline", (t) => {
596
+ test("MarkdownParser: ends output with single newline", async (t) => {
589
597
  const parser = new MarkdownParser();
590
- const result = parser.convert(SIMPLE_HTML);
598
+ const result = await parser.convert(SIMPLE_HTML);
591
599
  t.true(result.markdown.endsWith("\n"));
592
600
  t.false(result.markdown.endsWith("\n\n"));
593
601
  });
594
602
  // YAML frontmatter formatting
595
- test("MarkdownParser: formats frontmatter correctly", (t) => {
603
+ test("MarkdownParser: formats frontmatter correctly", async (t) => {
596
604
  const parser = new MarkdownParser();
597
- const result = parser.convert(HTML_WITH_METADATA);
605
+ const result = await parser.convert(HTML_WITH_METADATA);
598
606
  const lines = result.markdown.split("\n");
599
607
  t.is(lines[0], "---");
600
608
  const closingIndex = lines.indexOf("---", 1);
601
609
  t.true(closingIndex > 0);
602
610
  t.is(lines[closingIndex + 1], "");
603
611
  });
604
- test("MarkdownParser: escapes special characters in frontmatter values", (t) => {
612
+ test("MarkdownParser: escapes special characters in frontmatter values", async (t) => {
605
613
  const parser = new MarkdownParser();
606
614
  const html = `
607
615
  <html>
@@ -613,7 +621,7 @@ Line 2">
613
621
  <body><h1>Content</h1></body>
614
622
  </html>
615
623
  `;
616
- const result = parser.convert(html);
624
+ const result = await parser.convert(html);
617
625
  // Values with colons or newlines should be quoted
618
626
  if (result.markdown.includes("Title: With Colon")) {
619
627
  t.true(result.markdown.includes('"Title: With Colon"'));
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parser.spec.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-parser.spec.js","sourceRoot":"","sources":["../../src/parsers/markdown-parser.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"url-fetcher.d.ts","sourceRoot":"","sources":["../../src/utils/url-fetcher.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOrD"}
1
+ {"version":3,"file":"url-fetcher.d.ts","sourceRoot":"","sources":["../../src/utils/url-fetcher.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOrD"}
@@ -1,5 +1,5 @@
1
1
  // src/utils/url-fetcher.ts
2
- import { DEFAULT_USER_AGENT, DEFAULT_FETCH_TIMEOUT } from "../config.js";
2
+ import { DEFAULT_FETCH_TIMEOUT, DEFAULT_USER_AGENT } from "../config.js";
3
3
  /**
4
4
  * Fetch HTML from a URL with timeout and redirect handling
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"url-fetcher.js","sourceRoot":"","sources":["../../src/utils/url-fetcher.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAG3B,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEzE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,UAAwB,EAAE;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IAExD,MAAM,OAAO,GAA2B;QACtC,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,iEAAiE;QACzE,iBAAiB,EAAE,gBAAgB;QACnC,iBAAiB,EAAE,mBAAmB;QACtC,GAAG,OAAO,CAAC,OAAO;KACnB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SAChD,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"url-fetcher.js","sourceRoot":"","sources":["../../src/utils/url-fetcher.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGzE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,UAAwB,EAAE;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,qBAAqB,CAAC;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;IAExD,MAAM,OAAO,GAA2B;QACtC,YAAY,EAAE,SAAS;QACvB,MAAM,EAAE,iEAAiE;QACzE,iBAAiB,EAAE,gBAAgB;QACnC,iBAAiB,EAAE,mBAAmB;QACtC,GAAG,OAAO,CAAC,OAAO;KACnB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO;YACP,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SAChD,CAAC,CAAC;QAEH,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=url-fetcher.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-fetcher.spec.d.ts","sourceRoot":"","sources":["../../src/utils/url-fetcher.spec.ts"],"names":[],"mappings":""}