@browserless.io/browserless 2.24.0-beta-4 → 2.24.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 (79) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/bin/browserless.js +1 -1
  3. package/build/browsers/browsers.playwright.d.ts +1 -0
  4. package/build/browsers/browsers.playwright.js +3 -0
  5. package/build/browsers/index.d.ts +2 -1
  6. package/build/browsers/index.js +28 -7
  7. package/build/http.d.ts +5 -0
  8. package/build/http.js +1 -0
  9. package/build/routes/chrome/http/content.post.body.json +35 -10
  10. package/build/routes/chrome/http/content.post.query.json +4 -0
  11. package/build/routes/chrome/http/download.post.query.json +4 -0
  12. package/build/routes/chrome/http/function.post.query.json +4 -0
  13. package/build/routes/chrome/http/pdf.post.body.json +35 -10
  14. package/build/routes/chrome/http/pdf.post.query.json +4 -0
  15. package/build/routes/chrome/http/performance.post.query.json +4 -0
  16. package/build/routes/chrome/http/scrape.post.body.json +35 -10
  17. package/build/routes/chrome/http/scrape.post.query.json +4 -0
  18. package/build/routes/chrome/http/scrape.post.response.json +26 -1
  19. package/build/routes/chrome/http/screenshot.post.body.json +35 -10
  20. package/build/routes/chrome/http/screenshot.post.query.json +4 -0
  21. package/build/routes/chrome/tests/kill-sessions.spec.d.ts +1 -0
  22. package/build/routes/chrome/tests/kill-sessions.spec.js +80 -0
  23. package/build/routes/chrome/ws/browser.query.json +4 -0
  24. package/build/routes/chrome/ws/cdp.query.json +4 -0
  25. package/build/routes/chrome/ws/page.query.json +4 -0
  26. package/build/routes/chrome/ws/playwright.query.json +4 -0
  27. package/build/routes/chromium/http/content.post.body.json +35 -10
  28. package/build/routes/chromium/http/content.post.query.json +4 -0
  29. package/build/routes/chromium/http/download.post.query.json +4 -0
  30. package/build/routes/chromium/http/function.post.query.json +4 -0
  31. package/build/routes/chromium/http/pdf.post.body.json +35 -10
  32. package/build/routes/chromium/http/pdf.post.query.json +4 -0
  33. package/build/routes/chromium/http/performance.post.query.json +4 -0
  34. package/build/routes/chromium/http/scrape.post.body.json +35 -10
  35. package/build/routes/chromium/http/scrape.post.query.json +4 -0
  36. package/build/routes/chromium/http/scrape.post.response.json +26 -1
  37. package/build/routes/chromium/http/screenshot.post.body.json +35 -10
  38. package/build/routes/chromium/http/screenshot.post.query.json +4 -0
  39. package/build/routes/chromium/tests/kill-sessions.spec.d.ts +1 -0
  40. package/build/routes/chromium/tests/kill-sessions.spec.js +80 -0
  41. package/build/routes/chromium/tests/websocket.spec.js +23 -0
  42. package/build/routes/chromium/ws/browser.query.json +4 -0
  43. package/build/routes/chromium/ws/cdp.query.json +4 -0
  44. package/build/routes/chromium/ws/page.query.json +4 -0
  45. package/build/routes/chromium/ws/playwright.query.json +4 -0
  46. package/build/routes/firefox/tests/kill-sessions.spec.d.ts +1 -0
  47. package/build/routes/firefox/tests/kill-sessions.spec.js +72 -0
  48. package/build/routes/firefox/ws/playwright.query.json +4 -0
  49. package/build/routes/management/http/kill.get.d.ts +21 -0
  50. package/build/routes/management/http/kill.get.js +19 -0
  51. package/build/routes/management/http/kill.get.query.json +193 -0
  52. package/build/routes/management/http/meta.get.js +3 -2
  53. package/build/routes/management/http/sessions.get.query.json +1 -0
  54. package/build/routes/management/tests/management.spec.js +12 -0
  55. package/build/routes/webkit/tests/kill-sessions.spec.d.ts +1 -0
  56. package/build/routes/webkit/tests/kill-sessions.spec.js +72 -0
  57. package/build/routes/webkit/ws/playwright.query.json +4 -0
  58. package/build/types.d.ts +2 -0
  59. package/build/types.js +1 -0
  60. package/build/utils.d.ts +1 -1
  61. package/build/utils.js +1 -10
  62. package/package.json +5 -5
  63. package/src/browsers/browsers.playwright.ts +3 -0
  64. package/src/browsers/index.ts +33 -12
  65. package/src/http.ts +6 -0
  66. package/src/routes/chrome/tests/kill-sessions.spec.ts +99 -0
  67. package/src/routes/chromium/tests/kill-sessions.spec.ts +99 -0
  68. package/src/routes/chromium/tests/websocket.spec.ts +29 -0
  69. package/src/routes/firefox/tests/kill-sessions.spec.ts +99 -0
  70. package/src/routes/management/http/kill.get.ts +40 -0
  71. package/src/routes/management/http/meta.get.ts +12 -10
  72. package/src/routes/management/tests/management.spec.ts +19 -0
  73. package/src/routes/webkit/tests/kill-sessions.spec.ts +99 -0
  74. package/src/types.ts +1 -0
  75. package/src/utils.ts +2 -11
  76. package/static/docs/swagger.json +384 -15
  77. package/static/docs/swagger.min.json +383 -14
  78. package/static/function/client.js +954 -845
  79. package/static/function/index.html +954 -845
@@ -1998,50 +1998,64 @@
1998
1998
  createDebug.namespaces = namespaces;
1999
1999
  createDebug.names = [];
2000
2000
  createDebug.skips = [];
2001
- let i;
2002
- const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
2003
- const len = split.length;
2004
- for (i = 0; i < len; i++) {
2005
- if (!split[i]) {
2006
- continue;
2001
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean);
2002
+ for (const ns of split) {
2003
+ if (ns[0] === "-") {
2004
+ createDebug.skips.push(ns.slice(1));
2005
+ } else {
2006
+ createDebug.names.push(ns);
2007
2007
  }
2008
- namespaces = split[i].replace(/\*/g, ".*?");
2009
- if (namespaces[0] === "-") {
2010
- createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
2008
+ }
2009
+ }
2010
+ function matchesTemplate(search, template) {
2011
+ let searchIndex = 0;
2012
+ let templateIndex = 0;
2013
+ let starIndex = -1;
2014
+ let matchIndex = 0;
2015
+ while (searchIndex < search.length) {
2016
+ if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
2017
+ if (template[templateIndex] === "*") {
2018
+ starIndex = templateIndex;
2019
+ matchIndex = searchIndex;
2020
+ templateIndex++;
2021
+ } else {
2022
+ searchIndex++;
2023
+ templateIndex++;
2024
+ }
2025
+ } else if (starIndex !== -1) {
2026
+ templateIndex = starIndex + 1;
2027
+ matchIndex++;
2028
+ searchIndex = matchIndex;
2011
2029
  } else {
2012
- createDebug.names.push(new RegExp("^" + namespaces + "$"));
2030
+ return false;
2013
2031
  }
2014
2032
  }
2033
+ while (templateIndex < template.length && template[templateIndex] === "*") {
2034
+ templateIndex++;
2035
+ }
2036
+ return templateIndex === template.length;
2015
2037
  }
2016
2038
  function disable() {
2017
2039
  const namespaces = [
2018
- ...createDebug.names.map(toNamespace),
2019
- ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
2040
+ ...createDebug.names,
2041
+ ...createDebug.skips.map((namespace) => "-" + namespace)
2020
2042
  ].join(",");
2021
2043
  createDebug.enable("");
2022
2044
  return namespaces;
2023
2045
  }
2024
2046
  function enabled(name) {
2025
- if (name[name.length - 1] === "*") {
2026
- return true;
2027
- }
2028
- let i;
2029
- let len;
2030
- for (i = 0, len = createDebug.skips.length; i < len; i++) {
2031
- if (createDebug.skips[i].test(name)) {
2047
+ for (const skip of createDebug.skips) {
2048
+ if (matchesTemplate(name, skip)) {
2032
2049
  return false;
2033
2050
  }
2034
2051
  }
2035
- for (i = 0, len = createDebug.names.length; i < len; i++) {
2036
- if (createDebug.names[i].test(name)) {
2052
+ for (const ns of createDebug.names) {
2053
+ if (matchesTemplate(name, ns)) {
2037
2054
  return true;
2038
2055
  }
2039
2056
  }
2040
2057
  return false;
2041
2058
  }
2042
- function toNamespace(regexp) {
2043
- return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
2044
- }
2045
2059
  function coerce(val) {
2046
2060
  if (val instanceof Error) {
2047
2061
  return val.stack || val.message;
@@ -4379,7 +4393,7 @@
4379
4393
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
4380
4394
  init_dirname();
4381
4395
  init_buffer2();
4382
- var packageVersion = "23.9.0";
4396
+ var packageVersion = "23.10.1";
4383
4397
 
4384
4398
  // node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
4385
4399
  init_dirname();
@@ -5236,6 +5250,39 @@
5236
5250
  return acc.concat(x);
5237
5251
  }, []);
5238
5252
  }
5253
+ /**
5254
+ * Returns all cookies in the default {@link BrowserContext}.
5255
+ *
5256
+ * @remarks
5257
+ *
5258
+ * Shortcut for
5259
+ * {@link BrowserContext.cookies | browser.defaultBrowserContext().cookies()}.
5260
+ */
5261
+ async cookies() {
5262
+ return await this.defaultBrowserContext().cookies();
5263
+ }
5264
+ /**
5265
+ * Sets cookies in the default {@link BrowserContext}.
5266
+ *
5267
+ * @remarks
5268
+ *
5269
+ * Shortcut for
5270
+ * {@link BrowserContext.setCookie | browser.defaultBrowserContext().setCookie()}.
5271
+ */
5272
+ async setCookie(...cookies) {
5273
+ return await this.defaultBrowserContext().setCookie(...cookies);
5274
+ }
5275
+ /**
5276
+ * Removes cookies from the default {@link BrowserContext}.
5277
+ *
5278
+ * @remarks
5279
+ *
5280
+ * Shortcut for
5281
+ * {@link BrowserContext.deleteCookie | browser.defaultBrowserContext().deleteCookie()}.
5282
+ */
5283
+ async deleteCookie(...cookies) {
5284
+ return await this.defaultBrowserContext().deleteCookie(...cookies);
5285
+ }
5239
5286
  /**
5240
5287
  * Whether Puppeteer is connected to this {@link Browser | browser}.
5241
5288
  *
@@ -5485,6 +5532,18 @@
5485
5532
  /* BrowserContextEvent.TargetChanged */
5486
5533
  ), from(this.targets())).pipe(filterAsync(predicate), raceWith(timeout(ms))));
5487
5534
  }
5535
+ /**
5536
+ * Removes cookie in the browser context
5537
+ * @param cookies - {@link Cookie | cookie} to remove
5538
+ */
5539
+ async deleteCookie(...cookies) {
5540
+ return await this.setCookie(...cookies.map((cookie) => {
5541
+ return {
5542
+ ...cookie,
5543
+ expires: 1
5544
+ };
5545
+ }));
5546
+ }
5488
5547
  /**
5489
5548
  * Whether this {@link BrowserContext | browser context} is closed.
5490
5549
  */
@@ -5507,7 +5566,51 @@
5507
5566
  }
5508
5567
  };
5509
5568
 
5510
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js
5569
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
5570
+ init_dirname();
5571
+ init_buffer2();
5572
+
5573
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js
5574
+ init_dirname();
5575
+ init_buffer2();
5576
+
5577
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js
5578
+ init_dirname();
5579
+ init_buffer2();
5580
+ var DEFAULT_TIMEOUT = 3e4;
5581
+ var TimeoutSettings = class {
5582
+ #defaultTimeout;
5583
+ #defaultNavigationTimeout;
5584
+ constructor() {
5585
+ this.#defaultTimeout = null;
5586
+ this.#defaultNavigationTimeout = null;
5587
+ }
5588
+ setDefaultTimeout(timeout2) {
5589
+ this.#defaultTimeout = timeout2;
5590
+ }
5591
+ setDefaultNavigationTimeout(timeout2) {
5592
+ this.#defaultNavigationTimeout = timeout2;
5593
+ }
5594
+ navigationTimeout() {
5595
+ if (this.#defaultNavigationTimeout !== null) {
5596
+ return this.#defaultNavigationTimeout;
5597
+ }
5598
+ if (this.#defaultTimeout !== null) {
5599
+ return this.#defaultTimeout;
5600
+ }
5601
+ return DEFAULT_TIMEOUT;
5602
+ }
5603
+ timeout() {
5604
+ if (this.#defaultTimeout !== null) {
5605
+ return this.#defaultTimeout;
5606
+ }
5607
+ return DEFAULT_TIMEOUT;
5608
+ }
5609
+ };
5610
+
5611
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js
5612
+ init_dirname();
5613
+ init_buffer2();
5511
5614
  var __addDisposableResource = function(env, value, async2) {
5512
5615
  if (value !== null && value !== void 0) {
5513
5616
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
@@ -5566,405 +5669,107 @@
5566
5669
  var e = new Error(message);
5567
5670
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
5568
5671
  });
5569
- var CdpBrowserContext = class extends BrowserContext {
5570
- #connection;
5571
- #browser;
5572
- #id;
5573
- constructor(connection, browser, contextId) {
5574
- super();
5575
- this.#connection = connection;
5576
- this.#browser = browser;
5577
- this.#id = contextId;
5578
- }
5579
- get id() {
5580
- return this.#id;
5581
- }
5582
- targets() {
5583
- return this.#browser.targets().filter((target) => {
5584
- return target.browserContext() === this;
5585
- });
5586
- }
5587
- async pages() {
5588
- const pages = await Promise.all(this.targets().filter((target) => {
5589
- return target.type() === "page" || target.type() === "other" && this.#browser._getIsPageTargetCallback()?.(target);
5590
- }).map((target) => {
5591
- return target.page();
5592
- }));
5593
- return pages.filter((page) => {
5594
- return !!page;
5595
- });
5672
+ var instances = /* @__PURE__ */ new WeakSet();
5673
+ function moveable(Class, _) {
5674
+ let hasDispose = false;
5675
+ if (Class.prototype[disposeSymbol]) {
5676
+ const dispose = Class.prototype[disposeSymbol];
5677
+ Class.prototype[disposeSymbol] = function() {
5678
+ if (instances.has(this)) {
5679
+ instances.delete(this);
5680
+ return;
5681
+ }
5682
+ return dispose.call(this);
5683
+ };
5684
+ hasDispose = true;
5596
5685
  }
5597
- async overridePermissions(origin, permissions) {
5598
- const protocolPermissions = permissions.map((permission) => {
5599
- const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission);
5600
- if (!protocolPermission) {
5601
- throw new Error("Unknown permission: " + permission);
5686
+ if (Class.prototype[asyncDisposeSymbol]) {
5687
+ const asyncDispose = Class.prototype[asyncDisposeSymbol];
5688
+ Class.prototype[asyncDisposeSymbol] = function() {
5689
+ if (instances.has(this)) {
5690
+ instances.delete(this);
5691
+ return;
5602
5692
  }
5603
- return protocolPermission;
5604
- });
5605
- await this.#connection.send("Browser.grantPermissions", {
5606
- origin,
5607
- browserContextId: this.#id || void 0,
5608
- permissions: protocolPermissions
5609
- });
5693
+ return asyncDispose.call(this);
5694
+ };
5695
+ hasDispose = true;
5610
5696
  }
5611
- async clearPermissionOverrides() {
5612
- await this.#connection.send("Browser.resetPermissions", {
5613
- browserContextId: this.#id || void 0
5614
- });
5697
+ if (hasDispose) {
5698
+ Class.prototype.move = function() {
5699
+ instances.add(this);
5700
+ return this;
5701
+ };
5615
5702
  }
5616
- async newPage() {
5617
- const env_1 = { stack: [], error: void 0, hasError: false };
5618
- try {
5619
- const _guard = __addDisposableResource(env_1, await this.waitForScreenshotOperations(), false);
5620
- return await this.#browser._createPageInContext(this.#id);
5621
- } catch (e_1) {
5622
- env_1.error = e_1;
5623
- env_1.hasError = true;
5624
- } finally {
5625
- __disposeResources(env_1);
5703
+ return Class;
5704
+ }
5705
+ function throwIfDisposed(message = (value) => {
5706
+ return `Attempted to use disposed ${value.constructor.name}.`;
5707
+ }) {
5708
+ return (target, _) => {
5709
+ return function(...args) {
5710
+ if (this.disposed) {
5711
+ throw new Error(message(this));
5712
+ }
5713
+ return target.call(this, ...args);
5714
+ };
5715
+ };
5716
+ }
5717
+ function invokeAtMostOnceForArguments(target, _) {
5718
+ const cache = /* @__PURE__ */ new WeakMap();
5719
+ let cacheDepth = -1;
5720
+ return function(...args) {
5721
+ if (cacheDepth === -1) {
5722
+ cacheDepth = args.length;
5626
5723
  }
5627
- }
5628
- browser() {
5629
- return this.#browser;
5630
- }
5631
- async close() {
5632
- assert(this.#id, "Default BrowserContext cannot be closed!");
5633
- await this.#browser._disposeContext(this.#id);
5634
- }
5635
- async setDownloadBehavior(downloadBehavior) {
5636
- await this.#connection.send("Browser.setDownloadBehavior", {
5637
- behavior: downloadBehavior.policy,
5638
- downloadPath: downloadBehavior.downloadPath,
5639
- browserContextId: this.#id
5640
- });
5641
- }
5642
- };
5643
-
5644
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
5645
- init_dirname();
5646
- init_buffer2();
5647
-
5648
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
5649
- init_dirname();
5650
- init_buffer2();
5724
+ if (cacheDepth !== args.length) {
5725
+ throw new Error("Memoized method was called with the wrong number of arguments");
5726
+ }
5727
+ let freshArguments = false;
5728
+ let cacheIterator = cache;
5729
+ for (const arg of args) {
5730
+ if (cacheIterator.has(arg)) {
5731
+ cacheIterator = cacheIterator.get(arg);
5732
+ } else {
5733
+ freshArguments = true;
5734
+ cacheIterator.set(arg, /* @__PURE__ */ new WeakMap());
5735
+ cacheIterator = cacheIterator.get(arg);
5736
+ }
5737
+ }
5738
+ if (!freshArguments) {
5739
+ return;
5740
+ }
5741
+ return target.call(this, ...args);
5742
+ };
5743
+ }
5744
+ function guarded(getKey = function() {
5745
+ return this;
5746
+ }) {
5747
+ return (target, _) => {
5748
+ const mutexes = /* @__PURE__ */ new WeakMap();
5749
+ return async function(...args) {
5750
+ const env_1 = { stack: [], error: void 0, hasError: false };
5751
+ try {
5752
+ const key = getKey.call(this);
5753
+ let mutex = mutexes.get(key);
5754
+ if (!mutex) {
5755
+ mutex = new Mutex();
5756
+ mutexes.set(key, mutex);
5757
+ }
5758
+ const _2 = __addDisposableResource(env_1, await mutex.acquire(), true);
5759
+ return await target.call(this, ...args);
5760
+ } catch (e_1) {
5761
+ env_1.error = e_1;
5762
+ env_1.hasError = true;
5763
+ } finally {
5764
+ const result_1 = __disposeResources(env_1);
5765
+ if (result_1)
5766
+ await result_1;
5767
+ }
5768
+ };
5769
+ };
5770
+ }
5651
5771
 
5652
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/Target.js
5653
- init_dirname();
5654
- init_buffer2();
5655
- var TargetType;
5656
- (function(TargetType2) {
5657
- TargetType2["PAGE"] = "page";
5658
- TargetType2["BACKGROUND_PAGE"] = "background_page";
5659
- TargetType2["SERVICE_WORKER"] = "service_worker";
5660
- TargetType2["SHARED_WORKER"] = "shared_worker";
5661
- TargetType2["BROWSER"] = "browser";
5662
- TargetType2["WEBVIEW"] = "webview";
5663
- TargetType2["OTHER"] = "other";
5664
- TargetType2["TAB"] = "tab";
5665
- })(TargetType || (TargetType = {}));
5666
- var Target = class {
5667
- /**
5668
- * @internal
5669
- */
5670
- constructor() {
5671
- }
5672
- /**
5673
- * If the target is not of type `"service_worker"` or `"shared_worker"`, returns `null`.
5674
- */
5675
- async worker() {
5676
- return null;
5677
- }
5678
- /**
5679
- * If the target is not of type `"page"`, `"webview"` or `"background_page"`,
5680
- * returns `null`.
5681
- */
5682
- async page() {
5683
- return null;
5684
- }
5685
- };
5686
-
5687
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
5688
- init_dirname();
5689
- init_buffer2();
5690
-
5691
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
5692
- init_dirname();
5693
- init_buffer2();
5694
-
5695
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js
5696
- init_dirname();
5697
- init_buffer2();
5698
- function isErrorLike(obj) {
5699
- return typeof obj === "object" && obj !== null && "name" in obj && "message" in obj;
5700
- }
5701
- function rewriteError(error, message, originalMessage) {
5702
- error.message = message;
5703
- error.originalMessage = originalMessage ?? error.originalMessage;
5704
- return error;
5705
- }
5706
- function createProtocolErrorMessage(object) {
5707
- let message = object.error.message;
5708
- if (object.error && typeof object.error === "object" && "data" in object.error) {
5709
- message += ` ${object.error.data}`;
5710
- }
5711
- return message;
5712
- }
5713
-
5714
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js
5715
- init_dirname();
5716
- init_buffer2();
5717
- function createIncrementalIdGenerator() {
5718
- let id = 0;
5719
- return () => {
5720
- return ++id;
5721
- };
5722
- }
5723
-
5724
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
5725
- var CallbackRegistry = class {
5726
- #callbacks = /* @__PURE__ */ new Map();
5727
- #idGenerator = createIncrementalIdGenerator();
5728
- create(label, timeout2, request) {
5729
- const callback = new Callback(this.#idGenerator(), label, timeout2);
5730
- this.#callbacks.set(callback.id, callback);
5731
- try {
5732
- request(callback.id);
5733
- } catch (error) {
5734
- callback.promise.catch(debugError).finally(() => {
5735
- this.#callbacks.delete(callback.id);
5736
- });
5737
- callback.reject(error);
5738
- throw error;
5739
- }
5740
- return callback.promise.finally(() => {
5741
- this.#callbacks.delete(callback.id);
5742
- });
5743
- }
5744
- reject(id, message, originalMessage) {
5745
- const callback = this.#callbacks.get(id);
5746
- if (!callback) {
5747
- return;
5748
- }
5749
- this._reject(callback, message, originalMessage);
5750
- }
5751
- _reject(callback, errorMessage, originalMessage) {
5752
- let error;
5753
- let message;
5754
- if (errorMessage instanceof ProtocolError) {
5755
- error = errorMessage;
5756
- error.cause = callback.error;
5757
- message = errorMessage.message;
5758
- } else {
5759
- error = callback.error;
5760
- message = errorMessage;
5761
- }
5762
- callback.reject(rewriteError(error, `Protocol error (${callback.label}): ${message}`, originalMessage));
5763
- }
5764
- resolve(id, value) {
5765
- const callback = this.#callbacks.get(id);
5766
- if (!callback) {
5767
- return;
5768
- }
5769
- callback.resolve(value);
5770
- }
5771
- clear() {
5772
- for (const callback of this.#callbacks.values()) {
5773
- this._reject(callback, new TargetCloseError("Target closed"));
5774
- }
5775
- this.#callbacks.clear();
5776
- }
5777
- /**
5778
- * @internal
5779
- */
5780
- getPendingProtocolErrors() {
5781
- const result = [];
5782
- for (const callback of this.#callbacks.values()) {
5783
- result.push(new Error(`${callback.label} timed out. Trace: ${callback.error.stack}`));
5784
- }
5785
- return result;
5786
- }
5787
- };
5788
- var Callback = class {
5789
- #id;
5790
- #error = new ProtocolError();
5791
- #deferred = Deferred.create();
5792
- #timer;
5793
- #label;
5794
- constructor(id, label, timeout2) {
5795
- this.#id = id;
5796
- this.#label = label;
5797
- if (timeout2) {
5798
- this.#timer = setTimeout(() => {
5799
- this.#deferred.reject(rewriteError(this.#error, `${label} timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.`));
5800
- }, timeout2);
5801
- }
5802
- }
5803
- resolve(value) {
5804
- clearTimeout(this.#timer);
5805
- this.#deferred.resolve(value);
5806
- }
5807
- reject(error) {
5808
- clearTimeout(this.#timer);
5809
- this.#deferred.reject(error);
5810
- }
5811
- get id() {
5812
- return this.#id;
5813
- }
5814
- get promise() {
5815
- return this.#deferred.valueOrThrow();
5816
- }
5817
- get error() {
5818
- return this.#error;
5819
- }
5820
- get label() {
5821
- return this.#label;
5822
- }
5823
- };
5824
-
5825
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
5826
- var CdpCDPSession = class extends CDPSession {
5827
- #sessionId;
5828
- #targetType;
5829
- #callbacks = new CallbackRegistry();
5830
- #connection;
5831
- #parentSessionId;
5832
- #target;
5833
- /**
5834
- * @internal
5835
- */
5836
- constructor(connection, targetType, sessionId, parentSessionId) {
5837
- super();
5838
- this.#connection = connection;
5839
- this.#targetType = targetType;
5840
- this.#sessionId = sessionId;
5841
- this.#parentSessionId = parentSessionId;
5842
- }
5843
- /**
5844
- * Sets the {@link CdpTarget} associated with the session instance.
5845
- *
5846
- * @internal
5847
- */
5848
- _setTarget(target) {
5849
- this.#target = target;
5850
- }
5851
- /**
5852
- * Gets the {@link CdpTarget} associated with the session instance.
5853
- *
5854
- * @internal
5855
- */
5856
- _target() {
5857
- assert(this.#target, "Target must exist");
5858
- return this.#target;
5859
- }
5860
- connection() {
5861
- return this.#connection;
5862
- }
5863
- parentSession() {
5864
- if (!this.#parentSessionId) {
5865
- return this;
5866
- }
5867
- const parent = this.#connection?.session(this.#parentSessionId);
5868
- return parent ?? void 0;
5869
- }
5870
- send(method, params, options) {
5871
- if (!this.#connection) {
5872
- return Promise.reject(new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${this.#targetType} has been closed.`));
5873
- }
5874
- return this.#connection._rawSend(this.#callbacks, method, params, this.#sessionId, options);
5875
- }
5876
- /**
5877
- * @internal
5878
- */
5879
- _onMessage(object) {
5880
- if (object.id) {
5881
- if (object.error) {
5882
- this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
5883
- } else {
5884
- this.#callbacks.resolve(object.id, object.result);
5885
- }
5886
- } else {
5887
- assert(!object.id);
5888
- this.emit(object.method, object.params);
5889
- }
5890
- }
5891
- /**
5892
- * Detaches the cdpSession from the target. Once detached, the cdpSession object
5893
- * won't emit any events and can't be used to send messages.
5894
- */
5895
- async detach() {
5896
- if (!this.#connection) {
5897
- throw new Error(`Session already detached. Most likely the ${this.#targetType} has been closed.`);
5898
- }
5899
- await this.#connection.send("Target.detachFromTarget", {
5900
- sessionId: this.#sessionId
5901
- });
5902
- }
5903
- /**
5904
- * @internal
5905
- */
5906
- _onClosed() {
5907
- this.#callbacks.clear();
5908
- this.#connection = void 0;
5909
- this.emit(CDPSessionEvent.Disconnected, void 0);
5910
- }
5911
- /**
5912
- * Returns the session's id.
5913
- */
5914
- id() {
5915
- return this.#sessionId;
5916
- }
5917
- /**
5918
- * @internal
5919
- */
5920
- getPendingProtocolErrors() {
5921
- return this.#callbacks.getPendingProtocolErrors();
5922
- }
5923
- };
5924
-
5925
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
5926
- init_dirname();
5927
- init_buffer2();
5928
-
5929
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js
5930
- init_dirname();
5931
- init_buffer2();
5932
-
5933
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js
5934
- init_dirname();
5935
- init_buffer2();
5936
- var DEFAULT_TIMEOUT = 3e4;
5937
- var TimeoutSettings = class {
5938
- #defaultTimeout;
5939
- #defaultNavigationTimeout;
5940
- constructor() {
5941
- this.#defaultTimeout = null;
5942
- this.#defaultNavigationTimeout = null;
5943
- }
5944
- setDefaultTimeout(timeout2) {
5945
- this.#defaultTimeout = timeout2;
5946
- }
5947
- setDefaultNavigationTimeout(timeout2) {
5948
- this.#defaultNavigationTimeout = timeout2;
5949
- }
5950
- navigationTimeout() {
5951
- if (this.#defaultNavigationTimeout !== null) {
5952
- return this.#defaultNavigationTimeout;
5953
- }
5954
- if (this.#defaultTimeout !== null) {
5955
- return this.#defaultTimeout;
5956
- }
5957
- return DEFAULT_TIMEOUT;
5958
- }
5959
- timeout() {
5960
- if (this.#defaultTimeout !== null) {
5961
- return this.#defaultTimeout;
5962
- }
5963
- return DEFAULT_TIMEOUT;
5964
- }
5965
- };
5966
-
5967
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js
5772
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/locators/locators.js
5968
5773
  init_dirname();
5969
5774
  init_buffer2();
5970
5775
  var __addDisposableResource2 = function(env, value, async2) {
@@ -6025,167 +5830,6 @@
6025
5830
  var e = new Error(message);
6026
5831
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
6027
5832
  });
6028
- var instances = /* @__PURE__ */ new WeakSet();
6029
- function moveable(Class, _) {
6030
- let hasDispose = false;
6031
- if (Class.prototype[disposeSymbol]) {
6032
- const dispose = Class.prototype[disposeSymbol];
6033
- Class.prototype[disposeSymbol] = function() {
6034
- if (instances.has(this)) {
6035
- instances.delete(this);
6036
- return;
6037
- }
6038
- return dispose.call(this);
6039
- };
6040
- hasDispose = true;
6041
- }
6042
- if (Class.prototype[asyncDisposeSymbol]) {
6043
- const asyncDispose = Class.prototype[asyncDisposeSymbol];
6044
- Class.prototype[asyncDisposeSymbol] = function() {
6045
- if (instances.has(this)) {
6046
- instances.delete(this);
6047
- return;
6048
- }
6049
- return asyncDispose.call(this);
6050
- };
6051
- hasDispose = true;
6052
- }
6053
- if (hasDispose) {
6054
- Class.prototype.move = function() {
6055
- instances.add(this);
6056
- return this;
6057
- };
6058
- }
6059
- return Class;
6060
- }
6061
- function throwIfDisposed(message = (value) => {
6062
- return `Attempted to use disposed ${value.constructor.name}.`;
6063
- }) {
6064
- return (target, _) => {
6065
- return function(...args) {
6066
- if (this.disposed) {
6067
- throw new Error(message(this));
6068
- }
6069
- return target.call(this, ...args);
6070
- };
6071
- };
6072
- }
6073
- function invokeAtMostOnceForArguments(target, _) {
6074
- const cache = /* @__PURE__ */ new WeakMap();
6075
- let cacheDepth = -1;
6076
- return function(...args) {
6077
- if (cacheDepth === -1) {
6078
- cacheDepth = args.length;
6079
- }
6080
- if (cacheDepth !== args.length) {
6081
- throw new Error("Memoized method was called with the wrong number of arguments");
6082
- }
6083
- let freshArguments = false;
6084
- let cacheIterator = cache;
6085
- for (const arg of args) {
6086
- if (cacheIterator.has(arg)) {
6087
- cacheIterator = cacheIterator.get(arg);
6088
- } else {
6089
- freshArguments = true;
6090
- cacheIterator.set(arg, /* @__PURE__ */ new WeakMap());
6091
- cacheIterator = cacheIterator.get(arg);
6092
- }
6093
- }
6094
- if (!freshArguments) {
6095
- return;
6096
- }
6097
- return target.call(this, ...args);
6098
- };
6099
- }
6100
- function guarded(getKey = function() {
6101
- return this;
6102
- }) {
6103
- return (target, _) => {
6104
- const mutexes = /* @__PURE__ */ new WeakMap();
6105
- return async function(...args) {
6106
- const env_1 = { stack: [], error: void 0, hasError: false };
6107
- try {
6108
- const key = getKey.call(this);
6109
- let mutex = mutexes.get(key);
6110
- if (!mutex) {
6111
- mutex = new Mutex();
6112
- mutexes.set(key, mutex);
6113
- }
6114
- const _2 = __addDisposableResource2(env_1, await mutex.acquire(), true);
6115
- return await target.call(this, ...args);
6116
- } catch (e_1) {
6117
- env_1.error = e_1;
6118
- env_1.hasError = true;
6119
- } finally {
6120
- const result_1 = __disposeResources2(env_1);
6121
- if (result_1)
6122
- await result_1;
6123
- }
6124
- };
6125
- };
6126
- }
6127
-
6128
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/locators/locators.js
6129
- init_dirname();
6130
- init_buffer2();
6131
- var __addDisposableResource3 = function(env, value, async2) {
6132
- if (value !== null && value !== void 0) {
6133
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
6134
- var dispose, inner;
6135
- if (async2) {
6136
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
6137
- dispose = value[Symbol.asyncDispose];
6138
- }
6139
- if (dispose === void 0) {
6140
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
6141
- dispose = value[Symbol.dispose];
6142
- if (async2) inner = dispose;
6143
- }
6144
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
6145
- if (inner) dispose = function() {
6146
- try {
6147
- inner.call(this);
6148
- } catch (e) {
6149
- return Promise.reject(e);
6150
- }
6151
- };
6152
- env.stack.push({ value, dispose, async: async2 });
6153
- } else if (async2) {
6154
- env.stack.push({ async: true });
6155
- }
6156
- return value;
6157
- };
6158
- var __disposeResources3 = /* @__PURE__ */ function(SuppressedError2) {
6159
- return function(env) {
6160
- function fail(e) {
6161
- env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
6162
- env.hasError = true;
6163
- }
6164
- var r, s = 0;
6165
- function next() {
6166
- while (r = env.stack.pop()) {
6167
- try {
6168
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
6169
- if (r.dispose) {
6170
- var result = r.dispose.call(r.value);
6171
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
6172
- fail(e);
6173
- return next();
6174
- });
6175
- } else s |= 1;
6176
- } catch (e) {
6177
- fail(e);
6178
- }
6179
- }
6180
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
6181
- if (env.hasError) throw env.error;
6182
- }
6183
- return next();
6184
- };
6185
- }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
6186
- var e = new Error(message);
6187
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
6188
- });
6189
5833
  var LocatorEvent;
6190
5834
  (function(LocatorEvent2) {
6191
5835
  LocatorEvent2["Action"] = "action";
@@ -6544,13 +6188,13 @@
6544
6188
  async wait(options) {
6545
6189
  const env_1 = { stack: [], error: void 0, hasError: false };
6546
6190
  try {
6547
- const handle = __addDisposableResource3(env_1, await this.waitHandle(options), false);
6191
+ const handle = __addDisposableResource2(env_1, await this.waitHandle(options), false);
6548
6192
  return await handle.jsonValue();
6549
6193
  } catch (e_1) {
6550
6194
  env_1.error = e_1;
6551
6195
  env_1.hasError = true;
6552
6196
  } finally {
6553
- __disposeResources3(env_1);
6197
+ __disposeResources2(env_1);
6554
6198
  }
6555
6199
  }
6556
6200
  /**
@@ -6837,7 +6481,7 @@
6837
6481
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
6838
6482
  done = true;
6839
6483
  };
6840
- var __addDisposableResource4 = function(env, value, async2) {
6484
+ var __addDisposableResource3 = function(env, value, async2) {
6841
6485
  if (value !== null && value !== void 0) {
6842
6486
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
6843
6487
  var dispose, inner;
@@ -6864,7 +6508,7 @@
6864
6508
  }
6865
6509
  return value;
6866
6510
  };
6867
- var __disposeResources4 = /* @__PURE__ */ function(SuppressedError2) {
6511
+ var __disposeResources3 = /* @__PURE__ */ function(SuppressedError2) {
6868
6512
  return function(env) {
6869
6513
  function fail(e) {
6870
6514
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -7736,7 +7380,7 @@
7736
7380
  const env_1 = { stack: [], error: void 0, hasError: false };
7737
7381
  try {
7738
7382
  const viewport = this.viewport();
7739
- const stack = __addDisposableResource4(env_1, new DisposableStack(), false);
7383
+ const stack = __addDisposableResource3(env_1, new DisposableStack(), false);
7740
7384
  if (viewport && viewport.deviceScaleFactor !== 0) {
7741
7385
  await this.setViewport({ ...viewport, deviceScaleFactor: 0 });
7742
7386
  stack.defer(() => {
@@ -7754,14 +7398,13 @@
7754
7398
  env_1.error = e_1;
7755
7399
  env_1.hasError = true;
7756
7400
  } finally {
7757
- __disposeResources4(env_1);
7401
+ __disposeResources3(env_1);
7758
7402
  }
7759
7403
  }
7760
7404
  async screenshot(userOptions = {}) {
7761
7405
  const env_2 = { stack: [], error: void 0, hasError: false };
7762
7406
  try {
7763
- const _guard = __addDisposableResource4(env_2, await this.browserContext().startScreenshot(), false);
7764
- await this.bringToFront();
7407
+ const _guard = __addDisposableResource3(env_2, await this.browserContext().startScreenshot(), false);
7765
7408
  const options = {
7766
7409
  ...userOptions,
7767
7410
  clip: userOptions.clip ? {
@@ -7801,7 +7444,7 @@
7801
7444
  }
7802
7445
  }
7803
7446
  setDefaultScreenshotOptions(options);
7804
- const stack = __addDisposableResource4(env_2, new AsyncDisposableStack(), true);
7447
+ const stack = __addDisposableResource3(env_2, new AsyncDisposableStack(), true);
7805
7448
  if (options.clip) {
7806
7449
  if (options.fullPage) {
7807
7450
  throw new Error("'clip' and 'fullPage' are mutually exclusive");
@@ -7841,7 +7484,7 @@
7841
7484
  env_2.error = e_2;
7842
7485
  env_2.hasError = true;
7843
7486
  } finally {
7844
- const result_1 = __disposeResources4(env_2);
7487
+ const result_1 = __disposeResources3(env_2);
7845
7488
  if (result_1)
7846
7489
  await result_1;
7847
7490
  }
@@ -8334,19 +7977,38 @@
8334
7977
  element.dispatchEvent(new Event("cancel", { bubbles: true }));
8335
7978
  });
8336
7979
  }
8337
- };
8338
-
8339
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js
8340
- init_dirname();
8341
- init_buffer2();
8342
- var NetworkManagerEvent;
8343
- (function(NetworkManagerEvent2) {
8344
- NetworkManagerEvent2.Request = Symbol("NetworkManager.Request");
8345
- NetworkManagerEvent2.RequestServedFromCache = Symbol("NetworkManager.RequestServedFromCache");
8346
- NetworkManagerEvent2.Response = Symbol("NetworkManager.Response");
8347
- NetworkManagerEvent2.RequestFailed = Symbol("NetworkManager.RequestFailed");
8348
- NetworkManagerEvent2.RequestFinished = Symbol("NetworkManager.RequestFinished");
8349
- })(NetworkManagerEvent || (NetworkManagerEvent = {}));
7980
+ };
7981
+
7982
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js
7983
+ init_dirname();
7984
+ init_buffer2();
7985
+ var NetworkManagerEvent;
7986
+ (function(NetworkManagerEvent2) {
7987
+ NetworkManagerEvent2.Request = Symbol("NetworkManager.Request");
7988
+ NetworkManagerEvent2.RequestServedFromCache = Symbol("NetworkManager.RequestServedFromCache");
7989
+ NetworkManagerEvent2.Response = Symbol("NetworkManager.Response");
7990
+ NetworkManagerEvent2.RequestFailed = Symbol("NetworkManager.RequestFailed");
7991
+ NetworkManagerEvent2.RequestFinished = Symbol("NetworkManager.RequestFinished");
7992
+ })(NetworkManagerEvent || (NetworkManagerEvent = {}));
7993
+
7994
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js
7995
+ init_dirname();
7996
+ init_buffer2();
7997
+ function isErrorLike(obj) {
7998
+ return typeof obj === "object" && obj !== null && "name" in obj && "message" in obj;
7999
+ }
8000
+ function rewriteError(error, message, originalMessage) {
8001
+ error.message = message;
8002
+ error.originalMessage = originalMessage ?? error.originalMessage;
8003
+ return error;
8004
+ }
8005
+ function createProtocolErrorMessage(object) {
8006
+ let message = object.error.message;
8007
+ if (object.error && typeof object.error === "object" && "data" in object.error) {
8008
+ message += ` ${object.error.data}`;
8009
+ }
8010
+ return message;
8011
+ }
8350
8012
 
8351
8013
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Binding.js
8352
8014
  init_dirname();
@@ -8394,7 +8056,7 @@
8394
8056
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
8395
8057
  done = true;
8396
8058
  };
8397
- var __addDisposableResource5 = function(env, value, async2) {
8059
+ var __addDisposableResource4 = function(env, value, async2) {
8398
8060
  if (value !== null && value !== void 0) {
8399
8061
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
8400
8062
  var dispose, inner;
@@ -8421,7 +8083,7 @@
8421
8083
  }
8422
8084
  return value;
8423
8085
  };
8424
- var __disposeResources5 = /* @__PURE__ */ function(SuppressedError2) {
8086
+ var __disposeResources4 = /* @__PURE__ */ function(SuppressedError2) {
8425
8087
  return function(env) {
8426
8088
  function fail(e) {
8427
8089
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -8538,7 +8200,7 @@
8538
8200
  for (const [key, value] of Object.entries(propertyNames)) {
8539
8201
  const env_1 = { stack: [], error: void 0, hasError: false };
8540
8202
  try {
8541
- const handle = __addDisposableResource5(env_1, results[key], false);
8203
+ const handle = __addDisposableResource4(env_1, results[key], false);
8542
8204
  if (handle) {
8543
8205
  map2.set(value, handle.move());
8544
8206
  }
@@ -8546,7 +8208,7 @@
8546
8208
  env_1.error = e_1;
8547
8209
  env_1.hasError = true;
8548
8210
  } finally {
8549
- __disposeResources5(env_1);
8211
+ __disposeResources4(env_1);
8550
8212
  }
8551
8213
  }
8552
8214
  return map2;
@@ -8564,7 +8226,7 @@
8564
8226
  })();
8565
8227
 
8566
8228
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Binding.js
8567
- var __addDisposableResource6 = function(env, value, async2) {
8229
+ var __addDisposableResource5 = function(env, value, async2) {
8568
8230
  if (value !== null && value !== void 0) {
8569
8231
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
8570
8232
  var dispose, inner;
@@ -8589,119 +8251,351 @@
8589
8251
  } else if (async2) {
8590
8252
  env.stack.push({ async: true });
8591
8253
  }
8592
- return value;
8254
+ return value;
8255
+ };
8256
+ var __disposeResources5 = /* @__PURE__ */ function(SuppressedError2) {
8257
+ return function(env) {
8258
+ function fail(e) {
8259
+ env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
8260
+ env.hasError = true;
8261
+ }
8262
+ var r, s = 0;
8263
+ function next() {
8264
+ while (r = env.stack.pop()) {
8265
+ try {
8266
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
8267
+ if (r.dispose) {
8268
+ var result = r.dispose.call(r.value);
8269
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
8270
+ fail(e);
8271
+ return next();
8272
+ });
8273
+ } else s |= 1;
8274
+ } catch (e) {
8275
+ fail(e);
8276
+ }
8277
+ }
8278
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
8279
+ if (env.hasError) throw env.error;
8280
+ }
8281
+ return next();
8282
+ };
8283
+ }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
8284
+ var e = new Error(message);
8285
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
8286
+ });
8287
+ var Binding = class {
8288
+ #name;
8289
+ #fn;
8290
+ #initSource;
8291
+ constructor(name, fn, initSource) {
8292
+ this.#name = name;
8293
+ this.#fn = fn;
8294
+ this.#initSource = initSource;
8295
+ }
8296
+ get name() {
8297
+ return this.#name;
8298
+ }
8299
+ get initSource() {
8300
+ return this.#initSource;
8301
+ }
8302
+ /**
8303
+ * @param context - Context to run the binding in; the context should have
8304
+ * the binding added to it beforehand.
8305
+ * @param id - ID of the call. This should come from the CDP
8306
+ * `onBindingCalled` response.
8307
+ * @param args - Plain arguments from CDP.
8308
+ */
8309
+ async run(context2, id, args, isTrivial) {
8310
+ const stack = new DisposableStack();
8311
+ try {
8312
+ if (!isTrivial) {
8313
+ const env_1 = { stack: [], error: void 0, hasError: false };
8314
+ try {
8315
+ const handles = __addDisposableResource5(env_1, await context2.evaluateHandle((name, seq) => {
8316
+ return globalThis[name].args.get(seq);
8317
+ }, this.#name, id), false);
8318
+ const properties = await handles.getProperties();
8319
+ for (const [index, handle] of properties) {
8320
+ if (index in args) {
8321
+ switch (handle.remoteObject().subtype) {
8322
+ case "node":
8323
+ args[+index] = handle;
8324
+ break;
8325
+ default:
8326
+ stack.use(handle);
8327
+ }
8328
+ } else {
8329
+ stack.use(handle);
8330
+ }
8331
+ }
8332
+ } catch (e_1) {
8333
+ env_1.error = e_1;
8334
+ env_1.hasError = true;
8335
+ } finally {
8336
+ __disposeResources5(env_1);
8337
+ }
8338
+ }
8339
+ await context2.evaluate((name, seq, result) => {
8340
+ const callbacks = globalThis[name].callbacks;
8341
+ callbacks.get(seq).resolve(result);
8342
+ callbacks.delete(seq);
8343
+ }, this.#name, id, await this.#fn(...args));
8344
+ for (const arg of args) {
8345
+ if (arg instanceof JSHandle) {
8346
+ stack.use(arg);
8347
+ }
8348
+ }
8349
+ } catch (error) {
8350
+ if (isErrorLike(error)) {
8351
+ await context2.evaluate((name, seq, message, stack2) => {
8352
+ const error2 = new Error(message);
8353
+ error2.stack = stack2;
8354
+ const callbacks = globalThis[name].callbacks;
8355
+ callbacks.get(seq).reject(error2);
8356
+ callbacks.delete(seq);
8357
+ }, this.#name, id, error.message, error.stack).catch(debugError);
8358
+ } else {
8359
+ await context2.evaluate((name, seq, error2) => {
8360
+ const callbacks = globalThis[name].callbacks;
8361
+ callbacks.get(seq).reject(error2);
8362
+ callbacks.delete(seq);
8363
+ }, this.#name, id, error).catch(debugError);
8364
+ }
8365
+ }
8366
+ }
8367
+ };
8368
+
8369
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8370
+ init_dirname();
8371
+ init_buffer2();
8372
+
8373
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
8374
+ init_dirname();
8375
+ init_buffer2();
8376
+
8377
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js
8378
+ init_dirname();
8379
+ init_buffer2();
8380
+ function createIncrementalIdGenerator() {
8381
+ let id = 0;
8382
+ return () => {
8383
+ return ++id;
8384
+ };
8385
+ }
8386
+
8387
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
8388
+ var CallbackRegistry = class {
8389
+ #callbacks = /* @__PURE__ */ new Map();
8390
+ #idGenerator = createIncrementalIdGenerator();
8391
+ create(label, timeout2, request) {
8392
+ const callback = new Callback(this.#idGenerator(), label, timeout2);
8393
+ this.#callbacks.set(callback.id, callback);
8394
+ try {
8395
+ request(callback.id);
8396
+ } catch (error) {
8397
+ callback.promise.catch(debugError).finally(() => {
8398
+ this.#callbacks.delete(callback.id);
8399
+ });
8400
+ callback.reject(error);
8401
+ throw error;
8402
+ }
8403
+ return callback.promise.finally(() => {
8404
+ this.#callbacks.delete(callback.id);
8405
+ });
8406
+ }
8407
+ reject(id, message, originalMessage) {
8408
+ const callback = this.#callbacks.get(id);
8409
+ if (!callback) {
8410
+ return;
8411
+ }
8412
+ this._reject(callback, message, originalMessage);
8413
+ }
8414
+ rejectRaw(id, error) {
8415
+ const callback = this.#callbacks.get(id);
8416
+ if (!callback) {
8417
+ return;
8418
+ }
8419
+ callback.reject(error);
8420
+ }
8421
+ _reject(callback, errorMessage, originalMessage) {
8422
+ let error;
8423
+ let message;
8424
+ if (errorMessage instanceof ProtocolError) {
8425
+ error = errorMessage;
8426
+ error.cause = callback.error;
8427
+ message = errorMessage.message;
8428
+ } else {
8429
+ error = callback.error;
8430
+ message = errorMessage;
8431
+ }
8432
+ callback.reject(rewriteError(error, `Protocol error (${callback.label}): ${message}`, originalMessage));
8433
+ }
8434
+ resolve(id, value) {
8435
+ const callback = this.#callbacks.get(id);
8436
+ if (!callback) {
8437
+ return;
8438
+ }
8439
+ callback.resolve(value);
8440
+ }
8441
+ clear() {
8442
+ for (const callback of this.#callbacks.values()) {
8443
+ this._reject(callback, new TargetCloseError("Target closed"));
8444
+ }
8445
+ this.#callbacks.clear();
8446
+ }
8447
+ /**
8448
+ * @internal
8449
+ */
8450
+ getPendingProtocolErrors() {
8451
+ const result = [];
8452
+ for (const callback of this.#callbacks.values()) {
8453
+ result.push(new Error(`${callback.label} timed out. Trace: ${callback.error.stack}`));
8454
+ }
8455
+ return result;
8456
+ }
8457
+ };
8458
+ var Callback = class {
8459
+ #id;
8460
+ #error = new ProtocolError();
8461
+ #deferred = Deferred.create();
8462
+ #timer;
8463
+ #label;
8464
+ constructor(id, label, timeout2) {
8465
+ this.#id = id;
8466
+ this.#label = label;
8467
+ if (timeout2) {
8468
+ this.#timer = setTimeout(() => {
8469
+ this.#deferred.reject(rewriteError(this.#error, `${label} timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.`));
8470
+ }, timeout2);
8471
+ }
8472
+ }
8473
+ resolve(value) {
8474
+ clearTimeout(this.#timer);
8475
+ this.#deferred.resolve(value);
8476
+ }
8477
+ reject(error) {
8478
+ clearTimeout(this.#timer);
8479
+ this.#deferred.reject(error);
8480
+ }
8481
+ get id() {
8482
+ return this.#id;
8483
+ }
8484
+ get promise() {
8485
+ return this.#deferred.valueOrThrow();
8486
+ }
8487
+ get error() {
8488
+ return this.#error;
8489
+ }
8490
+ get label() {
8491
+ return this.#label;
8492
+ }
8593
8493
  };
8594
- var __disposeResources6 = /* @__PURE__ */ function(SuppressedError2) {
8595
- return function(env) {
8596
- function fail(e) {
8597
- env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
8598
- env.hasError = true;
8599
- }
8600
- var r, s = 0;
8601
- function next() {
8602
- while (r = env.stack.pop()) {
8603
- try {
8604
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
8605
- if (r.dispose) {
8606
- var result = r.dispose.call(r.value);
8607
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
8608
- fail(e);
8609
- return next();
8610
- });
8611
- } else s |= 1;
8612
- } catch (e) {
8613
- fail(e);
8614
- }
8615
- }
8616
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
8617
- if (env.hasError) throw env.error;
8618
- }
8619
- return next();
8620
- };
8621
- }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
8622
- var e = new Error(message);
8623
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
8624
- });
8625
- var Binding = class {
8626
- #name;
8627
- #fn;
8628
- #initSource;
8629
- constructor(name, fn, initSource) {
8630
- this.#name = name;
8631
- this.#fn = fn;
8632
- this.#initSource = initSource;
8494
+
8495
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8496
+ var CdpCDPSession = class extends CDPSession {
8497
+ #sessionId;
8498
+ #targetType;
8499
+ #callbacks = new CallbackRegistry();
8500
+ #connection;
8501
+ #parentSessionId;
8502
+ #target;
8503
+ #rawErrors = false;
8504
+ /**
8505
+ * @internal
8506
+ */
8507
+ constructor(connection, targetType, sessionId, parentSessionId, rawErrors) {
8508
+ super();
8509
+ this.#connection = connection;
8510
+ this.#targetType = targetType;
8511
+ this.#sessionId = sessionId;
8512
+ this.#parentSessionId = parentSessionId;
8513
+ this.#rawErrors = rawErrors;
8633
8514
  }
8634
- get name() {
8635
- return this.#name;
8515
+ /**
8516
+ * Sets the {@link CdpTarget} associated with the session instance.
8517
+ *
8518
+ * @internal
8519
+ */
8520
+ _setTarget(target) {
8521
+ this.#target = target;
8636
8522
  }
8637
- get initSource() {
8638
- return this.#initSource;
8523
+ /**
8524
+ * Gets the {@link CdpTarget} associated with the session instance.
8525
+ *
8526
+ * @internal
8527
+ */
8528
+ _target() {
8529
+ assert(this.#target, "Target must exist");
8530
+ return this.#target;
8531
+ }
8532
+ connection() {
8533
+ return this.#connection;
8534
+ }
8535
+ parentSession() {
8536
+ if (!this.#parentSessionId) {
8537
+ return this;
8538
+ }
8539
+ const parent = this.#connection?.session(this.#parentSessionId);
8540
+ return parent ?? void 0;
8541
+ }
8542
+ send(method, params, options) {
8543
+ if (!this.#connection) {
8544
+ return Promise.reject(new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${this.#targetType} has been closed.`));
8545
+ }
8546
+ return this.#connection._rawSend(this.#callbacks, method, params, this.#sessionId, options);
8639
8547
  }
8640
8548
  /**
8641
- * @param context - Context to run the binding in; the context should have
8642
- * the binding added to it beforehand.
8643
- * @param id - ID of the call. This should come from the CDP
8644
- * `onBindingCalled` response.
8645
- * @param args - Plain arguments from CDP.
8549
+ * @internal
8646
8550
  */
8647
- async run(context2, id, args, isTrivial) {
8648
- const stack = new DisposableStack();
8649
- try {
8650
- if (!isTrivial) {
8651
- const env_1 = { stack: [], error: void 0, hasError: false };
8652
- try {
8653
- const handles = __addDisposableResource6(env_1, await context2.evaluateHandle((name, seq) => {
8654
- return globalThis[name].args.get(seq);
8655
- }, this.#name, id), false);
8656
- const properties = await handles.getProperties();
8657
- for (const [index, handle] of properties) {
8658
- if (index in args) {
8659
- switch (handle.remoteObject().subtype) {
8660
- case "node":
8661
- args[+index] = handle;
8662
- break;
8663
- default:
8664
- stack.use(handle);
8665
- }
8666
- } else {
8667
- stack.use(handle);
8668
- }
8669
- }
8670
- } catch (e_1) {
8671
- env_1.error = e_1;
8672
- env_1.hasError = true;
8673
- } finally {
8674
- __disposeResources6(env_1);
8675
- }
8676
- }
8677
- await context2.evaluate((name, seq, result) => {
8678
- const callbacks = globalThis[name].callbacks;
8679
- callbacks.get(seq).resolve(result);
8680
- callbacks.delete(seq);
8681
- }, this.#name, id, await this.#fn(...args));
8682
- for (const arg of args) {
8683
- if (arg instanceof JSHandle) {
8684
- stack.use(arg);
8551
+ _onMessage(object) {
8552
+ if (object.id) {
8553
+ if (object.error) {
8554
+ if (this.#rawErrors) {
8555
+ this.#callbacks.rejectRaw(object.id, object.error);
8556
+ } else {
8557
+ this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8685
8558
  }
8686
- }
8687
- } catch (error) {
8688
- if (isErrorLike(error)) {
8689
- await context2.evaluate((name, seq, message, stack2) => {
8690
- const error2 = new Error(message);
8691
- error2.stack = stack2;
8692
- const callbacks = globalThis[name].callbacks;
8693
- callbacks.get(seq).reject(error2);
8694
- callbacks.delete(seq);
8695
- }, this.#name, id, error.message, error.stack).catch(debugError);
8696
8559
  } else {
8697
- await context2.evaluate((name, seq, error2) => {
8698
- const callbacks = globalThis[name].callbacks;
8699
- callbacks.get(seq).reject(error2);
8700
- callbacks.delete(seq);
8701
- }, this.#name, id, error).catch(debugError);
8560
+ this.#callbacks.resolve(object.id, object.result);
8702
8561
  }
8562
+ } else {
8563
+ assert(!object.id);
8564
+ this.emit(object.method, object.params);
8703
8565
  }
8704
8566
  }
8567
+ /**
8568
+ * Detaches the cdpSession from the target. Once detached, the cdpSession object
8569
+ * won't emit any events and can't be used to send messages.
8570
+ */
8571
+ async detach() {
8572
+ if (!this.#connection) {
8573
+ throw new Error(`Session already detached. Most likely the ${this.#targetType} has been closed.`);
8574
+ }
8575
+ await this.#connection.send("Target.detachFromTarget", {
8576
+ sessionId: this.#sessionId
8577
+ });
8578
+ }
8579
+ /**
8580
+ * @internal
8581
+ */
8582
+ _onClosed() {
8583
+ this.#callbacks.clear();
8584
+ this.#connection = void 0;
8585
+ this.emit(CDPSessionEvent.Disconnected, void 0);
8586
+ }
8587
+ /**
8588
+ * Returns the session's id.
8589
+ */
8590
+ id() {
8591
+ return this.#sessionId;
8592
+ }
8593
+ /**
8594
+ * @internal
8595
+ */
8596
+ getPendingProtocolErrors() {
8597
+ return this.#callbacks.getPendingProtocolErrors();
8598
+ }
8705
8599
  };
8706
8600
 
8707
8601
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Connection.js
@@ -8717,9 +8611,12 @@
8717
8611
  #sessions = /* @__PURE__ */ new Map();
8718
8612
  #closed = false;
8719
8613
  #manuallyAttached = /* @__PURE__ */ new Set();
8720
- #callbacks = new CallbackRegistry();
8721
- constructor(url, transport, delay = 0, timeout2) {
8614
+ #callbacks;
8615
+ #rawErrors = false;
8616
+ constructor(url, transport, delay = 0, timeout2, rawErrors = false) {
8722
8617
  super();
8618
+ this.#rawErrors = rawErrors;
8619
+ this.#callbacks = new CallbackRegistry();
8723
8620
  this.#url = url;
8724
8621
  this.#delay = delay;
8725
8622
  this.#timeout = timeout2 ?? 18e4;
@@ -8801,7 +8698,7 @@
8801
8698
  const object = JSON.parse(message);
8802
8699
  if (object.method === "Target.attachedToTarget") {
8803
8700
  const sessionId = object.params.sessionId;
8804
- const session = new CdpCDPSession(this, object.params.targetInfo.type, sessionId, object.sessionId);
8701
+ const session = new CdpCDPSession(this, object.params.targetInfo.type, sessionId, object.sessionId, this.#rawErrors);
8805
8702
  this.#sessions.set(sessionId, session);
8806
8703
  this.emit(CDPSessionEvent.SessionAttached, session);
8807
8704
  const parentSession = this.#sessions.get(object.sessionId);
@@ -8827,7 +8724,11 @@
8827
8724
  }
8828
8725
  } else if (object.id) {
8829
8726
  if (object.error) {
8830
- this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8727
+ if (this.#rawErrors) {
8728
+ this.#callbacks.rejectRaw(object.id, object.error);
8729
+ } else {
8730
+ this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8731
+ }
8831
8732
  } else {
8832
8733
  this.#callbacks.resolve(object.id, object.result);
8833
8734
  }
@@ -9931,7 +9832,7 @@
9931
9832
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/HandleIterator.js
9932
9833
  init_dirname();
9933
9834
  init_buffer2();
9934
- var __addDisposableResource7 = function(env, value, async2) {
9835
+ var __addDisposableResource6 = function(env, value, async2) {
9935
9836
  if (value !== null && value !== void 0) {
9936
9837
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
9937
9838
  var dispose, inner;
@@ -9958,7 +9859,7 @@
9958
9859
  }
9959
9860
  return value;
9960
9861
  };
9961
- var __disposeResources7 = /* @__PURE__ */ function(SuppressedError2) {
9862
+ var __disposeResources6 = /* @__PURE__ */ function(SuppressedError2) {
9962
9863
  return function(env) {
9963
9864
  function fail(e) {
9964
9865
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -9993,7 +9894,7 @@
9993
9894
  async function* fastTransposeIteratorHandle(iterator2, size) {
9994
9895
  const env_1 = { stack: [], error: void 0, hasError: false };
9995
9896
  try {
9996
- const array = __addDisposableResource7(env_1, await iterator2.evaluateHandle(async (iterator3, size2) => {
9897
+ const array = __addDisposableResource6(env_1, await iterator2.evaluateHandle(async (iterator3, size2) => {
9997
9898
  const results = [];
9998
9899
  while (results.length < size2) {
9999
9900
  const result = await iterator3.next();
@@ -10006,18 +9907,18 @@
10006
9907
  }, size), false);
10007
9908
  const properties = await array.getProperties();
10008
9909
  const handles = properties.values();
10009
- const stack = __addDisposableResource7(env_1, new DisposableStack(), false);
9910
+ const stack = __addDisposableResource6(env_1, new DisposableStack(), false);
10010
9911
  stack.defer(() => {
10011
9912
  for (const handle_1 of handles) {
10012
9913
  const env_2 = { stack: [], error: void 0, hasError: false };
10013
9914
  try {
10014
- const handle = __addDisposableResource7(env_2, handle_1, false);
9915
+ const handle = __addDisposableResource6(env_2, handle_1, false);
10015
9916
  handle[disposeSymbol]();
10016
9917
  } catch (e_2) {
10017
9918
  env_2.error = e_2;
10018
9919
  env_2.hasError = true;
10019
9920
  } finally {
10020
- __disposeResources7(env_2);
9921
+ __disposeResources6(env_2);
10021
9922
  }
10022
9923
  }
10023
9924
  });
@@ -10027,7 +9928,7 @@
10027
9928
  env_1.error = e_1;
10028
9929
  env_1.hasError = true;
10029
9930
  } finally {
10030
- __disposeResources7(env_1);
9931
+ __disposeResources6(env_1);
10031
9932
  }
10032
9933
  }
10033
9934
  async function* transposeIteratorHandle(iterator2) {
@@ -10039,7 +9940,7 @@
10039
9940
  async function* transposeIterableHandle(handle) {
10040
9941
  const env_3 = { stack: [], error: void 0, hasError: false };
10041
9942
  try {
10042
- const generatorHandle = __addDisposableResource7(env_3, await handle.evaluateHandle((iterable) => {
9943
+ const generatorHandle = __addDisposableResource6(env_3, await handle.evaluateHandle((iterable) => {
10043
9944
  return async function* () {
10044
9945
  yield* iterable;
10045
9946
  }();
@@ -10049,7 +9950,7 @@
10049
9950
  env_3.error = e_3;
10050
9951
  env_3.hasError = true;
10051
9952
  } finally {
10052
- __disposeResources7(env_3);
9953
+ __disposeResources6(env_3);
10053
9954
  }
10054
9955
  }
10055
9956
 
@@ -10070,7 +9971,7 @@
10070
9971
  };
10071
9972
 
10072
9973
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js
10073
- var __addDisposableResource8 = function(env, value, async2) {
9974
+ var __addDisposableResource7 = function(env, value, async2) {
10074
9975
  if (value !== null && value !== void 0) {
10075
9976
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
10076
9977
  var dispose, inner;
@@ -10097,7 +9998,7 @@
10097
9998
  }
10098
9999
  return value;
10099
10000
  };
10100
- var __disposeResources8 = /* @__PURE__ */ function(SuppressedError2) {
10001
+ var __disposeResources7 = /* @__PURE__ */ function(SuppressedError2) {
10101
10002
  return function(env) {
10102
10003
  function fail(e) {
10103
10004
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -10175,7 +10076,7 @@
10175
10076
  static async *queryAll(element, selector) {
10176
10077
  const env_1 = { stack: [], error: void 0, hasError: false };
10177
10078
  try {
10178
- const handle = __addDisposableResource8(env_1, await element.evaluateHandle(this._querySelectorAll, selector, LazyArg.create((context2) => {
10079
+ const handle = __addDisposableResource7(env_1, await element.evaluateHandle(this._querySelectorAll, selector, LazyArg.create((context2) => {
10179
10080
  return context2.puppeteerUtil;
10180
10081
  })), false);
10181
10082
  yield* transposeIterableHandle(handle);
@@ -10183,7 +10084,7 @@
10183
10084
  env_1.error = e_1;
10184
10085
  env_1.hasError = true;
10185
10086
  } finally {
10186
- __disposeResources8(env_1);
10087
+ __disposeResources7(env_1);
10187
10088
  }
10188
10089
  }
10189
10090
  /**
@@ -10194,7 +10095,7 @@
10194
10095
  static async queryOne(element, selector) {
10195
10096
  const env_2 = { stack: [], error: void 0, hasError: false };
10196
10097
  try {
10197
- const result = __addDisposableResource8(env_2, await element.evaluateHandle(this._querySelector, selector, LazyArg.create((context2) => {
10098
+ const result = __addDisposableResource7(env_2, await element.evaluateHandle(this._querySelector, selector, LazyArg.create((context2) => {
10198
10099
  return context2.puppeteerUtil;
10199
10100
  })), false);
10200
10101
  if (!(_isElementHandle in result)) {
@@ -10205,7 +10106,7 @@
10205
10106
  env_2.error = e_2;
10206
10107
  env_2.hasError = true;
10207
10108
  } finally {
10208
- __disposeResources8(env_2);
10109
+ __disposeResources7(env_2);
10209
10110
  }
10210
10111
  }
10211
10112
  /**
@@ -10219,7 +10120,7 @@
10219
10120
  const env_3 = { stack: [], error: void 0, hasError: false };
10220
10121
  try {
10221
10122
  let frame;
10222
- const element = __addDisposableResource8(env_3, await (async () => {
10123
+ const element = __addDisposableResource7(env_3, await (async () => {
10223
10124
  if (!(_isElementHandle in elementOrFrame)) {
10224
10125
  frame = elementOrFrame;
10225
10126
  return;
@@ -10233,7 +10134,7 @@
10233
10134
  const env_4 = { stack: [], error: void 0, hasError: false };
10234
10135
  try {
10235
10136
  signal?.throwIfAborted();
10236
- const handle = __addDisposableResource8(env_4, await frame.isolatedRealm().waitForFunction(async (PuppeteerUtil, query, selector2, root, visible2) => {
10137
+ const handle = __addDisposableResource7(env_4, await frame.isolatedRealm().waitForFunction(async (PuppeteerUtil, query, selector2, root, visible2) => {
10237
10138
  const querySelector = PuppeteerUtil.createFunction(query);
10238
10139
  const node = await querySelector(root ?? document, selector2, PuppeteerUtil);
10239
10140
  return PuppeteerUtil.checkVisibility(node, visible2);
@@ -10256,7 +10157,7 @@
10256
10157
  env_4.error = e_3;
10257
10158
  env_4.hasError = true;
10258
10159
  } finally {
10259
- __disposeResources8(env_4);
10160
+ __disposeResources7(env_4);
10260
10161
  }
10261
10162
  } catch (error) {
10262
10163
  if (!isErrorLike(error)) {
@@ -10272,7 +10173,7 @@
10272
10173
  env_3.error = e_4;
10273
10174
  env_3.hasError = true;
10274
10175
  } finally {
10275
- __disposeResources8(env_3);
10176
+ __disposeResources7(env_3);
10276
10177
  }
10277
10178
  }
10278
10179
  };
@@ -10665,32 +10566,22 @@
10665
10566
  }
10666
10567
  return tokens;
10667
10568
  }
10668
- function* flatten(node, parent) {
10669
- switch (node.type) {
10569
+ function stringify(listOrNode) {
10570
+ if (Array.isArray(listOrNode)) {
10571
+ return listOrNode.map((token) => token.content).join("");
10572
+ }
10573
+ switch (listOrNode.type) {
10670
10574
  case "list":
10671
- for (let child of node.list) {
10672
- yield* flatten(child, node);
10673
- }
10674
- break;
10575
+ return listOrNode.list.map(stringify).join(",");
10576
+ case "relative":
10577
+ return listOrNode.combinator + stringify(listOrNode.right);
10675
10578
  case "complex":
10676
- yield* flatten(node.left, node);
10677
- yield* flatten(node.right, node);
10678
- break;
10579
+ return stringify(listOrNode.left) + listOrNode.combinator + stringify(listOrNode.right);
10679
10580
  case "compound":
10680
- yield* node.list.map((token) => [token, node]);
10681
- break;
10581
+ return listOrNode.list.map(stringify).join("");
10682
10582
  default:
10683
- yield [node, parent];
10684
- }
10685
- }
10686
- function stringify(listOrNode) {
10687
- let tokens;
10688
- if (Array.isArray(listOrNode)) {
10689
- tokens = listOrNode;
10690
- } else {
10691
- tokens = [...flatten(listOrNode)].map(([token]) => token);
10583
+ return listOrNode.content;
10692
10584
  }
10693
- return tokens.map((token) => token.content).join("");
10694
10585
  }
10695
10586
 
10696
10587
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/PSelectorParser.js
@@ -10907,7 +10798,7 @@
10907
10798
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
10908
10799
  done = true;
10909
10800
  };
10910
- var __addDisposableResource9 = function(env, value, async2) {
10801
+ var __addDisposableResource8 = function(env, value, async2) {
10911
10802
  if (value !== null && value !== void 0) {
10912
10803
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
10913
10804
  var dispose, inner;
@@ -10934,7 +10825,7 @@
10934
10825
  }
10935
10826
  return value;
10936
10827
  };
10937
- var __disposeResources9 = /* @__PURE__ */ function(SuppressedError2) {
10828
+ var __disposeResources8 = /* @__PURE__ */ function(SuppressedError2) {
10938
10829
  return function(env) {
10939
10830
  function fail(e) {
10940
10831
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -11097,13 +10988,13 @@
11097
10988
  if (!parentFrame) {
11098
10989
  return null;
11099
10990
  }
11100
- const list = __addDisposableResource9(env_1, await parentFrame.isolatedRealm().evaluateHandle(() => {
10991
+ const list = __addDisposableResource8(env_1, await parentFrame.isolatedRealm().evaluateHandle(() => {
11101
10992
  return document.querySelectorAll("iframe,frame");
11102
10993
  }), false);
11103
10994
  for await (const iframe_1 of transposeIterableHandle(list)) {
11104
10995
  const env_2 = { stack: [], error: void 0, hasError: false };
11105
10996
  try {
11106
- const iframe = __addDisposableResource9(env_2, iframe_1, false);
10997
+ const iframe = __addDisposableResource8(env_2, iframe_1, false);
11107
10998
  const frame = await iframe.contentFrame();
11108
10999
  if (frame?._id === this._id) {
11109
11000
  return await parentFrame.mainRealm().adoptHandle(iframe);
@@ -11112,7 +11003,7 @@
11112
11003
  env_2.error = e_1;
11113
11004
  env_2.hasError = true;
11114
11005
  } finally {
11115
- __disposeResources9(env_2);
11006
+ __disposeResources8(env_2);
11116
11007
  }
11117
11008
  }
11118
11009
  return null;
@@ -11120,7 +11011,7 @@
11120
11011
  env_1.error = e_2;
11121
11012
  env_1.hasError = true;
11122
11013
  } finally {
11123
- __disposeResources9(env_1);
11014
+ __disposeResources8(env_1);
11124
11015
  }
11125
11016
  }
11126
11017
  /**
@@ -11524,7 +11415,7 @@
11524
11415
  async click(selector, options = {}) {
11525
11416
  const env_3 = { stack: [], error: void 0, hasError: false };
11526
11417
  try {
11527
- const handle = __addDisposableResource9(env_3, await this.$(selector), false);
11418
+ const handle = __addDisposableResource8(env_3, await this.$(selector), false);
11528
11419
  assert(handle, `No element found for selector: ${selector}`);
11529
11420
  await handle.click(options);
11530
11421
  await handle.dispose();
@@ -11532,7 +11423,7 @@
11532
11423
  env_3.error = e_3;
11533
11424
  env_3.hasError = true;
11534
11425
  } finally {
11535
- __disposeResources9(env_3);
11426
+ __disposeResources8(env_3);
11536
11427
  }
11537
11428
  }
11538
11429
  /**
@@ -11544,14 +11435,14 @@
11544
11435
  async focus(selector) {
11545
11436
  const env_4 = { stack: [], error: void 0, hasError: false };
11546
11437
  try {
11547
- const handle = __addDisposableResource9(env_4, await this.$(selector), false);
11438
+ const handle = __addDisposableResource8(env_4, await this.$(selector), false);
11548
11439
  assert(handle, `No element found for selector: ${selector}`);
11549
11440
  await handle.focus();
11550
11441
  } catch (e_4) {
11551
11442
  env_4.error = e_4;
11552
11443
  env_4.hasError = true;
11553
11444
  } finally {
11554
- __disposeResources9(env_4);
11445
+ __disposeResources8(env_4);
11555
11446
  }
11556
11447
  }
11557
11448
  /**
@@ -11564,14 +11455,14 @@
11564
11455
  async hover(selector) {
11565
11456
  const env_5 = { stack: [], error: void 0, hasError: false };
11566
11457
  try {
11567
- const handle = __addDisposableResource9(env_5, await this.$(selector), false);
11458
+ const handle = __addDisposableResource8(env_5, await this.$(selector), false);
11568
11459
  assert(handle, `No element found for selector: ${selector}`);
11569
11460
  await handle.hover();
11570
11461
  } catch (e_5) {
11571
11462
  env_5.error = e_5;
11572
11463
  env_5.hasError = true;
11573
11464
  } finally {
11574
- __disposeResources9(env_5);
11465
+ __disposeResources8(env_5);
11575
11466
  }
11576
11467
  }
11577
11468
  /**
@@ -11595,14 +11486,14 @@
11595
11486
  async select(selector, ...values) {
11596
11487
  const env_6 = { stack: [], error: void 0, hasError: false };
11597
11488
  try {
11598
- const handle = __addDisposableResource9(env_6, await this.$(selector), false);
11489
+ const handle = __addDisposableResource8(env_6, await this.$(selector), false);
11599
11490
  assert(handle, `No element found for selector: ${selector}`);
11600
11491
  return await handle.select(...values);
11601
11492
  } catch (e_6) {
11602
11493
  env_6.error = e_6;
11603
11494
  env_6.hasError = true;
11604
11495
  } finally {
11605
- __disposeResources9(env_6);
11496
+ __disposeResources8(env_6);
11606
11497
  }
11607
11498
  }
11608
11499
  /**
@@ -11614,14 +11505,14 @@
11614
11505
  async tap(selector) {
11615
11506
  const env_7 = { stack: [], error: void 0, hasError: false };
11616
11507
  try {
11617
- const handle = __addDisposableResource9(env_7, await this.$(selector), false);
11508
+ const handle = __addDisposableResource8(env_7, await this.$(selector), false);
11618
11509
  assert(handle, `No element found for selector: ${selector}`);
11619
11510
  await handle.tap();
11620
11511
  } catch (e_7) {
11621
11512
  env_7.error = e_7;
11622
11513
  env_7.hasError = true;
11623
11514
  } finally {
11624
- __disposeResources9(env_7);
11515
+ __disposeResources8(env_7);
11625
11516
  }
11626
11517
  }
11627
11518
  /**
@@ -11648,14 +11539,14 @@
11648
11539
  async type(selector, text, options) {
11649
11540
  const env_8 = { stack: [], error: void 0, hasError: false };
11650
11541
  try {
11651
- const handle = __addDisposableResource9(env_8, await this.$(selector), false);
11542
+ const handle = __addDisposableResource8(env_8, await this.$(selector), false);
11652
11543
  assert(handle, `No element found for selector: ${selector}`);
11653
11544
  await handle.type(text, options);
11654
11545
  } catch (e_8) {
11655
11546
  env_8.error = e_8;
11656
11547
  env_8.hasError = true;
11657
11548
  } finally {
11658
- __disposeResources9(env_8);
11549
+ __disposeResources8(env_8);
11659
11550
  }
11660
11551
  }
11661
11552
  /**
@@ -11933,7 +11824,7 @@
11933
11824
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
11934
11825
  done = true;
11935
11826
  };
11936
- var __addDisposableResource10 = function(env, value, async2) {
11827
+ var __addDisposableResource9 = function(env, value, async2) {
11937
11828
  if (value !== null && value !== void 0) {
11938
11829
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
11939
11830
  var dispose, inner;
@@ -11960,7 +11851,7 @@
11960
11851
  }
11961
11852
  return value;
11962
11853
  };
11963
- var __disposeResources10 = /* @__PURE__ */ function(SuppressedError2) {
11854
+ var __disposeResources9 = /* @__PURE__ */ function(SuppressedError2) {
11964
11855
  return function(env) {
11965
11856
  function fail(e) {
11966
11857
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -12333,7 +12224,7 @@
12333
12224
  const env_1 = { stack: [], error: void 0, hasError: false };
12334
12225
  try {
12335
12226
  pageFunction = withSourcePuppeteerURLIfNone(this.$eval.name, pageFunction);
12336
- const elementHandle = __addDisposableResource10(env_1, await this.$(selector), false);
12227
+ const elementHandle = __addDisposableResource9(env_1, await this.$(selector), false);
12337
12228
  if (!elementHandle) {
12338
12229
  throw new Error(`Error: failed to find element matching selector "${selector}"`);
12339
12230
  }
@@ -12342,7 +12233,7 @@
12342
12233
  env_1.error = e_1;
12343
12234
  env_1.hasError = true;
12344
12235
  } finally {
12345
- __disposeResources10(env_1);
12236
+ __disposeResources9(env_1);
12346
12237
  }
12347
12238
  }
12348
12239
  /**
@@ -12397,7 +12288,7 @@
12397
12288
  try {
12398
12289
  pageFunction = withSourcePuppeteerURLIfNone(this.$$eval.name, pageFunction);
12399
12290
  const results = await this.$$(selector);
12400
- const elements = __addDisposableResource10(env_2, await this.evaluateHandle((_, ...elements2) => {
12291
+ const elements = __addDisposableResource9(env_2, await this.evaluateHandle((_, ...elements2) => {
12401
12292
  return elements2;
12402
12293
  }, ...results), false);
12403
12294
  const [result] = await Promise.all([
@@ -12411,7 +12302,7 @@
12411
12302
  env_2.error = e_2;
12412
12303
  env_2.hasError = true;
12413
12304
  } finally {
12414
- __disposeResources10(env_2);
12305
+ __disposeResources9(env_2);
12415
12306
  }
12416
12307
  }
12417
12308
  /**
@@ -12805,7 +12696,7 @@
12805
12696
  while (parentFrame = frame?.parentFrame()) {
12806
12697
  const env_3 = { stack: [], error: void 0, hasError: false };
12807
12698
  try {
12808
- const handle = __addDisposableResource10(env_3, await frame.frameElement(), false);
12699
+ const handle = __addDisposableResource9(env_3, await frame.frameElement(), false);
12809
12700
  if (!handle) {
12810
12701
  throw new Error("Unsupported frame type");
12811
12702
  }
@@ -12833,7 +12724,7 @@
12833
12724
  env_3.error = e_3;
12834
12725
  env_3.hasError = true;
12835
12726
  } finally {
12836
- __disposeResources10(env_3);
12727
+ __disposeResources9(env_3);
12837
12728
  }
12838
12729
  }
12839
12730
  const box = boxes.find((box2) => {
@@ -12995,7 +12886,7 @@
12995
12886
  while (parentFrame = frame?.parentFrame()) {
12996
12887
  const env_4 = { stack: [], error: void 0, hasError: false };
12997
12888
  try {
12998
- const handle = __addDisposableResource10(env_4, await frame.frameElement(), false);
12889
+ const handle = __addDisposableResource9(env_4, await frame.frameElement(), false);
12999
12890
  if (!handle) {
13000
12891
  throw new Error("Unsupported frame type");
13001
12892
  }
@@ -13020,7 +12911,7 @@
13020
12911
  env_4.error = e_4;
13021
12912
  env_4.hasError = true;
13022
12913
  } finally {
13023
- __disposeResources10(env_4);
12914
+ __disposeResources9(env_4);
13024
12915
  }
13025
12916
  }
13026
12917
  return point;
@@ -13099,7 +12990,7 @@
13099
12990
  try {
13100
12991
  await this.assertConnectedElement();
13101
12992
  const handle = await this.#asSVGElementHandle();
13102
- const target = __addDisposableResource10(env_5, handle && await handle.#getOwnerSVGElement(), false);
12993
+ const target = __addDisposableResource9(env_5, handle && await handle.#getOwnerSVGElement(), false);
13103
12994
  return await (target ?? this).evaluate(async (element, threshold) => {
13104
12995
  const visibleRatio = await new Promise((resolve) => {
13105
12996
  const observer = new IntersectionObserver((entries) => {
@@ -13114,7 +13005,7 @@
13114
13005
  env_5.error = e_5;
13115
13006
  env_5.hasError = true;
13116
13007
  } finally {
13117
- __disposeResources10(env_5);
13008
+ __disposeResources9(env_5);
13118
13009
  }
13119
13010
  }
13120
13011
  /**
@@ -13450,9 +13341,9 @@
13450
13341
  __esDecorate6(this, null, _autofill_decorators, { kind: "method", name: "autofill", static: false, private: false, access: { has: (obj) => "autofill" in obj, get: (obj) => obj.autofill }, metadata: _metadata }, null, _instanceExtraInitializers);
13451
13342
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13452
13343
  }
13344
+ #backendNodeId = __runInitializers6(this, _instanceExtraInitializers);
13453
13345
  constructor(world, remoteObject) {
13454
13346
  super(new CdpJSHandle(world, remoteObject));
13455
- __runInitializers6(this, _instanceExtraInitializers);
13456
13347
  }
13457
13348
  get realm() {
13458
13349
  return this.handle.realm;
@@ -13555,11 +13446,21 @@
13555
13446
  return this.realm.adoptBackendNode(node.backendDOMNodeId);
13556
13447
  });
13557
13448
  }
13449
+ async backendNodeId() {
13450
+ if (this.#backendNodeId) {
13451
+ return this.#backendNodeId;
13452
+ }
13453
+ const { node } = await this.client.send("DOM.describeNode", {
13454
+ objectId: this.handle.id
13455
+ });
13456
+ this.#backendNodeId = node.backendNodeId;
13457
+ return this.#backendNodeId;
13458
+ }
13558
13459
  };
13559
13460
  })();
13560
13461
 
13561
13462
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js
13562
- var __addDisposableResource11 = function(env, value, async2) {
13463
+ var __addDisposableResource10 = function(env, value, async2) {
13563
13464
  if (value !== null && value !== void 0) {
13564
13465
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
13565
13466
  var dispose, inner;
@@ -13586,7 +13487,7 @@
13586
13487
  }
13587
13488
  return value;
13588
13489
  };
13589
- var __disposeResources11 = /* @__PURE__ */ function(SuppressedError2) {
13490
+ var __disposeResources10 = /* @__PURE__ */ function(SuppressedError2) {
13590
13491
  return function(env) {
13591
13492
  function fail(e) {
13592
13493
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -13664,7 +13565,7 @@
13664
13565
  if (this.#bindings.has(binding.name)) {
13665
13566
  return;
13666
13567
  }
13667
- const _ = __addDisposableResource11(env_1, await this.#mutex.acquire(), false);
13568
+ const _ = __addDisposableResource10(env_1, await this.#mutex.acquire(), false);
13668
13569
  try {
13669
13570
  await this.#client.send("Runtime.addBinding", this.#name ? {
13670
13571
  name: CDP_BINDING_PREFIX + binding.name,
@@ -13690,7 +13591,7 @@
13690
13591
  env_1.error = e_1;
13691
13592
  env_1.hasError = true;
13692
13593
  } finally {
13693
- __disposeResources11(env_1);
13594
+ __disposeResources10(env_1);
13694
13595
  }
13695
13596
  }
13696
13597
  async #onBindingCalled(event) {
@@ -18024,10 +17925,45 @@ ${sourceUrlComment}
18024
17925
  }
18025
17926
  };
18026
17927
 
18027
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/WebWorker.js
18028
- init_dirname();
18029
- init_buffer2();
18030
-
17928
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/WebWorker.js
17929
+ init_dirname();
17930
+ init_buffer2();
17931
+
17932
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/Target.js
17933
+ init_dirname();
17934
+ init_buffer2();
17935
+ var TargetType;
17936
+ (function(TargetType2) {
17937
+ TargetType2["PAGE"] = "page";
17938
+ TargetType2["BACKGROUND_PAGE"] = "background_page";
17939
+ TargetType2["SERVICE_WORKER"] = "service_worker";
17940
+ TargetType2["SHARED_WORKER"] = "shared_worker";
17941
+ TargetType2["BROWSER"] = "browser";
17942
+ TargetType2["WEBVIEW"] = "webview";
17943
+ TargetType2["OTHER"] = "other";
17944
+ TargetType2["TAB"] = "tab";
17945
+ })(TargetType || (TargetType = {}));
17946
+ var Target = class {
17947
+ /**
17948
+ * @internal
17949
+ */
17950
+ constructor() {
17951
+ }
17952
+ /**
17953
+ * If the target is not of type `"service_worker"` or `"shared_worker"`, returns `null`.
17954
+ */
17955
+ async worker() {
17956
+ return null;
17957
+ }
17958
+ /**
17959
+ * If the target is not of type `"page"`, `"webview"` or `"background_page"`,
17960
+ * returns `null`.
17961
+ */
17962
+ async page() {
17963
+ return null;
17964
+ }
17965
+ };
17966
+
18031
17967
  // node_modules/puppeteer-core/lib/esm/puppeteer/api/WebWorker.js
18032
17968
  init_dirname();
18033
17969
  init_buffer2();
@@ -18159,7 +18095,7 @@ ${sourceUrlComment}
18159
18095
  };
18160
18096
 
18161
18097
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
18162
- var __addDisposableResource12 = function(env, value, async2) {
18098
+ var __addDisposableResource11 = function(env, value, async2) {
18163
18099
  if (value !== null && value !== void 0) {
18164
18100
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
18165
18101
  var dispose, inner;
@@ -18186,7 +18122,7 @@ ${sourceUrlComment}
18186
18122
  }
18187
18123
  return value;
18188
18124
  };
18189
- var __disposeResources12 = /* @__PURE__ */ function(SuppressedError2) {
18125
+ var __disposeResources11 = /* @__PURE__ */ function(SuppressedError2) {
18190
18126
  return function(env) {
18191
18127
  function fail(e) {
18192
18128
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -18428,7 +18364,7 @@ ${sourceUrlComment}
18428
18364
  }
18429
18365
  const frame = this.#frameManager.frame(event.frameId);
18430
18366
  assert(frame, "This should never happen.");
18431
- const handle = __addDisposableResource12(env_1, await frame.worlds[MAIN_WORLD].adoptBackendNode(event.backendNodeId), false);
18367
+ const handle = __addDisposableResource11(env_1, await frame.worlds[MAIN_WORLD].adoptBackendNode(event.backendNodeId), false);
18432
18368
  const fileChooser = new FileChooser(handle.move(), event);
18433
18369
  for (const promise of this.#fileChooserDeferreds) {
18434
18370
  promise.resolve(fileChooser);
@@ -18438,7 +18374,7 @@ ${sourceUrlComment}
18438
18374
  env_1.error = e_1;
18439
18375
  env_1.hasError = true;
18440
18376
  } finally {
18441
- __disposeResources12(env_1);
18377
+ __disposeResources11(env_1);
18442
18378
  }
18443
18379
  }
18444
18380
  _client() {
@@ -18594,9 +18530,7 @@ ${sourceUrlComment}
18594
18530
  for (const cookie of cookies) {
18595
18531
  const item = {
18596
18532
  ...cookie,
18597
- // TODO: a breaking change neeeded to change the partition key
18598
- // type in Puppeteer.
18599
- partitionKey: cookie.partitionKey ? { topLevelSite: cookie.partitionKey, hasCrossSiteAncestor: false } : void 0
18533
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookie.partitionKey)
18600
18534
  };
18601
18535
  if (!cookie.url && pageURL.startsWith("http")) {
18602
18536
  item.url = pageURL;
@@ -18632,12 +18566,7 @@ ${sourceUrlComment}
18632
18566
  cookies: items.map((cookieParam) => {
18633
18567
  return {
18634
18568
  ...cookieParam,
18635
- partitionKey: cookieParam.partitionKey ? {
18636
- // TODO: a breaking change neeeded to change the partition key
18637
- // type in Puppeteer.
18638
- topLevelSite: cookieParam.partitionKey,
18639
- hasCrossSiteAncestor: false
18640
- } : void 0
18569
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookieParam.partitionKey)
18641
18570
  };
18642
18571
  })
18643
18572
  });
@@ -18854,7 +18783,7 @@ ${sourceUrlComment}
18854
18783
  try {
18855
18784
  const { fromSurface, omitBackground, optimizeForSpeed, quality, clip: userClip, type, captureBeyondViewport } = options;
18856
18785
  const isFirefox = this.target()._targetManager() instanceof FirefoxTargetManager;
18857
- const stack = __addDisposableResource12(env_2, new AsyncDisposableStack(), true);
18786
+ const stack = __addDisposableResource11(env_2, new AsyncDisposableStack(), true);
18858
18787
  if (!isFirefox && omitBackground && (type === "png" || type === "webp")) {
18859
18788
  await this.#emulationManager.setTransparentBackgroundColor();
18860
18789
  stack.defer(async () => {
@@ -18882,7 +18811,7 @@ ${sourceUrlComment}
18882
18811
  env_2.error = e_2;
18883
18812
  env_2.hasError = true;
18884
18813
  } finally {
18885
- const result_1 = __disposeResources12(env_2);
18814
+ const result_1 = __disposeResources11(env_2);
18886
18815
  if (result_1)
18887
18816
  await result_1;
18888
18817
  }
@@ -18934,7 +18863,7 @@ ${sourceUrlComment}
18934
18863
  async close(options = { runBeforeUnload: void 0 }) {
18935
18864
  const env_3 = { stack: [], error: void 0, hasError: false };
18936
18865
  try {
18937
- const _guard = __addDisposableResource12(env_3, await this.browserContext().waitForScreenshotOperations(), false);
18866
+ const _guard = __addDisposableResource11(env_3, await this.browserContext().waitForScreenshotOperations(), false);
18938
18867
  const connection = this.#primaryTargetClient.connection();
18939
18868
  assert(connection, "Protocol error: Connection closed. Most likely the page has been closed.");
18940
18869
  const runBeforeUnload = !!options.runBeforeUnload;
@@ -18950,7 +18879,7 @@ ${sourceUrlComment}
18950
18879
  env_3.error = e_3;
18951
18880
  env_3.hasError = true;
18952
18881
  } finally {
18953
- __disposeResources12(env_3);
18882
+ __disposeResources11(env_3);
18954
18883
  }
18955
18884
  }
18956
18885
  isClosed() {
@@ -19011,8 +18940,188 @@ ${sourceUrlComment}
19011
18940
  height: Math.max(Math.min(clip.y + clip.height, viewport.y + viewport.height) - y, 0)
19012
18941
  };
19013
18942
  }
18943
+ function convertCookiesPartitionKeyFromPuppeteerToCdp(partitionKey) {
18944
+ if (partitionKey === void 0) {
18945
+ return void 0;
18946
+ }
18947
+ if (typeof partitionKey === "string") {
18948
+ return {
18949
+ topLevelSite: partitionKey,
18950
+ hasCrossSiteAncestor: false
18951
+ };
18952
+ }
18953
+ return {
18954
+ topLevelSite: partitionKey.sourceOrigin,
18955
+ hasCrossSiteAncestor: partitionKey.hasCrossSiteAncestor ?? false
18956
+ };
18957
+ }
18958
+
18959
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js
18960
+ var __addDisposableResource12 = function(env, value, async2) {
18961
+ if (value !== null && value !== void 0) {
18962
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
18963
+ var dispose, inner;
18964
+ if (async2) {
18965
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
18966
+ dispose = value[Symbol.asyncDispose];
18967
+ }
18968
+ if (dispose === void 0) {
18969
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
18970
+ dispose = value[Symbol.dispose];
18971
+ if (async2) inner = dispose;
18972
+ }
18973
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
18974
+ if (inner) dispose = function() {
18975
+ try {
18976
+ inner.call(this);
18977
+ } catch (e) {
18978
+ return Promise.reject(e);
18979
+ }
18980
+ };
18981
+ env.stack.push({ value, dispose, async: async2 });
18982
+ } else if (async2) {
18983
+ env.stack.push({ async: true });
18984
+ }
18985
+ return value;
18986
+ };
18987
+ var __disposeResources12 = /* @__PURE__ */ function(SuppressedError2) {
18988
+ return function(env) {
18989
+ function fail(e) {
18990
+ env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
18991
+ env.hasError = true;
18992
+ }
18993
+ var r, s = 0;
18994
+ function next() {
18995
+ while (r = env.stack.pop()) {
18996
+ try {
18997
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
18998
+ if (r.dispose) {
18999
+ var result = r.dispose.call(r.value);
19000
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
19001
+ fail(e);
19002
+ return next();
19003
+ });
19004
+ } else s |= 1;
19005
+ } catch (e) {
19006
+ fail(e);
19007
+ }
19008
+ }
19009
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
19010
+ if (env.hasError) throw env.error;
19011
+ }
19012
+ return next();
19013
+ };
19014
+ }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
19015
+ var e = new Error(message);
19016
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
19017
+ });
19018
+ var CdpBrowserContext = class extends BrowserContext {
19019
+ #connection;
19020
+ #browser;
19021
+ #id;
19022
+ constructor(connection, browser, contextId) {
19023
+ super();
19024
+ this.#connection = connection;
19025
+ this.#browser = browser;
19026
+ this.#id = contextId;
19027
+ }
19028
+ get id() {
19029
+ return this.#id;
19030
+ }
19031
+ targets() {
19032
+ return this.#browser.targets().filter((target) => {
19033
+ return target.browserContext() === this;
19034
+ });
19035
+ }
19036
+ async pages() {
19037
+ const pages = await Promise.all(this.targets().filter((target) => {
19038
+ return target.type() === "page" || target.type() === "other" && this.#browser._getIsPageTargetCallback()?.(target);
19039
+ }).map((target) => {
19040
+ return target.page();
19041
+ }));
19042
+ return pages.filter((page) => {
19043
+ return !!page;
19044
+ });
19045
+ }
19046
+ async overridePermissions(origin, permissions) {
19047
+ const protocolPermissions = permissions.map((permission) => {
19048
+ const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission);
19049
+ if (!protocolPermission) {
19050
+ throw new Error("Unknown permission: " + permission);
19051
+ }
19052
+ return protocolPermission;
19053
+ });
19054
+ await this.#connection.send("Browser.grantPermissions", {
19055
+ origin,
19056
+ browserContextId: this.#id || void 0,
19057
+ permissions: protocolPermissions
19058
+ });
19059
+ }
19060
+ async clearPermissionOverrides() {
19061
+ await this.#connection.send("Browser.resetPermissions", {
19062
+ browserContextId: this.#id || void 0
19063
+ });
19064
+ }
19065
+ async newPage() {
19066
+ const env_1 = { stack: [], error: void 0, hasError: false };
19067
+ try {
19068
+ const _guard = __addDisposableResource12(env_1, await this.waitForScreenshotOperations(), false);
19069
+ return await this.#browser._createPageInContext(this.#id);
19070
+ } catch (e_1) {
19071
+ env_1.error = e_1;
19072
+ env_1.hasError = true;
19073
+ } finally {
19074
+ __disposeResources12(env_1);
19075
+ }
19076
+ }
19077
+ browser() {
19078
+ return this.#browser;
19079
+ }
19080
+ async close() {
19081
+ assert(this.#id, "Default BrowserContext cannot be closed!");
19082
+ await this.#browser._disposeContext(this.#id);
19083
+ }
19084
+ async cookies() {
19085
+ const { cookies } = await this.#connection.send("Storage.getCookies", {
19086
+ browserContextId: this.#id
19087
+ });
19088
+ return cookies.map((cookie) => {
19089
+ return {
19090
+ ...cookie,
19091
+ partitionKey: cookie.partitionKey ? {
19092
+ sourceOrigin: cookie.partitionKey.topLevelSite,
19093
+ hasCrossSiteAncestor: cookie.partitionKey.hasCrossSiteAncestor
19094
+ } : void 0
19095
+ };
19096
+ });
19097
+ }
19098
+ async setCookie(...cookies) {
19099
+ return await this.#connection.send("Storage.setCookies", {
19100
+ browserContextId: this.#id,
19101
+ cookies: cookies.map((cookie) => {
19102
+ return {
19103
+ ...cookie,
19104
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookie.partitionKey)
19105
+ };
19106
+ })
19107
+ });
19108
+ }
19109
+ async setDownloadBehavior(downloadBehavior) {
19110
+ await this.#connection.send("Browser.setDownloadBehavior", {
19111
+ behavior: downloadBehavior.policy,
19112
+ downloadPath: downloadBehavior.downloadPath,
19113
+ browserContextId: this.#id
19114
+ });
19115
+ }
19116
+ };
19117
+
19118
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19119
+ init_dirname();
19120
+ init_buffer2();
19014
19121
 
19015
19122
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
19123
+ init_dirname();
19124
+ init_buffer2();
19016
19125
  var InitializationStatus;
19017
19126
  (function(InitializationStatus2) {
19018
19127
  InitializationStatus2["SUCCESS"] = "success";
@@ -19895,101 +20004,87 @@ puppeteer-core/lib/esm/puppeteer/api/BrowserContext.js:
19895
20004
  * SPDX-License-Identifier: Apache-2.0
19896
20005
  *)
19897
20006
 
19898
- puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js:
20007
+ puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js:
19899
20008
  (**
19900
20009
  * @license
19901
- * Copyright 2024 Google Inc.
20010
+ * Copyright 2019 Google Inc.
19902
20011
  * SPDX-License-Identifier: Apache-2.0
19903
20012
  *)
19904
20013
 
19905
- puppeteer-core/lib/esm/puppeteer/api/Target.js:
20014
+ puppeteer-core/lib/esm/puppeteer/util/decorators.js:
19906
20015
  (**
19907
20016
  * @license
19908
20017
  * Copyright 2023 Google Inc.
19909
20018
  * SPDX-License-Identifier: Apache-2.0
19910
20019
  *)
19911
20020
 
19912
- puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js:
20021
+ puppeteer-core/lib/esm/puppeteer/api/Page.js:
19913
20022
  (**
19914
20023
  * @license
19915
- * Copyright 2022 Google Inc.
20024
+ * Copyright 2017 Google Inc.
19916
20025
  * SPDX-License-Identifier: Apache-2.0
19917
20026
  *)
19918
20027
 
19919
- puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js:
20028
+ puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js:
19920
20029
  (**
19921
20030
  * @license
19922
- * Copyright 2024 Google Inc.
20031
+ * Copyright 2020 Google Inc.
19923
20032
  * SPDX-License-Identifier: Apache-2.0
19924
20033
  *)
19925
20034
 
19926
- puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:
20035
+ puppeteer-core/lib/esm/puppeteer/common/FileChooser.js:
19927
20036
  (**
19928
20037
  * @license
19929
- * Copyright 2023 Google Inc.
20038
+ * Copyright 2020 Google Inc.
19930
20039
  * SPDX-License-Identifier: Apache-2.0
19931
20040
  *)
19932
20041
 
19933
- puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:
20042
+ puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js:
19934
20043
  (**
19935
20044
  * @license
19936
- * Copyright 2017 Google Inc.
20045
+ * Copyright 2022 Google Inc.
19937
20046
  * SPDX-License-Identifier: Apache-2.0
19938
20047
  *)
19939
20048
 
19940
- puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js:
20049
+ puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js:
19941
20050
  (**
19942
20051
  * @license
19943
- * Copyright 2019 Google Inc.
20052
+ * Copyright 2022 Google Inc.
19944
20053
  * SPDX-License-Identifier: Apache-2.0
19945
20054
  *)
19946
20055
 
19947
- puppeteer-core/lib/esm/puppeteer/util/decorators.js:
20056
+ puppeteer-core/lib/esm/puppeteer/api/JSHandle.js:
19948
20057
  (**
19949
20058
  * @license
19950
20059
  * Copyright 2023 Google Inc.
19951
20060
  * SPDX-License-Identifier: Apache-2.0
19952
20061
  *)
19953
20062
 
19954
- puppeteer-core/lib/esm/puppeteer/api/Page.js:
19955
- (**
19956
- * @license
19957
- * Copyright 2017 Google Inc.
19958
- * SPDX-License-Identifier: Apache-2.0
19959
- *)
19960
-
19961
- puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js:
19962
- (**
19963
- * @license
19964
- * Copyright 2020 Google Inc.
19965
- * SPDX-License-Identifier: Apache-2.0
19966
- *)
19967
-
19968
- puppeteer-core/lib/esm/puppeteer/common/FileChooser.js:
20063
+ puppeteer-core/lib/esm/puppeteer/cdp/Binding.js:
19969
20064
  (**
19970
20065
  * @license
19971
- * Copyright 2020 Google Inc.
20066
+ * Copyright 2024 Google Inc.
19972
20067
  * SPDX-License-Identifier: Apache-2.0
19973
20068
  *)
19974
20069
 
19975
- puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js:
20070
+ puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js:
19976
20071
  (**
19977
20072
  * @license
19978
- * Copyright 2022 Google Inc.
20073
+ * Copyright 2024 Google Inc.
19979
20074
  * SPDX-License-Identifier: Apache-2.0
19980
20075
  *)
19981
20076
 
19982
- puppeteer-core/lib/esm/puppeteer/api/JSHandle.js:
20077
+ puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:
19983
20078
  (**
19984
20079
  * @license
19985
20080
  * Copyright 2023 Google Inc.
19986
20081
  * SPDX-License-Identifier: Apache-2.0
19987
20082
  *)
19988
20083
 
19989
- puppeteer-core/lib/esm/puppeteer/cdp/Binding.js:
20084
+ puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:
19990
20085
  (**
19991
20086
  * @license
19992
- * Copyright 2024 Google Inc.
20087
+ * Copyright 2017 Google Inc.
19993
20088
  * SPDX-License-Identifier: Apache-2.0
19994
20089
  *)
19995
20090
 
@@ -20308,6 +20403,13 @@ puppeteer-core/lib/esm/puppeteer/cdp/Input.js:
20308
20403
  * SPDX-License-Identifier: Apache-2.0
20309
20404
  *)
20310
20405
 
20406
+ puppeteer-core/lib/esm/puppeteer/api/Target.js:
20407
+ (**
20408
+ * @license
20409
+ * Copyright 2023 Google Inc.
20410
+ * SPDX-License-Identifier: Apache-2.0
20411
+ *)
20412
+
20311
20413
  puppeteer-core/lib/esm/puppeteer/api/WebWorker.js:
20312
20414
  (**
20313
20415
  * @license
@@ -20322,6 +20424,13 @@ puppeteer-core/lib/esm/puppeteer/cdp/Page.js:
20322
20424
  * SPDX-License-Identifier: Apache-2.0
20323
20425
  *)
20324
20426
 
20427
+ puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js:
20428
+ (**
20429
+ * @license
20430
+ * Copyright 2024 Google Inc.
20431
+ * SPDX-License-Identifier: Apache-2.0
20432
+ *)
20433
+
20325
20434
  puppeteer-core/lib/esm/puppeteer/cdp/Target.js:
20326
20435
  (**
20327
20436
  * @license