@isdk/web-fetcher 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.action.cn.md +469 -0
  2. package/README.action.md +452 -0
  3. package/README.cn.md +147 -0
  4. package/README.engine.cn.md +262 -0
  5. package/README.engine.md +262 -0
  6. package/README.md +147 -0
  7. package/dist/index.d.mts +1603 -0
  8. package/dist/index.d.ts +1603 -0
  9. package/dist/index.js +1 -0
  10. package/dist/index.mjs +1 -0
  11. package/docs/README.md +151 -0
  12. package/docs/_media/LICENSE-MIT +22 -0
  13. package/docs/_media/README.action.md +452 -0
  14. package/docs/_media/README.cn.md +147 -0
  15. package/docs/_media/README.engine.md +262 -0
  16. package/docs/classes/CheerioFetchEngine.md +1447 -0
  17. package/docs/classes/ClickAction.md +533 -0
  18. package/docs/classes/ExtractAction.md +533 -0
  19. package/docs/classes/FetchAction.md +444 -0
  20. package/docs/classes/FetchEngine.md +1230 -0
  21. package/docs/classes/FetchSession.md +111 -0
  22. package/docs/classes/FillAction.md +533 -0
  23. package/docs/classes/GetContentAction.md +533 -0
  24. package/docs/classes/GotoAction.md +537 -0
  25. package/docs/classes/PauseAction.md +533 -0
  26. package/docs/classes/PlaywrightFetchEngine.md +1437 -0
  27. package/docs/classes/SubmitAction.md +533 -0
  28. package/docs/classes/WaitForAction.md +533 -0
  29. package/docs/classes/WebFetcher.md +85 -0
  30. package/docs/enumerations/FetchActionResultStatus.md +40 -0
  31. package/docs/functions/fetchWeb.md +43 -0
  32. package/docs/globals.md +72 -0
  33. package/docs/interfaces/BaseFetchActionProperties.md +83 -0
  34. package/docs/interfaces/BaseFetchCollectorActionProperties.md +145 -0
  35. package/docs/interfaces/BaseFetcherProperties.md +206 -0
  36. package/docs/interfaces/Cookie.md +142 -0
  37. package/docs/interfaces/DispatchedEngineAction.md +60 -0
  38. package/docs/interfaces/ExtractActionProperties.md +113 -0
  39. package/docs/interfaces/FetchActionInContext.md +149 -0
  40. package/docs/interfaces/FetchActionProperties.md +125 -0
  41. package/docs/interfaces/FetchActionResult.md +55 -0
  42. package/docs/interfaces/FetchContext.md +424 -0
  43. package/docs/interfaces/FetchEngineContext.md +328 -0
  44. package/docs/interfaces/FetchMetadata.md +73 -0
  45. package/docs/interfaces/FetchResponse.md +105 -0
  46. package/docs/interfaces/FetchReturnTypeRegistry.md +57 -0
  47. package/docs/interfaces/FetchSite.md +320 -0
  48. package/docs/interfaces/FetcherOptions.md +300 -0
  49. package/docs/interfaces/GotoActionOptions.md +66 -0
  50. package/docs/interfaces/PendingEngineRequest.md +51 -0
  51. package/docs/interfaces/SubmitActionOptions.md +23 -0
  52. package/docs/interfaces/WaitForActionOptions.md +39 -0
  53. package/docs/type-aliases/BaseFetchActionOptions.md +11 -0
  54. package/docs/type-aliases/BaseFetchCollectorOptions.md +11 -0
  55. package/docs/type-aliases/BrowserEngine.md +11 -0
  56. package/docs/type-aliases/FetchActionCapabilities.md +11 -0
  57. package/docs/type-aliases/FetchActionCapabilityMode.md +11 -0
  58. package/docs/type-aliases/FetchActionOptions.md +11 -0
  59. package/docs/type-aliases/FetchEngineAction.md +18 -0
  60. package/docs/type-aliases/FetchEngineType.md +11 -0
  61. package/docs/type-aliases/FetchReturnType.md +11 -0
  62. package/docs/type-aliases/FetchReturnTypeFor.md +17 -0
  63. package/docs/type-aliases/OnFetchPauseCallback.md +23 -0
  64. package/docs/type-aliases/ResourceType.md +11 -0
  65. package/docs/variables/DefaultFetcherProperties.md +11 -0
  66. package/package.json +90 -0
@@ -0,0 +1,1437 @@
1
+ [**@isdk/web-fetcher**](../README.md)
2
+
3
+ ***
4
+
5
+ [@isdk/web-fetcher](../globals.md) / PlaywrightFetchEngine
6
+
7
+ # Class: PlaywrightFetchEngine
8
+
9
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:16](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L16)
10
+
11
+ ## Extends
12
+
13
+ - [`FetchEngine`](FetchEngine.md)\<`PlaywrightCrawlingContext`, `PlaywrightCrawler`, `PlaywrightCrawlerOptions`\>
14
+
15
+ ## Constructors
16
+
17
+ ### Constructor
18
+
19
+ > **new PlaywrightFetchEngine**(): `PlaywrightFetchEngine`
20
+
21
+ #### Returns
22
+
23
+ `PlaywrightFetchEngine`
24
+
25
+ #### Inherited from
26
+
27
+ [`FetchEngine`](FetchEngine.md).[`constructor`](FetchEngine.md#constructor)
28
+
29
+ ## Properties
30
+
31
+ ### actionEmitter
32
+
33
+ > `protected` **actionEmitter**: `EventEmitter`
34
+
35
+ Defined in: [packages/web-fetcher/src/engine/base.ts:235](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L235)
36
+
37
+ #### Inherited from
38
+
39
+ [`FetchEngine`](FetchEngine.md).[`actionEmitter`](FetchEngine.md#actionemitter)
40
+
41
+ ***
42
+
43
+ ### blockedTypes
44
+
45
+ > `protected` **blockedTypes**: `Set`\<`string`\>
46
+
47
+ Defined in: [packages/web-fetcher/src/engine/base.ts:239](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L239)
48
+
49
+ #### Inherited from
50
+
51
+ [`FetchEngine`](FetchEngine.md).[`blockedTypes`](FetchEngine.md#blockedtypes)
52
+
53
+ ***
54
+
55
+ ### crawler?
56
+
57
+ > `protected` `optional` **crawler**: `PlaywrightCrawler`
58
+
59
+ Defined in: [packages/web-fetcher/src/engine/base.ts:227](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L227)
60
+
61
+ #### Inherited from
62
+
63
+ [`FetchEngine`](FetchEngine.md).[`crawler`](FetchEngine.md#crawler)
64
+
65
+ ***
66
+
67
+ ### ctx?
68
+
69
+ > `protected` `optional` **ctx**: [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
70
+
71
+ Defined in: [packages/web-fetcher/src/engine/base.ts:225](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L225)
72
+
73
+ #### Inherited from
74
+
75
+ [`FetchEngine`](FetchEngine.md).[`ctx`](FetchEngine.md#ctx)
76
+
77
+ ***
78
+
79
+ ### hdrs
80
+
81
+ > `protected` **hdrs**: `Record`\<`string`, `string`\> = `{}`
82
+
83
+ Defined in: [packages/web-fetcher/src/engine/base.ts:231](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L231)
84
+
85
+ #### Inherited from
86
+
87
+ [`FetchEngine`](FetchEngine.md).[`hdrs`](FetchEngine.md#hdrs)
88
+
89
+ ***
90
+
91
+ ### isCrawlerReady?
92
+
93
+ > `protected` `optional` **isCrawlerReady**: `boolean`
94
+
95
+ Defined in: [packages/web-fetcher/src/engine/base.ts:228](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L228)
96
+
97
+ #### Inherited from
98
+
99
+ [`FetchEngine`](FetchEngine.md).[`isCrawlerReady`](FetchEngine.md#iscrawlerready)
100
+
101
+ ***
102
+
103
+ ### isPageActive
104
+
105
+ > `protected` **isPageActive**: `boolean` = `false`
106
+
107
+ Defined in: [packages/web-fetcher/src/engine/base.ts:236](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L236)
108
+
109
+ #### Inherited from
110
+
111
+ [`FetchEngine`](FetchEngine.md).[`isPageActive`](FetchEngine.md#ispageactive)
112
+
113
+ ***
114
+
115
+ ### jar
116
+
117
+ > `protected` **jar**: [`Cookie`](../interfaces/Cookie.md)[] = `[]`
118
+
119
+ Defined in: [packages/web-fetcher/src/engine/base.ts:232](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L232)
120
+
121
+ #### Inherited from
122
+
123
+ [`FetchEngine`](FetchEngine.md).[`jar`](FetchEngine.md#jar)
124
+
125
+ ***
126
+
127
+ ### lastResponse?
128
+
129
+ > `protected` `optional` **lastResponse**: [`FetchResponse`](../interfaces/FetchResponse.md)
130
+
131
+ Defined in: [packages/web-fetcher/src/engine/base.ts:238](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L238)
132
+
133
+ #### Inherited from
134
+
135
+ [`FetchEngine`](FetchEngine.md).[`lastResponse`](FetchEngine.md#lastresponse)
136
+
137
+ ***
138
+
139
+ ### navigationLock
140
+
141
+ > `protected` **navigationLock**: `PromiseLock`
142
+
143
+ Defined in: [packages/web-fetcher/src/engine/base.ts:237](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L237)
144
+
145
+ #### Inherited from
146
+
147
+ [`FetchEngine`](FetchEngine.md).[`navigationLock`](FetchEngine.md#navigationlock)
148
+
149
+ ***
150
+
151
+ ### opts?
152
+
153
+ > `protected` `optional` **opts**: [`BaseFetcherProperties`](../interfaces/BaseFetcherProperties.md)
154
+
155
+ Defined in: [packages/web-fetcher/src/engine/base.ts:226](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L226)
156
+
157
+ #### Inherited from
158
+
159
+ [`FetchEngine`](FetchEngine.md).[`opts`](FetchEngine.md#opts)
160
+
161
+ ***
162
+
163
+ ### pendingRequests
164
+
165
+ > `protected` **pendingRequests**: `Map`\<`string`, [`PendingEngineRequest`](../interfaces/PendingEngineRequest.md)\>
166
+
167
+ Defined in: [packages/web-fetcher/src/engine/base.ts:233](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L233)
168
+
169
+ #### Inherited from
170
+
171
+ [`FetchEngine`](FetchEngine.md).[`pendingRequests`](FetchEngine.md#pendingrequests)
172
+
173
+ ***
174
+
175
+ ### requestCounter
176
+
177
+ > `protected` **requestCounter**: `number` = `0`
178
+
179
+ Defined in: [packages/web-fetcher/src/engine/base.ts:234](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L234)
180
+
181
+ #### Inherited from
182
+
183
+ [`FetchEngine`](FetchEngine.md).[`requestCounter`](FetchEngine.md#requestcounter)
184
+
185
+ ***
186
+
187
+ ### requestQueue?
188
+
189
+ > `protected` `optional` **requestQueue**: `RequestQueue`
190
+
191
+ Defined in: [packages/web-fetcher/src/engine/base.ts:229](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L229)
192
+
193
+ #### Inherited from
194
+
195
+ [`FetchEngine`](FetchEngine.md).[`requestQueue`](FetchEngine.md#requestqueue)
196
+
197
+ ***
198
+
199
+ ### id
200
+
201
+ > `readonly` `static` **id**: `"playwright"` = `'playwright'`
202
+
203
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:21](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L21)
204
+
205
+ Unique identifier for the engine implementation.
206
+
207
+ #### Remarks
208
+
209
+ Must be defined by concrete implementations. Used for registration and lookup in engine registry.
210
+
211
+ #### Overrides
212
+
213
+ [`FetchEngine`](FetchEngine.md).[`id`](FetchEngine.md#id)
214
+
215
+ ***
216
+
217
+ ### mode
218
+
219
+ > `readonly` `static` **mode**: `"browser"` = `'browser'`
220
+
221
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:22](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L22)
222
+
223
+ Execution mode of the engine (`'http'` or `'browser'`).
224
+
225
+ #### Remarks
226
+
227
+ Must be defined by concrete implementations. Indicates whether engine operates at HTTP level or uses full browser.
228
+
229
+ #### Overrides
230
+
231
+ [`FetchEngine`](FetchEngine.md).[`mode`](FetchEngine.md#mode)
232
+
233
+ ## Accessors
234
+
235
+ ### context
236
+
237
+ #### Get Signature
238
+
239
+ > **get** **context**(): `undefined` \| [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
240
+
241
+ Defined in: [packages/web-fetcher/src/engine/base.ts:473](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L473)
242
+
243
+ Gets the fetch engine context associated with this instance.
244
+
245
+ ##### Returns
246
+
247
+ `undefined` \| [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
248
+
249
+ #### Inherited from
250
+
251
+ [`FetchEngine`](FetchEngine.md).[`context`](FetchEngine.md#context)
252
+
253
+ ***
254
+
255
+ ### id
256
+
257
+ #### Get Signature
258
+
259
+ > **get** **id**(): `string`
260
+
261
+ Defined in: [packages/web-fetcher/src/engine/base.ts:459](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L459)
262
+
263
+ Gets the unique identifier of this engine implementation.
264
+
265
+ ##### Returns
266
+
267
+ `string`
268
+
269
+ #### Inherited from
270
+
271
+ [`FetchEngine`](FetchEngine.md).[`id`](FetchEngine.md#id-1)
272
+
273
+ ***
274
+
275
+ ### mode
276
+
277
+ #### Get Signature
278
+
279
+ > **get** **mode**(): [`FetchEngineType`](../type-aliases/FetchEngineType.md)
280
+
281
+ Defined in: [packages/web-fetcher/src/engine/base.ts:466](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L466)
282
+
283
+ Gets the execution mode of this engine (`'http'` or `'browser'`).
284
+
285
+ ##### Returns
286
+
287
+ [`FetchEngineType`](../type-aliases/FetchEngineType.md)
288
+
289
+ #### Inherited from
290
+
291
+ [`FetchEngine`](FetchEngine.md).[`mode`](FetchEngine.md#mode-1)
292
+
293
+ ## Methods
294
+
295
+ ### \_cleanup()?
296
+
297
+ > `protected` `optional` **\_cleanup**(): `Promise`\<`void`\>
298
+
299
+ Defined in: [packages/web-fetcher/src/engine/base.ts:241](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L241)
300
+
301
+ #### Returns
302
+
303
+ `Promise`\<`void`\>
304
+
305
+ #### Inherited from
306
+
307
+ [`FetchEngine`](FetchEngine.md).[`_cleanup`](FetchEngine.md#_cleanup)
308
+
309
+ ***
310
+
311
+ ### \_commonCleanup()
312
+
313
+ > `protected` **\_commonCleanup**(): `Promise`\<`void`\>
314
+
315
+ Defined in: [packages/web-fetcher/src/engine/base.ts:656](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L656)
316
+
317
+ #### Returns
318
+
319
+ `Promise`\<`void`\>
320
+
321
+ #### Inherited from
322
+
323
+ [`FetchEngine`](FetchEngine.md).[`_commonCleanup`](FetchEngine.md#_commoncleanup)
324
+
325
+ ***
326
+
327
+ ### \_createCrawler()
328
+
329
+ > `protected` **\_createCrawler**(`options`): `PlaywrightCrawler`
330
+
331
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:202](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L202)
332
+
333
+ **`Internal`**
334
+
335
+ Creates the crawler instance for the specific engine implementation.
336
+
337
+ #### Parameters
338
+
339
+ ##### options
340
+
341
+ `PlaywrightCrawlerOptions`
342
+
343
+ The final crawler options.
344
+
345
+ #### Returns
346
+
347
+ `PlaywrightCrawler`
348
+
349
+ #### Overrides
350
+
351
+ [`FetchEngine`](FetchEngine.md).[`_createCrawler`](FetchEngine.md#_createcrawler)
352
+
353
+ ***
354
+
355
+ ### \_executePendingActions()
356
+
357
+ > `protected` **\_executePendingActions**(`context`): `Promise`\<`void`\>
358
+
359
+ Defined in: [packages/web-fetcher/src/engine/base.ts:572](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L572)
360
+
361
+ **`Internal`**
362
+
363
+ Executes all pending fetch engine actions within the current Crawlee request handler context.
364
+
365
+ **Critical Execution Constraint**: This method **MUST** be awaited within the synchronous execution path
366
+ of Crawlee's [requestHandler](https://crawlee.dev/js/api/basic-crawler) (before any `await` that yields control back to the event loop).
367
+
368
+ ### Why This Constraint Exists
369
+ - Crawlee's page context ([PlaywrightCrawler](https://crawlee.dev/js/api/playwright-crawler)'s `page` or [CheerioCrawler](https://crawlee.dev/js/api/cheerio-crawler)'s `$`)
370
+ is **only valid during the synchronous execution phase** of the request handler
371
+ - After any `await` (e.g., `await page.goto()`), the page context may be destroyed
372
+ due to Crawlee's internal resource management
373
+
374
+ ### How It Works
375
+ 1. Processes all actions queued via [dispatchAction](#dispatchaction) (click, fill, submit, etc.)
376
+ 2. Maintains the page context validity window via [isPageActive](#ispageactive) lifecycle flag
377
+ 3. Automatically cleans up event listeners upon completion
378
+
379
+ Usage see [\_sharedRequestHandler](#_sharedrequesthandler)
380
+
381
+ #### Parameters
382
+
383
+ ##### context
384
+
385
+ `PlaywrightCrawlingContext`
386
+
387
+ The active Crawlee crawling context containing the page/$ object
388
+
389
+ #### Returns
390
+
391
+ `Promise`\<`void`\>
392
+
393
+ #### See
394
+
395
+ [\_sharedRequestHandler](#_sharedrequesthandler)
396
+
397
+ #### Throws
398
+
399
+ If called outside valid page context window (`!this.isPageActive`)
400
+ Engine infrastructure method - not for direct consumer use
401
+
402
+ #### Inherited from
403
+
404
+ [`FetchEngine`](FetchEngine.md).[`_executePendingActions`](FetchEngine.md#_executependingactions)
405
+
406
+ ***
407
+
408
+ ### \_extract()
409
+
410
+ > `protected` **\_extract**(`schema`, `context`): `Promise`\<`any`\>
411
+
412
+ Defined in: [packages/web-fetcher/src/engine/base.ts:246](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L246)
413
+
414
+ #### Parameters
415
+
416
+ ##### schema
417
+
418
+ `ExtractSchema`
419
+
420
+ ##### context
421
+
422
+ `any`
423
+
424
+ #### Returns
425
+
426
+ `Promise`\<`any`\>
427
+
428
+ #### Inherited from
429
+
430
+ [`FetchEngine`](FetchEngine.md).[`_extract`](FetchEngine.md#_extract)
431
+
432
+ ***
433
+
434
+ ### \_extractValue()
435
+
436
+ > `protected` **\_extractValue**(`schema`, `context`): `Promise`\<`any`\>
437
+
438
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:57](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L57)
439
+
440
+ #### Parameters
441
+
442
+ ##### schema
443
+
444
+ `ExtractValueSchema`
445
+
446
+ ##### context
447
+
448
+ `Locator`
449
+
450
+ #### Returns
451
+
452
+ `Promise`\<`any`\>
453
+
454
+ #### Overrides
455
+
456
+ [`FetchEngine`](FetchEngine.md).[`_extractValue`](FetchEngine.md#_extractvalue)
457
+
458
+ ***
459
+
460
+ ### \_getSpecificCrawlerOptions()
461
+
462
+ > `protected` **\_getSpecificCrawlerOptions**(`ctx`): `Promise`\<`Partial`\<`PlaywrightCrawlerOptions`\>\>
463
+
464
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:206](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L206)
465
+
466
+ **`Internal`**
467
+
468
+ Gets the crawler-specific options from the subclass.
469
+
470
+ #### Parameters
471
+
472
+ ##### ctx
473
+
474
+ [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
475
+
476
+ The fetch engine context.
477
+
478
+ #### Returns
479
+
480
+ `Promise`\<`Partial`\<`PlaywrightCrawlerOptions`\>\>
481
+
482
+ #### Overrides
483
+
484
+ [`FetchEngine`](FetchEngine.md).[`_getSpecificCrawlerOptions`](FetchEngine.md#_getspecificcrawleroptions)
485
+
486
+ ***
487
+
488
+ ### \_normalizeSchema()
489
+
490
+ > `protected` **\_normalizeSchema**(`schema`): `ExtractSchema`
491
+
492
+ Defined in: [packages/web-fetcher/src/engine/base.ts:415](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L415)
493
+
494
+ #### Parameters
495
+
496
+ ##### schema
497
+
498
+ `ExtractSchema`
499
+
500
+ #### Returns
501
+
502
+ `ExtractSchema`
503
+
504
+ #### Inherited from
505
+
506
+ [`FetchEngine`](FetchEngine.md).[`_normalizeSchema`](FetchEngine.md#_normalizeschema)
507
+
508
+ ***
509
+
510
+ ### \_querySelectorAll()
511
+
512
+ > `protected` **\_querySelectorAll**(`context`, `selector`): `Promise`\<`any`[]\>
513
+
514
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:53](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L53)
515
+
516
+ #### Parameters
517
+
518
+ ##### context
519
+
520
+ `Locator`
521
+
522
+ ##### selector
523
+
524
+ `string`
525
+
526
+ #### Returns
527
+
528
+ `Promise`\<`any`[]\>
529
+
530
+ #### Overrides
531
+
532
+ [`FetchEngine`](FetchEngine.md).[`_querySelectorAll`](FetchEngine.md#_queryselectorall)
533
+
534
+ ***
535
+
536
+ ### \_sharedFailedRequestHandler()
537
+
538
+ > `protected` **\_sharedFailedRequestHandler**(`context`, `error?`): `Promise`\<`void`\>
539
+
540
+ Defined in: [packages/web-fetcher/src/engine/base.ts:623](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L623)
541
+
542
+ #### Parameters
543
+
544
+ ##### context
545
+
546
+ `PlaywrightCrawlingContext`
547
+
548
+ ##### error?
549
+
550
+ `Error`
551
+
552
+ #### Returns
553
+
554
+ `Promise`\<`void`\>
555
+
556
+ #### Inherited from
557
+
558
+ [`FetchEngine`](FetchEngine.md).[`_sharedFailedRequestHandler`](FetchEngine.md#_sharedfailedrequesthandler)
559
+
560
+ ***
561
+
562
+ ### \_sharedRequestHandler()
563
+
564
+ > `protected` **\_sharedRequestHandler**(`context`): `Promise`\<`void`\>
565
+
566
+ Defined in: [packages/web-fetcher/src/engine/base.ts:595](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L595)
567
+
568
+ #### Parameters
569
+
570
+ ##### context
571
+
572
+ `PlaywrightCrawlingContext`
573
+
574
+ #### Returns
575
+
576
+ `Promise`\<`void`\>
577
+
578
+ #### Inherited from
579
+
580
+ [`FetchEngine`](FetchEngine.md).[`_sharedRequestHandler`](FetchEngine.md#_sharedrequesthandler)
581
+
582
+ ***
583
+
584
+ ### blockResources()
585
+
586
+ > **blockResources**(`types`, `overwrite?`): `Promise`\<`number`\>
587
+
588
+ Defined in: [packages/web-fetcher/src/engine/base.ts:700](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L700)
589
+
590
+ Blocks specified resource types from loading.
591
+
592
+ #### Parameters
593
+
594
+ ##### types
595
+
596
+ `string`[]
597
+
598
+ Resource types to block
599
+
600
+ ##### overwrite?
601
+
602
+ `boolean`
603
+
604
+ Whether to replace existing blocked types
605
+
606
+ #### Returns
607
+
608
+ `Promise`\<`number`\>
609
+
610
+ Number of blocked resource types
611
+
612
+ #### Example
613
+
614
+ ```ts
615
+ await engine.blockResources(['image', 'stylesheet']);
616
+ await engine.blockResources(['script'], true); // Replace existing
617
+ ```
618
+
619
+ #### Inherited from
620
+
621
+ [`FetchEngine`](FetchEngine.md).[`blockResources`](FetchEngine.md#blockresources)
622
+
623
+ ***
624
+
625
+ ### buildResponse()
626
+
627
+ > `protected` **buildResponse**(`context`): `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
628
+
629
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:24](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L24)
630
+
631
+ **`Internal`**
632
+
633
+ Abstract method for building standard [FetchResponse] from Crawlee context.
634
+
635
+ #### Parameters
636
+
637
+ ##### context
638
+
639
+ `PlaywrightCrawlingContext`
640
+
641
+ Crawlee crawling context
642
+
643
+ #### Returns
644
+
645
+ `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
646
+
647
+ Promise resolving to [FetchResponse] object
648
+
649
+ #### Remarks
650
+
651
+ Converts implementation-specific context (Playwright `page` or Cheerio `$`) to standardized response.
652
+
653
+ #### Overrides
654
+
655
+ [`FetchEngine`](FetchEngine.md).[`buildResponse`](FetchEngine.md#buildresponse)
656
+
657
+ ***
658
+
659
+ ### cleanup()
660
+
661
+ > **cleanup**(): `Promise`\<`void`\>
662
+
663
+ Defined in: [packages/web-fetcher/src/engine/base.ts:536](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L536)
664
+
665
+ #### Returns
666
+
667
+ `Promise`\<`void`\>
668
+
669
+ #### Inherited from
670
+
671
+ [`FetchEngine`](FetchEngine.md).[`cleanup`](FetchEngine.md#cleanup)
672
+
673
+ ***
674
+
675
+ ### click()
676
+
677
+ > **click**(`selector`): `Promise`\<`void`\>
678
+
679
+ Defined in: [packages/web-fetcher/src/engine/base.ts:365](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L365)
680
+
681
+ Clicks on element matching selector.
682
+
683
+ #### Parameters
684
+
685
+ ##### selector
686
+
687
+ `string`
688
+
689
+ CSS selector of element to click
690
+
691
+ #### Returns
692
+
693
+ `Promise`\<`void`\>
694
+
695
+ Promise resolving when click is processed
696
+
697
+ #### Throws
698
+
699
+ When no active page context exists
700
+
701
+ #### Inherited from
702
+
703
+ [`FetchEngine`](FetchEngine.md).[`click`](FetchEngine.md#click)
704
+
705
+ ***
706
+
707
+ ### cookies()
708
+
709
+ #### Call Signature
710
+
711
+ > **cookies**(): `Promise`\<[`Cookie`](../interfaces/Cookie.md)[]\>
712
+
713
+ Defined in: [packages/web-fetcher/src/engine/base.ts:811](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L811)
714
+
715
+ Manages cookies for current session with multiple overloads.
716
+
717
+ Gets all cookies.
718
+
719
+ ##### Returns
720
+
721
+ `Promise`\<[`Cookie`](../interfaces/Cookie.md)[]\>
722
+
723
+ Array of cookies
724
+
725
+ Sets cookies for session.
726
+
727
+ ##### Example
728
+
729
+ ```ts
730
+ const cookies = await engine.cookies();
731
+ await engine.cookies([{ name: 'session', value: '123' }]);
732
+ ```
733
+
734
+ ##### Inherited from
735
+
736
+ [`FetchEngine`](FetchEngine.md).[`cookies`](FetchEngine.md#cookies)
737
+
738
+ #### Call Signature
739
+
740
+ > **cookies**(`cookies`): `Promise`\<`boolean`\>
741
+
742
+ Defined in: [packages/web-fetcher/src/engine/base.ts:812](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L812)
743
+
744
+ Manages cookies for current session with multiple overloads.
745
+
746
+ Gets all cookies.
747
+
748
+ ##### Parameters
749
+
750
+ ###### cookies
751
+
752
+ [`Cookie`](../interfaces/Cookie.md)[]
753
+
754
+ Cookies to set
755
+
756
+ ##### Returns
757
+
758
+ `Promise`\<`boolean`\>
759
+
760
+ Array of cookies
761
+
762
+ Sets cookies for session.
763
+
764
+ ##### Example
765
+
766
+ ```ts
767
+ const cookies = await engine.cookies();
768
+ await engine.cookies([{ name: 'session', value: '123' }]);
769
+ ```
770
+
771
+ ##### Inherited from
772
+
773
+ [`FetchEngine`](FetchEngine.md).[`cookies`](FetchEngine.md#cookies)
774
+
775
+ ***
776
+
777
+ ### dispatchAction()
778
+
779
+ > `protected` **dispatchAction**\<`T`\>(`action`): `Promise`\<`T`\>
780
+
781
+ Defined in: [packages/web-fetcher/src/engine/base.ts:639](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L639)
782
+
783
+ #### Type Parameters
784
+
785
+ ##### T
786
+
787
+ `T`
788
+
789
+ #### Parameters
790
+
791
+ ##### action
792
+
793
+ [`FetchEngineAction`](../type-aliases/FetchEngineAction.md)
794
+
795
+ #### Returns
796
+
797
+ `Promise`\<`T`\>
798
+
799
+ #### Inherited from
800
+
801
+ [`FetchEngine`](FetchEngine.md).[`dispatchAction`](FetchEngine.md#dispatchaction)
802
+
803
+ ***
804
+
805
+ ### dispose()
806
+
807
+ > **dispose**(): `Promise`\<`void`\>
808
+
809
+ Defined in: [packages/web-fetcher/src/engine/base.ts:829](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L829)
810
+
811
+ Disposes of engine, cleaning up all resources.
812
+
813
+ #### Returns
814
+
815
+ `Promise`\<`void`\>
816
+
817
+ Promise resolving when disposal completes
818
+
819
+ #### Inherited from
820
+
821
+ [`FetchEngine`](FetchEngine.md).[`dispose`](FetchEngine.md#dispose)
822
+
823
+ ***
824
+
825
+ ### executeAction()
826
+
827
+ > `protected` **executeAction**(`context`, `action`): `Promise`\<`any`\>
828
+
829
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:85](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L85)
830
+
831
+ **`Internal`**
832
+
833
+ Abstract method for executing action within current page context.
834
+
835
+ #### Parameters
836
+
837
+ ##### context
838
+
839
+ `PlaywrightCrawlingContext`
840
+
841
+ Crawlee crawling context
842
+
843
+ ##### action
844
+
845
+ [`FetchEngineAction`](../type-aliases/FetchEngineAction.md)
846
+
847
+ Action to execute
848
+
849
+ #### Returns
850
+
851
+ `Promise`\<`any`\>
852
+
853
+ Promise resolving to action result
854
+
855
+ #### Remarks
856
+
857
+ Handles specific user interactions using underlying technology (Playwright/Cheerio).
858
+
859
+ #### Overrides
860
+
861
+ [`FetchEngine`](FetchEngine.md).[`executeAction`](FetchEngine.md#executeaction)
862
+
863
+ ***
864
+
865
+ ### extract()
866
+
867
+ > **extract**\<`T`\>(`schema`): `Promise`\<`T`\>
868
+
869
+ Defined in: [packages/web-fetcher/src/engine/base.ts:410](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L410)
870
+
871
+ Extracts structured data from the current page content.
872
+
873
+ #### Type Parameters
874
+
875
+ ##### T
876
+
877
+ `T`
878
+
879
+ #### Parameters
880
+
881
+ ##### schema
882
+
883
+ `ExtractSchema`
884
+
885
+ An object defining the data to extract.
886
+
887
+ #### Returns
888
+
889
+ `Promise`\<`T`\>
890
+
891
+ A promise that resolves to an object with the extracted data.
892
+
893
+ #### Inherited from
894
+
895
+ [`FetchEngine`](FetchEngine.md).[`extract`](FetchEngine.md#extract)
896
+
897
+ ***
898
+
899
+ ### fill()
900
+
901
+ > **fill**(`selector`, `value`): `Promise`\<`void`\>
902
+
903
+ Defined in: [packages/web-fetcher/src/engine/base.ts:377](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L377)
904
+
905
+ Fills input element with specified value.
906
+
907
+ #### Parameters
908
+
909
+ ##### selector
910
+
911
+ `string`
912
+
913
+ CSS selector of input element
914
+
915
+ ##### value
916
+
917
+ `string`
918
+
919
+ Value to fill
920
+
921
+ #### Returns
922
+
923
+ `Promise`\<`void`\>
924
+
925
+ Promise resolving when fill operation completes
926
+
927
+ #### Throws
928
+
929
+ When no active page context exists
930
+
931
+ #### Inherited from
932
+
933
+ [`FetchEngine`](FetchEngine.md).[`fill`](FetchEngine.md#fill)
934
+
935
+ ***
936
+
937
+ ### getContent()
938
+
939
+ > **getContent**(): `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
940
+
941
+ Defined in: [packages/web-fetcher/src/engine/base.ts:714](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L714)
942
+
943
+ Gets content of current page.
944
+
945
+ #### Returns
946
+
947
+ `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
948
+
949
+ Promise resolving to fetch response
950
+
951
+ #### Throws
952
+
953
+ When no content has been fetched yet
954
+
955
+ #### Inherited from
956
+
957
+ [`FetchEngine`](FetchEngine.md).[`getContent`](FetchEngine.md#getcontent)
958
+
959
+ ***
960
+
961
+ ### goto()
962
+
963
+ > **goto**(`url`, `opts?`): `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
964
+
965
+ Defined in: [packages/web-fetcher/src/engine/playwright.ts:270](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/playwright.ts#L270)
966
+
967
+ Navigates to the specified URL.
968
+
969
+ #### Parameters
970
+
971
+ ##### url
972
+
973
+ `string`
974
+
975
+ Target URL
976
+
977
+ ##### opts?
978
+
979
+ [`GotoActionOptions`](../interfaces/GotoActionOptions.md)
980
+
981
+ #### Returns
982
+
983
+ `Promise`\<[`FetchResponse`](../interfaces/FetchResponse.md)\>
984
+
985
+ Promise resolving when navigation completes
986
+
987
+ #### Example
988
+
989
+ ```ts
990
+ await engine.goto('https://example.com');
991
+ ```
992
+
993
+ #### Overrides
994
+
995
+ [`FetchEngine`](FetchEngine.md).[`goto`](FetchEngine.md#goto)
996
+
997
+ ***
998
+
999
+ ### headers()
1000
+
1001
+ #### Call Signature
1002
+
1003
+ > **headers**(): `Promise`\<`Record`\<`string`, `string`\>\>
1004
+
1005
+ Defined in: [packages/web-fetcher/src/engine/base.ts:753](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L753)
1006
+
1007
+ Manages HTTP headers for requests with multiple overloads.
1008
+
1009
+ Gets all headers.
1010
+
1011
+ ##### Returns
1012
+
1013
+ `Promise`\<`Record`\<`string`, `string`\>\>
1014
+
1015
+ All headers as record
1016
+
1017
+ Gets specific header value.
1018
+
1019
+ ##### Example
1020
+
1021
+ ```ts
1022
+ const allHeaders = await engine.headers();
1023
+ const userAgent = await engine.headers('user-agent');
1024
+ await engine.headers({ 'x-custom': 'value' });
1025
+ await engine.headers('auth', 'token');
1026
+ ```
1027
+
1028
+ ##### Inherited from
1029
+
1030
+ [`FetchEngine`](FetchEngine.md).[`headers`](FetchEngine.md#headers)
1031
+
1032
+ #### Call Signature
1033
+
1034
+ > **headers**(`name`): `Promise`\<`string`\>
1035
+
1036
+ Defined in: [packages/web-fetcher/src/engine/base.ts:754](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L754)
1037
+
1038
+ Manages HTTP headers for requests with multiple overloads.
1039
+
1040
+ Gets all headers.
1041
+
1042
+ ##### Parameters
1043
+
1044
+ ###### name
1045
+
1046
+ `string`
1047
+
1048
+ Header name
1049
+
1050
+ ##### Returns
1051
+
1052
+ `Promise`\<`string`\>
1053
+
1054
+ All headers as record
1055
+
1056
+ Gets specific header value.
1057
+
1058
+ ##### Example
1059
+
1060
+ ```ts
1061
+ const allHeaders = await engine.headers();
1062
+ const userAgent = await engine.headers('user-agent');
1063
+ await engine.headers({ 'x-custom': 'value' });
1064
+ await engine.headers('auth', 'token');
1065
+ ```
1066
+
1067
+ ##### Inherited from
1068
+
1069
+ [`FetchEngine`](FetchEngine.md).[`headers`](FetchEngine.md#headers)
1070
+
1071
+ #### Call Signature
1072
+
1073
+ > **headers**(`headers`, `replaced?`): `Promise`\<`boolean`\>
1074
+
1075
+ Defined in: [packages/web-fetcher/src/engine/base.ts:755](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L755)
1076
+
1077
+ Manages HTTP headers for requests with multiple overloads.
1078
+
1079
+ Gets all headers.
1080
+
1081
+ ##### Parameters
1082
+
1083
+ ###### headers
1084
+
1085
+ `Record`\<`string`, `string`\>
1086
+
1087
+ Headers to set
1088
+
1089
+ ###### replaced?
1090
+
1091
+ `boolean`
1092
+
1093
+ Whether to replace all existing headers
1094
+
1095
+ ##### Returns
1096
+
1097
+ `Promise`\<`boolean`\>
1098
+
1099
+ All headers as record
1100
+
1101
+ Gets specific header value.
1102
+
1103
+ ##### Example
1104
+
1105
+ ```ts
1106
+ const allHeaders = await engine.headers();
1107
+ const userAgent = await engine.headers('user-agent');
1108
+ await engine.headers({ 'x-custom': 'value' });
1109
+ await engine.headers('auth', 'token');
1110
+ ```
1111
+
1112
+ ##### Inherited from
1113
+
1114
+ [`FetchEngine`](FetchEngine.md).[`headers`](FetchEngine.md#headers)
1115
+
1116
+ #### Call Signature
1117
+
1118
+ > **headers**(`name`, `value`): `Promise`\<`boolean`\>
1119
+
1120
+ Defined in: [packages/web-fetcher/src/engine/base.ts:756](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L756)
1121
+
1122
+ Manages HTTP headers for requests with multiple overloads.
1123
+
1124
+ Gets all headers.
1125
+
1126
+ ##### Parameters
1127
+
1128
+ ###### name
1129
+
1130
+ `string`
1131
+
1132
+ Header name
1133
+
1134
+ ###### value
1135
+
1136
+ Header value or `null` to remove
1137
+
1138
+ `null` | `string`
1139
+
1140
+ ##### Returns
1141
+
1142
+ `Promise`\<`boolean`\>
1143
+
1144
+ All headers as record
1145
+
1146
+ Gets specific header value.
1147
+
1148
+ ##### Example
1149
+
1150
+ ```ts
1151
+ const allHeaders = await engine.headers();
1152
+ const userAgent = await engine.headers('user-agent');
1153
+ await engine.headers({ 'x-custom': 'value' });
1154
+ await engine.headers('auth', 'token');
1155
+ ```
1156
+
1157
+ ##### Inherited from
1158
+
1159
+ [`FetchEngine`](FetchEngine.md).[`headers`](FetchEngine.md#headers)
1160
+
1161
+ ***
1162
+
1163
+ ### initialize()
1164
+
1165
+ > **initialize**(`context`, `options?`): `Promise`\<`void`\>
1166
+
1167
+ Defined in: [packages/web-fetcher/src/engine/base.ts:488](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L488)
1168
+
1169
+ Initializes the fetch engine with provided context and options.
1170
+
1171
+ #### Parameters
1172
+
1173
+ ##### context
1174
+
1175
+ [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
1176
+
1177
+ Fetch engine context
1178
+
1179
+ ##### options?
1180
+
1181
+ [`BaseFetcherProperties`](../interfaces/BaseFetcherProperties.md)
1182
+
1183
+ Configuration options
1184
+
1185
+ #### Returns
1186
+
1187
+ `Promise`\<`void`\>
1188
+
1189
+ Promise resolving when initialization completes
1190
+
1191
+ #### Remarks
1192
+
1193
+ Sets up internal state and calls implementation-specific [_initialize](file:///home/riceball/Documents/mywork/public/@isdk/ai-tools/packages/web-fetcher/src/engine/cheerio.ts#L169-L204) method.
1194
+ Automatically called when creating engine via `FetchEngine.create()`.
1195
+
1196
+ #### Inherited from
1197
+
1198
+ [`FetchEngine`](FetchEngine.md).[`initialize`](FetchEngine.md#initialize)
1199
+
1200
+ ***
1201
+
1202
+ ### pause()
1203
+
1204
+ > **pause**(`message?`): `Promise`\<`void`\>
1205
+
1206
+ Defined in: [packages/web-fetcher/src/engine/base.ts:400](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L400)
1207
+
1208
+ Pauses execution, allowing for manual intervention or inspection.
1209
+
1210
+ #### Parameters
1211
+
1212
+ ##### message?
1213
+
1214
+ `string`
1215
+
1216
+ Optional message to display during pause
1217
+
1218
+ #### Returns
1219
+
1220
+ `Promise`\<`void`\>
1221
+
1222
+ Promise resolving when execution is resumed
1223
+
1224
+ #### Throws
1225
+
1226
+ When no active page context exists
1227
+
1228
+ #### Inherited from
1229
+
1230
+ [`FetchEngine`](FetchEngine.md).[`pause`](FetchEngine.md#pause)
1231
+
1232
+ ***
1233
+
1234
+ ### submit()
1235
+
1236
+ > **submit**(`selector?`, `options?`): `Promise`\<`void`\>
1237
+
1238
+ Defined in: [packages/web-fetcher/src/engine/base.ts:389](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L389)
1239
+
1240
+ Submits a form.
1241
+
1242
+ #### Parameters
1243
+
1244
+ ##### selector?
1245
+
1246
+ `any`
1247
+
1248
+ Optional form/submit button selector
1249
+
1250
+ ##### options?
1251
+
1252
+ [`SubmitActionOptions`](../interfaces/SubmitActionOptions.md)
1253
+
1254
+ Submission options
1255
+
1256
+ #### Returns
1257
+
1258
+ `Promise`\<`void`\>
1259
+
1260
+ Promise resolving when form is submitted
1261
+
1262
+ #### Throws
1263
+
1264
+ When no active page context exists
1265
+
1266
+ #### Inherited from
1267
+
1268
+ [`FetchEngine`](FetchEngine.md).[`submit`](FetchEngine.md#submit)
1269
+
1270
+ ***
1271
+
1272
+ ### waitFor()
1273
+
1274
+ > **waitFor**(`params?`): `Promise`\<`void`\>
1275
+
1276
+ Defined in: [packages/web-fetcher/src/engine/base.ts:354](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L354)
1277
+
1278
+ Waits for specified condition before continuing.
1279
+
1280
+ #### Parameters
1281
+
1282
+ ##### params?
1283
+
1284
+ [`WaitForActionOptions`](../interfaces/WaitForActionOptions.md)
1285
+
1286
+ Wait conditions
1287
+
1288
+ #### Returns
1289
+
1290
+ `Promise`\<`void`\>
1291
+
1292
+ Promise resolving when wait condition is met
1293
+
1294
+ #### Example
1295
+
1296
+ ```ts
1297
+ await engine.waitFor({ ms: 1000 }); // Wait 1 second
1298
+ await engine.waitFor({ selector: '#content' }); // Wait for element
1299
+ ```
1300
+
1301
+ #### Inherited from
1302
+
1303
+ [`FetchEngine`](FetchEngine.md).[`waitFor`](FetchEngine.md#waitfor)
1304
+
1305
+ ***
1306
+
1307
+ ### create()
1308
+
1309
+ > `static` **create**(`ctx`, `options?`): `Promise`\<`undefined` \| `AnyFetchEngine`\>
1310
+
1311
+ Defined in: [packages/web-fetcher/src/engine/base.ts:198](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L198)
1312
+
1313
+ Factory method to create and initialize a fetch engine instance.
1314
+
1315
+ #### Parameters
1316
+
1317
+ ##### ctx
1318
+
1319
+ [`FetchEngineContext`](../interfaces/FetchEngineContext.md)
1320
+
1321
+ Fetch engine context
1322
+
1323
+ ##### options?
1324
+
1325
+ [`BaseFetcherProperties`](../interfaces/BaseFetcherProperties.md)
1326
+
1327
+ Configuration options
1328
+
1329
+ #### Returns
1330
+
1331
+ `Promise`\<`undefined` \| `AnyFetchEngine`\>
1332
+
1333
+ Initialized fetch engine instance
1334
+
1335
+ #### Throws
1336
+
1337
+ When no suitable engine implementation is found
1338
+
1339
+ #### Remarks
1340
+
1341
+ Primary entry point for engine creation. Selects appropriate implementation based on `engine` name of the option or context.
1342
+
1343
+ #### Inherited from
1344
+
1345
+ [`FetchEngine`](FetchEngine.md).[`create`](FetchEngine.md#create)
1346
+
1347
+ ***
1348
+
1349
+ ### get()
1350
+
1351
+ > `static` **get**(`id`): `undefined` \| `AnyFetchEngineCtor`
1352
+
1353
+ Defined in: [packages/web-fetcher/src/engine/base.ts:171](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L171)
1354
+
1355
+ Retrieves a fetch engine implementation by its unique ID.
1356
+
1357
+ #### Parameters
1358
+
1359
+ ##### id
1360
+
1361
+ `string`
1362
+
1363
+ The ID of the engine to retrieve
1364
+
1365
+ #### Returns
1366
+
1367
+ `undefined` \| `AnyFetchEngineCtor`
1368
+
1369
+ Engine class if found, otherwise `undefined`
1370
+
1371
+ #### Inherited from
1372
+
1373
+ [`FetchEngine`](FetchEngine.md).[`get`](FetchEngine.md#get)
1374
+
1375
+ ***
1376
+
1377
+ ### getByMode()
1378
+
1379
+ > `static` **getByMode**(`mode`): `undefined` \| `AnyFetchEngineCtor`
1380
+
1381
+ Defined in: [packages/web-fetcher/src/engine/base.ts:181](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L181)
1382
+
1383
+ Retrieves a fetch engine implementation by execution mode.
1384
+
1385
+ #### Parameters
1386
+
1387
+ ##### mode
1388
+
1389
+ [`FetchEngineType`](../type-aliases/FetchEngineType.md)
1390
+
1391
+ Execution mode (`'http'` or `'browser'`)
1392
+
1393
+ #### Returns
1394
+
1395
+ `undefined` \| `AnyFetchEngineCtor`
1396
+
1397
+ Engine class if found, otherwise `undefined`
1398
+
1399
+ #### Inherited from
1400
+
1401
+ [`FetchEngine`](FetchEngine.md).[`getByMode`](FetchEngine.md#getbymode)
1402
+
1403
+ ***
1404
+
1405
+ ### register()
1406
+
1407
+ > `static` **register**(`engineClass`): `void`
1408
+
1409
+ Defined in: [packages/web-fetcher/src/engine/base.ts:158](https://github.com/isdk/web-fetcher.js/blob/ef3a4e527bf3ca75213d55b02c017b9a30a036fd/src/engine/base.ts#L158)
1410
+
1411
+ Registers a fetch engine implementation with the global registry.
1412
+
1413
+ #### Parameters
1414
+
1415
+ ##### engineClass
1416
+
1417
+ `AnyFetchEngineCtor`
1418
+
1419
+ The engine class to register
1420
+
1421
+ #### Returns
1422
+
1423
+ `void`
1424
+
1425
+ #### Throws
1426
+
1427
+ When engine class lacks static `id` or ID is already registered
1428
+
1429
+ #### Example
1430
+
1431
+ ```ts
1432
+ FetchEngine.register(CheerioFetchEngine);
1433
+ ```
1434
+
1435
+ #### Inherited from
1436
+
1437
+ [`FetchEngine`](FetchEngine.md).[`register`](FetchEngine.md#register)