@steipete/summarize-core 0.10.0 → 0.11.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 (194) hide show
  1. package/README.md +0 -1
  2. package/dist/esm/content/index.js +5 -5
  3. package/dist/esm/content/index.js.map +1 -1
  4. package/dist/esm/content/link-preview/client.js +20 -9
  5. package/dist/esm/content/link-preview/client.js.map +1 -1
  6. package/dist/esm/content/link-preview/content/article.js +84 -83
  7. package/dist/esm/content/link-preview/content/article.js.map +1 -1
  8. package/dist/esm/content/link-preview/content/cleaner.js +23 -20
  9. package/dist/esm/content/link-preview/content/cleaner.js.map +1 -1
  10. package/dist/esm/content/link-preview/content/constants.js.map +1 -1
  11. package/dist/esm/content/link-preview/content/fetcher.js +46 -40
  12. package/dist/esm/content/link-preview/content/fetcher.js.map +1 -1
  13. package/dist/esm/content/link-preview/content/firecrawl.js +16 -16
  14. package/dist/esm/content/link-preview/content/firecrawl.js.map +1 -1
  15. package/dist/esm/content/link-preview/content/html.js +29 -27
  16. package/dist/esm/content/link-preview/content/html.js.map +1 -1
  17. package/dist/esm/content/link-preview/content/index.js +141 -88
  18. package/dist/esm/content/link-preview/content/index.js.map +1 -1
  19. package/dist/esm/content/link-preview/content/jsonld.js +12 -12
  20. package/dist/esm/content/link-preview/content/jsonld.js.map +1 -1
  21. package/dist/esm/content/link-preview/content/parsers.js +20 -20
  22. package/dist/esm/content/link-preview/content/parsers.js.map +1 -1
  23. package/dist/esm/content/link-preview/content/podcast-utils.js +34 -34
  24. package/dist/esm/content/link-preview/content/podcast-utils.js.map +1 -1
  25. package/dist/esm/content/link-preview/content/readability.js +16 -15
  26. package/dist/esm/content/link-preview/content/readability.js.map +1 -1
  27. package/dist/esm/content/link-preview/content/twitter-utils.js +24 -11
  28. package/dist/esm/content/link-preview/content/twitter-utils.js.map +1 -1
  29. package/dist/esm/content/link-preview/content/types.js +1 -1
  30. package/dist/esm/content/link-preview/content/types.js.map +1 -1
  31. package/dist/esm/content/link-preview/content/utils.js +17 -17
  32. package/dist/esm/content/link-preview/content/utils.js.map +1 -1
  33. package/dist/esm/content/link-preview/content/video.js +19 -19
  34. package/dist/esm/content/link-preview/content/video.js.map +1 -1
  35. package/dist/esm/content/link-preview/content/visibility.js +121 -0
  36. package/dist/esm/content/link-preview/content/visibility.js.map +1 -0
  37. package/dist/esm/content/link-preview/content/youtube.js +10 -10
  38. package/dist/esm/content/link-preview/content/youtube.js.map +1 -1
  39. package/dist/esm/content/link-preview/deps.js +16 -16
  40. package/dist/esm/content/link-preview/deps.js.map +1 -1
  41. package/dist/esm/content/link-preview/fetch-with-timeout.js +4 -4
  42. package/dist/esm/content/link-preview/fetch-with-timeout.js.map +1 -1
  43. package/dist/esm/content/link-preview/types.js +1 -1
  44. package/dist/esm/content/link-preview/types.js.map +1 -1
  45. package/dist/esm/content/transcript/cache.js +22 -22
  46. package/dist/esm/content/transcript/cache.js.map +1 -1
  47. package/dist/esm/content/transcript/index.js +34 -24
  48. package/dist/esm/content/transcript/index.js.map +1 -1
  49. package/dist/esm/content/transcript/normalize.js +10 -10
  50. package/dist/esm/content/transcript/normalize.js.map +1 -1
  51. package/dist/esm/content/transcript/parse.js +31 -31
  52. package/dist/esm/content/transcript/parse.js.map +1 -1
  53. package/dist/esm/content/transcript/providers/generic.js +74 -78
  54. package/dist/esm/content/transcript/providers/generic.js.map +1 -1
  55. package/dist/esm/content/transcript/providers/podcast/apple-flow.js +36 -36
  56. package/dist/esm/content/transcript/providers/podcast/apple-flow.js.map +1 -1
  57. package/dist/esm/content/transcript/providers/podcast/apple.js +5 -5
  58. package/dist/esm/content/transcript/providers/podcast/apple.js.map +1 -1
  59. package/dist/esm/content/transcript/providers/podcast/constants.js +2 -2
  60. package/dist/esm/content/transcript/providers/podcast/constants.js.map +1 -1
  61. package/dist/esm/content/transcript/providers/podcast/itunes.js +44 -42
  62. package/dist/esm/content/transcript/providers/podcast/itunes.js.map +1 -1
  63. package/dist/esm/content/transcript/providers/podcast/json.js +4 -4
  64. package/dist/esm/content/transcript/providers/podcast/json.js.map +1 -1
  65. package/dist/esm/content/transcript/providers/podcast/media.js +58 -49
  66. package/dist/esm/content/transcript/providers/podcast/media.js.map +1 -1
  67. package/dist/esm/content/transcript/providers/podcast/results.js +2 -2
  68. package/dist/esm/content/transcript/providers/podcast/results.js.map +1 -1
  69. package/dist/esm/content/transcript/providers/podcast/rss.js +29 -29
  70. package/dist/esm/content/transcript/providers/podcast/rss.js.map +1 -1
  71. package/dist/esm/content/transcript/providers/podcast/spotify-flow.js +38 -38
  72. package/dist/esm/content/transcript/providers/podcast/spotify-flow.js.map +1 -1
  73. package/dist/esm/content/transcript/providers/podcast/spotify.js +32 -32
  74. package/dist/esm/content/transcript/providers/podcast/spotify.js.map +1 -1
  75. package/dist/esm/content/transcript/providers/podcast.js +43 -47
  76. package/dist/esm/content/transcript/providers/podcast.js.map +1 -1
  77. package/dist/esm/content/transcript/providers/transcription-start.js +59 -31
  78. package/dist/esm/content/transcript/providers/transcription-start.js.map +1 -1
  79. package/dist/esm/content/transcript/providers/youtube/api.js +56 -56
  80. package/dist/esm/content/transcript/providers/youtube/api.js.map +1 -1
  81. package/dist/esm/content/transcript/providers/youtube/apify.js +7 -7
  82. package/dist/esm/content/transcript/providers/youtube/apify.js.map +1 -1
  83. package/dist/esm/content/transcript/providers/youtube/captions.js +76 -76
  84. package/dist/esm/content/transcript/providers/youtube/captions.js.map +1 -1
  85. package/dist/esm/content/transcript/providers/youtube/yt-dlp.js +82 -75
  86. package/dist/esm/content/transcript/providers/youtube/yt-dlp.js.map +1 -1
  87. package/dist/esm/content/transcript/providers/youtube.js +84 -77
  88. package/dist/esm/content/transcript/providers/youtube.js.map +1 -1
  89. package/dist/esm/content/transcript/timestamps.js +8 -8
  90. package/dist/esm/content/transcript/timestamps.js.map +1 -1
  91. package/dist/esm/content/transcript/transcription-config.js +14 -0
  92. package/dist/esm/content/transcript/transcription-config.js.map +1 -0
  93. package/dist/esm/content/transcript/utils.js +35 -35
  94. package/dist/esm/content/transcript/utils.js.map +1 -1
  95. package/dist/esm/content/url.js +59 -28
  96. package/dist/esm/content/url.js.map +1 -1
  97. package/dist/esm/index.js +4 -3
  98. package/dist/esm/index.js.map +1 -1
  99. package/dist/esm/language.js +77 -77
  100. package/dist/esm/language.js.map +1 -1
  101. package/dist/esm/openai/base-url.js +35 -0
  102. package/dist/esm/openai/base-url.js.map +1 -0
  103. package/dist/esm/processes.js +16 -16
  104. package/dist/esm/processes.js.map +1 -1
  105. package/dist/esm/prompts/cli.js +17 -17
  106. package/dist/esm/prompts/cli.js.map +1 -1
  107. package/dist/esm/prompts/file.js +54 -54
  108. package/dist/esm/prompts/file.js.map +1 -1
  109. package/dist/esm/prompts/format.js +2 -2
  110. package/dist/esm/prompts/format.js.map +1 -1
  111. package/dist/esm/prompts/index.js +5 -5
  112. package/dist/esm/prompts/index.js.map +1 -1
  113. package/dist/esm/prompts/link-summary.js +65 -65
  114. package/dist/esm/prompts/link-summary.js.map +1 -1
  115. package/dist/esm/prompts/summary-lengths.js +10 -10
  116. package/dist/esm/prompts/summary-lengths.js.map +1 -1
  117. package/dist/esm/prompts/summary-system.js +9 -9
  118. package/dist/esm/prompts/summary-system.js.map +1 -1
  119. package/dist/esm/shared/contracts.js +1 -1
  120. package/dist/esm/shared/contracts.js.map +1 -1
  121. package/dist/esm/transcription/onnx-cli.js +69 -69
  122. package/dist/esm/transcription/onnx-cli.js.map +1 -1
  123. package/dist/esm/transcription/whisper/constants.js +3 -3
  124. package/dist/esm/transcription/whisper/constants.js.map +1 -1
  125. package/dist/esm/transcription/whisper/core.js +148 -59
  126. package/dist/esm/transcription/whisper/core.js.map +1 -1
  127. package/dist/esm/transcription/whisper/fal.js +14 -14
  128. package/dist/esm/transcription/whisper/fal.js.map +1 -1
  129. package/dist/esm/transcription/whisper/ffmpeg.js +106 -106
  130. package/dist/esm/transcription/whisper/ffmpeg.js.map +1 -1
  131. package/dist/esm/transcription/whisper/groq.js +46 -0
  132. package/dist/esm/transcription/whisper/groq.js.map +1 -0
  133. package/dist/esm/transcription/whisper/openai.js +19 -13
  134. package/dist/esm/transcription/whisper/openai.js.map +1 -1
  135. package/dist/esm/transcription/whisper/utils.js +19 -19
  136. package/dist/esm/transcription/whisper/utils.js.map +1 -1
  137. package/dist/esm/transcription/whisper/whisper-cpp.js +64 -64
  138. package/dist/esm/transcription/whisper/whisper-cpp.js.map +1 -1
  139. package/dist/esm/transcription/whisper.js +4 -4
  140. package/dist/esm/transcription/whisper.js.map +1 -1
  141. package/dist/types/content/cache/types.d.ts +1 -1
  142. package/dist/types/content/index.d.ts +7 -7
  143. package/dist/types/content/link-preview/client.d.ts +7 -4
  144. package/dist/types/content/link-preview/content/cleaner.d.ts +1 -0
  145. package/dist/types/content/link-preview/content/fetcher.d.ts +2 -2
  146. package/dist/types/content/link-preview/content/firecrawl.d.ts +7 -7
  147. package/dist/types/content/link-preview/content/html.d.ts +8 -8
  148. package/dist/types/content/link-preview/content/index.d.ts +3 -3
  149. package/dist/types/content/link-preview/content/twitter-utils.d.ts +1 -0
  150. package/dist/types/content/link-preview/content/types.d.ts +8 -8
  151. package/dist/types/content/link-preview/content/utils.d.ts +3 -3
  152. package/dist/types/content/link-preview/content/video.d.ts +1 -1
  153. package/dist/types/content/link-preview/content/visibility.d.ts +1 -0
  154. package/dist/types/content/link-preview/deps.d.ts +36 -33
  155. package/dist/types/content/link-preview/types.d.ts +4 -4
  156. package/dist/types/content/transcript/cache.d.ts +4 -4
  157. package/dist/types/content/transcript/index.d.ts +7 -7
  158. package/dist/types/content/transcript/parse.d.ts +1 -1
  159. package/dist/types/content/transcript/providers/generic.d.ts +1 -1
  160. package/dist/types/content/transcript/providers/podcast/apple-flow.d.ts +2 -2
  161. package/dist/types/content/transcript/providers/podcast/flow-context.d.ts +4 -4
  162. package/dist/types/content/transcript/providers/podcast/media.d.ts +9 -6
  163. package/dist/types/content/transcript/providers/podcast/results.d.ts +3 -3
  164. package/dist/types/content/transcript/providers/podcast/rss.d.ts +1 -1
  165. package/dist/types/content/transcript/providers/podcast/spotify-flow.d.ts +2 -2
  166. package/dist/types/content/transcript/providers/podcast/spotify.d.ts +2 -2
  167. package/dist/types/content/transcript/providers/podcast.d.ts +5 -5
  168. package/dist/types/content/transcript/providers/transcription-start.d.ts +14 -8
  169. package/dist/types/content/transcript/providers/youtube/api.d.ts +1 -1
  170. package/dist/types/content/transcript/providers/youtube/captions.d.ts +1 -1
  171. package/dist/types/content/transcript/providers/youtube/yt-dlp.d.ts +11 -8
  172. package/dist/types/content/transcript/providers/youtube.d.ts +1 -1
  173. package/dist/types/content/transcript/timestamps.d.ts +1 -1
  174. package/dist/types/content/transcript/transcription-config.d.ts +15 -0
  175. package/dist/types/content/transcript/types.d.ts +12 -9
  176. package/dist/types/content/transcript/utils.d.ts +1 -1
  177. package/dist/types/content/url.d.ts +5 -3
  178. package/dist/types/index.d.ts +5 -4
  179. package/dist/types/language.d.ts +4 -4
  180. package/dist/types/openai/base-url.d.ts +14 -0
  181. package/dist/types/processes.d.ts +2 -2
  182. package/dist/types/prompts/cli.d.ts +3 -3
  183. package/dist/types/prompts/file.d.ts +2 -2
  184. package/dist/types/prompts/index.d.ts +6 -6
  185. package/dist/types/prompts/link-summary.d.ts +3 -3
  186. package/dist/types/prompts/summary-lengths.d.ts +1 -1
  187. package/dist/types/transcription/onnx-cli.d.ts +3 -3
  188. package/dist/types/transcription/whisper/core.d.ts +6 -3
  189. package/dist/types/transcription/whisper/groq.d.ts +2 -0
  190. package/dist/types/transcription/whisper/openai.d.ts +6 -1
  191. package/dist/types/transcription/whisper/types.d.ts +1 -1
  192. package/dist/types/transcription/whisper/whisper-cpp.d.ts +1 -1
  193. package/dist/types/transcription/whisper.d.ts +5 -5
  194. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"jsonld.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/jsonld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonld.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/jsonld.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,28 @@
1
- import { load } from 'cheerio';
2
- import { decodeHtmlEntities, normalizeCandidate } from './cleaner.js';
3
- import { pickFirstText, safeHostname } from './utils.js';
4
- const ALLOWED_TEXT_TAGS = new Set(['title']);
1
+ import { load } from "cheerio";
2
+ import { decodeHtmlEntities, normalizeCandidate } from "./cleaner.js";
3
+ import { pickFirstText, safeHostname } from "./utils.js";
4
+ const ALLOWED_TEXT_TAGS = new Set(["title"]);
5
5
  export function extractMetadataFromHtml(html, url) {
6
6
  const $ = load(html);
7
7
  const title = pickFirstText([
8
8
  pickMetaContent($, [
9
- { attribute: 'property', value: 'og:title' },
10
- { attribute: 'name', value: 'og:title' },
11
- { attribute: 'name', value: 'twitter:title' },
9
+ { attribute: "property", value: "og:title" },
10
+ { attribute: "name", value: "og:title" },
11
+ { attribute: "name", value: "twitter:title" },
12
12
  ]),
13
- extractTagText($, 'title'),
13
+ extractTagText($, "title"),
14
14
  ]);
15
15
  const description = pickFirstText([
16
16
  pickMetaContent($, [
17
- { attribute: 'property', value: 'og:description' },
18
- { attribute: 'name', value: 'description' },
19
- { attribute: 'name', value: 'twitter:description' },
17
+ { attribute: "property", value: "og:description" },
18
+ { attribute: "name", value: "description" },
19
+ { attribute: "name", value: "twitter:description" },
20
20
  ]),
21
21
  ]);
22
22
  const siteName = pickFirstText([
23
23
  pickMetaContent($, [
24
- { attribute: 'property', value: 'og:site_name' },
25
- { attribute: 'name', value: 'application-name' },
24
+ { attribute: "property", value: "og:site_name" },
25
+ { attribute: "name", value: "application-name" },
26
26
  ]),
27
27
  safeHostname(url),
28
28
  ]);
@@ -30,14 +30,14 @@ export function extractMetadataFromHtml(html, url) {
30
30
  }
31
31
  export function extractMetadataFromFirecrawl(metadata) {
32
32
  return {
33
- title: pickFirstText([metadataString(metadata, 'title'), metadataString(metadata, 'ogTitle')]),
33
+ title: pickFirstText([metadataString(metadata, "title"), metadataString(metadata, "ogTitle")]),
34
34
  description: pickFirstText([
35
- metadataString(metadata, 'description'),
36
- metadataString(metadata, 'ogDescription'),
35
+ metadataString(metadata, "description"),
36
+ metadataString(metadata, "ogDescription"),
37
37
  ]),
38
38
  siteName: pickFirstText([
39
- metadataString(metadata, 'siteName'),
40
- metadataString(metadata, 'ogSiteName'),
39
+ metadataString(metadata, "siteName"),
40
+ metadataString(metadata, "ogSiteName"),
41
41
  ]),
42
42
  };
43
43
  }
@@ -47,7 +47,7 @@ function pickMetaContent($, selectors) {
47
47
  if (meta.length === 0) {
48
48
  continue;
49
49
  }
50
- const value = meta.attr('content') ?? meta.attr('value') ?? '';
50
+ const value = meta.attr("content") ?? meta.attr("value") ?? "";
51
51
  const normalized = normalizeCandidate(decodeHtmlEntities(value));
52
52
  if (normalized) {
53
53
  return normalized;
@@ -72,6 +72,6 @@ function metadataString(metadata, key) {
72
72
  return null;
73
73
  }
74
74
  const value = metadata[key];
75
- return typeof value === 'string' ? normalizeCandidate(value) : null;
75
+ return typeof value === "string" ? normalizeCandidate(value) : null;
76
76
  }
77
77
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/parsers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/parsers.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,33 @@
1
1
  const PODCAST_HOST_SUFFIXES = [
2
- 'spotify.com',
3
- 'podcasts.apple.com',
4
- 'podchaser.com',
5
- 'podbean.com',
6
- 'buzzsprout.com',
7
- 'spreaker.com',
8
- 'simplecast.com',
9
- 'rss.com',
10
- 'libsyn.com',
11
- 'omny.fm',
12
- 'acast.com',
13
- 'transistor.fm',
14
- 'captivate.fm',
15
- 'soundcloud.com',
16
- 'ivoox.com',
17
- 'iheart.com',
18
- 'megaphone.fm',
19
- 'pca.st',
20
- 'player.fm',
21
- 'castbox.fm',
2
+ "spotify.com",
3
+ "podcasts.apple.com",
4
+ "podchaser.com",
5
+ "podbean.com",
6
+ "buzzsprout.com",
7
+ "spreaker.com",
8
+ "simplecast.com",
9
+ "rss.com",
10
+ "libsyn.com",
11
+ "omny.fm",
12
+ "acast.com",
13
+ "transistor.fm",
14
+ "captivate.fm",
15
+ "soundcloud.com",
16
+ "ivoox.com",
17
+ "iheart.com",
18
+ "megaphone.fm",
19
+ "pca.st",
20
+ "player.fm",
21
+ "castbox.fm",
22
22
  ];
23
23
  export function extractSpotifyEpisodeId(url) {
24
24
  try {
25
25
  const parsed = new URL(url);
26
- const host = parsed.hostname.toLowerCase().replace(/^www\./, '');
27
- if (!host.endsWith('spotify.com'))
26
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
27
+ if (!host.endsWith("spotify.com"))
28
28
  return null;
29
- const parts = parsed.pathname.split('/').filter(Boolean);
30
- const idx = parts.indexOf('episode');
29
+ const parts = parsed.pathname.split("/").filter(Boolean);
30
+ const idx = parts.indexOf("episode");
31
31
  const id = idx >= 0 ? parts[idx + 1] : null;
32
32
  return id && /^[A-Za-z0-9]+$/.test(id) ? id : null;
33
33
  }
@@ -38,13 +38,13 @@ export function extractSpotifyEpisodeId(url) {
38
38
  export function extractApplePodcastIds(url) {
39
39
  try {
40
40
  const parsed = new URL(url);
41
- const host = parsed.hostname.toLowerCase().replace(/^www\./, '');
42
- if (host !== 'podcasts.apple.com')
41
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
42
+ if (host !== "podcasts.apple.com")
43
43
  return null;
44
44
  const showId = parsed.pathname.match(/\/id(\d+)(?:\/|$)/)?.[1] ?? null;
45
45
  if (!showId)
46
46
  return null;
47
- const episodeIdRaw = parsed.searchParams.get('i');
47
+ const episodeIdRaw = parsed.searchParams.get("i");
48
48
  const episodeId = episodeIdRaw && /^\d+$/.test(episodeIdRaw) ? episodeIdRaw : null;
49
49
  return { showId, episodeId };
50
50
  }
@@ -56,18 +56,18 @@ export function isPodcastLikeJsonLdType(type) {
56
56
  if (!type)
57
57
  return false;
58
58
  const normalized = type.toLowerCase();
59
- if (normalized.includes('podcast'))
59
+ if (normalized.includes("podcast"))
60
60
  return true;
61
- return (normalized === 'audioobject' ||
62
- normalized === 'episode' ||
63
- normalized === 'radioepisode' ||
64
- normalized === 'musicrecording');
61
+ return (normalized === "audioobject" ||
62
+ normalized === "episode" ||
63
+ normalized === "radioepisode" ||
64
+ normalized === "musicrecording");
65
65
  }
66
66
  export function isPodcastHost(url) {
67
67
  try {
68
68
  const parsed = new URL(url);
69
- const host = parsed.hostname.toLowerCase().replace(/^www\./, '');
70
- if (host.startsWith('music.amazon.') && parsed.pathname.includes('/podcasts/')) {
69
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
70
+ if (host.startsWith("music.amazon.") && parsed.pathname.includes("/podcasts/")) {
71
71
  return true;
72
72
  }
73
73
  return PODCAST_HOST_SUFFIXES.some((suffix) => host === suffix || host.endsWith(`.${suffix}`));
@@ -1 +1 @@
1
- {"version":3,"file":"podcast-utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/podcast-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"podcast-utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/podcast-utils.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
+ import { stripHiddenHtml } from "./visibility.js";
1
2
  export async function extractReadabilityFromHtml(html, url) {
2
3
  try {
3
- const cleanedHtml = stripCssFromHtml(html);
4
- const { Readability } = await import('@mozilla/readability');
5
- const { JSDOM, VirtualConsole } = await import('jsdom');
4
+ const cleanedHtml = stripCssFromHtml(stripHiddenHtml(html));
5
+ const { Readability } = await import("@mozilla/readability");
6
+ const { JSDOM, VirtualConsole } = await import("jsdom");
6
7
  const virtualConsole = new VirtualConsole();
7
- virtualConsole.on('jsdomError', (err) => {
8
- const message = err && typeof err === 'object' && 'message' in err
9
- ? String(err.message ?? '')
10
- : '';
11
- if (message.includes('Could not parse CSS stylesheet'))
8
+ virtualConsole.on("jsdomError", (err) => {
9
+ const message = err && typeof err === "object" && "message" in err
10
+ ? String(err.message ?? "")
11
+ : "";
12
+ if (message.includes("Could not parse CSS stylesheet"))
12
13
  return;
13
14
  console.error(err);
14
15
  });
@@ -17,7 +18,7 @@ export async function extractReadabilityFromHtml(html, url) {
17
18
  const article = reader.parse();
18
19
  if (!article)
19
20
  return null;
20
- const text = (article.textContent ?? '').replace(/\s+/g, ' ').trim();
21
+ const text = (article.textContent ?? "").replace(/\s+/g, " ").trim();
21
22
  return {
22
23
  text,
23
24
  html: article.content ?? null,
@@ -40,14 +41,14 @@ export function toReadabilityHtml(result) {
40
41
  }
41
42
  function escapeHtml(input) {
42
43
  return input
43
- .replaceAll('&', '&')
44
- .replaceAll('<', '&lt;')
45
- .replaceAll('>', '&gt;')
46
- .replaceAll('"', '&quot;')
47
- .replaceAll("'", '&#39;');
44
+ .replaceAll("&", "&amp;")
45
+ .replaceAll("<", "&lt;")
46
+ .replaceAll(">", "&gt;")
47
+ .replaceAll('"', "&quot;")
48
+ .replaceAll("'", "&#39;");
48
49
  }
49
50
  function stripCssFromHtml(html) {
50
51
  // Readability doesn't need CSS; jsdom's CSS parsing can be extremely slow on some pages.
51
- return html.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, '');
52
+ return html.replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi, "");
52
53
  }
53
54
  //# sourceMappingURL=readability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readability.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/readability.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAY,EACZ,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;QAC5D,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAA;QACvD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;QAC3C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GACX,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG;gBAChD,CAAC,CAAC,MAAM,CAAE,GAA6B,CAAC,OAAO,IAAI,EAAE,CAAC;gBACtD,CAAC,CAAC,EAAE,CAAA;YACR,IAAI,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAAE,OAAM;YAC9D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,CAAA;QACtF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAEzB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACpE,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;SACjC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAgC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAA;IACnC,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IAC7B,OAAO,eAAe,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAA;AAC/D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,yFAAyF;IACzF,OAAO,IAAI,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"readability.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/readability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AASlD,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAY,EACZ,GAAY;IAEZ,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC7D,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC5C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACtC,MAAM,OAAO,GACX,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG;gBAChD,CAAC,CAAC,MAAM,CAAE,GAA6B,CAAC,OAAO,IAAI,EAAE,CAAC;gBACtD,CAAC,CAAC,EAAE,CAAC;YACT,IAAI,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC;gBAAE,OAAO;YAC/D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;SACjC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAgC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,eAAe,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAChE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;SACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC;SACzB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,yFAAyF;IACzF,OAAO,IAAI,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,17 +1,18 @@
1
- const TWITTER_HOSTS = new Set(['x.com', 'twitter.com', 'mobile.twitter.com']);
1
+ const TWITTER_HOSTS = new Set(["x.com", "twitter.com", "mobile.twitter.com"]);
2
2
  const NITTER_HOSTS = [
3
- 'nitter.net',
4
- 'nitter.poast.org',
5
- 'nitter.catsarch.com',
6
- 'nitter.privacydev.net',
7
- 'nitter.1d4.us',
3
+ "nitter.net",
4
+ "nitter.poast.org",
5
+ "nitter.catsarch.com",
6
+ "nitter.privacydev.net",
7
+ "nitter.1d4.us",
8
8
  ];
9
9
  const TWITTER_BLOCKED_TEXT_PATTERN = /something went wrong|try again|privacy related extensions|please disable them and try again/i;
10
- const ANUBIS_TOKENS = ['anubis', 'proof-of-work', 'proof of work', 'hashcash', 'jshelter'];
10
+ const ANUBIS_TOKENS = ["anubis", "proof-of-work", "proof of work", "hashcash", "jshelter"];
11
+ const TWITTER_BROADCAST_PATH_PATTERN = /^\/i\/broadcasts\/[^/?#]+/i;
11
12
  export function isTwitterStatusUrl(url) {
12
13
  try {
13
14
  const parsed = new URL(url);
14
- const host = parsed.hostname.toLowerCase().replace(/^www\./, '');
15
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
15
16
  if (!TWITTER_HOSTS.has(host))
16
17
  return false;
17
18
  return /\/status\/\d+/.test(parsed.pathname);
@@ -20,6 +21,18 @@ export function isTwitterStatusUrl(url) {
20
21
  return false;
21
22
  }
22
23
  }
24
+ export function isTwitterBroadcastUrl(url) {
25
+ try {
26
+ const parsed = new URL(url);
27
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
28
+ if (!TWITTER_HOSTS.has(host))
29
+ return false;
30
+ return TWITTER_BROADCAST_PATH_PATTERN.test(parsed.pathname);
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
23
36
  function rotateHosts(values, seed) {
24
37
  if (values.length <= 1)
25
38
  return values.slice();
@@ -36,7 +49,7 @@ function hashSeed(input) {
36
49
  export function toNitterUrls(url) {
37
50
  try {
38
51
  const parsed = new URL(url);
39
- const host = parsed.hostname.toLowerCase().replace(/^www\./, '');
52
+ const host = parsed.hostname.toLowerCase().replace(/^www\./, "");
40
53
  if (!TWITTER_HOSTS.has(host))
41
54
  return [];
42
55
  const seed = hashSeed(`${parsed.pathname}${parsed.search}`);
@@ -44,7 +57,7 @@ export function toNitterUrls(url) {
44
57
  return rotated.map((nitterHost) => {
45
58
  const copy = new URL(parsed.toString());
46
59
  copy.hostname = nitterHost;
47
- copy.protocol = 'https:';
60
+ copy.protocol = "https:";
48
61
  return copy.toString();
49
62
  });
50
63
  }
@@ -61,7 +74,7 @@ export function isAnubisHtml(html) {
61
74
  if (!html)
62
75
  return false;
63
76
  const lower = html.toLowerCase();
64
- if (!lower.includes('anubis'))
77
+ if (!lower.includes("anubis"))
65
78
  return false;
66
79
  return ANUBIS_TOKENS.some((token) => lower.includes(token));
67
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"twitter-utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/twitter-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twitter-utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/twitter-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export const DEFAULT_TIMEOUT_MS = 120_000;
2
2
  export const DEFAULT_MAX_CONTENT_CHARACTERS = 8000;
3
- export const DEFAULT_CACHE_MODE = 'default';
3
+ export const DEFAULT_CACHE_MODE = "default";
4
4
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAA;AACzC,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAA;AAClD,MAAM,CAAC,MAAM,kBAAkB,GAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAC1C,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AACnD,MAAM,CAAC,MAAM,kBAAkB,GAAc,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
- import { formatTranscriptSegments } from '../../transcript/timestamps.js';
2
- import { applyContentBudget, normalizeCandidate, normalizeForPrompt } from './cleaner.js';
3
- import { DEFAULT_CACHE_MODE, DEFAULT_TIMEOUT_MS, } from './types.js';
1
+ import { formatTranscriptSegments } from "../../transcript/timestamps.js";
2
+ import { applyContentBudget, normalizeCandidate, normalizeForPrompt } from "./cleaner.js";
3
+ import { DEFAULT_CACHE_MODE, DEFAULT_TIMEOUT_MS, } from "./types.js";
4
4
  const WWW_PREFIX_PATTERN = /^www\./i;
5
5
  const TRANSCRIPT_LINE_SPLIT_PATTERN = /\r?\n/;
6
6
  const WORD_SPLIT_PATTERN = /\s+/g;
@@ -8,13 +8,13 @@ function resolveMediaDurationSecondsFromTranscriptMetadata(metadata) {
8
8
  if (!metadata)
9
9
  return null;
10
10
  const direct = metadata.durationSeconds;
11
- if (typeof direct === 'number' && Number.isFinite(direct) && direct > 0) {
11
+ if (typeof direct === "number" && Number.isFinite(direct) && direct > 0) {
12
12
  return direct;
13
13
  }
14
14
  const media = metadata.media;
15
- if (typeof media === 'object' && media !== null) {
15
+ if (typeof media === "object" && media !== null) {
16
16
  const nested = media.durationSeconds;
17
- if (typeof nested === 'number' && Number.isFinite(nested) && nested > 0) {
17
+ if (typeof nested === "number" && Number.isFinite(nested) && nested > 0) {
18
18
  return nested;
19
19
  }
20
20
  }
@@ -24,35 +24,35 @@ function resolveTranscriptionProviderFromTranscriptMetadata(metadata) {
24
24
  if (!metadata)
25
25
  return null;
26
26
  const provider = metadata.transcriptionProvider;
27
- return typeof provider === 'string' && provider.trim().length > 0 ? provider.trim() : null;
27
+ return typeof provider === "string" && provider.trim().length > 0 ? provider.trim() : null;
28
28
  }
29
29
  export function resolveCacheMode(options) {
30
30
  return options?.cacheMode ?? DEFAULT_CACHE_MODE;
31
31
  }
32
32
  export function resolveMaxCharacters(options) {
33
33
  const candidate = options?.maxCharacters;
34
- if (typeof candidate !== 'number' || !Number.isFinite(candidate) || candidate <= 0) {
34
+ if (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate <= 0) {
35
35
  return null;
36
36
  }
37
37
  return Math.floor(candidate);
38
38
  }
39
39
  export function resolveTimeoutMs(options) {
40
40
  const candidate = options?.timeoutMs;
41
- if (typeof candidate !== 'number' || !Number.isFinite(candidate) || candidate <= 0) {
41
+ if (typeof candidate !== "number" || !Number.isFinite(candidate) || candidate <= 0) {
42
42
  return DEFAULT_TIMEOUT_MS;
43
43
  }
44
44
  return Math.floor(candidate);
45
45
  }
46
46
  export function resolveFirecrawlMode(options) {
47
47
  const candidate = options?.firecrawl;
48
- if (candidate === 'off' || candidate === 'auto' || candidate === 'always') {
48
+ if (candidate === "off" || candidate === "auto" || candidate === "always") {
49
49
  return candidate;
50
50
  }
51
- return 'auto';
51
+ return "auto";
52
52
  }
53
53
  export function appendNote(existing, next) {
54
54
  if (!next) {
55
- return existing ?? '';
55
+ return existing ?? "";
56
56
  }
57
57
  if (!existing || existing.length === 0) {
58
58
  return next;
@@ -61,7 +61,7 @@ export function appendNote(existing, next) {
61
61
  }
62
62
  export function safeHostname(rawUrl) {
63
63
  try {
64
- return new URL(rawUrl).hostname.replace(WWW_PREFIX_PATTERN, '');
64
+ return new URL(rawUrl).hostname.replace(WWW_PREFIX_PATTERN, "");
65
65
  }
66
66
  catch {
67
67
  return null;
@@ -113,20 +113,20 @@ export function ensureTranscriptDiagnostics(resolution, cacheMode) {
113
113
  if (resolution.diagnostics) {
114
114
  return resolution.diagnostics;
115
115
  }
116
- const hasText = typeof resolution.text === 'string' && resolution.text.length > 0;
117
- const cacheStatus = cacheMode === 'bypass' ? 'bypassed' : hasText ? 'miss' : 'unknown';
116
+ const hasText = typeof resolution.text === "string" && resolution.text.length > 0;
117
+ const cacheStatus = cacheMode === "bypass" ? "bypassed" : hasText ? "miss" : "unknown";
118
118
  return {
119
119
  cacheMode,
120
120
  cacheStatus,
121
121
  textProvided: hasText,
122
122
  provider: resolution.source,
123
123
  attemptedProviders: resolution.source ? [resolution.source] : [],
124
- notes: cacheMode === 'bypass' ? 'Cache bypass requested' : null,
124
+ notes: cacheMode === "bypass" ? "Cache bypass requested" : null,
125
125
  };
126
126
  }
127
127
  export function finalizeExtractedLinkContent({ url, baseContent, maxCharacters, title, description, siteName, transcriptResolution, video, isVideoOnly, diagnostics, }) {
128
128
  const normalized = normalizeForPrompt(baseContent);
129
- const { content, truncated, totalCharacters, wordCount } = typeof maxCharacters === 'number'
129
+ const { content, truncated, totalCharacters, wordCount } = typeof maxCharacters === "number"
130
130
  ? applyContentBudget(normalized, maxCharacters)
131
131
  : {
132
132
  content: normalized,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/content/link-preview/content/utils.ts"],"names":[],"mappings":"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"}