@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 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
- // @ts-ignore optional peer dependency or compatibility with es2022
222
- export declare function createJSDOMRouter<Context extends JSDOMCrawlingContext = JSDOMCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData>): import("@crawlee/http").RouterHandler<Context>;
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
- * Creates new {@link Router} instance that works based on request labels.
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.17.1-beta.9",
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.3.0",
56
+ "@apify/timeout": "^0.4.0",
57
57
  "@apify/utilities": "^2.7.10",
58
- "@crawlee/http": "3.17.1-beta.9",
59
- "@crawlee/types": "3.17.1-beta.9",
60
- "@crawlee/utils": "3.17.1-beta.9",
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": "c547ce4489d8617620a51516cc885187503f3136"
74
+ "gitHead": "49c115e1ce3b3fbf2bef61f16bffeadfdcf5bd19"
75
75
  }