defuddle 0.11.0 → 0.12.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 (54) hide show
  1. package/README.md +23 -8
  2. package/dist/cli.js +2 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/constants.d.ts +2 -0
  5. package/dist/constants.js +12 -1
  6. package/dist/constants.js.map +1 -1
  7. package/dist/defuddle.d.ts +48 -1
  8. package/dist/defuddle.js +519 -213
  9. package/dist/defuddle.js.map +1 -1
  10. package/dist/elements/footnotes.js +2 -1
  11. package/dist/elements/footnotes.js.map +1 -1
  12. package/dist/extractor-registry.d.ts +1 -0
  13. package/dist/extractor-registry.js +3 -0
  14. package/dist/extractor-registry.js.map +1 -1
  15. package/dist/extractors/_base.d.ts +6 -0
  16. package/dist/extractors/_base.js +8 -0
  17. package/dist/extractors/_base.js.map +1 -1
  18. package/dist/extractors/github.d.ts +10 -2
  19. package/dist/extractors/github.js +158 -71
  20. package/dist/extractors/github.js.map +1 -1
  21. package/dist/extractors/hackernews.js +18 -72
  22. package/dist/extractors/hackernews.js.map +1 -1
  23. package/dist/extractors/reddit.d.ts +1 -2
  24. package/dist/extractors/reddit.js +41 -94
  25. package/dist/extractors/reddit.js.map +1 -1
  26. package/dist/extractors/x-oembed.d.ts +0 -1
  27. package/dist/extractors/x-oembed.js +20 -27
  28. package/dist/extractors/x-oembed.js.map +1 -1
  29. package/dist/extractors/youtube.d.ts +37 -0
  30. package/dist/extractors/youtube.js +409 -9
  31. package/dist/extractors/youtube.js.map +1 -1
  32. package/dist/index.full.js +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/metadata.d.ts +5 -0
  35. package/dist/metadata.js +28 -0
  36. package/dist/metadata.js.map +1 -1
  37. package/dist/node.js +0 -5
  38. package/dist/node.js.map +1 -1
  39. package/dist/scoring.d.ts +6 -1
  40. package/dist/scoring.js +66 -19
  41. package/dist/scoring.js.map +1 -1
  42. package/dist/standardize.js +64 -60
  43. package/dist/standardize.js.map +1 -1
  44. package/dist/types.d.ts +9 -0
  45. package/dist/utils/comments.d.ts +44 -0
  46. package/dist/utils/comments.js +103 -0
  47. package/dist/utils/comments.js.map +1 -0
  48. package/dist/utils/dom.d.ts +9 -0
  49. package/dist/utils/dom.js +20 -0
  50. package/dist/utils/dom.js.map +1 -1
  51. package/dist/utils/transcript.d.ts +37 -0
  52. package/dist/utils/transcript.js +61 -0
  53. package/dist/utils/transcript.js.map +1 -0
  54. package/package.json +1 -1
@@ -9,6 +9,11 @@ export declare class MetadataExtractor {
9
9
  private static cleanTitle;
10
10
  private static getDescription;
11
11
  private static getImage;
12
+ private static getLanguage;
13
+ /**
14
+ * Normalize language codes to BCP 47 format (e.g. en_US -> en-US)
15
+ */
16
+ private static normalizeLangCode;
12
17
  private static getFavicon;
13
18
  private static getPublished;
14
19
  private static getMetaContent;
package/dist/metadata.js CHANGED
@@ -46,6 +46,7 @@ class MetadataExtractor {
46
46
  domain,
47
47
  favicon: this.getFavicon(doc, url, metaTags),
48
48
  image: this.getImage(doc, schemaOrgData, metaTags),
49
+ language: this.getLanguage(doc, schemaOrgData, metaTags),
49
50
  published: this.getPublished(doc, schemaOrgData, metaTags),
50
51
  author: this.getAuthor(doc, schemaOrgData, metaTags),
51
52
  site: this.getSite(doc, schemaOrgData, metaTags),
@@ -250,6 +251,33 @@ class MetadataExtractor {
250
251
  this.getMetaContent(metaTags, "name", "sailthru.image.full") ||
251
252
  '');
252
253
  }
254
+ static getLanguage(doc, schemaOrgData, metaTags) {
255
+ // 1. <html lang="...">
256
+ const htmlLang = doc.documentElement?.getAttribute('lang')?.trim();
257
+ if (htmlLang)
258
+ return this.normalizeLangCode(htmlLang);
259
+ // 2. Content-Language meta tag
260
+ const contentLang = this.getMetaContent(metaTags, "name", "content-language") ||
261
+ this.getMetaContent(metaTags, "property", "og:locale");
262
+ if (contentLang)
263
+ return this.normalizeLangCode(contentLang);
264
+ // 3. http-equiv Content-Language (stored as name in our meta tag collection)
265
+ const httpEquivLang = doc.querySelector('meta[http-equiv="Content-Language" i]')?.getAttribute('content')?.trim();
266
+ if (httpEquivLang)
267
+ return this.normalizeLangCode(httpEquivLang);
268
+ // 4. Schema.org
269
+ const schemaLang = this.getSchemaProperty(schemaOrgData, 'inLanguage');
270
+ if (schemaLang)
271
+ return this.normalizeLangCode(schemaLang);
272
+ return '';
273
+ }
274
+ /**
275
+ * Normalize language codes to BCP 47 format (e.g. en_US -> en-US)
276
+ */
277
+ static normalizeLangCode(code) {
278
+ // Replace underscores with hyphens (og:locale uses en_US)
279
+ return code.replace(/_/g, '-');
280
+ }
253
281
  static getFavicon(doc, baseUrl, metaTags) {
254
282
  const iconFromMeta = this.getMetaContent(metaTags, "property", "og:image:favicon");
255
283
  if (iconFromMeta)
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC7B,MAAM,CAAC,OAAO,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QACxE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,IAAI,CAAC;YACJ,wCAAwC;YACxC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;YAE/B,6CAA6C;YAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;oBACxD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;oBACxD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,CAAC;oBAC7D,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC;oBACvD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC;oBACpD,GAAG,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACzE,CAAC;YAED,IAAI,GAAG,EAAE,CAAC;gBACT,IAAI,CAAC;oBACJ,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;gBACzC,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,iDAAiD;YACjD,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC;oBACJ,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACzC,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO;YACN,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAClD,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAC9D,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAClD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAC1D,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAChD,aAAa;YACb,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACZ,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QAClF,IAAI,aAAiC,CAAC;QAEtC,yEAAyE;QACzE,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC;YACvE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;YACnD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACrD,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,2CAA2C;QAC3C,IAAI,cAAc,GAAa,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACzF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACtC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,CAAC;gBACD,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,OAAO,aAAa,CAAC;QACtB,CAAC;QAED,kDAAkD;QAClD,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC;YACvE,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QAEzD,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;iBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBACjD,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,mBAAmB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9C,IAAI,mBAAmB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACrC,mBAAmB,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QAED,kBAAkB;QAClB,MAAM,uBAAuB,GAAa,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,CAAC,KAAgC,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7D,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;gBACnD,IAAI,WAAW,IAAI,gBAAgB,KAAK,QAAQ,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;oBACpF,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,6DAA6D;QAC7D,mDAAmD;QACnD,MAAM,kBAAkB,GAAgD;YACvE,EAAE,QAAQ,EAAE,qBAAqB,EAAE;YACnC,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE;YACtC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC,EAAE;YACjD,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE;SACzC,CAAC;QAEF,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,kBAAkB,EAAE,CAAC;YAC3D,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,UAAU;gBAAE,SAAS;YACxD,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACnG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBAC/B,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QAED,2EAA2E;QAC3E,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,EAAE,EAAE,CAAC;YACR,sDAAsD;YACtD,IAAI,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;oBAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBAC1B,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;wBAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACnF,OAAO,QAAQ,CAAC;wBACjB,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;YACtC,CAAC;YAED,4DAA4D;YAC5D,2DAA2D;YAC3D,IAAI,WAAW,GAAmB,EAAE,CAAC;YACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvD,IAAI,eAAe,GAAG,WAAW,CAAC,sBAAsB,CAAC;gBACzD,8BAA8B;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;oBACzD,IAAI,YAAY;wBAAE,OAAO,YAAY,CAAC;oBACtC,eAAe,GAAG,eAAe,CAAC,sBAAsB,CAAC;gBAC1D,CAAC;gBACD,6BAA6B;gBAC7B,eAAe,GAAG,WAAW,CAAC,kBAAkB,CAAC;gBACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;oBACzD,IAAI,YAAY;wBAAE,OAAO,YAAY,CAAC;oBACtC,eAAe,GAAG,eAAe,CAAC,kBAAkB,CAAC;gBACtD,CAAC;gBACD,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC;YACzC,CAAC;QACF,CAAC;QAED,4BAA4B;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,EAAW;QACvC,qEAAqE;QACrE,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACpD,IAAI,WAAW,EAAE,CAAC;oBACjB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,aAAkB,EAAE,QAAuB;QACrE,OAAO,CACN,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,gBAAgB,CAAC;YACvD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC;YACzD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,cAAc,CAAC;YACrD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,yBAAyB,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,sBAAsB,CAAC;YAC7D,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC;YACzD,EAAE,CACF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QAChF,OAAO,CACN,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC;YAC5C,EAAE,CACF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QACjF,MAAM,QAAQ,GAAG,CAChB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC;YACjD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC;YACvD,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;YAC/C,EAAE,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,KAAa,EAAE,QAAgB;QACxD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAEtC,gCAAgC;QAChC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG;YAChB,qBAAqB,eAAe,OAAO,EAAE,oBAAoB;YACjE,QAAQ,eAAe,oBAAoB,EAAE,oBAAoB;SACjE,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACjC,MAAM;YACP,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QACvF,OAAO,CACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;YAC3D,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAsB,CAAC;YAC7D,EAAE,CACF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QACjF,OAAO,CACN,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;YACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC;YACtD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,CAAC;YAC5D,EAAE,CACF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAa,EAAE,OAAe,EAAE,QAAuB;QAChF,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QACnF,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7E,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAC1F,IAAI,YAAY;YAAE,OAAO,YAAY,CAAC;QAEtC,qEAAqE;QACrE,IAAI,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACJ,OAAO,IAAI,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;YAC9C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,iCAAiC;YAClC,CAAC;QACF,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,GAAa,EAAE,aAAkB,EAAE,QAAuB;QACrF,MAAM,MAAM,GACX,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,eAAe,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,wBAAwB,CAAC;YAClE,GAAG,CAAC,aAAa,CAAC,gCAAgC,CAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;YACnF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QACxD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,8CAA8C;QAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,EAAE,EAAE,CAAC;YACR,IAAI,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;gBAC1B,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;YACtC,CAAC;QACF,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,QAAuB,EAAE,IAAY,EAAE,KAAa;QACjF,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,QAAuB,EAAE,IAAY,EAAE,KAAa;QAClF,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjE,OAAO,cAAc,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,GAAa;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,OAAO,OAAO,CAAC;IAChB,CAAC;IAQO,MAAM,CAAC,aAAa,CAAC,IAAY;QACxC,sDAAsD;QACtD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oHAAoH,CAAC,CAAC;QAC7I,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,iBAAiB,CAAC;QACrD,CAAC;QAED,wCAAwC;QACxC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sHAAsH,CAAC,CAAC;QAC3I,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,iBAAiB,CAAC;QACrD,CAAC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,aAAkB,EAAE,QAAgB,EAAE,eAAuB,EAAE;QAC/F,IAAI,CAAC,aAAa;YAAE,OAAO,YAAY,CAAC;QAExC,MAAM,YAAY,GAAG,CAAC,IAAS,EAAE,KAAe,EAAE,QAAgB,EAAE,eAAwB,IAAI,EAAY,EAAE;YAC7G,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvC,OAAO,EAAE,CAAC;YACX,CAAC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjD,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBACjB,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAC1E,CAAC;oBACD,OAAO,EAAE,CAAC;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;oBACpG,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC;gBAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,CAAC,WAAW,EAAE,GAAG,cAAc,CAAC,GAAG,KAAK,CAAC;YAE/C,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC;gBACD,OAAO,EAAE,CAAC;YACX,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,cAAc,EACpD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,aAAa,GAAa,EAAE,CAAC;gBACnC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;oBACxB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACnC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAC5C,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC/C,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;oBAChC,CAAC;gBACF,CAAC;gBACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,OAAO,aAAa,CAAC;gBACtB,CAAC;YACF,CAAC;YAED,OAAO,EAAE,CAAC;QACX,CAAC,CAAC;QAEF,IAAI,CAAC;YACJ,IAAI,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACzE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YACtF,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,kCAAkC,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YACpE,OAAO,YAAY,CAAC;QACrB,CAAC;IACF,CAAC;;AAvbF,8CAwbC;AAnGwB,2BAAS,GAA2B;IAC3D,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI;IAC/D,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI;IACvD,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;CACtE,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -21,12 +21,7 @@ async function Defuddle(htmlOrDom, url, options) {
21
21
  if (typeof htmlOrDom === 'string') {
22
22
  dom = new jsdom_1.JSDOM(htmlOrDom, {
23
23
  url,
24
- // runScripts: 'outside-only',
25
- resources: 'usable',
26
- pretendToBeVisual: true,
27
- includeNodeLocations: true,
28
24
  storageQuota: 10000000,
29
- // Add virtual console to suppress warnings
30
25
  virtualConsole: new jsdom_1.VirtualConsole().sendTo(console, { omitJSDOMErrors: true })
31
26
  });
32
27
  }
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":";;;;;;AAYA,4BAqCC;AAjDD,iCAA8C;AAC9C,oDAAoC;AAkD3B,wBAlDF,eAAa,CAkDE;AAhDtB,yCAAwC;AAExC;;;;;;GAMG;AACI,KAAK,UAAU,QAAQ,CAC7B,SAAyB,EACzB,GAAY,EACZ,OAAyB;IAGzB,IAAI,GAAU,CAAC;IAEf,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,GAAG,GAAG,IAAI,aAAK,CAAC,SAAS,EAAE;YAC1B,GAAG;YACN,gCAAgC;YAC7B,SAAS,EAAE,QAAQ;YACnB,iBAAiB,EAAE,IAAI;YACvB,oBAAoB,EAAE,IAAI;YAC1B,YAAY,EAAE,QAAQ;YACtB,2CAA2C;YAC3C,cAAc,EAAE,IAAI,sBAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;SAC/E,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,GAAG,GAAG,SAAS,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvD,GAAG,OAAO;QACV,GAAG,EAAE,OAAO;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAE3C,mCAAmC;IACnC,IAAA,qBAAU,EAAC,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":";;;;;;AAYA,4BAgCC;AA5CD,iCAA8C;AAC9C,oDAAoC;AA6C3B,wBA7CF,eAAa,CA6CE;AA3CtB,yCAAwC;AAExC;;;;;;GAMG;AACI,KAAK,UAAU,QAAQ,CAC7B,SAAyB,EACzB,GAAY,EACZ,OAAyB;IAGzB,IAAI,GAAU,CAAC;IAEf,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnC,GAAG,GAAG,IAAI,aAAK,CAAC,SAAS,EAAE;YAC1B,GAAG;YACH,YAAY,EAAE,QAAQ;YACtB,cAAc,EAAE,IAAI,sBAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;SAC/E,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,GAAG,GAAG,SAAS,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,eAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvD,GAAG,OAAO;QACV,GAAG,EAAE,OAAO;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;IAE3C,mCAAmC;IACnC,IAAA,qBAAU,EAAC,MAAM,EAAE,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AACf,CAAC"}
package/dist/scoring.d.ts CHANGED
@@ -13,7 +13,7 @@ export declare class ContentScorer {
13
13
  * Scores blocks based on their content and structure
14
14
  * and removes those that are likely not content.
15
15
  */
16
- static scoreAndRemove(doc: Document, debug?: boolean, debugRemovals?: DebugRemoval[]): void;
16
+ static scoreAndRemove(doc: Document, debug?: boolean, debugRemovals?: DebugRemoval[], mainContent?: Element | null): void;
17
17
  /**
18
18
  * Determines if an element is likely to be content based on its structure and attributes.
19
19
  */
@@ -23,4 +23,9 @@ export declare class ContentScorer {
23
23
  * Returns a negative score if the element is likely not content, a positive score if it is.
24
24
  */
25
25
  private static scoreNonContentBlock;
26
+ /**
27
+ * Detects article card grids: blocks with 3+ headings and 2+ images
28
+ * but very little prose per heading.
29
+ */
30
+ private static isCardGrid;
26
31
  }
package/dist/scoring.js CHANGED
@@ -64,6 +64,10 @@ const socialProfilePattern = /\b(linkedin\.com\/(in|company)\/|twitter\.com\/(?!
64
64
  const datePattern = /(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]*\s+\d{1,2}/i;
65
65
  // Author attribution pattern — case-sensitive "By" + capitalized name
66
66
  const bylinePattern = /\bBy\s+[A-Z]/;
67
+ // Pre-compiled navigation indicator regexes for scoreNonContentBlock
68
+ const navigationIndicatorRegexes = navigationIndicators.map(indicator => new RegExp(`\\b${indicator.replace(/\s+/g, '\\s+')}\\b`));
69
+ // Single combined regex for heading text matching in isLikelyContent
70
+ const navigationHeadingPattern = new RegExp(navigationIndicators.map(i => i.replace(/\s+/g, '\\s+')).join('|'), 'i');
67
71
  // Classes that indicate non-content these are elements are
68
72
  // not removed, but lower the score
69
73
  const nonContentPatterns = [
@@ -107,10 +111,9 @@ class ContentScorer {
107
111
  // Paragraph ratio
108
112
  const paragraphs = element.getElementsByTagName('p').length;
109
113
  score += paragraphs * 10;
110
- // Link density (penalize high link density)
111
- const links = element.getElementsByTagName('a').length;
112
- const linkDensity = links / (words || 1);
113
- score -= linkDensity * 5;
114
+ // Comma counting prose text has commas, navigation doesn't
115
+ const commas = text.split(/,/).length - 1;
116
+ score += commas;
114
117
  // Image ratio (penalize high image density)
115
118
  const images = element.getElementsByTagName('img').length;
116
119
  const imageDensity = images / (words || 1);
@@ -174,6 +177,17 @@ class ContentScorer {
174
177
  }
175
178
  }
176
179
  }
180
+ // Link density as a multiplier — scales the score down proportionally
181
+ // rather than applying a fixed penalty. Capped at 0.5 reduction to
182
+ // avoid over-penalizing link-heavy content like blog index pages.
183
+ const linkElements = element.getElementsByTagName('a');
184
+ let linkTextLength = 0;
185
+ for (let i = 0; i < linkElements.length; i++) {
186
+ linkTextLength += (linkElements[i].textContent || '').length;
187
+ }
188
+ const textLength = text.length || 1;
189
+ const linkDensity = Math.min(linkTextLength / textLength, 0.5);
190
+ score *= (1 - linkDensity);
177
191
  return score;
178
192
  }
179
193
  static findBestElement(elements, minScore = 50) {
@@ -192,18 +206,22 @@ class ContentScorer {
192
206
  * Scores blocks based on their content and structure
193
207
  * and removes those that are likely not content.
194
208
  */
195
- static scoreAndRemove(doc, debug = false, debugRemovals) {
209
+ static scoreAndRemove(doc, debug = false, debugRemovals, mainContent) {
196
210
  const startTime = Date.now();
197
211
  // Track all elements to be removed
198
212
  const elementsToRemove = new Map();
199
213
  // Get all block elements
200
- const blockElements = Array.from(doc.querySelectorAll(constants_1.BLOCK_ELEMENTS.join(',')));
214
+ const blockElements = Array.from(doc.querySelectorAll(constants_1.BLOCK_ELEMENTS_SELECTOR));
201
215
  // Process each block element
202
216
  blockElements.forEach(element => {
203
217
  // Skip elements that are already marked for removal
204
218
  if (elementsToRemove.has(element)) {
205
219
  return;
206
220
  }
221
+ // Skip ancestors of mainContent to avoid disconnecting it
222
+ if (mainContent && element.contains(mainContent)) {
223
+ return;
224
+ }
207
225
  // Skip elements inside code blocks — they are code structure, not page navigation
208
226
  if (element.closest('pre')) {
209
227
  return;
@@ -255,8 +273,8 @@ class ContentScorer {
255
273
  return true;
256
274
  }
257
275
  }
258
- // Elements containing code blocks are likely content
259
- if (element.querySelector('pre')) {
276
+ // Elements containing code blocks or tables are likely content
277
+ if (element.querySelector('pre, table')) {
260
278
  return true;
261
279
  }
262
280
  const text = element.textContent || '';
@@ -269,14 +287,10 @@ class ContentScorer {
269
287
  let hasNavigationHeading = false;
270
288
  for (let i = 0; i < headings.length; i++) {
271
289
  const headingText = (headings[i].textContent || '').toLowerCase().trim();
272
- for (const indicator of navigationIndicators) {
273
- if (headingText.includes(indicator)) {
274
- hasNavigationHeading = true;
275
- break;
276
- }
277
- }
278
- if (hasNavigationHeading)
290
+ if (navigationHeadingPattern.test(headingText)) {
291
+ hasNavigationHeading = true;
279
292
  break;
293
+ }
280
294
  }
281
295
  if (hasNavigationHeading) {
282
296
  if (words < 200) {
@@ -291,6 +305,14 @@ class ContentScorer {
291
305
  }
292
306
  }
293
307
  }
308
+ // Article card listing detection: blocks with many headings and images
309
+ // but very little prose per heading are likely article card grids
310
+ // (e.g. "related articles", "more stories"), not single-article content.
311
+ // Also checked in scoreNonContentBlock as a score penalty for elements
312
+ // that pass the content checks above but still look like card grids.
313
+ if (ContentScorer.isCardGrid(element, words)) {
314
+ return false;
315
+ }
294
316
  // Small elements containing social media profile links are likely
295
317
  // author bios or social widgets, not article content.
296
318
  if (words < 80) {
@@ -350,12 +372,13 @@ class ContentScorer {
350
372
  if (words < 3) {
351
373
  return 0;
352
374
  }
375
+ // Comma counting — prose has commas, navigation/boilerplate doesn't.
376
+ // This counterbalances negative signals from navigation indicators.
377
+ const commas = text.split(/,/).length - 1;
378
+ score += commas;
353
379
  const textLower = text.toLowerCase();
354
380
  let indicatorMatches = 0;
355
- for (const indicator of navigationIndicators) {
356
- // Use word boundary matching to avoid false positives like
357
- // "design information" matching "sign in"
358
- const regex = new RegExp(`\\b${indicator.replace(/\s+/g, '\\s+')}\\b`);
381
+ for (const regex of navigationIndicatorRegexes) {
359
382
  if (regex.test(textLower)) {
360
383
  indicatorMatches++;
361
384
  }
@@ -405,6 +428,10 @@ class ContentScorer {
405
428
  score -= 10;
406
429
  }
407
430
  }
431
+ // Penalize blocks that look like article card grids
432
+ if (ContentScorer.isCardGrid(element, words)) {
433
+ score -= 15;
434
+ }
408
435
  // Check for specific class patterns that indicate non-content
409
436
  const className = element.className.toLowerCase();
410
437
  const id = element.id.toLowerCase();
@@ -415,6 +442,26 @@ class ContentScorer {
415
442
  }
416
443
  return score;
417
444
  }
445
+ /**
446
+ * Detects article card grids: blocks with 3+ headings and 2+ images
447
+ * but very little prose per heading.
448
+ */
449
+ static isCardGrid(element, words) {
450
+ if (words < 3 || words >= 500)
451
+ return false;
452
+ const headings = element.querySelectorAll('h2, h3, h4');
453
+ if (headings.length < 3)
454
+ return false;
455
+ const images = element.querySelectorAll('img');
456
+ if (images.length < 2)
457
+ return false;
458
+ let headingWordCount = 0;
459
+ for (let i = 0; i < headings.length; i++) {
460
+ headingWordCount += (headings[i].textContent || '').split(/\s+/).length;
461
+ }
462
+ const prosePerHeading = (words - headingWordCount) / headings.length;
463
+ return prosePerHeading < 20;
464
+ }
418
465
  }
419
466
  exports.ContentScorer = ContentScorer;
420
467
  //# sourceMappingURL=scoring.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../src/scoring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../src/scoring.ts"],"names":[],"mappings":"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"}
@@ -336,18 +336,17 @@ function standardizeHeadings(element, title, doc) {
336
336
  }
337
337
  function removeHtmlComments(element) {
338
338
  let removedCount = 0;
339
- // Get all elements and check their child nodes
340
- const allElements = Array.from(element.getElementsByTagName('*'));
341
- // Process each element's child nodes
342
- allElements.forEach(el => {
343
- const childNodes = Array.from(el.childNodes);
344
- childNodes.forEach(node => {
345
- if ((0, utils_1.isCommentNode)(node)) {
346
- node.remove();
347
- removedCount++;
348
- }
349
- });
350
- });
339
+ const doc = element.ownerDocument;
340
+ // Use TreeWalker to find comment nodes directly (O(n) instead of O(n*m))
341
+ const walker = doc.createTreeWalker(element, 128 /* NodeFilter.SHOW_COMMENT */);
342
+ const comments = [];
343
+ while (walker.nextNode()) {
344
+ comments.push(walker.currentNode);
345
+ }
346
+ for (const node of comments) {
347
+ node.parentNode?.removeChild(node);
348
+ removedCount++;
349
+ }
351
350
  (0, utils_1.logDebug)(_debug, 'Removed HTML comments:', removedCount);
352
351
  }
353
352
  function stripUnwantedAttributes(element, debug) {
@@ -423,52 +422,57 @@ function unwrapBareSpans(element) {
423
422
  }
424
423
  function removeEmptyElements(element) {
425
424
  let removedCount = 0;
426
- let iterations = 0;
427
- let keepRemoving = true;
428
- while (keepRemoving) {
429
- iterations++;
430
- keepRemoving = false;
431
- // Get all elements without children, working from deepest first
432
- const emptyElements = Array.from(element.getElementsByTagName('*')).filter(el => {
433
- if (constants_1.ALLOWED_EMPTY_ELEMENTS.has(el.tagName.toLowerCase())) {
434
- return false;
435
- }
436
- // Check if element has only whitespace or &nbsp;
437
- const textContent = el.textContent || '';
438
- const hasOnlyWhitespace = textContent.trim().length === 0;
439
- const hasNbsp = textContent.includes('\u00A0'); // Unicode non-breaking space
440
- // Check if element has no meaningful children
441
- const hasNoChildren = !el.hasChildNodes() ||
442
- (Array.from(el.childNodes).every(node => {
443
- if ((0, utils_1.isTextNode)(node)) { // TEXT_NODE
444
- const nodeText = node.textContent || '';
445
- return nodeText.trim().length === 0 && !nodeText.includes('\u00A0');
425
+ const isEmptyElement = (el) => {
426
+ if (constants_1.ALLOWED_EMPTY_ELEMENTS.has(el.tagName.toLowerCase()))
427
+ return false;
428
+ // Special case: divs that only contain spans with commas
429
+ if (el.tagName === 'DIV') {
430
+ const children = el.children;
431
+ if (children.length > 0) {
432
+ let allCommaSpans = true;
433
+ for (let i = 0; i < children.length; i++) {
434
+ const child = children[i];
435
+ if (child.tagName !== 'SPAN') {
436
+ allCommaSpans = false;
437
+ break;
446
438
  }
447
- return false;
448
- }));
449
- // Special case: Check for divs that only contain spans with commas
450
- if (el.tagName.toLowerCase() === 'div') {
451
- const children = Array.from(el.children);
452
- const hasOnlyCommaSpans = children.length > 0 && children.every(child => {
453
- if (child.tagName.toLowerCase() !== 'span')
454
- return false;
455
439
  const content = child.textContent?.trim() || '';
456
- return content === ',' || content === '' || content === ' ';
457
- });
458
- if (hasOnlyCommaSpans)
440
+ if (content !== ',' && content !== '' && content !== ' ') {
441
+ allCommaSpans = false;
442
+ break;
443
+ }
444
+ }
445
+ if (allCommaSpans)
459
446
  return true;
460
447
  }
461
- return hasOnlyWhitespace && !hasNbsp && hasNoChildren;
462
- });
463
- if (emptyElements.length > 0) {
464
- emptyElements.forEach(el => {
465
- el.remove();
466
- removedCount++;
467
- });
468
- keepRemoving = true;
448
+ }
449
+ const textContent = el.textContent || '';
450
+ if (textContent.trim().length > 0 || textContent.includes('\u00A0'))
451
+ return false;
452
+ // Check if element has no meaningful children (no element children, only whitespace text)
453
+ if (!el.hasChildNodes())
454
+ return true;
455
+ const childNodes = el.childNodes;
456
+ for (let i = 0; i < childNodes.length; i++) {
457
+ const node = childNodes[i];
458
+ if (!(0, utils_1.isTextNode)(node))
459
+ return false;
460
+ const nodeText = node.textContent || '';
461
+ if (nodeText.trim().length > 0 || nodeText.includes('\u00A0'))
462
+ return false;
463
+ }
464
+ return true;
465
+ };
466
+ // Process deepest-first in a single pass by reversing the element list
467
+ // (querySelectorAll returns document order, reverse gives deepest last → first)
468
+ const allElements = Array.from(element.querySelectorAll('*')).reverse();
469
+ for (const el of allElements) {
470
+ if (el.parentNode && isEmptyElement(el)) {
471
+ el.remove();
472
+ removedCount++;
469
473
  }
470
474
  }
471
- (0, utils_1.logDebug)(_debug, 'Removed empty elements:', removedCount, 'iterations:', iterations);
475
+ (0, utils_1.logDebug)(_debug, 'Removed empty elements:', removedCount);
472
476
  }
473
477
  function stripExtraBrElements(element) {
474
478
  let processedCount = 0;
@@ -560,7 +564,7 @@ function removeEmptyLines(element, doc) {
560
564
  const text = node.textContent || '';
561
565
  // If it's completely empty or just zero-width/invisible characters, remove it
562
566
  // Preserve nodes with regular spaces or &nbsp; as they may separate words
563
- if (!text || text.match(/^[\u200C\u200B\u200D\u200E\u200F\uFEFF]*$/)) {
567
+ if (!text || /^[\u200C\u200B\u200D\u200E\u200F\uFEFF]*$/.test(text)) {
564
568
  node.parentNode?.removeChild(node);
565
569
  removedCount++;
566
570
  }
@@ -839,7 +843,7 @@ function flattenWrapperElements(element, doc) {
839
843
  // Check if all children are block elements
840
844
  const allBlockElements = children.every(child => {
841
845
  const tag = child.tagName.toLowerCase();
842
- return constants_1.BLOCK_ELEMENTS.includes(tag) ||
846
+ return constants_1.BLOCK_ELEMENTS_SET.has(tag) ||
843
847
  tag === 'p' || tag === 'h1' || tag === 'h2' ||
844
848
  tag === 'h3' || tag === 'h4' || tag === 'h5' || tag === 'h6' ||
845
849
  tag === 'ul' || tag === 'ol' || tag === 'pre' || tag === 'blockquote' ||
@@ -939,7 +943,7 @@ function flattenWrapperElements(element, doc) {
939
943
  const child = el.firstElementChild;
940
944
  const childTag = child.tagName.toLowerCase();
941
945
  // Only unwrap if the single child is a block element and not preserved
942
- if (constants_1.BLOCK_ELEMENTS.includes(childTag) && !shouldPreserveElement(child)) {
946
+ if (constants_1.BLOCK_ELEMENTS_SET.has(childTag) && !shouldPreserveElement(child)) {
943
947
  el.replaceWith(child);
944
948
  processedCount++;
945
949
  return true;
@@ -950,7 +954,7 @@ function flattenWrapperElements(element, doc) {
950
954
  let parent = el.parentElement;
951
955
  while (parent) {
952
956
  const parentTag = parent.tagName.toLowerCase();
953
- if (constants_1.BLOCK_ELEMENTS.includes(parentTag)) {
957
+ if (constants_1.BLOCK_ELEMENTS_SET.has(parentTag)) {
954
958
  nestingDepth++;
955
959
  }
956
960
  parent = parent.parentElement;
@@ -969,7 +973,7 @@ function flattenWrapperElements(element, doc) {
969
973
  };
970
974
  // First pass: Process top-level wrapper elements
971
975
  const processTopLevelElements = () => {
972
- const topElements = Array.from(element.children).filter(el => constants_1.BLOCK_ELEMENTS.includes(el.tagName.toLowerCase()));
976
+ const topElements = Array.from(element.children).filter(el => constants_1.BLOCK_ELEMENTS_SET.has(el.tagName.toLowerCase()));
973
977
  let modified = false;
974
978
  topElements.forEach(el => {
975
979
  if (processElement(el)) {
@@ -981,7 +985,7 @@ function flattenWrapperElements(element, doc) {
981
985
  // Second pass: Process remaining wrapper elements from deepest to shallowest
982
986
  const processRemainingElements = () => {
983
987
  // Get all wrapper elements
984
- const allElements = Array.from(element.querySelectorAll(constants_1.BLOCK_ELEMENTS.join(',')))
988
+ const allElements = Array.from(element.querySelectorAll(constants_1.BLOCK_ELEMENTS_SELECTOR))
985
989
  .sort((a, b) => {
986
990
  // Count nesting depth
987
991
  const getDepth = (el) => {
@@ -989,7 +993,7 @@ function flattenWrapperElements(element, doc) {
989
993
  let parent = el.parentElement;
990
994
  while (parent) {
991
995
  const parentTag = parent.tagName.toLowerCase();
992
- if (constants_1.BLOCK_ELEMENTS.includes(parentTag))
996
+ if (constants_1.BLOCK_ELEMENTS_SET.has(parentTag))
993
997
  depth++;
994
998
  parent = parent.parentElement;
995
999
  }
@@ -1007,7 +1011,7 @@ function flattenWrapperElements(element, doc) {
1007
1011
  };
1008
1012
  // Final cleanup pass - aggressively flatten remaining wrapper elements
1009
1013
  const finalCleanup = () => {
1010
- const remainingElements = Array.from(element.querySelectorAll(constants_1.BLOCK_ELEMENTS.join(',')));
1014
+ const remainingElements = Array.from(element.querySelectorAll(constants_1.BLOCK_ELEMENTS_SELECTOR));
1011
1015
  let modified = false;
1012
1016
  remainingElements.forEach(el => {
1013
1017
  // Check if element only contains paragraphs