@crawlee/jsdom 4.0.0-beta.10 → 4.0.0-beta.12
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.
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { IncomingMessage } from 'node:http';
|
|
2
1
|
import type { Configuration, EnqueueLinksOptions, ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RequestProvider, RouterRoutes, SkippedRequestCallback } from '@crawlee/http';
|
|
3
2
|
import { HttpCrawler } from '@crawlee/http';
|
|
4
3
|
import type { Dictionary } from '@crawlee/types';
|
|
@@ -7,8 +6,8 @@ import type { DOMWindow } from 'jsdom';
|
|
|
7
6
|
import { VirtualConsole } from 'jsdom';
|
|
8
7
|
export type JSDOMErrorHandler<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
9
8
|
JSONData extends Dictionary = any> = ErrorHandler<JSDOMCrawlingContext<UserData, JSONData>>;
|
|
10
|
-
export interface JSDOMCrawlerOptions<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
11
|
-
JSONData extends Dictionary = any> extends HttpCrawlerOptions<JSDOMCrawlingContext<UserData, JSONData
|
|
9
|
+
export interface JSDOMCrawlerOptions<ExtendedContext extends JSDOMCrawlingContext = JSDOMCrawlingContext, UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
10
|
+
JSONData extends Dictionary = any> extends HttpCrawlerOptions<JSDOMCrawlingContext<UserData, JSONData>, ExtendedContext> {
|
|
12
11
|
/**
|
|
13
12
|
* Download and run scripts.
|
|
14
13
|
*/
|
|
@@ -21,9 +20,10 @@ JSONData extends Dictionary = any> extends HttpCrawlerOptions<JSDOMCrawlingConte
|
|
|
21
20
|
export type JSDOMHook<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
22
21
|
JSONData extends Dictionary = any> = InternalHttpHook<JSDOMCrawlingContext<UserData, JSONData>>;
|
|
23
22
|
export interface JSDOMCrawlingContext<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
24
|
-
JSONData extends Dictionary = any> extends InternalHttpCrawlingContext<UserData, JSONData
|
|
23
|
+
JSONData extends Dictionary = any> extends InternalHttpCrawlingContext<UserData, JSONData> {
|
|
25
24
|
window: DOMWindow;
|
|
26
25
|
document: Document;
|
|
26
|
+
body: string;
|
|
27
27
|
/**
|
|
28
28
|
* Wait for an element matching the selector to appear.
|
|
29
29
|
* Timeout defaults to 5s.
|
|
@@ -54,7 +54,7 @@ JSONData extends Dictionary = any> extends InternalHttpCrawlingContext<UserData,
|
|
|
54
54
|
}
|
|
55
55
|
export type JSDOMRequestHandler<UserData extends Dictionary = any, // with default to Dictionary we cant use a typed router in untyped crawler
|
|
56
56
|
JSONData extends Dictionary = any> = RequestHandler<JSDOMCrawlingContext<UserData, JSONData>>;
|
|
57
|
-
export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
57
|
+
export declare class JSDOMCrawler<ExtendedContext extends JSDOMCrawlingContext = JSDOMCrawlingContext> extends HttpCrawler<JSDOMCrawlingContext, ExtendedContext> {
|
|
58
58
|
protected static optionsShape: {
|
|
59
59
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
60
60
|
runScripts: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
|
|
@@ -70,8 +70,6 @@ export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
|
70
70
|
suggestResponseEncoding: import("ow").StringPredicate & import("ow").BasePredicate<string | undefined>;
|
|
71
71
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
72
72
|
forceResponseEncoding: import("ow").StringPredicate & import("ow").BasePredicate<string | undefined>;
|
|
73
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
74
|
-
proxyConfiguration: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
75
73
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
76
74
|
persistCookiesPerSession: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
|
|
77
75
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
@@ -82,6 +80,10 @@ export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
|
82
80
|
preNavigationHooks: import("ow").ArrayPredicate<unknown> & import("ow").BasePredicate<unknown[] | undefined>;
|
|
83
81
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
84
82
|
postNavigationHooks: import("ow").ArrayPredicate<unknown> & import("ow").BasePredicate<unknown[] | undefined>;
|
|
83
|
+
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
84
|
+
contextPipelineBuilder: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
85
|
+
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
86
|
+
extendContext: import("ow").Predicate<Function> & import("ow").BasePredicate<Function | undefined>;
|
|
85
87
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
86
88
|
requestList: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
87
89
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
@@ -108,6 +110,8 @@ export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
|
108
110
|
sessionPoolOptions: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
109
111
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
110
112
|
useSessionPool: import("ow").BooleanPredicate & import("ow").BasePredicate<boolean | undefined>;
|
|
113
|
+
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
114
|
+
proxyConfiguration: import("ow").ObjectPredicate<object> & import("ow").BasePredicate<object | undefined>;
|
|
111
115
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
112
116
|
statusMessageLoggingInterval: import("ow").NumberPredicate & import("ow").BasePredicate<number | undefined>;
|
|
113
117
|
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
@@ -138,7 +142,7 @@ export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
|
138
142
|
protected runScripts: boolean;
|
|
139
143
|
protected hideInternalConsole: boolean;
|
|
140
144
|
protected virtualConsole: VirtualConsole | null;
|
|
141
|
-
constructor(options?: JSDOMCrawlerOptions
|
|
145
|
+
constructor(options?: JSDOMCrawlerOptions<ExtendedContext>, config?: Configuration);
|
|
142
146
|
/**
|
|
143
147
|
* Returns the currently used `VirtualConsole` instance. Can be used to listen for the JSDOM's internal console messages.
|
|
144
148
|
*
|
|
@@ -155,15 +159,8 @@ export declare class JSDOMCrawler extends HttpCrawler<JSDOMCrawlingContext> {
|
|
|
155
159
|
*/
|
|
156
160
|
getVirtualConsole(): VirtualConsole;
|
|
157
161
|
private readonly jsdomErrorHandler;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
window: DOMWindow;
|
|
161
|
-
readonly body: string;
|
|
162
|
-
readonly document: Document;
|
|
163
|
-
// @ts-ignore optional peer dependency or compatibility with es2022
|
|
164
|
-
enqueueLinks: (enqueueOptions?: EnqueueLinksOptions) => Promise<import("@crawlee/types").BatchAddRequestsResult>;
|
|
165
|
-
}>;
|
|
166
|
-
_runRequestHandler(context: JSDOMCrawlingContext): Promise<void>;
|
|
162
|
+
private parseContent;
|
|
163
|
+
private addHelpers;
|
|
167
164
|
}
|
|
168
165
|
interface EnqueueLinksInternalOptions {
|
|
169
166
|
options?: EnqueueLinksOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdom-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/jsdom-crawler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"jsdom-crawler.d.ts","sourceRoot":"","sources":["../../src/internals/jsdom-crawler.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import * as cheerio from 'cheerio';
|
|
|
4
4
|
import { JSDOM, ResourceLoader, VirtualConsole } from 'jsdom';
|
|
5
5
|
import ow from 'ow';
|
|
6
6
|
import { addTimeoutToPromise } from '@apify/timeout';
|
|
7
|
-
import { concatStreamToBuffer } from '@apify/utilities';
|
|
8
7
|
/**
|
|
9
8
|
* Provides a framework for the parallel crawling of web pages using plain HTTP requests and
|
|
10
9
|
* [jsdom](https://www.npmjs.com/package/jsdom) JSDOM implementation.
|
|
@@ -94,7 +93,18 @@ export class JSDOMCrawler extends HttpCrawler {
|
|
|
94
93
|
virtualConsole = null;
|
|
95
94
|
constructor(options = {}, config) {
|
|
96
95
|
const { runScripts = false, hideInternalConsole = false, ...httpOptions } = options;
|
|
97
|
-
super(
|
|
96
|
+
super({
|
|
97
|
+
...httpOptions,
|
|
98
|
+
contextPipelineBuilder: () => this.buildContextPipeline()
|
|
99
|
+
.compose({
|
|
100
|
+
action: async (context) => await this.parseContent(context),
|
|
101
|
+
cleanup: async (context) => {
|
|
102
|
+
this.getVirtualConsole().off('jsdomError', this.jsdomErrorHandler);
|
|
103
|
+
context.window?.close();
|
|
104
|
+
},
|
|
105
|
+
})
|
|
106
|
+
.compose({ action: async (context) => await this.addHelpers(context) }),
|
|
107
|
+
}, config);
|
|
98
108
|
this.runScripts = runScripts;
|
|
99
109
|
this.hideInternalConsole = hideInternalConsole;
|
|
100
110
|
}
|
|
@@ -124,14 +134,11 @@ export class JSDOMCrawler extends HttpCrawler {
|
|
|
124
134
|
return this.virtualConsole;
|
|
125
135
|
}
|
|
126
136
|
jsdomErrorHandler = (error) => this.log.debug('JSDOM error from console', error);
|
|
127
|
-
async
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const body = await concatStreamToBuffer(response);
|
|
133
|
-
const { window } = new JSDOM(body, {
|
|
134
|
-
url: response.url,
|
|
137
|
+
async parseContent(crawlingContext) {
|
|
138
|
+
const isXml = crawlingContext.contentType.type.includes('xml');
|
|
139
|
+
// TODO handle non-string
|
|
140
|
+
const { window } = new JSDOM(crawlingContext.body.toString(), {
|
|
141
|
+
url: crawlingContext.response.url,
|
|
135
142
|
contentType: isXml ? 'text/xml' : 'text/html',
|
|
136
143
|
runScripts: this.runScripts ? 'dangerously' : undefined,
|
|
137
144
|
resources,
|
|
@@ -180,10 +187,14 @@ export class JSDOMCrawler extends HttpCrawler {
|
|
|
180
187
|
get document() {
|
|
181
188
|
return window.document;
|
|
182
189
|
},
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
async addHelpers(crawlingContext) {
|
|
193
|
+
return {
|
|
183
194
|
enqueueLinks: async (enqueueOptions) => {
|
|
184
195
|
return domCrawlerEnqueueLinks({
|
|
185
196
|
options: enqueueOptions,
|
|
186
|
-
window,
|
|
197
|
+
window: crawlingContext.window,
|
|
187
198
|
requestQueue: await this.getRequestQueue(),
|
|
188
199
|
robotsTxtFile: await this.getRobotsTxtFileForUrl(crawlingContext.request.url),
|
|
189
200
|
onSkippedRequest: this.onSkippedRequest,
|
|
@@ -191,28 +202,25 @@ export class JSDOMCrawler extends HttpCrawler {
|
|
|
191
202
|
finalRequestUrl: crawlingContext.request.loadedUrl,
|
|
192
203
|
});
|
|
193
204
|
},
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
return;
|
|
205
|
+
async waitForSelector(selector, timeoutMs = 5_000) {
|
|
206
|
+
const $ = cheerio.load(crawlingContext.body);
|
|
207
|
+
if ($(selector).get().length === 0) {
|
|
208
|
+
if (timeoutMs) {
|
|
209
|
+
await sleep(50);
|
|
210
|
+
await this.waitForSelector(selector, Math.max(timeoutMs - 50, 0));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`Selector '${selector}' not found.`);
|
|
204
214
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
return $;
|
|
215
|
+
},
|
|
216
|
+
async parseWithCheerio(selector, _timeoutMs = 5_000) {
|
|
217
|
+
const $ = cheerio.load(crawlingContext.body);
|
|
218
|
+
if (selector && $(selector).get().length === 0) {
|
|
219
|
+
throw new Error(`Selector '${selector}' not found.`);
|
|
220
|
+
}
|
|
221
|
+
return $;
|
|
222
|
+
},
|
|
214
223
|
};
|
|
215
|
-
await super._runRequestHandler(context);
|
|
216
224
|
}
|
|
217
225
|
}
|
|
218
226
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdom-crawler.js","sourceRoot":"","sources":["../../src/internals/jsdom-crawler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jsdom-crawler.js","sourceRoot":"","sources":["../../src/internals/jsdom-crawler.ts"],"names":[],"mappings":"AAaA,OAAO,EACH,YAAY,EACZ,WAAW,EACX,sCAAsC,EACtC,MAAM,EACN,cAAc,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAwC,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAuErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC;IACjC,6EAA6E;IAC7E,kDAAkD;IAClD,SAAS,EACL,uHAAuH;CAC9H,CAAC,CAAC;AAEH,MAAM,OAAO,YAAkF,SAAQ,WAGtG;IACa,MAAM,CAAU,YAAY,GAAG;QACrC,GAAG,WAAW,CAAC,YAAY;QAC3B,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO;QAC/B,mBAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO;KAC3C,CAAC;IAEQ,UAAU,CAAU;IACpB,mBAAmB,CAAU;IAC7B,cAAc,GAA0B,IAAI,CAAC;IAEvD,YAAY,UAAgD,EAAE,EAAE,MAAsB;QAClF,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;QAEpF,KAAK,CACD;YACI,GAAG,WAAW;YACd,sBAAsB,EAAE,GAAG,EAAE,CACzB,IAAI,CAAC,oBAAoB,EAAE;iBACtB,OAAO,CAAC;gBACL,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;gBAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;oBACvB,IAAI,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;oBACnE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC5B,CAAC;aACJ,CAAC;iBACD,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;SAClF,EACD,MAAM,CACT,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,iBAAiB;QACb,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEgB,iBAAiB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;IAEjG,KAAK,CAAC,YAAY,CAAC,eAA4C;QACnE,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/D,yBAAyB;QACzB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAC1D,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG;YACjC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YACvD,SAAS;YACT,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACxC,iBAAiB,EAAE,IAAI;SAC1B,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE;YACxC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,KAAc,EAAO,EAAE,CAAC,CAAC;gBAC7B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;gBACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;gBACxB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;gBAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;gBAC7B,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;aAC1B,CAAC;SACL,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAQ,CAAC;YAChD,KAAK,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAQ,CAAC;YAC7E,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC;gBACD,MAAM,mBAAmB,CACrB,KAAK,IAAI,EAAE;oBACP,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBACjC,MAAM,CAAC,gBAAgB,CACnB,MAAM,EACN,GAAG,EAAE;4BACD,OAAO,EAAE,CAAC;wBACd,CAAC,EACD,KAAK,CACR,CAAC;oBACN,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACf,CAAC,EACD,MAAM,EACN,+CAA+C,CAClD,CAAC,KAAK,EAAE,CAAC;YACd,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,GAAG,CAAC,KAAK,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO;YACH,MAAM;YACN,IAAI,IAAI;gBACJ,OAAO,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ;gBACR,OAAO,MAAM,CAAC,QAAQ,CAAC;YAC3B,CAAC;SACJ,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,eAAkF;QACvG,OAAO;YACH,YAAY,EAAE,KAAK,EAAE,cAAoC,EAAE,EAAE;gBACzD,OAAO,sBAAsB,CAAC;oBAC1B,OAAO,EAAE,cAAc;oBACvB,MAAM,EAAE,eAAe,CAAC,MAAM;oBAC9B,YAAY,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE;oBAC1C,aAAa,EAAE,MAAM,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;oBAC7E,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;oBACvC,kBAAkB,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG;oBAC/C,eAAe,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS;iBACrD,CAAC,CAAC;YACP,CAAC;YACD,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAS,GAAG,KAAK;gBACrD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAE7C,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,IAAI,SAAS,EAAE,CAAC;wBACZ,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;wBAChB,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClE,OAAO;oBACX,CAAC;oBAED,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,cAAc,CAAC,CAAC;gBACzD,CAAC;YACL,CAAC;YACD,KAAK,CAAC,gBAAgB,CAAC,QAAiB,EAAE,UAAU,GAAG,KAAK;gBACxD,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;gBAE7C,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,cAAc,CAAC,CAAC;gBACzD,CAAC;gBAED,OAAO,CAAC,CAAC;YACb,CAAC;SACJ,CAAC;IACN,CAAC;;AAaL,gBAAgB;AAChB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EACzC,OAAO,EACP,MAAM,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GACW;IAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,OAAO,GAAG,sCAAsC,CAAC;QACnD,eAAe,EAAE,OAAO,EAAE,QAAQ;QAClC,eAAe;QACf,kBAAkB;QAClB,mBAAmB,EAAE,OAAO,EAAE,OAAO;KACxC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,qBAAqB,CAC9B,MAAM,EACN,OAAO,EAAE,QAAQ,IAAI,GAAG,EACxB,OAAO,EAAE,OAAO,IAAI,eAAe,IAAI,kBAAkB,CAC5D,CAAC;IAEF,OAAO,YAAY,CAAC;QAChB,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,IAAI;QACJ,OAAO;QACP,GAAG,OAAO;KACb,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,MAAiB,EAAE,QAAgB,EAAE,OAAe;IAC/E,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACxD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACvB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAC;SACnD,GAAG,CAAC,CAAC,IAAwB,EAAE,EAAE;QAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,CAAa,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,iBAAiB,CAG/B,MAAwC;IACtC,OAAO,MAAM,CAAC,MAAM,CAAU,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee/jsdom",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.12",
|
|
4
4
|
"description": "The scalable web crawling and scraping library for JavaScript/Node.js. Enables development of data extraction and web automation jobs (not only) with headless Chrome and Puppeteer.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22.0.0"
|
|
@@ -49,9 +49,9 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@apify/timeout": "^0.3.2",
|
|
51
51
|
"@apify/utilities": "^2.15.5",
|
|
52
|
-
"@crawlee/http": "4.0.0-beta.
|
|
53
|
-
"@crawlee/types": "4.0.0-beta.
|
|
54
|
-
"@crawlee/utils": "4.0.0-beta.
|
|
52
|
+
"@crawlee/http": "4.0.0-beta.12",
|
|
53
|
+
"@crawlee/types": "4.0.0-beta.12",
|
|
54
|
+
"@crawlee/utils": "4.0.0-beta.12",
|
|
55
55
|
"@types/jsdom": "^21.1.7",
|
|
56
56
|
"cheerio": "^1.0.0",
|
|
57
57
|
"jsdom": "^26.1.0",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "06431733e5cfa6cc3a4c105427592f87424037ca"
|
|
69
69
|
}
|