@j0hanz/fetch-url-mcp 1.1.3 → 1.3.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 (185) hide show
  1. package/README.md +18 -0
  2. package/dist/cache.d.ts +9 -3
  3. package/dist/cache.d.ts.map +1 -0
  4. package/dist/cache.js +44 -110
  5. package/dist/cache.js.map +1 -0
  6. package/dist/cli.d.ts +1 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +9 -4
  9. package/dist/cli.js.map +1 -0
  10. package/dist/config.d.ts +2 -3
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +18 -25
  13. package/dist/config.js.map +1 -0
  14. package/dist/crypto.d.ts +1 -0
  15. package/dist/crypto.d.ts.map +1 -0
  16. package/dist/crypto.js +1 -0
  17. package/dist/crypto.js.map +1 -0
  18. package/dist/dom-noise-removal.d.ts +2 -1
  19. package/dist/dom-noise-removal.d.ts.map +1 -0
  20. package/dist/dom-noise-removal.js +8 -4
  21. package/dist/dom-noise-removal.js.map +1 -0
  22. package/dist/download.d.ts +4 -0
  23. package/dist/download.d.ts.map +1 -0
  24. package/dist/download.js +106 -0
  25. package/dist/download.js.map +1 -0
  26. package/dist/errors.d.ts +1 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +1 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/examples/mcp-fetch-url-client.js +329 -0
  31. package/dist/examples/mcp-fetch-url-client.js.map +1 -0
  32. package/dist/fetch-content.d.ts +1 -0
  33. package/dist/fetch-content.d.ts.map +1 -0
  34. package/dist/fetch-content.js +14 -14
  35. package/dist/fetch-content.js.map +1 -0
  36. package/dist/fetch-stream.d.ts +1 -0
  37. package/dist/fetch-stream.d.ts.map +1 -0
  38. package/dist/fetch-stream.js +6 -3
  39. package/dist/fetch-stream.js.map +1 -0
  40. package/dist/fetch.d.ts +1 -0
  41. package/dist/fetch.d.ts.map +1 -0
  42. package/dist/fetch.js +178 -126
  43. package/dist/fetch.js.map +1 -0
  44. package/dist/host-normalization.d.ts +1 -0
  45. package/dist/host-normalization.d.ts.map +1 -0
  46. package/dist/host-normalization.js +19 -6
  47. package/dist/host-normalization.js.map +1 -0
  48. package/dist/http/auth.d.ts +35 -0
  49. package/dist/http/auth.d.ts.map +1 -0
  50. package/dist/http/auth.js +283 -0
  51. package/dist/http/auth.js.map +1 -0
  52. package/dist/http/health.d.ts +7 -0
  53. package/dist/http/health.d.ts.map +1 -0
  54. package/dist/http/health.js +166 -0
  55. package/dist/http/health.js.map +1 -0
  56. package/dist/http/helpers.d.ts +58 -0
  57. package/dist/http/helpers.d.ts.map +1 -0
  58. package/dist/http/helpers.js +372 -0
  59. package/dist/http/helpers.js.map +1 -0
  60. package/dist/{http-native.d.ts → http/native.d.ts} +1 -0
  61. package/dist/http/native.d.ts.map +1 -0
  62. package/dist/http/native.js +529 -0
  63. package/dist/http/native.js.map +1 -0
  64. package/dist/http/rate-limit.d.ts +13 -0
  65. package/dist/http/rate-limit.d.ts.map +1 -0
  66. package/dist/http/rate-limit.js +81 -0
  67. package/dist/http/rate-limit.js.map +1 -0
  68. package/dist/index.d.ts +1 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +2 -1
  71. package/dist/index.js.map +1 -0
  72. package/dist/instructions.d.ts +2 -0
  73. package/dist/instructions.d.ts.map +1 -0
  74. package/dist/instructions.js +108 -0
  75. package/dist/instructions.js.map +1 -0
  76. package/dist/ip-blocklist.d.ts +1 -0
  77. package/dist/ip-blocklist.d.ts.map +1 -0
  78. package/dist/ip-blocklist.js +2 -0
  79. package/dist/ip-blocklist.js.map +1 -0
  80. package/dist/json.d.ts +2 -1
  81. package/dist/json.d.ts.map +1 -0
  82. package/dist/json.js +19 -6
  83. package/dist/json.js.map +1 -0
  84. package/dist/language-detection.d.ts +1 -0
  85. package/dist/language-detection.d.ts.map +1 -0
  86. package/dist/language-detection.js +1 -0
  87. package/dist/language-detection.js.map +1 -0
  88. package/dist/markdown-cleanup.d.ts +2 -1
  89. package/dist/markdown-cleanup.d.ts.map +1 -0
  90. package/dist/markdown-cleanup.js +51 -52
  91. package/dist/markdown-cleanup.js.map +1 -0
  92. package/dist/mcp-validator.d.ts +1 -0
  93. package/dist/mcp-validator.d.ts.map +1 -0
  94. package/dist/mcp-validator.js +16 -8
  95. package/dist/mcp-validator.js.map +1 -0
  96. package/dist/mcp.d.ts +2 -2
  97. package/dist/mcp.d.ts.map +1 -0
  98. package/dist/mcp.js +17 -333
  99. package/dist/mcp.js.map +1 -0
  100. package/dist/observability.d.ts +2 -0
  101. package/dist/observability.d.ts.map +1 -0
  102. package/dist/observability.js +30 -5
  103. package/dist/observability.js.map +1 -0
  104. package/dist/prompts.d.ts +1 -0
  105. package/dist/prompts.d.ts.map +1 -0
  106. package/dist/prompts.js +15 -3
  107. package/dist/prompts.js.map +1 -0
  108. package/dist/resources.d.ts +1 -0
  109. package/dist/resources.d.ts.map +1 -0
  110. package/dist/resources.js +30 -23
  111. package/dist/resources.js.map +1 -0
  112. package/dist/server-tuning.d.ts +1 -0
  113. package/dist/server-tuning.d.ts.map +1 -0
  114. package/dist/server-tuning.js +11 -15
  115. package/dist/server-tuning.js.map +1 -0
  116. package/dist/server.d.ts +1 -0
  117. package/dist/server.d.ts.map +1 -0
  118. package/dist/server.js +23 -23
  119. package/dist/server.js.map +1 -0
  120. package/dist/session.d.ts +1 -0
  121. package/dist/session.d.ts.map +1 -0
  122. package/dist/session.js +55 -28
  123. package/dist/session.js.map +1 -0
  124. package/dist/tasks/execution.d.ts +42 -0
  125. package/dist/tasks/execution.d.ts.map +1 -0
  126. package/dist/tasks/execution.js +232 -0
  127. package/dist/tasks/execution.js.map +1 -0
  128. package/dist/{tasks.d.ts → tasks/manager.d.ts} +6 -0
  129. package/dist/tasks/manager.d.ts.map +1 -0
  130. package/dist/{tasks.js → tasks/manager.js} +86 -37
  131. package/dist/tasks/manager.js.map +1 -0
  132. package/dist/tasks/owner.d.ts +33 -0
  133. package/dist/tasks/owner.d.ts.map +1 -0
  134. package/dist/tasks/owner.js +99 -0
  135. package/dist/tasks/owner.js.map +1 -0
  136. package/dist/timer-utils.d.ts +1 -0
  137. package/dist/timer-utils.d.ts.map +1 -0
  138. package/dist/timer-utils.js +12 -5
  139. package/dist/timer-utils.js.map +1 -0
  140. package/dist/tool-errors.d.ts +12 -0
  141. package/dist/tool-errors.d.ts.map +1 -0
  142. package/dist/tool-errors.js +52 -0
  143. package/dist/tool-errors.js.map +1 -0
  144. package/dist/tool-pipeline.d.ts +72 -0
  145. package/dist/tool-pipeline.d.ts.map +1 -0
  146. package/dist/tool-pipeline.js +407 -0
  147. package/dist/tool-pipeline.js.map +1 -0
  148. package/dist/tool-progress.d.ts +32 -0
  149. package/dist/tool-progress.d.ts.map +1 -0
  150. package/dist/tool-progress.js +123 -0
  151. package/dist/tool-progress.js.map +1 -0
  152. package/dist/tools.d.ts +35 -111
  153. package/dist/tools.d.ts.map +1 -0
  154. package/dist/tools.js +93 -544
  155. package/dist/tools.js.map +1 -0
  156. package/dist/{transform.d.ts → transform/transform.d.ts} +2 -1
  157. package/dist/transform/transform.d.ts.map +1 -0
  158. package/dist/{transform.js → transform/transform.js} +76 -776
  159. package/dist/transform/transform.js.map +1 -0
  160. package/dist/{transform-types.d.ts → transform/types.d.ts} +1 -0
  161. package/dist/transform/types.d.ts.map +1 -0
  162. package/dist/{transform-types.js → transform/types.js} +1 -0
  163. package/dist/transform/types.js.map +1 -0
  164. package/dist/transform/worker-pool.d.ts +93 -0
  165. package/dist/transform/worker-pool.d.ts.map +1 -0
  166. package/dist/transform/worker-pool.js +759 -0
  167. package/dist/transform/worker-pool.js.map +1 -0
  168. package/dist/transform/workers/transform-child.d.ts +2 -0
  169. package/dist/transform/workers/transform-child.d.ts.map +1 -0
  170. package/dist/{workers → transform/workers}/transform-child.js +3 -1
  171. package/dist/transform/workers/transform-child.js.map +1 -0
  172. package/dist/transform/workers/transform-worker.d.ts +2 -0
  173. package/dist/transform/workers/transform-worker.d.ts.map +1 -0
  174. package/dist/{workers → transform/workers}/transform-worker.js +2 -1
  175. package/dist/transform/workers/transform-worker.js.map +1 -0
  176. package/dist/type-guards.d.ts +1 -0
  177. package/dist/type-guards.d.ts.map +1 -0
  178. package/dist/type-guards.js +1 -0
  179. package/dist/type-guards.js.map +1 -0
  180. package/package.json +6 -7
  181. package/dist/AGENTS.md +0 -152
  182. package/dist/http-native.js +0 -1320
  183. package/dist/instructions.md +0 -113
  184. package/dist/workers/transform-child.d.ts +0 -1
  185. package/dist/workers/transform-worker.d.ts +0 -1
package/README.md CHANGED
@@ -52,6 +52,7 @@ URL → Validate → DNS Preflight → HTTP Fetch → Decompress
52
52
  ```text
53
53
  fetch-url-mcp/
54
54
  ├── assets/ # Server icon (logo.svg)
55
+ ├── examples/ # Client examples
55
56
  ├── scripts/ # Build & test orchestration
56
57
  ├── src/
57
58
  │ ├── workers/ # Worker-thread child for HTML transforms
@@ -95,6 +96,23 @@ Add to your MCP client configuration:
95
96
  }
96
97
  ```
97
98
 
99
+ ## Client Example (CLI)
100
+
101
+ Build the server and examples, then run the client:
102
+
103
+ ```bash
104
+ npm run build
105
+ node dist/examples/mcp-fetch-url-client.js https://example.com
106
+ ```
107
+
108
+ Optional flags:
109
+
110
+ - `--full` reads the cached markdown resource to avoid inline truncation.
111
+ - `--task` enables task-based execution with streamed status updates.
112
+ - `--task-ttl <ms>` sets task TTL; `--task-poll <ms>` sets poll interval.
113
+ - `--http http://localhost:3000/mcp` connects to the Streamable HTTP server.
114
+ - Progress updates (when emitted) are printed to stderr.
115
+
98
116
  ## Installation
99
117
 
100
118
  ### NPX (Recommended)
package/dist/cache.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { ServerResponse } from 'node:http';
2
1
  import { z } from 'zod';
3
2
  declare const CachedPayloadSchema: z.ZodObject<{
4
3
  content: z.ZodOptional<z.ZodString>;
@@ -42,7 +41,14 @@ export declare function onCacheUpdate(listener: CacheUpdateListener): () => void
42
41
  export declare function get(cacheKey: string | null, options?: CacheGetOptions): CacheEntry | undefined;
43
42
  export declare function set(cacheKey: string | null, content: string, metadata: CacheEntryMetadata, options?: CacheSetOptions): void;
44
43
  export declare function keys(): readonly string[];
44
+ /**
45
+ * Return lightweight metadata (url and optional page title) for a cache entry.
46
+ * Returns `undefined` if the key is not found or cache is disabled.
47
+ */
48
+ export declare function getEntryMeta(cacheKey: string): {
49
+ url: string;
50
+ title?: string;
51
+ } | undefined;
45
52
  export declare function isEnabled(): boolean;
46
- export declare function generateSafeFilename(url: string, title?: string, hashFallback?: string, extension?: string): string;
47
- export declare function handleDownload(res: ServerResponse, namespace: string, hash: string): void;
48
53
  export {};
54
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,QAAA,MAAM,mBAAmB;;;;kBAIvB,CAAC;AACH,KAAK,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAGzD,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,KAAK,mBAAmB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAWhE,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAOpE;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,IAAI,CAEf;AA4BD,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GACtC,MAAM,GAAG,IAAI,CAoBf;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAMpE;AA2LD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI,CAEvE;AAED,wBAAgB,GAAG,CACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,UAAU,GAAG,SAAS,CAExB;AAED,wBAAgB,GAAG,CACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,IAAI,CAEN;AAED,wBAAgB,IAAI,IAAI,SAAS,MAAM,EAAE,CAExC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,GACf;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAM7C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
package/dist/cache.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { EventEmitter } from 'node:events';
2
- import { posix as pathPosix } from 'node:path';
3
2
  import { z } from 'zod';
4
3
  import { config } from './config.js';
5
4
  import { sha256Hex } from './crypto.js';
@@ -9,12 +8,6 @@ import { logWarn } from './observability.js';
9
8
  /* -------------------------------------------------------------------------------------------------
10
9
  * Schemas & Types
11
10
  * ------------------------------------------------------------------------------------------------- */
12
- const CacheNamespace = z.literal('markdown');
13
- const HashString = z
14
- .string()
15
- .regex(/^[a-f0-9.]+$/i)
16
- .min(8)
17
- .max(64);
18
11
  const CachedPayloadSchema = z.strictObject({
19
12
  content: z.string().optional(),
20
13
  markdown: z.string().optional(),
@@ -47,24 +40,25 @@ function buildCacheKey(namespace, urlHash, varyHash) {
47
40
  ? `${namespace}:${urlHash}.${varyHash}`
48
41
  : `${namespace}:${urlHash}`;
49
42
  }
43
+ function resolveVaryString(vary) {
44
+ if (typeof vary === 'string')
45
+ return vary;
46
+ try {
47
+ return stableJsonStringify(vary);
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
50
53
  export function createCacheKey(namespace, url, vary) {
51
54
  if (!namespace || !url)
52
55
  return null;
53
56
  const urlHash = createHashFragment(url, CACHE_CONSTANTS.URL_HASH_LENGTH);
54
57
  let varyHash;
55
58
  if (vary) {
56
- let varyString;
57
- if (typeof vary === 'string') {
58
- varyString = vary;
59
- }
60
- else {
61
- try {
62
- varyString = stableJsonStringify(vary);
63
- }
64
- catch {
65
- return null;
66
- }
67
- }
59
+ const varyString = resolveVaryString(vary);
60
+ if (varyString === null)
61
+ return null;
68
62
  if (varyString) {
69
63
  varyHash = createHashFragment(varyString, CACHE_CONSTANTS.VARY_HASH_LENGTH);
70
64
  }
@@ -135,7 +129,9 @@ class InMemoryCacheStore {
135
129
  const now = Date.now();
136
130
  if (this.isExpired(entry, now)) {
137
131
  this.delete(cacheKey);
138
- this.notify(cacheKey, true);
132
+ // listChanged=false: lazy eviction on read is silent — only writes change
133
+ // the list. Clients must not rely on list-changed events from reads.
134
+ this.notify(cacheKey, false);
139
135
  return undefined;
140
136
  }
141
137
  // Refresh LRU position
@@ -209,6 +205,21 @@ class InMemoryCacheStore {
209
205
  return;
210
206
  this.updateEmitter.emit('update', { cacheKey, ...parts, listChanged });
211
207
  }
208
+ /**
209
+ * Read an entry without updating its LRU position.
210
+ * Use this for metadata access (e.g. resource listing) to avoid polluting the
211
+ * eviction order; expired entries are treated as absent but not evicted here.
212
+ */
213
+ peek(cacheKey) {
214
+ if (!cacheKey)
215
+ return undefined;
216
+ const entry = this.entries.get(cacheKey);
217
+ if (!entry)
218
+ return undefined;
219
+ if (this.isExpired(entry))
220
+ return undefined;
221
+ return entry;
222
+ }
212
223
  logError(message, cacheKey, error) {
213
224
  logWarn(message, {
214
225
  key: cacheKey.length > 100 ? cacheKey.slice(0, 100) : cacheKey,
@@ -231,96 +242,19 @@ export function set(cacheKey, content, metadata, options) {
231
242
  export function keys() {
232
243
  return store.keys();
233
244
  }
245
+ /**
246
+ * Return lightweight metadata (url and optional page title) for a cache entry.
247
+ * Returns `undefined` if the key is not found or cache is disabled.
248
+ */
249
+ export function getEntryMeta(cacheKey) {
250
+ const entry = store.peek(cacheKey);
251
+ if (!entry)
252
+ return undefined;
253
+ return entry.title !== undefined
254
+ ? { url: entry.url, title: entry.title }
255
+ : { url: entry.url };
256
+ }
234
257
  export function isEnabled() {
235
258
  return store.isEnabled();
236
259
  }
237
- /* -------------------------------------------------------------------------------------------------
238
- * Utils: Filename Logic
239
- * ------------------------------------------------------------------------------------------------- */
240
- const FILENAME_RULES = {
241
- MAX_LEN: 200,
242
- UNSAFE_CHARS: /[<>:"/\\|?*\p{C}]/gu,
243
- WHITESPACE: /\s+/g,
244
- EXTENSIONS: /\.(html?|php|aspx?|jsp)$/i,
245
- };
246
- function sanitizeString(input) {
247
- return input
248
- .toLowerCase()
249
- .replace(FILENAME_RULES.UNSAFE_CHARS, '')
250
- .replace(FILENAME_RULES.WHITESPACE, '-')
251
- .replace(/-+/g, '-')
252
- .replace(/(?:^-|-$)/g, '');
253
- }
254
- export function generateSafeFilename(url, title, hashFallback, extension = '.md') {
255
- const tryUrl = () => {
256
- try {
257
- if (!URL.canParse(url))
258
- return null;
259
- const parsed = new URL(url);
260
- if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
261
- return null;
262
- const { pathname } = parsed;
263
- const basename = pathPosix.basename(pathname);
264
- if (!basename || basename === 'index')
265
- return null;
266
- const cleaned = basename.replace(FILENAME_RULES.EXTENSIONS, '');
267
- const sanitized = sanitizeString(cleaned);
268
- if (sanitized === 'index')
269
- return null;
270
- return sanitized || null;
271
- }
272
- catch {
273
- return null;
274
- }
275
- };
276
- const tryTitle = () => {
277
- if (!title)
278
- return null;
279
- return sanitizeString(title) || null;
280
- };
281
- const name = tryUrl() ??
282
- tryTitle() ??
283
- hashFallback?.substring(0, 16) ??
284
- `download-${Date.now()}`;
285
- const maxBase = FILENAME_RULES.MAX_LEN - extension.length;
286
- const truncated = name.length > maxBase ? name.substring(0, maxBase) : name;
287
- return `${truncated}${extension}`;
288
- }
289
- /* -------------------------------------------------------------------------------------------------
290
- * Adapter: Download Handler
291
- * ------------------------------------------------------------------------------------------------- */
292
- const DownloadParamsSchema = z.strictObject({
293
- namespace: CacheNamespace,
294
- hash: HashString,
295
- });
296
- export function handleDownload(res, namespace, hash) {
297
- const respond = (status, msg, code) => {
298
- res.writeHead(status, { 'Content-Type': 'application/json' });
299
- res.end(JSON.stringify({ error: msg, code }));
300
- };
301
- const parsed = DownloadParamsSchema.safeParse({ namespace, hash });
302
- if (!parsed.success) {
303
- respond(400, 'Invalid namespace or hash', 'BAD_REQUEST');
304
- return;
305
- }
306
- const cacheKey = `${parsed.data.namespace}:${parsed.data.hash}`;
307
- const entry = store.get(cacheKey, { force: true });
308
- if (!entry) {
309
- respond(404, 'Not found or expired', 'NOT_FOUND');
310
- return;
311
- }
312
- const payload = parseCachedPayload(entry.content);
313
- const content = payload ? resolveCachedPayloadContent(payload) : null;
314
- if (!content) {
315
- respond(404, 'Content missing', 'NOT_FOUND');
316
- return;
317
- }
318
- const fileName = generateSafeFilename(entry.url, payload?.title, parsed.data.hash);
319
- // Safe header generation
320
- const encoded = encodeURIComponent(fileName).replace(/'/g, '%27');
321
- res.setHeader('Content-Type', 'text/markdown; charset=utf-8');
322
- res.setHeader('Content-Disposition', `attachment; filename="${fileName}"; filename*=UTF-8''${encoded}`);
323
- res.setHeader('Cache-Control', `private, max-age=${config.cache.ttl}`);
324
- res.setHeader('X-Content-Type-Options', 'nosniff');
325
- res.end(content);
326
- }
260
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -15,3 +15,4 @@ export type CliParseResult = CliParseSuccess | CliParseFailure;
15
15
  export declare function renderCliUsage(): string;
16
16
  export declare function parseCliArgs(args: readonly string[]): CliParseResult;
17
17
  export {};
18
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,CAAC;AAiD/D,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,CAmBpE"}
package/dist/cli.js CHANGED
@@ -19,15 +19,19 @@ const optionSchema = {
19
19
  function toErrorMessage(error) {
20
20
  return error instanceof Error ? error.message : String(error);
21
21
  }
22
+ const cliFlagKeys = ['stdio', 'help', 'version'];
22
23
  function toBoolean(value) {
23
24
  return value === true;
24
25
  }
26
+ function readCliFlag(values, key) {
27
+ return toBoolean(values[key]);
28
+ }
25
29
  function buildCliValues(values) {
26
- const { stdio, help, version } = values;
30
+ const flags = Object.fromEntries(cliFlagKeys.map((key) => [key, readCliFlag(values, key)]));
27
31
  return {
28
- stdio: toBoolean(stdio),
29
- help: toBoolean(help),
30
- version: toBoolean(version),
32
+ stdio: flags.stdio,
33
+ help: flags.help,
34
+ version: flags.version,
31
35
  };
32
36
  }
33
37
  export function renderCliUsage() {
@@ -53,3 +57,4 @@ export function parseCliArgs(args) {
53
57
  };
54
58
  }
55
59
  }
60
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAoBtC,MAAM,UAAU,GAAG;IACjB,sBAAsB;IACtB,EAAE;IACF,QAAQ;IACR,yDAAyD;IACzD,EAAE;IACF,UAAU;IACV,qDAAqD;IACrD,yCAAyC;IACzC,sCAAsC;IACtC,EAAE;CACM,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;IACtD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;IACrD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;CAChD,CAAC;AAEX,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAID,MAAM,WAAW,GAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAExE,SAAS,SAAS,CAAC,KAAuC;IACxD,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,MAAoB,EAAE,GAAe;IACxD,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,cAAc,CAAC,MAAoB;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAC3B,CAAC;IAEjC,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAuB;IAClD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;YAC3B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;SAC/B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -65,6 +65,7 @@ export declare const config: {
65
65
  stageWarnRatio: number;
66
66
  metadataFormat: string;
67
67
  maxWorkerScale: number;
68
+ cancelAckTimeoutMs: number;
68
69
  workerMode: TransformWorkerMode;
69
70
  workerResourceLimits: WorkerResourceLimits | undefined;
70
71
  };
@@ -122,9 +123,6 @@ export declare const config: {
122
123
  };
123
124
  security: {
124
125
  blockedHosts: Set<string>;
125
- blockedIpPatterns: readonly RegExp[];
126
- blockedIpPattern: RegExp;
127
- blockedIpv4MappedPattern: RegExp;
128
126
  allowedHosts: Set<string>;
129
127
  apiKey: string | undefined;
130
128
  allowRemote: boolean;
@@ -140,3 +138,4 @@ export declare const config: {
140
138
  };
141
139
  export declare function enableHttpMode(): void;
142
140
  export {};
141
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,aAAa,EAAE,MAA2C,CAAC;AAExE,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AA0B3D,KAAK,mBAAmB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,KAAK,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAgPnC,UAAU,oBAAoB;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+BD,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC;IAC3B,gBAAgB,EAAE,GAAG,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,GAAG,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,GAAG,GAAG,SAAS,CAAC;IAC/B,eAAe,EAAE,GAAG,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,GAAG,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AA2ID,UAAU,YAAY;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAMD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHlB,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
package/dist/config.js CHANGED
@@ -3,13 +3,26 @@ import { findPackageJSON } from 'node:module';
3
3
  import { isIP } from 'node:net';
4
4
  import process from 'node:process';
5
5
  import { domainToASCII } from 'node:url';
6
+ import { getErrorMessage } from './errors.js';
7
+ function hasPackageJsonVersion(value) {
8
+ if (typeof value !== 'object' || value === null)
9
+ return false;
10
+ const record = value;
11
+ return typeof record.version === 'string';
12
+ }
6
13
  function readServerVersion(moduleUrl) {
7
14
  const packageJsonPath = findPackageJSON(moduleUrl);
8
15
  if (!packageJsonPath)
9
16
  throw new Error('package.json not found');
10
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
11
- if (typeof packageJson.version !== 'string') {
12
- throw new Error('package.json version is missing');
17
+ let packageJson;
18
+ try {
19
+ packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
20
+ }
21
+ catch (error) {
22
+ throw new Error(`Failed to parse package.json at ${packageJsonPath}: ${getErrorMessage(error)}`, { cause: error });
23
+ }
24
+ if (!hasPackageJsonVersion(packageJson)) {
25
+ throw new Error(`package.json version is missing at ${packageJsonPath}`);
13
26
  }
14
27
  return packageJson.version;
15
28
  }
@@ -331,25 +344,6 @@ const BLOCKED_HOSTS = new Set([
331
344
  METADATA_V4_AZURE,
332
345
  'instance-data',
333
346
  ]);
334
- const BLOCKED_IP_PATTERNS = [
335
- /^10\./,
336
- /^172\.(1[6-9]|2\d|3[01])\./,
337
- /^192\.168\./,
338
- /^127\./,
339
- /^0\./,
340
- /^169\.254\./,
341
- /^100\.64\./,
342
- /^fc00:/i,
343
- /^fd00:/i,
344
- /^fe80:/i,
345
- /^::ffff:127\./,
346
- /^::ffff:10\./,
347
- /^::ffff:172\.(1[6-9]|2\d|3[01])\./,
348
- /^::ffff:192\.168\./,
349
- /^::ffff:169\.254\./,
350
- ];
351
- const BLOCKED_IP_PATTERN = /^(?:10\.|172\.(?:1[6-9]|2\d|3[01])\.|192\.168\.|127\.|0\.|169\.254\.|100\.64\.|fc00:|fd00:|fe80:)/i;
352
- const BLOCKED_IPV4_MAPPED_PATTERN = /^::ffff:(?:127\.|10\.|172\.(?:1[6-9]|2\d|3[01])\.|192\.168\.|169\.254\.)/i;
353
347
  const host = (env['HOST'] ?? LOOPBACK_V4).trim();
354
348
  const port = parsePort(env['PORT']);
355
349
  const httpsConfig = buildHttpsConfig();
@@ -398,6 +392,7 @@ export const config = {
398
392
  stageWarnRatio: 0.5,
399
393
  metadataFormat: 'markdown',
400
394
  maxWorkerScale: 4,
395
+ cancelAckTimeoutMs: parseInteger(env['TRANSFORM_CANCEL_ACK_TIMEOUT_MS'], 200, 50, 5000),
401
396
  workerMode: parseTransformWorkerMode(env['TRANSFORM_WORKER_MODE']),
402
397
  workerResourceLimits: resolveWorkerResourceLimits(),
403
398
  },
@@ -460,9 +455,6 @@ export const config = {
460
455
  },
461
456
  security: {
462
457
  blockedHosts: BLOCKED_HOSTS,
463
- blockedIpPatterns: BLOCKED_IP_PATTERNS,
464
- blockedIpPattern: BLOCKED_IP_PATTERN,
465
- blockedIpv4MappedPattern: BLOCKED_IPV4_MAPPED_PATTERN,
466
458
  allowedHosts: parseAllowedHosts(env['ALLOWED_HOSTS']),
467
459
  apiKey: env['API_KEY'],
468
460
  allowRemote,
@@ -479,3 +471,4 @@ export const config = {
479
471
  export function enableHttpMode() {
480
472
  runtimeState.httpMode = true;
481
473
  }
474
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/crypto.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export declare function timingSafeEqualUtf8(a: string, b: string): boolean;
2
2
  export declare function sha256Hex(input: string | Uint8Array): string;
3
3
  export declare function hmacSha256Hex(key: string | Uint8Array, input: string | Uint8Array): string;
4
+ //# sourceMappingURL=crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAyCA,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAajE;AAiBD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE5D;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,GAAG,UAAU,EACxB,KAAK,EAAE,MAAM,GAAG,UAAU,GACzB,MAAM,CAER"}
package/dist/crypto.js CHANGED
@@ -50,3 +50,4 @@ export function sha256Hex(input) {
50
50
  export function hmacSha256Hex(key, input) {
51
51
  return createHmac('sha256', key).update(input).digest('hex');
52
52
  }
53
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,UAAU,EACV,UAAU,EACV,IAAI,IAAI,WAAW,EACnB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAI7C,MAAM,uBAAuB,GAAsC,IAAI,GAAG,CAAC;IACzE,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,KAAa;IACnC,oDAAoD;IACpD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,UAAU,CAAC,KAA0B;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9E,CAAC;AAED,SAAS,sBAAsB,CAC7B,SAA+B;IAE/B,iEAAiE;IACjE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAc,EAAE,MAAc;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,CAAS;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;AAChF,CAAC;AAED,SAAS,OAAO,CACd,SAA+B,EAC/B,KAA0B;IAE1B,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAElC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC;QAC9C,OAAO,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAA0B;IAClD,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAwB,EACxB,KAA0B;IAE1B,OAAO,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC"}
@@ -1 +1,2 @@
1
- export declare function removeNoiseFromHtml(html: string, document?: Document, baseUrl?: string): string;
1
+ export declare function removeNoiseFromHtml(html: string, document?: Document, baseUrl?: string, signal?: AbortSignal): string;
2
+ //# sourceMappingURL=dom-noise-removal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-noise-removal.d.ts","sourceRoot":"","sources":["../src/dom-noise-removal.ts"],"names":[],"mappings":"AAslBA,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,GACnB,MAAM,CA0BR"}
@@ -365,7 +365,7 @@ function cleanHeadings(document) {
365
365
  cleanHeadingZeroWidth(h, document);
366
366
  }
367
367
  }
368
- function stripNoise(document, context) {
368
+ function stripNoise(document, context, signal) {
369
369
  cleanHeadings(document);
370
370
  // Remove Base & Extra
371
371
  const { baseSelector, extraSelectors } = context;
@@ -381,6 +381,9 @@ function stripNoise(document, context) {
381
381
  // Candidates
382
382
  const candidates = document.querySelectorAll(context.candidateSelector);
383
383
  for (let i = candidates.length - 1; i >= 0; i--) {
384
+ if (i % 500 === 0 && signal?.aborted) {
385
+ throw new Error('Noise removal aborted');
386
+ }
384
387
  const node = candidates[i];
385
388
  if (!node)
386
389
  continue;
@@ -438,7 +441,7 @@ function resolveUrls(document, baseUrlStr) {
438
441
  return;
439
442
  }
440
443
  const elements = document.querySelectorAll('a[href],img[src],source[srcset]');
441
- for (const el of Array.from(elements)) {
444
+ for (const el of elements) {
442
445
  const tag = el.tagName.toLowerCase();
443
446
  if (tag === 'a')
444
447
  processUrlElement(el, 'href', base, false);
@@ -466,7 +469,7 @@ function mayContainNoise(html) {
466
469
  : `${html.substring(0, NOISE_SCAN_LIMIT)}\n${html.substring(html.length - NOISE_SCAN_LIMIT)}`;
467
470
  return NOISE_PATTERNS.some((re) => re.test(sample));
468
471
  }
469
- export function removeNoiseFromHtml(html, document, baseUrl) {
472
+ export function removeNoiseFromHtml(html, document, baseUrl, signal) {
470
473
  const shouldParse = isFullDocumentHtml(html) ||
471
474
  mayContainNoise(html) ||
472
475
  HTML_FRAGMENT_MARKERS.test(html);
@@ -480,7 +483,7 @@ export function removeNoiseFromHtml(html, document, baseUrl) {
480
483
  });
481
484
  }
482
485
  const doc = document ?? parseHTML(html).document;
483
- stripNoise(doc, context);
486
+ stripNoise(doc, context, signal);
484
487
  if (baseUrl)
485
488
  resolveUrls(doc, baseUrl);
486
489
  return serialize(doc, html);
@@ -489,3 +492,4 @@ export function removeNoiseFromHtml(html, document, baseUrl) {
489
492
  return html;
490
493
  }
491
494
  }
495
+ //# sourceMappingURL=dom-noise-removal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-noise-removal.js","sourceRoot":"","sources":["../src/dom-noise-removal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ServerResponse } from 'node:http';
2
+ export declare function generateSafeFilename(url: string, title?: string, hashFallback?: string, extension?: string): string;
3
+ export declare function handleDownload(res: ServerResponse, namespace: string, hash: string): void;
4
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AA2EhD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,SAAQ,GAChB,MAAM,CAIR;AAeD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,IAAI,CA6CN"}