@browserless.io/browserless 2.34.1 → 2.36.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 (425) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/build/limiter.js +1 -1
  3. package/build/routes/chrome/http/content.post.body.json +90 -1
  4. package/build/routes/chrome/http/pdf.post.body.json +90 -1
  5. package/build/routes/chrome/http/scrape.post.body.json +90 -1
  6. package/build/routes/chrome/http/scrape.post.response.json +21 -22
  7. package/build/routes/chrome/http/screenshot.post.body.json +90 -1
  8. package/build/routes/chromium/http/content.post.body.json +90 -1
  9. package/build/routes/chromium/http/pdf.post.body.json +90 -1
  10. package/build/routes/chromium/http/scrape.post.body.json +90 -1
  11. package/build/routes/chromium/http/scrape.post.response.json +21 -22
  12. package/build/routes/chromium/http/screenshot.post.body.json +90 -1
  13. package/build/routes/chromium/tests/scrape.spec.js +41 -0
  14. package/build/routes/edge/http/content.post.body.json +90 -1
  15. package/build/routes/edge/http/pdf.post.body.json +90 -1
  16. package/build/routes/edge/http/scrape.post.body.json +90 -1
  17. package/build/routes/edge/http/scrape.post.response.json +21 -22
  18. package/build/routes/edge/http/screenshot.post.body.json +90 -1
  19. package/build/sdk-utils.js +1 -1
  20. package/build/shared/scrape.http.js +13 -3
  21. package/docker/base/Dockerfile +8 -8
  22. package/docker/chrome/Dockerfile +2 -2
  23. package/docker/chromium/Dockerfile +2 -2
  24. package/docker/edge/Dockerfile +2 -2
  25. package/docker/firefox/Dockerfile +2 -2
  26. package/docker/multi/Dockerfile +2 -2
  27. package/docker/sdk/Dockerfile +1 -1
  28. package/docker/webkit/Dockerfile +2 -2
  29. package/extensions/ublocklite/_locales/br_FR/messages.json +1 -1
  30. package/extensions/ublocklite/_locales/he/messages.json +2 -2
  31. package/extensions/ublocklite/_locales/hu/messages.json +1 -1
  32. package/extensions/ublocklite/_locales/pt_BR/messages.json +1 -1
  33. package/extensions/ublocklite/_locales/pt_PT/messages.json +1 -1
  34. package/extensions/ublocklite/_locales/sk/messages.json +6 -6
  35. package/extensions/ublocklite/_locales/sq/messages.json +17 -17
  36. package/extensions/ublocklite/_locales/th/messages.json +1 -1
  37. package/extensions/ublocklite/_locales/tr/messages.json +1 -1
  38. package/extensions/ublocklite/_locales/vi/messages.json +1 -1
  39. package/extensions/ublocklite/css/common.css +5 -3
  40. package/extensions/ublocklite/css/default.css +10 -0
  41. package/extensions/ublocklite/js/dnr-parser.js +1 -1
  42. package/extensions/ublocklite/js/filter-lists.js +1 -4
  43. package/extensions/ublocklite/js/popup.js +2 -2
  44. package/extensions/ublocklite/js/ruleset-manager.js +5 -121
  45. package/extensions/ublocklite/js/rw-dnr-editor.js +8 -4
  46. package/extensions/ublocklite/js/scripting/tool-overlay.js +1 -0
  47. package/extensions/ublocklite/js/settings.js +2 -1
  48. package/extensions/ublocklite/js/static-filtering-parser.js +8 -8
  49. package/extensions/ublocklite/js/ubo-parser.js +181 -65
  50. package/extensions/ublocklite/manifest.json +3 -3
  51. package/extensions/ublocklite/rulesets/generic-details.json +6 -16
  52. package/extensions/ublocklite/rulesets/main/adguard-mobile.json +25 -4
  53. package/extensions/ublocklite/rulesets/main/adguard-spyware-url.json +615 -1
  54. package/extensions/ublocklite/rulesets/main/annoyances-cookies.json +19 -7
  55. package/extensions/ublocklite/rulesets/main/annoyances-others.json +4 -2
  56. package/extensions/ublocklite/rulesets/main/annoyances-overlays.json +22 -2
  57. package/extensions/ublocklite/rulesets/main/annoyances-widgets.json +1 -1
  58. package/extensions/ublocklite/rulesets/main/chn-0.json +93 -28
  59. package/extensions/ublocklite/rulesets/main/cze-0.json +6 -1
  60. package/extensions/ublocklite/rulesets/main/deu-0.json +11 -5
  61. package/extensions/ublocklite/rulesets/main/dpollock-0.json +2 -0
  62. package/extensions/ublocklite/rulesets/main/easylist.json +135 -29
  63. package/extensions/ublocklite/rulesets/main/easyprivacy.json +132 -27
  64. package/extensions/ublocklite/rulesets/main/est-0.json +1 -1
  65. package/extensions/ublocklite/rulesets/main/fin-0.json +9 -0
  66. package/extensions/ublocklite/rulesets/main/fra-0.json +48 -10
  67. package/extensions/ublocklite/rulesets/main/hun-0.json +4 -1
  68. package/extensions/ublocklite/rulesets/main/idn-0.json +1 -1
  69. package/extensions/ublocklite/rulesets/main/ind-0.json +93 -150
  70. package/extensions/ublocklite/rulesets/main/irn-0.json +33 -7
  71. package/extensions/ublocklite/rulesets/main/isr-0.json +20 -2
  72. package/extensions/ublocklite/rulesets/main/ita-0.json +3 -1
  73. package/extensions/ublocklite/rulesets/main/jpn-1.json +60 -13
  74. package/extensions/ublocklite/rulesets/main/kor-1.json +38 -6
  75. package/extensions/ublocklite/rulesets/main/ltu-0.json +3 -1
  76. package/extensions/ublocklite/rulesets/main/lva-0.json +2 -1
  77. package/extensions/ublocklite/rulesets/main/nld-0.json +6 -1
  78. package/extensions/ublocklite/rulesets/main/nor-0.json +13 -4
  79. package/extensions/ublocklite/rulesets/main/pgl.json +8 -9
  80. package/extensions/ublocklite/rulesets/main/pol-0.json +13 -1
  81. package/extensions/ublocklite/rulesets/main/rou-1.json +17 -1
  82. package/extensions/ublocklite/rulesets/main/rus-0.json +101 -24
  83. package/extensions/ublocklite/rulesets/main/rus-1.json +112 -4
  84. package/extensions/ublocklite/rulesets/main/spa-1.json +38 -14
  85. package/extensions/ublocklite/rulesets/main/stevenblack-hosts.json +13076 -6934
  86. package/extensions/ublocklite/rulesets/main/swe-1.json +77 -43
  87. package/extensions/ublocklite/rulesets/main/tha-0.json +7 -1
  88. package/extensions/ublocklite/rulesets/main/tur-0.json +45 -5
  89. package/extensions/ublocklite/rulesets/main/ublock-badware.json +76 -102
  90. package/extensions/ublocklite/rulesets/main/ublock-filters.json +770 -99
  91. package/extensions/ublocklite/rulesets/main/ubol-tests.json +43 -0
  92. package/extensions/ublocklite/rulesets/main/ukr-0.json +20 -1
  93. package/extensions/ublocklite/rulesets/main/urlhaus-full.json +503 -614
  94. package/extensions/ublocklite/rulesets/main/vie-1.json +61 -52
  95. package/extensions/ublocklite/rulesets/regex/chn-0.json +6 -3
  96. package/extensions/ublocklite/rulesets/regex/deu-0.json +0 -1
  97. package/extensions/ublocklite/rulesets/regex/jpn-1.json +1 -1
  98. package/extensions/ublocklite/rulesets/regex/kor-1.json +1 -0
  99. package/extensions/ublocklite/rulesets/regex/pol-0.json +1 -0
  100. package/extensions/ublocklite/rulesets/regex/rus-0.json +1 -0
  101. package/extensions/ublocklite/rulesets/regex/rus-1.json +24 -0
  102. package/extensions/ublocklite/rulesets/regex/tur-0.json +2 -1
  103. package/extensions/ublocklite/rulesets/regex/ublock-badware.json +10 -8
  104. package/extensions/ublocklite/rulesets/regex/ublock-filters.json +26 -9
  105. package/extensions/ublocklite/rulesets/ruleset-details.json +238 -458
  106. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-cookies.js +3 -3
  107. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-notifications.js +1 -1
  108. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-overlays.js +1 -1
  109. package/extensions/ublocklite/rulesets/scripting/generic/annoyances-social.js +1 -1
  110. package/extensions/ublocklite/rulesets/scripting/generic/chn-0.js +3 -3
  111. package/extensions/ublocklite/rulesets/scripting/generic/easylist.js +3 -3
  112. package/extensions/ublocklite/rulesets/scripting/generic/fra-0.js +1 -1
  113. package/extensions/ublocklite/rulesets/scripting/generic/idn-0.js +1 -1
  114. package/extensions/ublocklite/rulesets/scripting/generic/jpn-1.js +1 -1
  115. package/extensions/ublocklite/rulesets/scripting/generic/nld-0.js +1 -1
  116. package/extensions/ublocklite/rulesets/scripting/generic/nor-0.js +1 -1
  117. package/extensions/ublocklite/rulesets/scripting/generic/spa-1.js +3 -3
  118. package/extensions/ublocklite/rulesets/scripting/generic/swe-1.js +1 -1
  119. package/extensions/ublocklite/rulesets/scripting/generic/tur-0.js +3 -3
  120. package/extensions/ublocklite/rulesets/scripting/generic/ublock-filters.js +3 -3
  121. package/extensions/ublocklite/rulesets/scripting/generic/ukr-0.js +1 -1
  122. package/extensions/ublocklite/rulesets/scripting/generic/vie-1.js +2 -2
  123. package/extensions/ublocklite/rulesets/scripting/generichigh/chn-0.css +2 -9
  124. package/extensions/ublocklite/rulesets/scripting/generichigh/easylist.css +1 -1
  125. package/extensions/ublocklite/rulesets/scripting/generichigh/idn-0.css +1 -0
  126. package/extensions/ublocklite/rulesets/scripting/generichigh/ublock-filters.css +0 -2
  127. package/extensions/ublocklite/rulesets/scripting/procedural/adguard-mobile.js +3 -3
  128. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-cookies.js +3 -3
  129. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-notifications.js +3 -3
  130. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-others.js +3 -3
  131. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-overlays.js +3 -3
  132. package/extensions/ublocklite/rulesets/scripting/procedural/annoyances-social.js +3 -3
  133. package/extensions/ublocklite/rulesets/scripting/procedural/chn-0.js +1 -1
  134. package/extensions/ublocklite/rulesets/scripting/procedural/deu-0.js +3 -3
  135. package/extensions/ublocklite/rulesets/scripting/procedural/easylist.js +3 -3
  136. package/extensions/ublocklite/rulesets/scripting/procedural/fra-0.js +3 -3
  137. package/extensions/ublocklite/rulesets/scripting/procedural/idn-0.js +3 -3
  138. package/extensions/ublocklite/rulesets/scripting/procedural/irn-0.js +3 -3
  139. package/extensions/ublocklite/rulesets/scripting/procedural/jpn-1.js +3 -3
  140. package/extensions/ublocklite/rulesets/scripting/procedural/kor-1.js +3 -3
  141. package/extensions/ublocklite/rulesets/scripting/procedural/nld-0.js +3 -3
  142. package/extensions/ublocklite/rulesets/scripting/procedural/rou-1.js +3 -3
  143. package/extensions/ublocklite/rulesets/scripting/procedural/rus-0.js +3 -3
  144. package/extensions/ublocklite/rulesets/scripting/procedural/rus-1.js +3 -3
  145. package/extensions/ublocklite/rulesets/scripting/procedural/spa-1.js +3 -3
  146. package/extensions/ublocklite/rulesets/scripting/procedural/swe-1.js +3 -3
  147. package/extensions/ublocklite/rulesets/scripting/procedural/tur-0.js +3 -3
  148. package/extensions/ublocklite/rulesets/scripting/procedural/ublock-filters.js +3 -3
  149. package/extensions/ublocklite/rulesets/scripting/procedural/vie-1.js +2 -2
  150. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.abort-on-property-read.js +2 -2
  151. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-constant.js +2 -2
  152. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.set-cookie.js +2 -2
  153. package/extensions/ublocklite/rulesets/scripting/scriptlet/adguard-mobile.trusted-replace-node-text.js +450 -0
  154. package/extensions/ublocklite/rulesets/scripting/scriptlet/{jpn-1.abort-on-property-write.js → adguard-mobile.trusted-set-attr.js} +107 -41
  155. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.prevent-requestAnimationFrame.js +407 -0
  156. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.remove-node-text.js +1 -1
  157. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-cookie.js +2 -2
  158. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.set-local-storage-item.js +2 -2
  159. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-click-element.js +2 -2
  160. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-replace-node-text.js +2 -2
  161. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-cookie.js +2 -2
  162. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-cookies.trusted-set-local-storage-item.js +2 -2
  163. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-others.addEventListener-defuser.js +1 -1
  164. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-current-script.js +1 -1
  165. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.abort-on-stack-trace.js +2 -2
  166. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.addEventListener-defuser.js +2 -2
  167. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-fetch.js +9 -2
  168. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setInterval.js +2 -2
  169. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-setTimeout.js +2 -2
  170. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.prevent-xhr.js +2 -2
  171. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.remove-cookie.js +2 -2
  172. package/extensions/ublocklite/rulesets/scripting/scriptlet/annoyances-overlays.set-constant.js +2 -2
  173. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.abort-current-script.js +2 -2
  174. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.addEventListener-defuser.js +2 -2
  175. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.adjust-setTimeout.js +2 -2
  176. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.json-prune.js +1 -1
  177. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-fetch.js +9 -2
  178. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-setTimeout.js +2 -2
  179. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.prevent-window-open.js +1 -1
  180. package/extensions/ublocklite/rulesets/scripting/scriptlet/chn-0.set-constant.js +2 -2
  181. package/extensions/ublocklite/rulesets/scripting/scriptlet/{vie-1.m3u-prune.js → chn-0.spoof-css.js} +109 -148
  182. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.abort-current-script.js +1 -1
  183. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.prevent-fetch.js +7 -0
  184. package/extensions/ublocklite/rulesets/scripting/scriptlet/easyprivacy.set-constant.js +1 -1
  185. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.addEventListener-defuser.js +2 -2
  186. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.adjust-setTimeout.js +2 -2
  187. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-fetch.js +7 -0
  188. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.prevent-setTimeout.js +2 -2
  189. package/extensions/ublocklite/rulesets/scripting/scriptlet/fra-0.set-constant.js +1 -1
  190. package/extensions/ublocklite/rulesets/scripting/scriptlet/hun-0.set-local-storage-item.js +2 -2
  191. package/extensions/ublocklite/rulesets/scripting/scriptlet/idn-0.prevent-fetch.js +7 -0
  192. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.abort-current-script.js +2 -2
  193. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.prevent-fetch.js +7 -0
  194. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-constant.js +2 -2
  195. package/extensions/ublocklite/rulesets/scripting/scriptlet/irn-0.set-session-storage-item.js +2 -2
  196. package/extensions/ublocklite/rulesets/scripting/scriptlet/isr-0.prevent-fetch.js +7 -0
  197. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.json-prune.js +2 -2
  198. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.prevent-fetch.js +7 -0
  199. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.remove-attr.js +1 -1
  200. package/extensions/ublocklite/rulesets/scripting/scriptlet/jpn-1.set-cookie.js +442 -0
  201. package/extensions/ublocklite/rulesets/scripting/scriptlet/{chn-0.json-prune-fetch-response.js → kor-1.json-prune-xhr-response.js} +71 -62
  202. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.json-prune.js +2 -2
  203. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-fetch.js +7 -0
  204. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.prevent-setTimeout.js +2 -2
  205. package/extensions/ublocklite/rulesets/scripting/scriptlet/kor-1.set-constant.js +2 -2
  206. package/extensions/ublocklite/rulesets/scripting/scriptlet/nld-0.prevent-fetch.js +7 -0
  207. package/extensions/ublocklite/rulesets/scripting/scriptlet/nor-0.prevent-fetch.js +7 -0
  208. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.abort-current-script.js +2 -2
  209. package/extensions/ublocklite/rulesets/scripting/scriptlet/rou-1.remove-node-text.js +1 -1
  210. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.abort-on-property-read.js +2 -2
  211. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.addEventListener-defuser.js +3 -3
  212. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-fetch.js +10 -3
  213. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-setTimeout.js +2 -2
  214. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.prevent-xhr.js +1 -1
  215. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-cookie.js +3 -3
  216. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.remove-node-text.js +3 -3
  217. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-attr.js +2 -2
  218. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-constant.js +3 -3
  219. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-0.set-local-storage-item.js +2 -2
  220. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.abort-on-property-read.js +3 -3
  221. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.addEventListener-defuser.js +1 -1
  222. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.json-prune.js +2 -2
  223. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.prevent-fetch.js +7 -0
  224. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.remove-cookie.js +4 -4
  225. package/extensions/ublocklite/rulesets/scripting/scriptlet/rus-1.set-constant.js +3 -3
  226. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-current-script.js +2 -2
  227. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.abort-on-property-read.js +1 -1
  228. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.addEventListener-defuser.js +1 -1
  229. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.adjust-setInterval.js +1 -1
  230. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.json-prune.js +2 -2
  231. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.noeval-if.js +1 -1
  232. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-fetch.js +9 -2
  233. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-requestAnimationFrame.js +2 -2
  234. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-setTimeout.js +2 -2
  235. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.prevent-window-open.js +1 -1
  236. package/extensions/ublocklite/rulesets/scripting/scriptlet/spa-1.set-constant.js +2 -2
  237. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.addEventListener-defuser.js +2 -2
  238. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.href-sanitizer.js +2 -2
  239. package/extensions/ublocklite/rulesets/scripting/scriptlet/swe-1.prevent-setTimeout.js +2 -2
  240. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-read.js +2 -2
  241. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.abort-on-property-write.js +1 -1
  242. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.addEventListener-defuser.js +2 -2
  243. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-fetch.js +7 -0
  244. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-setTimeout.js +2 -2
  245. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.prevent-window-open.js +1 -1
  246. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-attr.js +2 -2
  247. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.remove-node-text.js +2 -2
  248. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-constant.js +2 -2
  249. package/extensions/ublocklite/rulesets/scripting/scriptlet/tur-0.set-cookie.js +2 -2
  250. package/extensions/ublocklite/rulesets/scripting/scriptlet/{ublock-filters.evaldata-prune.js → ublock-badware.addEventListener-defuser.js} +103 -173
  251. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-experimental.trusted-replace-node-text.js +450 -0
  252. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-current-script.js +3 -3
  253. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-read.js +3 -3
  254. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-property-write.js +2 -2
  255. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.abort-on-stack-trace.js +3 -3
  256. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.addEventListener-defuser.js +3 -3
  257. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setInterval.js +2 -2
  258. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.adjust-setTimeout.js +2 -2
  259. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.disable-newtab-links.js +1 -1
  260. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.href-sanitizer.js +2 -2
  261. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-edit-xhr-response.js +851 -0
  262. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-fetch-response.js +2 -2
  263. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune-xhr-response.js +3 -3
  264. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.json-prune.js +3 -3
  265. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.m3u-prune.js +2 -2
  266. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.noeval-if.js +2 -2
  267. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.nowebrtc.js +2 -2
  268. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-fetch.js +9 -2
  269. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-requestAnimationFrame.js +2 -2
  270. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setInterval.js +2 -2
  271. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-setTimeout.js +3 -3
  272. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-window-open.js +2 -2
  273. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.prevent-xhr.js +3 -3
  274. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-attr.js +2 -2
  275. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-cookie.js +2 -2
  276. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.remove-node-text.js +2 -2
  277. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-attr.js +2 -2
  278. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-constant.js +3 -3
  279. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-cookie.js +2 -2
  280. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.set-local-storage-item.js +2 -2
  281. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.spoof-css.js +2 -2
  282. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-click-element.js +1 -1
  283. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-create-html.js +2 -2
  284. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-override-element-method.js +1 -1
  285. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-fetch.js +7 -0
  286. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-prevent-xhr.js +1 -1
  287. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-argument.js +2 -2
  288. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-node-text.js +3 -3
  289. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-outbound-text.js +2 -2
  290. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-replace-xhr-response.js +1 -1
  291. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-constant.js +1 -1
  292. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-cookie.js +3 -3
  293. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-set-local-storage-item.js +2 -2
  294. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.trusted-suppress-native-method.js +1 -1
  295. package/extensions/ublocklite/rulesets/scripting/scriptlet/ublock-filters.xml-prune.js +2 -2
  296. package/extensions/ublocklite/rulesets/scripting/scriptlet/ukr-0.prevent-fetch.js +7 -0
  297. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-current-script.js +2 -2
  298. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.abort-on-property-read.js +2 -2
  299. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.json-prune.js +1 -1
  300. package/extensions/ublocklite/rulesets/scripting/scriptlet/vie-1.prevent-fetch.js +7 -0
  301. package/extensions/ublocklite/rulesets/scripting/specific/adguard-mobile.js +3 -3
  302. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-cookies.js +3 -3
  303. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-notifications.js +3 -3
  304. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-others.js +3 -3
  305. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-overlays.js +3 -3
  306. package/extensions/ublocklite/rulesets/scripting/specific/annoyances-social.js +3 -3
  307. package/extensions/ublocklite/rulesets/scripting/specific/chn-0.js +3 -3
  308. package/extensions/ublocklite/rulesets/scripting/specific/deu-0.js +3 -3
  309. package/extensions/ublocklite/rulesets/scripting/specific/easylist.js +3 -3
  310. package/extensions/ublocklite/rulesets/scripting/specific/fin-0.js +3 -3
  311. package/extensions/ublocklite/rulesets/scripting/specific/fra-0.js +3 -3
  312. package/extensions/ublocklite/rulesets/scripting/specific/hun-0.js +3 -3
  313. package/extensions/ublocklite/rulesets/scripting/specific/idn-0.js +3 -3
  314. package/extensions/ublocklite/rulesets/scripting/specific/ind-0.js +3 -3
  315. package/extensions/ublocklite/rulesets/scripting/specific/irn-0.js +3 -3
  316. package/extensions/ublocklite/rulesets/scripting/specific/isr-0.js +3 -3
  317. package/extensions/ublocklite/rulesets/scripting/specific/ita-0.js +3 -3
  318. package/extensions/ublocklite/rulesets/scripting/specific/jpn-1.js +3 -3
  319. package/extensions/ublocklite/rulesets/scripting/specific/kor-1.js +3 -3
  320. package/extensions/ublocklite/rulesets/scripting/specific/nld-0.js +3 -3
  321. package/extensions/ublocklite/rulesets/scripting/specific/nor-0.js +3 -3
  322. package/extensions/ublocklite/rulesets/scripting/specific/rou-1.js +3 -3
  323. package/extensions/ublocklite/rulesets/scripting/specific/rus-0.js +3 -3
  324. package/extensions/ublocklite/rulesets/scripting/specific/rus-1.js +3 -3
  325. package/extensions/ublocklite/rulesets/scripting/specific/spa-1.js +3 -3
  326. package/extensions/ublocklite/rulesets/scripting/specific/swe-1.js +3 -3
  327. package/extensions/ublocklite/rulesets/scripting/specific/tha-0.js +3 -3
  328. package/extensions/ublocklite/rulesets/scripting/specific/tur-0.js +3 -3
  329. package/extensions/ublocklite/rulesets/scripting/specific/ublock-filters.js +3 -3
  330. package/extensions/ublocklite/rulesets/scripting/specific/ukr-0.js +3 -3
  331. package/extensions/ublocklite/rulesets/scripting/specific/vie-1.js +3 -3
  332. package/extensions/ublocklite/rulesets/scriptlet-details.json +271 -174
  333. package/extensions/ublocklite/rulesets/strictblock/adguard-mobile.json +3 -2
  334. package/extensions/ublocklite/rulesets/strictblock/annoyances-cookies.json +1 -0
  335. package/extensions/ublocklite/rulesets/strictblock/chn-0.json +329 -791
  336. package/extensions/ublocklite/rulesets/strictblock/dpollock-0.json +2 -0
  337. package/extensions/ublocklite/rulesets/strictblock/easylist.json +1 -1
  338. package/extensions/ublocklite/rulesets/strictblock/easyprivacy.json +62 -4
  339. package/extensions/ublocklite/rulesets/strictblock/fra-0.json +429 -49
  340. package/extensions/ublocklite/rulesets/strictblock/irn-0.json +2 -0
  341. package/extensions/ublocklite/rulesets/strictblock/jpn-1.json +183 -176
  342. package/extensions/ublocklite/rulesets/strictblock/kor-1.json +6 -1
  343. package/extensions/ublocklite/rulesets/strictblock/nor-0.json +1 -1
  344. package/extensions/ublocklite/rulesets/strictblock/pgl.json +8 -9
  345. package/extensions/ublocklite/rulesets/strictblock/pol-0.json +1 -0
  346. package/extensions/ublocklite/rulesets/strictblock/rus-1.json +1 -0
  347. package/extensions/ublocklite/rulesets/strictblock/spa-1.json +0 -2
  348. package/extensions/ublocklite/rulesets/strictblock/stevenblack-hosts.json +13076 -6934
  349. package/extensions/ublocklite/rulesets/strictblock/swe-1.json +2 -0
  350. package/extensions/ublocklite/rulesets/strictblock/tur-0.json +4 -0
  351. package/extensions/ublocklite/rulesets/strictblock/ublock-badware.json +580 -577
  352. package/extensions/ublocklite/rulesets/strictblock/ublock-filters.json +3 -2
  353. package/extensions/ublocklite/rulesets/strictblock/urlhaus-full.json +503 -614
  354. package/extensions/ublocklite/rulesets/strictblock/vie-1.json +6 -7
  355. package/extensions/ublocklite/rulesets/urlskip/ublock-filters.json +30 -0
  356. package/extensions/ublocklite/ublock.zip +0 -0
  357. package/package.json +23 -21
  358. package/scripts/install-adblock.js +25 -4
  359. package/scripts/start.sh +1 -1
  360. package/scripts/test.sh +2 -2
  361. package/src/limiter.ts +1 -1
  362. package/src/routes/chromium/tests/scrape.spec.ts +48 -0
  363. package/src/sdk-utils.ts +1 -1
  364. package/src/shared/scrape.http.ts +17 -5
  365. package/static/docs/swagger.json +330 -102
  366. package/static/docs/swagger.min.json +329 -101
  367. package/static/function/client.js +203 -104
  368. package/static/function/index.html +203 -104
  369. package/extensions/ublocklite/rulesets/modify-headers/annoyances-overlays.json +0 -108
  370. package/extensions/ublocklite/rulesets/modify-headers/chn-0.json +0 -316
  371. package/extensions/ublocklite/rulesets/modify-headers/cze-0.json +0 -25
  372. package/extensions/ublocklite/rulesets/modify-headers/deu-0.json +0 -24
  373. package/extensions/ublocklite/rulesets/modify-headers/easylist.json +0 -14
  374. package/extensions/ublocklite/rulesets/modify-headers/easyprivacy.json +0 -48
  375. package/extensions/ublocklite/rulesets/modify-headers/fra-0.json +0 -215
  376. package/extensions/ublocklite/rulesets/modify-headers/irn-0.json +0 -45
  377. package/extensions/ublocklite/rulesets/modify-headers/isr-0.json +0 -50
  378. package/extensions/ublocklite/rulesets/modify-headers/rus-0.json +0 -40
  379. package/extensions/ublocklite/rulesets/modify-headers/rus-1.json +0 -22
  380. package/extensions/ublocklite/rulesets/modify-headers/swe-1.json +0 -46
  381. package/extensions/ublocklite/rulesets/modify-headers/ublock-filters.json +0 -54
  382. package/extensions/ublocklite/rulesets/modify-headers/ubol-tests.json +0 -25
  383. package/extensions/ublocklite/rulesets/modify-headers/vie-1.json +0 -162
  384. package/extensions/ublocklite/rulesets/redirect/adguard-mobile.json +0 -20
  385. package/extensions/ublocklite/rulesets/redirect/annoyances-overlays.json +0 -15
  386. package/extensions/ublocklite/rulesets/redirect/chn-0.json +0 -40
  387. package/extensions/ublocklite/rulesets/redirect/cze-0.json +0 -76
  388. package/extensions/ublocklite/rulesets/redirect/deu-0.json +0 -79
  389. package/extensions/ublocklite/rulesets/redirect/easylist.json +0 -103
  390. package/extensions/ublocklite/rulesets/redirect/easyprivacy.json +0 -137
  391. package/extensions/ublocklite/rulesets/redirect/fin-0.json +0 -121
  392. package/extensions/ublocklite/rulesets/redirect/fra-0.json +0 -35
  393. package/extensions/ublocklite/rulesets/redirect/hun-0.json +0 -38
  394. package/extensions/ublocklite/rulesets/redirect/irn-0.json +0 -73
  395. package/extensions/ublocklite/rulesets/redirect/isr-0.json +0 -17
  396. package/extensions/ublocklite/rulesets/redirect/jpn-1.json +0 -29
  397. package/extensions/ublocklite/rulesets/redirect/kor-1.json +0 -25
  398. package/extensions/ublocklite/rulesets/redirect/ltu-0.json +0 -33
  399. package/extensions/ublocklite/rulesets/redirect/nld-0.json +0 -79
  400. package/extensions/ublocklite/rulesets/redirect/nor-0.json +0 -132
  401. package/extensions/ublocklite/rulesets/redirect/pol-0.json +0 -15
  402. package/extensions/ublocklite/rulesets/redirect/rou-1.json +0 -53
  403. package/extensions/ublocklite/rulesets/redirect/rus-0.json +0 -21
  404. package/extensions/ublocklite/rulesets/redirect/rus-1.json +0 -118
  405. package/extensions/ublocklite/rulesets/redirect/spa-1.json +0 -27
  406. package/extensions/ublocklite/rulesets/redirect/swe-1.json +0 -14
  407. package/extensions/ublocklite/rulesets/redirect/tha-0.json +0 -78
  408. package/extensions/ublocklite/rulesets/redirect/tur-0.json +0 -24
  409. package/extensions/ublocklite/rulesets/redirect/ublock-badware.json +0 -18
  410. package/extensions/ublocklite/rulesets/redirect/ublock-filters.json +0 -548
  411. package/extensions/ublocklite/rulesets/redirect/ubol-tests.json +0 -22
  412. package/extensions/ublocklite/rulesets/redirect/ukr-0.json +0 -18
  413. package/extensions/ublocklite/rulesets/redirect/vie-1.json +0 -117
  414. package/extensions/ublocklite/rulesets/removeparam/adguard-spyware-url.json +0 -612
  415. package/extensions/ublocklite/rulesets/removeparam/annoyances-overlays.json +0 -27
  416. package/extensions/ublocklite/rulesets/removeparam/chn-0.json +0 -48
  417. package/extensions/ublocklite/rulesets/removeparam/est-0.json +0 -26
  418. package/extensions/ublocklite/rulesets/removeparam/fin-0.json +0 -52
  419. package/extensions/ublocklite/rulesets/removeparam/irn-0.json +0 -18
  420. package/extensions/ublocklite/rulesets/removeparam/kor-1.json +0 -26
  421. package/extensions/ublocklite/rulesets/removeparam/rus-0.json +0 -19
  422. package/extensions/ublocklite/rulesets/removeparam/rus-1.json +0 -99
  423. package/extensions/ublocklite/rulesets/removeparam/swe-1.json +0 -125
  424. package/extensions/ublocklite/rulesets/removeparam/ublock-filters.json +0 -64
  425. package/extensions/ublocklite/rulesets/removeparam/ukr-0.json +0 -49
@@ -3511,9 +3511,9 @@
3511
3511
  function popNumber(args, defaultValue) {
3512
3512
  return typeof last(args) === "number" ? args.pop() : defaultValue;
3513
3513
  }
3514
- var isArrayLike = function(x) {
3514
+ var isArrayLike = (function(x) {
3515
3515
  return x && typeof x.length === "number" && typeof x !== "function";
3516
- };
3516
+ });
3517
3517
  function isPromise(value) {
3518
3518
  return isFunction(value === null || value === void 0 ? void 0 : value.then);
3519
3519
  }
@@ -4430,7 +4430,7 @@
4430
4430
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/version.js
4431
4431
  init_dirname();
4432
4432
  init_buffer2();
4433
- var packageVersion = "24.16.2";
4433
+ var packageVersion = "24.22.0";
4434
4434
 
4435
4435
  // node_modules/puppeteer-core/lib/esm/puppeteer/util/assert.js
4436
4436
  init_dirname();
@@ -4572,6 +4572,8 @@
4572
4572
  };
4573
4573
  var TargetCloseError = class extends ProtocolError {
4574
4574
  };
4575
+ var ConnectionClosedError = class extends ProtocolError {
4576
+ };
4575
4577
 
4576
4578
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/PDFOptions.js
4577
4579
  init_dirname();
@@ -4919,7 +4921,7 @@
4919
4921
  Symbol.asyncDispose ??= Symbol("asyncDispose");
4920
4922
  var disposeSymbol = Symbol.dispose;
4921
4923
  var asyncDisposeSymbol = Symbol.asyncDispose;
4922
- var DisposableStack = class _DisposableStack {
4924
+ var DisposableStackPolyfill = class _DisposableStackPolyfill {
4923
4925
  #disposed = false;
4924
4926
  #stack = [];
4925
4927
  /**
@@ -5012,7 +5014,7 @@
5012
5014
  if (this.#disposed) {
5013
5015
  throw new ReferenceError("A disposed stack can not use anything new");
5014
5016
  }
5015
- const stack = new _DisposableStack();
5017
+ const stack = new _DisposableStackPolyfill();
5016
5018
  stack.#stack = this.#stack;
5017
5019
  this.#stack = [];
5018
5020
  this.#disposed = true;
@@ -5038,11 +5040,11 @@
5038
5040
  throw errors[0];
5039
5041
  } else if (errors.length > 1) {
5040
5042
  let suppressed = null;
5041
- for (const error of errors.reverse()) {
5043
+ for (const error of errors) {
5042
5044
  if (suppressed === null) {
5043
5045
  suppressed = error;
5044
5046
  } else {
5045
- suppressed = new SuppressedError2(error, suppressed);
5047
+ suppressed = new SuppressedErrorPolyfill(error, suppressed);
5046
5048
  }
5047
5049
  }
5048
5050
  throw suppressed;
@@ -5050,7 +5052,8 @@
5050
5052
  }
5051
5053
  [Symbol.toStringTag] = "DisposableStack";
5052
5054
  };
5053
- var AsyncDisposableStack = class _AsyncDisposableStack {
5055
+ var DisposableStack = globalThis.DisposableStack ?? DisposableStackPolyfill;
5056
+ var AsyncDisposableStackPolyfill = class _AsyncDisposableStackPolyfill {
5054
5057
  #disposed = false;
5055
5058
  #stack = [];
5056
5059
  /**
@@ -5062,7 +5065,7 @@
5062
5065
  /**
5063
5066
  * Alias for `[Symbol.asyncDispose]()`.
5064
5067
  */
5065
- async dispose() {
5068
+ async disposeAsync() {
5066
5069
  await this[asyncDisposeSymbol]();
5067
5070
  }
5068
5071
  /**
@@ -5153,7 +5156,7 @@
5153
5156
  if (this.#disposed) {
5154
5157
  throw new ReferenceError("A disposed stack can not use anything new");
5155
5158
  }
5156
- const stack = new _AsyncDisposableStack();
5159
+ const stack = new _AsyncDisposableStackPolyfill();
5157
5160
  stack.#stack = this.#stack;
5158
5161
  this.#stack = [];
5159
5162
  this.#disposed = true;
@@ -5179,11 +5182,11 @@
5179
5182
  throw errors[0];
5180
5183
  } else if (errors.length > 1) {
5181
5184
  let suppressed = null;
5182
- for (const error of errors.reverse()) {
5185
+ for (const error of errors) {
5183
5186
  if (suppressed === null) {
5184
5187
  suppressed = error;
5185
5188
  } else {
5186
- suppressed = new SuppressedError2(error, suppressed);
5189
+ suppressed = new SuppressedErrorPolyfill(error, suppressed);
5187
5190
  }
5188
5191
  }
5189
5192
  throw suppressed;
@@ -5191,7 +5194,8 @@
5191
5194
  }
5192
5195
  [Symbol.toStringTag] = "AsyncDisposableStack";
5193
5196
  };
5194
- var SuppressedError2 = class extends Error {
5197
+ var AsyncDisposableStack = globalThis.AsyncDisposableStack ?? AsyncDisposableStackPolyfill;
5198
+ var SuppressedErrorPolyfill = class extends Error {
5195
5199
  #error;
5196
5200
  #suppressed;
5197
5201
  constructor(error, suppressed, message = "An error was suppressed during disposal") {
@@ -5214,6 +5218,7 @@
5214
5218
  return this.#suppressed;
5215
5219
  }
5216
5220
  };
5221
+ var SuppressedError2 = globalThis.SuppressedError ?? SuppressedErrorPolyfill;
5217
5222
 
5218
5223
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/EventEmitter.js
5219
5224
  var EventEmitter = class {
@@ -5432,6 +5437,19 @@
5432
5437
  async deleteCookie(...cookies) {
5433
5438
  return await this.defaultBrowserContext().deleteCookie(...cookies);
5434
5439
  }
5440
+ /**
5441
+ * Deletes cookies matching the provided filters from the default
5442
+ * {@link BrowserContext}.
5443
+ *
5444
+ * @remarks
5445
+ *
5446
+ * Shortcut for
5447
+ * {@link BrowserContext.deleteMatchingCookies |
5448
+ * browser.defaultBrowserContext().deleteMatchingCookies()}.
5449
+ */
5450
+ async deleteMatchingCookies(...filters) {
5451
+ return await this.defaultBrowserContext().deleteMatchingCookies(...filters);
5452
+ }
5435
5453
  /**
5436
5454
  * Whether Puppeteer is connected to this {@link Browser | browser}.
5437
5455
  *
@@ -5682,8 +5700,9 @@
5682
5700
  ), from(this.targets())).pipe(filterAsync(predicate), raceWith(timeout(ms))));
5683
5701
  }
5684
5702
  /**
5685
- * Removes cookie in the browser context
5686
- * @param cookies - {@link Cookie | cookie} to remove
5703
+ * Removes cookie in this browser context.
5704
+ *
5705
+ * @param cookies - Complete {@link Cookie | cookie} object to be removed.
5687
5706
  */
5688
5707
  async deleteCookie(...cookies) {
5689
5708
  return await this.setCookie(...cookies.map((cookie) => {
@@ -5693,6 +5712,49 @@
5693
5712
  };
5694
5713
  }));
5695
5714
  }
5715
+ /**
5716
+ * Deletes cookies matching the provided filters in this browser context.
5717
+ *
5718
+ * @param filters - {@link DeleteCookiesRequest}
5719
+ */
5720
+ async deleteMatchingCookies(...filters) {
5721
+ const cookies = await this.cookies();
5722
+ const cookiesToDelete = cookies.filter((cookie) => {
5723
+ return filters.some((filter2) => {
5724
+ if (filter2.name === cookie.name) {
5725
+ if (filter2.domain !== void 0 && filter2.domain === cookie.domain) {
5726
+ return true;
5727
+ }
5728
+ if (filter2.path !== void 0 && filter2.path === cookie.path) {
5729
+ return true;
5730
+ }
5731
+ if (filter2.partitionKey !== void 0 && cookie.partitionKey !== void 0) {
5732
+ if (typeof cookie.partitionKey !== "object") {
5733
+ throw new Error("Unexpected string partition key");
5734
+ }
5735
+ if (typeof filter2.partitionKey === "string") {
5736
+ if (filter2.partitionKey === cookie.partitionKey?.sourceOrigin) {
5737
+ return true;
5738
+ }
5739
+ } else {
5740
+ if (filter2.partitionKey.sourceOrigin === cookie.partitionKey?.sourceOrigin) {
5741
+ return true;
5742
+ }
5743
+ }
5744
+ }
5745
+ if (filter2.url !== void 0) {
5746
+ const url = new URL(filter2.url);
5747
+ if (url.hostname === cookie.domain && url.pathname === cookie.path) {
5748
+ return true;
5749
+ }
5750
+ }
5751
+ return true;
5752
+ }
5753
+ return false;
5754
+ });
5755
+ });
5756
+ await this.deleteCookie(...cookiesToDelete);
5757
+ }
5696
5758
  /**
5697
5759
  * Whether this {@link BrowserContext | browser context} is closed.
5698
5760
  */
@@ -6513,12 +6575,15 @@
6513
6575
  static create(pageOrFrame, selector) {
6514
6576
  return new _NodeLocator(pageOrFrame, selector).setTimeout("getDefaultTimeout" in pageOrFrame ? pageOrFrame.getDefaultTimeout() : pageOrFrame.page().getDefaultTimeout());
6515
6577
  }
6578
+ static createFromHandle(pageOrFrame, handle) {
6579
+ return new _NodeLocator(pageOrFrame, handle).setTimeout("getDefaultTimeout" in pageOrFrame ? pageOrFrame.getDefaultTimeout() : pageOrFrame.page().getDefaultTimeout());
6580
+ }
6516
6581
  #pageOrFrame;
6517
- #selector;
6518
- constructor(pageOrFrame, selector) {
6582
+ #selectorOrHandle;
6583
+ constructor(pageOrFrame, selectorOrHandle) {
6519
6584
  super();
6520
6585
  this.#pageOrFrame = pageOrFrame;
6521
- this.#selector = selector;
6586
+ this.#selectorOrHandle = selectorOrHandle;
6522
6587
  }
6523
6588
  /**
6524
6589
  * Waits for the element to become visible or hidden. visibility === 'visible'
@@ -6544,16 +6609,24 @@
6544
6609
  })().pipe(first(identity), retry({ delay: RETRY_DELAY }), ignoreElements());
6545
6610
  };
6546
6611
  _clone() {
6547
- return new _NodeLocator(this.#pageOrFrame, this.#selector).copyOptions(this);
6612
+ return new _NodeLocator(
6613
+ this.#pageOrFrame,
6614
+ // @ts-expect-error TSC does cannot parse private overloads.
6615
+ this.#selectorOrHandle
6616
+ ).copyOptions(this);
6548
6617
  }
6549
6618
  _wait(options) {
6550
6619
  const signal = options?.signal;
6551
6620
  return defer(() => {
6552
- return from(this.#pageOrFrame.waitForSelector(this.#selector, {
6553
- visible: false,
6554
- timeout: this._timeout,
6555
- signal
6556
- }));
6621
+ if (typeof this.#selectorOrHandle === "string") {
6622
+ return from(this.#pageOrFrame.waitForSelector(this.#selectorOrHandle, {
6623
+ visible: false,
6624
+ timeout: this._timeout,
6625
+ signal
6626
+ }));
6627
+ } else {
6628
+ return of(this.#selectorOrHandle);
6629
+ }
6557
6630
  }).pipe(filter((value) => {
6558
6631
  return value !== null;
6559
6632
  }), throwIfEmpty(), this.operators.conditions([this.#waitForVisibilityIfNeeded], signal));
@@ -6794,11 +6867,11 @@
6794
6867
  get accessibility() {
6795
6868
  return this.mainFrame().accessibility;
6796
6869
  }
6797
- locator(selectorOrFunc) {
6798
- if (typeof selectorOrFunc === "string") {
6799
- return NodeLocator.create(this, selectorOrFunc);
6870
+ locator(input) {
6871
+ if (typeof input === "string") {
6872
+ return NodeLocator.create(this, input);
6800
6873
  } else {
6801
- return FunctionLocator.create(this, selectorOrFunc);
6874
+ return FunctionLocator.create(this, input);
6802
6875
  }
6803
6876
  }
6804
6877
  /**
@@ -7323,7 +7396,7 @@
7323
7396
  *
7324
7397
  * @remarks
7325
7398
  * This method is a shortcut for calling two methods:
7326
- * {@link Page.setUserAgent} and {@link Page.setViewport}.
7399
+ * {@link Page.(setUserAgent:2) } and {@link Page.setViewport}.
7327
7400
  *
7328
7401
  * This method will resize the page. A lot of websites don't expect phones to
7329
7402
  * change size, so you should emulate before navigating to the page.
@@ -7346,7 +7419,7 @@
7346
7419
  */
7347
7420
  async emulate(device) {
7348
7421
  await Promise.all([
7349
- this.setUserAgent(device.userAgent),
7422
+ this.setUserAgent({ userAgent: device.userAgent }),
7350
7423
  this.setViewport(device.viewport)
7351
7424
  ]);
7352
7425
  }
@@ -8839,7 +8912,7 @@
8839
8912
  */
8840
8913
  _rawSend(callbacks, method, params, sessionId, options) {
8841
8914
  if (this.#closed) {
8842
- return Promise.reject(new Error("Protocol error: Connection closed."));
8915
+ return Promise.reject(new ConnectionClosedError("Connection closed."));
8843
8916
  }
8844
8917
  return callbacks.create(method, options?.timeout ?? this.#timeout, (id) => {
8845
8918
  const stringifiedMessage = JSON.stringify({
@@ -9811,9 +9884,38 @@
9811
9884
  init_dirname();
9812
9885
  init_buffer2();
9813
9886
 
9814
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/AriaQueryHandler.js
9887
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js
9888
+ init_dirname();
9889
+ init_buffer2();
9890
+
9891
+ // node_modules/puppeteer-core/lib/esm/puppeteer/util/AsyncIterableUtil.js
9815
9892
  init_dirname();
9816
9893
  init_buffer2();
9894
+ var AsyncIterableUtil = class {
9895
+ static async *map(iterable, map2) {
9896
+ for await (const value of iterable) {
9897
+ yield await map2(value);
9898
+ }
9899
+ }
9900
+ static async *flatMap(iterable, map2) {
9901
+ for await (const value of iterable) {
9902
+ yield* map2(value);
9903
+ }
9904
+ }
9905
+ static async collect(iterable) {
9906
+ const result = [];
9907
+ for await (const value of iterable) {
9908
+ result.push(value);
9909
+ }
9910
+ return result;
9911
+ }
9912
+ static async first(iterable) {
9913
+ for await (const value of iterable) {
9914
+ return value;
9915
+ }
9916
+ return;
9917
+ }
9918
+ };
9817
9919
 
9818
9920
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/QueryHandler.js
9819
9921
  init_dirname();
@@ -9842,7 +9944,7 @@
9842
9944
  try {
9843
9945
  new Function(`(${value})`);
9844
9946
  } catch (err) {
9845
- if (err.message.includes(`Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive`)) {
9947
+ if (err.message.includes(`Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive`) || err.message.includes("Evaluating a string as JavaScript violates the following Content Security Policy")) {
9846
9948
  return value;
9847
9949
  }
9848
9950
  let prefix = "function ";
@@ -10223,36 +10325,7 @@
10223
10325
  }
10224
10326
  };
10225
10327
 
10226
- // node_modules/puppeteer-core/lib/esm/puppeteer/util/AsyncIterableUtil.js
10227
- init_dirname();
10228
- init_buffer2();
10229
- var AsyncIterableUtil = class {
10230
- static async *map(iterable, map2) {
10231
- for await (const value of iterable) {
10232
- yield await map2(value);
10233
- }
10234
- }
10235
- static async *flatMap(iterable, map2) {
10236
- for await (const value of iterable) {
10237
- yield* map2(value);
10238
- }
10239
- }
10240
- static async collect(iterable) {
10241
- const result = [];
10242
- for await (const value of iterable) {
10243
- result.push(value);
10244
- }
10245
- return result;
10246
- }
10247
- static async first(iterable) {
10248
- for await (const value of iterable) {
10249
- return value;
10250
- }
10251
- return;
10252
- }
10253
- };
10254
-
10255
- // node_modules/puppeteer-core/lib/esm/puppeteer/cdp/AriaQueryHandler.js
10328
+ // node_modules/puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js
10256
10329
  var isKnownAttribute = (attribute) => {
10257
10330
  return ["name", "role"].includes(attribute);
10258
10331
  };
@@ -10308,7 +10381,7 @@
10308
10381
  // node_modules/puppeteer-core/lib/esm/puppeteer/generated/injected.js
10309
10382
  init_dirname();
10310
10383
  init_buffer2();
10311
- var source = '"use strict";var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)g(t,r,{get:e[r],enumerable:!0})},J=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of B(e))!Y.call(t,n)&&n!==r&&g(t,n,{get:()=>e[n],enumerable:!(o=X(e,n))||o.enumerable});return t};var z=t=>J(g({},"__esModule",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=z(pe);var N=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends N{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(n=>n instanceof t?(n.#n&&r.add(n),n.valueOrThrow()):n);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error("Timeout cleared"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#n;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#n=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#n),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#s;valueOrThrow(){return this.#s||(this.#s=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#s}};var L=new Map,F=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var x={};l(x,{ariaQuerySelector:()=>G,ariaQuerySelectorAll:()=>b});var G=(t,e)=>globalThis.__ariaQuerySelector(t,e),b=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var E={};l(E,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{customQuerySelectors:()=>P});var v=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(n,i)=>{for(let s of o(n,i))return s;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(n,i)=>{let s=o(n,i);return s?[s]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error("At least one query method must be defined.");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new v;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&!r&&s.matches(e)&&(r=s)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&s.matches(e)&&r.push(s)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var y=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}},w=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let n=await this.#e();if(!n){window.requestAnimationFrame(o);return}e.resolve(n),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,"Polling never started."),this.#r.finished()||this.#r.reject(new Error("Polling stopped"))}result(){return u(this.#r,"Polling never started."),this.#r.valueOrThrow()}},S=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set(["checkbox","image","radio"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),ne=new Set(["SCRIPT","STYLE"]),f=t=>!ne.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,j=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},W=new WeakSet,se=new MutationObserver(t=>{for(let e of t)j(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:"",immediate:[]},!f(t)))return e;let r="";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener("input",o=>{j(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??"",r+=o.nodeValue??"";continue}r&&e.immediate.push(r),r="",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),W.has(t)||(se.observe(t,{childList:!0,characterData:!0,subtree:!0}),W.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let n;o.shadowRoot?n=m(o.shadowRoot,e):n=m(o,e);for(let i of n)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>T,pierceAll:()=>O});var ie=["hidden","collapse"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),n=o&&!ie.includes(o.visibility)&&!ae(r);return e===n?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>"shadowRoot"in t&&t.shadowRoot instanceof ShadowRoot;function*T(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=T(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var Q={};l(Q,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let n=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],s;for(;(s=n.iterateNext())&&(i.push(s),!(r&&i.length===r)););for(let h=0;h<i.length;h++)s=i[h],yield s,delete i[h]};var ue=/[-\\w\\P{ASCII}*]/u,H=(r=>(r.Descendent=">>>",r.Child=">>>>",r))(H||{}),V=t=>"querySelectorAll"in t,M=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){if(typeof this.#o=="string")switch(this.#o.trimStart()){case":scope":this.#t();break}for(;this.#o!==void 0;this.#t()){let e=this.#o;typeof e=="string"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let n of r.parentElement.children)if(++o,n===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case"text":yield*m(r,e.value);break;case"xpath":yield*q(r,e.value);break;case"aria":yield*b(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case">>>>":{this.elements=a.flatMap(this.elements,T),this.#t();break}case">>>":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},D=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let n=0;for(let s=e.previousSibling;s;s=s.previousSibling)++n;let i=this.calculate(e.parentNode,[n]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[n=-1,...i]=e;return r===n?U(o,i):r<n?-1:1},de=async function*(t){let e=new Set;for await(let o of t)e.add(o);let r=new D;yield*[...e.values()].map(o=>[o,r.calculate(o)]).sort(([,o],[,n])=>U(o,n)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let n=0;return o.some(i=>(typeof i=="string"?++n:n=0,n>1))}))throw new Error("Multiple deep combinators found in sequence.");return de(a.flatMap(r,o=>{let n=new M(t,o);return n.run(),n.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...x,...A,...R,..._,...C,...k,...Q,...E,Deferred:c,createFunction:F,createTextContent:d,IntervalPoller:S,isSuitableNodeForTextMatching:f,MutationPoller:y,RAFPoller:w}),he=me;\n';
10384
+ var source = '"use strict";var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var J=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)g(t,r,{get:e[r],enumerable:!0})},Y=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of B(e))!J.call(t,n)&&n!==r&&g(t,n,{get:()=>e[n],enumerable:!(o=X(e,n))||o.enumerable});return t};var z=t=>Y(g({},"__esModule",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=z(pe);var N=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends N{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(n=>n instanceof t?(n.#n&&r.add(n),n.valueOrThrow()):n);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error("Timeout cleared"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#n;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#n=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#n),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#s;valueOrThrow(){return this.#s||(this.#s=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#s}};var L=new Map,F=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var b={};l(b,{ariaQuerySelector:()=>G,ariaQuerySelectorAll:()=>x});var G=(t,e)=>globalThis.__ariaQuerySelector(t,e),x=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var E={};l(E,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{customQuerySelectors:()=>P});var v=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(n,i)=>{for(let s of o(n,i))return s;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(n,i)=>{let s=o(n,i);return s?[s]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error("At least one query method must be defined.");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new v;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&!r&&s.matches(e)&&(r=s)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&s.matches(e)&&r.push(s)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var y=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}},w=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let n=await this.#e();if(!n){window.requestAnimationFrame(o);return}e.resolve(n),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,"Polling never started."),this.#r.finished()||this.#r.reject(new Error("Polling stopped"))}result(){return u(this.#r,"Polling never started."),this.#r.valueOrThrow()}},S=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,"Polling never started."),this.#t.finished()||this.#t.reject(new Error("Polling stopped")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,"Polling never started."),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set(["checkbox","image","radio"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),ne=new Set(["SCRIPT","STYLE"]),f=t=>!ne.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,W=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},j=new WeakSet,se=new MutationObserver(t=>{for(let e of t)W(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:"",immediate:[]},!f(t)))return e;let r="";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener("input",o=>{W(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??"",r+=o.nodeValue??"";continue}r&&e.immediate.push(r),r="",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),j.has(t)||(se.observe(t,{childList:!0,characterData:!0,subtree:!0}),j.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let n;o.shadowRoot?n=m(o.shadowRoot,e):n=m(o,e);for(let i of n)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>T,pierceAll:()=>O});var ie=["hidden","collapse"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),n=o&&!ie.includes(o.visibility)&&!ae(r);return e===n?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>"shadowRoot"in t&&t.shadowRoot instanceof ShadowRoot;function*T(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=T(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var Q={};l(Q,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let n=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],s;for(;(s=n.iterateNext())&&(i.push(s),!(r&&i.length===r)););for(let h=0;h<i.length;h++)s=i[h],yield s,delete i[h]};var ue=/[-\\w\\P{ASCII}*]/u,H=(r=>(r.Descendent=">>>",r.Child=">>>>",r))(H||{}),V=t=>"querySelectorAll"in t,M=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){if(typeof this.#o=="string")switch(this.#o.trimStart()){case":scope":this.#t();break}for(;this.#o!==void 0;this.#t()){let e=this.#o;typeof e=="string"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let n of r.parentElement.children)if(++o,n===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case"text":yield*m(r,e.value);break;case"xpath":yield*q(r,e.value);break;case"aria":yield*x(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case">>>>":{this.elements=a.flatMap(this.elements,T),this.#t();break}case">>>":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},D=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let n=0;for(let s=e.previousSibling;s;s=s.previousSibling)++n;let i=this.calculate(e.parentNode,[n]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[n=-1,...i]=e;return r===n?U(o,i):r<n?-1:1},de=async function*(t){let e=new Set;for await(let o of t)e.add(o);let r=new D;yield*[...e.values()].map(o=>[o,r.calculate(o)]).sort(([,o],[,n])=>U(o,n)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let n=0;return o.some(i=>(typeof i=="string"?++n:n=0,n>1))}))throw new Error("Multiple deep combinators found in sequence.");return de(a.flatMap(r,o=>{let n=new M(t,o);return n.run(),n.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...b,...A,...R,..._,...C,...k,...Q,...E,Deferred:c,createFunction:F,createTextContent:d,IntervalPoller:S,isSuitableNodeForTextMatching:f,MutationPoller:y,RAFPoller:w}),he=me;\n';
10312
10385
 
10313
10386
  // node_modules/puppeteer-core/lib/esm/puppeteer/common/ScriptInjector.js
10314
10387
  var ScriptInjector = class {
@@ -11082,11 +11155,11 @@
11082
11155
  /**
11083
11156
  * @internal
11084
11157
  */
11085
- locator(selectorOrFunc) {
11086
- if (typeof selectorOrFunc === "string") {
11087
- return NodeLocator.create(this, selectorOrFunc);
11158
+ locator(input) {
11159
+ if (typeof input === "string") {
11160
+ return NodeLocator.create(this, input);
11088
11161
  } else {
11089
- return FunctionLocator.create(this, selectorOrFunc);
11162
+ return FunctionLocator.create(this, input);
11090
11163
  }
11091
11164
  }
11092
11165
  /**
@@ -12001,6 +12074,7 @@
12001
12074
  let _screenshot_decorators;
12002
12075
  let _isIntersectingViewport_decorators;
12003
12076
  let _scrollIntoView_decorators;
12077
+ let _asLocator_decorators;
12004
12078
  return class ElementHandle2 extends _classSuper {
12005
12079
  static {
12006
12080
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
@@ -12035,6 +12109,7 @@
12035
12109
  _screenshot_decorators = [throwIfDisposed(), bindIsolatedHandle];
12036
12110
  _isIntersectingViewport_decorators = [throwIfDisposed(), bindIsolatedHandle];
12037
12111
  _scrollIntoView_decorators = [throwIfDisposed(), bindIsolatedHandle];
12112
+ _asLocator_decorators = [throwIfDisposed()];
12038
12113
  __esDecorate5(this, null, _getProperty_decorators, { kind: "method", name: "getProperty", static: false, private: false, access: { has: (obj) => "getProperty" in obj, get: (obj) => obj.getProperty }, metadata: _metadata }, null, _instanceExtraInitializers);
12039
12114
  __esDecorate5(this, null, _getProperties_decorators, { kind: "method", name: "getProperties", static: false, private: false, access: { has: (obj) => "getProperties" in obj, get: (obj) => obj.getProperties }, metadata: _metadata }, null, _instanceExtraInitializers);
12040
12115
  __esDecorate5(this, null, _jsonValue_decorators, { kind: "method", name: "jsonValue", static: false, private: false, access: { has: (obj) => "jsonValue" in obj, get: (obj) => obj.jsonValue }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -12068,6 +12143,7 @@
12068
12143
  __esDecorate5(this, null, _screenshot_decorators, { kind: "method", name: "screenshot", static: false, private: false, access: { has: (obj) => "screenshot" in obj, get: (obj) => obj.screenshot }, metadata: _metadata }, null, _instanceExtraInitializers);
12069
12144
  __esDecorate5(this, null, _isIntersectingViewport_decorators, { kind: "method", name: "isIntersectingViewport", static: false, private: false, access: { has: (obj) => "isIntersectingViewport" in obj, get: (obj) => obj.isIntersectingViewport }, metadata: _metadata }, null, _instanceExtraInitializers);
12070
12145
  __esDecorate5(this, null, _scrollIntoView_decorators, { kind: "method", name: "scrollIntoView", static: false, private: false, access: { has: (obj) => "scrollIntoView" in obj, get: (obj) => obj.scrollIntoView }, metadata: _metadata }, null, _instanceExtraInitializers);
12146
+ __esDecorate5(this, null, _asLocator_decorators, { kind: "method", name: "asLocator", static: false, private: false, access: { has: (obj) => "asLocator" in obj, get: (obj) => obj.asLocator }, metadata: _metadata }, null, _instanceExtraInitializers);
12071
12147
  if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
12072
12148
  }
12073
12149
  /**
@@ -13102,6 +13178,14 @@
13102
13178
  });
13103
13179
  });
13104
13180
  }
13181
+ /**
13182
+ * Creates a locator based on an ElementHandle. This would not allow
13183
+ * refreshing the element handle if it is stale but it allows re-using other
13184
+ * locator pre-conditions.
13185
+ */
13186
+ asLocator() {
13187
+ return NodeLocator.createFromHandle(this.frame, this);
13188
+ }
13105
13189
  /**
13106
13190
  * Returns true if an element is an SVGElement (included svg, path, rect
13107
13191
  * etc.).
@@ -14131,9 +14215,6 @@ ${sourceUrlComment}
14131
14215
  }
14132
14216
  const interestingNodes = /* @__PURE__ */ new Set();
14133
14217
  this.collectInterestingNodes(interestingNodes, defaultRoot, false);
14134
- if (!interestingNodes.has(needle)) {
14135
- return null;
14136
- }
14137
14218
  return this.serializeTree(needle, interestingNodes)[0] ?? null;
14138
14219
  }
14139
14220
  serializeTree(node, interestingNodes) {
@@ -14180,7 +14261,6 @@ ${sourceUrlComment}
14180
14261
  #name;
14181
14262
  #role;
14182
14263
  #ignored;
14183
- #cachedHasFocusableChild;
14184
14264
  #realm;
14185
14265
  constructor(realm, payload) {
14186
14266
  this.payload = payload;
@@ -14214,18 +14294,6 @@ ${sourceUrlComment}
14214
14294
  const role = this.#role;
14215
14295
  return role === "LineBreak" || role === "text" || role === "InlineTextBox" || role === "StaticText";
14216
14296
  }
14217
- #hasFocusableChild() {
14218
- if (this.#cachedHasFocusableChild === void 0) {
14219
- this.#cachedHasFocusableChild = false;
14220
- for (const child of this.children) {
14221
- if (child.#focusable || child.#hasFocusableChild()) {
14222
- this.#cachedHasFocusableChild = true;
14223
- break;
14224
- }
14225
- }
14226
- }
14227
- return this.#cachedHasFocusableChild;
14228
- }
14229
14297
  find(predicate) {
14230
14298
  if (predicate(this)) {
14231
14299
  return this;
@@ -14259,12 +14327,6 @@ ${sourceUrlComment}
14259
14327
  default:
14260
14328
  break;
14261
14329
  }
14262
- if (this.#hasFocusableChild()) {
14263
- return false;
14264
- }
14265
- if (this.#focusable && this.#name) {
14266
- return true;
14267
- }
14268
14330
  if (this.#role === "heading" && this.#name) {
14269
14331
  return true;
14270
14332
  }
@@ -14331,10 +14393,21 @@ ${sourceUrlComment}
14331
14393
  const node = {
14332
14394
  role: this.#role,
14333
14395
  elementHandle: async () => {
14334
- if (!this.payload.backendDOMNodeId) {
14335
- return null;
14396
+ const env_2 = { stack: [], error: void 0, hasError: false };
14397
+ try {
14398
+ if (!this.payload.backendDOMNodeId) {
14399
+ return null;
14400
+ }
14401
+ const handle = __addDisposableResource11(env_2, await this.#realm.adoptBackendNode(this.payload.backendDOMNodeId), false);
14402
+ return await handle.evaluateHandle((node2) => {
14403
+ return node2.nodeType === Node.TEXT_NODE ? node2.parentElement : node2;
14404
+ });
14405
+ } catch (e_2) {
14406
+ env_2.error = e_2;
14407
+ env_2.hasError = true;
14408
+ } finally {
14409
+ __disposeResources11(env_2);
14336
14410
  }
14337
- return await this.#realm.adoptBackendNode(this.payload.backendDOMNodeId);
14338
14411
  }
14339
14412
  };
14340
14413
  const userStringProperties = [
@@ -14821,6 +14894,7 @@ ${sourceUrlComment}
14821
14894
  #sameDocumentNavigationDeferred = Deferred.create();
14822
14895
  #lifecycleDeferred = Deferred.create();
14823
14896
  #newDocumentNavigationDeferred = Deferred.create();
14897
+ #error = new Error("LifecycleWatcher terminated");
14824
14898
  #hasSameDocumentNavigation;
14825
14899
  #swapped;
14826
14900
  #navigationResponseReceived;
@@ -14837,6 +14911,9 @@ ${sourceUrlComment}
14837
14911
  return protocolEvent;
14838
14912
  });
14839
14913
  signal?.addEventListener("abort", () => {
14914
+ if (signal.reason instanceof Error) {
14915
+ signal.reason.cause = this.#error;
14916
+ }
14840
14917
  this.#terminationDeferred.reject(signal.reason);
14841
14918
  });
14842
14919
  this.#frame = frame;
@@ -14884,7 +14961,8 @@ ${sourceUrlComment}
14884
14961
  }
14885
14962
  #onFrameDetached(frame) {
14886
14963
  if (this.#frame === frame) {
14887
- this.#terminationDeferred.resolve(new Error("Navigating frame was detached"));
14964
+ this.#error.message = "Navigating frame was detached";
14965
+ this.#terminationDeferred.resolve(this.#error);
14888
14966
  return;
14889
14967
  }
14890
14968
  this.#checkLifecycleComplete();
@@ -14946,7 +15024,8 @@ ${sourceUrlComment}
14946
15024
  }
14947
15025
  dispose() {
14948
15026
  this.#subscriptions.dispose();
14949
- this.#terminationDeferred.resolve(new Error("LifecycleWatcher disposed"));
15027
+ this.#error.cause = new Error("LifecycleWatcher disposed");
15028
+ this.#terminationDeferred.resolve(this.#error);
14950
15029
  }
14951
15030
  };
14952
15031
 
@@ -16275,11 +16354,12 @@ ${sourceUrlComment}
16275
16354
  #credentials = null;
16276
16355
  #attemptedAuthentications = /* @__PURE__ */ new Set();
16277
16356
  #userRequestInterceptionEnabled = false;
16278
- #protocolRequestInterceptionEnabled = false;
16357
+ #protocolRequestInterceptionEnabled;
16279
16358
  #userCacheDisabled;
16280
16359
  #emulatedNetworkConditions;
16281
16360
  #userAgent;
16282
16361
  #userAgentMetadata;
16362
+ #platform;
16283
16363
  #handlers = [
16284
16364
  ["Fetch.requestPaused", this.#onRequestPaused],
16285
16365
  ["Fetch.authRequired", this.#onAuthRequired],
@@ -16387,7 +16467,7 @@ ${sourceUrlComment}
16387
16467
  async emulateNetworkConditions(networkConditions) {
16388
16468
  if (!this.#emulatedNetworkConditions) {
16389
16469
  this.#emulatedNetworkConditions = {
16390
- offline: false,
16470
+ offline: networkConditions?.offline ?? false,
16391
16471
  upload: -1,
16392
16472
  download: -1,
16393
16473
  latency: 0
@@ -16396,6 +16476,7 @@ ${sourceUrlComment}
16396
16476
  this.#emulatedNetworkConditions.upload = networkConditions ? networkConditions.upload : -1;
16397
16477
  this.#emulatedNetworkConditions.download = networkConditions ? networkConditions.download : -1;
16398
16478
  this.#emulatedNetworkConditions.latency = networkConditions ? networkConditions.latency : 0;
16479
+ this.#emulatedNetworkConditions.offline = networkConditions?.offline ?? false;
16399
16480
  await this.#applyToAllClients(this.#applyNetworkConditions.bind(this));
16400
16481
  }
16401
16482
  async #applyToAllClients(fn) {
@@ -16421,9 +16502,10 @@ ${sourceUrlComment}
16421
16502
  throw error;
16422
16503
  }
16423
16504
  }
16424
- async setUserAgent(userAgent, userAgentMetadata) {
16505
+ async setUserAgent(userAgent, userAgentMetadata, platform) {
16425
16506
  this.#userAgent = userAgent;
16426
16507
  this.#userAgentMetadata = userAgentMetadata;
16508
+ this.#platform = platform;
16427
16509
  await this.#applyToAllClients(this.#applyUserAgent.bind(this));
16428
16510
  }
16429
16511
  async #applyUserAgent(client) {
@@ -16433,7 +16515,8 @@ ${sourceUrlComment}
16433
16515
  try {
16434
16516
  await client.send("Network.setUserAgentOverride", {
16435
16517
  userAgent: this.#userAgent,
16436
- userAgentMetadata: this.#userAgentMetadata
16518
+ userAgentMetadata: this.#userAgentMetadata,
16519
+ platform: this.#platform
16437
16520
  });
16438
16521
  } catch (error) {
16439
16522
  if (this.#canIgnoreError(error)) {
@@ -16456,6 +16539,9 @@ ${sourceUrlComment}
16456
16539
  await this.#applyToAllClients(this.#applyProtocolRequestInterception.bind(this));
16457
16540
  }
16458
16541
  async #applyProtocolRequestInterception(client) {
16542
+ if (this.#protocolRequestInterceptionEnabled === void 0) {
16543
+ return;
16544
+ }
16459
16545
  if (this.#userCacheDisabled === void 0) {
16460
16546
  this.#userCacheDisabled = false;
16461
16547
  }
@@ -18596,6 +18682,14 @@ ${sourceUrlComment}
18596
18682
  }
18597
18683
  }
18598
18684
  }
18685
+ async resize(params) {
18686
+ const { windowId } = await this.#primaryTargetClient.send("Browser.getWindowForTarget");
18687
+ await this.#primaryTargetClient.send("Browser.setContentsSize", {
18688
+ windowId,
18689
+ width: params.contentWidth,
18690
+ height: params.contentHeight
18691
+ });
18692
+ }
18599
18693
  async #onFileChooser(event) {
18600
18694
  const env_1 = { stack: [], error: void 0, hasError: false };
18601
18695
  try {
@@ -18852,8 +18946,13 @@ ${sourceUrlComment}
18852
18946
  async setExtraHTTPHeaders(headers) {
18853
18947
  return await this.#frameManager.networkManager.setExtraHTTPHeaders(headers);
18854
18948
  }
18855
- async setUserAgent(userAgent, userAgentMetadata) {
18856
- return await this.#frameManager.networkManager.setUserAgent(userAgent, userAgentMetadata);
18949
+ async setUserAgent(userAgentOrOptions, userAgentMetadata) {
18950
+ if (typeof userAgentOrOptions === "string") {
18951
+ return await this.#frameManager.networkManager.setUserAgent(userAgentOrOptions, userAgentMetadata);
18952
+ } else {
18953
+ const userAgent = userAgentOrOptions.userAgent ?? await this.browser().userAgent();
18954
+ return await this.#frameManager.networkManager.setUserAgent(userAgent, userAgentOrOptions.userAgentMetadata, userAgentOrOptions.platform);
18955
+ }
18857
18956
  }
18858
18957
  async metrics() {
18859
18958
  const response = await this.#primaryTargetClient.send("Performance.getMetrics");
@@ -18961,7 +19060,7 @@ ${sourceUrlComment}
18961
19060
  const history = await this.#primaryTargetClient.send("Page.getNavigationHistory");
18962
19061
  const entry = history.entries[history.currentIndex + delta];
18963
19062
  if (!entry) {
18964
- return null;
19063
+ throw new Error("History entry to navigate to not found.");
18965
19064
  }
18966
19065
  const result = await Promise.all([
18967
19066
  this.waitForNavigation(options),
@@ -19104,7 +19203,7 @@ ${sourceUrlComment}
19104
19203
  try {
19105
19204
  const _guard = __addDisposableResource12(env_3, await this.browserContext().waitForScreenshotOperations(), false);
19106
19205
  const connection = this.#primaryTargetClient.connection();
19107
- assert(connection, "Protocol error: Connection closed. Most likely the page has been closed.");
19206
+ assert(connection, "Connection closed. Most likely the page has been closed.");
19108
19207
  const runBeforeUnload = !!options.runBeforeUnload;
19109
19208
  if (runBeforeUnload) {
19110
19209
  await this.#primaryTargetClient.send("Page.close");
@@ -20169,7 +20268,7 @@ puppeteer-core/lib/esm/puppeteer/common/Debug.js:
20169
20268
  puppeteer-core/lib/esm/puppeteer/common/PDFOptions.js:
20170
20269
  puppeteer-core/lib/esm/puppeteer/common/ConsoleMessage.js:
20171
20270
  puppeteer-core/lib/esm/puppeteer/common/FileChooser.js:
20172
- puppeteer-core/lib/esm/puppeteer/cdp/AriaQueryHandler.js:
20271
+ puppeteer-core/lib/esm/puppeteer/common/AriaQueryHandler.js:
20173
20272
  puppeteer-core/lib/esm/puppeteer/common/SecurityDetails.js:
20174
20273
  puppeteer-core/lib/esm/puppeteer/cdp/BrowserConnector.js:
20175
20274
  (**