@browserless.io/browserless 2.25.0-beta-2 → 2.25.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 (224) hide show
  1. package/CHANGELOG.md +39 -3
  2. package/README.md +4 -5
  3. package/build/browserless.js +3 -1
  4. package/build/browsers/browsers.cdp.d.ts +3 -0
  5. package/build/browsers/browsers.cdp.js +4 -1
  6. package/build/browsers/browsers.playwright.d.ts +4 -0
  7. package/build/browsers/browsers.playwright.js +11 -2
  8. package/build/browsers/index.js +4 -3
  9. package/build/http.d.ts +9 -0
  10. package/build/http.js +9 -0
  11. package/build/routes/chrome/http/content.post.body.json +8 -8
  12. package/build/routes/chrome/http/pdf.post.body.json +8 -8
  13. package/build/routes/chrome/http/scrape.post.body.json +8 -8
  14. package/build/routes/chrome/http/screenshot.post.body.json +8 -8
  15. package/build/routes/chrome/tests/kill-sessions.spec.js +1 -1
  16. package/build/routes/chromium/http/content.post.body.json +8 -8
  17. package/build/routes/chromium/http/pdf.post.body.json +8 -8
  18. package/build/routes/chromium/http/scrape.post.body.json +8 -8
  19. package/build/routes/chromium/http/screenshot.post.body.json +8 -8
  20. package/build/routes/chromium/tests/kill-sessions.spec.js +1 -1
  21. package/build/routes/edge/http/content.post.body.json +579 -0
  22. package/build/routes/edge/http/content.post.d.ts +8 -0
  23. package/build/routes/edge/http/content.post.js +7 -0
  24. package/build/routes/edge/http/content.post.query.json +183 -0
  25. package/build/routes/edge/http/content.post.response.json +5 -0
  26. package/build/routes/edge/http/download.post.body.json +32 -0
  27. package/build/routes/edge/http/download.post.d.ts +8 -0
  28. package/build/routes/edge/http/download.post.js +7 -0
  29. package/build/routes/edge/http/download.post.query.json +120 -0
  30. package/build/routes/edge/http/download.post.response.json +4 -0
  31. package/build/routes/edge/http/function.post.body.json +32 -0
  32. package/build/routes/edge/http/function.post.d.ts +8 -0
  33. package/build/routes/edge/http/function.post.js +7 -0
  34. package/build/routes/edge/http/function.post.query.json +120 -0
  35. package/build/routes/edge/http/function.post.response.json +4 -0
  36. package/build/routes/edge/http/json-list.get.d.ts +5 -0
  37. package/build/routes/edge/http/json-list.get.js +5 -0
  38. package/build/routes/edge/http/json-list.get.response.json +52 -0
  39. package/build/routes/edge/http/json-new.put.d.ts +5 -0
  40. package/build/routes/edge/http/json-new.put.js +5 -0
  41. package/build/routes/edge/http/json-new.put.response.json +44 -0
  42. package/build/routes/edge/http/json-protocol.get.d.ts +5 -0
  43. package/build/routes/edge/http/json-protocol.get.js +5 -0
  44. package/build/routes/edge/http/json-protocol.get.response.json +6 -0
  45. package/build/routes/edge/http/json-version.get.d.ts +5 -0
  46. package/build/routes/edge/http/json-version.get.js +5 -0
  47. package/build/routes/edge/http/json-version.get.response.json +44 -0
  48. package/build/routes/edge/http/pdf.post.body.json +724 -0
  49. package/build/routes/edge/http/pdf.post.d.ts +8 -0
  50. package/build/routes/edge/http/pdf.post.js +7 -0
  51. package/build/routes/edge/http/pdf.post.query.json +120 -0
  52. package/build/routes/edge/http/pdf.post.response.json +5 -0
  53. package/build/routes/edge/http/performance.post.body.json +26 -0
  54. package/build/routes/edge/http/performance.post.d.ts +8 -0
  55. package/build/routes/edge/http/performance.post.js +7 -0
  56. package/build/routes/edge/http/performance.post.query.json +120 -0
  57. package/build/routes/edge/http/performance.post.response.json +7 -0
  58. package/build/routes/edge/http/scrape.post.body.json +626 -0
  59. package/build/routes/edge/http/scrape.post.d.ts +8 -0
  60. package/build/routes/edge/http/scrape.post.js +7 -0
  61. package/build/routes/edge/http/scrape.post.query.json +183 -0
  62. package/build/routes/edge/http/scrape.post.response.json +334 -0
  63. package/build/routes/edge/http/screenshot.post.body.json +669 -0
  64. package/build/routes/edge/http/screenshot.post.d.ts +8 -0
  65. package/build/routes/edge/http/screenshot.post.js +7 -0
  66. package/build/routes/edge/http/screenshot.post.query.json +120 -0
  67. package/build/routes/edge/http/screenshot.post.response.json +5 -0
  68. package/build/routes/edge/tests/content.spec.d.ts +1 -0
  69. package/build/routes/edge/tests/content.spec.js +312 -0
  70. package/build/routes/edge/tests/download.spec.d.ts +1 -0
  71. package/build/routes/edge/tests/download.spec.js +67 -0
  72. package/build/routes/edge/tests/function.spec.d.ts +1 -0
  73. package/build/routes/edge/tests/function.spec.js +277 -0
  74. package/build/routes/edge/tests/json-version.spec.d.ts +1 -0
  75. package/build/routes/edge/tests/json-version.spec.js +37 -0
  76. package/build/routes/edge/tests/kill-sessions.spec.d.ts +1 -0
  77. package/build/routes/edge/tests/kill-sessions.spec.js +80 -0
  78. package/build/routes/edge/tests/page-websocket.spec.d.ts +1 -0
  79. package/build/routes/edge/tests/page-websocket.spec.js +97 -0
  80. package/build/routes/edge/tests/pdf.spec.d.ts +1 -0
  81. package/build/routes/edge/tests/pdf.spec.js +345 -0
  82. package/build/routes/edge/tests/performance.spec.d.ts +1 -0
  83. package/build/routes/edge/tests/performance.spec.js +124 -0
  84. package/build/routes/edge/tests/scrape.spec.d.ts +1 -0
  85. package/build/routes/edge/tests/scrape.spec.js +354 -0
  86. package/build/routes/edge/tests/screenshot.spec.d.ts +1 -0
  87. package/build/routes/edge/tests/screenshot.spec.js +339 -0
  88. package/build/routes/edge/tests/websocket.spec.d.ts +1 -0
  89. package/build/routes/edge/tests/websocket.spec.js +384 -0
  90. package/build/routes/edge/ws/browser.d.ts +7 -0
  91. package/build/routes/edge/ws/browser.js +6 -0
  92. package/build/routes/edge/ws/browser.query.json +120 -0
  93. package/build/routes/edge/ws/cdp.d.ts +8 -0
  94. package/build/routes/edge/ws/cdp.js +7 -0
  95. package/build/routes/edge/ws/cdp.query.json +120 -0
  96. package/build/routes/edge/ws/page.d.ts +8 -0
  97. package/build/routes/edge/ws/page.js +7 -0
  98. package/build/routes/edge/ws/page.query.json +120 -0
  99. package/build/routes/edge/ws/playwright.d.ts +8 -0
  100. package/build/routes/edge/ws/playwright.js +7 -0
  101. package/build/routes/edge/ws/playwright.query.json +100 -0
  102. package/build/routes/firefox/tests/kill-sessions.spec.js +1 -1
  103. package/build/routes/management/http/meta.get.js +3 -1
  104. package/build/routes/webkit/tests/kill-sessions.spec.js +1 -1
  105. package/build/sdk-utils.js +1 -1
  106. package/build/shared/scrape.http.js +2 -2
  107. package/build/types.d.ts +32 -0
  108. package/build/types.js +18 -0
  109. package/build/utils.d.ts +1 -0
  110. package/build/utils.js +16 -2
  111. package/docker/chrome/Dockerfile +14 -14
  112. package/docker/chromium/Dockerfile +14 -14
  113. package/docker/edge/.dockerignore +16 -0
  114. package/docker/edge/Dockerfile +43 -0
  115. package/docker/firefox/Dockerfile +14 -14
  116. package/docker/multi/Dockerfile +18 -18
  117. package/docker/sdk/Dockerfile +10 -0
  118. package/extensions/ublock/_locales/ar/messages.json +3 -3
  119. package/extensions/ublock/_locales/bg/messages.json +1 -1
  120. package/extensions/ublock/_locales/br_FR/messages.json +2 -2
  121. package/extensions/ublock/_locales/cy/messages.json +11 -11
  122. package/extensions/ublock/_locales/el/messages.json +2 -2
  123. package/extensions/ublock/_locales/hu/messages.json +1 -1
  124. package/extensions/ublock/_locales/id/messages.json +1 -1
  125. package/extensions/ublock/_locales/lv/messages.json +4 -4
  126. package/extensions/ublock/_locales/mk/messages.json +130 -130
  127. package/extensions/ublock/_locales/oc/messages.json +1 -1
  128. package/extensions/ublock/_locales/pt_BR/messages.json +1 -1
  129. package/extensions/ublock/_locales/pt_PT/messages.json +2 -2
  130. package/extensions/ublock/_locales/si/messages.json +100 -100
  131. package/extensions/ublock/_locales/sr/messages.json +4 -4
  132. package/extensions/ublock/_locales/vi/messages.json +19 -19
  133. package/extensions/ublock/_locales/zh_TW/messages.json +28 -28
  134. package/extensions/ublock/assets/assets.json +33 -29
  135. package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +2984 -3287
  136. package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +150 -171
  137. package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +37 -27
  138. package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +802 -888
  139. package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +2355 -2071
  140. package/extensions/ublock/assets/ublock/badlists.txt +9 -1
  141. package/extensions/ublock/assets/ublock/badware.min.txt +354 -243
  142. package/extensions/ublock/assets/ublock/filters.min.txt +5837 -5737
  143. package/extensions/ublock/assets/ublock/privacy.min.txt +151 -38
  144. package/extensions/ublock/assets/ublock/quick-fixes.min.txt +83 -127
  145. package/extensions/ublock/assets/ublock/unbreak.min.txt +66 -50
  146. package/extensions/ublock/css/codemirror.css +4 -0
  147. package/extensions/ublock/document-blocked.html +3 -1
  148. package/extensions/ublock/js/arglist-parser.js +116 -0
  149. package/extensions/ublock/js/background.js +1 -1
  150. package/extensions/ublock/js/logger-ui.js +1 -1
  151. package/extensions/ublock/js/messaging.js +9 -2
  152. package/extensions/ublock/js/pagestore.js +3 -1
  153. package/extensions/ublock/js/redirect-engine.js +3 -1
  154. package/extensions/ublock/{assets/resources/set-attr.js → js/resources/attribute.js} +115 -11
  155. package/extensions/ublock/js/resources/base.js +38 -0
  156. package/extensions/ublock/js/resources/cookie.js +419 -0
  157. package/extensions/ublock/js/resources/href-sanitizer.js +188 -0
  158. package/extensions/ublock/js/resources/localstorage.js +235 -0
  159. package/extensions/ublock/js/resources/parse-replace.js +54 -0
  160. package/extensions/ublock/js/resources/prevent-settimeout.js +236 -0
  161. package/extensions/ublock/js/resources/proxy-apply.js +109 -0
  162. package/extensions/ublock/js/resources/replace-argument.js +120 -0
  163. package/extensions/ublock/{assets → js}/resources/run-at.js +20 -4
  164. package/extensions/ublock/{assets → js}/resources/safe-self.js +5 -4
  165. package/extensions/ublock/{assets → js}/resources/scriptlets.js +90 -1589
  166. package/extensions/ublock/js/resources/set-constant.js +287 -0
  167. package/extensions/ublock/js/resources/shared.js +44 -0
  168. package/extensions/ublock/js/resources/spoof-css.js +163 -0
  169. package/extensions/ublock/js/s14e-serializer.js +2 -1
  170. package/extensions/ublock/js/scriptlet-filtering-core.js +1 -1
  171. package/extensions/ublock/js/scriptlet-filtering.js +1 -31
  172. package/extensions/ublock/js/static-dnr-filtering.js +143 -129
  173. package/extensions/ublock/js/static-filtering-parser.js +27 -117
  174. package/extensions/ublock/js/static-net-filtering.js +53 -141
  175. package/extensions/ublock/js/traffic.js +1 -1
  176. package/extensions/ublock/js/urlskip.js +166 -0
  177. package/extensions/ublock/js/vapi-background-ext.js +38 -14
  178. package/extensions/ublock/manifest.json +1 -1
  179. package/package.json +22 -22
  180. package/src/browserless.ts +4 -0
  181. package/src/browsers/browsers.cdp.ts +5 -0
  182. package/src/browsers/browsers.playwright.ts +14 -1
  183. package/src/browsers/index.ts +5 -2
  184. package/src/http.ts +9 -0
  185. package/src/routes/chrome/tests/kill-sessions.spec.ts +1 -1
  186. package/src/routes/chromium/tests/kill-sessions.spec.ts +1 -1
  187. package/src/routes/edge/http/content.post.ts +20 -0
  188. package/src/routes/edge/http/download.post.ts +20 -0
  189. package/src/routes/edge/http/function.post.ts +20 -0
  190. package/src/routes/edge/http/json-list.get.ts +7 -0
  191. package/src/routes/edge/http/json-new.put.ts +7 -0
  192. package/src/routes/edge/http/json-protocol.get.ts +7 -0
  193. package/src/routes/edge/http/json-version.get.ts +7 -0
  194. package/src/routes/edge/http/pdf.post.ts +20 -0
  195. package/src/routes/edge/http/performance.post.ts +20 -0
  196. package/src/routes/edge/http/scrape.post.ts +20 -0
  197. package/src/routes/edge/http/screenshot.post.ts +20 -0
  198. package/src/routes/edge/tests/content.spec.ts +376 -0
  199. package/src/routes/edge/tests/download.spec.ts +77 -0
  200. package/src/routes/edge/tests/function.spec.ts +317 -0
  201. package/src/routes/edge/tests/json-version.spec.ts +52 -0
  202. package/src/routes/edge/tests/kill-sessions.spec.ts +99 -0
  203. package/src/routes/edge/tests/page-websocket.spec.ts +129 -0
  204. package/src/routes/edge/tests/pdf.spec.ts +389 -0
  205. package/src/routes/edge/tests/performance.spec.ts +155 -0
  206. package/src/routes/edge/tests/scrape.spec.ts +417 -0
  207. package/src/routes/edge/tests/screenshot.spec.ts +387 -0
  208. package/src/routes/edge/tests/websocket.spec.ts +510 -0
  209. package/src/routes/edge/ws/browser.ts +10 -0
  210. package/src/routes/edge/ws/cdp.ts +17 -0
  211. package/src/routes/edge/ws/page.ts +10 -0
  212. package/src/routes/edge/ws/playwright.ts +17 -0
  213. package/src/routes/firefox/tests/kill-sessions.spec.ts +1 -1
  214. package/src/routes/management/http/meta.get.ts +6 -1
  215. package/src/routes/management/http/static.get.ts +1 -1
  216. package/src/routes/webkit/tests/kill-sessions.spec.ts +1 -1
  217. package/src/sdk-utils.ts +1 -1
  218. package/src/shared/scrape.http.ts +2 -2
  219. package/src/types.ts +19 -0
  220. package/src/utils.ts +38 -16
  221. package/static/docs/swagger.json +2097 -10
  222. package/static/docs/swagger.min.json +2096 -9
  223. package/static/function/client.js +141 -253
  224. package/static/function/index.html +141 -253
@@ -4393,7 +4393,7 @@
4393
4393
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
4394
4394
  init_dirname();
4395
4395
  init_buffer2();
4396
- var packageVersion = "23.11.0";
4396
+ var packageVersion = "24.2.1";
4397
4397
 
4398
4398
  // node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
4399
4399
  init_dirname();
@@ -4538,17 +4538,50 @@
4538
4538
  init_dirname();
4539
4539
  init_buffer2();
4540
4540
  var paperFormats = {
4541
- letter: { width: 8.5, height: 11 },
4542
- legal: { width: 8.5, height: 14 },
4543
- tabloid: { width: 11, height: 17 },
4544
- ledger: { width: 17, height: 11 },
4545
- a0: { width: 33.1102, height: 46.811 },
4546
- a1: { width: 23.3858, height: 33.1102 },
4547
- a2: { width: 16.5354, height: 23.3858 },
4548
- a3: { width: 11.6929, height: 16.5354 },
4549
- a4: { width: 8.2677, height: 11.6929 },
4550
- a5: { width: 5.8268, height: 8.2677 },
4551
- a6: { width: 4.1339, height: 5.8268 }
4541
+ letter: {
4542
+ cm: { width: 21.59, height: 27.94 },
4543
+ in: { width: 8.5, height: 11 }
4544
+ },
4545
+ legal: {
4546
+ cm: { width: 21.59, height: 35.56 },
4547
+ in: { width: 8.5, height: 14 }
4548
+ },
4549
+ tabloid: {
4550
+ cm: { width: 27.94, height: 43.18 },
4551
+ in: { width: 11, height: 17 }
4552
+ },
4553
+ ledger: {
4554
+ cm: { width: 43.18, height: 27.94 },
4555
+ in: { width: 17, height: 11 }
4556
+ },
4557
+ a0: {
4558
+ cm: { width: 84.1, height: 118.9 },
4559
+ in: { width: 33.1102, height: 46.811 }
4560
+ },
4561
+ a1: {
4562
+ cm: { width: 59.4, height: 84.1 },
4563
+ in: { width: 23.3858, height: 33.1102 }
4564
+ },
4565
+ a2: {
4566
+ cm: { width: 42, height: 59.4 },
4567
+ in: { width: 16.5354, height: 23.3858 }
4568
+ },
4569
+ a3: {
4570
+ cm: { width: 29.7, height: 42 },
4571
+ in: { width: 11.6929, height: 16.5354 }
4572
+ },
4573
+ a4: {
4574
+ cm: { width: 21, height: 29.7 },
4575
+ in: { width: 8.2677, height: 11.6929 }
4576
+ },
4577
+ a5: {
4578
+ cm: { width: 14.8, height: 21 },
4579
+ in: { width: 5.8268, height: 8.2677 }
4580
+ },
4581
+ a6: {
4582
+ cm: { width: 10.5, height: 14.8 },
4583
+ in: { width: 4.1339, height: 5.8268 }
4584
+ }
4552
4585
  };
4553
4586
 
4554
4587
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/util.js
@@ -4731,7 +4764,7 @@
4731
4764
  let width = 8.5;
4732
4765
  let height = 11;
4733
4766
  if (options.format) {
4734
- const format = paperFormats[options.format.toLowerCase()];
4767
+ const format = paperFormats[options.format.toLowerCase()][lengthUnit];
4735
4768
  assert(format, "Unknown paper format: " + options.format);
4736
4769
  width = format.width;
4737
4770
  height = format.height;
@@ -5176,25 +5209,24 @@
5176
5209
 
5177
5210
  // node_modules/puppeteer-core/lib/esm/puppeteer/api/Browser.js
5178
5211
  var WEB_PERMISSION_TO_PROTOCOL_PERMISSION = /* @__PURE__ */ new Map([
5179
- ["geolocation", "geolocation"],
5180
- ["midi", "midi"],
5181
- ["notifications", "notifications"],
5182
- // TODO: push isn't a valid type?
5183
- // ['push', 'push'],
5184
- ["camera", "videoCapture"],
5185
- ["microphone", "audioCapture"],
5186
- ["background-sync", "backgroundSync"],
5187
- ["ambient-light-sensor", "sensors"],
5188
5212
  ["accelerometer", "sensors"],
5189
- ["gyroscope", "sensors"],
5190
- ["magnetometer", "sensors"],
5191
- ["accessibility-events", "accessibilityEvents"],
5213
+ ["ambient-light-sensor", "sensors"],
5214
+ ["background-sync", "backgroundSync"],
5215
+ ["camera", "videoCapture"],
5192
5216
  ["clipboard-read", "clipboardReadWrite"],
5193
- ["clipboard-write", "clipboardReadWrite"],
5194
5217
  ["clipboard-sanitized-write", "clipboardSanitizedWrite"],
5218
+ ["clipboard-write", "clipboardReadWrite"],
5219
+ ["geolocation", "geolocation"],
5220
+ ["gyroscope", "sensors"],
5221
+ ["idle-detection", "idleDetection"],
5222
+ ["keyboard-lock", "keyboardLock"],
5223
+ ["magnetometer", "sensors"],
5224
+ ["microphone", "audioCapture"],
5225
+ ["midi", "midi"],
5226
+ ["notifications", "notifications"],
5195
5227
  ["payment-handler", "paymentHandler"],
5196
5228
  ["persistent-storage", "durableStorage"],
5197
- ["idle-detection", "idleDetection"],
5229
+ ["pointer-lock", "pointerLock"],
5198
5230
  // chrome-specific permissions we have.
5199
5231
  ["midi-sysex", "midiSysex"]
5200
5232
  ]);
@@ -6670,7 +6702,7 @@
6670
6702
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
6671
6703
  * can be passed as-is and a
6672
6704
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
6673
- * allows quering by
6705
+ * allows querying by
6674
6706
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
6675
6707
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
6676
6708
  * and
@@ -6697,7 +6729,7 @@
6697
6729
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
6698
6730
  * can be passed as-is and a
6699
6731
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
6700
- * allows quering by
6732
+ * allows querying by
6701
6733
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
6702
6734
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
6703
6735
  * and
@@ -6831,7 +6863,7 @@
6831
6863
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
6832
6864
  * can be passed as-is and a
6833
6865
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
6834
- * allows quering by
6866
+ * allows querying by
6835
6867
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
6836
6868
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
6837
6869
  * and
@@ -6904,7 +6936,7 @@
6904
6936
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
6905
6937
  * can be passed as-is and a
6906
6938
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
6907
- * allows quering by
6939
+ * allows querying by
6908
6940
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
6909
6941
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
6910
6942
  * and
@@ -7526,7 +7558,7 @@
7526
7558
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7527
7559
  * can be passed as-is and a
7528
7560
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7529
- * allows quering by
7561
+ * allows querying by
7530
7562
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7531
7563
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7532
7564
  * and
@@ -7553,7 +7585,7 @@
7553
7585
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7554
7586
  * can be passed as-is and a
7555
7587
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7556
- * allows quering by
7588
+ * allows querying by
7557
7589
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7558
7590
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7559
7591
  * and
@@ -7587,7 +7619,7 @@
7587
7619
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7588
7620
  * can be passed as-is and a
7589
7621
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7590
- * allows quering by
7622
+ * allows querying by
7591
7623
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7592
7624
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7593
7625
  * and
@@ -7626,7 +7658,7 @@
7626
7658
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7627
7659
  * can be passed as-is and a
7628
7660
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7629
- * allows quering by
7661
+ * allows querying by
7630
7662
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7631
7663
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7632
7664
  * and
@@ -7658,7 +7690,7 @@
7658
7690
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7659
7691
  * can be passed as-is and a
7660
7692
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7661
- * allows quering by
7693
+ * allows querying by
7662
7694
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7663
7695
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7664
7696
  * and
@@ -7696,7 +7728,7 @@
7696
7728
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7697
7729
  * can be passed as-is and a
7698
7730
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7699
- * allows quering by
7731
+ * allows querying by
7700
7732
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7701
7733
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7702
7734
  * and
@@ -7748,7 +7780,7 @@
7748
7780
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
7749
7781
  * can be passed as-is and a
7750
7782
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
7751
- * allows quering by
7783
+ * allows querying by
7752
7784
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
7753
7785
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
7754
7786
  * and
@@ -8366,7 +8398,7 @@
8366
8398
  }
8367
8399
  };
8368
8400
 
8369
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8401
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CdpSession.js
8370
8402
  init_dirname();
8371
8403
  init_buffer2();
8372
8404
 
@@ -8492,7 +8524,7 @@
8492
8524
  }
8493
8525
  };
8494
8526
 
8495
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js
8527
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/CdpSession.js
8496
8528
  var CdpCDPSession = class extends CDPSession {
8497
8529
  #sessionId;
8498
8530
  #targetType;
@@ -8501,6 +8533,7 @@
8501
8533
  #parentSessionId;
8502
8534
  #target;
8503
8535
  #rawErrors = false;
8536
+ #detached = false;
8504
8537
  /**
8505
8538
  * @internal
8506
8539
  */
@@ -8517,7 +8550,7 @@
8517
8550
  *
8518
8551
  * @internal
8519
8552
  */
8520
- _setTarget(target) {
8553
+ setTarget(target) {
8521
8554
  this.#target = target;
8522
8555
  }
8523
8556
  /**
@@ -8525,13 +8558,16 @@
8525
8558
  *
8526
8559
  * @internal
8527
8560
  */
8528
- _target() {
8561
+ target() {
8529
8562
  assert(this.#target, "Target must exist");
8530
8563
  return this.#target;
8531
8564
  }
8532
8565
  connection() {
8533
8566
  return this.#connection;
8534
8567
  }
8568
+ get #closed() {
8569
+ return this.#connection._closed || this.#detached;
8570
+ }
8535
8571
  parentSession() {
8536
8572
  if (!this.#parentSessionId) {
8537
8573
  return this;
@@ -8540,7 +8576,7 @@
8540
8576
  return parent ?? void 0;
8541
8577
  }
8542
8578
  send(method, params, options) {
8543
- if (!this.#connection) {
8579
+ if (this.#closed) {
8544
8580
  return Promise.reject(new TargetCloseError(`Protocol error (${method}): Session closed. Most likely the ${this.#targetType} has been closed.`));
8545
8581
  }
8546
8582
  return this.#connection._rawSend(this.#callbacks, method, params, this.#sessionId, options);
@@ -8548,7 +8584,7 @@
8548
8584
  /**
8549
8585
  * @internal
8550
8586
  */
8551
- _onMessage(object) {
8587
+ onMessage(object) {
8552
8588
  if (object.id) {
8553
8589
  if (object.error) {
8554
8590
  if (this.#rawErrors) {
@@ -8569,19 +8605,20 @@
8569
8605
  * won't emit any events and can't be used to send messages.
8570
8606
  */
8571
8607
  async detach() {
8572
- if (!this.#connection) {
8608
+ if (this.#closed) {
8573
8609
  throw new Error(`Session already detached. Most likely the ${this.#targetType} has been closed.`);
8574
8610
  }
8575
8611
  await this.#connection.send("Target.detachFromTarget", {
8576
8612
  sessionId: this.#sessionId
8577
8613
  });
8614
+ this.#detached = true;
8578
8615
  }
8579
8616
  /**
8580
8617
  * @internal
8581
8618
  */
8582
- _onClosed() {
8619
+ onClosed() {
8583
8620
  this.#callbacks.clear();
8584
- this.#connection = void 0;
8621
+ this.#detached = true;
8585
8622
  this.emit(CDPSessionEvent.Disconnected, void 0);
8586
8623
  }
8587
8624
  /**
@@ -8708,7 +8745,7 @@
8708
8745
  } else if (object.method === "Target.detachedFromTarget") {
8709
8746
  const session = this.#sessions.get(object.params.sessionId);
8710
8747
  if (session) {
8711
- session._onClosed();
8748
+ session.onClosed();
8712
8749
  this.#sessions.delete(object.params.sessionId);
8713
8750
  this.emit(CDPSessionEvent.SessionDetached, session);
8714
8751
  const parentSession = this.#sessions.get(object.sessionId);
@@ -8720,7 +8757,7 @@
8720
8757
  if (object.sessionId) {
8721
8758
  const session = this.#sessions.get(object.sessionId);
8722
8759
  if (session) {
8723
- session._onMessage(object);
8760
+ session.onMessage(object);
8724
8761
  }
8725
8762
  } else if (object.id) {
8726
8763
  if (object.error) {
@@ -8745,7 +8782,7 @@
8745
8782
  this.#transport.onclose = void 0;
8746
8783
  this.#callbacks.clear();
8747
8784
  for (const session of this.#sessions.values()) {
8748
- session._onClosed();
8785
+ session.onClosed();
8749
8786
  }
8750
8787
  this.#sessions.clear();
8751
8788
  this.emit(CDPSessionEvent.Disconnected, void 0);
@@ -9626,136 +9663,6 @@
9626
9663
  };
9627
9664
  })();
9628
9665
 
9629
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FirefoxTargetManager.js
9630
- init_dirname();
9631
- init_buffer2();
9632
- var FirefoxTargetManager = class extends EventEmitter {
9633
- #connection;
9634
- /**
9635
- * Keeps track of the following events: 'Target.targetCreated',
9636
- * 'Target.targetDestroyed'.
9637
- *
9638
- * A target becomes discovered when 'Target.targetCreated' is received.
9639
- * A target is removed from this map once 'Target.targetDestroyed' is
9640
- * received.
9641
- *
9642
- * `targetFilterCallback` has no effect on this map.
9643
- */
9644
- #discoveredTargetsByTargetId = /* @__PURE__ */ new Map();
9645
- /**
9646
- * Keeps track of targets that were created via 'Target.targetCreated'
9647
- * and which one are not filtered out by `targetFilterCallback`.
9648
- *
9649
- * The target is removed from here once it's been destroyed.
9650
- */
9651
- #availableTargetsByTargetId = /* @__PURE__ */ new Map();
9652
- /**
9653
- * Tracks which sessions attach to which target.
9654
- */
9655
- #availableTargetsBySessionId = /* @__PURE__ */ new Map();
9656
- #targetFilterCallback;
9657
- #targetFactory;
9658
- #attachedToTargetListenersBySession = /* @__PURE__ */ new WeakMap();
9659
- #initializeDeferred = Deferred.create();
9660
- #targetsIdsForInit = /* @__PURE__ */ new Set();
9661
- constructor(connection, targetFactory, targetFilterCallback) {
9662
- super();
9663
- this.#connection = connection;
9664
- this.#targetFilterCallback = targetFilterCallback;
9665
- this.#targetFactory = targetFactory;
9666
- this.#connection.on("Target.targetCreated", this.#onTargetCreated);
9667
- this.#connection.on("Target.targetDestroyed", this.#onTargetDestroyed);
9668
- this.#connection.on(CDPSessionEvent.SessionDetached, this.#onSessionDetached);
9669
- this.setupAttachmentListeners(this.#connection);
9670
- }
9671
- setupAttachmentListeners(session) {
9672
- const listener = (event) => {
9673
- return this.#onAttachedToTarget(session, event);
9674
- };
9675
- assert(!this.#attachedToTargetListenersBySession.has(session));
9676
- this.#attachedToTargetListenersBySession.set(session, listener);
9677
- session.on("Target.attachedToTarget", listener);
9678
- }
9679
- #onSessionDetached = (session) => {
9680
- this.removeSessionListeners(session);
9681
- this.#availableTargetsBySessionId.delete(session.id());
9682
- };
9683
- removeSessionListeners(session) {
9684
- if (this.#attachedToTargetListenersBySession.has(session)) {
9685
- session.off("Target.attachedToTarget", this.#attachedToTargetListenersBySession.get(session));
9686
- this.#attachedToTargetListenersBySession.delete(session);
9687
- }
9688
- }
9689
- getAvailableTargets() {
9690
- return this.#availableTargetsByTargetId;
9691
- }
9692
- getChildTargets(_target) {
9693
- return /* @__PURE__ */ new Set();
9694
- }
9695
- dispose() {
9696
- this.#connection.off("Target.targetCreated", this.#onTargetCreated);
9697
- this.#connection.off("Target.targetDestroyed", this.#onTargetDestroyed);
9698
- }
9699
- async initialize() {
9700
- await this.#connection.send("Target.setDiscoverTargets", {
9701
- discover: true,
9702
- filter: [{}]
9703
- });
9704
- this.#targetsIdsForInit = new Set(this.#discoveredTargetsByTargetId.keys());
9705
- await this.#initializeDeferred.valueOrThrow();
9706
- }
9707
- #onTargetCreated = async (event) => {
9708
- if (this.#discoveredTargetsByTargetId.has(event.targetInfo.targetId)) {
9709
- return;
9710
- }
9711
- this.#discoveredTargetsByTargetId.set(event.targetInfo.targetId, event.targetInfo);
9712
- if (event.targetInfo.type === "browser" && event.targetInfo.attached) {
9713
- const target2 = this.#targetFactory(event.targetInfo, void 0);
9714
- target2._initialize();
9715
- this.#availableTargetsByTargetId.set(event.targetInfo.targetId, target2);
9716
- this.#finishInitializationIfReady(target2._targetId);
9717
- return;
9718
- }
9719
- const target = this.#targetFactory(event.targetInfo, void 0);
9720
- if (this.#targetFilterCallback && !this.#targetFilterCallback(target)) {
9721
- this.#finishInitializationIfReady(event.targetInfo.targetId);
9722
- return;
9723
- }
9724
- target._initialize();
9725
- this.#availableTargetsByTargetId.set(event.targetInfo.targetId, target);
9726
- this.emit("targetAvailable", target);
9727
- this.#finishInitializationIfReady(target._targetId);
9728
- };
9729
- #onTargetDestroyed = (event) => {
9730
- this.#discoveredTargetsByTargetId.delete(event.targetId);
9731
- this.#finishInitializationIfReady(event.targetId);
9732
- const target = this.#availableTargetsByTargetId.get(event.targetId);
9733
- if (target) {
9734
- this.emit("targetGone", target);
9735
- this.#availableTargetsByTargetId.delete(event.targetId);
9736
- }
9737
- };
9738
- #onAttachedToTarget = async (parentSession, event) => {
9739
- const targetInfo = event.targetInfo;
9740
- const session = this.#connection.session(event.sessionId);
9741
- if (!session) {
9742
- throw new Error(`Session ${event.sessionId} was not created.`);
9743
- }
9744
- const target = this.#availableTargetsByTargetId.get(targetInfo.targetId);
9745
- assert(target, `Target ${targetInfo.targetId} is missing`);
9746
- session._setTarget(target);
9747
- this.setupAttachmentListeners(session);
9748
- this.#availableTargetsBySessionId.set(session.id(), this.#availableTargetsByTargetId.get(targetInfo.targetId));
9749
- parentSession.emit(CDPSessionEvent.Ready, session);
9750
- };
9751
- #finishInitializationIfReady(targetId) {
9752
- this.#targetsIdsForInit.delete(targetId);
9753
- if (this.#targetsIdsForInit.size === 0) {
9754
- this.#initializeDeferred.resolve();
9755
- }
9756
- }
9757
- };
9758
-
9759
9666
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/FrameManager.js
9760
9667
  init_dirname();
9761
9668
  init_buffer2();
@@ -11054,7 +10961,7 @@
11054
10961
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
11055
10962
  * can be passed as-is and a
11056
10963
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
11057
- * allows quering by
10964
+ * allows querying by
11058
10965
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
11059
10966
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
11060
10967
  * and
@@ -11080,7 +10987,7 @@
11080
10987
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
11081
10988
  * can be passed as-is and a
11082
10989
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
11083
- * allows quering by
10990
+ * allows querying by
11084
10991
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
11085
10992
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
11086
10993
  * and
@@ -11116,7 +11023,7 @@
11116
11023
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
11117
11024
  * can be passed as-is and a
11118
11025
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
11119
- * allows quering by
11026
+ * allows querying by
11120
11027
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
11121
11028
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
11122
11029
  * and
@@ -11155,7 +11062,7 @@
11155
11062
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
11156
11063
  * can be passed as-is and a
11157
11064
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
11158
- * allows quering by
11065
+ * allows querying by
11159
11066
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
11160
11067
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
11161
11068
  * and
@@ -11713,7 +11620,7 @@
11713
11620
  var DeviceRequestPromptManager = class {
11714
11621
  #client;
11715
11622
  #timeoutSettings;
11716
- #deviceRequestPrompDeferreds = /* @__PURE__ */ new Set();
11623
+ #deviceRequestPromptDeferreds = /* @__PURE__ */ new Set();
11717
11624
  /**
11718
11625
  * @internal
11719
11626
  */
@@ -11733,7 +11640,7 @@
11733
11640
  */
11734
11641
  async waitForDevicePrompt(options = {}) {
11735
11642
  assert(this.#client !== null, "Cannot wait for device prompt through detached session!");
11736
- const needsEnable = this.#deviceRequestPrompDeferreds.size === 0;
11643
+ const needsEnable = this.#deviceRequestPromptDeferreds.size === 0;
11737
11644
  let enablePromise;
11738
11645
  if (needsEnable) {
11739
11646
  enablePromise = this.#client.send("DeviceAccess.enable");
@@ -11748,7 +11655,7 @@
11748
11655
  deferred.reject(options.signal?.reason);
11749
11656
  }, { once: true });
11750
11657
  }
11751
- this.#deviceRequestPrompDeferreds.add(deferred);
11658
+ this.#deviceRequestPromptDeferreds.add(deferred);
11752
11659
  try {
11753
11660
  const [result] = await Promise.all([
11754
11661
  deferred.valueOrThrow(),
@@ -11756,22 +11663,22 @@
11756
11663
  ]);
11757
11664
  return result;
11758
11665
  } finally {
11759
- this.#deviceRequestPrompDeferreds.delete(deferred);
11666
+ this.#deviceRequestPromptDeferreds.delete(deferred);
11760
11667
  }
11761
11668
  }
11762
11669
  /**
11763
11670
  * @internal
11764
11671
  */
11765
11672
  #onDeviceRequestPrompted(event) {
11766
- if (!this.#deviceRequestPrompDeferreds.size) {
11673
+ if (!this.#deviceRequestPromptDeferreds.size) {
11767
11674
  return;
11768
11675
  }
11769
11676
  assert(this.#client !== null);
11770
11677
  const devicePrompt = new DeviceRequestPrompt(this.#client, this.#timeoutSettings, event);
11771
- for (const promise of this.#deviceRequestPrompDeferreds) {
11678
+ for (const promise of this.#deviceRequestPromptDeferreds) {
11772
11679
  promise.resolve(devicePrompt);
11773
11680
  }
11774
- this.#deviceRequestPrompDeferreds.clear();
11681
+ this.#deviceRequestPromptDeferreds.clear();
11775
11682
  }
11776
11683
  };
11777
11684
 
@@ -12103,8 +12010,8 @@
12103
12010
  /**
12104
12011
  * @internal
12105
12012
  */
12106
- dispose() {
12107
- return this.handle.dispose();
12013
+ async dispose() {
12014
+ await Promise.all([this.handle.dispose(), this.isolatedHandle?.dispose()]);
12108
12015
  }
12109
12016
  /**
12110
12017
  * @internal
@@ -12121,7 +12028,7 @@
12121
12028
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
12122
12029
  * can be passed as-is and a
12123
12030
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
12124
- * allows quering by
12031
+ * allows querying by
12125
12032
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
12126
12033
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
12127
12034
  * and
@@ -12146,7 +12053,7 @@
12146
12053
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
12147
12054
  * can be passed as-is and a
12148
12055
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
12149
- * allows quering by
12056
+ * allows querying by
12150
12057
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
12151
12058
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
12152
12059
  * and
@@ -12206,7 +12113,7 @@
12206
12113
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
12207
12114
  * can be passed as-is and a
12208
12115
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
12209
- * allows quering by
12116
+ * allows querying by
12210
12117
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
12211
12118
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
12212
12119
  * and
@@ -12269,7 +12176,7 @@
12269
12176
  * {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors | CSS selectors}
12270
12177
  * can be passed as-is and a
12271
12178
  * {@link https://pptr.dev/guides/page-interactions#non-css-selectors | Puppeteer-specific selector syntax}
12272
- * allows quering by
12179
+ * allows querying by
12273
12180
  * {@link https://pptr.dev/guides/page-interactions#text-selectors--p-text | text},
12274
12181
  * {@link https://pptr.dev/guides/page-interactions#aria-selectors--p-aria | a11y role and name},
12275
12182
  * and
@@ -14482,7 +14389,7 @@ ${sourceUrlComment}
14482
14389
  }
14483
14390
  if (this.#poller) {
14484
14391
  try {
14485
- await this.#poller.evaluateHandle(async (poller) => {
14392
+ await this.#poller.evaluate(async (poller) => {
14486
14393
  await poller.stop();
14487
14394
  });
14488
14395
  if (this.#poller) {
@@ -14507,7 +14414,7 @@ ${sourceUrlComment}
14507
14414
  if (error.message.includes("Cannot find context with specified id")) {
14508
14415
  return;
14509
14416
  }
14510
- if (error.message.includes("AbortError: Actor 'MessageHandlerFrame' destroyed")) {
14417
+ if (error.message.includes("DiscardedBrowsingContextError")) {
14511
14418
  return;
14512
14419
  }
14513
14420
  return error;
@@ -15161,10 +15068,6 @@ ${sourceUrlComment}
15161
15068
  throw new UnsupportedOperation();
15162
15069
  }
15163
15070
  async frameElement() {
15164
- const isFirefox = this.page().target()._targetManager() instanceof FirefoxTargetManager;
15165
- if (isFirefox) {
15166
- return await super.frameElement();
15167
- }
15168
15071
  const parent = this.parentFrame();
15169
15072
  if (!parent) {
15170
15073
  return null;
@@ -15648,7 +15551,7 @@ ${sourceUrlComment}
15648
15551
  failed: "Failed"
15649
15552
  };
15650
15553
  function handleError(error) {
15651
- if (error.originalMessage.includes("Invalid header") || error.originalMessage.includes('Expected "header"') || // WebDriver BiDi error for invalid values, for example, headers.
15554
+ if (error.originalMessage.includes("Invalid header") || error.originalMessage.includes("Unsafe header") || error.originalMessage.includes('Expected "header"') || // WebDriver BiDi error for invalid values, for example, headers.
15652
15555
  error.originalMessage.includes("invalid argument")) {
15653
15556
  throw error;
15654
15557
  }
@@ -15680,7 +15583,7 @@ ${sourceUrlComment}
15680
15583
  this.id = data.requestId;
15681
15584
  this.#isNavigationRequest = data.requestId === data.loaderId && data.type === "Document";
15682
15585
  this._interceptionId = interceptionId;
15683
- this.#url = data.request.url;
15586
+ this.#url = data.request.url + (data.request.urlFragment ?? "");
15684
15587
  this.#resourceType = (data.type || "other").toLowerCase();
15685
15588
  this.#method = data.request.method;
15686
15589
  this.#postData = data.request.postData;
@@ -15931,7 +15834,6 @@ ${sourceUrlComment}
15931
15834
  #remoteAddress;
15932
15835
  #status;
15933
15836
  #statusText;
15934
- #url;
15935
15837
  #fromDiskCache;
15936
15838
  #fromServiceWorker;
15937
15839
  #headers = {};
@@ -15945,7 +15847,6 @@ ${sourceUrlComment}
15945
15847
  port: responsePayload.remotePort
15946
15848
  };
15947
15849
  this.#statusText = this.#parseStatusTextFromExtraInfo(extraInfo) || responsePayload.statusText;
15948
- this.#url = request.url();
15949
15850
  this.#fromDiskCache = !!responsePayload.fromDiskCache;
15950
15851
  this.#fromServiceWorker = !!responsePayload.fromServiceWorker;
15951
15852
  this.#status = extraInfo ? extraInfo.statusCode : responsePayload.status;
@@ -15984,7 +15885,7 @@ ${sourceUrlComment}
15984
15885
  return this.#remoteAddress;
15985
15886
  }
15986
15887
  url() {
15987
- return this.#url;
15888
+ return this.#request.url();
15988
15889
  }
15989
15890
  status() {
15990
15891
  return this.#status;
@@ -16651,6 +16552,10 @@ ${sourceUrlComment}
16651
16552
  if (!mainFrame) {
16652
16553
  return;
16653
16554
  }
16555
+ if (this.client.connection()?._closed) {
16556
+ this.#removeFramesRecursively(mainFrame);
16557
+ return;
16558
+ }
16654
16559
  for (const child of mainFrame.childFrames()) {
16655
16560
  this.#removeFramesRecursively(child);
16656
16561
  }
@@ -16677,9 +16582,9 @@ ${sourceUrlComment}
16677
16582
  assert(this.#client instanceof CdpCDPSession, "CDPSession is not an instance of CDPSessionImpl.");
16678
16583
  const frame = this._frameTree.getMainFrame();
16679
16584
  if (frame) {
16680
- this.#frameNavigatedReceived.add(this.#client._target()._targetId);
16585
+ this.#frameNavigatedReceived.add(this.#client.target()._targetId);
16681
16586
  this._frameTree.removeFrame(frame);
16682
- frame.updateId(this.#client._target()._targetId);
16587
+ frame.updateId(this.#client.target()._targetId);
16683
16588
  this._frameTree.addFrame(frame);
16684
16589
  frame.updateClient(client);
16685
16590
  }
@@ -18305,7 +18210,7 @@ ${sourceUrlComment}
18305
18210
  this.#primaryTargetClient = client;
18306
18211
  this.#tabTargetClient = client.parentSession();
18307
18212
  assert(this.#tabTargetClient, "Tab target session is not defined.");
18308
- this.#tabTarget = this.#tabTargetClient._target();
18213
+ this.#tabTarget = this.#tabTargetClient.target();
18309
18214
  assert(this.#tabTarget, "Tab target is not defined.");
18310
18215
  this.#primaryTarget = target;
18311
18216
  this.#targetManager = target._targetManager();
@@ -18381,7 +18286,7 @@ ${sourceUrlComment}
18381
18286
  async #onActivation(newSession) {
18382
18287
  this.#primaryTargetClient = newSession;
18383
18288
  assert(this.#primaryTargetClient instanceof CdpCDPSession, "CDPSession is not instance of CDPSessionImpl");
18384
- this.#primaryTarget = this.#primaryTargetClient._target();
18289
+ this.#primaryTarget = this.#primaryTargetClient.target();
18385
18290
  assert(this.#primaryTarget, "Missing target on swap");
18386
18291
  this.#keyboard.updateClient(newSession);
18387
18292
  this.#mouse.updateClient(newSession);
@@ -18394,7 +18299,7 @@ ${sourceUrlComment}
18394
18299
  }
18395
18300
  async #onSecondaryTarget(session) {
18396
18301
  assert(session instanceof CdpCDPSession);
18397
- if (session._target()._subtype() !== "prerender") {
18302
+ if (session.target()._subtype() !== "prerender") {
18398
18303
  return;
18399
18304
  }
18400
18305
  this.#frameManager.registerSpeculativeSession(session).catch(debugError);
@@ -18434,9 +18339,9 @@ ${sourceUrlComment}
18434
18339
  };
18435
18340
  #onAttachedToTarget = (session) => {
18436
18341
  assert(session instanceof CdpCDPSession);
18437
- this.#frameManager.onAttachedToTarget(session._target());
18438
- if (session._target()._getTargetInfo().type === "worker") {
18439
- const worker = new CdpWebWorker(session, session._target().url(), session._target()._targetId, session._target().type(), this.#addConsoleMessage.bind(this), this.#handleException.bind(this));
18342
+ this.#frameManager.onAttachedToTarget(session.target());
18343
+ if (session.target()._getTargetInfo().type === "worker") {
18344
+ const worker = new CdpWebWorker(session, session.target().url(), session.target()._targetId, session.target().type(), this.#addConsoleMessage.bind(this), this.#handleException.bind(this));
18440
18345
  this.#workers.set(session.id(), worker);
18441
18346
  this.emit("workercreated", worker);
18442
18347
  }
@@ -18883,9 +18788,8 @@ ${sourceUrlComment}
18883
18788
  const env_2 = { stack: [], error: void 0, hasError: false };
18884
18789
  try {
18885
18790
  const { fromSurface, omitBackground, optimizeForSpeed, quality, clip: userClip, type, captureBeyondViewport } = options;
18886
- const isFirefox = this.target()._targetManager() instanceof FirefoxTargetManager;
18887
18791
  const stack = __addDisposableResource12(env_2, new AsyncDisposableStack(), true);
18888
- if (!isFirefox && omitBackground && (type === "png" || type === "webp")) {
18792
+ if (omitBackground && (type === "png" || type === "webp")) {
18889
18793
  await this.#emulationManager.setTransparentBackgroundColor();
18890
18794
  stack.defer(async () => {
18891
18795
  await this.#emulationManager.resetDefaultBackgroundColor().catch(debugError);
@@ -18901,10 +18805,10 @@ ${sourceUrlComment}
18901
18805
  }
18902
18806
  const { data } = await this.#primaryTargetClient.send("Page.captureScreenshot", {
18903
18807
  format: type,
18904
- ...optimizeForSpeed ? { optimizeForSpeed } : {},
18808
+ optimizeForSpeed,
18809
+ fromSurface,
18905
18810
  ...quality !== void 0 ? { quality: Math.round(quality) } : {},
18906
18811
  ...clip ? { clip: { ...clip, scale: clip.scale ?? 1 } } : {},
18907
- ...!fromSurface ? { fromSurface } : {},
18908
18812
  captureBeyondViewport
18909
18813
  });
18910
18814
  return data;
@@ -19216,10 +19120,6 @@ ${sourceUrlComment}
19216
19120
  }
19217
19121
  };
19218
19122
 
19219
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19220
- init_dirname();
19221
- init_buffer2();
19222
-
19223
19123
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Target.js
19224
19124
  init_dirname();
19225
19125
  init_buffer2();
@@ -19252,7 +19152,7 @@ ${sourceUrlComment}
19252
19152
  this._targetId = targetInfo.targetId;
19253
19153
  this.#sessionFactory = sessionFactory;
19254
19154
  if (this.#session && this.#session instanceof CdpCDPSession) {
19255
- this.#session._setTarget(this);
19155
+ this.#session.setTarget(this);
19256
19156
  }
19257
19157
  }
19258
19158
  async asPage() {
@@ -19290,7 +19190,7 @@ ${sourceUrlComment}
19290
19190
  throw new Error("sessionFactory is not initialized");
19291
19191
  }
19292
19192
  return this.#sessionFactory(false).then((session) => {
19293
- session._setTarget(this);
19193
+ session.setTarget(this);
19294
19194
  return session;
19295
19195
  });
19296
19196
  }
@@ -19447,11 +19347,13 @@ ${sourceUrlComment}
19447
19347
  var OtherTarget = class extends CdpTarget {
19448
19348
  };
19449
19349
 
19450
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js
19350
+ // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js
19351
+ init_dirname();
19352
+ init_buffer2();
19451
19353
  function isPageTargetBecomingPrimary(target, newTargetInfo) {
19452
19354
  return Boolean(target._subtype()) && !newTargetInfo.subtype;
19453
19355
  }
19454
- var ChromeTargetManager = class extends EventEmitter {
19356
+ var TargetManager = class extends EventEmitter {
19455
19357
  #connection;
19456
19358
  /**
19457
19359
  * Keeps track of the following events: 'Target.targetCreated',
@@ -19465,7 +19367,7 @@ ${sourceUrlComment}
19465
19367
  */
19466
19368
  #discoveredTargetsByTargetId = /* @__PURE__ */ new Map();
19467
19369
  /**
19468
- * A target is added to this map once ChromeTargetManager has created
19370
+ * A target is added to this map once TargetManager has created
19469
19371
  * a Target and attached at least once to it.
19470
19372
  */
19471
19373
  #attachedTargetsByTargetId = /* @__PURE__ */ new Map();
@@ -19659,14 +19561,14 @@ ${sourceUrlComment}
19659
19561
  }
19660
19562
  this.#setupAttachmentListeners(session);
19661
19563
  if (isExistingTarget) {
19662
- session._setTarget(target);
19564
+ session.setTarget(target);
19663
19565
  this.#attachedTargetsBySessionId.set(session.id(), this.#attachedTargetsByTargetId.get(targetInfo.targetId));
19664
19566
  } else {
19665
19567
  target._initialize();
19666
19568
  this.#attachedTargetsByTargetId.set(targetInfo.targetId, target);
19667
19569
  this.#attachedTargetsBySessionId.set(session.id(), target);
19668
19570
  }
19669
- const parentTarget = parentSession instanceof CDPSession ? parentSession._target() : null;
19571
+ const parentTarget = parentSession instanceof CDPSession ? parentSession.target() : null;
19670
19572
  parentTarget?._addChildTarget(target);
19671
19573
  parentSession.emit(CDPSessionEvent.Ready, session);
19672
19574
  this.#targetsIdsForInit.delete(target._targetId);
@@ -19699,7 +19601,7 @@ ${sourceUrlComment}
19699
19601
  return;
19700
19602
  }
19701
19603
  if (parentSession instanceof CDPSession) {
19702
- parentSession._target()._removeChildTarget(target);
19604
+ parentSession.target()._removeChildTarget(target);
19703
19605
  }
19704
19606
  this.#attachedTargetsByTargetId.delete(target._targetId);
19705
19607
  this.emit("targetGone", target);
@@ -19709,8 +19611,8 @@ ${sourceUrlComment}
19709
19611
  // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/Browser.js
19710
19612
  var CdpBrowser = class _CdpBrowser extends Browser {
19711
19613
  protocol = "cdp";
19712
- static async _create(product, connection, contextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19713
- const browser = new _CdpBrowser(product, connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets);
19614
+ static async _create(connection, contextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19615
+ const browser = new _CdpBrowser(connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets);
19714
19616
  if (acceptInsecureCerts) {
19715
19617
  await connection.send("Security.setIgnoreCertificateErrors", {
19716
19618
  ignore: true
@@ -19728,9 +19630,8 @@ ${sourceUrlComment}
19728
19630
  #defaultContext;
19729
19631
  #contexts = /* @__PURE__ */ new Map();
19730
19632
  #targetManager;
19731
- constructor(product, connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19633
+ constructor(connection, contextIds, defaultViewport, process3, closeCallback, targetFilterCallback, isPageTargetCallback, waitForInitiallyDiscoveredTargets = true) {
19732
19634
  super();
19733
- product = product || "chrome";
19734
19635
  this.#defaultViewport = defaultViewport;
19735
19636
  this.#process = process3;
19736
19637
  this.#connection = connection;
@@ -19740,11 +19641,7 @@ ${sourceUrlComment}
19740
19641
  return true;
19741
19642
  });
19742
19643
  this.#setIsPageTargetCallback(isPageTargetCallback);
19743
- if (product === "firefox") {
19744
- this.#targetManager = new FirefoxTargetManager(connection, this.#createTarget, this.#targetFilterCallback);
19745
- } else {
19746
- this.#targetManager = new ChromeTargetManager(connection, this.#createTarget, this.#targetFilterCallback, waitForInitiallyDiscoveredTargets);
19747
- }
19644
+ this.#targetManager = new TargetManager(connection, this.#createTarget, this.#targetFilterCallback, waitForInitiallyDiscoveredTargets);
19748
19645
  this.#defaultContext = new CdpBrowserContext(this.#connection, this);
19749
19646
  for (const contextId of contextIds) {
19750
19647
  this.#contexts.set(contextId, new CdpBrowserContext(this.#connection, this, contextId));
@@ -19931,10 +19828,8 @@ ${sourceUrlComment}
19931
19828
  async function _connectToCdpBrowser(connectionTransport, url, options) {
19932
19829
  const { acceptInsecureCerts = false, defaultViewport = DEFAULT_VIEWPORT, downloadBehavior, targetFilter, _isPageTarget: isPageTarget, slowMo = 0, protocolTimeout } = options;
19933
19830
  const connection = new Connection(url, connectionTransport, slowMo, protocolTimeout);
19934
- const version = await connection.send("Browser.getVersion");
19935
- const product = version.product.toLowerCase().includes("firefox") ? "firefox" : "chrome";
19936
19831
  const { browserContextIds } = await connection.send("Target.getBrowserContexts");
19937
- const browser = await CdpBrowser._create(product || "chrome", connection, browserContextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, void 0, () => {
19832
+ const browser = await CdpBrowser._create(connection, browserContextIds, acceptInsecureCerts, defaultViewport, downloadBehavior, void 0, () => {
19938
19833
  return connection.send("Browser.close").catch(debugError);
19939
19834
  }, targetFilter, isPageTarget);
19940
19835
  return browser;
@@ -20182,7 +20077,7 @@ puppeteer-core/lib/esm/puppeteer/common/CallbackRegistry.js:
20182
20077
  * SPDX-License-Identifier: Apache-2.0
20183
20078
  *)
20184
20079
 
20185
- puppeteer-core/lib/esm/puppeteer/cdp/CDPSession.js:
20080
+ puppeteer-core/lib/esm/puppeteer/cdp/CdpSession.js:
20186
20081
  (**
20187
20082
  * @license
20188
20083
  * Copyright 2017 Google Inc.
@@ -20217,13 +20112,6 @@ puppeteer-core/lib/esm/puppeteer/cdp/Dialog.js:
20217
20112
  * SPDX-License-Identifier: Apache-2.0
20218
20113
  *)
20219
20114
 
20220
- puppeteer-core/lib/esm/puppeteer/cdp/FirefoxTargetManager.js:
20221
- (**
20222
- * @license
20223
- * Copyright 2022 Google Inc.
20224
- * SPDX-License-Identifier: Apache-2.0
20225
- *)
20226
-
20227
20115
  puppeteer-core/lib/esm/puppeteer/api/ElementHandleSymbol.js:
20228
20116
  (**
20229
20117
  * @license
@@ -20539,7 +20427,7 @@ puppeteer-core/lib/esm/puppeteer/cdp/Target.js:
20539
20427
  * SPDX-License-Identifier: Apache-2.0
20540
20428
  *)
20541
20429
 
20542
- puppeteer-core/lib/esm/puppeteer/cdp/ChromeTargetManager.js:
20430
+ puppeteer-core/lib/esm/puppeteer/cdp/TargetManager.js:
20543
20431
  (**
20544
20432
  * @license
20545
20433
  * Copyright 2022 Google Inc.