@crawlee/linkedom 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 createLinkeDOMRouter = mod.createLinkeDOMRouter;
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 enqueueLinks = mod.enqueueLinks;
89
91
  export const evaluateLoadSignalSample = mod.evaluateLoadSignalSample;
@@ -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, EnqueueLinksOptions, ErrorHandler, GetUserDataFromRequest, HttpCrawlerOptions, InternalHttpCrawlingContext, InternalHttpHook, RequestHandler, RequestProvider, RouterRoutes, SkippedRequestCallback } from '@crawlee/http';
2
+ import type { BasicCrawlingContext, 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';
@@ -170,6 +170,7 @@ export declare function linkedomCrawlerEnqueueLinks(options: EnqueueLinksInterna
170
170
  * await crawler.run();
171
171
  * ```
172
172
  */
173
- // @ts-ignore optional peer dependency or compatibility with es2022
174
- export declare function createLinkeDOMRouter<Context extends LinkeDOMCrawlingContext = LinkeDOMCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData>): import("@crawlee/http").RouterHandler<Context>;
173
+ export declare function createLinkeDOMRouter<Context extends LinkeDOMCrawlingContext = LinkeDOMCrawlingContext, Routes extends Record<keyof Routes, Dictionary> = Record<string, GetUserDataFromRequest<Context['request']>>>(routes?: RouterRoutes<Context, Routes>): RouterHandler<Context, Routes>;
174
+ export declare function createLinkeDOMRouter<Context extends LinkeDOMCrawlingContext = LinkeDOMCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, Record<string, UserData>>): RouterHandler<Context, Record<string, UserData>>;
175
+ export declare function createLinkeDOMRouter<Context extends LinkeDOMCrawlingContext = LinkeDOMCrawlingContext, const Schemas extends RouteSchemas = RouteSchemas>(schemas: Schemas): RouterHandler<Context, RoutesFromSchemas<Schemas>>;
175
176
  export {};
@@ -155,8 +155,8 @@ async function linkedomCrawlerEnqueueLinks(options) {
155
155
  if (containsEnqueueLinks(options)) {
156
156
  return options.enqueueLinks({
157
157
  urls,
158
- baseUrl,
159
158
  ...enqueueLinksOptions,
159
+ baseUrl,
160
160
  });
161
161
  }
162
162
  return (0, http_1.enqueueLinks)({
@@ -164,8 +164,8 @@ async function linkedomCrawlerEnqueueLinks(options) {
164
164
  robotsTxtFile: options.robotsTxtFile,
165
165
  onSkippedRequest: options.onSkippedRequest,
166
166
  urls,
167
- baseUrl,
168
167
  ...enqueueLinksOptions,
168
+ baseUrl,
169
169
  });
170
170
  }
171
171
  /**
@@ -184,30 +184,6 @@ function extractUrlsFromWindow(window, selector, baseUrl) {
184
184
  })
185
185
  .filter((href) => href !== undefined && href !== '');
186
186
  }
187
- /**
188
- * Creates new {@link Router} instance that works based on request labels.
189
- * This instance can then serve as a `requestHandler` of your {@link LinkeDOMCrawler}.
190
- * Defaults to the {@link LinkeDOMCrawlingContext}.
191
- *
192
- * > Serves as a shortcut for using `Router.create<LinkeDOMCrawlingContext>()`.
193
- *
194
- * ```ts
195
- * import { LinkeDOMCrawler, createLinkeDOMRouter } from 'crawlee';
196
- *
197
- * const router = createLinkeDOMRouter();
198
- * router.addHandler('label-a', async (ctx) => {
199
- * ctx.log.info('...');
200
- * });
201
- * router.addDefaultHandler(async (ctx) => {
202
- * ctx.log.info('...');
203
- * });
204
- *
205
- * const crawler = new LinkeDOMCrawler({
206
- * requestHandler: router,
207
- * });
208
- * await crawler.run();
209
- * ```
210
- */
211
- function createLinkeDOMRouter(routes) {
212
- return http_1.Router.create(routes);
187
+ function createLinkeDOMRouter(routesOrSchemas) {
188
+ return http_1.Router.create(routesOrSchemas);
213
189
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crawlee/linkedom",
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,10 +53,12 @@
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",
58
+ "@crawlee/http": "3.18.0",
59
+ "@crawlee/types": "3.18.0",
60
+ "@crawlee/utils": "3.18.0",
61
+ "cheerio": "1.0.0-rc.12",
60
62
  "linkedom": "^0.18.0",
61
63
  "ow": "^0.28.2",
62
64
  "tslib": "^2.4.0"
@@ -68,5 +70,5 @@
68
70
  }
69
71
  }
70
72
  },
71
- "gitHead": "c547ce4489d8617620a51516cc885187503f3136"
73
+ "gitHead": "49c115e1ce3b3fbf2bef61f16bffeadfdcf5bd19"
72
74
  }