@crawlee/jsdom 3.17.1-beta.9 → 3.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.mjs +3 -0
- package/internals/jsdom-crawler.d.ts +4 -3
- package/internals/jsdom-crawler.js +4 -28
- package/package.json +6 -6
package/index.mjs
CHANGED
|
@@ -53,6 +53,7 @@ export const RequestQueue = mod.RequestQueue;
|
|
|
53
53
|
export const RequestQueueV1 = mod.RequestQueueV1;
|
|
54
54
|
export const RequestQueueV2 = mod.RequestQueueV2;
|
|
55
55
|
export const RequestState = mod.RequestState;
|
|
56
|
+
export const RequestValidationError = mod.RequestValidationError;
|
|
56
57
|
export const RetryRequestError = mod.RetryRequestError;
|
|
57
58
|
export const Router = mod.Router;
|
|
58
59
|
export const STATE_PERSISTENCE_KEY = mod.STATE_PERSISTENCE_KEY;
|
|
@@ -84,6 +85,7 @@ export const createHttpRouter = mod.createHttpRouter;
|
|
|
84
85
|
export const createJSDOMRouter = mod.createJSDOMRouter;
|
|
85
86
|
export const createRequestOptions = mod.createRequestOptions;
|
|
86
87
|
export const createRequests = mod.createRequests;
|
|
88
|
+
export const defaultRoute = mod.defaultRoute;
|
|
87
89
|
export const deserializeArray = mod.deserializeArray;
|
|
88
90
|
export const domCrawlerEnqueueLinks = mod.domCrawlerEnqueueLinks;
|
|
89
91
|
export const enqueueLinks = mod.enqueueLinks;
|
|
@@ -105,5 +107,6 @@ export const tryAbsoluteURL = mod.tryAbsoluteURL;
|
|
|
105
107
|
export const updateEnqueueLinksPatternCache = mod.updateEnqueueLinksPatternCache;
|
|
106
108
|
export const useState = mod.useState;
|
|
107
109
|
export const validateGlobPattern = mod.validateGlobPattern;
|
|
110
|
+
export const validateUserData = mod.validateUserData;
|
|
108
111
|
export const validators = mod.validators;
|
|
109
112
|
export const withCheckedStorageAccess = mod.withCheckedStorageAccess;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IncomingMessage } from 'node:http';
|
|
2
|
-
import type { BasicCrawlingContext, Configuration, EnqueueLinksOptions, ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RequestProvider, RouterRoutes, SkippedRequestCallback } from '@crawlee/http';
|
|
2
|
+
import type { BasicCrawlingContext, Configuration, EnqueueLinksOptions, ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RequestProvider, RouterHandler, RouterRoutes, RouteSchemas, RoutesFromSchemas, SkippedRequestCallback } from '@crawlee/http';
|
|
3
3
|
import { HttpCrawler } from '@crawlee/http';
|
|
4
4
|
import type { Dictionary } from '@crawlee/types';
|
|
5
5
|
import { type CheerioRoot, type RobotsTxtFile } from '@crawlee/utils';
|
|
@@ -218,6 +218,7 @@ export declare function domCrawlerEnqueueLinks(options: EnqueueLinksInternalOpti
|
|
|
218
218
|
* await crawler.run();
|
|
219
219
|
* ```
|
|
220
220
|
*/
|
|
221
|
-
|
|
222
|
-
export declare function createJSDOMRouter<Context extends JSDOMCrawlingContext = JSDOMCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData
|
|
221
|
+
export declare function createJSDOMRouter<Context extends JSDOMCrawlingContext = JSDOMCrawlingContext, Routes extends Record<keyof Routes, Dictionary> = Record<string, GetUserDataFromRequest<Context['request']>>>(routes?: RouterRoutes<Context, Routes>): RouterHandler<Context, Routes>;
|
|
222
|
+
export declare function createJSDOMRouter<Context extends JSDOMCrawlingContext = JSDOMCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, Record<string, UserData>>): RouterHandler<Context, Record<string, UserData>>;
|
|
223
|
+
export declare function createJSDOMRouter<Context extends JSDOMCrawlingContext = JSDOMCrawlingContext, const Schemas extends RouteSchemas = RouteSchemas>(schemas: Schemas): RouterHandler<Context, RoutesFromSchemas<Schemas>>;
|
|
223
224
|
export {};
|
|
@@ -267,8 +267,8 @@ async function domCrawlerEnqueueLinks(options) {
|
|
|
267
267
|
if (containsEnqueueLinks(options)) {
|
|
268
268
|
return options.enqueueLinks({
|
|
269
269
|
urls,
|
|
270
|
-
baseUrl,
|
|
271
270
|
...enqueueLinksOptions,
|
|
271
|
+
baseUrl,
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
return (0, http_1.enqueueLinks)({
|
|
@@ -276,8 +276,8 @@ async function domCrawlerEnqueueLinks(options) {
|
|
|
276
276
|
robotsTxtFile: options.robotsTxtFile,
|
|
277
277
|
onSkippedRequest: options.onSkippedRequest,
|
|
278
278
|
urls,
|
|
279
|
-
baseUrl,
|
|
280
279
|
...enqueueLinksOptions,
|
|
280
|
+
baseUrl,
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
283
|
/**
|
|
@@ -296,30 +296,6 @@ function extractUrlsFromWindow(window, selector, baseUrl) {
|
|
|
296
296
|
})
|
|
297
297
|
.filter((href) => href !== undefined && href !== '');
|
|
298
298
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
* This instance can then serve as a `requestHandler` of your {@link JSDOMCrawler}.
|
|
302
|
-
* Defaults to the {@link JSDOMCrawlingContext}.
|
|
303
|
-
*
|
|
304
|
-
* > Serves as a shortcut for using `Router.create<JSDOMCrawlingContext>()`.
|
|
305
|
-
*
|
|
306
|
-
* ```ts
|
|
307
|
-
* import { JSDOMCrawler, createJSDOMRouter } from 'crawlee';
|
|
308
|
-
*
|
|
309
|
-
* const router = createJSDOMRouter();
|
|
310
|
-
* router.addHandler('label-a', async (ctx) => {
|
|
311
|
-
* ctx.log.info('...');
|
|
312
|
-
* });
|
|
313
|
-
* router.addDefaultHandler(async (ctx) => {
|
|
314
|
-
* ctx.log.info('...');
|
|
315
|
-
* });
|
|
316
|
-
*
|
|
317
|
-
* const crawler = new JSDOMCrawler({
|
|
318
|
-
* requestHandler: router,
|
|
319
|
-
* });
|
|
320
|
-
* await crawler.run();
|
|
321
|
-
* ```
|
|
322
|
-
*/
|
|
323
|
-
function createJSDOMRouter(routes) {
|
|
324
|
-
return http_1.Router.create(routes);
|
|
299
|
+
function createJSDOMRouter(routesOrSchemas) {
|
|
300
|
+
return http_1.Router.create(routesOrSchemas);
|
|
325
301
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crawlee/jsdom",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.18.0",
|
|
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": ">=16.0.0"
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@apify/timeout": "^0.
|
|
56
|
+
"@apify/timeout": "^0.4.0",
|
|
57
57
|
"@apify/utilities": "^2.7.10",
|
|
58
|
-
"@crawlee/http": "3.
|
|
59
|
-
"@crawlee/types": "3.
|
|
60
|
-
"@crawlee/utils": "3.
|
|
58
|
+
"@crawlee/http": "3.18.0",
|
|
59
|
+
"@crawlee/types": "3.18.0",
|
|
60
|
+
"@crawlee/utils": "3.18.0",
|
|
61
61
|
"@types/jsdom": "^21.0.0",
|
|
62
62
|
"cheerio": "1.0.0-rc.12",
|
|
63
63
|
"jsdom": "^26.0.0",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "49c115e1ce3b3fbf2bef61f16bffeadfdcf5bd19"
|
|
75
75
|
}
|