@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
@@ -2006,50 +2006,64 @@
2006
2006
  createDebug.namespaces = namespaces;
2007
2007
  createDebug.names = [];
2008
2008
  createDebug.skips = [];
2009
- let i;
2010
- const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
2011
- const len = split.length;
2012
- for (i = 0; i < len; i++) {
2013
- if (!split[i]) {
2014
- continue;
2009
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(" ", ",").split(",").filter(Boolean);
2010
+ for (const ns of split) {
2011
+ if (ns[0] === "-") {
2012
+ createDebug.skips.push(ns.slice(1));
2013
+ } else {
2014
+ createDebug.names.push(ns);
2015
2015
  }
2016
- namespaces = split[i].replace(/\*/g, ".*?");
2017
- if (namespaces[0] === "-") {
2018
- createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
2016
+ }
2017
+ }
2018
+ function matchesTemplate(search, template) {
2019
+ let searchIndex = 0;
2020
+ let templateIndex = 0;
2021
+ let starIndex = -1;
2022
+ let matchIndex = 0;
2023
+ while (searchIndex < search.length) {
2024
+ if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
2025
+ if (template[templateIndex] === "*") {
2026
+ starIndex = templateIndex;
2027
+ matchIndex = searchIndex;
2028
+ templateIndex++;
2029
+ } else {
2030
+ searchIndex++;
2031
+ templateIndex++;
2032
+ }
2033
+ } else if (starIndex !== -1) {
2034
+ templateIndex = starIndex + 1;
2035
+ matchIndex++;
2036
+ searchIndex = matchIndex;
2019
2037
  } else {
2020
- createDebug.names.push(new RegExp("^" + namespaces + "$"));
2038
+ return false;
2021
2039
  }
2022
2040
  }
2041
+ while (templateIndex < template.length && template[templateIndex] === "*") {
2042
+ templateIndex++;
2043
+ }
2044
+ return templateIndex === template.length;
2023
2045
  }
2024
2046
  function disable() {
2025
2047
  const namespaces = [
2026
- ...createDebug.names.map(toNamespace),
2027
- ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
2048
+ ...createDebug.names,
2049
+ ...createDebug.skips.map((namespace) => "-" + namespace)
2028
2050
  ].join(",");
2029
2051
  createDebug.enable("");
2030
2052
  return namespaces;
2031
2053
  }
2032
2054
  function enabled(name) {
2033
- if (name[name.length - 1] === "*") {
2034
- return true;
2035
- }
2036
- let i;
2037
- let len;
2038
- for (i = 0, len = createDebug.skips.length; i < len; i++) {
2039
- if (createDebug.skips[i].test(name)) {
2055
+ for (const skip of createDebug.skips) {
2056
+ if (matchesTemplate(name, skip)) {
2040
2057
  return false;
2041
2058
  }
2042
2059
  }
2043
- for (i = 0, len = createDebug.names.length; i < len; i++) {
2044
- if (createDebug.names[i].test(name)) {
2060
+ for (const ns of createDebug.names) {
2061
+ if (matchesTemplate(name, ns)) {
2045
2062
  return true;
2046
2063
  }
2047
2064
  }
2048
2065
  return false;
2049
2066
  }
2050
- function toNamespace(regexp) {
2051
- return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
2052
- }
2053
2067
  function coerce(val) {
2054
2068
  if (val instanceof Error) {
2055
2069
  return val.stack || val.message;
@@ -4387,7 +4401,7 @@
4387
4401
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
4388
4402
  init_dirname();
4389
4403
  init_buffer2();
4390
- var packageVersion = "23.9.0";
4404
+ var packageVersion = "23.10.1";
4391
4405
 
4392
4406
  // node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
4393
4407
  init_dirname();
@@ -5244,6 +5258,39 @@
5244
5258
  return acc.concat(x);
5245
5259
  }, []);
5246
5260
  }
5261
+ /**
5262
+ * Returns all cookies in the default {@link BrowserContext}.
5263
+ *
5264
+ * @remarks
5265
+ *
5266
+ * Shortcut for
5267
+ * {@link BrowserContext.cookies | browser.defaultBrowserContext().cookies()}.
5268
+ */
5269
+ async cookies() {
5270
+ return await this.defaultBrowserContext().cookies();
5271
+ }
5272
+ /**
5273
+ * Sets cookies in the default {@link BrowserContext}.
5274
+ *
5275
+ * @remarks
5276
+ *
5277
+ * Shortcut for
5278
+ * {@link BrowserContext.setCookie | browser.defaultBrowserContext().setCookie()}.
5279
+ */
5280
+ async setCookie(...cookies) {
5281
+ return await this.defaultBrowserContext().setCookie(...cookies);
5282
+ }
5283
+ /**
5284
+ * Removes cookies from the default {@link BrowserContext}.
5285
+ *
5286
+ * @remarks
5287
+ *
5288
+ * Shortcut for
5289
+ * {@link BrowserContext.deleteCookie | browser.defaultBrowserContext().deleteCookie()}.
5290
+ */
5291
+ async deleteCookie(...cookies) {
5292
+ return await this.defaultBrowserContext().deleteCookie(...cookies);
5293
+ }
5247
5294
  /**
5248
5295
  * Whether Puppeteer is connected to this {@link Browser | browser}.
5249
5296
  *
@@ -5493,6 +5540,18 @@
5493
5540
  /* BrowserContextEvent.TargetChanged */
5494
5541
  ), from(this.targets())).pipe(filterAsync(predicate), raceWith(timeout(ms))));
5495
5542
  }
5543
+ /**
5544
+ * Removes cookie in the browser context
5545
+ * @param cookies - {@link Cookie | cookie} to remove
5546
+ */
5547
+ async deleteCookie(...cookies) {
5548
+ return await this.setCookie(...cookies.map((cookie) => {
5549
+ return {
5550
+ ...cookie,
5551
+ expires: 1
5552
+ };
5553
+ }));
5554
+ }
5496
5555
  /**
5497
5556
  * Whether this {@link BrowserContext | browser context} is closed.
5498
5557
  */
@@ -5515,7 +5574,51 @@
5515
5574
  }
5516
5575
  };
5517
5576
 
5518
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js
5577
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
5578
+ init_dirname();
5579
+ init_buffer2();
5580
+
5581
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js
5582
+ init_dirname();
5583
+ init_buffer2();
5584
+
5585
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js
5586
+ init_dirname();
5587
+ init_buffer2();
5588
+ var DEFAULT_TIMEOUT = 3e4;
5589
+ var TimeoutSettings = class {
5590
+ #defaultTimeout;
5591
+ #defaultNavigationTimeout;
5592
+ constructor() {
5593
+ this.#defaultTimeout = null;
5594
+ this.#defaultNavigationTimeout = null;
5595
+ }
5596
+ setDefaultTimeout(timeout2) {
5597
+ this.#defaultTimeout = timeout2;
5598
+ }
5599
+ setDefaultNavigationTimeout(timeout2) {
5600
+ this.#defaultNavigationTimeout = timeout2;
5601
+ }
5602
+ navigationTimeout() {
5603
+ if (this.#defaultNavigationTimeout !== null) {
5604
+ return this.#defaultNavigationTimeout;
5605
+ }
5606
+ if (this.#defaultTimeout !== null) {
5607
+ return this.#defaultTimeout;
5608
+ }
5609
+ return DEFAULT_TIMEOUT;
5610
+ }
5611
+ timeout() {
5612
+ if (this.#defaultTimeout !== null) {
5613
+ return this.#defaultTimeout;
5614
+ }
5615
+ return DEFAULT_TIMEOUT;
5616
+ }
5617
+ };
5618
+
5619
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js
5620
+ init_dirname();
5621
+ init_buffer2();
5519
5622
  var __addDisposableResource = function(env, value, async2) {
5520
5623
  if (value !== null && value !== void 0) {
5521
5624
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
@@ -5574,405 +5677,107 @@
5574
5677
  var e = new Error(message);
5575
5678
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
5576
5679
  });
5577
- var CdpBrowserContext = class extends BrowserContext {
5578
- #connection;
5579
- #browser;
5580
- #id;
5581
- constructor(connection, browser, contextId) {
5582
- super();
5583
- this.#connection = connection;
5584
- this.#browser = browser;
5585
- this.#id = contextId;
5586
- }
5587
- get id() {
5588
- return this.#id;
5589
- }
5590
- targets() {
5591
- return this.#browser.targets().filter((target) => {
5592
- return target.browserContext() === this;
5593
- });
5594
- }
5595
- async pages() {
5596
- const pages = await Promise.all(this.targets().filter((target) => {
5597
- return target.type() === "page" || target.type() === "other" && this.#browser._getIsPageTargetCallback()?.(target);
5598
- }).map((target) => {
5599
- return target.page();
5600
- }));
5601
- return pages.filter((page) => {
5602
- return !!page;
5603
- });
5680
+ var instances = /* @__PURE__ */ new WeakSet();
5681
+ function moveable(Class, _) {
5682
+ let hasDispose = false;
5683
+ if (Class.prototype[disposeSymbol]) {
5684
+ const dispose = Class.prototype[disposeSymbol];
5685
+ Class.prototype[disposeSymbol] = function() {
5686
+ if (instances.has(this)) {
5687
+ instances.delete(this);
5688
+ return;
5689
+ }
5690
+ return dispose.call(this);
5691
+ };
5692
+ hasDispose = true;
5604
5693
  }
5605
- async overridePermissions(origin, permissions) {
5606
- const protocolPermissions = permissions.map((permission) => {
5607
- const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission);
5608
- if (!protocolPermission) {
5609
- throw new Error("Unknown permission: " + permission);
5694
+ if (Class.prototype[asyncDisposeSymbol]) {
5695
+ const asyncDispose = Class.prototype[asyncDisposeSymbol];
5696
+ Class.prototype[asyncDisposeSymbol] = function() {
5697
+ if (instances.has(this)) {
5698
+ instances.delete(this);
5699
+ return;
5610
5700
  }
5611
- return protocolPermission;
5612
- });
5613
- await this.#connection.send("Browser.grantPermissions", {
5614
- origin,
5615
- browserContextId: this.#id || void 0,
5616
- permissions: protocolPermissions
5617
- });
5701
+ return asyncDispose.call(this);
5702
+ };
5703
+ hasDispose = true;
5618
5704
  }
5619
- async clearPermissionOverrides() {
5620
- await this.#connection.send("Browser.resetPermissions", {
5621
- browserContextId: this.#id || void 0
5622
- });
5705
+ if (hasDispose) {
5706
+ Class.prototype.move = function() {
5707
+ instances.add(this);
5708
+ return this;
5709
+ };
5623
5710
  }
5624
- async newPage() {
5625
- const env_1 = { stack: [], error: void 0, hasError: false };
5626
- try {
5627
- const _guard = __addDisposableResource(env_1, await this.waitForScreenshotOperations(), false);
5628
- return await this.#browser._createPageInContext(this.#id);
5629
- } catch (e_1) {
5630
- env_1.error = e_1;
5631
- env_1.hasError = true;
5632
- } finally {
5633
- __disposeResources(env_1);
5711
+ return Class;
5712
+ }
5713
+ function throwIfDisposed(message = (value) => {
5714
+ return `Attempted to use disposed ${value.constructor.name}.`;
5715
+ }) {
5716
+ return (target, _) => {
5717
+ return function(...args) {
5718
+ if (this.disposed) {
5719
+ throw new Error(message(this));
5720
+ }
5721
+ return target.call(this, ...args);
5722
+ };
5723
+ };
5724
+ }
5725
+ function invokeAtMostOnceForArguments(target, _) {
5726
+ const cache = /* @__PURE__ */ new WeakMap();
5727
+ let cacheDepth = -1;
5728
+ return function(...args) {
5729
+ if (cacheDepth === -1) {
5730
+ cacheDepth = args.length;
5634
5731
  }
5635
- }
5636
- browser() {
5637
- return this.#browser;
5638
- }
5639
- async close() {
5640
- assert(this.#id, "Default BrowserContext cannot be closed!");
5641
- await this.#browser._disposeContext(this.#id);
5642
- }
5643
- async setDownloadBehavior(downloadBehavior) {
5644
- await this.#connection.send("Browser.setDownloadBehavior", {
5645
- behavior: downloadBehavior.policy,
5646
- downloadPath: downloadBehavior.downloadPath,
5647
- browserContextId: this.#id
5648
- });
5649
- }
5650
- };
5651
-
5652
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
5653
- init_dirname();
5654
- init_buffer2();
5655
-
5656
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
5657
- init_dirname();
5658
- init_buffer2();
5732
+ if (cacheDepth !== args.length) {
5733
+ throw new Error("Memoized method was called with the wrong number of arguments");
5734
+ }
5735
+ let freshArguments = false;
5736
+ let cacheIterator = cache;
5737
+ for (const arg of args) {
5738
+ if (cacheIterator.has(arg)) {
5739
+ cacheIterator = cacheIterator.get(arg);
5740
+ } else {
5741
+ freshArguments = true;
5742
+ cacheIterator.set(arg, /* @__PURE__ */ new WeakMap());
5743
+ cacheIterator = cacheIterator.get(arg);
5744
+ }
5745
+ }
5746
+ if (!freshArguments) {
5747
+ return;
5748
+ }
5749
+ return target.call(this, ...args);
5750
+ };
5751
+ }
5752
+ function guarded(getKey = function() {
5753
+ return this;
5754
+ }) {
5755
+ return (target, _) => {
5756
+ const mutexes = /* @__PURE__ */ new WeakMap();
5757
+ return async function(...args) {
5758
+ const env_1 = { stack: [], error: void 0, hasError: false };
5759
+ try {
5760
+ const key = getKey.call(this);
5761
+ let mutex = mutexes.get(key);
5762
+ if (!mutex) {
5763
+ mutex = new Mutex();
5764
+ mutexes.set(key, mutex);
5765
+ }
5766
+ const _2 = __addDisposableResource(env_1, await mutex.acquire(), true);
5767
+ return await target.call(this, ...args);
5768
+ } catch (e_1) {
5769
+ env_1.error = e_1;
5770
+ env_1.hasError = true;
5771
+ } finally {
5772
+ const result_1 = __disposeResources(env_1);
5773
+ if (result_1)
5774
+ await result_1;
5775
+ }
5776
+ };
5777
+ };
5778
+ }
5659
5779
 
5660
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/Target.js
5661
- init_dirname();
5662
- init_buffer2();
5663
- var TargetType;
5664
- (function(TargetType2) {
5665
- TargetType2["PAGE"] = "page";
5666
- TargetType2["BACKGROUND_PAGE"] = "background_page";
5667
- TargetType2["SERVICE_WORKER"] = "service_worker";
5668
- TargetType2["SHARED_WORKER"] = "shared_worker";
5669
- TargetType2["BROWSER"] = "browser";
5670
- TargetType2["WEBVIEW"] = "webview";
5671
- TargetType2["OTHER"] = "other";
5672
- TargetType2["TAB"] = "tab";
5673
- })(TargetType || (TargetType = {}));
5674
- var Target = class {
5675
- /**
5676
- * @internal
5677
- */
5678
- constructor() {
5679
- }
5680
- /**
5681
- * If the target is not of type `"service_worker"` or `"shared_worker"`, returns `null`.
5682
- */
5683
- async worker() {
5684
- return null;
5685
- }
5686
- /**
5687
- * If the target is not of type `"page"`, `"webview"` or `"background_page"`,
5688
- * returns `null`.
5689
- */
5690
- async page() {
5691
- return null;
5692
- }
5693
- };
5694
-
5695
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
5696
- init_dirname();
5697
- init_buffer2();
5698
-
5699
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
5700
- init_dirname();
5701
- init_buffer2();
5702
-
5703
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js
5704
- init_dirname();
5705
- init_buffer2();
5706
- function isErrorLike(obj) {
5707
- return typeof obj === "object" && obj !== null && "name" in obj && "message" in obj;
5708
- }
5709
- function rewriteError(error, message, originalMessage) {
5710
- error.message = message;
5711
- error.originalMessage = originalMessage ?? error.originalMessage;
5712
- return error;
5713
- }
5714
- function createProtocolErrorMessage(object) {
5715
- let message = object.error.message;
5716
- if (object.error && typeof object.error === "object" && "data" in object.error) {
5717
- message += ` ${object.error.data}`;
5718
- }
5719
- return message;
5720
- }
5721
-
5722
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js
5723
- init_dirname();
5724
- init_buffer2();
5725
- function createIncrementalIdGenerator() {
5726
- let id = 0;
5727
- return () => {
5728
- return ++id;
5729
- };
5730
- }
5731
-
5732
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
5733
- var CallbackRegistry = class {
5734
- #callbacks = /* @__PURE__ */ new Map();
5735
- #idGenerator = createIncrementalIdGenerator();
5736
- create(label, timeout2, request) {
5737
- const callback = new Callback(this.#idGenerator(), label, timeout2);
5738
- this.#callbacks.set(callback.id, callback);
5739
- try {
5740
- request(callback.id);
5741
- } catch (error) {
5742
- callback.promise.catch(debugError).finally(() => {
5743
- this.#callbacks.delete(callback.id);
5744
- });
5745
- callback.reject(error);
5746
- throw error;
5747
- }
5748
- return callback.promise.finally(() => {
5749
- this.#callbacks.delete(callback.id);
5750
- });
5751
- }
5752
- reject(id, message, originalMessage) {
5753
- const callback = this.#callbacks.get(id);
5754
- if (!callback) {
5755
- return;
5756
- }
5757
- this._reject(callback, message, originalMessage);
5758
- }
5759
- _reject(callback, errorMessage, originalMessage) {
5760
- let error;
5761
- let message;
5762
- if (errorMessage instanceof ProtocolError) {
5763
- error = errorMessage;
5764
- error.cause = callback.error;
5765
- message = errorMessage.message;
5766
- } else {
5767
- error = callback.error;
5768
- message = errorMessage;
5769
- }
5770
- callback.reject(rewriteError(error, `Protocol error (${callback.label}): ${message}`, originalMessage));
5771
- }
5772
- resolve(id, value) {
5773
- const callback = this.#callbacks.get(id);
5774
- if (!callback) {
5775
- return;
5776
- }
5777
- callback.resolve(value);
5778
- }
5779
- clear() {
5780
- for (const callback of this.#callbacks.values()) {
5781
- this._reject(callback, new TargetCloseError("Target closed"));
5782
- }
5783
- this.#callbacks.clear();
5784
- }
5785
- /**
5786
- * @internal
5787
- */
5788
- getPendingProtocolErrors() {
5789
- const result = [];
5790
- for (const callback of this.#callbacks.values()) {
5791
- result.push(new Error(`${callback.label} timed out. Trace: ${callback.error.stack}`));
5792
- }
5793
- return result;
5794
- }
5795
- };
5796
- var Callback = class {
5797
- #id;
5798
- #error = new ProtocolError();
5799
- #deferred = Deferred.create();
5800
- #timer;
5801
- #label;
5802
- constructor(id, label, timeout2) {
5803
- this.#id = id;
5804
- this.#label = label;
5805
- if (timeout2) {
5806
- this.#timer = setTimeout(() => {
5807
- this.#deferred.reject(rewriteError(this.#error, `${label} timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.`));
5808
- }, timeout2);
5809
- }
5810
- }
5811
- resolve(value) {
5812
- clearTimeout(this.#timer);
5813
- this.#deferred.resolve(value);
5814
- }
5815
- reject(error) {
5816
- clearTimeout(this.#timer);
5817
- this.#deferred.reject(error);
5818
- }
5819
- get id() {
5820
- return this.#id;
5821
- }
5822
- get promise() {
5823
- return this.#deferred.valueOrThrow();
5824
- }
5825
- get error() {
5826
- return this.#error;
5827
- }
5828
- get label() {
5829
- return this.#label;
5830
- }
5831
- };
5832
-
5833
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
5834
- var CdpCDPSession = class extends CDPSession {
5835
- #sessionId;
5836
- #targetType;
5837
- #callbacks = new CallbackRegistry();
5838
- #connection;
5839
- #parentSessionId;
5840
- #target;
5841
- /**
5842
- * @internal
5843
- */
5844
- constructor(connection, targetType, sessionId, parentSessionId) {
5845
- super();
5846
- this.#connection = connection;
5847
- this.#targetType = targetType;
5848
- this.#sessionId = sessionId;
5849
- this.#parentSessionId = parentSessionId;
5850
- }
5851
- /**
5852
- * Sets the {@link CdpTarget} associated with the session instance.
5853
- *
5854
- * @internal
5855
- */
5856
- _setTarget(target) {
5857
- this.#target = target;
5858
- }
5859
- /**
5860
- * Gets the {@link CdpTarget} associated with the session instance.
5861
- *
5862
- * @internal
5863
- */
5864
- _target() {
5865
- assert(this.#target, "Target must exist");
5866
- return this.#target;
5867
- }
5868
- connection() {
5869
- return this.#connection;
5870
- }
5871
- parentSession() {
5872
- if (!this.#parentSessionId) {
5873
- return this;
5874
- }
5875
- const parent = this.#connection?.session(this.#parentSessionId);
5876
- return parent ?? void 0;
5877
- }
5878
- send(method, params, options) {
5879
- if (!this.#connection) {
5880
- return Promise.reject(new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${this.#targetType} has been closed.`));
5881
- }
5882
- return this.#connection._rawSend(this.#callbacks, method, params, this.#sessionId, options);
5883
- }
5884
- /**
5885
- * @internal
5886
- */
5887
- _onMessage(object) {
5888
- if (object.id) {
5889
- if (object.error) {
5890
- this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
5891
- } else {
5892
- this.#callbacks.resolve(object.id, object.result);
5893
- }
5894
- } else {
5895
- assert(!object.id);
5896
- this.emit(object.method, object.params);
5897
- }
5898
- }
5899
- /**
5900
- * Detaches the cdpSession from the target. Once detached, the cdpSession object
5901
- * won't emit any events and can't be used to send messages.
5902
- */
5903
- async detach() {
5904
- if (!this.#connection) {
5905
- throw new Error(`Session already detached. Most likely the ${this.#targetType} has been closed.`);
5906
- }
5907
- await this.#connection.send("Target.detachFromTarget", {
5908
- sessionId: this.#sessionId
5909
- });
5910
- }
5911
- /**
5912
- * @internal
5913
- */
5914
- _onClosed() {
5915
- this.#callbacks.clear();
5916
- this.#connection = void 0;
5917
- this.emit(CDPSessionEvent.Disconnected, void 0);
5918
- }
5919
- /**
5920
- * Returns the session's id.
5921
- */
5922
- id() {
5923
- return this.#sessionId;
5924
- }
5925
- /**
5926
- * @internal
5927
- */
5928
- getPendingProtocolErrors() {
5929
- return this.#callbacks.getPendingProtocolErrors();
5930
- }
5931
- };
5932
-
5933
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
5934
- init_dirname();
5935
- init_buffer2();
5936
-
5937
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/Page.js
5938
- init_dirname();
5939
- init_buffer2();
5940
-
5941
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js
5942
- init_dirname();
5943
- init_buffer2();
5944
- var DEFAULT_TIMEOUT = 3e4;
5945
- var TimeoutSettings = class {
5946
- #defaultTimeout;
5947
- #defaultNavigationTimeout;
5948
- constructor() {
5949
- this.#defaultTimeout = null;
5950
- this.#defaultNavigationTimeout = null;
5951
- }
5952
- setDefaultTimeout(timeout2) {
5953
- this.#defaultTimeout = timeout2;
5954
- }
5955
- setDefaultNavigationTimeout(timeout2) {
5956
- this.#defaultNavigationTimeout = timeout2;
5957
- }
5958
- navigationTimeout() {
5959
- if (this.#defaultNavigationTimeout !== null) {
5960
- return this.#defaultNavigationTimeout;
5961
- }
5962
- if (this.#defaultTimeout !== null) {
5963
- return this.#defaultTimeout;
5964
- }
5965
- return DEFAULT_TIMEOUT;
5966
- }
5967
- timeout() {
5968
- if (this.#defaultTimeout !== null) {
5969
- return this.#defaultTimeout;
5970
- }
5971
- return DEFAULT_TIMEOUT;
5972
- }
5973
- };
5974
-
5975
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/decorators.js
5780
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/locators/locators.js
5976
5781
  init_dirname();
5977
5782
  init_buffer2();
5978
5783
  var __addDisposableResource2 = function(env, value, async2) {
@@ -6033,167 +5838,6 @@
6033
5838
  var e = new Error(message);
6034
5839
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
6035
5840
  });
6036
- var instances = /* @__PURE__ */ new WeakSet();
6037
- function moveable(Class, _) {
6038
- let hasDispose = false;
6039
- if (Class.prototype[disposeSymbol]) {
6040
- const dispose = Class.prototype[disposeSymbol];
6041
- Class.prototype[disposeSymbol] = function() {
6042
- if (instances.has(this)) {
6043
- instances.delete(this);
6044
- return;
6045
- }
6046
- return dispose.call(this);
6047
- };
6048
- hasDispose = true;
6049
- }
6050
- if (Class.prototype[asyncDisposeSymbol]) {
6051
- const asyncDispose = Class.prototype[asyncDisposeSymbol];
6052
- Class.prototype[asyncDisposeSymbol] = function() {
6053
- if (instances.has(this)) {
6054
- instances.delete(this);
6055
- return;
6056
- }
6057
- return asyncDispose.call(this);
6058
- };
6059
- hasDispose = true;
6060
- }
6061
- if (hasDispose) {
6062
- Class.prototype.move = function() {
6063
- instances.add(this);
6064
- return this;
6065
- };
6066
- }
6067
- return Class;
6068
- }
6069
- function throwIfDisposed(message = (value) => {
6070
- return `Attempted to use disposed ${value.constructor.name}.`;
6071
- }) {
6072
- return (target, _) => {
6073
- return function(...args) {
6074
- if (this.disposed) {
6075
- throw new Error(message(this));
6076
- }
6077
- return target.call(this, ...args);
6078
- };
6079
- };
6080
- }
6081
- function invokeAtMostOnceForArguments(target, _) {
6082
- const cache = /* @__PURE__ */ new WeakMap();
6083
- let cacheDepth = -1;
6084
- return function(...args) {
6085
- if (cacheDepth === -1) {
6086
- cacheDepth = args.length;
6087
- }
6088
- if (cacheDepth !== args.length) {
6089
- throw new Error("Memoized method was called with the wrong number of arguments");
6090
- }
6091
- let freshArguments = false;
6092
- let cacheIterator = cache;
6093
- for (const arg of args) {
6094
- if (cacheIterator.has(arg)) {
6095
- cacheIterator = cacheIterator.get(arg);
6096
- } else {
6097
- freshArguments = true;
6098
- cacheIterator.set(arg, /* @__PURE__ */ new WeakMap());
6099
- cacheIterator = cacheIterator.get(arg);
6100
- }
6101
- }
6102
- if (!freshArguments) {
6103
- return;
6104
- }
6105
- return target.call(this, ...args);
6106
- };
6107
- }
6108
- function guarded(getKey = function() {
6109
- return this;
6110
- }) {
6111
- return (target, _) => {
6112
- const mutexes = /* @__PURE__ */ new WeakMap();
6113
- return async function(...args) {
6114
- const env_1 = { stack: [], error: void 0, hasError: false };
6115
- try {
6116
- const key = getKey.call(this);
6117
- let mutex = mutexes.get(key);
6118
- if (!mutex) {
6119
- mutex = new Mutex();
6120
- mutexes.set(key, mutex);
6121
- }
6122
- const _2 = __addDisposableResource2(env_1, await mutex.acquire(), true);
6123
- return await target.call(this, ...args);
6124
- } catch (e_1) {
6125
- env_1.error = e_1;
6126
- env_1.hasError = true;
6127
- } finally {
6128
- const result_1 = __disposeResources2(env_1);
6129
- if (result_1)
6130
- await result_1;
6131
- }
6132
- };
6133
- };
6134
- }
6135
-
6136
- // node_modules/puppeteer-core/lib/esm/puppeteer/api/locators/locators.js
6137
- init_dirname();
6138
- init_buffer2();
6139
- var __addDisposableResource3 = function(env, value, async2) {
6140
- if (value !== null && value !== void 0) {
6141
- if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
6142
- var dispose, inner;
6143
- if (async2) {
6144
- if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
6145
- dispose = value[Symbol.asyncDispose];
6146
- }
6147
- if (dispose === void 0) {
6148
- if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
6149
- dispose = value[Symbol.dispose];
6150
- if (async2) inner = dispose;
6151
- }
6152
- if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
6153
- if (inner) dispose = function() {
6154
- try {
6155
- inner.call(this);
6156
- } catch (e) {
6157
- return Promise.reject(e);
6158
- }
6159
- };
6160
- env.stack.push({ value, dispose, async: async2 });
6161
- } else if (async2) {
6162
- env.stack.push({ async: true });
6163
- }
6164
- return value;
6165
- };
6166
- var __disposeResources3 = /* @__PURE__ */ function(SuppressedError2) {
6167
- return function(env) {
6168
- function fail(e) {
6169
- env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
6170
- env.hasError = true;
6171
- }
6172
- var r, s = 0;
6173
- function next() {
6174
- while (r = env.stack.pop()) {
6175
- try {
6176
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
6177
- if (r.dispose) {
6178
- var result = r.dispose.call(r.value);
6179
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
6180
- fail(e);
6181
- return next();
6182
- });
6183
- } else s |= 1;
6184
- } catch (e) {
6185
- fail(e);
6186
- }
6187
- }
6188
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
6189
- if (env.hasError) throw env.error;
6190
- }
6191
- return next();
6192
- };
6193
- }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
6194
- var e = new Error(message);
6195
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
6196
- });
6197
5841
  var LocatorEvent;
6198
5842
  (function(LocatorEvent2) {
6199
5843
  LocatorEvent2["Action"] = "action";
@@ -6552,13 +6196,13 @@
6552
6196
  async wait(options) {
6553
6197
  const env_1 = { stack: [], error: void 0, hasError: false };
6554
6198
  try {
6555
- const handle = __addDisposableResource3(env_1, await this.waitHandle(options), false);
6199
+ const handle = __addDisposableResource2(env_1, await this.waitHandle(options), false);
6556
6200
  return await handle.jsonValue();
6557
6201
  } catch (e_1) {
6558
6202
  env_1.error = e_1;
6559
6203
  env_1.hasError = true;
6560
6204
  } finally {
6561
- __disposeResources3(env_1);
6205
+ __disposeResources2(env_1);
6562
6206
  }
6563
6207
  }
6564
6208
  /**
@@ -6845,7 +6489,7 @@
6845
6489
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
6846
6490
  done = true;
6847
6491
  };
6848
- var __addDisposableResource4 = function(env, value, async2) {
6492
+ var __addDisposableResource3 = function(env, value, async2) {
6849
6493
  if (value !== null && value !== void 0) {
6850
6494
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
6851
6495
  var dispose, inner;
@@ -6872,7 +6516,7 @@
6872
6516
  }
6873
6517
  return value;
6874
6518
  };
6875
- var __disposeResources4 = /* @__PURE__ */ function(SuppressedError2) {
6519
+ var __disposeResources3 = /* @__PURE__ */ function(SuppressedError2) {
6876
6520
  return function(env) {
6877
6521
  function fail(e) {
6878
6522
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -7744,7 +7388,7 @@
7744
7388
  const env_1 = { stack: [], error: void 0, hasError: false };
7745
7389
  try {
7746
7390
  const viewport = this.viewport();
7747
- const stack = __addDisposableResource4(env_1, new DisposableStack(), false);
7391
+ const stack = __addDisposableResource3(env_1, new DisposableStack(), false);
7748
7392
  if (viewport && viewport.deviceScaleFactor !== 0) {
7749
7393
  await this.setViewport({ ...viewport, deviceScaleFactor: 0 });
7750
7394
  stack.defer(() => {
@@ -7762,14 +7406,13 @@
7762
7406
  env_1.error = e_1;
7763
7407
  env_1.hasError = true;
7764
7408
  } finally {
7765
- __disposeResources4(env_1);
7409
+ __disposeResources3(env_1);
7766
7410
  }
7767
7411
  }
7768
7412
  async screenshot(userOptions = {}) {
7769
7413
  const env_2 = { stack: [], error: void 0, hasError: false };
7770
7414
  try {
7771
- const _guard = __addDisposableResource4(env_2, await this.browserContext().startScreenshot(), false);
7772
- await this.bringToFront();
7415
+ const _guard = __addDisposableResource3(env_2, await this.browserContext().startScreenshot(), false);
7773
7416
  const options = {
7774
7417
  ...userOptions,
7775
7418
  clip: userOptions.clip ? {
@@ -7809,7 +7452,7 @@
7809
7452
  }
7810
7453
  }
7811
7454
  setDefaultScreenshotOptions(options);
7812
- const stack = __addDisposableResource4(env_2, new AsyncDisposableStack(), true);
7455
+ const stack = __addDisposableResource3(env_2, new AsyncDisposableStack(), true);
7813
7456
  if (options.clip) {
7814
7457
  if (options.fullPage) {
7815
7458
  throw new Error("'clip' and 'fullPage' are mutually exclusive");
@@ -7849,7 +7492,7 @@
7849
7492
  env_2.error = e_2;
7850
7493
  env_2.hasError = true;
7851
7494
  } finally {
7852
- const result_1 = __disposeResources4(env_2);
7495
+ const result_1 = __disposeResources3(env_2);
7853
7496
  if (result_1)
7854
7497
  await result_1;
7855
7498
  }
@@ -8342,19 +7985,38 @@
8342
7985
  element.dispatchEvent(new Event("cancel", { bubbles: true }));
8343
7986
  });
8344
7987
  }
8345
- };
8346
-
8347
- // node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js
8348
- init_dirname();
8349
- init_buffer2();
8350
- var NetworkManagerEvent;
8351
- (function(NetworkManagerEvent2) {
8352
- NetworkManagerEvent2.Request = Symbol("NetworkManager.Request");
8353
- NetworkManagerEvent2.RequestServedFromCache = Symbol("NetworkManager.RequestServedFromCache");
8354
- NetworkManagerEvent2.Response = Symbol("NetworkManager.Response");
8355
- NetworkManagerEvent2.RequestFailed = Symbol("NetworkManager.RequestFailed");
8356
- NetworkManagerEvent2.RequestFinished = Symbol("NetworkManager.RequestFinished");
8357
- })(NetworkManagerEvent || (NetworkManagerEvent = {}));
7988
+ };
7989
+
7990
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js
7991
+ init_dirname();
7992
+ init_buffer2();
7993
+ var NetworkManagerEvent;
7994
+ (function(NetworkManagerEvent2) {
7995
+ NetworkManagerEvent2.Request = Symbol("NetworkManager.Request");
7996
+ NetworkManagerEvent2.RequestServedFromCache = Symbol("NetworkManager.RequestServedFromCache");
7997
+ NetworkManagerEvent2.Response = Symbol("NetworkManager.Response");
7998
+ NetworkManagerEvent2.RequestFailed = Symbol("NetworkManager.RequestFailed");
7999
+ NetworkManagerEvent2.RequestFinished = Symbol("NetworkManager.RequestFinished");
8000
+ })(NetworkManagerEvent || (NetworkManagerEvent = {}));
8001
+
8002
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js
8003
+ init_dirname();
8004
+ init_buffer2();
8005
+ function isErrorLike(obj) {
8006
+ return typeof obj === "object" && obj !== null && "name" in obj && "message" in obj;
8007
+ }
8008
+ function rewriteError(error, message, originalMessage) {
8009
+ error.message = message;
8010
+ error.originalMessage = originalMessage ?? error.originalMessage;
8011
+ return error;
8012
+ }
8013
+ function createProtocolErrorMessage(object) {
8014
+ let message = object.error.message;
8015
+ if (object.error && typeof object.error === "object" && "data" in object.error) {
8016
+ message += ` ${object.error.data}`;
8017
+ }
8018
+ return message;
8019
+ }
8358
8020
 
8359
8021
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Binding.js
8360
8022
  init_dirname();
@@ -8402,7 +8064,7 @@
8402
8064
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
8403
8065
  done = true;
8404
8066
  };
8405
- var __addDisposableResource5 = function(env, value, async2) {
8067
+ var __addDisposableResource4 = function(env, value, async2) {
8406
8068
  if (value !== null && value !== void 0) {
8407
8069
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
8408
8070
  var dispose, inner;
@@ -8429,7 +8091,7 @@
8429
8091
  }
8430
8092
  return value;
8431
8093
  };
8432
- var __disposeResources5 = /* @__PURE__ */ function(SuppressedError2) {
8094
+ var __disposeResources4 = /* @__PURE__ */ function(SuppressedError2) {
8433
8095
  return function(env) {
8434
8096
  function fail(e) {
8435
8097
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -8546,7 +8208,7 @@
8546
8208
  for (const [key, value] of Object.entries(propertyNames)) {
8547
8209
  const env_1 = { stack: [], error: void 0, hasError: false };
8548
8210
  try {
8549
- const handle = __addDisposableResource5(env_1, results[key], false);
8211
+ const handle = __addDisposableResource4(env_1, results[key], false);
8550
8212
  if (handle) {
8551
8213
  map2.set(value, handle.move());
8552
8214
  }
@@ -8554,7 +8216,7 @@
8554
8216
  env_1.error = e_1;
8555
8217
  env_1.hasError = true;
8556
8218
  } finally {
8557
- __disposeResources5(env_1);
8219
+ __disposeResources4(env_1);
8558
8220
  }
8559
8221
  }
8560
8222
  return map2;
@@ -8572,7 +8234,7 @@
8572
8234
  })();
8573
8235
 
8574
8236
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Binding.js
8575
- var __addDisposableResource6 = function(env, value, async2) {
8237
+ var __addDisposableResource5 = function(env, value, async2) {
8576
8238
  if (value !== null && value !== void 0) {
8577
8239
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
8578
8240
  var dispose, inner;
@@ -8597,119 +8259,351 @@
8597
8259
  } else if (async2) {
8598
8260
  env.stack.push({ async: true });
8599
8261
  }
8600
- return value;
8262
+ return value;
8263
+ };
8264
+ var __disposeResources5 = /* @__PURE__ */ function(SuppressedError2) {
8265
+ return function(env) {
8266
+ function fail(e) {
8267
+ env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
8268
+ env.hasError = true;
8269
+ }
8270
+ var r, s = 0;
8271
+ function next() {
8272
+ while (r = env.stack.pop()) {
8273
+ try {
8274
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
8275
+ if (r.dispose) {
8276
+ var result = r.dispose.call(r.value);
8277
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
8278
+ fail(e);
8279
+ return next();
8280
+ });
8281
+ } else s |= 1;
8282
+ } catch (e) {
8283
+ fail(e);
8284
+ }
8285
+ }
8286
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
8287
+ if (env.hasError) throw env.error;
8288
+ }
8289
+ return next();
8290
+ };
8291
+ }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
8292
+ var e = new Error(message);
8293
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
8294
+ });
8295
+ var Binding = class {
8296
+ #name;
8297
+ #fn;
8298
+ #initSource;
8299
+ constructor(name, fn, initSource) {
8300
+ this.#name = name;
8301
+ this.#fn = fn;
8302
+ this.#initSource = initSource;
8303
+ }
8304
+ get name() {
8305
+ return this.#name;
8306
+ }
8307
+ get initSource() {
8308
+ return this.#initSource;
8309
+ }
8310
+ /**
8311
+ * @param context - Context to run the binding in; the context should have
8312
+ * the binding added to it beforehand.
8313
+ * @param id - ID of the call. This should come from the CDP
8314
+ * `onBindingCalled` response.
8315
+ * @param args - Plain arguments from CDP.
8316
+ */
8317
+ async run(context2, id, args, isTrivial) {
8318
+ const stack = new DisposableStack();
8319
+ try {
8320
+ if (!isTrivial) {
8321
+ const env_1 = { stack: [], error: void 0, hasError: false };
8322
+ try {
8323
+ const handles = __addDisposableResource5(env_1, await context2.evaluateHandle((name, seq) => {
8324
+ return globalThis[name].args.get(seq);
8325
+ }, this.#name, id), false);
8326
+ const properties = await handles.getProperties();
8327
+ for (const [index, handle] of properties) {
8328
+ if (index in args) {
8329
+ switch (handle.remoteObject().subtype) {
8330
+ case "node":
8331
+ args[+index] = handle;
8332
+ break;
8333
+ default:
8334
+ stack.use(handle);
8335
+ }
8336
+ } else {
8337
+ stack.use(handle);
8338
+ }
8339
+ }
8340
+ } catch (e_1) {
8341
+ env_1.error = e_1;
8342
+ env_1.hasError = true;
8343
+ } finally {
8344
+ __disposeResources5(env_1);
8345
+ }
8346
+ }
8347
+ await context2.evaluate((name, seq, result) => {
8348
+ const callbacks = globalThis[name].callbacks;
8349
+ callbacks.get(seq).resolve(result);
8350
+ callbacks.delete(seq);
8351
+ }, this.#name, id, await this.#fn(...args));
8352
+ for (const arg of args) {
8353
+ if (arg instanceof JSHandle) {
8354
+ stack.use(arg);
8355
+ }
8356
+ }
8357
+ } catch (error) {
8358
+ if (isErrorLike(error)) {
8359
+ await context2.evaluate((name, seq, message, stack2) => {
8360
+ const error2 = new Error(message);
8361
+ error2.stack = stack2;
8362
+ const callbacks = globalThis[name].callbacks;
8363
+ callbacks.get(seq).reject(error2);
8364
+ callbacks.delete(seq);
8365
+ }, this.#name, id, error.message, error.stack).catch(debugError);
8366
+ } else {
8367
+ await context2.evaluate((name, seq, error2) => {
8368
+ const callbacks = globalThis[name].callbacks;
8369
+ callbacks.get(seq).reject(error2);
8370
+ callbacks.delete(seq);
8371
+ }, this.#name, id, error).catch(debugError);
8372
+ }
8373
+ }
8374
+ }
8375
+ };
8376
+
8377
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8378
+ init_dirname();
8379
+ init_buffer2();
8380
+
8381
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
8382
+ init_dirname();
8383
+ init_buffer2();
8384
+
8385
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js
8386
+ init_dirname();
8387
+ init_buffer2();
8388
+ function createIncrementalIdGenerator() {
8389
+ let id = 0;
8390
+ return () => {
8391
+ return ++id;
8392
+ };
8393
+ }
8394
+
8395
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js
8396
+ var CallbackRegistry = class {
8397
+ #callbacks = /* @__PURE__ */ new Map();
8398
+ #idGenerator = createIncrementalIdGenerator();
8399
+ create(label, timeout2, request) {
8400
+ const callback = new Callback(this.#idGenerator(), label, timeout2);
8401
+ this.#callbacks.set(callback.id, callback);
8402
+ try {
8403
+ request(callback.id);
8404
+ } catch (error) {
8405
+ callback.promise.catch(debugError).finally(() => {
8406
+ this.#callbacks.delete(callback.id);
8407
+ });
8408
+ callback.reject(error);
8409
+ throw error;
8410
+ }
8411
+ return callback.promise.finally(() => {
8412
+ this.#callbacks.delete(callback.id);
8413
+ });
8414
+ }
8415
+ reject(id, message, originalMessage) {
8416
+ const callback = this.#callbacks.get(id);
8417
+ if (!callback) {
8418
+ return;
8419
+ }
8420
+ this._reject(callback, message, originalMessage);
8421
+ }
8422
+ rejectRaw(id, error) {
8423
+ const callback = this.#callbacks.get(id);
8424
+ if (!callback) {
8425
+ return;
8426
+ }
8427
+ callback.reject(error);
8428
+ }
8429
+ _reject(callback, errorMessage, originalMessage) {
8430
+ let error;
8431
+ let message;
8432
+ if (errorMessage instanceof ProtocolError) {
8433
+ error = errorMessage;
8434
+ error.cause = callback.error;
8435
+ message = errorMessage.message;
8436
+ } else {
8437
+ error = callback.error;
8438
+ message = errorMessage;
8439
+ }
8440
+ callback.reject(rewriteError(error, `Protocol error (${callback.label}): ${message}`, originalMessage));
8441
+ }
8442
+ resolve(id, value) {
8443
+ const callback = this.#callbacks.get(id);
8444
+ if (!callback) {
8445
+ return;
8446
+ }
8447
+ callback.resolve(value);
8448
+ }
8449
+ clear() {
8450
+ for (const callback of this.#callbacks.values()) {
8451
+ this._reject(callback, new TargetCloseError("Target closed"));
8452
+ }
8453
+ this.#callbacks.clear();
8454
+ }
8455
+ /**
8456
+ * @internal
8457
+ */
8458
+ getPendingProtocolErrors() {
8459
+ const result = [];
8460
+ for (const callback of this.#callbacks.values()) {
8461
+ result.push(new Error(`${callback.label} timed out. Trace: ${callback.error.stack}`));
8462
+ }
8463
+ return result;
8464
+ }
8465
+ };
8466
+ var Callback = class {
8467
+ #id;
8468
+ #error = new ProtocolError();
8469
+ #deferred = Deferred.create();
8470
+ #timer;
8471
+ #label;
8472
+ constructor(id, label, timeout2) {
8473
+ this.#id = id;
8474
+ this.#label = label;
8475
+ if (timeout2) {
8476
+ this.#timer = setTimeout(() => {
8477
+ this.#deferred.reject(rewriteError(this.#error, `${label} timed out. Increase the 'protocolTimeout' setting in launch/connect calls for a higher timeout if needed.`));
8478
+ }, timeout2);
8479
+ }
8480
+ }
8481
+ resolve(value) {
8482
+ clearTimeout(this.#timer);
8483
+ this.#deferred.resolve(value);
8484
+ }
8485
+ reject(error) {
8486
+ clearTimeout(this.#timer);
8487
+ this.#deferred.reject(error);
8488
+ }
8489
+ get id() {
8490
+ return this.#id;
8491
+ }
8492
+ get promise() {
8493
+ return this.#deferred.valueOrThrow();
8494
+ }
8495
+ get error() {
8496
+ return this.#error;
8497
+ }
8498
+ get label() {
8499
+ return this.#label;
8500
+ }
8601
8501
  };
8602
- var __disposeResources6 = /* @__PURE__ */ function(SuppressedError2) {
8603
- return function(env) {
8604
- function fail(e) {
8605
- env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
8606
- env.hasError = true;
8607
- }
8608
- var r, s = 0;
8609
- function next() {
8610
- while (r = env.stack.pop()) {
8611
- try {
8612
- if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
8613
- if (r.dispose) {
8614
- var result = r.dispose.call(r.value);
8615
- if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
8616
- fail(e);
8617
- return next();
8618
- });
8619
- } else s |= 1;
8620
- } catch (e) {
8621
- fail(e);
8622
- }
8623
- }
8624
- if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
8625
- if (env.hasError) throw env.error;
8626
- }
8627
- return next();
8628
- };
8629
- }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
8630
- var e = new Error(message);
8631
- return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
8632
- });
8633
- var Binding = class {
8634
- #name;
8635
- #fn;
8636
- #initSource;
8637
- constructor(name, fn, initSource) {
8638
- this.#name = name;
8639
- this.#fn = fn;
8640
- this.#initSource = initSource;
8502
+
8503
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8504
+ var CdpCDPSession = class extends CDPSession {
8505
+ #sessionId;
8506
+ #targetType;
8507
+ #callbacks = new CallbackRegistry();
8508
+ #connection;
8509
+ #parentSessionId;
8510
+ #target;
8511
+ #rawErrors = false;
8512
+ /**
8513
+ * @internal
8514
+ */
8515
+ constructor(connection, targetType, sessionId, parentSessionId, rawErrors) {
8516
+ super();
8517
+ this.#connection = connection;
8518
+ this.#targetType = targetType;
8519
+ this.#sessionId = sessionId;
8520
+ this.#parentSessionId = parentSessionId;
8521
+ this.#rawErrors = rawErrors;
8641
8522
  }
8642
- get name() {
8643
- return this.#name;
8523
+ /**
8524
+ * Sets the {@link CdpTarget} associated with the session instance.
8525
+ *
8526
+ * @internal
8527
+ */
8528
+ _setTarget(target) {
8529
+ this.#target = target;
8644
8530
  }
8645
- get initSource() {
8646
- return this.#initSource;
8531
+ /**
8532
+ * Gets the {@link CdpTarget} associated with the session instance.
8533
+ *
8534
+ * @internal
8535
+ */
8536
+ _target() {
8537
+ assert(this.#target, "Target must exist");
8538
+ return this.#target;
8539
+ }
8540
+ connection() {
8541
+ return this.#connection;
8542
+ }
8543
+ parentSession() {
8544
+ if (!this.#parentSessionId) {
8545
+ return this;
8546
+ }
8547
+ const parent = this.#connection?.session(this.#parentSessionId);
8548
+ return parent ?? void 0;
8549
+ }
8550
+ send(method, params, options) {
8551
+ if (!this.#connection) {
8552
+ return Promise.reject(new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${this.#targetType} has been closed.`));
8553
+ }
8554
+ return this.#connection._rawSend(this.#callbacks, method, params, this.#sessionId, options);
8647
8555
  }
8648
8556
  /**
8649
- * @param context - Context to run the binding in; the context should have
8650
- * the binding added to it beforehand.
8651
- * @param id - ID of the call. This should come from the CDP
8652
- * `onBindingCalled` response.
8653
- * @param args - Plain arguments from CDP.
8557
+ * @internal
8654
8558
  */
8655
- async run(context2, id, args, isTrivial) {
8656
- const stack = new DisposableStack();
8657
- try {
8658
- if (!isTrivial) {
8659
- const env_1 = { stack: [], error: void 0, hasError: false };
8660
- try {
8661
- const handles = __addDisposableResource6(env_1, await context2.evaluateHandle((name, seq) => {
8662
- return globalThis[name].args.get(seq);
8663
- }, this.#name, id), false);
8664
- const properties = await handles.getProperties();
8665
- for (const [index, handle] of properties) {
8666
- if (index in args) {
8667
- switch (handle.remoteObject().subtype) {
8668
- case "node":
8669
- args[+index] = handle;
8670
- break;
8671
- default:
8672
- stack.use(handle);
8673
- }
8674
- } else {
8675
- stack.use(handle);
8676
- }
8677
- }
8678
- } catch (e_1) {
8679
- env_1.error = e_1;
8680
- env_1.hasError = true;
8681
- } finally {
8682
- __disposeResources6(env_1);
8683
- }
8684
- }
8685
- await context2.evaluate((name, seq, result) => {
8686
- const callbacks = globalThis[name].callbacks;
8687
- callbacks.get(seq).resolve(result);
8688
- callbacks.delete(seq);
8689
- }, this.#name, id, await this.#fn(...args));
8690
- for (const arg of args) {
8691
- if (arg instanceof JSHandle) {
8692
- stack.use(arg);
8559
+ _onMessage(object) {
8560
+ if (object.id) {
8561
+ if (object.error) {
8562
+ if (this.#rawErrors) {
8563
+ this.#callbacks.rejectRaw(object.id, object.error);
8564
+ } else {
8565
+ this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8693
8566
  }
8694
- }
8695
- } catch (error) {
8696
- if (isErrorLike(error)) {
8697
- await context2.evaluate((name, seq, message, stack2) => {
8698
- const error2 = new Error(message);
8699
- error2.stack = stack2;
8700
- const callbacks = globalThis[name].callbacks;
8701
- callbacks.get(seq).reject(error2);
8702
- callbacks.delete(seq);
8703
- }, this.#name, id, error.message, error.stack).catch(debugError);
8704
8567
  } else {
8705
- await context2.evaluate((name, seq, error2) => {
8706
- const callbacks = globalThis[name].callbacks;
8707
- callbacks.get(seq).reject(error2);
8708
- callbacks.delete(seq);
8709
- }, this.#name, id, error).catch(debugError);
8568
+ this.#callbacks.resolve(object.id, object.result);
8710
8569
  }
8570
+ } else {
8571
+ assert(!object.id);
8572
+ this.emit(object.method, object.params);
8711
8573
  }
8712
8574
  }
8575
+ /**
8576
+ * Detaches the cdpSession from the target. Once detached, the cdpSession object
8577
+ * won't emit any events and can't be used to send messages.
8578
+ */
8579
+ async detach() {
8580
+ if (!this.#connection) {
8581
+ throw new Error(`Session already detached. Most likely the ${this.#targetType} has been closed.`);
8582
+ }
8583
+ await this.#connection.send("Target.detachFromTarget", {
8584
+ sessionId: this.#sessionId
8585
+ });
8586
+ }
8587
+ /**
8588
+ * @internal
8589
+ */
8590
+ _onClosed() {
8591
+ this.#callbacks.clear();
8592
+ this.#connection = void 0;
8593
+ this.emit(CDPSessionEvent.Disconnected, void 0);
8594
+ }
8595
+ /**
8596
+ * Returns the session's id.
8597
+ */
8598
+ id() {
8599
+ return this.#sessionId;
8600
+ }
8601
+ /**
8602
+ * @internal
8603
+ */
8604
+ getPendingProtocolErrors() {
8605
+ return this.#callbacks.getPendingProtocolErrors();
8606
+ }
8713
8607
  };
8714
8608
 
8715
8609
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Connection.js
@@ -8725,9 +8619,12 @@
8725
8619
  #sessions = /* @__PURE__ */ new Map();
8726
8620
  #closed = false;
8727
8621
  #manuallyAttached = /* @__PURE__ */ new Set();
8728
- #callbacks = new CallbackRegistry();
8729
- constructor(url, transport, delay = 0, timeout2) {
8622
+ #callbacks;
8623
+ #rawErrors = false;
8624
+ constructor(url, transport, delay = 0, timeout2, rawErrors = false) {
8730
8625
  super();
8626
+ this.#rawErrors = rawErrors;
8627
+ this.#callbacks = new CallbackRegistry();
8731
8628
  this.#url = url;
8732
8629
  this.#delay = delay;
8733
8630
  this.#timeout = timeout2 ?? 18e4;
@@ -8809,7 +8706,7 @@
8809
8706
  const object = JSON.parse(message);
8810
8707
  if (object.method === "Target.attachedToTarget") {
8811
8708
  const sessionId = object.params.sessionId;
8812
- const session = new CdpCDPSession(this, object.params.targetInfo.type, sessionId, object.sessionId);
8709
+ const session = new CdpCDPSession(this, object.params.targetInfo.type, sessionId, object.sessionId, this.#rawErrors);
8813
8710
  this.#sessions.set(sessionId, session);
8814
8711
  this.emit(CDPSessionEvent.SessionAttached, session);
8815
8712
  const parentSession = this.#sessions.get(object.sessionId);
@@ -8835,7 +8732,11 @@
8835
8732
  }
8836
8733
  } else if (object.id) {
8837
8734
  if (object.error) {
8838
- this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8735
+ if (this.#rawErrors) {
8736
+ this.#callbacks.rejectRaw(object.id, object.error);
8737
+ } else {
8738
+ this.#callbacks.reject(object.id, createProtocolErrorMessage(object), object.error.message);
8739
+ }
8839
8740
  } else {
8840
8741
  this.#callbacks.resolve(object.id, object.result);
8841
8742
  }
@@ -9939,7 +9840,7 @@
9939
9840
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/HandleIterator.js
9940
9841
  init_dirname();
9941
9842
  init_buffer2();
9942
- var __addDisposableResource7 = function(env, value, async2) {
9843
+ var __addDisposableResource6 = function(env, value, async2) {
9943
9844
  if (value !== null && value !== void 0) {
9944
9845
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
9945
9846
  var dispose, inner;
@@ -9966,7 +9867,7 @@
9966
9867
  }
9967
9868
  return value;
9968
9869
  };
9969
- var __disposeResources7 = /* @__PURE__ */ function(SuppressedError2) {
9870
+ var __disposeResources6 = /* @__PURE__ */ function(SuppressedError2) {
9970
9871
  return function(env) {
9971
9872
  function fail(e) {
9972
9873
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -10001,7 +9902,7 @@
10001
9902
  async function* fastTransposeIteratorHandle(iterator2, size) {
10002
9903
  const env_1 = { stack: [], error: void 0, hasError: false };
10003
9904
  try {
10004
- const array = __addDisposableResource7(env_1, await iterator2.evaluateHandle(async (iterator3, size2) => {
9905
+ const array = __addDisposableResource6(env_1, await iterator2.evaluateHandle(async (iterator3, size2) => {
10005
9906
  const results = [];
10006
9907
  while (results.length < size2) {
10007
9908
  const result = await iterator3.next();
@@ -10014,18 +9915,18 @@
10014
9915
  }, size), false);
10015
9916
  const properties = await array.getProperties();
10016
9917
  const handles = properties.values();
10017
- const stack = __addDisposableResource7(env_1, new DisposableStack(), false);
9918
+ const stack = __addDisposableResource6(env_1, new DisposableStack(), false);
10018
9919
  stack.defer(() => {
10019
9920
  for (const handle_1 of handles) {
10020
9921
  const env_2 = { stack: [], error: void 0, hasError: false };
10021
9922
  try {
10022
- const handle = __addDisposableResource7(env_2, handle_1, false);
9923
+ const handle = __addDisposableResource6(env_2, handle_1, false);
10023
9924
  handle[disposeSymbol]();
10024
9925
  } catch (e_2) {
10025
9926
  env_2.error = e_2;
10026
9927
  env_2.hasError = true;
10027
9928
  } finally {
10028
- __disposeResources7(env_2);
9929
+ __disposeResources6(env_2);
10029
9930
  }
10030
9931
  }
10031
9932
  });
@@ -10035,7 +9936,7 @@
10035
9936
  env_1.error = e_1;
10036
9937
  env_1.hasError = true;
10037
9938
  } finally {
10038
- __disposeResources7(env_1);
9939
+ __disposeResources6(env_1);
10039
9940
  }
10040
9941
  }
10041
9942
  async function* transposeIteratorHandle(iterator2) {
@@ -10047,7 +9948,7 @@
10047
9948
  async function* transposeIterableHandle(handle) {
10048
9949
  const env_3 = { stack: [], error: void 0, hasError: false };
10049
9950
  try {
10050
- const generatorHandle = __addDisposableResource7(env_3, await handle.evaluateHandle((iterable) => {
9951
+ const generatorHandle = __addDisposableResource6(env_3, await handle.evaluateHandle((iterable) => {
10051
9952
  return async function* () {
10052
9953
  yield* iterable;
10053
9954
  }();
@@ -10057,7 +9958,7 @@
10057
9958
  env_3.error = e_3;
10058
9959
  env_3.hasError = true;
10059
9960
  } finally {
10060
- __disposeResources7(env_3);
9961
+ __disposeResources6(env_3);
10061
9962
  }
10062
9963
  }
10063
9964
 
@@ -10078,7 +9979,7 @@
10078
9979
  };
10079
9980
 
10080
9981
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js
10081
- var __addDisposableResource8 = function(env, value, async2) {
9982
+ var __addDisposableResource7 = function(env, value, async2) {
10082
9983
  if (value !== null && value !== void 0) {
10083
9984
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
10084
9985
  var dispose, inner;
@@ -10105,7 +10006,7 @@
10105
10006
  }
10106
10007
  return value;
10107
10008
  };
10108
- var __disposeResources8 = /* @__PURE__ */ function(SuppressedError2) {
10009
+ var __disposeResources7 = /* @__PURE__ */ function(SuppressedError2) {
10109
10010
  return function(env) {
10110
10011
  function fail(e) {
10111
10012
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -10183,7 +10084,7 @@
10183
10084
  static async *queryAll(element, selector) {
10184
10085
  const env_1 = { stack: [], error: void 0, hasError: false };
10185
10086
  try {
10186
- const handle = __addDisposableResource8(env_1, await element.evaluateHandle(this._querySelectorAll, selector, LazyArg.create((context2) => {
10087
+ const handle = __addDisposableResource7(env_1, await element.evaluateHandle(this._querySelectorAll, selector, LazyArg.create((context2) => {
10187
10088
  return context2.puppeteerUtil;
10188
10089
  })), false);
10189
10090
  yield* transposeIterableHandle(handle);
@@ -10191,7 +10092,7 @@
10191
10092
  env_1.error = e_1;
10192
10093
  env_1.hasError = true;
10193
10094
  } finally {
10194
- __disposeResources8(env_1);
10095
+ __disposeResources7(env_1);
10195
10096
  }
10196
10097
  }
10197
10098
  /**
@@ -10202,7 +10103,7 @@
10202
10103
  static async queryOne(element, selector) {
10203
10104
  const env_2 = { stack: [], error: void 0, hasError: false };
10204
10105
  try {
10205
- const result = __addDisposableResource8(env_2, await element.evaluateHandle(this._querySelector, selector, LazyArg.create((context2) => {
10106
+ const result = __addDisposableResource7(env_2, await element.evaluateHandle(this._querySelector, selector, LazyArg.create((context2) => {
10206
10107
  return context2.puppeteerUtil;
10207
10108
  })), false);
10208
10109
  if (!(_isElementHandle in result)) {
@@ -10213,7 +10114,7 @@
10213
10114
  env_2.error = e_2;
10214
10115
  env_2.hasError = true;
10215
10116
  } finally {
10216
- __disposeResources8(env_2);
10117
+ __disposeResources7(env_2);
10217
10118
  }
10218
10119
  }
10219
10120
  /**
@@ -10227,7 +10128,7 @@
10227
10128
  const env_3 = { stack: [], error: void 0, hasError: false };
10228
10129
  try {
10229
10130
  let frame;
10230
- const element = __addDisposableResource8(env_3, await (async () => {
10131
+ const element = __addDisposableResource7(env_3, await (async () => {
10231
10132
  if (!(_isElementHandle in elementOrFrame)) {
10232
10133
  frame = elementOrFrame;
10233
10134
  return;
@@ -10241,7 +10142,7 @@
10241
10142
  const env_4 = { stack: [], error: void 0, hasError: false };
10242
10143
  try {
10243
10144
  signal?.throwIfAborted();
10244
- const handle = __addDisposableResource8(env_4, await frame.isolatedRealm().waitForFunction(async (PuppeteerUtil, query, selector2, root, visible2) => {
10145
+ const handle = __addDisposableResource7(env_4, await frame.isolatedRealm().waitForFunction(async (PuppeteerUtil, query, selector2, root, visible2) => {
10245
10146
  const querySelector = PuppeteerUtil.createFunction(query);
10246
10147
  const node = await querySelector(root ?? document, selector2, PuppeteerUtil);
10247
10148
  return PuppeteerUtil.checkVisibility(node, visible2);
@@ -10264,7 +10165,7 @@
10264
10165
  env_4.error = e_3;
10265
10166
  env_4.hasError = true;
10266
10167
  } finally {
10267
- __disposeResources8(env_4);
10168
+ __disposeResources7(env_4);
10268
10169
  }
10269
10170
  } catch (error) {
10270
10171
  if (!isErrorLike(error)) {
@@ -10280,7 +10181,7 @@
10280
10181
  env_3.error = e_4;
10281
10182
  env_3.hasError = true;
10282
10183
  } finally {
10283
- __disposeResources8(env_3);
10184
+ __disposeResources7(env_3);
10284
10185
  }
10285
10186
  }
10286
10187
  };
@@ -10673,32 +10574,22 @@
10673
10574
  }
10674
10575
  return tokens;
10675
10576
  }
10676
- function* flatten(node, parent) {
10677
- switch (node.type) {
10577
+ function stringify(listOrNode) {
10578
+ if (Array.isArray(listOrNode)) {
10579
+ return listOrNode.map((token) => token.content).join("");
10580
+ }
10581
+ switch (listOrNode.type) {
10678
10582
  case "list":
10679
- for (let child of node.list) {
10680
- yield* flatten(child, node);
10681
- }
10682
- break;
10583
+ return listOrNode.list.map(stringify).join(",");
10584
+ case "relative":
10585
+ return listOrNode.combinator + stringify(listOrNode.right);
10683
10586
  case "complex":
10684
- yield* flatten(node.left, node);
10685
- yield* flatten(node.right, node);
10686
- break;
10587
+ return stringify(listOrNode.left) + listOrNode.combinator + stringify(listOrNode.right);
10687
10588
  case "compound":
10688
- yield* node.list.map((token) => [token, node]);
10689
- break;
10589
+ return listOrNode.list.map(stringify).join("");
10690
10590
  default:
10691
- yield [node, parent];
10692
- }
10693
- }
10694
- function stringify(listOrNode) {
10695
- let tokens;
10696
- if (Array.isArray(listOrNode)) {
10697
- tokens = listOrNode;
10698
- } else {
10699
- tokens = [...flatten(listOrNode)].map(([token]) => token);
10591
+ return listOrNode.content;
10700
10592
  }
10701
- return tokens.map((token) => token.content).join("");
10702
10593
  }
10703
10594
 
10704
10595
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/PSelectorParser.js
@@ -10915,7 +10806,7 @@
10915
10806
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
10916
10807
  done = true;
10917
10808
  };
10918
- var __addDisposableResource9 = function(env, value, async2) {
10809
+ var __addDisposableResource8 = function(env, value, async2) {
10919
10810
  if (value !== null && value !== void 0) {
10920
10811
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
10921
10812
  var dispose, inner;
@@ -10942,7 +10833,7 @@
10942
10833
  }
10943
10834
  return value;
10944
10835
  };
10945
- var __disposeResources9 = /* @__PURE__ */ function(SuppressedError2) {
10836
+ var __disposeResources8 = /* @__PURE__ */ function(SuppressedError2) {
10946
10837
  return function(env) {
10947
10838
  function fail(e) {
10948
10839
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -11105,13 +10996,13 @@
11105
10996
  if (!parentFrame) {
11106
10997
  return null;
11107
10998
  }
11108
- const list = __addDisposableResource9(env_1, await parentFrame.isolatedRealm().evaluateHandle(() => {
10999
+ const list = __addDisposableResource8(env_1, await parentFrame.isolatedRealm().evaluateHandle(() => {
11109
11000
  return document.querySelectorAll("iframe,frame");
11110
11001
  }), false);
11111
11002
  for await (const iframe_1 of transposeIterableHandle(list)) {
11112
11003
  const env_2 = { stack: [], error: void 0, hasError: false };
11113
11004
  try {
11114
- const iframe = __addDisposableResource9(env_2, iframe_1, false);
11005
+ const iframe = __addDisposableResource8(env_2, iframe_1, false);
11115
11006
  const frame = await iframe.contentFrame();
11116
11007
  if (frame?._id === this._id) {
11117
11008
  return await parentFrame.mainRealm().adoptHandle(iframe);
@@ -11120,7 +11011,7 @@
11120
11011
  env_2.error = e_1;
11121
11012
  env_2.hasError = true;
11122
11013
  } finally {
11123
- __disposeResources9(env_2);
11014
+ __disposeResources8(env_2);
11124
11015
  }
11125
11016
  }
11126
11017
  return null;
@@ -11128,7 +11019,7 @@
11128
11019
  env_1.error = e_2;
11129
11020
  env_1.hasError = true;
11130
11021
  } finally {
11131
- __disposeResources9(env_1);
11022
+ __disposeResources8(env_1);
11132
11023
  }
11133
11024
  }
11134
11025
  /**
@@ -11532,7 +11423,7 @@
11532
11423
  async click(selector, options = {}) {
11533
11424
  const env_3 = { stack: [], error: void 0, hasError: false };
11534
11425
  try {
11535
- const handle = __addDisposableResource9(env_3, await this.$(selector), false);
11426
+ const handle = __addDisposableResource8(env_3, await this.$(selector), false);
11536
11427
  assert(handle, `No element found for selector: ${selector}`);
11537
11428
  await handle.click(options);
11538
11429
  await handle.dispose();
@@ -11540,7 +11431,7 @@
11540
11431
  env_3.error = e_3;
11541
11432
  env_3.hasError = true;
11542
11433
  } finally {
11543
- __disposeResources9(env_3);
11434
+ __disposeResources8(env_3);
11544
11435
  }
11545
11436
  }
11546
11437
  /**
@@ -11552,14 +11443,14 @@
11552
11443
  async focus(selector) {
11553
11444
  const env_4 = { stack: [], error: void 0, hasError: false };
11554
11445
  try {
11555
- const handle = __addDisposableResource9(env_4, await this.$(selector), false);
11446
+ const handle = __addDisposableResource8(env_4, await this.$(selector), false);
11556
11447
  assert(handle, `No element found for selector: ${selector}`);
11557
11448
  await handle.focus();
11558
11449
  } catch (e_4) {
11559
11450
  env_4.error = e_4;
11560
11451
  env_4.hasError = true;
11561
11452
  } finally {
11562
- __disposeResources9(env_4);
11453
+ __disposeResources8(env_4);
11563
11454
  }
11564
11455
  }
11565
11456
  /**
@@ -11572,14 +11463,14 @@
11572
11463
  async hover(selector) {
11573
11464
  const env_5 = { stack: [], error: void 0, hasError: false };
11574
11465
  try {
11575
- const handle = __addDisposableResource9(env_5, await this.$(selector), false);
11466
+ const handle = __addDisposableResource8(env_5, await this.$(selector), false);
11576
11467
  assert(handle, `No element found for selector: ${selector}`);
11577
11468
  await handle.hover();
11578
11469
  } catch (e_5) {
11579
11470
  env_5.error = e_5;
11580
11471
  env_5.hasError = true;
11581
11472
  } finally {
11582
- __disposeResources9(env_5);
11473
+ __disposeResources8(env_5);
11583
11474
  }
11584
11475
  }
11585
11476
  /**
@@ -11603,14 +11494,14 @@
11603
11494
  async select(selector, ...values) {
11604
11495
  const env_6 = { stack: [], error: void 0, hasError: false };
11605
11496
  try {
11606
- const handle = __addDisposableResource9(env_6, await this.$(selector), false);
11497
+ const handle = __addDisposableResource8(env_6, await this.$(selector), false);
11607
11498
  assert(handle, `No element found for selector: ${selector}`);
11608
11499
  return await handle.select(...values);
11609
11500
  } catch (e_6) {
11610
11501
  env_6.error = e_6;
11611
11502
  env_6.hasError = true;
11612
11503
  } finally {
11613
- __disposeResources9(env_6);
11504
+ __disposeResources8(env_6);
11614
11505
  }
11615
11506
  }
11616
11507
  /**
@@ -11622,14 +11513,14 @@
11622
11513
  async tap(selector) {
11623
11514
  const env_7 = { stack: [], error: void 0, hasError: false };
11624
11515
  try {
11625
- const handle = __addDisposableResource9(env_7, await this.$(selector), false);
11516
+ const handle = __addDisposableResource8(env_7, await this.$(selector), false);
11626
11517
  assert(handle, `No element found for selector: ${selector}`);
11627
11518
  await handle.tap();
11628
11519
  } catch (e_7) {
11629
11520
  env_7.error = e_7;
11630
11521
  env_7.hasError = true;
11631
11522
  } finally {
11632
- __disposeResources9(env_7);
11523
+ __disposeResources8(env_7);
11633
11524
  }
11634
11525
  }
11635
11526
  /**
@@ -11656,14 +11547,14 @@
11656
11547
  async type(selector, text, options) {
11657
11548
  const env_8 = { stack: [], error: void 0, hasError: false };
11658
11549
  try {
11659
- const handle = __addDisposableResource9(env_8, await this.$(selector), false);
11550
+ const handle = __addDisposableResource8(env_8, await this.$(selector), false);
11660
11551
  assert(handle, `No element found for selector: ${selector}`);
11661
11552
  await handle.type(text, options);
11662
11553
  } catch (e_8) {
11663
11554
  env_8.error = e_8;
11664
11555
  env_8.hasError = true;
11665
11556
  } finally {
11666
- __disposeResources9(env_8);
11557
+ __disposeResources8(env_8);
11667
11558
  }
11668
11559
  }
11669
11560
  /**
@@ -11941,7 +11832,7 @@
11941
11832
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
11942
11833
  done = true;
11943
11834
  };
11944
- var __addDisposableResource10 = function(env, value, async2) {
11835
+ var __addDisposableResource9 = function(env, value, async2) {
11945
11836
  if (value !== null && value !== void 0) {
11946
11837
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
11947
11838
  var dispose, inner;
@@ -11968,7 +11859,7 @@
11968
11859
  }
11969
11860
  return value;
11970
11861
  };
11971
- var __disposeResources10 = /* @__PURE__ */ function(SuppressedError2) {
11862
+ var __disposeResources9 = /* @__PURE__ */ function(SuppressedError2) {
11972
11863
  return function(env) {
11973
11864
  function fail(e) {
11974
11865
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -12341,7 +12232,7 @@
12341
12232
  const env_1 = { stack: [], error: void 0, hasError: false };
12342
12233
  try {
12343
12234
  pageFunction = withSourcePuppeteerURLIfNone(this.$eval.name, pageFunction);
12344
- const elementHandle = __addDisposableResource10(env_1, await this.$(selector), false);
12235
+ const elementHandle = __addDisposableResource9(env_1, await this.$(selector), false);
12345
12236
  if (!elementHandle) {
12346
12237
  throw new Error(`Error: failed to find element matching selector "${selector}"`);
12347
12238
  }
@@ -12350,7 +12241,7 @@
12350
12241
  env_1.error = e_1;
12351
12242
  env_1.hasError = true;
12352
12243
  } finally {
12353
- __disposeResources10(env_1);
12244
+ __disposeResources9(env_1);
12354
12245
  }
12355
12246
  }
12356
12247
  /**
@@ -12405,7 +12296,7 @@
12405
12296
  try {
12406
12297
  pageFunction = withSourcePuppeteerURLIfNone(this.$$eval.name, pageFunction);
12407
12298
  const results = await this.$$(selector);
12408
- const elements = __addDisposableResource10(env_2, await this.evaluateHandle((_, ...elements2) => {
12299
+ const elements = __addDisposableResource9(env_2, await this.evaluateHandle((_, ...elements2) => {
12409
12300
  return elements2;
12410
12301
  }, ...results), false);
12411
12302
  const [result] = await Promise.all([
@@ -12419,7 +12310,7 @@
12419
12310
  env_2.error = e_2;
12420
12311
  env_2.hasError = true;
12421
12312
  } finally {
12422
- __disposeResources10(env_2);
12313
+ __disposeResources9(env_2);
12423
12314
  }
12424
12315
  }
12425
12316
  /**
@@ -12813,7 +12704,7 @@
12813
12704
  while (parentFrame = frame?.parentFrame()) {
12814
12705
  const env_3 = { stack: [], error: void 0, hasError: false };
12815
12706
  try {
12816
- const handle = __addDisposableResource10(env_3, await frame.frameElement(), false);
12707
+ const handle = __addDisposableResource9(env_3, await frame.frameElement(), false);
12817
12708
  if (!handle) {
12818
12709
  throw new Error("Unsupported frame type");
12819
12710
  }
@@ -12841,7 +12732,7 @@
12841
12732
  env_3.error = e_3;
12842
12733
  env_3.hasError = true;
12843
12734
  } finally {
12844
- __disposeResources10(env_3);
12735
+ __disposeResources9(env_3);
12845
12736
  }
12846
12737
  }
12847
12738
  const box = boxes.find((box2) => {
@@ -13003,7 +12894,7 @@
13003
12894
  while (parentFrame = frame?.parentFrame()) {
13004
12895
  const env_4 = { stack: [], error: void 0, hasError: false };
13005
12896
  try {
13006
- const handle = __addDisposableResource10(env_4, await frame.frameElement(), false);
12897
+ const handle = __addDisposableResource9(env_4, await frame.frameElement(), false);
13007
12898
  if (!handle) {
13008
12899
  throw new Error("Unsupported frame type");
13009
12900
  }
@@ -13028,7 +12919,7 @@
13028
12919
  env_4.error = e_4;
13029
12920
  env_4.hasError = true;
13030
12921
  } finally {
13031
- __disposeResources10(env_4);
12922
+ __disposeResources9(env_4);
13032
12923
  }
13033
12924
  }
13034
12925
  return point;
@@ -13107,7 +12998,7 @@
13107
12998
  try {
13108
12999
  await this.assertConnectedElement();
13109
13000
  const handle = await this.#asSVGElementHandle();
13110
- const target = __addDisposableResource10(env_5, handle && await handle.#getOwnerSVGElement(), false);
13001
+ const target = __addDisposableResource9(env_5, handle && await handle.#getOwnerSVGElement(), false);
13111
13002
  return await (target ?? this).evaluate(async (element, threshold) => {
13112
13003
  const visibleRatio = await new Promise((resolve) => {
13113
13004
  const observer = new IntersectionObserver((entries) => {
@@ -13122,7 +13013,7 @@
13122
13013
  env_5.error = e_5;
13123
13014
  env_5.hasError = true;
13124
13015
  } finally {
13125
- __disposeResources10(env_5);
13016
+ __disposeResources9(env_5);
13126
13017
  }
13127
13018
  }
13128
13019
  /**
@@ -13458,9 +13349,9 @@
13458
13349
  __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);
13459
13350
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13460
13351
  }
13352
+ #backendNodeId = __runInitializers6(this, _instanceExtraInitializers);
13461
13353
  constructor(world, remoteObject) {
13462
13354
  super(new CdpJSHandle(world, remoteObject));
13463
- __runInitializers6(this, _instanceExtraInitializers);
13464
13355
  }
13465
13356
  get realm() {
13466
13357
  return this.handle.realm;
@@ -13563,11 +13454,21 @@
13563
13454
  return this.realm.adoptBackendNode(node.backendDOMNodeId);
13564
13455
  });
13565
13456
  }
13457
+ async backendNodeId() {
13458
+ if (this.#backendNodeId) {
13459
+ return this.#backendNodeId;
13460
+ }
13461
+ const { node } = await this.client.send("DOM.describeNode", {
13462
+ objectId: this.handle.id
13463
+ });
13464
+ this.#backendNodeId = node.backendNodeId;
13465
+ return this.#backendNodeId;
13466
+ }
13566
13467
  };
13567
13468
  })();
13568
13469
 
13569
13470
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ExecutionContext.js
13570
- var __addDisposableResource11 = function(env, value, async2) {
13471
+ var __addDisposableResource10 = function(env, value, async2) {
13571
13472
  if (value !== null && value !== void 0) {
13572
13473
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
13573
13474
  var dispose, inner;
@@ -13594,7 +13495,7 @@
13594
13495
  }
13595
13496
  return value;
13596
13497
  };
13597
- var __disposeResources11 = /* @__PURE__ */ function(SuppressedError2) {
13498
+ var __disposeResources10 = /* @__PURE__ */ function(SuppressedError2) {
13598
13499
  return function(env) {
13599
13500
  function fail(e) {
13600
13501
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -13672,7 +13573,7 @@
13672
13573
  if (this.#bindings.has(binding.name)) {
13673
13574
  return;
13674
13575
  }
13675
- const _ = __addDisposableResource11(env_1, await this.#mutex.acquire(), false);
13576
+ const _ = __addDisposableResource10(env_1, await this.#mutex.acquire(), false);
13676
13577
  try {
13677
13578
  await this.#client.send("Runtime.addBinding", this.#name ? {
13678
13579
  name: CDP_BINDING_PREFIX + binding.name,
@@ -13698,7 +13599,7 @@
13698
13599
  env_1.error = e_1;
13699
13600
  env_1.hasError = true;
13700
13601
  } finally {
13701
- __disposeResources11(env_1);
13602
+ __disposeResources10(env_1);
13702
13603
  }
13703
13604
  }
13704
13605
  async #onBindingCalled(event) {
@@ -18032,10 +17933,45 @@ ${sourceUrlComment}
18032
17933
  }
18033
17934
  };
18034
17935
 
18035
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/WebWorker.js
18036
- init_dirname();
18037
- init_buffer2();
18038
-
17936
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/WebWorker.js
17937
+ init_dirname();
17938
+ init_buffer2();
17939
+
17940
+ // node_modules/puppeteer-core/lib/esm/puppeteer/api/Target.js
17941
+ init_dirname();
17942
+ init_buffer2();
17943
+ var TargetType;
17944
+ (function(TargetType2) {
17945
+ TargetType2["PAGE"] = "page";
17946
+ TargetType2["BACKGROUND_PAGE"] = "background_page";
17947
+ TargetType2["SERVICE_WORKER"] = "service_worker";
17948
+ TargetType2["SHARED_WORKER"] = "shared_worker";
17949
+ TargetType2["BROWSER"] = "browser";
17950
+ TargetType2["WEBVIEW"] = "webview";
17951
+ TargetType2["OTHER"] = "other";
17952
+ TargetType2["TAB"] = "tab";
17953
+ })(TargetType || (TargetType = {}));
17954
+ var Target = class {
17955
+ /**
17956
+ * @internal
17957
+ */
17958
+ constructor() {
17959
+ }
17960
+ /**
17961
+ * If the target is not of type `"service_worker"` or `"shared_worker"`, returns `null`.
17962
+ */
17963
+ async worker() {
17964
+ return null;
17965
+ }
17966
+ /**
17967
+ * If the target is not of type `"page"`, `"webview"` or `"background_page"`,
17968
+ * returns `null`.
17969
+ */
17970
+ async page() {
17971
+ return null;
17972
+ }
17973
+ };
17974
+
18039
17975
  // node_modules/puppeteer-core/lib/esm/puppeteer/api/WebWorker.js
18040
17976
  init_dirname();
18041
17977
  init_buffer2();
@@ -18167,7 +18103,7 @@ ${sourceUrlComment}
18167
18103
  };
18168
18104
 
18169
18105
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Page.js
18170
- var __addDisposableResource12 = function(env, value, async2) {
18106
+ var __addDisposableResource11 = function(env, value, async2) {
18171
18107
  if (value !== null && value !== void 0) {
18172
18108
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
18173
18109
  var dispose, inner;
@@ -18194,7 +18130,7 @@ ${sourceUrlComment}
18194
18130
  }
18195
18131
  return value;
18196
18132
  };
18197
- var __disposeResources12 = /* @__PURE__ */ function(SuppressedError2) {
18133
+ var __disposeResources11 = /* @__PURE__ */ function(SuppressedError2) {
18198
18134
  return function(env) {
18199
18135
  function fail(e) {
18200
18136
  env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
@@ -18436,7 +18372,7 @@ ${sourceUrlComment}
18436
18372
  }
18437
18373
  const frame = this.#frameManager.frame(event.frameId);
18438
18374
  assert(frame, "This should never happen.");
18439
- const handle = __addDisposableResource12(env_1, await frame.worlds[MAIN_WORLD].adoptBackendNode(event.backendNodeId), false);
18375
+ const handle = __addDisposableResource11(env_1, await frame.worlds[MAIN_WORLD].adoptBackendNode(event.backendNodeId), false);
18440
18376
  const fileChooser = new FileChooser(handle.move(), event);
18441
18377
  for (const promise of this.#fileChooserDeferreds) {
18442
18378
  promise.resolve(fileChooser);
@@ -18446,7 +18382,7 @@ ${sourceUrlComment}
18446
18382
  env_1.error = e_1;
18447
18383
  env_1.hasError = true;
18448
18384
  } finally {
18449
- __disposeResources12(env_1);
18385
+ __disposeResources11(env_1);
18450
18386
  }
18451
18387
  }
18452
18388
  _client() {
@@ -18602,9 +18538,7 @@ ${sourceUrlComment}
18602
18538
  for (const cookie of cookies) {
18603
18539
  const item = {
18604
18540
  ...cookie,
18605
- // TODO: a breaking change neeeded to change the partition key
18606
- // type in Puppeteer.
18607
- partitionKey: cookie.partitionKey ? { topLevelSite: cookie.partitionKey, hasCrossSiteAncestor: false } : void 0
18541
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookie.partitionKey)
18608
18542
  };
18609
18543
  if (!cookie.url && pageURL.startsWith("http")) {
18610
18544
  item.url = pageURL;
@@ -18640,12 +18574,7 @@ ${sourceUrlComment}
18640
18574
  cookies: items.map((cookieParam) => {
18641
18575
  return {
18642
18576
  ...cookieParam,
18643
- partitionKey: cookieParam.partitionKey ? {
18644
- // TODO: a breaking change neeeded to change the partition key
18645
- // type in Puppeteer.
18646
- topLevelSite: cookieParam.partitionKey,
18647
- hasCrossSiteAncestor: false
18648
- } : void 0
18577
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookieParam.partitionKey)
18649
18578
  };
18650
18579
  })
18651
18580
  });
@@ -18862,7 +18791,7 @@ ${sourceUrlComment}
18862
18791
  try {
18863
18792
  const { fromSurface, omitBackground, optimizeForSpeed, quality, clip: userClip, type, captureBeyondViewport } = options;
18864
18793
  const isFirefox = this.target()._targetManager() instanceof FirefoxTargetManager;
18865
- const stack = __addDisposableResource12(env_2, new AsyncDisposableStack(), true);
18794
+ const stack = __addDisposableResource11(env_2, new AsyncDisposableStack(), true);
18866
18795
  if (!isFirefox && omitBackground && (type === "png" || type === "webp")) {
18867
18796
  await this.#emulationManager.setTransparentBackgroundColor();
18868
18797
  stack.defer(async () => {
@@ -18890,7 +18819,7 @@ ${sourceUrlComment}
18890
18819
  env_2.error = e_2;
18891
18820
  env_2.hasError = true;
18892
18821
  } finally {
18893
- const result_1 = __disposeResources12(env_2);
18822
+ const result_1 = __disposeResources11(env_2);
18894
18823
  if (result_1)
18895
18824
  await result_1;
18896
18825
  }
@@ -18942,7 +18871,7 @@ ${sourceUrlComment}
18942
18871
  async close(options = { runBeforeUnload: void 0 }) {
18943
18872
  const env_3 = { stack: [], error: void 0, hasError: false };
18944
18873
  try {
18945
- const _guard = __addDisposableResource12(env_3, await this.browserContext().waitForScreenshotOperations(), false);
18874
+ const _guard = __addDisposableResource11(env_3, await this.browserContext().waitForScreenshotOperations(), false);
18946
18875
  const connection = this.#primaryTargetClient.connection();
18947
18876
  assert(connection, "Protocol error: Connection closed. Most likely the page has been closed.");
18948
18877
  const runBeforeUnload = !!options.runBeforeUnload;
@@ -18958,7 +18887,7 @@ ${sourceUrlComment}
18958
18887
  env_3.error = e_3;
18959
18888
  env_3.hasError = true;
18960
18889
  } finally {
18961
- __disposeResources12(env_3);
18890
+ __disposeResources11(env_3);
18962
18891
  }
18963
18892
  }
18964
18893
  isClosed() {
@@ -19019,8 +18948,188 @@ ${sourceUrlComment}
19019
18948
  height: Math.max(Math.min(clip.y + clip.height, viewport.y + viewport.height) - y, 0)
19020
18949
  };
19021
18950
  }
18951
+ function convertCookiesPartitionKeyFromPuppeteerToCdp(partitionKey) {
18952
+ if (partitionKey === void 0) {
18953
+ return void 0;
18954
+ }
18955
+ if (typeof partitionKey === "string") {
18956
+ return {
18957
+ topLevelSite: partitionKey,
18958
+ hasCrossSiteAncestor: false
18959
+ };
18960
+ }
18961
+ return {
18962
+ topLevelSite: partitionKey.sourceOrigin,
18963
+ hasCrossSiteAncestor: partitionKey.hasCrossSiteAncestor ?? false
18964
+ };
18965
+ }
18966
+
18967
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js
18968
+ var __addDisposableResource12 = function(env, value, async2) {
18969
+ if (value !== null && value !== void 0) {
18970
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
18971
+ var dispose, inner;
18972
+ if (async2) {
18973
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
18974
+ dispose = value[Symbol.asyncDispose];
18975
+ }
18976
+ if (dispose === void 0) {
18977
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
18978
+ dispose = value[Symbol.dispose];
18979
+ if (async2) inner = dispose;
18980
+ }
18981
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
18982
+ if (inner) dispose = function() {
18983
+ try {
18984
+ inner.call(this);
18985
+ } catch (e) {
18986
+ return Promise.reject(e);
18987
+ }
18988
+ };
18989
+ env.stack.push({ value, dispose, async: async2 });
18990
+ } else if (async2) {
18991
+ env.stack.push({ async: true });
18992
+ }
18993
+ return value;
18994
+ };
18995
+ var __disposeResources12 = /* @__PURE__ */ function(SuppressedError2) {
18996
+ return function(env) {
18997
+ function fail(e) {
18998
+ env.error = env.hasError ? new SuppressedError2(e, env.error, "An error was suppressed during disposal.") : e;
18999
+ env.hasError = true;
19000
+ }
19001
+ var r, s = 0;
19002
+ function next() {
19003
+ while (r = env.stack.pop()) {
19004
+ try {
19005
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
19006
+ if (r.dispose) {
19007
+ var result = r.dispose.call(r.value);
19008
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) {
19009
+ fail(e);
19010
+ return next();
19011
+ });
19012
+ } else s |= 1;
19013
+ } catch (e) {
19014
+ fail(e);
19015
+ }
19016
+ }
19017
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
19018
+ if (env.hasError) throw env.error;
19019
+ }
19020
+ return next();
19021
+ };
19022
+ }(typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
19023
+ var e = new Error(message);
19024
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
19025
+ });
19026
+ var CdpBrowserContext = class extends BrowserContext {
19027
+ #connection;
19028
+ #browser;
19029
+ #id;
19030
+ constructor(connection, browser, contextId) {
19031
+ super();
19032
+ this.#connection = connection;
19033
+ this.#browser = browser;
19034
+ this.#id = contextId;
19035
+ }
19036
+ get id() {
19037
+ return this.#id;
19038
+ }
19039
+ targets() {
19040
+ return this.#browser.targets().filter((target) => {
19041
+ return target.browserContext() === this;
19042
+ });
19043
+ }
19044
+ async pages() {
19045
+ const pages = await Promise.all(this.targets().filter((target) => {
19046
+ return target.type() === "page" || target.type() === "other" && this.#browser._getIsPageTargetCallback()?.(target);
19047
+ }).map((target) => {
19048
+ return target.page();
19049
+ }));
19050
+ return pages.filter((page) => {
19051
+ return !!page;
19052
+ });
19053
+ }
19054
+ async overridePermissions(origin, permissions) {
19055
+ const protocolPermissions = permissions.map((permission) => {
19056
+ const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission);
19057
+ if (!protocolPermission) {
19058
+ throw new Error("Unknown permission: " + permission);
19059
+ }
19060
+ return protocolPermission;
19061
+ });
19062
+ await this.#connection.send("Browser.grantPermissions", {
19063
+ origin,
19064
+ browserContextId: this.#id || void 0,
19065
+ permissions: protocolPermissions
19066
+ });
19067
+ }
19068
+ async clearPermissionOverrides() {
19069
+ await this.#connection.send("Browser.resetPermissions", {
19070
+ browserContextId: this.#id || void 0
19071
+ });
19072
+ }
19073
+ async newPage() {
19074
+ const env_1 = { stack: [], error: void 0, hasError: false };
19075
+ try {
19076
+ const _guard = __addDisposableResource12(env_1, await this.waitForScreenshotOperations(), false);
19077
+ return await this.#browser._createPageInContext(this.#id);
19078
+ } catch (e_1) {
19079
+ env_1.error = e_1;
19080
+ env_1.hasError = true;
19081
+ } finally {
19082
+ __disposeResources12(env_1);
19083
+ }
19084
+ }
19085
+ browser() {
19086
+ return this.#browser;
19087
+ }
19088
+ async close() {
19089
+ assert(this.#id, "Default BrowserContext cannot be closed!");
19090
+ await this.#browser._disposeContext(this.#id);
19091
+ }
19092
+ async cookies() {
19093
+ const { cookies } = await this.#connection.send("Storage.getCookies", {
19094
+ browserContextId: this.#id
19095
+ });
19096
+ return cookies.map((cookie) => {
19097
+ return {
19098
+ ...cookie,
19099
+ partitionKey: cookie.partitionKey ? {
19100
+ sourceOrigin: cookie.partitionKey.topLevelSite,
19101
+ hasCrossSiteAncestor: cookie.partitionKey.hasCrossSiteAncestor
19102
+ } : void 0
19103
+ };
19104
+ });
19105
+ }
19106
+ async setCookie(...cookies) {
19107
+ return await this.#connection.send("Storage.setCookies", {
19108
+ browserContextId: this.#id,
19109
+ cookies: cookies.map((cookie) => {
19110
+ return {
19111
+ ...cookie,
19112
+ partitionKey: convertCookiesPartitionKeyFromPuppeteerToCdp(cookie.partitionKey)
19113
+ };
19114
+ })
19115
+ });
19116
+ }
19117
+ async setDownloadBehavior(downloadBehavior) {
19118
+ await this.#connection.send("Browser.setDownloadBehavior", {
19119
+ behavior: downloadBehavior.policy,
19120
+ downloadPath: downloadBehavior.downloadPath,
19121
+ browserContextId: this.#id
19122
+ });
19123
+ }
19124
+ };
19125
+
19126
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19127
+ init_dirname();
19128
+ init_buffer2();
19022
19129
 
19023
19130
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
19131
+ init_dirname();
19132
+ init_buffer2();
19024
19133
  var InitializationStatus;
19025
19134
  (function(InitializationStatus2) {
19026
19135
  InitializationStatus2["SUCCESS"] = "success";
@@ -19903,101 +20012,87 @@ puppeteer-core/lib/esm/puppeteer/api/BrowserContext.js:
19903
20012
  * SPDX-License-Identifier: Apache-2.0
19904
20013
  *)
19905
20014
 
19906
- puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js:
20015
+ puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js:
19907
20016
  (**
19908
20017
  * @license
19909
- * Copyright 2024 Google Inc.
20018
+ * Copyright 2019 Google Inc.
19910
20019
  * SPDX-License-Identifier: Apache-2.0
19911
20020
  *)
19912
20021
 
19913
- puppeteer-core/lib/esm/puppeteer/api/Target.js:
20022
+ puppeteer-core/lib/esm/puppeteer/util/decorators.js:
19914
20023
  (**
19915
20024
  * @license
19916
20025
  * Copyright 2023 Google Inc.
19917
20026
  * SPDX-License-Identifier: Apache-2.0
19918
20027
  *)
19919
20028
 
19920
- puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js:
20029
+ puppeteer-core/lib/esm/puppeteer/api/Page.js:
19921
20030
  (**
19922
20031
  * @license
19923
- * Copyright 2022 Google Inc.
20032
+ * Copyright 2017 Google Inc.
19924
20033
  * SPDX-License-Identifier: Apache-2.0
19925
20034
  *)
19926
20035
 
19927
- puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js:
20036
+ puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js:
19928
20037
  (**
19929
20038
  * @license
19930
- * Copyright 2024 Google Inc.
20039
+ * Copyright 2020 Google Inc.
19931
20040
  * SPDX-License-Identifier: Apache-2.0
19932
20041
  *)
19933
20042
 
19934
- puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:
20043
+ puppeteer-core/lib/esm/puppeteer/common/FileChooser.js:
19935
20044
  (**
19936
20045
  * @license
19937
- * Copyright 2023 Google Inc.
20046
+ * Copyright 2020 Google Inc.
19938
20047
  * SPDX-License-Identifier: Apache-2.0
19939
20048
  *)
19940
20049
 
19941
- puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:
20050
+ puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js:
19942
20051
  (**
19943
20052
  * @license
19944
- * Copyright 2017 Google Inc.
20053
+ * Copyright 2022 Google Inc.
19945
20054
  * SPDX-License-Identifier: Apache-2.0
19946
20055
  *)
19947
20056
 
19948
- puppeteer-core/lib/esm/puppeteer/common/TimeoutSettings.js:
20057
+ puppeteer-core/lib/esm/puppeteer/util/ErrorLike.js:
19949
20058
  (**
19950
20059
  * @license
19951
- * Copyright 2019 Google Inc.
20060
+ * Copyright 2022 Google Inc.
19952
20061
  * SPDX-License-Identifier: Apache-2.0
19953
20062
  *)
19954
20063
 
19955
- puppeteer-core/lib/esm/puppeteer/util/decorators.js:
20064
+ puppeteer-core/lib/esm/puppeteer/api/JSHandle.js:
19956
20065
  (**
19957
20066
  * @license
19958
20067
  * Copyright 2023 Google Inc.
19959
20068
  * SPDX-License-Identifier: Apache-2.0
19960
20069
  *)
19961
20070
 
19962
- puppeteer-core/lib/esm/puppeteer/api/Page.js:
19963
- (**
19964
- * @license
19965
- * Copyright 2017 Google Inc.
19966
- * SPDX-License-Identifier: Apache-2.0
19967
- *)
19968
-
19969
- puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js:
19970
- (**
19971
- * @license
19972
- * Copyright 2020 Google Inc.
19973
- * SPDX-License-Identifier: Apache-2.0
19974
- *)
19975
-
19976
- puppeteer-core/lib/esm/puppeteer/common/FileChooser.js:
20071
+ puppeteer-core/lib/esm/puppeteer/cdp/Binding.js:
19977
20072
  (**
19978
20073
  * @license
19979
- * Copyright 2020 Google Inc.
20074
+ * Copyright 2024 Google Inc.
19980
20075
  * SPDX-License-Identifier: Apache-2.0
19981
20076
  *)
19982
20077
 
19983
- puppeteer-core/lib/esm/puppeteer/common/NetworkManagerEvents.js:
20078
+ puppeteer-core/lib/esm/puppeteer/util/incremental-id-generator.js:
19984
20079
  (**
19985
20080
  * @license
19986
- * Copyright 2022 Google Inc.
20081
+ * Copyright 2024 Google Inc.
19987
20082
  * SPDX-License-Identifier: Apache-2.0
19988
20083
  *)
19989
20084
 
19990
- puppeteer-core/lib/esm/puppeteer/api/JSHandle.js:
20085
+ puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:
19991
20086
  (**
19992
20087
  * @license
19993
20088
  * Copyright 2023 Google Inc.
19994
20089
  * SPDX-License-Identifier: Apache-2.0
19995
20090
  *)
19996
20091
 
19997
- puppeteer-core/lib/esm/puppeteer/cdp/Binding.js:
20092
+ puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:
19998
20093
  (**
19999
20094
  * @license
20000
- * Copyright 2024 Google Inc.
20095
+ * Copyright 2017 Google Inc.
20001
20096
  * SPDX-License-Identifier: Apache-2.0
20002
20097
  *)
20003
20098
 
@@ -20316,6 +20411,13 @@ puppeteer-core/lib/esm/puppeteer/cdp/Input.js:
20316
20411
  * SPDX-License-Identifier: Apache-2.0
20317
20412
  *)
20318
20413
 
20414
+ puppeteer-core/lib/esm/puppeteer/api/Target.js:
20415
+ (**
20416
+ * @license
20417
+ * Copyright 2023 Google Inc.
20418
+ * SPDX-License-Identifier: Apache-2.0
20419
+ *)
20420
+
20319
20421
  puppeteer-core/lib/esm/puppeteer/api/WebWorker.js:
20320
20422
  (**
20321
20423
  * @license
@@ -20330,6 +20432,13 @@ puppeteer-core/lib/esm/puppeteer/cdp/Page.js:
20330
20432
  * SPDX-License-Identifier: Apache-2.0
20331
20433
  *)
20332
20434
 
20435
+ puppeteer-core/lib/esm/puppeteer/cdp/BrowserContext.js:
20436
+ (**
20437
+ * @license
20438
+ * Copyright 2024 Google Inc.
20439
+ * SPDX-License-Identifier: Apache-2.0
20440
+ *)
20441
+
20333
20442
  puppeteer-core/lib/esm/puppeteer/cdp/Target.js:
20334
20443
  (**
20335
20444
  * @license