@crawlee/puppeteer 3.17.1-beta.5 → 3.17.1-beta.51

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.
@@ -59,7 +59,7 @@ async function enqueueLinksByClickingElements(options) {
59
59
  requestQueue: ow_1.default.object.hasKeys('fetchNextRequest', 'addRequest'),
60
60
  selector: ow_1.default.string,
61
61
  userData: ow_1.default.optional.object,
62
- clickOptions: ow_1.default.optional.object.hasKeys('clickCount', 'delay'),
62
+ clickOptions: ow_1.default.optional.object,
63
63
  pseudoUrls: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys('purl'))),
64
64
  globs: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.string, ow_1.default.object.hasKeys('glob'))),
65
65
  regexps: ow_1.default.optional.array.ofType(ow_1.default.any(ow_1.default.regExp, ow_1.default.object.hasKeys('regexp'))),
@@ -1,4 +1,4 @@
1
- import type { BrowserCrawlerOptions, BrowserCrawlingContext, BrowserHook, BrowserRequestHandler, GetUserDataFromRequest, LoadedContext, RouterRoutes } from '@crawlee/browser';
1
+ import type { BrowserCrawlerOptions, BrowserCrawlingContext, BrowserHook, BrowserRequestHandler, GetUserDataFromRequest, LoadedContext, RouterHandler, RouterRoutes } from '@crawlee/browser';
2
2
  import { BrowserCrawler, Configuration } from '@crawlee/browser';
3
3
  import type { PuppeteerController, PuppeteerPlugin } from '@crawlee/browser-pool';
4
4
  import type { Dictionary } from '@crawlee/types';
@@ -239,5 +239,5 @@ export declare class PuppeteerCrawler extends BrowserCrawler<{
239
239
  * await crawler.run();
240
240
  * ```
241
241
  */
242
- // @ts-ignore optional peer dependency or compatibility with es2022
243
- export declare function createPuppeteerRouter<Context extends PuppeteerCrawlingContext = PuppeteerCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, UserData>): import("@crawlee/browser").RouterHandler<Context>;
242
+ export declare function createPuppeteerRouter<Context extends PuppeteerCrawlingContext = PuppeteerCrawlingContext, Routes extends Record<keyof Routes, Dictionary> = Record<string, GetUserDataFromRequest<Context['request']>>>(routes?: RouterRoutes<Context, Routes>): RouterHandler<Context, Routes>;
243
+ export declare function createPuppeteerRouter<Context extends PuppeteerCrawlingContext = PuppeteerCrawlingContext, UserData extends Dictionary = GetUserDataFromRequest<Context['request']>>(routes?: RouterRoutes<Context, Record<string, UserData>>): RouterHandler<Context, Record<string, UserData>>;
@@ -127,30 +127,6 @@ Object.defineProperty(PuppeteerCrawler, "optionsShape", {
127
127
  browserPoolOptions: ow_1.default.optional.object,
128
128
  }
129
129
  });
130
- /**
131
- * Creates new {@link Router} instance that works based on request labels.
132
- * This instance can then serve as a `requestHandler` of your {@link PuppeteerCrawler}.
133
- * Defaults to the {@link PuppeteerCrawlingContext}.
134
- *
135
- * > Serves as a shortcut for using `Router.create<PuppeteerCrawlingContext>()`.
136
- *
137
- * ```ts
138
- * import { PuppeteerCrawler, createPuppeteerRouter } from 'crawlee';
139
- *
140
- * const router = createPuppeteerRouter();
141
- * router.addHandler('label-a', async (ctx) => {
142
- * ctx.log.info('...');
143
- * });
144
- * router.addDefaultHandler(async (ctx) => {
145
- * ctx.log.info('...');
146
- * });
147
- *
148
- * const crawler = new PuppeteerCrawler({
149
- * requestHandler: router,
150
- * });
151
- * await crawler.run();
152
- * ```
153
- */
154
130
  function createPuppeteerRouter(routes) {
155
131
  return browser_1.Router.create(routes);
156
132
  }
@@ -373,7 +373,7 @@ async function gotoExtended(page, request, gotoOptions = {}) {
373
373
  }
374
374
  const { url, method, headers, payload } = request;
375
375
  const isEmpty = (o) => !o || Object.keys(o).length === 0;
376
- if (method !== 'GET' || payload || !isEmpty(headers)) {
376
+ if (method !== 'GET' || payload) {
377
377
  // This is not deprecated, we use it to log only once.
378
378
  log.deprecated('Using other request methods than GET, rewriting headers and adding payloads has a high impact on performance ' +
379
379
  'in recent versions of Puppeteer. Use only when necessary.');
@@ -398,6 +398,9 @@ async function gotoExtended(page, request, gotoOptions = {}) {
398
398
  };
399
399
  await (0, puppeteer_request_interception_1.addInterceptRequestHandler)(page, interceptRequestHandler);
400
400
  }
401
+ else if (!isEmpty(headers)) {
402
+ await page.setExtraHTTPHeaders(headers);
403
+ }
401
404
  return page.goto(url, gotoOptions);
402
405
  }
403
406
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crawlee/puppeteer",
3
- "version": "3.17.1-beta.5",
3
+ "version": "3.17.1-beta.51",
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"
@@ -55,10 +55,10 @@
55
55
  "dependencies": {
56
56
  "@apify/datastructures": "^2.0.0",
57
57
  "@apify/log": "^2.4.0",
58
- "@crawlee/browser": "3.17.1-beta.5",
59
- "@crawlee/browser-pool": "3.17.1-beta.5",
60
- "@crawlee/types": "3.17.1-beta.5",
61
- "@crawlee/utils": "3.17.1-beta.5",
58
+ "@crawlee/browser": "3.17.1-beta.51",
59
+ "@crawlee/browser-pool": "3.17.1-beta.51",
60
+ "@crawlee/types": "3.17.1-beta.51",
61
+ "@crawlee/utils": "3.17.1-beta.51",
62
62
  "cheerio": "1.0.0-rc.12",
63
63
  "devtools-protocol": "*",
64
64
  "idcac-playwright": "^0.2.0",
@@ -85,5 +85,5 @@
85
85
  }
86
86
  }
87
87
  },
88
- "gitHead": "9479ce41601143fc01d56047f69d72ff54a33d1b"
88
+ "gitHead": "5185ab2c00a7fce4eaecb7e16c172b6077779a64"
89
89
  }