@crawlee/browser-pool 3.13.6-beta.0 → 4.0.0-beta.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.
Files changed (72) hide show
  1. package/abstract-classes/browser-controller.d.ts +4 -4
  2. package/abstract-classes/browser-controller.d.ts.map +1 -1
  3. package/abstract-classes/browser-controller.js +43 -117
  4. package/abstract-classes/browser-controller.js.map +1 -1
  5. package/abstract-classes/browser-plugin.d.ts +5 -16
  6. package/abstract-classes/browser-plugin.d.ts.map +1 -1
  7. package/abstract-classes/browser-plugin.js +19 -71
  8. package/abstract-classes/browser-plugin.js.map +1 -1
  9. package/anonymize-proxy.js +4 -8
  10. package/anonymize-proxy.js.map +1 -1
  11. package/browser-pool.d.ts +6 -6
  12. package/browser-pool.d.ts.map +1 -1
  13. package/browser-pool.js +77 -209
  14. package/browser-pool.js.map +1 -1
  15. package/container-proxy-server.js +3 -6
  16. package/container-proxy-server.js.map +1 -1
  17. package/events.js +4 -7
  18. package/events.js.map +1 -1
  19. package/fingerprinting/hooks.d.ts +3 -3
  20. package/fingerprinting/hooks.d.ts.map +1 -1
  21. package/fingerprinting/hooks.js +13 -18
  22. package/fingerprinting/hooks.js.map +1 -1
  23. package/fingerprinting/types.js +6 -9
  24. package/fingerprinting/types.js.map +1 -1
  25. package/fingerprinting/utils.d.ts +2 -2
  26. package/fingerprinting/utils.d.ts.map +1 -1
  27. package/fingerprinting/utils.js +9 -13
  28. package/fingerprinting/utils.js.map +1 -1
  29. package/index.d.ts +13 -13
  30. package/index.d.ts.map +1 -1
  31. package/index.js +11 -26
  32. package/index.js.map +1 -1
  33. package/launch-context.d.ts +2 -9
  34. package/launch-context.d.ts.map +1 -1
  35. package/launch-context.js +12 -73
  36. package/launch-context.js.map +1 -1
  37. package/logger.js +2 -6
  38. package/logger.js.map +1 -1
  39. package/package.json +19 -25
  40. package/playwright/playwright-browser.js +6 -30
  41. package/playwright/playwright-browser.js.map +1 -1
  42. package/playwright/playwright-controller.d.ts +2 -2
  43. package/playwright/playwright-controller.d.ts.map +1 -1
  44. package/playwright/playwright-controller.js +9 -75
  45. package/playwright/playwright-controller.js.map +1 -1
  46. package/playwright/playwright-plugin.d.ts +6 -6
  47. package/playwright/playwright-plugin.d.ts.map +1 -1
  48. package/playwright/playwright-plugin.js +19 -106
  49. package/playwright/playwright-plugin.js.map +1 -1
  50. package/proxy-server.js +3 -6
  51. package/proxy-server.js.map +1 -1
  52. package/puppeteer/puppeteer-controller.d.ts +1 -1
  53. package/puppeteer/puppeteer-controller.d.ts.map +1 -1
  54. package/puppeteer/puppeteer-controller.js +13 -17
  55. package/puppeteer/puppeteer-controller.js.map +1 -1
  56. package/puppeteer/puppeteer-plugin.d.ts +5 -5
  57. package/puppeteer/puppeteer-plugin.d.ts.map +1 -1
  58. package/puppeteer/puppeteer-plugin.js +16 -23
  59. package/puppeteer/puppeteer-plugin.js.map +1 -1
  60. package/tsconfig.build.tsbuildinfo +1 -1
  61. package/utils.d.ts +3 -3
  62. package/utils.d.ts.map +1 -1
  63. package/utils.js +1 -4
  64. package/utils.js.map +1 -1
  65. package/index.mjs +0 -19
  66. package/playwright/load-firefox-addon.d.ts +0 -2
  67. package/playwright/load-firefox-addon.d.ts.map +0 -1
  68. package/playwright/load-firefox-addon.js +0 -86
  69. package/playwright/load-firefox-addon.js.map +0 -1
  70. package/tab-as-a-container/background.js +0 -433
  71. package/tab-as-a-container/content.js +0 -611
  72. package/tab-as-a-container/manifest.json +0 -21
@@ -1,29 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PuppeteerPlugin = void 0;
4
- const promises_1 = require("node:fs/promises");
5
- const browser_plugin_1 = require("../abstract-classes/browser-plugin");
6
- const anonymize_proxy_1 = require("../anonymize-proxy");
7
- const logger_1 = require("../logger");
8
- const utils_1 = require("../utils");
9
- const puppeteer_controller_1 = require("./puppeteer-controller");
1
+ import { readFile } from 'node:fs/promises';
2
+ import { BrowserPlugin } from '../abstract-classes/browser-plugin.js';
3
+ import { anonymizeProxySugar } from '../anonymize-proxy.js';
4
+ import { log } from '../logger.js';
5
+ import { noop } from '../utils.js';
6
+ import { PuppeteerController } from './puppeteer-controller.js';
10
7
  const PROXY_SERVER_ARG = '--proxy-server=';
11
- class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
8
+ export class PuppeteerPlugin extends BrowserPlugin {
12
9
  async _launch(launchContext) {
13
10
  let oldPuppeteerVersion = false;
14
11
  try {
15
12
  const jsonPath = require.resolve('puppeteer/package.json');
16
- const parsed = JSON.parse(await (0, promises_1.readFile)(jsonPath, 'utf-8'));
13
+ const parsed = JSON.parse(await readFile(jsonPath, 'utf-8'));
17
14
  const version = +parsed.version.split('.')[0];
18
15
  oldPuppeteerVersion = version < 22;
19
16
  }
20
17
  catch {
21
18
  // ignore
22
19
  }
23
- const { launchOptions, userDataDir, useIncognitoPages, experimentalContainers, proxyUrl } = launchContext;
24
- if (experimentalContainers) {
25
- throw new Error('Experimental containers are only available with Playwright');
26
- }
20
+ const { launchOptions, userDataDir, useIncognitoPages, proxyUrl } = launchContext;
27
21
  launchOptions.userDataDir = launchOptions.userDataDir ?? userDataDir;
28
22
  if (launchOptions.headless === false) {
29
23
  if (Array.isArray(launchOptions.args)) {
@@ -38,7 +32,7 @@ class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
38
32
  }
39
33
  let browser;
40
34
  {
41
- const [anonymizedProxyUrl, close] = await (0, anonymize_proxy_1.anonymizeProxySugar)(proxyUrl);
35
+ const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl);
42
36
  if (proxyUrl) {
43
37
  const proxyArg = `${PROXY_SERVER_ARG}${anonymizedProxyUrl ?? proxyUrl}`;
44
38
  if (Array.isArray(launchOptions.args)) {
@@ -66,13 +60,13 @@ class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
66
60
  const page = await target.page();
67
61
  if (page) {
68
62
  page.on('error', (error) => {
69
- logger_1.log.exception(error, 'Page crashed.');
70
- page.close().catch(utils_1.noop);
63
+ log.exception(error, 'Page crashed.');
64
+ page.close().catch(noop);
71
65
  });
72
66
  }
73
67
  }
74
68
  catch (error) {
75
- logger_1.log.exception(error, 'Failed to retrieve page from target.');
69
+ log.exception(error, 'Failed to retrieve page from target.');
76
70
  }
77
71
  });
78
72
  const boundMethods = [
@@ -95,7 +89,7 @@ class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
95
89
  return async (...args) => {
96
90
  let page;
97
91
  if (useIncognitoPages) {
98
- const [anonymizedProxyUrl, close] = await (0, anonymize_proxy_1.anonymizeProxySugar)(proxyUrl);
92
+ const [anonymizedProxyUrl, close] = await anonymizeProxySugar(proxyUrl);
99
93
  try {
100
94
  const context = (await browser[method]({
101
95
  proxyServer: anonymizedProxyUrl ?? proxyUrl,
@@ -142,8 +136,8 @@ class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
142
136
  });
143
137
  return browser;
144
138
  }
145
- _createController() {
146
- return new puppeteer_controller_1.PuppeteerController(this);
139
+ createController() {
140
+ return new PuppeteerController(this);
147
141
  }
148
142
  async _addProxyToLaunchOptions(_launchContext) {
149
143
  /*
@@ -176,5 +170,4 @@ class PuppeteerPlugin extends browser_plugin_1.BrowserPlugin {
176
170
  return true;
177
171
  }
178
172
  }
179
- exports.PuppeteerPlugin = PuppeteerPlugin;
180
173
  //# sourceMappingURL=puppeteer-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"puppeteer-plugin.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"puppeteer-plugin.js","sourceRoot":"","sources":["../../src/puppeteer/puppeteer-plugin.ts"],"names":[],"mappings":"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"}