defuddle 0.11.0 → 0.13.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 (67) hide show
  1. package/README.md +49 -29
  2. package/dist/cli.js +15 -46
  3. package/dist/cli.js.map +1 -1
  4. package/dist/constants.d.ts +9 -0
  5. package/dist/constants.js +33 -9
  6. package/dist/constants.js.map +1 -1
  7. package/dist/defuddle.d.ts +50 -2
  8. package/dist/defuddle.js +615 -238
  9. package/dist/defuddle.js.map +1 -1
  10. package/dist/elements/code.js +31 -9
  11. package/dist/elements/code.js.map +1 -1
  12. package/dist/elements/footnotes.js +2 -1
  13. package/dist/elements/footnotes.js.map +1 -1
  14. package/dist/elements/headings.js +42 -50
  15. package/dist/elements/headings.js.map +1 -1
  16. package/dist/extractor-registry.d.ts +1 -0
  17. package/dist/extractor-registry.js +3 -0
  18. package/dist/extractor-registry.js.map +1 -1
  19. package/dist/extractors/_base.d.ts +6 -0
  20. package/dist/extractors/_base.js +8 -0
  21. package/dist/extractors/_base.js.map +1 -1
  22. package/dist/extractors/github.d.ts +10 -2
  23. package/dist/extractors/github.js +158 -71
  24. package/dist/extractors/github.js.map +1 -1
  25. package/dist/extractors/hackernews.js +18 -72
  26. package/dist/extractors/hackernews.js.map +1 -1
  27. package/dist/extractors/reddit.d.ts +1 -2
  28. package/dist/extractors/reddit.js +41 -94
  29. package/dist/extractors/reddit.js.map +1 -1
  30. package/dist/extractors/x-oembed.d.ts +0 -1
  31. package/dist/extractors/x-oembed.js +20 -27
  32. package/dist/extractors/x-oembed.js.map +1 -1
  33. package/dist/extractors/youtube.d.ts +57 -0
  34. package/dist/extractors/youtube.js +619 -10
  35. package/dist/extractors/youtube.js.map +1 -1
  36. package/dist/index.full.js +1 -1
  37. package/dist/index.js +1 -1
  38. package/dist/markdown.js +5 -0
  39. package/dist/markdown.js.map +1 -1
  40. package/dist/metadata.d.ts +5 -0
  41. package/dist/metadata.js +28 -0
  42. package/dist/metadata.js.map +1 -1
  43. package/dist/node.d.ts +12 -5
  44. package/dist/node.js +53 -22
  45. package/dist/node.js.map +1 -1
  46. package/dist/scoring.d.ts +6 -1
  47. package/dist/scoring.js +69 -22
  48. package/dist/scoring.js.map +1 -1
  49. package/dist/standardize.js +152 -63
  50. package/dist/standardize.js.map +1 -1
  51. package/dist/types.d.ts +9 -0
  52. package/dist/utils/comments.d.ts +44 -0
  53. package/dist/utils/comments.js +103 -0
  54. package/dist/utils/comments.js.map +1 -0
  55. package/dist/utils/dom.d.ts +9 -0
  56. package/dist/utils/dom.js +20 -0
  57. package/dist/utils/dom.js.map +1 -1
  58. package/dist/utils/linkedom-compat.d.ts +5 -0
  59. package/dist/utils/linkedom-compat.js +23 -0
  60. package/dist/utils/linkedom-compat.js.map +1 -0
  61. package/dist/utils/transcript.d.ts +37 -0
  62. package/dist/utils/transcript.js +61 -0
  63. package/dist/utils/transcript.js.map +1 -0
  64. package/dist/utils.d.ts +6 -0
  65. package/dist/utils.js +36 -0
  66. package/dist/utils.js.map +1 -1
  67. package/package.json +3 -4
package/README.md CHANGED
@@ -5,11 +5,9 @@
5
5
 
6
6
  Defuddle extracts the main content from web pages. It cleans up web pages by removing clutter like comments, sidebars, headers, footers, and other non-essential elements, leaving only the primary content.
7
7
 
8
- [Try the Defuddle Playground →](https://defuddle.md/playground)
8
+ ## Overview
9
9
 
10
- ## Features
11
-
12
- Defuddle aims to output clean and consistent HTML documents. It was written for [Obsidian Web Clipper](https://github.com/obsidianmd/obsidian-clipper) with the goal of creating a more useful input for HTML-to-Markdown converters like [Turndown](https://github.com/mixmark-io/turndown).
10
+ Defuddle takes a URL or HTML, finds the main content, and returns cleaned HTML or Markdown. Defuddle was created for the browser extension [Obsidian Web Clipper](https://github.com/obsidianmd/obsidian-clipper), but it is designed to run in any environment.
13
11
 
14
12
  Defuddle can be used as a replacement for [Mozilla Readability](https://github.com/mozilla/readability) with a few differences:
15
13
 
@@ -37,58 +35,59 @@ console.log(result.author);
37
35
 
38
36
  ### Node.js
39
37
 
38
+ `defuddle/node` accepts a DOM `Document` from any implementation (JSDOM, linkedom, happy-dom, etc.).
39
+
40
40
  ```javascript
41
- import { JSDOM } from 'jsdom';
41
+ import { parseHTML } from 'linkedom';
42
42
  import { Defuddle } from 'defuddle/node';
43
43
 
44
- // Parse HTML from a string
45
- const html = '<html><body><article>...</article></body></html>';
46
- const result = await Defuddle(html);
47
-
48
- // Parse HTML from a URL
49
- const dom = await JSDOM.fromURL('https://example.com/article');
50
- const result = await Defuddle(dom);
51
-
52
- // With options
53
- const url = 'https://example.com/article'; // Original URL of the page
54
- const result = await Defuddle(dom, url, {
55
- debug: true, // Enable debug mode for verbose logging
56
- markdown: true // Convert content to markdown
44
+ const { document } = parseHTML(html);
45
+ const result = await Defuddle(document, 'https://example.com/article', {
46
+ markdown: true
57
47
  });
58
48
 
59
- // Access the content and metadata
60
49
  console.log(result.content);
61
50
  console.log(result.title);
62
51
  console.log(result.author);
63
52
  ```
64
53
 
54
+ Or with JSDOM:
55
+
56
+ ```javascript
57
+ import { JSDOM } from 'jsdom';
58
+ import { Defuddle } from 'defuddle/node';
59
+
60
+ const dom = new JSDOM(html, { url: 'https://example.com/article' });
61
+ const result = await Defuddle(dom.window.document, 'https://example.com/article');
62
+ ```
63
+
65
64
  _Note: for `defuddle/node` to import properly, the module format in your `package.json` has to be set to `{ "type": "module" }`_
66
65
 
67
66
  ### CLI
68
67
 
69
- Defuddle includes a command-line interface for parsing web pages directly from the terminal.
68
+ Defuddle includes a command-line interface for parsing web pages directly from the terminal. You can run it with `npx` or [install it globally](#cli-installation).
70
69
 
71
70
  ```bash
72
71
  # Parse a local HTML file
73
- defuddle parse page.html
72
+ npx defuddle parse page.html
74
73
 
75
74
  # Parse a URL
76
- defuddle parse https://example.com/article
75
+ npx defuddle parse https://example.com/article
77
76
 
78
77
  # Output as markdown
79
- defuddle parse page.html --markdown
78
+ npx defuddle parse page.html --markdown
80
79
 
81
80
  # Output as JSON with metadata
82
- defuddle parse page.html --json
81
+ npx defuddle parse page.html --json
83
82
 
84
83
  # Extract a specific property
85
- defuddle parse page.html --property title
84
+ npx defuddle parse page.html --property title
86
85
 
87
86
  # Save output to a file
88
- defuddle parse page.html --output result.html
87
+ npx defuddle parse page.html --output result.html
89
88
 
90
89
  # Enable debug mode
91
- defuddle parse page.html --debug
90
+ npx defuddle parse page.html --debug
92
91
  ```
93
92
 
94
93
  #### CLI Options
@@ -108,12 +107,32 @@ defuddle parse page.html --debug
108
107
  npm install defuddle
109
108
  ```
110
109
 
111
- For Node.js usage, you'll also need to install JSDOM:
110
+ For Node.js usage, install a DOM implementation:
111
+
112
+ ```bash
113
+ npm install linkedom
114
+ ```
115
+
116
+ Or use JSDOM:
112
117
 
113
118
  ```bash
114
119
  npm install jsdom
115
120
  ```
116
121
 
122
+ ### CLI installation
123
+
124
+ To use the `defuddle` command globally, install it with the `-g` flag:
125
+
126
+ ```bash
127
+ npm install -g defuddle
128
+ ```
129
+
130
+ Or use `npx` to run the CLI without installing globally:
131
+
132
+ ```bash
133
+ npx defuddle parse https://example.com/article
134
+ ```
135
+
117
136
  ## Response
118
137
 
119
138
  Defuddle returns an object with the following properties:
@@ -126,6 +145,7 @@ Defuddle returns an object with the following properties:
126
145
  | `domain` | string | Domain name of the website |
127
146
  | `favicon` | string | URL of the website's favicon |
128
147
  | `image` | string | URL of the article's main image |
148
+ | `language` | string | Language of the page in [BCP 47](https://www.rfc-editor.org/info/bcp47) format (e.g. `en`, `en-US`) |
129
149
  | `metaTags` | object | Meta tags |
130
150
  | `parseTime` | number | Time taken to parse the page in milliseconds |
131
151
  | `published` | string | Publication date of the article |
@@ -141,7 +161,7 @@ Defuddle is available in three different bundles:
141
161
 
142
162
  1. Core bundle (`defuddle`): The main bundle for browser usage. No dependencies.
143
163
  2. Full bundle (`defuddle/full`): Includes additional features for math equation parsing and Markdown conversion.
144
- 3. Node.js bundle (`defuddle/node`): Optimized for Node.js environments using JSDOM. Includes full capabilities for math and Markdown conversion.
164
+ 3. Node.js bundle (`defuddle/node`): For Node.js environments. Accepts any DOM `Document` (e.g. from linkedom, JSDOM, or happy-dom). Includes full capabilities for math and Markdown conversion.
145
165
 
146
166
  The core bundle is recommended for most use cases. It still handles math content, but doesn't include fallbacks for converting between MathML and LaTeX formats. The full bundle adds the ability to create reliable `<math>` elements using `mathml-to-latex` and `temml` libraries.
147
167
 
package/dist/cli.js CHANGED
@@ -1,43 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
3
  Object.defineProperty(exports, "__esModule", { value: true });
37
4
  const commander_1 = require("commander");
38
5
  const node_1 = require("./node");
39
6
  const promises_1 = require("fs/promises");
40
7
  const path_1 = require("path");
8
+ const linkedom_compat_1 = require("./utils/linkedom-compat");
41
9
  // ANSI color helpers (avoids chalk dependency which is ESM-only)
42
10
  const useColor = process.stdout.isTTY ?? false;
43
11
  const ansi = {
@@ -67,24 +35,23 @@ program
67
35
  if (options.md) {
68
36
  options.markdown = true;
69
37
  }
70
- let JSDOM;
71
- try {
72
- JSDOM = (await Promise.resolve().then(() => __importStar(require('jsdom')))).JSDOM;
73
- }
74
- catch {
75
- console.error(ansi.red('Error: jsdom is required for the CLI. Install it with: npm install jsdom'));
76
- process.exit(1);
77
- }
78
- let dom;
38
+ let html;
39
+ let url;
79
40
  // Determine if source is a URL or file path
80
41
  if (source.startsWith('http://') || source.startsWith('https://')) {
81
- dom = await JSDOM.fromURL(source);
42
+ url = source;
43
+ const response = await fetch(source);
44
+ if (!response.ok) {
45
+ throw new Error(`Failed to fetch ${source}: ${response.status} ${response.statusText}`);
46
+ }
47
+ html = await response.text();
82
48
  }
83
49
  else {
84
50
  const filePath = (0, path_1.resolve)(process.cwd(), source);
85
- dom = await JSDOM.fromFile(filePath);
51
+ html = await (0, promises_1.readFile)(filePath, 'utf-8');
86
52
  }
87
- const result = await (0, node_1.Defuddle)(dom, source.startsWith('http') ? source : undefined, {
53
+ const doc = (0, linkedom_compat_1.parseLinkedomHTML)(html);
54
+ const result = await (0, node_1.Defuddle)(doc, url, {
88
55
  debug: options.debug,
89
56
  markdown: options.markdown
90
57
  });
@@ -108,13 +75,15 @@ program
108
75
  domain: result.domain,
109
76
  favicon: result.favicon,
110
77
  image: result.image,
78
+ language: result.language,
111
79
  metaTags: result.metaTags,
112
80
  parseTime: result.parseTime,
113
81
  published: result.published,
114
82
  author: result.author,
115
83
  site: result.site,
116
84
  schemaOrgData: result.schemaOrgData,
117
- wordCount: result.wordCount
85
+ wordCount: result.wordCount,
86
+ ...(result.variables ? { variables: result.variables } : {}),
118
87
  }, null, 2);
119
88
  }
120
89
  else {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,20 @@
1
1
  export declare const ENTRY_POINT_ELEMENTS: string[];
2
2
  export declare const MOBILE_WIDTH = 600;
3
3
  export declare const BLOCK_ELEMENTS: string[];
4
+ export declare const BLOCK_ELEMENTS_SELECTOR: string;
5
+ export declare const BLOCK_ELEMENTS_SET: Set<string>;
4
6
  export declare const PRESERVE_ELEMENTS: Set<string>;
5
7
  export declare const INLINE_ELEMENTS: Set<string>;
8
+ export declare const HIDDEN_EXACT_SKIP_SELECTORS: string[];
9
+ export declare const HIDDEN_EXACT_SELECTORS: string[];
10
+ export declare const HIDDEN_EXACT_SELECTOR: string;
11
+ export declare const HIDDEN_EXACT_SKIP_SELECTOR: string;
6
12
  export declare const EXACT_SELECTORS: string[];
13
+ export declare const EXACT_SELECTORS_JOINED: string;
7
14
  export declare const TEST_ATTRIBUTES: string[];
8
15
  export declare const PARTIAL_SELECTORS: string[];
16
+ export declare const PARTIAL_SELECTORS_REGEX: RegExp;
17
+ export declare const TEST_ATTRIBUTES_SELECTOR: string;
9
18
  export declare const FOOTNOTE_INLINE_REFERENCES: string;
10
19
  export declare const FOOTNOTE_LIST_SELECTORS: string;
11
20
  export declare const ALLOWED_EMPTY_ELEMENTS: Set<string>;
package/dist/constants.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ALLOWED_ATTRIBUTES_DEBUG = exports.ALLOWED_ATTRIBUTES = exports.ALLOWED_EMPTY_ELEMENTS = exports.FOOTNOTE_LIST_SELECTORS = exports.FOOTNOTE_INLINE_REFERENCES = exports.PARTIAL_SELECTORS = exports.TEST_ATTRIBUTES = exports.EXACT_SELECTORS = exports.INLINE_ELEMENTS = exports.PRESERVE_ELEMENTS = exports.BLOCK_ELEMENTS = exports.MOBILE_WIDTH = exports.ENTRY_POINT_ELEMENTS = void 0;
3
+ exports.ALLOWED_ATTRIBUTES_DEBUG = exports.ALLOWED_ATTRIBUTES = exports.ALLOWED_EMPTY_ELEMENTS = exports.FOOTNOTE_LIST_SELECTORS = exports.FOOTNOTE_INLINE_REFERENCES = exports.TEST_ATTRIBUTES_SELECTOR = exports.PARTIAL_SELECTORS_REGEX = exports.PARTIAL_SELECTORS = exports.TEST_ATTRIBUTES = exports.EXACT_SELECTORS_JOINED = exports.EXACT_SELECTORS = exports.HIDDEN_EXACT_SKIP_SELECTOR = exports.HIDDEN_EXACT_SELECTOR = exports.HIDDEN_EXACT_SELECTORS = exports.HIDDEN_EXACT_SKIP_SELECTORS = exports.INLINE_ELEMENTS = exports.PRESERVE_ELEMENTS = exports.BLOCK_ELEMENTS_SET = exports.BLOCK_ELEMENTS_SELECTOR = exports.BLOCK_ELEMENTS = exports.MOBILE_WIDTH = exports.ENTRY_POINT_ELEMENTS = void 0;
4
4
  // Entry point elements
5
5
  // These are the elements that will be used to find the main content
6
6
  exports.ENTRY_POINT_ELEMENTS = [
7
7
  '#post',
8
8
  '.post-content',
9
+ '.post-body',
9
10
  '.article-content',
10
11
  '#article-content',
11
12
  '.article_post',
@@ -24,6 +25,8 @@ exports.ENTRY_POINT_ELEMENTS = [
24
25
  ];
25
26
  exports.MOBILE_WIDTH = 600;
26
27
  exports.BLOCK_ELEMENTS = ['div', 'section', 'article', 'main', 'aside', 'header', 'footer', 'nav', 'content'];
28
+ exports.BLOCK_ELEMENTS_SELECTOR = exports.BLOCK_ELEMENTS.join(',');
29
+ exports.BLOCK_ELEMENTS_SET = new Set(exports.BLOCK_ELEMENTS);
27
30
  // Elements that should not be unwrapped
28
31
  exports.PRESERVE_ELEMENTS = new Set([
29
32
  'pre', 'code', 'table', 'thead', 'tbody', 'tr', 'td', 'th',
@@ -40,6 +43,16 @@ exports.INLINE_ELEMENTS = new Set([
40
43
  'font'
41
44
  ]);
42
45
  // Selectors to be removed
46
+ exports.HIDDEN_EXACT_SKIP_SELECTORS = [
47
+ '[hidden]',
48
+ '[aria-hidden="true"]',
49
+ '.hidden',
50
+ '.invisible',
51
+ ];
52
+ exports.HIDDEN_EXACT_SELECTORS = exports.HIDDEN_EXACT_SKIP_SELECTORS.map(s => s === '[aria-hidden="true"]' ? '[aria-hidden="true"]:not([class*="math"])' : s);
53
+ // Pre-joined selector strings (these arrays are constant)
54
+ exports.HIDDEN_EXACT_SELECTOR = exports.HIDDEN_EXACT_SELECTORS.join(',');
55
+ exports.HIDDEN_EXACT_SKIP_SELECTOR = exports.HIDDEN_EXACT_SKIP_SELECTORS.join(',');
43
56
  exports.EXACT_SELECTORS = [
44
57
  // scripts, styles
45
58
  'noscript',
@@ -114,6 +127,8 @@ exports.EXACT_SELECTORS = [
114
127
  '[href*="/author/"]',
115
128
  '[href*="/author?"]',
116
129
  '[href$="/author"]',
130
+ 'a[href*="copyright.com"]',
131
+ 'a[href*="google.com/preferences"]',
117
132
  '[href*="#toc"]',
118
133
  '[href="#top"]',
119
134
  '[href="#Top"]',
@@ -145,14 +160,10 @@ exports.EXACT_SELECTORS = [
145
160
  // 'time', // see issue #136
146
161
  // 'relative-time', // see issue #136
147
162
  // hidden
148
- '[hidden]',
149
- '[aria-hidden="true"]:not([class*="math"])',
150
- '[style*="display: none"]:not([class*="math"])',
151
- '[style*="display:none"]:not([class*="math"])',
152
- '[style*="visibility: hidden"]',
153
- '[style*="visibility:hidden"]',
154
- '.hidden',
155
- '.invisible',
163
+ ...exports.HIDDEN_EXACT_SELECTORS,
164
+ // Note: [style*="display: none"] removed — substring match causes false positives
165
+ // with CSS custom properties like --footer-display: none. The removeHiddenElements
166
+ // step handles inline style detection with a proper regex.
156
167
  // iframes
157
168
  'instaread-player',
158
169
  'iframe:not([src*="youtube"]):not([src*="youtu.be"]):not([src*="vimeo"]):not([src*="twitter"]):not([src*="x.com"]):not([src*="datawrapper"])',
@@ -202,6 +213,7 @@ exports.EXACT_SELECTORS = [
202
213
  '.gh-header-sticky', // GitHub
203
214
  '[data-testid="issue-metadata-sticky"]', // GitHub
204
215
  ];
216
+ exports.EXACT_SELECTORS_JOINED = exports.EXACT_SELECTORS.join(',');
205
217
  // Attributes to test against for partial matches
206
218
  exports.TEST_ATTRIBUTES = [
207
219
  'class',
@@ -228,6 +240,8 @@ exports.PARTIAL_SELECTORS = [
228
240
  'ad-placement',
229
241
  'ads-container',
230
242
  '_ad_',
243
+ 'AdBlock_',
244
+ 'AdUnit',
231
245
  'after_content',
232
246
  'after_main_article',
233
247
  'afterpost',
@@ -370,6 +384,7 @@ exports.PARTIAL_SELECTORS = [
370
384
  'disclosure',
371
385
  'discussion',
372
386
  'discuss_',
387
+ '-dismiss',
373
388
  'disqus',
374
389
  'donate',
375
390
  'donation',
@@ -441,12 +456,14 @@ exports.PARTIAL_SELECTORS = [
441
456
  'interlude',
442
457
  'interaction',
443
458
  'itemendrow',
459
+ 'intro-date',
444
460
  'invisible',
445
461
  'jp-no-solution',
446
462
  'jp-relatedposts',
447
463
  'jswarning',
448
464
  'js-warning',
449
465
  'jumplink',
466
+ 'jumpto',
450
467
  'jump-to-',
451
468
  'js-skip-to-content',
452
469
  'keepreading',
@@ -484,6 +501,8 @@ exports.PARTIAL_SELECTORS = [
484
501
  'menu-',
485
502
  // 'meta-', syntax highlighting
486
503
  'metadata',
504
+ 'meta-date',
505
+ 'meta-row',
487
506
  'might-like',
488
507
  'minibio',
489
508
  'more-about',
@@ -648,6 +667,7 @@ exports.PARTIAL_SELECTORS = [
648
667
  'share-post',
649
668
  'share-print',
650
669
  'share-section',
670
+ 'shariff-',
651
671
  'show-for-print',
652
672
  'sidebartitle',
653
673
  // 'sidebar_',
@@ -743,6 +763,10 @@ exports.PARTIAL_SELECTORS = [
743
763
  'widget_pages',
744
764
  // 'widget-'
745
765
  ];
766
+ // Pre-compiled combined regex for PARTIAL_SELECTORS — avoids rebuilding on every parse
767
+ exports.PARTIAL_SELECTORS_REGEX = new RegExp(exports.PARTIAL_SELECTORS.join('|'), 'i');
768
+ // Attribute selector for elements we test partial matches against
769
+ exports.TEST_ATTRIBUTES_SELECTOR = exports.TEST_ATTRIBUTES.map(attr => `[${attr}]`).join(',');
746
770
  // Selectors for footnotes and citations
747
771
  exports.FOOTNOTE_INLINE_REFERENCES = [
748
772
  'sup.reference',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,23 @@ export declare class Defuddle {
3
3
  private readonly doc;
4
4
  private options;
5
5
  private debug;
6
+ private _schemaOrgData;
7
+ private _schemaOrgExtracted;
8
+ private _metaTags;
9
+ private _metadata;
10
+ private _mobileStyles;
11
+ private _smallImages;
6
12
  /**
7
13
  * Create a new Defuddle instance
8
14
  * @param doc - The document to parse
9
15
  * @param options - Options for parsing
10
16
  */
11
17
  constructor(doc: Document, options?: DefuddleOptions);
18
+ /**
19
+ * Lazily extract and cache schema.org data. Must be called before
20
+ * parse() strips script tags from the document.
21
+ */
22
+ private getSchemaOrgData;
12
23
  /**
13
24
  * Parse the document and extract its main content
14
25
  */
@@ -29,20 +40,32 @@ export declare class Defuddle {
29
40
  * Returns the element's inner HTML including sibling media (images, etc.)
30
41
  */
31
42
  private _findContentBySchemaText;
43
+ private findLargestHiddenContentSelector;
32
44
  /**
33
45
  * Get the largest available src from an img element,
34
46
  * checking srcset for higher-resolution versions.
35
47
  */
36
48
  private _getLargestImageSrc;
37
49
  /**
38
- * Parse the document, falling back to async extractors if sync parse yields no content
50
+ * Parse the document asynchronously. Checks for extractors that prefer
51
+ * async (e.g. YouTube transcripts) before sync, then falls back to async
52
+ * extractors if sync parse yields no content.
39
53
  */
40
54
  parseAsync(): Promise<DefuddleResponse>;
55
+ /**
56
+ * Fetch only async variables (e.g. transcript) without re-parsing.
57
+ * Safe to call after parse() — uses cached schema.org data since
58
+ * parse() strips script tags from the document.
59
+ */
60
+ fetchAsyncVariables(): Promise<{
61
+ [key: string]: string;
62
+ } | null>;
63
+ private tryAsyncExtractor;
41
64
  /**
42
65
  * Internal parse method that does the actual work
43
66
  */
44
67
  private parseInternal;
45
- private countWords;
68
+ private countHtmlWords;
46
69
  private _log;
47
70
  private _evaluateMediaQueries;
48
71
  private applyMobileStyles;
@@ -66,6 +89,13 @@ export declare class Defuddle {
66
89
  * Walks both trees in parallel so positional correspondence is exact.
67
90
  */
68
91
  private flattenShadowRoots;
92
+ /**
93
+ * Resolve React streaming SSR suspense boundaries.
94
+ * React's streaming SSR places content in hidden divs (id="S:0") and
95
+ * template placeholders (id="B:0") with $RC scripts to swap them.
96
+ * Since we don't execute scripts, we perform the swap manually.
97
+ */
98
+ private resolveStreamedContent;
69
99
  /**
70
100
  * Replace a shadow DOM host element with a div containing its shadow content.
71
101
  * Custom elements (tag names with hyphens) would re-initialize when inserted
@@ -79,4 +109,22 @@ export declare class Defuddle {
79
109
  private _extractSchemaOrgData;
80
110
  private _collectMetaTags;
81
111
  private _decodeHTMLEntities;
112
+ /**
113
+ * Build a DefuddleResponse from an extractor result with metadata
114
+ */
115
+ private buildExtractorResponse;
116
+ /**
117
+ * Filter extractor variables to only include custom ones
118
+ * (exclude standard fields that are already mapped to top-level properties)
119
+ */
120
+ private getExtractorVariables;
121
+ /**
122
+ * Content-based pattern removal for elements that can't be detected by
123
+ * CSS selectors (e.g. Tailwind/CSS-in-JS sites with non-semantic class names).
124
+ */
125
+ private removeByContentPattern;
126
+ /**
127
+ * Remove an element's following siblings, and optionally the element itself.
128
+ */
129
+ private removeTrailingSiblings;
82
130
  }