@mz1999/defuddle 0.14.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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +371 -0
  3. package/dist/cli.d.ts +2 -0
  4. package/dist/cli.js +145 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/constants.d.ts +24 -0
  7. package/dist/constants.js +950 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/defuddle.d.ts +136 -0
  10. package/dist/defuddle.js +1816 -0
  11. package/dist/defuddle.js.map +1 -0
  12. package/dist/elements/callouts.d.ts +6 -0
  13. package/dist/elements/callouts.js +74 -0
  14. package/dist/elements/callouts.js.map +1 -0
  15. package/dist/elements/code.d.ts +5 -0
  16. package/dist/elements/code.js +346 -0
  17. package/dist/elements/code.js.map +1 -0
  18. package/dist/elements/footnotes.d.ts +5 -0
  19. package/dist/elements/footnotes.js +619 -0
  20. package/dist/elements/footnotes.js.map +1 -0
  21. package/dist/elements/headings.d.ts +11 -0
  22. package/dist/elements/headings.js +100 -0
  23. package/dist/elements/headings.js.map +1 -0
  24. package/dist/elements/images.d.ts +8 -0
  25. package/dist/elements/images.js +877 -0
  26. package/dist/elements/images.js.map +1 -0
  27. package/dist/elements/math.base.d.ts +9 -0
  28. package/dist/elements/math.base.js +195 -0
  29. package/dist/elements/math.base.js.map +1 -0
  30. package/dist/elements/math.core.d.ts +7 -0
  31. package/dist/elements/math.core.js +52 -0
  32. package/dist/elements/math.core.js.map +1 -0
  33. package/dist/elements/math.d.ts +2 -0
  34. package/dist/elements/math.full.d.ts +8 -0
  35. package/dist/elements/math.js +7 -0
  36. package/dist/elements/math.js.map +1 -0
  37. package/dist/extractor-registry.d.ts +16 -0
  38. package/dist/extractor-registry.js +140 -0
  39. package/dist/extractor-registry.js.map +1 -0
  40. package/dist/extractors/_base.d.ts +22 -0
  41. package/dist/extractors/_base.js +27 -0
  42. package/dist/extractors/_base.js.map +1 -0
  43. package/dist/extractors/_conversation.d.ts +9 -0
  44. package/dist/extractors/_conversation.js +78 -0
  45. package/dist/extractors/_conversation.js.map +1 -0
  46. package/dist/extractors/chatgpt.d.ts +14 -0
  47. package/dist/extractors/chatgpt.js +138 -0
  48. package/dist/extractors/chatgpt.js.map +1 -0
  49. package/dist/extractors/claude.d.ts +10 -0
  50. package/dist/extractors/claude.js +91 -0
  51. package/dist/extractors/claude.js.map +1 -0
  52. package/dist/extractors/gemini.d.ts +14 -0
  53. package/dist/extractors/gemini.js +111 -0
  54. package/dist/extractors/gemini.js.map +1 -0
  55. package/dist/extractors/github.d.ts +20 -0
  56. package/dist/extractors/github.js +251 -0
  57. package/dist/extractors/github.js.map +1 -0
  58. package/dist/extractors/grok.d.ts +15 -0
  59. package/dist/extractors/grok.js +142 -0
  60. package/dist/extractors/grok.js.map +1 -0
  61. package/dist/extractors/hackernews.d.ts +21 -0
  62. package/dist/extractors/hackernews.js +155 -0
  63. package/dist/extractors/hackernews.js.map +1 -0
  64. package/dist/extractors/reddit.d.ts +22 -0
  65. package/dist/extractors/reddit.js +197 -0
  66. package/dist/extractors/reddit.js.map +1 -0
  67. package/dist/extractors/twitter.d.ts +16 -0
  68. package/dist/extractors/twitter.js +204 -0
  69. package/dist/extractors/twitter.js.map +1 -0
  70. package/dist/extractors/x-article.d.ts +24 -0
  71. package/dist/extractors/x-article.js +267 -0
  72. package/dist/extractors/x-article.js.map +1 -0
  73. package/dist/extractors/x-oembed.d.ts +20 -0
  74. package/dist/extractors/x-oembed.js +350 -0
  75. package/dist/extractors/x-oembed.js.map +1 -0
  76. package/dist/extractors/youtube.d.ts +87 -0
  77. package/dist/extractors/youtube.js +869 -0
  78. package/dist/extractors/youtube.js.map +1 -0
  79. package/dist/fetch.d.ts +18 -0
  80. package/dist/fetch.js +265 -0
  81. package/dist/fetch.js.map +1 -0
  82. package/dist/index.d.ts +3 -0
  83. package/dist/index.full.d.ts +12 -0
  84. package/dist/index.full.js +1 -0
  85. package/dist/index.js +1 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/markdown.d.ts +30 -0
  88. package/dist/markdown.js +661 -0
  89. package/dist/markdown.js.map +1 -0
  90. package/dist/metadata.d.ts +25 -0
  91. package/dist/metadata.js +426 -0
  92. package/dist/metadata.js.map +1 -0
  93. package/dist/node.d.ts +19 -0
  94. package/dist/node.js +78 -0
  95. package/dist/node.js.map +1 -0
  96. package/dist/scoring.d.ts +31 -0
  97. package/dist/scoring.js +472 -0
  98. package/dist/scoring.js.map +1 -0
  99. package/dist/standardize.d.ts +2 -0
  100. package/dist/standardize.js +1101 -0
  101. package/dist/standardize.js.map +1 -0
  102. package/dist/types/extractors.d.ts +41 -0
  103. package/dist/types/extractors.js +3 -0
  104. package/dist/types/extractors.js.map +1 -0
  105. package/dist/types.d.ts +135 -0
  106. package/dist/types.js +3 -0
  107. package/dist/types.js.map +1 -0
  108. package/dist/utils/comments.d.ts +44 -0
  109. package/dist/utils/comments.js +103 -0
  110. package/dist/utils/comments.js.map +1 -0
  111. package/dist/utils/dom.d.ts +42 -0
  112. package/dist/utils/dom.js +104 -0
  113. package/dist/utils/dom.js.map +1 -0
  114. package/dist/utils/linkedom-compat.d.ts +5 -0
  115. package/dist/utils/linkedom-compat.js +23 -0
  116. package/dist/utils/linkedom-compat.js.map +1 -0
  117. package/dist/utils/transcript.d.ts +37 -0
  118. package/dist/utils/transcript.js +61 -0
  119. package/dist/utils/transcript.js.map +1 -0
  120. package/dist/utils.d.ts +13 -0
  121. package/dist/utils.js +98 -0
  122. package/dist/utils.js.map +1 -0
  123. package/package.json +107 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/elements/images.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface MathData {
2
+ mathml: string;
3
+ latex: string | null;
4
+ isBlock: boolean;
5
+ }
6
+ export declare const getMathMLFromElement: (el: Element) => MathData | null;
7
+ export declare const getBasicLatexFromElement: (el: Element) => string | null;
8
+ export declare const isBlockDisplay: (el: Element) => boolean;
9
+ export declare const mathSelectors: string;
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mathSelectors = exports.isBlockDisplay = exports.getBasicLatexFromElement = exports.getMathMLFromElement = void 0;
4
+ const dom_1 = require("../utils/dom");
5
+ const getMathMLFromElement = (el) => {
6
+ // 1. Direct MathML content
7
+ if (el.tagName.toLowerCase() === 'math') {
8
+ const isBlock = el.getAttribute('display') === 'block';
9
+ return {
10
+ mathml: el.outerHTML,
11
+ latex: el.getAttribute('alttext') || null,
12
+ isBlock
13
+ };
14
+ }
15
+ // 2. MathML in data-mathml attribute
16
+ const mathmlStr = el.getAttribute('data-mathml');
17
+ if (mathmlStr) {
18
+ const doc = el.ownerDocument || document;
19
+ const fragment = (0, dom_1.parseHTML)(doc, mathmlStr);
20
+ const mathElement = fragment.querySelector('math');
21
+ if (mathElement) {
22
+ const isBlock = mathElement.getAttribute('display') === 'block';
23
+ return {
24
+ mathml: mathElement.outerHTML,
25
+ latex: mathElement.getAttribute('alttext') || null,
26
+ isBlock
27
+ };
28
+ }
29
+ }
30
+ // 3. MathJax assistive MathML
31
+ const assistiveMmlContainer = el.querySelector('.MJX_Assistive_MathML, mjx-assistive-mml');
32
+ if (assistiveMmlContainer) {
33
+ const mathElement = assistiveMmlContainer.querySelector('math');
34
+ if (mathElement) {
35
+ // Check both the math element and container for display mode
36
+ const mathDisplayAttr = mathElement.getAttribute('display');
37
+ const containerDisplayAttr = assistiveMmlContainer.getAttribute('display');
38
+ const isBlock = mathDisplayAttr === 'block' || containerDisplayAttr === 'block';
39
+ return {
40
+ mathml: mathElement.outerHTML,
41
+ latex: mathElement.getAttribute('alttext') || null,
42
+ isBlock
43
+ };
44
+ }
45
+ }
46
+ // 4. KaTeX MathML
47
+ const katexMathml = el.querySelector('.katex-mathml math');
48
+ if (katexMathml) {
49
+ return {
50
+ mathml: katexMathml.outerHTML,
51
+ latex: null, // We'll get LaTeX separately for KaTeX
52
+ isBlock: false // We'll determine this from container
53
+ };
54
+ }
55
+ return null;
56
+ };
57
+ exports.getMathMLFromElement = getMathMLFromElement;
58
+ const getBasicLatexFromElement = (el) => {
59
+ // Direct data-latex attribute
60
+ const dataLatex = el.getAttribute('data-latex');
61
+ if (dataLatex) {
62
+ return dataLatex;
63
+ }
64
+ // WordPress LaTeX images
65
+ if (el.tagName.toLowerCase() === 'img' && el.classList.contains('latex')) {
66
+ // Try alt text first as it's cleaner
67
+ const altLatex = el.getAttribute('alt');
68
+ if (altLatex) {
69
+ return altLatex;
70
+ }
71
+ // Fallback to extracting from URL
72
+ const src = el.getAttribute('src');
73
+ if (src) {
74
+ const match = src.match(/latex\.php\?latex=([^&]+)/);
75
+ if (match) {
76
+ return decodeURIComponent(match[1])
77
+ .replace(/\+/g, ' ') // Replace + with spaces
78
+ .replace(/%5C/g, '\\'); // Fix escaped backslashes
79
+ }
80
+ }
81
+ }
82
+ // LaTeX in annotation
83
+ const annotation = el.querySelector('annotation[encoding="application/x-tex"]');
84
+ if (annotation?.textContent) {
85
+ return annotation.textContent.trim();
86
+ }
87
+ // KaTeX formats
88
+ if (el.matches('.katex')) {
89
+ const katexAnnotation = el.querySelector('.katex-mathml annotation[encoding="application/x-tex"]');
90
+ if (katexAnnotation?.textContent) {
91
+ return katexAnnotation.textContent.trim();
92
+ }
93
+ }
94
+ // MathJax scripts
95
+ if (el.matches('script[type="math/tex"]') || el.matches('script[type="math/tex; mode=display"]')) {
96
+ return el.textContent?.trim() || null;
97
+ }
98
+ // Check for sibling script element
99
+ if (el.parentElement) {
100
+ const siblingScript = el.parentElement.querySelector('script[type="math/tex"], script[type="math/tex; mode=display"]');
101
+ if (siblingScript) {
102
+ return siblingScript.textContent?.trim() || null;
103
+ }
104
+ }
105
+ // For <math> elements, textContent gives clean Unicode (e.g. "f′", "a~")
106
+ // Only safe for <math> — other containers (mjx-container, .katex) have garbage textContent
107
+ if (el.tagName.toLowerCase() === 'math' && el.textContent?.trim()) {
108
+ return el.textContent.trim();
109
+ }
110
+ // Fallback to alt text only
111
+ return el.getAttribute('alt') || null;
112
+ };
113
+ exports.getBasicLatexFromElement = getBasicLatexFromElement;
114
+ const isBlockDisplay = (el) => {
115
+ // Check explicit display attribute
116
+ const displayAttr = el.getAttribute('display');
117
+ if (displayAttr === 'block') {
118
+ return true;
119
+ }
120
+ // Check common class names
121
+ const classNames = (0, dom_1.getClassName)(el).toLowerCase();
122
+ if (classNames.includes('display') || classNames.includes('block')) {
123
+ return true;
124
+ }
125
+ // Check container classes
126
+ const container = el.closest('.katex-display, .MathJax_Display, [data-display="block"]');
127
+ if (container) {
128
+ return true;
129
+ }
130
+ // Check if preceded by block element
131
+ const prevElement = el.previousElementSibling;
132
+ if (prevElement?.tagName.toLowerCase() === 'p') {
133
+ return true;
134
+ }
135
+ // Check specific formats
136
+ if (el.matches('.mwe-math-fallback-image-display')) {
137
+ return true;
138
+ }
139
+ // Check KaTeX display mode
140
+ if (el.matches('.katex')) {
141
+ // KaTeX elements are inline by default
142
+ // Only block if explicitly marked as display
143
+ return el.closest('.katex-display') !== null;
144
+ }
145
+ // Check MathJax v3 display attribute
146
+ if (el.hasAttribute('display')) {
147
+ return el.getAttribute('display') === 'true';
148
+ }
149
+ // Check MathJax script display attribute
150
+ if (el.matches('script[type="math/tex; mode=display"]')) {
151
+ return true;
152
+ }
153
+ // Check parent container display attribute
154
+ const parentContainer = el.closest('[display]');
155
+ if (parentContainer) {
156
+ return parentContainer.getAttribute('display') === 'true';
157
+ }
158
+ return false;
159
+ };
160
+ exports.isBlockDisplay = isBlockDisplay;
161
+ // Shared selector for math elements
162
+ exports.mathSelectors = [
163
+ // WordPress LaTeX images
164
+ 'img.latex[src*="latex.php"]',
165
+ // MathJax elements (v2 and v3)
166
+ 'span.MathJax',
167
+ 'mjx-container',
168
+ 'script[type="math/tex"]',
169
+ 'script[type="math/tex; mode=display"]',
170
+ '.MathJax_Preview + script[type="math/tex"]',
171
+ '.MathJax_Display',
172
+ '.MathJax_SVG',
173
+ '.MathJax_MathML',
174
+ // MediaWiki math elements
175
+ '.mwe-math-element',
176
+ '.mwe-math-fallback-image-inline',
177
+ '.mwe-math-fallback-image-display',
178
+ '.mwe-math-mathml-inline',
179
+ '.mwe-math-mathml-display',
180
+ // KaTeX elements
181
+ '.katex',
182
+ '.katex-display',
183
+ '.katex-mathml',
184
+ '.katex-html',
185
+ '[data-katex]',
186
+ 'script[type="math/katex"]',
187
+ // Generic math elements and other formats
188
+ 'math',
189
+ '[data-math]',
190
+ '[data-latex]',
191
+ '[data-tex]',
192
+ 'script[type^="math/"]',
193
+ 'annotation[encoding="application/x-tex"]'
194
+ ].join(',');
195
+ //# sourceMappingURL=math.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.base.js","sourceRoot":"","sources":["../../src/elements/math.base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MathData } from './math.base';
2
+ export declare const createCleanMathEl: (doc: Document, mathData: MathData | null, latex: string | null, isBlock: boolean) => Element;
3
+ export declare const mathRules: {
4
+ selector: string;
5
+ element: string;
6
+ transform: (el: Element, doc: Document) => Element;
7
+ }[];
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mathRules = exports.createCleanMathEl = void 0;
4
+ const math_base_1 = require("./math.base");
5
+ const dom_1 = require("../utils/dom");
6
+ const createCleanMathEl = (doc, mathData, latex, isBlock) => {
7
+ const cleanMathEl = doc.createElement('math');
8
+ cleanMathEl.setAttribute('xmlns', 'http://www.w3.org/1998/Math/MathML');
9
+ cleanMathEl.setAttribute('display', isBlock ? 'block' : 'inline');
10
+ cleanMathEl.setAttribute('data-latex', latex || '');
11
+ // First try to use existing MathML content
12
+ if (mathData?.mathml) {
13
+ const fragment = (0, dom_1.parseHTML)(doc, mathData.mathml);
14
+ const mathContent = fragment.querySelector('math');
15
+ if (mathContent) {
16
+ (0, dom_1.transferContent)(mathContent, cleanMathEl);
17
+ }
18
+ }
19
+ // If no MathML content but we have LaTeX, store it as text content
20
+ else if (latex) {
21
+ cleanMathEl.textContent = latex;
22
+ }
23
+ return cleanMathEl;
24
+ };
25
+ exports.createCleanMathEl = createCleanMathEl;
26
+ function hasHTMLElementProps(el) {
27
+ return 'classList' in el && 'getAttribute' in el && 'querySelector' in el;
28
+ }
29
+ // Find math elements
30
+ exports.mathRules = [
31
+ {
32
+ selector: math_base_1.mathSelectors,
33
+ element: 'math',
34
+ transform: (el, doc) => {
35
+ if (!hasHTMLElementProps(el))
36
+ return el;
37
+ const mathData = (0, math_base_1.getMathMLFromElement)(el);
38
+ const latex = (0, math_base_1.getBasicLatexFromElement)(el);
39
+ const isBlock = (0, math_base_1.isBlockDisplay)(el);
40
+ const cleanMathEl = (0, exports.createCleanMathEl)(doc, mathData, latex, isBlock);
41
+ // Clean up any associated math scripts after we've extracted their content.
42
+ // Skip when el itself is a math script — it will be replaced by the
43
+ // caller, and removing siblings here would destroy unprocessed scripts.
44
+ if (el.parentElement && !el.matches('script[type^="math/"]')) {
45
+ const mathElements = el.parentElement.querySelectorAll('script[type^="math/"], .MathJax_Preview, script[type="text/javascript"][src*="mathjax"], script[type="text/javascript"][src*="katex"]');
46
+ mathElements.forEach(el => el.remove());
47
+ }
48
+ return cleanMathEl;
49
+ }
50
+ }
51
+ ];
52
+ //# sourceMappingURL=math.core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.core.js","sourceRoot":"","sources":["../../src/elements/math.core.ts"],"names":[],"mappings":";;;AAAA,2CAMqB;AACrB,sCAA0D;AAEnD,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,QAAyB,EAAE,KAAoB,EAAE,OAAgB,EAAW,EAAE;IAC9H,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAE9C,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAAC,CAAC;IACxE,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAEpD,2CAA2C;IAC3C,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAA,eAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YACjB,IAAA,qBAAe,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,mEAAmE;SAC9D,IAAI,KAAK,EAAE,CAAC;QAChB,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AArBW,QAAA,iBAAiB,qBAqB5B;AAEF,SAAS,mBAAmB,CAAC,EAAW;IACvC,OAAO,WAAW,IAAI,EAAE,IAAI,cAAc,IAAI,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED,qBAAqB;AACR,QAAA,SAAS,GAAG;IACxB;QACC,QAAQ,EAAE,yBAAa;QACvB,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,CAAC,EAAW,EAAE,GAAa,EAAW,EAAE;YAClD,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;YAExC,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAA,oCAAmB,EAAC,EAAE,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAA,0BAAc,EAAC,EAAE,CAAC,CAAC;YACnC,MAAM,WAAW,GAAG,IAAA,yBAAiB,EAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAErE,4EAA4E;YAC5E,oEAAoE;YACpE,wEAAwE;YACxE,IAAI,EAAE,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;gBAC9D,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,CACrD,uIAAuI,CACvI,CAAC;gBACF,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,OAAO,WAAW,CAAC;QACpB,CAAC;KACD;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export type { MathData } from './math.base';
2
+ export { mathRules, createCleanMathEl } from './math.core';
@@ -0,0 +1,8 @@
1
+ import { MathData } from './math.base';
2
+ export declare const getLatexFromElement: (el: Element) => string | null;
3
+ export declare const createCleanMathEl: (mathData: MathData | null, latex: string | null, isBlock: boolean, doc: Document) => Element;
4
+ export declare const mathRules: {
5
+ selector: string;
6
+ element: string;
7
+ transform: (el: Element) => Element;
8
+ }[];
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createCleanMathEl = exports.mathRules = void 0;
4
+ var math_core_1 = require("./math.core");
5
+ Object.defineProperty(exports, "mathRules", { enumerable: true, get: function () { return math_core_1.mathRules; } });
6
+ Object.defineProperty(exports, "createCleanMathEl", { enumerable: true, get: function () { return math_core_1.createCleanMathEl; } });
7
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/elements/math.ts"],"names":[],"mappings":";;;AAKA,yCAA2D;AAAlD,sGAAA,SAAS,OAAA;AAAE,8GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,16 @@
1
+ import { BaseExtractor, ExtractorOptions } from './extractors/_base';
2
+ type ExtractorConstructor = new (document: Document, url: string, schemaOrgData?: any, options?: ExtractorOptions) => BaseExtractor;
3
+ interface ExtractorMapping {
4
+ patterns: (string | RegExp)[];
5
+ extractor: ExtractorConstructor;
6
+ }
7
+ export declare class ExtractorRegistry {
8
+ private static mappings;
9
+ static initialize(): void;
10
+ static register(mapping: ExtractorMapping): void;
11
+ static findExtractor(document: Document, url: string, schemaOrgData?: any, options?: ExtractorOptions): BaseExtractor | null;
12
+ static findAsyncExtractor(document: Document, url: string, schemaOrgData?: any, options?: ExtractorOptions): BaseExtractor | null;
13
+ static findPreferredAsyncExtractor(document: Document, url: string, schemaOrgData?: any, options?: ExtractorOptions): BaseExtractor | null;
14
+ private static findByPredicate;
15
+ }
16
+ export {};
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtractorRegistry = void 0;
4
+ // Extractors
5
+ const reddit_1 = require("./extractors/reddit");
6
+ const twitter_1 = require("./extractors/twitter");
7
+ const x_article_1 = require("./extractors/x-article");
8
+ const youtube_1 = require("./extractors/youtube");
9
+ const hackernews_1 = require("./extractors/hackernews");
10
+ const chatgpt_1 = require("./extractors/chatgpt");
11
+ const claude_1 = require("./extractors/claude");
12
+ const grok_1 = require("./extractors/grok");
13
+ const gemini_1 = require("./extractors/gemini");
14
+ const github_1 = require("./extractors/github");
15
+ const x_oembed_1 = require("./extractors/x-oembed");
16
+ class ExtractorRegistry {
17
+ static initialize() {
18
+ // Register all extractors with their URL patterns
19
+ // X Article extractor must be registered BEFORE Twitter to take priority
20
+ // DOM-based canExtract() determines if page has article content
21
+ this.register({
22
+ patterns: [
23
+ 'x.com',
24
+ 'twitter.com',
25
+ ],
26
+ extractor: x_article_1.XArticleExtractor
27
+ });
28
+ this.register({
29
+ patterns: [
30
+ 'twitter.com',
31
+ /\/x\.com\/.*/,
32
+ ],
33
+ extractor: twitter_1.TwitterExtractor
34
+ });
35
+ this.register({
36
+ patterns: [
37
+ 'x.com',
38
+ 'twitter.com',
39
+ ],
40
+ extractor: x_oembed_1.XOembedExtractor
41
+ });
42
+ this.register({
43
+ patterns: [
44
+ 'reddit.com',
45
+ 'old.reddit.com',
46
+ 'new.reddit.com',
47
+ /^https:\/\/[^\/]+\.reddit\.com/
48
+ ],
49
+ extractor: reddit_1.RedditExtractor
50
+ });
51
+ this.register({
52
+ patterns: [
53
+ 'youtube.com',
54
+ 'youtu.be',
55
+ /youtube\.com\/watch\?v=.*/,
56
+ /youtu\.be\/.*/
57
+ ],
58
+ extractor: youtube_1.YoutubeExtractor
59
+ });
60
+ this.register({
61
+ patterns: [
62
+ /news\.ycombinator\.com\/item\?id=.*/
63
+ ],
64
+ extractor: hackernews_1.HackerNewsExtractor
65
+ });
66
+ this.register({
67
+ patterns: [
68
+ /^https?:\/\/chatgpt\.com\/(c|share)\/.*/
69
+ ],
70
+ extractor: chatgpt_1.ChatGPTExtractor
71
+ });
72
+ this.register({
73
+ patterns: [
74
+ 'claude.ai',
75
+ /^https?:\/\/claude\.ai\/(chat|share)\/.*/
76
+ ],
77
+ extractor: claude_1.ClaudeExtractor
78
+ });
79
+ this.register({
80
+ patterns: [
81
+ /^https?:\/\/grok\.com\/(chat|share)(\/.*)?$/
82
+ ],
83
+ extractor: grok_1.GrokExtractor,
84
+ });
85
+ this.register({
86
+ patterns: [
87
+ /^https?:\/\/gemini\.google\.com\/app\/.*/
88
+ ],
89
+ extractor: gemini_1.GeminiExtractor
90
+ });
91
+ this.register({
92
+ patterns: [
93
+ 'github.com',
94
+ /^https?:\/\/github\.com\/.*/
95
+ ],
96
+ extractor: github_1.GitHubExtractor
97
+ });
98
+ }
99
+ static register(mapping) {
100
+ this.mappings.push(mapping);
101
+ }
102
+ static findExtractor(document, url, schemaOrgData, options) {
103
+ return this.findByPredicate(document, url, schemaOrgData, e => e.canExtract(), options);
104
+ }
105
+ static findAsyncExtractor(document, url, schemaOrgData, options) {
106
+ return this.findByPredicate(document, url, schemaOrgData, e => e.canExtractAsync(), options);
107
+ }
108
+ static findPreferredAsyncExtractor(document, url, schemaOrgData, options) {
109
+ return this.findByPredicate(document, url, schemaOrgData, e => e.canExtractAsync() && e.prefersAsync(), options);
110
+ }
111
+ static findByPredicate(document, url, schemaOrgData, predicate, options) {
112
+ try {
113
+ const domain = new URL(url).hostname;
114
+ for (const { patterns, extractor } of this.mappings) {
115
+ const matches = patterns.some(pattern => {
116
+ if (pattern instanceof RegExp) {
117
+ return pattern.test(url);
118
+ }
119
+ return domain.includes(pattern);
120
+ });
121
+ if (matches) {
122
+ const instance = new extractor(document, url, schemaOrgData, options);
123
+ if (predicate(instance)) {
124
+ return instance;
125
+ }
126
+ }
127
+ }
128
+ return null;
129
+ }
130
+ catch (error) {
131
+ console.error('Error finding extractor:', error);
132
+ return null;
133
+ }
134
+ }
135
+ }
136
+ exports.ExtractorRegistry = ExtractorRegistry;
137
+ ExtractorRegistry.mappings = [];
138
+ // Initialize extractors
139
+ ExtractorRegistry.initialize();
140
+ //# sourceMappingURL=extractor-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractor-registry.js","sourceRoot":"","sources":["../src/extractor-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { ExtractorResult } from '../types/extractors';
2
+ export interface ExtractorOptions {
3
+ includeReplies?: boolean | 'extractors';
4
+ language?: string;
5
+ }
6
+ export declare abstract class BaseExtractor {
7
+ protected document: Document;
8
+ protected url: string;
9
+ protected schemaOrgData?: any;
10
+ protected options: ExtractorOptions;
11
+ constructor(document: Document, url: string, schemaOrgData?: any, options?: ExtractorOptions);
12
+ abstract canExtract(): boolean;
13
+ abstract extract(): ExtractorResult;
14
+ canExtractAsync(): boolean;
15
+ /**
16
+ * When true, parseAsync() will prefer extractAsync() over extract(),
17
+ * even if sync extraction produces content. Use this when the async
18
+ * path provides strictly better results (e.g. YouTube transcripts).
19
+ */
20
+ prefersAsync(): boolean;
21
+ extractAsync(): Promise<ExtractorResult>;
22
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseExtractor = void 0;
4
+ class BaseExtractor {
5
+ constructor(document, url, schemaOrgData, options) {
6
+ this.document = document;
7
+ this.url = url;
8
+ this.schemaOrgData = schemaOrgData;
9
+ this.options = options || {};
10
+ }
11
+ canExtractAsync() {
12
+ return false;
13
+ }
14
+ /**
15
+ * When true, parseAsync() will prefer extractAsync() over extract(),
16
+ * even if sync extraction produces content. Use this when the async
17
+ * path provides strictly better results (e.g. YouTube transcripts).
18
+ */
19
+ prefersAsync() {
20
+ return false;
21
+ }
22
+ async extractAsync() {
23
+ return this.extract();
24
+ }
25
+ }
26
+ exports.BaseExtractor = BaseExtractor;
27
+ //# sourceMappingURL=_base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_base.js","sourceRoot":"","sources":["../../src/extractors/_base.ts"],"names":[],"mappings":";;;AAOA,MAAsB,aAAa;IAMlC,YAAY,QAAkB,EAAE,GAAW,EAAE,aAAmB,EAAE,OAA0B;QAC3F,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC9B,CAAC;IAKD,eAAe;QACd,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,YAAY;QACX,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;CACD;AAhCD,sCAgCC"}
@@ -0,0 +1,9 @@
1
+ import { BaseExtractor } from './_base';
2
+ import { ConversationMessage, ConversationMetadata, Footnote, ExtractorResult } from '../types/extractors';
3
+ export declare abstract class ConversationExtractor extends BaseExtractor {
4
+ protected abstract extractMessages(): ConversationMessage[];
5
+ protected abstract getMetadata(): ConversationMetadata;
6
+ protected getFootnotes(): Footnote[];
7
+ extract(): ExtractorResult;
8
+ protected createContentHtml(messages: ConversationMessage[], footnotes: Footnote[]): string;
9
+ }