@purepageio/fetch-engines 0.4.1 → 0.5.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.
package/README.md CHANGED
@@ -9,10 +9,11 @@ Fetching web content can be complex. You need to handle static HTML, dynamic Jav
9
9
 
10
10
  **Why use `@purepageio/fetch-engines`?**
11
11
 
12
- - **Unified API:** Get content from simple or complex sites using the same `fetchHTML(url, options?)` method.
12
+ - **Unified API:** Get content from simple or complex sites using the same `fetchHTML(url, options?)` method for processed content or `fetchContent(url, options?)` for raw content.
13
13
  - **Flexible Strategies:** Choose the right tool for the job:
14
14
  - `FetchEngine`: Lightweight and fast for static HTML, using the standard `fetch` API. Ideal for speed and efficiency with content that doesn't require JavaScript rendering. Supports custom headers.
15
15
  - `HybridEngine`: The best of both worlds – tries `FetchEngine` first for speed, automatically falls back to a powerful browser engine (internally, `PlaywrightEngine`) for reliability on complex, JavaScript-heavy pages. Supports custom headers.
16
+ - **Raw Content Support:** Use `fetchContent()` to retrieve any type of content (PDFs, images, APIs, etc.) with the same smart fallback logic as `fetchHTML()`.
16
17
  - **Robust & Resilient:** Built-in caching, configurable retries, and standardized error handling make your fetching logic more dependable.
17
18
  - **Simplified Automation:** When `HybridEngine` uses its browser capabilities (via the internal `PlaywrightEngine`), it manages browser instances and contexts automatically through efficient pooling and includes integrated stealth measures to bypass common anti-bot systems.
18
19
  - **Content Transformation:** Optionally convert fetched HTML directly to clean Markdown content.
@@ -26,6 +27,7 @@ This package provides a high-level abstraction, letting you focus on using the w
26
27
  - [Installation](#installation)
27
28
  - [Engines](#engines)
28
29
  - [Basic Usage](#basic-usage)
30
+ - [fetchHTML vs fetchContent](#fetchhtml-vs-fetchcontent)
29
31
  - [Configuration](#configuration)
30
32
  - [Return Value](#return-value)
31
33
  - [API Reference](#api-reference)
@@ -38,7 +40,8 @@ This package provides a high-level abstraction, letting you focus on using the w
38
40
  ## Features
39
41
 
40
42
  - **Multiple Fetching Strategies:** Choose between `FetchEngine` (lightweight `fetch`) or `HybridEngine` (smart fallback to a full browser engine).
41
- - **Unified API:** Simple `fetchHTML(url, options?)` interface across both primary engines.
43
+ - **Unified API:** Simple `fetchHTML(url, options?)` interface for processed content and `fetchContent(url, options?)` for raw content across both primary engines.
44
+ - **Raw Content Fetching:** Use `fetchContent()` to retrieve any type of content (PDFs, images, JSON, XML, etc.) without HTML processing or content-type restrictions.
42
45
  - **Custom Headers:** Easily provide custom HTTP headers for requests in both `FetchEngine` and `HybridEngine`.
43
46
  - **Configurable Retries:** Automatic retries on failure with customizable attempts and delays.
44
47
  - **Built-in Caching:** In-memory caching with configurable TTL to reduce redundant fetches.
@@ -155,6 +158,111 @@ async function main() {
155
158
  main();
156
159
  ```
157
160
 
161
+ ### Raw Content Fetching
162
+
163
+ ```typescript
164
+ import { HybridEngine } from "@purepageio/fetch-engines";
165
+
166
+ const engine = new HybridEngine();
167
+
168
+ async function fetchRawContent() {
169
+ try {
170
+ // Fetch a PDF document
171
+ const pdfResult = await engine.fetchContent("https://example.com/document.pdf");
172
+ console.log(`PDF Content-Type: ${pdfResult.contentType}`);
173
+ console.log(
174
+ `PDF Size: ${Buffer.isBuffer(pdfResult.content) ? pdfResult.content.length : pdfResult.content.length} bytes`
175
+ );
176
+
177
+ // Fetch JSON API
178
+ const jsonResult = await engine.fetchContent("https://api.example.com/data");
179
+ console.log(`JSON Content-Type: ${jsonResult.contentType}`);
180
+ console.log(`JSON Data: ${typeof jsonResult.content === "string" ? jsonResult.content : "Binary data"}`);
181
+
182
+ // Fetch with custom headers
183
+ const customResult = await engine.fetchContent("https://protected-api.example.com/data", {
184
+ headers: {
185
+ Authorization: "Bearer your-token",
186
+ Accept: "application/json",
187
+ },
188
+ });
189
+ console.log(`Custom fetch result: ${customResult.statusCode}`);
190
+ } catch (error) {
191
+ console.error("Raw content fetch failed:", error);
192
+ } finally {
193
+ await engine.cleanup();
194
+ }
195
+ }
196
+ fetchRawContent();
197
+ ```
198
+
199
+ ## fetchHTML vs fetchContent
200
+
201
+ Choose the right method for your use case:
202
+
203
+ ### `fetchHTML(url, options?)`
204
+
205
+ **Use when:** You want to extract and process web page content.
206
+
207
+ **Features:**
208
+
209
+ - Processes HTML content and extracts metadata (title, etc.)
210
+ - Supports HTML-to-Markdown conversion
211
+ - Optimized for web page content
212
+ - Content-type restrictions (HTML/XML only)
213
+ - Returns processed content as `string`
214
+
215
+ **Best for:**
216
+
217
+ - Web scraping
218
+ - Content extraction
219
+ - Blog/article processing
220
+ - Any scenario where you need structured HTML or Markdown
221
+
222
+ ### `fetchContent(url, options?)`
223
+
224
+ **Use when:** You want raw content without processing, mimicking standard `fetch()` behavior.
225
+
226
+ **Features:**
227
+
228
+ - Retrieves any content type (PDFs, images, JSON, XML, etc.)
229
+ - No content-type restrictions
230
+ - Returns raw content as `Buffer` (binary) or `string` (text)
231
+ - Preserves original MIME type information
232
+ - Minimal processing overhead
233
+
234
+ **Best for:**
235
+
236
+ - API consumption
237
+ - File downloads (PDFs, images, etc.)
238
+ - Binary content retrieval
239
+ - Any scenario where you need the raw response
240
+
241
+ ### Example Comparison
242
+
243
+ ```typescript
244
+ import { HybridEngine } from "@purepageio/fetch-engines";
245
+
246
+ const engine = new HybridEngine();
247
+
248
+ // fetchHTML - for web page content
249
+ const htmlResult = await engine.fetchHTML("https://example.com");
250
+ console.log(htmlResult.title); // "Example Domain"
251
+ console.log(htmlResult.contentType); // "html" or "markdown"
252
+ console.log(typeof htmlResult.content); // "string" (processed HTML/Markdown)
253
+
254
+ // fetchContent - for raw content
255
+ const contentResult = await engine.fetchContent("https://example.com");
256
+ console.log(contentResult.title); // "Example Domain" (extracted but not processed)
257
+ console.log(contentResult.contentType); // "text/html" (original MIME type)
258
+ console.log(typeof contentResult.content); // "string" (raw HTML)
259
+
260
+ // fetchContent - for non-HTML content
261
+ const pdfResult = await engine.fetchContent("https://example.com/doc.pdf");
262
+ console.log(pdfResult.contentType); // "application/pdf"
263
+ console.log(Buffer.isBuffer(pdfResult.content)); // true (binary content)
264
+ ```
265
+
158
266
  ## Configuration
159
267
 
160
268
  Engines accept an optional configuration object in their constructor to customise behavior.
@@ -234,7 +342,7 @@ When you configure `HybridEngine` using `PlaywrightEngineConfig`:
234
342
  - **`headers?: Record<string, string>`**:
235
343
  - These headers override any headers set in the `HybridEngine` constructor.
236
344
  - If `FetchEngine` is used: These headers are passed to `FetchEngine.fetchHTML(url, { headers: ... })`. `FetchEngine` then merges them with its constructor headers and base defaults.
237
- - If `PlaywrightEngine` (fallback) is used: These headers are merged with `HybridEngine` constructor headers (options take precedence) and the result is passed to `PlaywrightEngine.fetchHTML()`. `PlaywrightEngine` then applies its own logic (e.g., for `page.setExtraHTTPHeaders` or its HTTP fallback).
345
+ - If `PlaywrightEngine` (fallback) is used: These headers are merged with `HybridEngine` constructor headers (options take precedence) and the result is passed to `PlaywrightEngine`'s `fetchHTML()`. `PlaywrightEngine` then applies its own logic (e.g., for `page.setExtraHTTPHeaders` or its HTTP fallback).
238
346
  - **`markdown?: boolean`**:
239
347
  - If `FetchEngine` is used: This per-request option is **ignored**. `FetchEngine` uses its own constructor `markdown` setting.
240
348
  - If `PlaywrightEngine` (fallback) is used: This overrides `PlaywrightEngine`'s default and determines its output format.
@@ -260,6 +368,8 @@ async function fetchSpaSite() {
260
368
 
261
369
  ## Return Value
262
370
 
371
+ ### `fetchHTML()` Result
372
+
263
373
  All `fetchHTML()` methods return a Promise that resolves to an `HTMLFetchResult` object:
264
374
 
265
375
  - `content` (`string`): The fetched content, either original HTML or converted Markdown.
@@ -270,6 +380,18 @@ All `fetchHTML()` methods return a Promise that resolves to an `HTMLFetchResult`
270
380
  - `statusCode` (`number | undefined`): HTTP status code.
271
381
  - `error` (`Error | undefined`): Error object if the fetch failed after all retries. It's generally recommended to rely on catching thrown errors for failure handling.
272
382
 
383
+ ### `fetchContent()` Result
384
+
385
+ All `fetchContent()` methods return a Promise that resolves to a `ContentFetchResult` object:
386
+
387
+ - `content` (`Buffer | string`): The raw fetched content. Binary content (PDFs, images, etc.) is returned as `Buffer`, text content as `string`.
388
+ - `contentType` (`string`): The original MIME type from the server (e.g., `"application/pdf"`, `"text/html"`, `"application/json"`).
389
+ - `title` (`string | null`): Extracted page title if the content is HTML, otherwise `null`.
390
+ - `url` (`string`): Final URL after redirects.
391
+ - `isFromCache` (`boolean`): True if the result came from cache.
392
+ - `statusCode` (`number | undefined`): HTTP status code.
393
+ - `error` (`Error | undefined`): Error object if the fetch failed after all retries. It's generally recommended to rely on catching thrown errors for failure handling.
394
+
273
395
  ## API Reference
274
396
 
275
397
  ### `engine.fetchHTML(url, options?)`
@@ -284,6 +406,15 @@ All `fetchHTML()` methods return a Promise that resolves to an `HTMLFetchResult`
284
406
 
285
407
  Fetches content, returning HTML or Markdown based on configuration/options in `result.content` with `result.contentType` indicating the format.
286
408
 
409
+ ### `engine.fetchContent(url, options?)`
410
+
411
+ - `url` (`string`): URL to fetch.
412
+ - `options?` (`ContentFetchOptions`): Optional per-request overrides.
413
+ - `headers?: Record<string, string>`: Custom headers for this specific request.
414
+ - **Returns:** `Promise<ContentFetchResult>`
415
+
416
+ Fetches raw content without processing, mimicking standard `fetch()` behavior. Returns binary content as `Buffer` and text content as `string`. Supports any content type (PDFs, images, JSON, XML, etc.) and uses the same smart fallback logic as `fetchHTML()` but without HTML-specific processing or content-type restrictions.
417
+
287
418
  ### `engine.cleanup()` (`HybridEngine` and direct `FetchEngine` if no cleanup needed)
288
419
 
289
420
  - **Returns:** `Promise<void>`
@@ -312,11 +443,10 @@ Errors during fetching are typically thrown as instances of `FetchError` (or its
312
443
  Common `FetchError` codes and scenarios:
313
444
 
314
445
  - **`ERR_HTTP_ERROR`**: Thrown by `FetchEngine` for HTTP status codes >= 400. `error.statusCode` will be set.
315
- - **`ERR_NON_HTML_CONTENT`**: Thrown by `FetchEngine` if the content type is not HTML and `markdown` conversion is not requested.
446
+ - **`ERR_NON_HTML_CONTENT`**: Thrown by `FetchEngine` if the content type is not HTML and `markdown` conversion is not requested. **Note:** `fetchContent()` does not throw this error as it supports all content types.
316
447
  - **`ERR_PLAYWRIGHT_OPERATION`**: A general error from `HybridEngine`'s browser mode indicating a failure during a Playwright operation (e.g., page acquisition, navigation, interaction). The `originalError` property will often contain the specific Playwright error.
317
448
  - **`ERR_NAVIGATION`**: Often seen as part of `ERR_PLAYWRIGHT_OPERATION`'s message or in `originalError` when a Playwright navigation (in `HybridEngine`'s browser mode) fails (e.g., timeout, SSL error).
318
- - **`ERR_MARKDOWN_CONVERSION_NON_HTML`**: Thrown by `HybridEngine` (when its Playwright part is active) if `markdown: true` is requested for a non-HTML content type (e.g., XML, JSON).
319
- - **`ERR_UNSUPPORTED_RAW_CONTENT_TYPE`**: Thrown by `HybridEngine` (when its Playwright part is active and `markdown: false`) if requested for a content type it doesn't support for direct fetching (e.g., images, applications).
449
+ - **`ERR_MARKDOWN_CONVERSION_NON_HTML`**: Thrown by `HybridEngine` (when its Playwright part is active) if `markdown: true` is requested for a non-HTML content type (e.g., XML, JSON). **Note:** Only applies to `fetchHTML()` as `fetchContent()` doesn't perform markdown conversion.
320
450
  - **`ERR_CACHE_ERROR`**: Indicates an issue with cache read/write operations.
321
451
  - **`ERR_PROXY_CONFIG_ERROR`**: Problem with proxy configuration (for `HybridEngine`'s browser mode).
322
452
  - **`ERR_BROWSER_POOL_EXHAUSTED`**: If `HybridEngine`'s browser pool cannot provide a page.
@@ -338,40 +468,56 @@ const engine = new HybridEngine({ useHttpFallback: false, maxRetries: 1 }); // u
338
468
 
339
469
  async function fetchWithHandling(url: string) {
340
470
  try {
341
- const result = await engine.fetchHTML(url, { headers: { "X-My-Header": "TestValue" } });
342
- if (result.error) {
343
- console.warn(`Fetch for ${url} included non-critical error after retries: ${result.error.message}`);
471
+ // Try fetchHTML first
472
+ const htmlResult = await engine.fetchHTML(url, { headers: { "X-My-Header": "TestValue" } });
473
+ if (htmlResult.error) {
474
+ console.warn(`fetchHTML for ${url} included non-critical error after retries: ${htmlResult.error.message}`);
344
475
  }
345
- console.log(`Success for ${url}! Title: ${result.title}, Content type: ${result.contentType}`);
346
- // Use result.content
476
+ console.log(`fetchHTML Success for ${url}! Title: ${htmlResult.title}, Content type: ${htmlResult.contentType}`);
477
+ // Use htmlResult.content
347
478
  } catch (error) {
348
- console.error(`Fetch failed for ${url}:`);
349
- if (error instanceof FetchError) {
350
- console.error(` Error Code: ${error.code || "N/A"}`);
351
- console.error(` Message: ${error.message}`);
352
- if (error.statusCode) {
353
- console.error(` Status Code: ${error.statusCode}`);
354
- }
355
- if (error.originalError) {
356
- console.error(` Original Error: ${error.originalError.name} - ${error.originalError.message}`);
357
- }
358
- // Example of specific handling:
359
- if (error.code === "ERR_PLAYWRIGHT_OPERATION") {
360
- console.error(
361
- " Hint: This was a Playwright operation failure (HybridEngine's browser mode). Check Playwright logs or originalError."
479
+ console.error(`fetchHTML failed for ${url}, trying fetchContent...`);
480
+
481
+ try {
482
+ // Fallback to fetchContent for raw content
483
+ const contentResult = await engine.fetchContent(url, { headers: { "X-My-Header": "TestValue" } });
484
+ if (contentResult.error) {
485
+ console.warn(
486
+ `fetchContent for ${url} included non-critical error after retries: ${contentResult.error.message}`
362
487
  );
363
488
  }
364
- } else if (error instanceof Error) {
365
- console.error(` Generic Error: ${error.message}`);
366
- } else {
367
- console.error(` Unknown error occurred: ${String(error)}`);
489
+ console.log(`fetchContent Success for ${url}! Content type: ${contentResult.contentType}`);
490
+ // Use contentResult.content (could be Buffer or string)
491
+ } catch (contentError) {
492
+ console.error(`Both fetchHTML and fetchContent failed for ${url}:`);
493
+ if (contentError instanceof FetchError) {
494
+ console.error(` Error Code: ${contentError.code || "N/A"}`);
495
+ console.error(` Message: ${contentError.message}`);
496
+ if (contentError.statusCode) {
497
+ console.error(` Status Code: ${contentError.statusCode}`);
498
+ }
499
+ if (contentError.originalError) {
500
+ console.error(` Original Error: ${contentError.originalError.name} - ${contentError.originalError.message}`);
501
+ }
502
+ // Example of specific handling:
503
+ if (contentError.code === "ERR_PLAYWRIGHT_OPERATION") {
504
+ console.error(
505
+ " Hint: This was a Playwright operation failure (HybridEngine's browser mode). Check Playwright logs or originalError."
506
+ );
507
+ }
508
+ } else if (contentError instanceof Error) {
509
+ console.error(` Generic Error: ${contentError.message}`);
510
+ } else {
511
+ console.error(` Unknown error occurred: ${String(contentError)}`);
512
+ }
368
513
  }
369
514
  }
370
515
  }
371
516
 
372
517
  async function runExamples() {
373
- await fetchWithHandling("https://nonexistentdomain.example.com"); // Likely DNS or navigation error via FetchEngine or Playwright
374
- await fetchWithHandling("https://example.com/non_html_resource.json"); // Test with actual JSON URL if available (FetchEngine might handle, or Playwright if complex)
518
+ await fetchWithHandling("https://nonexistentdomain.example.com"); // Likely DNS or navigation error
519
+ await fetchWithHandling("https://example.com/document.pdf"); // PDF content - fetchHTML will fail, fetchContent will succeed
520
+ await fetchWithHandling("https://example.com/api/data.json"); // JSON content - fetchHTML will fail, fetchContent will succeed
375
521
  await engine.cleanup(); // Important for HybridEngine
376
522
  }
377
523
 
@@ -1,4 +1,4 @@
1
- import type { HTMLFetchResult, BrowserMetrics, FetchEngineOptions } from "./types.js";
1
+ import type { HTMLFetchResult, ContentFetchResult, ContentFetchOptions, BrowserMetrics, FetchEngineOptions } from "./types.js";
2
2
  import type { IEngine } from "./IEngine.js";
3
3
  import { FetchError } from "./errors.js";
4
4
  /**
@@ -31,6 +31,16 @@ export declare class FetchEngine implements IEngine {
31
31
  * @throws {Error} If the content type is not HTML or for other network errors.
32
32
  */
33
33
  fetchHTML(url: string, options?: FetchEngineOptions): Promise<HTMLFetchResult>;
34
+ /**
35
+ * Fetches raw content from the specified URL (mimics standard fetch API).
36
+ *
37
+ * @param url The URL to fetch.
38
+ * @param options Optional fetch options.
39
+ * @returns A Promise resolving to a ContentFetchResult object.
40
+ * @throws {FetchEngineHttpError} If the HTTP response status is not ok (e.g., 404, 500).
41
+ * @throws {Error} For network errors or other fetch failures.
42
+ */
43
+ fetchContent(url: string, options?: ContentFetchOptions): Promise<ContentFetchResult>;
34
44
  /**
35
45
  * Cleans up resources used by the engine.
36
46
  * For FetchEngine, this is a no-op as it doesn't manage persistent resources.
@@ -1 +1 @@
1
- {"version":3,"file":"FetchEngine.d.ts","sourceRoot":"","sources":["../src/FetchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;aAGhC,UAAU,EAAE,MAAM;gBADlC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM;CAKrC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAGrC;IAEF;;;OAGG;gBACS,OAAO,GAAE,kBAAuB;IAI5C;;;;;;;OAOG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+EpF;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;;OAIG;IACH,UAAU,IAAI,cAAc,EAAE;CAG/B"}
1
+ {"version":3,"file":"FetchEngine.d.ts","sourceRoot":"","sources":["../src/FetchEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;aAGhC,UAAU,EAAE,MAAM;gBADlC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM;CAKrC;AAED;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,OAAO;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAGrC;IAEF;;;OAGG;gBACS,OAAO,GAAE,kBAAuB;IAI5C;;;;;;;OAOG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+EpF;;;;;;;;OAQG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8E3F;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;;OAIG;IACH,UAAU,IAAI,cAAc,EAAE;CAG/B"}
@@ -105,6 +105,79 @@ export class FetchEngine {
105
105
  throw new FetchError(`Fetch failed: ${message}`, "ERR_FETCH_FAILED", error instanceof Error ? error : undefined);
106
106
  }
107
107
  }
108
+ /**
109
+ * Fetches raw content from the specified URL (mimics standard fetch API).
110
+ *
111
+ * @param url The URL to fetch.
112
+ * @param options Optional fetch options.
113
+ * @returns A Promise resolving to a ContentFetchResult object.
114
+ * @throws {FetchEngineHttpError} If the HTTP response status is not ok (e.g., 404, 500).
115
+ * @throws {Error} For network errors or other fetch failures.
116
+ */
117
+ async fetchContent(url, options) {
118
+ let response;
119
+ try {
120
+ const baseHeaders = {
121
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
122
+ Accept: "*/*", // Accept any content type for raw content fetching
123
+ };
124
+ // Merge headers with the same precedence as fetchHTML
125
+ const constructorHeaders = this.options.headers || {};
126
+ const callSpecificHeaders = options?.headers || {};
127
+ const finalHeaders = {
128
+ ...baseHeaders,
129
+ ...constructorHeaders,
130
+ ...callSpecificHeaders,
131
+ };
132
+ response = await fetch(url, {
133
+ redirect: "follow",
134
+ headers: finalHeaders,
135
+ });
136
+ if (!response.ok) {
137
+ throw new FetchEngineHttpError(`HTTP error! status: ${response.status}`, response.status);
138
+ }
139
+ const contentTypeHeader = response.headers.get("content-type") || "application/octet-stream";
140
+ // Determine if content is text-based or binary
141
+ const isTextBased = contentTypeHeader.startsWith("text/") ||
142
+ contentTypeHeader.includes("json") ||
143
+ contentTypeHeader.includes("xml") ||
144
+ contentTypeHeader.includes("javascript") ||
145
+ contentTypeHeader.includes("html") ||
146
+ contentTypeHeader.includes("css");
147
+ let content;
148
+ if (isTextBased) {
149
+ content = await response.text();
150
+ }
151
+ else {
152
+ const arrayBuffer = await response.arrayBuffer();
153
+ content = Buffer.from(arrayBuffer);
154
+ }
155
+ // Extract title only if content is HTML
156
+ let title = null;
157
+ if (typeof content === "string" && contentTypeHeader.includes("html")) {
158
+ const titleMatch = content.match(/<title[^>]*>([^<]+)<\/title>/i);
159
+ title = titleMatch ? titleMatch[1].trim() : null;
160
+ }
161
+ return {
162
+ content,
163
+ contentType: contentTypeHeader,
164
+ title,
165
+ url: response.url, // Use the final URL after redirects
166
+ isFromCache: false,
167
+ statusCode: response.status,
168
+ error: undefined,
169
+ };
170
+ }
171
+ catch (error) {
172
+ // Re-throw specific known errors directly
173
+ if (error instanceof FetchEngineHttpError) {
174
+ throw error;
175
+ }
176
+ // Wrap other/unexpected errors
177
+ const message = error instanceof Error ? error.message : "Unknown fetch error";
178
+ throw new FetchError(`Content fetch failed: ${message}`, "ERR_FETCH_FAILED", error instanceof Error ? error : undefined);
179
+ }
180
+ }
108
181
  /**
109
182
  * Cleans up resources used by the engine.
110
183
  * For FetchEngine, this is a no-op as it doesn't manage persistent resources.
@@ -1 +1 @@
1
- {"version":3,"file":"FetchEngine.js","sourceRoot":"","sources":["../src/FetchEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FetchEngine.js","sourceRoot":"","sources":["../src/FetchEngine.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { IEngine } from "./IEngine.js";
2
- import type { HTMLFetchResult, PlaywrightEngineConfig, FetchOptions, BrowserMetrics } from "./types.js";
2
+ import type { HTMLFetchResult, ContentFetchResult, ContentFetchOptions, PlaywrightEngineConfig, FetchOptions, BrowserMetrics } from "./types.js";
3
3
  /**
4
4
  * HybridEngine - Tries FetchEngine first, falls back to PlaywrightEngine on failure.
5
5
  */
@@ -11,6 +11,17 @@ export declare class HybridEngine implements IEngine {
11
11
  constructor(config?: PlaywrightEngineConfig);
12
12
  private _isSpaShell;
13
13
  fetchHTML(url: string, options?: FetchOptions): Promise<HTMLFetchResult>;
14
+ /**
15
+ * Fetches raw content from the specified URL using the hybrid approach.
16
+ * Tries FetchEngine first, falls back to PlaywrightEngine on failure.
17
+ * Mimics standard fetch API behavior.
18
+ *
19
+ * @param url The URL to fetch content from.
20
+ * @param options Optional fetch options.
21
+ * @returns A Promise resolving to a ContentFetchResult object.
22
+ * @throws {FetchError} If both engines fail to fetch the content.
23
+ */
24
+ fetchContent(url: string, options?: ContentFetchOptions): Promise<ContentFetchResult>;
14
25
  /**
15
26
  * Delegates getMetrics to the PlaywrightEngine.
16
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HybridEngine.d.ts","sourceRoot":"","sources":["../src/HybridEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExG;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;gBAEjD,MAAM,GAAE,sBAA2B;IAU/C,OAAO,CAAC,WAAW;IAkBb,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiFlF;;OAEG;IACH,UAAU,IAAI,cAAc,EAAE;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
1
+ {"version":3,"file":"HybridEngine.d.ts","sourceRoot":"","sources":["../src/HybridEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,YAAa,YAAW,OAAO;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;gBAEjD,MAAM,GAAE,sBAA2B;IAU/C,OAAO,CAAC,WAAW;IAkBb,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiFlF;;;;;;;;;OASG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAqC/F;;OAEG;IACH,UAAU,IAAI,cAAc,EAAE;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
@@ -100,6 +100,46 @@ export class HybridEngine {
100
100
  }
101
101
  }
102
102
  }
103
+ /**
104
+ * Fetches raw content from the specified URL using the hybrid approach.
105
+ * Tries FetchEngine first, falls back to PlaywrightEngine on failure.
106
+ * Mimics standard fetch API behavior.
107
+ *
108
+ * @param url The URL to fetch content from.
109
+ * @param options Optional fetch options.
110
+ * @returns A Promise resolving to a ContentFetchResult object.
111
+ * @throws {FetchError} If both engines fail to fetch the content.
112
+ */
113
+ async fetchContent(url, options = {}) {
114
+ // Check playwrightOnlyPatterns first
115
+ for (const pattern of this.playwrightOnlyPatterns) {
116
+ if (typeof pattern === "string" && url.includes(pattern)) {
117
+ console.warn(`HybridEngine: URL ${url} matches string pattern "${pattern}". Using PlaywrightEngine directly for content fetch.`);
118
+ return this.playwrightEngine.fetchContent(url, options);
119
+ }
120
+ else if (pattern instanceof RegExp && pattern.test(url)) {
121
+ console.warn(`HybridEngine: URL ${url} matches regex pattern "${pattern.toString()}". Using PlaywrightEngine directly for content fetch.`);
122
+ return this.playwrightEngine.fetchContent(url, options);
123
+ }
124
+ }
125
+ try {
126
+ // Try FetchEngine first
127
+ const fetchResult = await this.fetchEngine.fetchContent(url, options);
128
+ return fetchResult;
129
+ }
130
+ catch (fetchError) {
131
+ console.warn(`HybridEngine: FetchEngine failed for content fetch ${url}: ${fetchError.message}. Falling back to PlaywrightEngine.`);
132
+ try {
133
+ // Fallback to PlaywrightEngine
134
+ const playwrightResult = await this.playwrightEngine.fetchContent(url, options);
135
+ return playwrightResult;
136
+ }
137
+ catch (playwrightError) {
138
+ console.error(`HybridEngine: PlaywrightEngine fallback also failed for content fetch ${url}: ${playwrightError.message}`);
139
+ throw playwrightError; // Throw the Playwright error as it's the last one encountered
140
+ }
141
+ }
142
+ }
103
143
  /**
104
144
  * Delegates getMetrics to the PlaywrightEngine.
105
145
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HybridEngine.js","sourceRoot":"","sources":["../src/HybridEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HybridEngine.js","sourceRoot":"","sources":["../src/HybridEngine.ts"],"names":[],"mappings":"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"}
package/dist/IEngine.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { HTMLFetchResult, BrowserMetrics } from "./types.js";
1
+ import type { HTMLFetchResult, ContentFetchResult, ContentFetchOptions, BrowserMetrics } from "./types.js";
2
2
  /**
3
3
  * Interface for browser engines that can fetch HTML content from URLs
4
4
  */
@@ -9,6 +9,13 @@ export interface IEngine {
9
9
  * @returns A promise that resolves to an HTMLFetchResult
10
10
  */
11
11
  fetchHTML(url: string): Promise<HTMLFetchResult>;
12
+ /**
13
+ * Fetches raw content from a URL (mimics standard fetch API)
14
+ * @param url The URL to fetch
15
+ * @param options Optional fetch options
16
+ * @returns A promise that resolves to a ContentFetchResult
17
+ */
18
+ fetchContent(url: string, options?: ContentFetchOptions): Promise<ContentFetchResult>;
12
19
  /**
13
20
  * Cleans up resources used by the engine
14
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IEngine.d.ts","sourceRoot":"","sources":["../src/IEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEjD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,IAAI,cAAc,EAAE,CAAC;CAChC"}
1
+ {"version":3,"file":"IEngine.d.ts","sourceRoot":"","sources":["../src/IEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3G;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEtF;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;;OAGG;IACH,UAAU,IAAI,cAAc,EAAE,CAAC;CAChC"}
@@ -1,4 +1,4 @@
1
- import type { HTMLFetchResult, BrowserMetrics, PlaywrightEngineConfig, FetchOptions } from "./types.js";
1
+ import type { HTMLFetchResult, ContentFetchResult, ContentFetchOptions, BrowserMetrics, PlaywrightEngineConfig, FetchOptions } from "./types.js";
2
2
  import type { IEngine } from "./IEngine.js";
3
3
  /**
4
4
  * PlaywrightEngine - Fetches HTML using a managed pool of headless Playwright browser instances.
@@ -115,5 +115,35 @@ export declare class PlaywrightEngine implements IEngine {
115
115
  */
116
116
  getMetrics(): BrowserMetrics[];
117
117
  private shouldUseHeadedMode;
118
+ /**
119
+ * Fetches raw content from the specified URL using Playwright with HTTP fallback.
120
+ * Mimics standard fetch API behavior.
121
+ *
122
+ * @param url The URL to fetch content from.
123
+ * @param options Optional fetch options.
124
+ * @returns A Promise resolving to a ContentFetchResult object.
125
+ * @throws {FetchError} If the fetch operation fails after all retries.
126
+ */
127
+ fetchContent(url: string, options?: ContentFetchOptions): Promise<ContentFetchResult>;
128
+ /**
129
+ * Check cache for content fetch results.
130
+ */
131
+ private checkContentCache;
132
+ /**
133
+ * Add content fetch result to cache.
134
+ */
135
+ private addContentToCache;
136
+ /**
137
+ * Recursive fetch implementation with retry logic for content fetching.
138
+ */
139
+ private _fetchContentRecursive;
140
+ /**
141
+ * HTTP fallback for content fetching.
142
+ */
143
+ private _attemptContentHttpFallback;
144
+ /**
145
+ * Fetch content using Playwright browser.
146
+ */
147
+ private fetchContentWithPlaywright;
118
148
  }
119
149
  //# sourceMappingURL=PlaywrightEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightEngine.d.ts","sourceRoot":"","sources":["../src/PlaywrightEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAyC5C;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAGxD,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,mBAAmB,CAA0B;IAGrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAuBpC;IAEF;;;;;OAKG;gBACS,MAAM,GAAE,sBAA2B;IAM/C;;OAEG;YACW,qBAAqB;IAwCnC;;;OAGG;YACW,yBAAyB;IAiEvC,OAAO,CAAC,UAAU;IAalB;;OAEG;YACW,WAAW;IAazB;;OAEG;YACW,qBAAqB;IAwCnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;;;;;OASG;IACG,SAAS,CACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GACrE,OAAO,CAAC,eAAe,CAAC;IAoB3B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;;;;;;OAOG;YACW,oBAAoB;IAkClC;;;;;;;;OAQG;YACW,6BAA6B;IAmC3C;;;;;;;OAOG;YACW,eAAe;IAkH7B;;;OAGG;YACW,mBAAmB;YA2KnB,kBAAkB;IAyChC;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B;;;OAGG;IACH,UAAU,IAAI,cAAc,EAAE;IAQ9B,OAAO,CAAC,mBAAmB;CAS5B"}
1
+ {"version":3,"file":"PlaywrightEngine.d.ts","sourceRoot":"","sources":["../src/PlaywrightEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAyC5C;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAGxD,OAAO,CAAC,uBAAuB,CAAkB;IACjD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,mBAAmB,CAA0B;IAGrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAuBpC;IAEF;;;;;OAKG;gBACS,MAAM,GAAE,sBAA2B;IAM/C;;OAEG;YACW,qBAAqB;IAwCnC;;;OAGG;YACW,yBAAyB;IAiEvC,OAAO,CAAC,UAAU;IAalB;;OAEG;YACW,WAAW;IAazB;;OAEG;YACW,qBAAqB;IAwCnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;;;;;;;;OASG;IACG,SAAS,CACb,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO,GACrE,OAAO,CAAC,eAAe,CAAC;IAoB3B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;;;;;;OAOG;YACW,oBAAoB;IAkClC;;;;;;;;OAQG;YACW,6BAA6B;IAmC3C;;;;;;;OAOG;YACW,eAAe;IAkH7B;;;OAGG;YACW,mBAAmB;YA2KnB,kBAAkB;IAyChC;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB9B;;;OAGG;IACH,UAAU,IAAI,cAAc,EAAE;IAQ9B,OAAO,CAAC,mBAAmB;IAU3B;;;;;;;;OAQG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA0C/F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;YACW,sBAAsB;IAwDpC;;OAEG;YACW,2BAA2B;IAuDzC;;OAEG;YACW,0BAA0B;CAmFzC"}
@@ -678,5 +678,238 @@ export class PlaywrightEngine {
678
678
  return false; // Invalid URL
679
679
  }
680
680
  }
681
+ /**
682
+ * Fetches raw content from the specified URL using Playwright with HTTP fallback.
683
+ * Mimics standard fetch API behavior.
684
+ *
685
+ * @param url The URL to fetch content from.
686
+ * @param options Optional fetch options.
687
+ * @returns A Promise resolving to a ContentFetchResult object.
688
+ * @throws {FetchError} If the fetch operation fails after all retries.
689
+ */
690
+ async fetchContent(url, options = {}) {
691
+ // Build current config by merging defaults with per-request options
692
+ const currentConfig = {
693
+ // From engine defaults
694
+ retryDelay: this.config.retryDelay,
695
+ maxRetries: this.config.maxRetries,
696
+ useHttpFallback: this.config.useHttpFallback,
697
+ useHeadedModeFallback: this.config.useHeadedModeFallback,
698
+ useHeadedMode: this.config.useHeadedMode,
699
+ cacheTTL: this.config.cacheTTL,
700
+ // From per-request options
701
+ fastMode: options.fastMode !== undefined ? options.fastMode : this.config.defaultFastMode,
702
+ headers: options.headers || this.config.headers || {},
703
+ };
704
+ // Check cache first
705
+ const cacheKey = `content_${url}`;
706
+ const cachedResult = this.checkContentCache(cacheKey);
707
+ if (cachedResult) {
708
+ return cachedResult;
709
+ }
710
+ // Start recursive fetch with retry logic
711
+ const result = await this._fetchContentRecursive(url, currentConfig, 0);
712
+ // Cache successful result
713
+ if (result && !result.error) {
714
+ this.addContentToCache(cacheKey, result);
715
+ }
716
+ return result;
717
+ }
718
+ /**
719
+ * Check cache for content fetch results.
720
+ */
721
+ checkContentCache(cacheKey) {
722
+ const cacheEntry = this.cache.get(cacheKey);
723
+ if (cacheEntry && Date.now() - cacheEntry.timestamp < this.config.cacheTTL) {
724
+ // Need to convert HTMLFetchResult to ContentFetchResult if cached
725
+ const htmlResult = cacheEntry.result;
726
+ return {
727
+ content: Buffer.isBuffer(htmlResult.content) ? htmlResult.content : htmlResult.content,
728
+ contentType: htmlResult.contentType === "html" ? "text/html" : htmlResult.contentType,
729
+ title: htmlResult.title,
730
+ url: htmlResult.url,
731
+ isFromCache: true,
732
+ statusCode: htmlResult.statusCode,
733
+ error: htmlResult.error,
734
+ };
735
+ }
736
+ return null;
737
+ }
738
+ /**
739
+ * Add content fetch result to cache.
740
+ */
741
+ addContentToCache(cacheKey, result) {
742
+ if (this.config.cacheTTL <= 0)
743
+ return; // Caching disabled
744
+ // Convert to HTMLFetchResult format for storage
745
+ const htmlResult = {
746
+ content: typeof result.content === "string" ? result.content : result.content.toString(),
747
+ contentType: result.contentType.includes("html") ? "html" : "html", // Store as html for compatibility
748
+ title: result.title,
749
+ url: result.url,
750
+ isFromCache: result.isFromCache,
751
+ statusCode: result.statusCode,
752
+ error: result.error,
753
+ };
754
+ this.cache.set(cacheKey, {
755
+ result: htmlResult,
756
+ timestamp: Date.now(),
757
+ });
758
+ }
759
+ /**
760
+ * Recursive fetch implementation with retry logic for content fetching.
761
+ */
762
+ async _fetchContentRecursive(url, currentConfig, retryAttempt) {
763
+ try {
764
+ // Try HTTP fallback first if enabled
765
+ if (currentConfig.useHttpFallback) {
766
+ try {
767
+ const httpResult = await this._attemptContentHttpFallback(url, currentConfig);
768
+ if (httpResult) {
769
+ return httpResult;
770
+ }
771
+ }
772
+ catch (httpError) {
773
+ // Log but don't throw - will try Playwright next
774
+ console.warn(`HTTP fallback failed for ${url}, trying Playwright:`, httpError);
775
+ }
776
+ }
777
+ // Initialize browser pool
778
+ const useHeadedMode = currentConfig.useHeadedMode || this.shouldUseHeadedMode(url);
779
+ await this._ensureBrowserPoolInitialized(useHeadedMode, currentConfig);
780
+ if (!this.browserPool) {
781
+ throw new FetchError("Browser pool initialization failed", "ERR_BROWSER_POOL_EXHAUSTED");
782
+ }
783
+ // Use Playwright to fetch content
784
+ return await this.fetchContentWithPlaywright(url, this.browserPool, currentConfig.fastMode, currentConfig.headers);
785
+ }
786
+ catch (error) {
787
+ // Handle retry logic
788
+ if (retryAttempt < currentConfig.maxRetries) {
789
+ console.warn(`Content fetch attempt ${retryAttempt + 1} failed for ${url}, retrying...`);
790
+ await delay(currentConfig.retryDelay);
791
+ return this._fetchContentRecursive(url, currentConfig, retryAttempt + 1);
792
+ }
793
+ // All retries exhausted
794
+ throw error;
795
+ }
796
+ }
797
+ /**
798
+ * HTTP fallback for content fetching.
799
+ */
800
+ async _attemptContentHttpFallback(url, currentConfig) {
801
+ if (!currentConfig.useHttpFallback)
802
+ return null;
803
+ try {
804
+ const response = await axios.get(url, {
805
+ headers: { ...COMMON_HEADERS, ...currentConfig.headers },
806
+ maxRedirects: MAX_REDIRECTS,
807
+ timeout: DEFAULT_HTTP_TIMEOUT,
808
+ responseType: "arraybuffer", // Get raw binary data
809
+ decompress: true,
810
+ });
811
+ const contentType = response.headers["content-type"] || "application/octet-stream";
812
+ // Determine if content is text-based
813
+ const isTextBased = contentType.startsWith("text/") ||
814
+ contentType.includes("json") ||
815
+ contentType.includes("xml") ||
816
+ contentType.includes("javascript") ||
817
+ contentType.includes("html") ||
818
+ contentType.includes("css");
819
+ let content;
820
+ if (isTextBased) {
821
+ content = response.data.toString("utf-8");
822
+ }
823
+ else {
824
+ content = Buffer.from(response.data);
825
+ }
826
+ // Extract title only if content is HTML
827
+ let title = null;
828
+ if (typeof content === "string" && contentType.includes("html")) {
829
+ const titleMatch = content.match(REGEX_TITLE_TAG);
830
+ title = titleMatch ? titleMatch[1].trim() : null;
831
+ }
832
+ return {
833
+ content,
834
+ contentType,
835
+ title,
836
+ url: response.request?.res?.responseUrl || response.config.url || url,
837
+ isFromCache: false,
838
+ statusCode: response.status,
839
+ error: undefined,
840
+ };
841
+ }
842
+ catch (error) {
843
+ // Let caller handle fallback to Playwright
844
+ throw new FetchError(`HTTP content fetch failed: ${error.message}`, "ERR_HTTP_FALLBACK", error);
845
+ }
846
+ }
847
+ /**
848
+ * Fetch content using Playwright browser.
849
+ */
850
+ async fetchContentWithPlaywright(url, pool, fastMode, headers) {
851
+ let page = null;
852
+ try {
853
+ page = await pool.acquirePage();
854
+ // Set headers if provided
855
+ if (headers && Object.keys(headers).length > 0) {
856
+ await page.setExtraHTTPHeaders(headers);
857
+ }
858
+ // Apply resource blocking for fast mode
859
+ if (fastMode) {
860
+ await this.applyBlockingRules(page, fastMode);
861
+ }
862
+ // Navigate to the page
863
+ const response = await page.goto(url, {
864
+ waitUntil: "domcontentloaded",
865
+ timeout: 30000,
866
+ });
867
+ if (!response) {
868
+ throw new FetchError(`Failed to get response for ${url}`, "ERR_NAVIGATION");
869
+ }
870
+ if (!response.ok()) {
871
+ throw new FetchError(`HTTP error! status: ${response.status()}`, "ERR_HTTP_ERROR", undefined, response.status());
872
+ }
873
+ const contentType = response.headers()["content-type"] || "application/octet-stream";
874
+ const title = await page.title();
875
+ const finalUrl = page.url();
876
+ const status = response.status();
877
+ // Get raw content based on content type
878
+ let content;
879
+ const isTextBased = contentType.startsWith("text/") ||
880
+ contentType.includes("json") ||
881
+ contentType.includes("xml") ||
882
+ contentType.includes("javascript") ||
883
+ contentType.includes("html") ||
884
+ contentType.includes("css");
885
+ if (isTextBased) {
886
+ content = await response.text();
887
+ }
888
+ else {
889
+ const bodyBuffer = await response.body();
890
+ content = Buffer.from(bodyBuffer);
891
+ }
892
+ // Extract title only if content is HTML
893
+ let extractedTitle = title || null;
894
+ if (typeof content === "string" && contentType.includes("html") && !extractedTitle) {
895
+ const titleMatch = content.match(/<title[^>]*>([^<]+)<\/title>/i);
896
+ extractedTitle = titleMatch ? titleMatch[1].trim() : null;
897
+ }
898
+ return {
899
+ content,
900
+ contentType,
901
+ title: extractedTitle,
902
+ url: finalUrl,
903
+ isFromCache: false,
904
+ statusCode: status,
905
+ error: undefined,
906
+ };
907
+ }
908
+ finally {
909
+ if (page) {
910
+ await pool.releasePage(page);
911
+ }
912
+ }
913
+ }
681
914
  }
682
915
  //# sourceMappingURL=PlaywrightEngine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightEngine.js","sourceRoot":"","sources":["../src/PlaywrightEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlaywrightEngine.js","sourceRoot":"","sources":["../src/PlaywrightEngine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { IEngine } from "./IEngine.js";
2
2
  import { FetchEngine } from "./FetchEngine.js";
3
- import type { HTMLFetchResult, BrowserMetrics } from "./types.js";
4
- export type { IEngine, HTMLFetchResult, BrowserMetrics };
3
+ import type { HTMLFetchResult, ContentFetchResult, ContentFetchOptions, BrowserMetrics } from "./types.js";
4
+ export type { IEngine, HTMLFetchResult, ContentFetchResult, ContentFetchOptions, BrowserMetrics };
5
5
  export { FetchEngine };
6
6
  export * from "./HybridEngine.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAElE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3G,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,mBAAmB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -18,6 +18,25 @@ export interface HTMLFetchResult {
18
18
  /** Any error encountered during the fetch process. */
19
19
  error: Error | undefined;
20
20
  }
21
+ /**
22
+ * Defines the structure for the result of fetching raw content (mimics fetch API).
23
+ */
24
+ export interface ContentFetchResult {
25
+ /** The fetched raw content as Buffer for binary data or string for text data. */
26
+ content: Buffer | string;
27
+ /** The MIME type of the content as returned by the server. */
28
+ contentType: string;
29
+ /** The extracted title of the page, if available and if content is HTML. */
30
+ title: string | null;
31
+ /** The final URL after any redirects. */
32
+ url: string;
33
+ /** Indicates if the result came from the cache. */
34
+ isFromCache: boolean;
35
+ /** The HTTP status code of the final response. */
36
+ statusCode: number | undefined;
37
+ /** Any error encountered during the fetch process. */
38
+ error: Error | undefined;
39
+ }
21
40
  /**
22
41
  * Metrics related to browser pool performance and status.
23
42
  */
@@ -191,6 +210,16 @@ export interface FetchOptions {
191
210
  /** Optional headers to include in the request. */
192
211
  headers?: Record<string, string>;
193
212
  }
213
+ /**
214
+ * Options that can be passed per-request to engine.fetchContent().
215
+ * Mimics standard fetch behavior with minimal processing.
216
+ */
217
+ export interface ContentFetchOptions {
218
+ /** Optional headers to include in the request. */
219
+ headers?: Record<string, string>;
220
+ /** Overrides the engine's defaultFastMode for this specific request. (Playwright/Hybrid only) */
221
+ fastMode?: boolean;
222
+ }
194
223
  /**
195
224
  * Configuration options specifically for the FetchEngine.
196
225
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purepageio/fetch-engines",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "A collection of configurable engines for fetching HTML content using fetch or Playwright.",
6
6
  "main": "dist/index.js",