@purepageio/fetch-engines 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -11,11 +11,10 @@ Fetching web content can be complex. You need to handle static HTML, dynamic Jav
11
11
 
12
12
  - **Unified API:** Get content from simple or complex sites using the same `fetchHTML(url, options?)` method.
13
13
  - **Flexible Strategies:** Choose the right tool for the job:
14
- - `FetchEngine`: Lightweight and fast for static HTML, using the standard `fetch` API.
15
- - `PlaywrightEngine`: Powerful browser automation for JavaScript-heavy sites, handling rendering and interactions.
16
- - `HybridEngine`: The best of both worlds – tries `FetchEngine` first for speed, automatically falls back to `PlaywrightEngine` for reliability on complex pages.
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
+ - `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.
17
16
  - **Robust & Resilient:** Built-in caching, configurable retries, and standardized error handling make your fetching logic more dependable.
18
- - **Simplified Automation:** `PlaywrightEngine` manages browser instances and contexts automatically through efficient pooling and includes integrated stealth measures to bypass common anti-bot systems.
17
+ - **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.
19
18
  - **Content Transformation:** Optionally convert fetched HTML directly to clean Markdown content.
20
19
  - **TypeScript Ready:** Fully typed for a better development experience.
21
20
 
@@ -38,13 +37,14 @@ This package provides a high-level abstraction, letting you focus on using the w
38
37
 
39
38
  ## Features
40
39
 
41
- - **Multiple Fetching Strategies:** Choose between `FetchEngine` (lightweight `fetch`), `PlaywrightEngine` (robust JS rendering via Playwright), or `HybridEngine` (smart fallback).
42
- - **Unified API:** Simple `fetchHTML(url, options?)` interface across all engines.
40
+ - **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.
42
+ - **Custom Headers:** Easily provide custom HTTP headers for requests in both `FetchEngine` and `HybridEngine`.
43
43
  - **Configurable Retries:** Automatic retries on failure with customizable attempts and delays.
44
44
  - **Built-in Caching:** In-memory caching with configurable TTL to reduce redundant fetches.
45
- - **Playwright Stealth:** Automatic integration of `playwright-extra` and stealth plugins to bypass common bot detection.
46
- - **Managed Browser Pooling:** Efficient resource management for `PlaywrightEngine` with configurable browser/context limits and lifecycles.
47
- - **Smart Fallbacks:** `HybridEngine` uses `FetchEngine` first, falling back to `PlaywrightEngine` only when needed. `PlaywrightEngine` can optionally use a fast HTTP fetch before launching a full browser.
45
+ - **Playwright Stealth:** When `HybridEngine` utilizes its browser capabilities, it automatically integrates `playwright-extra` and stealth plugins to bypass common bot detection.
46
+ - **Managed Browser Pooling:** Efficient resource management for `HybridEngine`'s browser mode with configurable browser/context limits and lifecycles.
47
+ - **Smart Fallbacks:** `HybridEngine` uses `FetchEngine` first, falling back to its internal browser engine only when needed. The internal browser engine can also optionally use a fast HTTP fetch before launching a full browser.
48
48
  - **Content Conversion:** Optionally convert fetched HTML directly to Markdown.
49
49
  - **Standardized Errors:** Custom `FetchError` classes provide context on failures.
50
50
  - **TypeScript Ready:** Fully typed codebase for enhanced developer experience.
@@ -59,7 +59,7 @@ npm install @purepageio/fetch-engines
59
59
  yarn add @purepageio/fetch-engines
60
60
  ```
61
61
 
62
- If you plan to use the `PlaywrightEngine` or `HybridEngine`, you also need to install Playwright's browser binaries:
62
+ If you plan to use the `HybridEngine` (which internally uses Playwright for advanced fetching), you also need to install Playwright's browser binaries:
63
63
 
64
64
  ```bash
65
65
  pnpm exec playwright install
@@ -69,9 +69,9 @@ npx playwright install
69
69
 
70
70
  ## Engines
71
71
 
72
- - **`FetchEngine`**: Uses the standard `fetch` API. Suitable for simple HTML pages or APIs returning HTML. Lightweight and fast.
73
- - **`PlaywrightEngine`**: Uses Playwright to control a managed pool of headless browsers (Chromium by default via `playwright-extra`). Handles JavaScript rendering, complex interactions, and provides automatic stealth/anti-bot detection measures. More resource-intensive but necessary for dynamic websites.
74
- - **`HybridEngine`**: A smart combination. It first attempts to fetch content using the lightweight `FetchEngine`. If that fails for _any_ reason (e.g., network error, non-HTML content, HTTP error like 403), it automatically falls back to using the `PlaywrightEngine`. This provides the speed of `FetchEngine` for simple sites while retaining the power of `PlaywrightEngine` for complex ones.
72
+ - **`FetchEngine`**: Uses the standard `fetch` API. Suitable for simple HTML pages or APIs returning HTML. Lightweight and fast. This is your go-to for speed and efficiency when JavaScript rendering is not required.
73
+ - **`HybridEngine`**: A smart combination. It first attempts to fetch content using the lightweight `FetchEngine`. If that fails for _any_ reason (e.g., network error, non-HTML content, HTTP error like 403), or if `spaMode` is enabled and an SPA shell is detected, it automatically falls back to using an internal, powerful browser engine (based on Playwright). This provides the speed of `FetchEngine` for simple sites while retaining the power of a full browser for complex, dynamic websites. This is recommended for most general-purpose fetching tasks.
74
+ - **`PlaywrightEngine` (Internal Component)**: While not recommended for direct use by most users, `PlaywrightEngine` is the component `HybridEngine` uses internally for its browser-based fetching. It manages Playwright browser instances, contexts, and stealth features. Users needing direct, low-level control over Playwright might consider it, but `HybridEngine` offers a more robust and flexible approach for most scenarios.
75
75
 
76
76
  ## Basic Usage
77
77
 
@@ -102,71 +102,54 @@ async function main() {
102
102
  main();
103
103
  ```
104
104
 
105
- ### PlaywrightEngine
106
-
107
- ```typescript
108
- import { PlaywrightEngine } from "@purepageio/fetch-engines";
109
-
110
- // Engine configured to fetch HTML by default and pass custom launch arguments
111
- const engine = new PlaywrightEngine({
112
- markdown: false,
113
- playwrightLaunchOptions: { args: ["--disable-gpu"] },
114
- });
115
-
116
- async function main() {
117
- try {
118
- const url = "https://quotes.toscrape.com/";
119
-
120
- // Example: Fetching as Markdown using per-request override
121
- console.log(`Fetching ${url} as Markdown...`);
122
- const mdResult = await engine.fetchHTML(url, { markdown: true });
123
- console.log(`Fetched ${mdResult.url} (ContentType: ${mdResult.contentType}) - Title: ${mdResult.title}`);
124
- console.log(`Content (Markdown):\n${mdResult.content.substring(0, 300)}...`);
125
-
126
- // You could also fetch as HTML by default:
127
- // const htmlResult = await engine.fetchHTML(url);
128
- // console.log(`\nFetched ${htmlResult.url} (ContentType: ${htmlResult.contentType}) - Title: ${htmlResult.title}`);
129
- } catch (error) {
130
- console.error("Playwright fetch failed:", error);
131
- } finally {
132
- await engine.cleanup();
133
- }
134
- }
135
- main();
136
- ```
137
-
138
105
  ### HybridEngine
139
106
 
140
107
  ```typescript
141
108
  import { HybridEngine } from "@purepageio/fetch-engines";
142
109
 
143
- // Engine configured to fetch HTML by default for both internal engines
144
- const engine = new HybridEngine({ markdown: false });
110
+ // Engine configured to fetch HTML by default for its internal engines
111
+ // and provide some custom headers for all requests made by HybridEngine.
112
+ const engine = new HybridEngine({
113
+ markdown: false,
114
+ headers: { "X-Global-Custom-Header": "HybridGlobalValue" },
115
+ // Other PlaywrightEngine specific configs can be set here for the fallback mechanism
116
+ // e.g., playwrightLaunchOptions: { args: ["--disable-gpu"] }
117
+ });
145
118
 
146
119
  async function main() {
147
120
  try {
148
- const url1 = "https://example.com"; // Simple site
149
- const url2 = "https://quotes.toscrape.com/"; // Complex site
150
-
151
- // --- Scenario 1: FetchEngine Succeeds ---
152
- console.log(`\nFetching simple site (${url1}) requesting Markdown...`);
153
- // FetchEngine uses its constructor config (markdown: false), ignoring the per-request option.
154
- const result1 = await engine.fetchHTML(url1, { markdown: true });
121
+ const urlSimple = "https://example.com"; // Simple site, likely handled by FetchEngine
122
+ const urlComplex = "https://quotes.toscrape.com/"; // JS-heavy site, likely requiring Playwright fallback
123
+
124
+ // --- Scenario 1: FetchEngine part of HybridEngine handles it ---
125
+ console.log(`\nFetching simple site (${urlSimple}) with per-request headers...`);
126
+ const result1 = await engine.fetchHTML(urlSimple, {
127
+ headers: { "X-Request-Specific": "SimpleRequestValue" },
128
+ });
129
+ // FetchEngine (via HybridEngine) will use:
130
+ // 1. Its base default headers (User-Agent etc.)
131
+ // 2. Overridden/augmented by HybridEngine's constructor headers ("X-Global-Custom-Header")
132
+ // 3. Overridden/augmented by per-request headers ("X-Request-Specific")
155
133
  console.log(`Fetched ${result1.url} (ContentType: ${result1.contentType}) - Title: ${result1.title}`);
156
- console.log(`Content is ${result1.contentType} because FetchEngine succeeded and used its own config.`);
157
- console.log(`${result1.content.substring(0, 300)}...`);
158
-
159
- // --- Scenario 2: FetchEngine Fails, Playwright Fallback Occurs ---
160
- console.log(`\nFetching complex site (${url2}) requesting Markdown...`);
161
- // Assume FetchEngine fails for url2. PlaywrightEngine will be used and *will* receive the markdown: true override.
162
- const result2 = await engine.fetchHTML(url2, { markdown: true });
134
+ console.log(`Content (HTML): ${result1.content.substring(0, 100)}...`);
135
+
136
+ // --- Scenario 2: Playwright part of HybridEngine handles it ---
137
+ console.log(`\nFetching complex site (${urlComplex}) requesting Markdown and with per-request headers...`);
138
+ const result2 = await engine.fetchHTML(urlComplex, {
139
+ markdown: true,
140
+ headers: { "X-Request-Specific": "ComplexRequestValue", "X-Another": "ComplexAnother" },
141
+ });
142
+ // PlaywrightEngine (via HybridEngine) will use:
143
+ // 1. Its base default headers (User-Agent etc. if doing HTTP fallback, or for page.setExtraHTTPHeaders)
144
+ // 2. Overridden/augmented by HybridEngine's constructor headers ("X-Global-Custom-Header")
145
+ // 3. Overridden/augmented by per-request headers ("X-Request-Specific", "X-Another")
146
+ // The markdown: true option will be respected by the Playwright part.
163
147
  console.log(`Fetched ${result2.url} (ContentType: ${result2.contentType}) - Title: ${result2.title}`);
164
- console.log(`Content is ${result2.contentType} because Playwright fallback used the per-request option.`);
165
- console.log(`${result2.content.substring(0, 300)}...`);
148
+ console.log(`Content (Markdown):\n${result2.content.substring(0, 300)}...`);
166
149
  } catch (error) {
167
150
  console.error("Hybrid fetch failed:", error);
168
151
  } finally {
169
- await engine.cleanup();
152
+ await engine.cleanup(); // Important for HybridEngine
170
153
  }
171
154
  }
172
155
  main();
@@ -180,71 +163,83 @@ Engines accept an optional configuration object in their constructor to customis
180
163
 
181
164
  The `FetchEngine` accepts a `FetchEngineOptions` object with the following properties:
182
165
 
183
- | Option | Type | Default | Description |
184
- | ---------- | --------- | ------- | ------------------------------------------------------------------------------------------------------ |
185
- | `markdown` | `boolean` | `false` | If `true`, converts fetched HTML to Markdown. `contentType` in the result will be set to `'markdown'`. |
166
+ | Option | Type | Default | Description |
167
+ | ---------- | ------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
168
+ | `markdown` | `boolean` | `false` | If `true`, converts fetched HTML to Markdown. `contentType` in the result will be set to `'markdown'`. |
169
+ | `headers` | `Record<string, string>` | `{}` | Custom HTTP headers to be sent with the request. These are merged with and can override the engine's default headers. Headers from `fetchHTML` options take higher precedence. |
186
170
 
187
171
  ```typescript
188
- // Example: Always convert to Markdown
189
- const mdFetchEngine = new FetchEngine({ markdown: true });
172
+ // Example: FetchEngine with custom headers and Markdown conversion
173
+ const customFetchEngine = new FetchEngine({
174
+ markdown: true,
175
+ headers: {
176
+ "User-Agent": "MyCustomFetchAgent/1.0",
177
+ "X-Api-Key": "your-api-key",
178
+ },
179
+ });
190
180
  ```
191
181
 
192
- ### PlaywrightEngine
193
-
194
- The `PlaywrightEngine` accepts a `PlaywrightEngineConfig` object with the following properties:
195
-
196
- **General Options:**
197
-
198
- | Option | Type | Default | Description |
199
- | ------------------------- | --------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
200
- | `markdown` | `boolean` | `false` | If `true`, converts content (from Playwright or its internal HTTP fallback) to Markdown. `contentType` will be `'markdown'`. Can be overridden per-request. |
201
- | `useHttpFallback` | `boolean` | `true` | If `true`, attempts a fast HTTP fetch before using Playwright. Ineffective if `spaMode` is `true`. |
202
- | `useHeadedModeFallback` | `boolean` | `false` | If `true`, automatically retries specific failed Playwright attempts in headed (visible) mode. |
203
- | `defaultFastMode` | `boolean` | `true` | If `true`, initially blocks non-essential resources and skips human simulation. Can be overridden per-request. Effectively `false` if `spaMode` is `true`. |
204
- | `simulateHumanBehavior` | `boolean` | `true` | If `true` (and not `fastMode` or `spaMode`), attempts basic human-like interactions. |
205
- | `concurrentPages` | `number` | `3` | Max number of pages to process concurrently within the engine queue. |
206
- | `maxRetries` | `number` | `3` | Max retry attempts for a failed fetch (excluding initial try). |
207
- | `retryDelay` | `number` | `5000` | Delay (ms) between retries. |
208
- | `cacheTTL` | `number` | `900000` | Cache Time-To-Live (ms). `0` disables caching. (15 mins default) |
209
- | `spaMode` | `boolean` | `false` | If `true`, enables Single Page Application mode. This typically bypasses `useHttpFallback`, effectively sets `fastMode` to `false`, uses more patient load conditions (e.g., network idle), and may apply `spaRenderDelayMs`. Recommended for JavaScript-heavy sites. |
210
- | `spaRenderDelayMs` | `number` | `0` | Explicit delay (ms) after page load events in `spaMode` to allow for client-side rendering. Only applies if `spaMode` is `true`. |
211
- | `playwrightLaunchOptions` | `LaunchOptions` | `undefined` | Optional Playwright launch options (from `playwright` package, e.g., `{ args: ['--some-flag'] }`) passed when a browser instance is created. Merged with internal defaults. |
212
-
213
- **Browser Pool Options (Passed to internal `PlaywrightBrowserPool`):**
214
-
215
- | Option | Type | Default | Description |
216
- | -------------------------- | -------------------------- | ----------- | ------------------------------------------------------------------------- |
217
- | `maxBrowsers` | `number` | `2` | Max concurrent browser instances managed by the pool. |
218
- | `maxPagesPerContext` | `number` | `6` | Max pages per browser context before recycling. |
219
- | `maxBrowserAge` | `number` | `1200000` | Max age (ms) a browser instance lives before recycling. (20 mins default) |
220
- | `healthCheckInterval` | `number` | `60000` | How often (ms) the pool checks browser health. (1 min default) |
221
- | `useHeadedMode` | `boolean` | `false` | Forces the _entire pool_ to launch browsers in headed (visible) mode. |
222
- | `poolBlockedDomains` | `string[]` | `[]` | List of domain glob patterns to block requests to. |
223
- | `poolBlockedResourceTypes` | `string[]` | `[]` | List of Playwright resource types (e.g., 'image', 'font') to block. |
224
- | `proxy` | `{ server: string, ... }?` | `undefined` | Proxy configuration object (see `PlaywrightEngineConfig` type). |
182
+ #### Header Precedence for `FetchEngine`:
225
183
 
226
- ### HybridEngine
184
+ 1. Headers passed in `fetchHTML(url, { headers: { ... } })` (highest precedence).
185
+ 2. Headers passed in the `FetchEngine` constructor `new FetchEngine({ headers: { ... } })`.
186
+ 3. Default headers of the `FetchEngine` (e.g., its default `User-Agent`) (lowest precedence).
227
187
 
228
- The `HybridEngine` constructor accepts `PlaywrightEngineConfig` options. These settings configure the underlying engines and the hybrid strategy:
188
+ ### `PlaywrightEngineConfig` (Used by `HybridEngine`)
229
189
 
230
- - **Constructor `markdown` option:**
231
- - Sets the default Markdown conversion for the internal `FetchEngine`. This `FetchEngine` instance **does not** react to per-request `markdown` overrides.
232
- - Sets the default for the internal `PlaywrightEngine`.
233
- - **Constructor `spaMode` option:**
234
- - Sets the default SPA mode for `HybridEngine`. If `true`, `HybridEngine` checks `FetchEngine`'s output for SPA shell characteristics. If an SPA shell is detected, it forces a fallback to `PlaywrightEngine` (which will also run in SPA mode).
235
- - Sets the default for the internal `PlaywrightEngine`.
236
- - **Other `PlaywrightEngineConfig` options** (e.g., `maxRetries`, `cacheTTL`, `playwrightLaunchOptions`, pool settings) are primarily passed to and used by the internal `PlaywrightEngine`.
190
+ The `HybridEngine` constructor accepts a `PlaywrightEngineConfig` object. These settings configure the underlying `FetchEngine` and `PlaywrightEngine` (for fallback scenarios) and the hybrid strategy itself. When using `HybridEngine`, you are essentially configuring how it will behave and how its internal Playwright capabilities will operate if needed.
191
+
192
+ **Key Options for `HybridEngine` (from `PlaywrightEngineConfig`):**
193
+
194
+ | Option | Type | Default | Description |
195
+ | ------------------------- | ------------------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
196
+ | `headers` | `Record<string, string>` | `{}` | Custom HTTP headers. For `HybridEngine`, these serve as default headers for both its internal `FetchEngine` (constructor) and `PlaywrightEngine` (constructor). They can be overridden by headers in `HybridEngine.fetchHTML()` options. |
197
+ | `markdown` | `boolean` | `false` | Default Markdown conversion. For `HybridEngine`: sets default for internal `FetchEngine` (constructor) and internal `PlaywrightEngine`. Can be overridden per-request for the `PlaywrightEngine` part. |
198
+ | `useHttpFallback` | `boolean` | `true` | (For Playwright part) If `true`, attempts a fast HTTP fetch before using Playwright. Ineffective if `spaMode` is `true`. |
199
+ | `useHeadedModeFallback` | `boolean` | `false` | (For Playwright part) If `true`, automatically retries specific failed Playwright attempts in headed (visible) mode. |
200
+ | `defaultFastMode` | `boolean` | `true` | If `true`, initially blocks non-essential resources and skips human simulation. Can be overridden per-request. Effectively `false` if `spaMode` is `true`. |
201
+ | `simulateHumanBehavior` | `boolean` | `true` | If `true` (and not `fastMode` or `spaMode`), attempts basic human-like interactions. |
202
+ | `concurrentPages` | `number` | `3` | Max number of pages to process concurrently within the engine queue. |
203
+ | `maxRetries` | `number` | `3` | Max retry attempts for a failed fetch (excluding initial try). |
204
+ | `retryDelay` | `number` | `5000` | Delay (ms) between retries. |
205
+ | `cacheTTL` | `number` | `900000` | Cache Time-To-Live (ms). `0` disables caching. (15 mins default) |
206
+ | `spaMode` | `boolean` | `false` | If `true`, enables Single Page Application mode. This typically bypasses `useHttpFallback`, effectively sets `fastMode` to `false`, uses more patient load conditions (e.g., network idle), and may apply `spaRenderDelayMs`. Recommended for JavaScript-heavy sites. |
207
+ | `spaRenderDelayMs` | `number` | `0` | Explicit delay (ms) after page load events in `spaMode` to allow for client-side rendering. Only applies if `spaMode` is `true`. |
208
+ | `playwrightLaunchOptions` | `LaunchOptions` | `undefined` | (For Playwright part) Optional Playwright launch options (from `playwright` package, e.g., `{ args: ['--some-flag'] }`) passed when a browser instance is created. Merged with internal defaults. |
209
+
210
+ **Browser Pool Options (For `HybridEngine`'s internal `PlaywrightEngine`):**
211
+
212
+ | Option | Type | Default | Description |
213
+ | -------------------------- | -------------------------- | ----------- | ------------------------------------------------------------------------------------------- |
214
+ | `maxBrowsers` | `number` | `2` | Max concurrent browser instances managed by the pool. |
215
+ | `maxPagesPerContext` | `number` | `6` | Max pages per browser context before recycling. |
216
+ | `maxBrowserAge` | `number` | `1200000` | Max age (ms) a browser instance lives before recycling. (20 mins default) |
217
+ | `healthCheckInterval` | `number` | `60000` | How often (ms) the pool checks browser health. (1 min default) |
218
+ | `useHeadedMode` | `boolean` | `false` | Forces the _entire pool_ (for Playwright part) to launch browsers in headed (visible) mode. |
219
+ | `poolBlockedDomains` | `string[]` | `[]` | List of domain glob patterns to block requests to (for Playwright part). |
220
+ | `poolBlockedResourceTypes` | `string[]` | `[]` | List of Playwright resource types (e.g., 'image', 'font') to block (for Playwright part). |
221
+ | `proxy` | `{ server: string, ... }?` | `undefined` | Proxy configuration object (see `PlaywrightEngineConfig` type) (for Playwright part). |
222
+
223
+ ### `HybridEngine` - Configuration Summary & Header Precedence
224
+
225
+ When you configure `HybridEngine` using `PlaywrightEngineConfig`:
226
+
227
+ - **`headers`**: Constructor headers are passed to the internal `FetchEngine`'s constructor and the internal `PlaywrightEngine`'s constructor.
228
+ - **`markdown`**: Sets the default for both internal engines.
229
+ - **`spaMode`**: Sets the default for `HybridEngine`'s SPA shell detection and for the internal `PlaywrightEngine`.
230
+ - Other options primarily configure the internal `PlaywrightEngine` or general retry/caching logic.
237
231
 
238
232
  **Per-request `options` in `HybridEngine.fetchHTML(url, options)`:**
239
233
 
240
- - **`options.markdown` (`boolean`):**
241
- - If `FetchEngine` succeeds and its content is used (i.e., not an SPA shell when `spaMode` is active), this per-request `markdown` option is **ignored**. The content's format is determined by the `FetchEngine`'s constructor `markdown` setting.
242
- - If `HybridEngine` falls back to `PlaywrightEngine` (due to `FetchEngine` failure or SPA shell detection), this per-request `markdown` option **overrides** the `PlaywrightEngine`'s default and determines if its output is Markdown.
243
- - **`options.spaMode` (`boolean`):**
244
- - Overrides the `HybridEngine`'s default SPA mode behavior for this specific request (affecting SPA shell detection and potential fallback to `PlaywrightEngine`).
245
- - If `PlaywrightEngine` is used, this option also overrides its default SPA mode.
246
- - **`options.fastMode` (`boolean`):**
247
- - If `PlaywrightEngine` is used, this option overrides its `defaultFastMode` setting. It has no effect on `FetchEngine`.
234
+ - **`headers?: Record<string, string>`**:
235
+ - These headers override any headers set in the `HybridEngine` constructor.
236
+ - 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).
238
+ - **`markdown?: boolean`**:
239
+ - If `FetchEngine` is used: This per-request option is **ignored**. `FetchEngine` uses its own constructor `markdown` setting.
240
+ - If `PlaywrightEngine` (fallback) is used: This overrides `PlaywrightEngine`'s default and determines its output format.
241
+ - **`spaMode?: boolean`**: Overrides `HybridEngine`'s default SPA mode and is passed to `PlaywrightEngine` if used.
242
+ - **`fastMode?: boolean`**: Passed to `PlaywrightEngine` if used; no effect on `FetchEngine`.
248
243
 
249
244
  ```typescript
250
245
  // Example: HybridEngine with SPA mode enabled by default
@@ -281,24 +276,26 @@ All `fetchHTML()` methods return a Promise that resolves to an `HTMLFetchResult`
281
276
 
282
277
  - `url` (`string`): URL to fetch.
283
278
  - `options?` (`FetchOptions`): Optional per-request overrides.
284
- - `markdown?: boolean`: (Playwright/Hybrid only) Request Markdown conversion. For Hybrid, only applies on fallback to Playwright.
285
- - `fastMode?: boolean`: (Playwright/Hybrid only) Override fast mode.
286
- - `spaMode?: boolean`: (Playwright/Hybrid only) Override SPA mode behavior for this request.
279
+ - `headers?: Record<string, string>`: Custom headers for this specific request.
280
+ - `markdown?: boolean`: (For `HybridEngine`'s Playwright part) Request Markdown conversion.
281
+ - `fastMode?: boolean`: (For `HybridEngine`'s Playwright part) Override fast mode.
282
+ - `spaMode?: boolean`: (For `HybridEngine`) Override SPA mode behavior for this request.
287
283
  - **Returns:** `Promise<HTMLFetchResult>`
288
284
 
289
285
  Fetches content, returning HTML or Markdown based on configuration/options in `result.content` with `result.contentType` indicating the format.
290
286
 
291
- ### `engine.cleanup()` (PlaywrightEngine & HybridEngine)
287
+ ### `engine.cleanup()` (`HybridEngine` and direct `FetchEngine` if no cleanup needed)
292
288
 
293
289
  - **Returns:** `Promise<void>`
294
290
 
295
- Gracefully shuts down all browser instances managed by the `PlaywrightEngine`'s browser pool (used by both `PlaywrightEngine` and `HybridEngine`). **It is crucial to call `await engine.cleanup()` when you are finished using these engines** to release system resources.
291
+ For `HybridEngine`, this gracefully shuts down all browser instances managed by its internal `PlaywrightEngine`. **It is crucial to call `await engine.cleanup()` when you are finished using `HybridEngine`** to release system resources.
292
+ `FetchEngine` has a `cleanup` method for API consistency, but it's a no-op as `FetchEngine` doesn't manage persistent resources.
296
293
 
297
- ## Stealth / Anti-Detection (`PlaywrightEngine`)
294
+ ## Stealth / Anti-Detection (via `HybridEngine`)
298
295
 
299
- The `PlaywrightEngine` automatically integrates `playwright-extra` and its powerful stealth plugin ([`puppeteer-extra-plugin-stealth`](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth)). This plugin applies various techniques to make the headless browser controlled by Playwright appear more like a regular human-operated browser, helping to bypass many common bot detection systems.
296
+ When `HybridEngine` uses its internal browser capabilities (via `PlaywrightEngine`), it automatically integrates `playwright-extra` and its powerful stealth plugin ([`puppeteer-extra-plugin-stealth`](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth)). This plugin applies various techniques to make the headless browser controlled by Playwright appear more like a regular human-operated browser, helping to bypass many common bot detection systems.
300
297
 
301
- There are **no manual configuration options** for stealth; it is enabled by default when using `PlaywrightEngine`. The previous options (`useStealthMode`, `randomizeFingerprint`, `evasionLevel`) have been removed.
298
+ There are **no manual configuration options** for stealth; it is enabled by default when `HybridEngine` uses its browser functionality.
302
299
 
303
300
  While effective, be aware that no stealth technique is foolproof, and sophisticated websites may still detect automated browsing.
304
301
 
@@ -316,14 +313,14 @@ Common `FetchError` codes and scenarios:
316
313
 
317
314
  - **`ERR_HTTP_ERROR`**: Thrown by `FetchEngine` for HTTP status codes >= 400. `error.statusCode` will be set.
318
315
  - **`ERR_NON_HTML_CONTENT`**: Thrown by `FetchEngine` if the content type is not HTML and `markdown` conversion is not requested.
319
- - **`ERR_PLAYWRIGHT_OPERATION`**: A general error from `PlaywrightEngine` indicating a failure during a Playwright operation (e.g., page acquisition, navigation, interaction). The `originalError` property will often contain the specific Playwright error.
320
- - **`ERR_NAVIGATION`**: Often seen as part of `ERR_PLAYWRIGHT_OPERATION`'s message or in `originalError` when a Playwright navigation fails (e.g., timeout, SSL error).
321
- - **`ERR_MARKDOWN_CONVERSION_NON_HTML`**: Thrown by `PlaywrightEngine` (or `HybridEngine` if falling back to Playwright) if `markdown: true` is requested for a non-HTML content type (e.g., XML, JSON).
322
- - **`ERR_UNSUPPORTED_RAW_CONTENT_TYPE`**: Thrown by `PlaywrightEngine` if `markdown: false` is requested for a content type it doesn't support for direct fetching (e.g., images, applications). Currently, it primarily supports `text/*` and `application/json`, `application/xml` like types when `markdown: false`.
316
+ - **`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
+ - **`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).
323
320
  - **`ERR_CACHE_ERROR`**: Indicates an issue with cache read/write operations.
324
- - **`ERR_PROXY_CONFIG_ERROR`**: Problem with proxy configuration.
325
- - **`ERR_BROWSER_POOL_EXHAUSTED`**: If the browser pool cannot provide a page (e.g. max browsers reached and all are busy beyond timeout).
326
- - **Other Scenarios (often wrapped by `ERR_PLAYWRIGHT_OPERATION` or a generic `FetchError`):**
321
+ - **`ERR_PROXY_CONFIG_ERROR`**: Problem with proxy configuration (for `HybridEngine`'s browser mode).
322
+ - **`ERR_BROWSER_POOL_EXHAUSTED`**: If `HybridEngine`'s browser pool cannot provide a page.
323
+ - **Other Scenarios (often wrapped by `ERR_PLAYWRIGHT_OPERATION` or a generic `FetchError` when `HybridEngine` uses its browser mode):**
327
324
  - Network issues (DNS resolution, connection refused).
328
325
  - Proxy connection failures.
329
326
  - Page crashes or context/browser disconnections within Playwright.
@@ -334,14 +331,14 @@ The `HTMLFetchResult` object may also contain an `error` property if the final f
334
331
  **Example:**
335
332
 
336
333
  ```typescript
337
- import { PlaywrightEngine, FetchError } from "@purepageio/fetch-engines";
334
+ import { HybridEngine, FetchError } from "@purepageio/fetch-engines";
338
335
 
339
- // Example using PlaywrightEngine to illustrate more complex error handling
340
- const engine = new PlaywrightEngine({ useHttpFallback: false, maxRetries: 1 });
336
+ // Example using HybridEngine to illustrate error handling
337
+ const engine = new HybridEngine({ useHttpFallback: false, maxRetries: 1 }); // useHttpFallback for Playwright part
341
338
 
342
339
  async function fetchWithHandling(url: string) {
343
340
  try {
344
- const result = await engine.fetchHTML(url);
341
+ const result = await engine.fetchHTML(url, { headers: { "X-My-Header": "TestValue" } });
345
342
  if (result.error) {
346
343
  console.warn(`Fetch for ${url} included non-critical error after retries: ${result.error.message}`);
347
344
  }
@@ -360,7 +357,9 @@ async function fetchWithHandling(url: string) {
360
357
  }
361
358
  // Example of specific handling:
362
359
  if (error.code === "ERR_PLAYWRIGHT_OPERATION") {
363
- console.error(" Hint: This was a Playwright operation failure. Check Playwright logs or originalError.");
360
+ console.error(
361
+ " Hint: This was a Playwright operation failure (HybridEngine's browser mode). Check Playwright logs or originalError."
362
+ );
364
363
  }
365
364
  } else if (error instanceof Error) {
366
365
  console.error(` Generic Error: ${error.message}`);
@@ -371,10 +370,9 @@ async function fetchWithHandling(url: string) {
371
370
  }
372
371
 
373
372
  async function runExamples() {
374
- await fetchWithHandling("https://nonexistentdomain.example.com"); // Likely DNS or navigation error
375
- await fetchWithHandling("https://example.com/non_html_resource.json"); // Test with actual JSON URL if available
376
- // or a site known to cause Playwright issues for a demo.
377
- await engine.cleanup(); // Important for PlaywrightEngine
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)
375
+ await engine.cleanup(); // Important for HybridEngine
378
376
  }
379
377
 
380
378
  runExamples();
@@ -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,CAErC;IAEF;;;OAGG;gBACS,OAAO,GAAE,kBAAuB;IAI5C;;;;;;;OAOG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiEpF;;;;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,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"}
@@ -21,6 +21,7 @@ export class FetchEngine {
21
21
  options;
22
22
  static DEFAULT_OPTIONS = {
23
23
  markdown: false,
24
+ headers: {},
24
25
  };
25
26
  /**
26
27
  * Creates an instance of FetchEngine.
@@ -41,14 +42,24 @@ export class FetchEngine {
41
42
  const effectiveOptions = { ...this.options, ...options }; // Combine constructor and call options
42
43
  let response;
43
44
  try {
45
+ const baseHeaders = {
46
+ "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",
47
+ Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
48
+ "Accept-Language": "en-US,en;q=0.9",
49
+ };
50
+ // this.options.headers are headers passed to the constructor
51
+ const constructorHeaders = this.options.headers || {};
52
+ // options.headers are headers passed directly to the fetchHTML method
53
+ // options is the second argument to fetchHTML: async fetchHTML(url: string, options?: FetchEngineOptions)
54
+ const callSpecificHeaders = options?.headers || {};
55
+ const finalHeaders = {
56
+ ...baseHeaders,
57
+ ...constructorHeaders,
58
+ ...callSpecificHeaders, // Ensures callSpecificHeaders override constructorHeaders, which override baseHeaders
59
+ };
44
60
  response = await fetch(url, {
45
61
  redirect: "follow",
46
- headers: {
47
- // Standard browser-like headers
48
- "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",
49
- Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
50
- "Accept-Language": "en-US,en;q=0.9",
51
- },
62
+ headers: finalHeaders,
52
63
  });
53
64
  if (!response.ok) {
54
65
  throw new FetchEngineHttpError(`HTTP error! status: ${response.status}`, response.status);
@@ -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 +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;IA+DlF;;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,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"}
@@ -12,7 +12,7 @@ export class HybridEngine {
12
12
  // Pass relevant config parts to each engine
13
13
  // FetchEngine only takes markdown option from the shared config
14
14
  // spaMode from config is primarily for PlaywrightEngine, but HybridEngine uses it for decision making.
15
- this.fetchEngine = new FetchEngine({ markdown: config.markdown });
15
+ this.fetchEngine = new FetchEngine({ markdown: config.markdown, headers: config.headers });
16
16
  this.playwrightEngine = new PlaywrightEngine(config);
17
17
  this.config = config; // Store for merging later
18
18
  this.playwrightOnlyPatterns = config.playwrightOnlyPatterns || [];
@@ -45,11 +45,18 @@ export class HybridEngine {
45
45
  ? this.config.markdown
46
46
  : false;
47
47
  // Prepare options for PlaywrightEngine, to be used in fallback scenarios or direct calls
48
+ // Retrieve headers from constructor config and per-request options
49
+ const constructorHeaders = this.config.headers || {};
50
+ const requestSpecificHeaders = options.headers || {}; // 'options' is the FetchOptions argument to HybridEngine.fetchHTML
51
+ // Merge them, with request-specific headers taking precedence
52
+ const mergedHeadersForPlaywright = { ...constructorHeaders, ...requestSpecificHeaders };
53
+ // Construct playwrightOptions, now with explicitly merged headers
48
54
  const playwrightOptions = {
49
- ...this.config, // Start with base config given to HybridEngine (e.g. spaRenderDelayMs)
50
- ...options, // Apply all per-request overrides first
51
- markdown: effectiveMarkdown, // Then ensure HybridEngine's resolved markdown is set
52
- spaMode: effectiveSpaMode, // Then ensure HybridEngine's resolved spaMode is set
55
+ ...this.config, // Spread config for other options (like spaRenderDelayMs, etc.)
56
+ ...options, // Spread options for other options (like fastMode, etc.)
57
+ headers: mergedHeadersForPlaywright, // Assign the correctly merged headers
58
+ markdown: effectiveMarkdown,
59
+ spaMode: effectiveSpaMode,
53
60
  };
54
61
  // Check playwrightOnlyPatterns first
55
62
  for (const pattern of this.playwrightOnlyPatterns) {
@@ -63,7 +70,12 @@ export class HybridEngine {
63
70
  }
64
71
  }
65
72
  try {
66
- const fetchResult = await this.fetchEngine.fetchHTML(url);
73
+ // Prepare options for FetchEngine call
74
+ const fetchEngineCallSpecificOptions = {
75
+ markdown: effectiveMarkdown, // Pass the resolved markdown setting
76
+ headers: options.headers, // Pass only the request-specific headers. FetchEngine will merge these with its own constructor headers.
77
+ };
78
+ const fetchResult = await this.fetchEngine.fetchHTML(url, fetchEngineCallSpecificOptions);
67
79
  // If FetchEngine succeeded AND spaMode is active, check if it's just a shell
68
80
  if (effectiveSpaMode && fetchResult && fetchResult.content) {
69
81
  if (this._isSpaShell(fetchResult.content)) {
@@ -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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"}
@@ -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,CAsBpC;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;IAc3B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;;;;;;OAOG;YACW,oBAAoB;IAiClC;;;;;;;;OAQG;YACW,6BAA6B;IAmC3C;;;;;;;OAOG;YACW,eAAe;IAgH7B;;;OAGG;YACW,mBAAmB;YAqKnB,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,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"}
@@ -26,6 +26,7 @@ export class PlaywrightEngine {
26
26
  headedFallbackSites = new Set(); // Stores domains marked for headed mode
27
27
  // Default configuration - Ensure all required fields are present
28
28
  static DEFAULT_CONFIG = {
29
+ headers: {}, // Added default for headers
29
30
  concurrentPages: 3,
30
31
  maxRetries: 3,
31
32
  retryDelay: 5000,
@@ -46,7 +47,7 @@ export class PlaywrightEngine {
46
47
  spaMode: false,
47
48
  spaRenderDelayMs: 0,
48
49
  playwrightOnlyPatterns: [],
49
- playwrightLaunchOptions: undefined, // Added default for playwrightLaunchOptions
50
+ playwrightLaunchOptions: undefined,
50
51
  };
51
52
  /**
52
53
  * Creates an instance of PlaywrightEngine.
@@ -107,10 +108,10 @@ export class PlaywrightEngine {
107
108
  * Fallback method using simple HTTP requests via Axios.
108
109
  * Ensures return type matches HTMLFetchResult.
109
110
  */
110
- async fetchHTMLWithHttpFallback(url) {
111
+ async fetchHTMLWithHttpFallback(url, headers = {}) {
111
112
  try {
112
113
  const response = await axios.get(url, {
113
- headers: COMMON_HEADERS,
114
+ headers: { ...COMMON_HEADERS, ...headers }, // Merge provided headers with common headers
114
115
  maxRedirects: MAX_REDIRECTS,
115
116
  timeout: DEFAULT_HTTP_TIMEOUT,
116
117
  responseType: "text",
@@ -254,18 +255,24 @@ export class PlaywrightEngine {
254
255
  * @returns A Promise resolving to an HTMLFetchResult object.
255
256
  * @throws {FetchError} If the fetch fails after all retries or encounters critical errors.
256
257
  */
257
- async fetchHTML(url, options = {}) {
258
+ async fetchHTML(url, options = {} // options includes headers?
259
+ ) {
260
+ const constructorHeaders = this.config.headers || {};
261
+ const requestSpecificHeaders = options.headers || {};
262
+ const effectiveHeaders = { ...constructorHeaders, ...requestSpecificHeaders };
258
263
  const fetchConfig = {
259
- ...this.config,
264
+ ...this.config, // Includes constructor-level headers if this.config.headers is set
260
265
  markdown: options.markdown === undefined ? this.config.markdown : options.markdown,
261
266
  fastMode: options.fastMode === undefined ? this.config.defaultFastMode : options.fastMode,
262
267
  spaMode: options.spaMode === undefined ? this.config.spaMode : options.spaMode,
268
+ headers: effectiveHeaders, // Ensure effectiveHeaders are part of the config for _fetchRecursive
263
269
  // Ensure all fields expected by _fetchRecursive's currentConfig are present
264
270
  // Most come from this.config, which is ResolvedPlaywrightEngineConfig
265
271
  // Check if playwrightOnlyPatterns is needed in _fetchRecursive context (likely not)
266
272
  };
267
- // Try removing 'as any' to see the specific type error
268
- return this._fetchRecursive(url, fetchConfig, 0);
273
+ // The type of fetchConfig will need to accommodate 'headers'.
274
+ // ResolvedPlaywrightEngineConfig already has 'headers', so this should be fine if fetchConfig is typed as such.
275
+ return this._fetchRecursive(url, fetchConfig, 0); // Using 'as any' for now, will refine if needed
269
276
  }
270
277
  /**
271
278
  * Helper to check cache and potentially return a cached result.
@@ -325,7 +332,7 @@ export class PlaywrightEngine {
325
332
  return null;
326
333
  }
327
334
  try {
328
- const httpResult = await this.fetchHTMLWithHttpFallback(url);
335
+ const httpResult = await this.fetchHTMLWithHttpFallback(url, currentConfig.headers); // Pass headers
329
336
  // If successful, cache it (addToCache handles TTL check)
330
337
  this.addToCache(url, httpResult);
331
338
  return httpResult;
@@ -410,7 +417,8 @@ export class PlaywrightEngine {
410
417
  // browserPool is guaranteed to be non-null here by _ensureBrowserPoolInitialized
411
418
  // The non-null assertion operator (!) is safe to use here.
412
419
  const result = await this.queue.add(() => this.fetchWithPlaywright(url, this.browserPool, currentConfig.fastMode, // Pass the current fastMode setting
413
- currentConfig.markdown, isSpaMode, currentConfig.spaRenderDelayMs));
420
+ currentConfig.markdown, isSpaMode, currentConfig.spaRenderDelayMs, currentConfig.headers // Pass effective headers
421
+ ));
414
422
  if (!result) {
415
423
  // Should not happen if fetchWithPlaywright resolves, but good to check.
416
424
  throw new FetchError("Playwright fetch queued but no result returned.", "ERR_QUEUE_NO_RESULT");
@@ -461,7 +469,8 @@ export class PlaywrightEngine {
461
469
  */
462
470
  async fetchWithPlaywright(url, pool, fastMode, // This is the "requested" fastMode
463
471
  convertToMarkdown, isSpaMode, // Added isSpaMode parameter
464
- spaRenderDelayMs // Added spaRenderDelayMs parameter
472
+ spaRenderDelayMs, // Added spaRenderDelayMs parameter
473
+ headers // Added headers parameter
465
474
  ) {
466
475
  let page = null;
467
476
  try {
@@ -477,6 +486,10 @@ export class PlaywrightEngine {
477
486
  // If SPA mode is active, force fastMode to false to ensure all resources load
478
487
  const actualFastMode = isSpaMode ? false : fastMode;
479
488
  await this.applyBlockingRules(page, actualFastMode);
489
+ // Set extra HTTP headers before navigation
490
+ if (headers && Object.keys(headers).length > 0) {
491
+ await page.setExtraHTTPHeaders(headers);
492
+ }
480
493
  // If SPA mode, don't simulate human behavior before navigation, do it after content might be loaded
481
494
  // if (!isSpaMode && this.config.simulateHumanBehavior && !actualFastMode) {
482
495
  // await this.simulateHumanBehavior(page); // Potentially move this or make it conditional for SPA
@@ -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":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC,CAAC,oBAAoB;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC,CAAC,uBAAuB;AAC1F,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,eAAe,EACf,gCAAgC,EAChC,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,sCAAsC,EACtC,gCAAgC,EAChC,uCAAuC,GACxC,MAAM,gBAAgB,CAAC,CAAC,iBAAiB;AAE1C,SAAS,KAAK,CAAC,IAAY;IACzB,oBAAoB;IACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IACnB,WAAW,GAAiC,IAAI,CAAC;IACxC,KAAK,CAAS;IACd,KAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAiC;IAExD,+BAA+B;IACvB,uBAAuB,GAAY,KAAK,CAAC;IACzC,iBAAiB,GAAY,KAAK,CAAC,CAAC,2BAA2B;IAC/D,mBAAmB,GAAgB,IAAI,GAAG,EAAE,CAAC,CAAC,wCAAwC;IAE9F,iEAAiE;IACzD,MAAM,CAAU,cAAc,GAAmC;QACvE,OAAO,EAAE,EAAE,EAAE,4BAA4B;QACzC,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QACxB,eAAe,EAAE,IAAI;QACrB,qBAAqB,EAAE,KAAK;QAC5B,eAAe,EAAE,IAAI;QACrB,qBAAqB,EAAE,IAAI;QAC3B,WAAW,EAAE,CAAC;QACd,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;QAC7B,mBAAmB,EAAE,EAAE,GAAG,IAAI;QAC9B,kBAAkB,EAAE,EAAE;QACtB,wBAAwB,EAAE,EAAE;QAC5B,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,KAAK;QACpB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,CAAC;QACnB,sBAAsB,EAAE,EAAE;QAC1B,uBAAuB,EAAE,SAAS;KACnC,CAAC;IAEF;;;;;OAKG;IACH,YAAY,SAAiC,EAAE;QAC7C,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,gBAAgB,CAAC,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,gBAAyB,KAAK;QAChE,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,aAAa,EAAE,CAAC;YACjE,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACpC,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,aAAa,EAAE,CAAC;gBACjE,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,aAAa,EAAE,CAAC;gBACjE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBAClD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;gBACxC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;gBACpD,aAAa,EAAE,aAAa;gBAC5B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;gBAC9C,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;gBAC1D,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB;aACnD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,yBAAyB,CAAC,GAAW,EAAE,UAAkC,EAAE;QACvF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;gBACpC,OAAO,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,EAAE,6CAA6C;gBACzF,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE,oBAAoB;gBAC7B,YAAY,EAAE,MAAM;gBACpB,oCAAoC;gBACpC,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,uEAAuE;YACvE,2DAA2D;YAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACxD,IAAI,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,kEAAkE;YAClE,IAAI,CAAC,KAAK,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,CAAC;YAED,kCAAkC;YAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,yDAAyD;gBACzD,MAAM,IAAI,UAAU,CAAC,2CAA2C,EAAE,oBAAoB,CAAC,CAAC;YAC1F,CAAC;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC;YACnC,IAAI,YAAY,GAAG,YAAY,CAAC;YAChC,IAAI,gBAAgB,GAAwB,MAAM,CAAC;YAEnD,sEAAsE;YACtE,8EAA8E;YAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBAC1C,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC/C,gBAAgB,GAAG,UAAU,CAAC;gBAChC,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,mBAAmB,EAAE,eAAe,CAAC,CAAC;oBACzF,gDAAgD;gBAClD,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,gBAAgB;gBAC7B,KAAK,EAAE,KAAK,EAAE,wCAAwC;gBACtD,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG;gBACrE,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzD,MAAM,IAAI,UAAU,CAAC,yBAAyB,OAAO,EAAE,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM,KAAK,CAAC,CAAC,8CAA8C;QAC7D,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,sEAAsE;QACtE,+FAA+F;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,IAAiB;QACzC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,CAAC;YACH,0BAA0B;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC3D,qEAAqE;YACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAAC,IAAU;QAC5C,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO;QAE5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAEtB,yBAAyB;YACzB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3G,MAAM,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,sCAAsC,CAAC,CAAC;YACpG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CACnB,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAC9B,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAC3D,EAAE,KAAK,EAAE,EAAE,EAAE,CACd,CAAC;YACF,MAAM,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,uCAAuC,CAAC,CAAC;YAExG,gBAAgB;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7F,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,uCAAuC,CAAC,CAAC;YAExG,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBAAE,MAAM;gBAC3C,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;oBACrF,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;iBACzC,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC,6BAA6B,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,sCAAsC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChH,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,8FAA8F;YAC9F,OAAO,CAAC,KAAK,CACX,8CAA8C,IAAI,CAAC,GAAG,EAAE,KAAK,OAAO,EAAE,EACtE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,GAAW,EAAE,MAAuB;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC;YAAE,OAAO,CAAC,yCAAyC;QAEhF,MAAM,KAAK,GAAe;YACxB,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,iBAAiB;YAC3D,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CACb,GAAW,EACX,UAAoE,EAAE,CAAC,4BAA4B;;QAEnG,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrD,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,sBAAsB,EAAE,CAAC;QAE9E,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI,CAAC,MAAM,EAAE,mEAAmE;YACnF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YACzF,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;YAC9E,OAAO,EAAE,gBAAgB,EAAE,qEAAqE;YAChG,4EAA4E;YAC5E,sEAAsE;YACtE,oFAAoF;SACrF,CAAC;QACF,8DAA8D;QAC9D,gHAAgH;QAChH,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,WAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,gDAAgD;IAC3G,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB,CACvB,GAAW,EACX,aAWC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,YAAY,EAAE,CAAC;YACjB,uEAAuE;YACvE,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC;YAC7C,MAAM,UAAU,GACd,YAAY,CAAC,WAAW,KAAK,UAAU;gBACvC,CAAC,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ;oBACvC,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAE5F,IAAI,aAAa,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjC,sCAAsC;gBACtC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBAC1C,2DAA2D;oBAC3D,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACjE,OAAO;wBACL,GAAG,YAAY;wBACf,OAAO,EAAE,gBAAgB;wBACzB,WAAW,EAAE,UAAU;qBACxB,CAAC;gBACJ,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,iDAAiD,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;oBACjE,OAAO,IAAI,CAAC,CAAC,mBAAmB;gBAClC,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE,CAAC;gBACxC,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,oDAAoD,CAAC,CAAC;gBAC3F,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,IAAI,CAAC,CAAC,mBAAmB;YAClC,CAAC;YACD,4CAA4C;YAC5C,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,aAAa;IAC5B,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,oBAAoB,CAChC,GAAW,EACX,aAOC;QAED,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YACpG,yDAAyD;YACzD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACjC,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,SAAc,EAAE,CAAC;YACxB,IAAI,SAAS,YAAY,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC/E,gGAAgG;gBAChG,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,4DAA4D,CAAC,CAAC;gBACnG,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,oFAAoF;gBACpF,6CAA6C;gBAC7C,OAAO,CAAC,IAAI,CAAC,qBAAqB,GAAG,YAAY,SAAS,CAAC,OAAO,+BAA+B,CAAC,CAAC;gBACnG,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,6BAA6B,CACzC,aAAsB,EACtB,aAA+C;QAE/C,8EAA8E;QAC9E,mFAAmF;QACnF,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,KAAK,aAAa,EAAE,CAAC;YACjE,OAAO,CAAC,iDAAiD;QAC3D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,wFAAwF;YACxF,OAAO,CAAC,IAAI,CACV,2EAA4E,SAAmB,CAAC,OAAO,EAAE,CAC1G,CAAC;YACF,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,MAAM,IAAI,UAAU,CAClB,2CAA4C,eAAyB,CAAC,OAAO,EAAE,EAC/E,sBAAsB,EACtB,eAAwB,CACzB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,mEAAmE;YACnE,MAAM,IAAI,UAAU,CAAC,wDAAwD,EAAE,sBAAsB,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,eAAe,CAC3B,GAAW,EACX,aAWC,EACD,YAAoB;QAEpB,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;QAExC,kDAAkD;QAClD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAC3E,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,cAAc,CAAC;YACxB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC;YACH,MAAM,aAAa,GACjB,CAAC,aAAa,CAAC,qBAAqB,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7F,aAAa,CAAC,aAAa,CAAC;YAE9B,MAAM,IAAI,CAAC,6BAA6B,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;YAEvE,iFAAiF;YACjF,2DAA2D;YAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CACvC,IAAI,CAAC,mBAAmB,CACtB,GAAG,EACH,IAAI,CAAC,WAAY,EACjB,aAAa,CAAC,QAAQ,EAAE,oCAAoC;YAC5D,aAAa,CAAC,QAAQ,EACtB,SAAS,EACT,aAAa,CAAC,gBAAgB,EAC9B,aAAa,CAAC,OAAO,CAAC,yBAAyB;aAChD,CACF,CAAC;YAEF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,wEAAwE;gBACxE,MAAM,IAAI,UAAU,CAAC,iDAAiD,EAAE,qBAAqB,CAAC,CAAC;YACjG,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,qCAAqC;YACnE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,eAAe;YACf,iHAAiH;YACjH,IAAI,aAAa,CAAC,QAAQ,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,IAAI,CAAC,8BAA8B,GAAG,oCAAoC,CAAC,CAAC;gBACpF,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,kDAAkD;YAChI,CAAC;YAED,8BAA8B;YAC9B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,YAAY,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CACV,iBAAiB,YAAY,GAAG,CAAC,QAAQ,GAAG,2CAA2C,YAAY,EAAE,CACtG,CAAC;gBACF,MAAM,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACtC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,0GAA0G;YAC1G,uCAAuC;YACvC,yFAAyF;YACzF,IAAI,CAAC,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,qBAAqB,EAAE,CAAC;gBACxE,OAAO,CAAC,IAAI,CACV,6BAA6B,GAAG,cAAc,YAAY,IAAI,aAAa,CAAC,UAAU,4CAA4C,CACnI,CAAC;gBACF,oFAAoF;gBACpF,yFAAyF;gBACzF,MAAM,YAAY,GAAG;oBACnB,GAAG,aAAa;oBAChB,aAAa,EAAE,IAAI;oBACnB,YAAY,EAAE,CAAC,EAAE,yBAAyB;oBAC1C,UAAU,EAAE,CAAC,EAAE,qCAAqC;iBACrD,CAAC;gBACF,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,6DAA6D;YAC7D,MAAM,oBAAoB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YACxE,MAAM,UAAU,GACd,KAAK,YAAY,UAAU;gBACzB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,IAAI,UAAU,CAAC,iBAAiB,YAAY,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;YAEhG,MAAM,IAAI,UAAU,CAClB,oBAAoB,GAAG,UAAU,aAAa,CAAC,UAAU,4CAA4C,UAAU,CAAC,OAAO,EAAE,EACzH,UAAU,CAAC,IAAI,IAAI,yBAAyB,EAC5C,UAAU,CAAC,aAAa,IAAI,oBAAoB,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAC/B,GAAW,EACX,IAA2B,EAC3B,QAAiB,EAAE,mCAAmC;IACtD,iBAA0B,EAC1B,SAAkB,EAAE,4BAA4B;IAChD,gBAAwB,EAAE,mCAAmC;IAC7D,OAAgC,CAAC,0BAA0B;;QAE3D,IAAI,IAAI,GAAgB,IAAI,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,YAAiB,EAAE,CAAC;gBAC3B,IAAI,YAAY,YAAY,UAAU;oBAAE,MAAM,YAAY,CAAC;gBAC3D,MAAM,IAAI,UAAU,CAClB,uCAAuC,YAAY,CAAC,OAAO,EAAE,EAC7D,0BAA0B,EAAE,wCAAwC;gBACpE,YAAY,CACb,CAAC;YACJ,CAAC;YAED,8EAA8E;YAC9E,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAEpD,2CAA2C;YAC3C,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,oGAAoG;YACpG,4EAA4E;YAC5E,oGAAoG;YACpG,IAAI;YAEJ,IAAI,QAAQ,GAA8B,IAAI,CAAC;YAC/C,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;oBAC9B,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,EAAE,gCAAgC;oBAC3F,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,8BAA8B;iBACnE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,eAAoB,EAAE,CAAC;gBAC9B,MAAM,IAAI,UAAU,CAClB,iCAAiC,eAAe,CAAC,OAAO,EAAE,EAC1D,gBAAgB,EAChB,eAAe,CAChB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,UAAU,CAAC,kDAAkD,EAAE,iBAAiB,CAAC,CAAC;YAC9F,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;gBACnB,uFAAuF;gBACvF,2DAA2D;gBAC3D,6CAA6C;gBAC7C,MAAM,IAAI,UAAU,CAClB,+BAA+B,QAAQ,CAAC,MAAM,EAAE,EAAE,EAClD,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,MAAM,EAAE,CAClB,CAAC;YACJ,CAAC;YAED,MAAM,uBAAuB,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACxF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAEjC,2BAA2B;YAC3B,IAAI,SAAS,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC9C,CAAC;YAED,wDAAwD;YACxD,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACzD,iDAAiD;gBACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,YAAoB,CAAC;YACzB,IAAI,gBAAqC,CAAC;YAE1C,MAAM,sCAAsC,GAAG;gBAC7C,WAAW;gBACX,uBAAuB;gBACvB,iBAAiB;gBACjB,UAAU;gBACV,YAAY;gBACZ,kBAAkB;gBAClB,iBAAiB;gBACjB,wBAAwB;gBACxB,sBAAsB;gBACtB,qBAAqB;gBACrB,uCAAuC;aACxC,CAAC;YAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,uBAAuB;gBACvB,MAAM,gBAAgB,GAAG,sCAAsC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9E,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAC3C,CAAC;gBAEF,IAAI,gBAAgB,EAAE,CAAC;oBACrB,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrC,0EAA0E;oBAC1E,gEAAgE;oBAChE,gBAAgB,GAAG,MAAM,CAAC;gBAC5B,CAAC;qBAAM,IAAI,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvD,+EAA+E;oBAC/E,OAAO,CAAC,IAAI,CACV,iEAAiE,uBAAuB,2FAA2F,CACpL,CAAC;oBACF,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrC,gBAAgB,GAAG,MAAM,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,UAAU,CAClB,wDAAwD,uBAAuB,IAAI,SAAS,EAAE,EAC9F,kCAAkC,CACnC,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,sBAAsB;gBACtB,IACE,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC;oBAC/C,uBAAuB,CAAC,UAAU,CAAC,uBAAuB,CAAC,EAC3D,CAAC;oBACD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;wBACnD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;4BACjC,yCAAyC;4BACzC,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;oBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,4DAA4D;oBAC/F,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;wBAC1C,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACvC,gBAAgB,GAAG,UAAU,CAAC;oBAChC,CAAC;oBAAC,OAAO,eAAoB,EAAE,CAAC;wBAC9B,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,gBAAgB,EAAE,eAAe,CAAC,CAAC;wBACtF,gDAAgD;wBAChD,YAAY,GAAG,IAAI,CAAC;wBACpB,gBAAgB,GAAG,MAAM,CAAC;oBAC5B,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,IAAI,UAAU,CAClB,yCAAyC,uBAAuB,IAAI,SAAS,gBAAgB,EAC7F,kCAAkC,CACnC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,gBAAgB;gBAC7B,KAAK,EAAE,KAAK,IAAI,IAAI;gBACpB,GAAG,EAAE,QAAQ;gBACb,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,MAAM;gBAClB,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,IAAU,EAAE,QAAiB;QAC5D,MAAM,gBAAgB,GAAG,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YACvF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;QACzC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAEtD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAY,EAAE,EAAE;oBACxC,mBAAmB;oBACnB,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC;oBACpD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;oBAEzC,yBAAyB;oBACzB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC5C,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;oBACvB,CAAC;oBAED,0BAA0B;oBAC1B,IACE,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAChF,EACD,CAAC;wBACD,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;oBACvB,CAAC;oBAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,YAAqB,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC5F,oFAAoF;gBACpF,uFAAuF;gBACvF,OAAO,CAAC,KAAK,CACX,8CAA8C,OAAO,EAAE,EACvD,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,wBAAwB;YACnD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,sBAAsB;YAE1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,CAAC,kBAAkB;QACpD,CAAC;QAAC,OAAO,YAAqB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5F,6FAA6F;YAC7F,OAAO,CAAC,IAAI,CACV,0CAA0C,OAAO,EAAE,EACnD,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,iEAAiE;IACzD,mBAAmB,CAAC,GAAW;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,CAAC,cAAc;QAC9B,CAAC;IACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import type { IEngine } from "./IEngine.js";
2
2
  import { FetchEngine } from "./FetchEngine.js";
3
- import { PlaywrightEngine } from "./PlaywrightEngine.js";
4
3
  import type { HTMLFetchResult, BrowserMetrics } from "./types.js";
5
4
  export type { IEngine, HTMLFetchResult, BrowserMetrics };
6
- export { FetchEngine, PlaywrightEngine };
5
+ export { FetchEngine };
7
6
  export * from "./HybridEngine.js";
8
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;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,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,gBAAgB,EAAE,CAAC;AACzC,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,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"}
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { FetchEngine } from "./FetchEngine.js";
2
- import { PlaywrightEngine } from "./PlaywrightEngine.js";
3
- export { FetchEngine, PlaywrightEngine };
2
+ export { FetchEngine };
4
3
  export * from "./HybridEngine.js"; // Export the new engine
5
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AACzC,cAAc,mBAAmB,CAAC,CAAC,wBAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,mBAAmB,CAAC,CAAC,wBAAwB"}
package/dist/types.d.ts CHANGED
@@ -175,6 +175,8 @@ export interface PlaywrightEngineConfig {
175
175
  * @default undefined
176
176
  */
177
177
  playwrightLaunchOptions?: LaunchOptions;
178
+ /** Optional headers to include in the request. */
179
+ headers?: Record<string, string>;
178
180
  }
179
181
  /**
180
182
  * Options that can be passed per-request to engine.fetchHTML().
@@ -186,6 +188,8 @@ export interface FetchOptions {
186
188
  markdown?: boolean;
187
189
  /** Overrides the engine's spaMode setting for this specific request. (Playwright/Hybrid only) */
188
190
  spaMode?: boolean;
191
+ /** Optional headers to include in the request. */
192
+ headers?: Record<string, string>;
189
193
  }
190
194
  /**
191
195
  * Configuration options specifically for the FetchEngine.
@@ -193,5 +197,7 @@ export interface FetchOptions {
193
197
  export interface FetchEngineOptions {
194
198
  /** If true, convert the fetched HTML to Markdown. Default: false */
195
199
  markdown?: boolean;
200
+ /** Optional headers to include in the request. */
201
+ headers?: Record<string, string>;
196
202
  }
197
203
  //# sourceMappingURL=types.d.ts.map
@@ -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.3.0",
3
+ "version": "0.4.1",
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",