@remotion/renderer 4.0.0-imgloading.2 → 4.0.0-lambda.1

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 (357) hide show
  1. package/dist/assets/calculate-asset-positions.d.ts.map +1 -0
  2. package/dist/assets/calculate-asset-positions.js.map +1 -0
  3. package/dist/assets/calculate-atempo.d.ts.map +1 -0
  4. package/dist/assets/calculate-atempo.js.map +1 -0
  5. package/dist/assets/cleanup-assets.d.ts +2 -0
  6. package/dist/assets/cleanup-assets.js +2 -0
  7. package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -0
  8. package/dist/assets/convert-assets-to-file-urls.js.map +1 -0
  9. package/dist/assets/download-and-map-assets-to-file.d.ts +6 -0
  10. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -0
  11. package/dist/assets/download-and-map-assets-to-file.js +46 -19
  12. package/dist/assets/download-and-map-assets-to-file.js.map +1 -0
  13. package/dist/assets/download-file.d.ts.map +1 -0
  14. package/dist/assets/download-file.js.map +1 -0
  15. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  16. package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -0
  17. package/dist/assets/ffmpeg-volume-expression.js +15 -12
  18. package/dist/assets/ffmpeg-volume-expression.js.map +1 -0
  19. package/dist/assets/flatten-volume-array.d.ts.map +1 -0
  20. package/dist/assets/flatten-volume-array.js.map +1 -0
  21. package/dist/assets/get-audio-channels.d.ts +5 -2
  22. package/dist/assets/get-audio-channels.d.ts.map +1 -0
  23. package/dist/assets/get-audio-channels.js +15 -4
  24. package/dist/assets/get-audio-channels.js.map +1 -0
  25. package/dist/assets/read-file.d.ts.map +1 -0
  26. package/dist/assets/read-file.js.map +1 -0
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -0
  28. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -0
  29. package/dist/assets/sanitize-filename.d.ts.map +1 -0
  30. package/dist/assets/sanitize-filename.js.map +1 -0
  31. package/dist/assets/sanitize-filepath.d.ts.map +1 -0
  32. package/dist/assets/sanitize-filepath.js.map +1 -0
  33. package/dist/assets/truncate-utf8-bytes.d.ts.map +1 -0
  34. package/dist/assets/truncate-utf8-bytes.js.map +1 -0
  35. package/dist/assets/types.d.ts.map +1 -0
  36. package/dist/assets/types.js.map +1 -0
  37. package/dist/browser/Accessibility.d.ts +175 -0
  38. package/dist/browser/Accessibility.js +423 -0
  39. package/dist/browser/AriaQueryHandler.d.ts +20 -0
  40. package/dist/browser/AriaQueryHandler.js +108 -0
  41. package/dist/browser/Browser.d.ts +209 -0
  42. package/dist/browser/Browser.js +402 -0
  43. package/dist/browser/BrowserConnector.d.ts +26 -0
  44. package/dist/browser/BrowserConnector.js +49 -0
  45. package/dist/browser/BrowserFetcher.d.ts +89 -0
  46. package/dist/browser/BrowserFetcher.js +512 -0
  47. package/dist/browser/BrowserRunner.d.ts +39 -0
  48. package/dist/browser/BrowserRunner.js +308 -0
  49. package/dist/browser/Connection.d.ts +49 -0
  50. package/dist/browser/Connection.js +262 -0
  51. package/dist/browser/ConnectionTransport.d.ts +21 -0
  52. package/dist/browser/ConnectionTransport.js +17 -0
  53. package/dist/browser/ConsoleMessage.d.ts +55 -0
  54. package/dist/browser/ConsoleMessage.js +75 -0
  55. package/dist/browser/Coverage.d.ts +180 -0
  56. package/dist/browser/Coverage.js +371 -0
  57. package/dist/browser/DOMWorld.d.ts +50 -0
  58. package/dist/browser/DOMWorld.js +280 -0
  59. package/dist/browser/Debug.d.ts +19 -0
  60. package/dist/browser/Debug.js +42 -0
  61. package/dist/browser/DeviceDescriptors.d.ts +40 -0
  62. package/dist/browser/DeviceDescriptors.js +1407 -0
  63. package/dist/browser/EmulationManager.d.ts +7 -0
  64. package/dist/browser/EmulationManager.js +40 -0
  65. package/dist/browser/Errors.d.ts +25 -0
  66. package/dist/browser/Errors.js +35 -0
  67. package/dist/browser/EvalTypes.d.ts +27 -0
  68. package/dist/browser/EvalTypes.js +17 -0
  69. package/dist/browser/EventEmitter.d.ts +70 -0
  70. package/dist/browser/EventEmitter.js +102 -0
  71. package/dist/browser/ExecutionContext.d.ts +35 -0
  72. package/dist/browser/ExecutionContext.js +190 -0
  73. package/dist/browser/FileChooser.d.ts +56 -0
  74. package/dist/browser/FileChooser.js +86 -0
  75. package/dist/browser/FrameManager.d.ts +96 -0
  76. package/dist/browser/FrameManager.js +512 -0
  77. package/dist/browser/HTTPRequest.d.ts +42 -0
  78. package/dist/browser/HTTPRequest.js +82 -0
  79. package/dist/browser/HTTPResponse.d.ts +100 -0
  80. package/dist/browser/HTTPResponse.js +196 -0
  81. package/dist/browser/Input.d.ts +355 -0
  82. package/dist/browser/Input.js +592 -0
  83. package/dist/browser/JSHandle.d.ts +36 -0
  84. package/dist/browser/JSHandle.js +93 -0
  85. package/dist/browser/LaunchOptions.d.ts +117 -0
  86. package/dist/browser/LaunchOptions.js +17 -0
  87. package/dist/browser/Launcher.d.ts +9 -0
  88. package/dist/browser/Launcher.js +602 -0
  89. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  90. package/dist/browser/LifecycleWatcher.js +193 -0
  91. package/dist/browser/NetworkConditions.d.ts +26 -0
  92. package/dist/browser/NetworkConditions.js +33 -0
  93. package/dist/browser/NetworkEventManager.d.ts +35 -0
  94. package/dist/browser/NetworkEventManager.js +128 -0
  95. package/dist/browser/NetworkManager.d.ts +36 -0
  96. package/dist/browser/NetworkManager.js +284 -0
  97. package/dist/browser/NodeWebSocketTransport.d.ts +11 -0
  98. package/dist/browser/NodeWebSocketTransport.js +90 -0
  99. package/dist/browser/PDFOptions.d.ts +165 -0
  100. package/dist/browser/PDFOptions.js +34 -0
  101. package/dist/browser/PipeTransport.d.ts +10 -0
  102. package/dist/browser/PipeTransport.js +86 -0
  103. package/dist/browser/Product.d.ts +16 -0
  104. package/dist/browser/Product.js +17 -0
  105. package/dist/browser/Puppeteer.d.ts +35 -0
  106. package/dist/browser/Puppeteer.js +17 -0
  107. package/dist/browser/PuppeteerNode.d.ts +92 -0
  108. package/dist/browser/PuppeteerNode.js +143 -0
  109. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  110. package/dist/browser/PuppeteerViewport.js +2 -0
  111. package/dist/browser/QueryHandler.d.ts +64 -0
  112. package/dist/browser/QueryHandler.js +183 -0
  113. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  114. package/dist/browser/ScreenshotOptions.js +2 -0
  115. package/dist/browser/SecurityDetails.d.ts +55 -0
  116. package/dist/browser/SecurityDetails.js +95 -0
  117. package/dist/browser/Target.d.ts +61 -0
  118. package/dist/browser/Target.js +146 -0
  119. package/dist/browser/TaskQueue.d.ts +20 -0
  120. package/dist/browser/TaskQueue.js +47 -0
  121. package/dist/browser/TimeoutSettings.d.ts +23 -0
  122. package/dist/browser/TimeoutSettings.js +62 -0
  123. package/dist/browser/Tracing.d.ts +45 -0
  124. package/dist/browser/Tracing.js +136 -0
  125. package/dist/browser/USKeyboardLayout.d.ts +39 -0
  126. package/dist/browser/USKeyboardLayout.js +406 -0
  127. package/dist/browser/WebWorker.d.ts +96 -0
  128. package/dist/browser/WebWorker.js +122 -0
  129. package/dist/browser/assert.d.ts +21 -0
  130. package/dist/browser/assert.js +29 -0
  131. package/dist/browser/compat.d.ts +2 -0
  132. package/dist/browser/compat.js +17 -0
  133. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  134. package/dist/browser/create-browser-fetcher.js +140 -0
  135. package/dist/browser/dialog.d.ts +70 -0
  136. package/dist/browser/dialog.js +114 -0
  137. package/dist/browser/environment.d.ts +16 -0
  138. package/dist/browser/environment.js +19 -0
  139. package/dist/browser/fetch.d.ts +16 -0
  140. package/dist/browser/fetch.js +46 -0
  141. package/dist/browser/find-up.d.ts +4 -0
  142. package/dist/browser/find-up.js +85 -0
  143. package/dist/browser/get-download-destination.d.ts +1 -0
  144. package/dist/browser/get-download-destination.js +38 -0
  145. package/dist/browser/mitt/index.d.ts +22 -0
  146. package/dist/browser/mitt/index.js +49 -0
  147. package/dist/browser/node.d.ts +2 -0
  148. package/dist/browser/node.js +9 -0
  149. package/dist/browser/page.d.ts +78 -0
  150. package/dist/browser/page.js +277 -0
  151. package/dist/browser/pkg-dir.d.ts +3 -0
  152. package/dist/browser/pkg-dir.js +13 -0
  153. package/dist/browser/revisions.d.ts +21 -0
  154. package/dist/browser/revisions.js +22 -0
  155. package/dist/browser/util.d.ts +46 -0
  156. package/dist/browser/util.js +161 -0
  157. package/dist/browser-log.d.ts.map +1 -0
  158. package/dist/browser-log.js.map +1 -0
  159. package/dist/calculate-ffmpeg-filters.d.ts.map +1 -0
  160. package/dist/calculate-ffmpeg-filters.js +2 -2
  161. package/dist/calculate-ffmpeg-filters.js.map +1 -0
  162. package/dist/can-use-parallel-encoding.d.ts.map +1 -0
  163. package/dist/can-use-parallel-encoding.js.map +1 -0
  164. package/dist/chunk.d.ts.map +1 -0
  165. package/dist/chunk.js.map +1 -0
  166. package/dist/combine-videos.d.ts +2 -1
  167. package/dist/combine-videos.d.ts.map +1 -0
  168. package/dist/combine-videos.js +8 -1
  169. package/dist/combine-videos.js.map +1 -0
  170. package/dist/convert-to-pcm.d.ts.map +1 -0
  171. package/dist/convert-to-pcm.js.map +1 -0
  172. package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -0
  173. package/dist/create-ffmpeg-complex-filter.js.map +1 -0
  174. package/dist/create-ffmpeg-merge-filter.d.ts.map +1 -0
  175. package/dist/create-ffmpeg-merge-filter.js.map +1 -0
  176. package/dist/create-silent-audio.d.ts.map +1 -0
  177. package/dist/create-silent-audio.js.map +1 -0
  178. package/dist/cycle-browser-tabs.d.ts +2 -1
  179. package/dist/cycle-browser-tabs.d.ts.map +1 -0
  180. package/dist/cycle-browser-tabs.js +9 -2
  181. package/dist/cycle-browser-tabs.js.map +1 -0
  182. package/dist/delay-render-embedded-stack.d.ts.map +1 -0
  183. package/dist/delay-render-embedded-stack.js.map +1 -0
  184. package/dist/delete-directory.d.ts.map +1 -0
  185. package/dist/delete-directory.js.map +1 -0
  186. package/dist/ensure-frames-in-order.d.ts.map +1 -0
  187. package/dist/ensure-frames-in-order.js.map +1 -0
  188. package/dist/ensure-output-directory.d.ts.map +1 -0
  189. package/dist/ensure-output-directory.js.map +1 -0
  190. package/dist/ensure-presentation-timestamp.d.ts +1 -0
  191. package/dist/ensure-presentation-timestamp.js +57 -0
  192. package/dist/error-handling/handle-javascript-exception.d.ts.map +1 -0
  193. package/dist/error-handling/handle-javascript-exception.js.map +1 -0
  194. package/dist/error-handling/symbolicate-error.d.ts.map +1 -0
  195. package/dist/error-handling/symbolicate-error.js.map +1 -0
  196. package/dist/error-handling/symbolicateable-error.d.ts.map +1 -0
  197. package/dist/error-handling/symbolicateable-error.js.map +1 -0
  198. package/dist/extract-frame-from-video.d.ts +11 -0
  199. package/dist/extract-frame-from-video.js +197 -0
  200. package/dist/ffmpeg-filter-file.d.ts.map +1 -0
  201. package/dist/ffmpeg-filter-file.js.map +1 -0
  202. package/dist/ffmpeg-flags.d.ts.map +1 -0
  203. package/dist/ffmpeg-flags.js.map +1 -0
  204. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  205. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  206. package/dist/get-audio-codec-name.d.ts.map +1 -0
  207. package/dist/get-audio-codec-name.js.map +1 -0
  208. package/dist/get-browser-instance.d.ts.map +1 -0
  209. package/dist/get-browser-instance.js.map +1 -0
  210. package/dist/get-codec-name.d.ts.map +1 -0
  211. package/dist/get-codec-name.js.map +1 -0
  212. package/dist/get-compositions.d.ts +5 -2
  213. package/dist/get-compositions.d.ts.map +1 -0
  214. package/dist/get-compositions.js +23 -5
  215. package/dist/get-compositions.js.map +1 -0
  216. package/dist/get-concurrency.d.ts.map +1 -0
  217. package/dist/get-concurrency.js.map +1 -0
  218. package/dist/get-duration-from-frame-range.d.ts.map +1 -0
  219. package/dist/get-duration-from-frame-range.js.map +1 -0
  220. package/dist/get-duration-of-asset.d.ts +7 -0
  221. package/dist/get-duration-of-asset.js +36 -0
  222. package/dist/get-extension-from-codec.d.ts.map +1 -0
  223. package/dist/get-extension-from-codec.js.map +1 -0
  224. package/dist/get-frame-to-render.d.ts.map +1 -0
  225. package/dist/get-frame-to-render.js.map +1 -0
  226. package/dist/get-local-browser-executable.d.ts.map +1 -0
  227. package/dist/get-local-browser-executable.js.map +1 -0
  228. package/dist/get-port.d.ts.map +1 -0
  229. package/dist/get-port.js +26 -24
  230. package/dist/get-port.js.map +1 -0
  231. package/dist/get-prores-profile-name.d.ts.map +1 -0
  232. package/dist/get-prores-profile-name.js.map +1 -0
  233. package/dist/image-format.d.ts.map +1 -0
  234. package/dist/image-format.js.map +1 -0
  235. package/dist/index.d.ts +34 -9
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +14 -5
  238. package/dist/index.js.map +1 -0
  239. package/dist/is-beyond-last-frame.d.ts +2 -0
  240. package/dist/is-beyond-last-frame.js +12 -0
  241. package/dist/is-serve-url.d.ts.map +1 -0
  242. package/dist/is-serve-url.js.map +1 -0
  243. package/dist/last-frame-from-video-cache.d.ts +10 -0
  244. package/dist/last-frame-from-video-cache.js +50 -0
  245. package/dist/legacy-webpack-config.d.ts.map +1 -0
  246. package/dist/legacy-webpack-config.js.map +1 -0
  247. package/dist/make-assets-download-dir.d.ts.map +1 -0
  248. package/dist/make-assets-download-dir.js +6 -1
  249. package/dist/make-assets-download-dir.js.map +1 -0
  250. package/dist/make-cancel-signal.d.ts +7 -0
  251. package/dist/make-cancel-signal.js +25 -0
  252. package/dist/merge-audio-track.d.ts.map +1 -0
  253. package/dist/merge-audio-track.js +2 -2
  254. package/dist/merge-audio-track.js.map +1 -0
  255. package/dist/normalize-serve-url.d.ts.map +1 -0
  256. package/dist/normalize-serve-url.js.map +1 -0
  257. package/dist/offthread-video-server.d.ts +14 -0
  258. package/dist/offthread-video-server.js +67 -0
  259. package/dist/open-browser.d.ts +5 -5
  260. package/dist/open-browser.d.ts.map +1 -0
  261. package/dist/open-browser.js +3 -3
  262. package/dist/open-browser.js.map +1 -0
  263. package/dist/p-limit.d.ts.map +1 -0
  264. package/dist/p-limit.js.map +1 -0
  265. package/dist/parse-browser-error-stack.d.ts.map +1 -0
  266. package/dist/parse-browser-error-stack.js.map +1 -0
  267. package/dist/parse-ffmpeg-progress.d.ts.map +1 -0
  268. package/dist/parse-ffmpeg-progress.js.map +1 -0
  269. package/dist/pool.d.ts.map +1 -0
  270. package/dist/pool.js.map +1 -0
  271. package/dist/prepare-server.d.ts +13 -2
  272. package/dist/prepare-server.d.ts.map +1 -0
  273. package/dist/prepare-server.js +35 -5
  274. package/dist/prepare-server.js.map +1 -0
  275. package/dist/preprocess-audio-track.d.ts +1 -0
  276. package/dist/preprocess-audio-track.d.ts.map +1 -0
  277. package/dist/preprocess-audio-track.js +2 -2
  278. package/dist/preprocess-audio-track.js.map +1 -0
  279. package/dist/prespawn-ffmpeg.d.ts +2 -0
  280. package/dist/prespawn-ffmpeg.d.ts.map +1 -0
  281. package/dist/prespawn-ffmpeg.js +10 -9
  282. package/dist/prespawn-ffmpeg.js.map +1 -0
  283. package/dist/provide-screenshot.d.ts +0 -1
  284. package/dist/provide-screenshot.d.ts.map +1 -0
  285. package/dist/provide-screenshot.js +1 -1
  286. package/dist/provide-screenshot.js.map +1 -0
  287. package/dist/puppeteer-evaluate.d.ts.map +1 -0
  288. package/dist/puppeteer-evaluate.js.map +1 -0
  289. package/dist/puppeteer-screenshot.d.ts +0 -1
  290. package/dist/puppeteer-screenshot.d.ts.map +1 -0
  291. package/dist/puppeteer-screenshot.js +5 -1
  292. package/dist/puppeteer-screenshot.js.map +1 -0
  293. package/dist/render-frames.d.ts +6 -1
  294. package/dist/render-frames.d.ts.map +1 -0
  295. package/dist/render-frames.js +96 -37
  296. package/dist/render-frames.js.map +1 -0
  297. package/dist/render-media.d.ts +12 -2
  298. package/dist/render-media.d.ts.map +1 -0
  299. package/dist/render-media.js +127 -54
  300. package/dist/render-media.js.map +1 -0
  301. package/dist/render-still.d.ts +14 -4
  302. package/dist/render-still.d.ts.map +1 -0
  303. package/dist/render-still.js +58 -19
  304. package/dist/render-still.js.map +1 -0
  305. package/dist/resolve-asset-src.d.ts.map +1 -0
  306. package/dist/resolve-asset-src.js.map +1 -0
  307. package/dist/sample-rate.d.ts.map +1 -0
  308. package/dist/sample-rate.js.map +1 -0
  309. package/dist/screenshot-dom-element.d.ts +0 -1
  310. package/dist/screenshot-dom-element.d.ts.map +1 -0
  311. package/dist/screenshot-dom-element.js.map +1 -0
  312. package/dist/screenshot-task.d.ts +0 -1
  313. package/dist/screenshot-task.d.ts.map +1 -0
  314. package/dist/screenshot-task.js.map +1 -0
  315. package/dist/seek-to-frame.d.ts.map +1 -0
  316. package/dist/seek-to-frame.js.map +1 -0
  317. package/dist/serve-handler/glob-slash.d.ts +1 -0
  318. package/dist/serve-handler/glob-slash.js +12 -0
  319. package/dist/serve-handler/index.d.ts +4 -0
  320. package/dist/serve-handler/index.js +205 -0
  321. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  322. package/dist/serve-handler/is-path-inside.js +27 -0
  323. package/dist/serve-handler/range-parser.d.ts +13 -0
  324. package/dist/serve-handler/range-parser.js +57 -0
  325. package/dist/serve-static.d.ts +10 -3
  326. package/dist/serve-static.d.ts.map +1 -0
  327. package/dist/serve-static.js +22 -4
  328. package/dist/serve-static.js.map +1 -0
  329. package/dist/set-props-and-env.d.ts +3 -1
  330. package/dist/set-props-and-env.d.ts.map +1 -0
  331. package/dist/set-props-and-env.js +25 -3
  332. package/dist/set-props-and-env.js.map +1 -0
  333. package/dist/stitch-frames-to-video.d.ts +4 -1
  334. package/dist/stitch-frames-to-video.d.ts.map +1 -0
  335. package/dist/stitch-frames-to-video.js +36 -15
  336. package/dist/stitch-frames-to-video.js.map +1 -0
  337. package/dist/stringify-ffmpeg-filter.d.ts.map +1 -0
  338. package/dist/stringify-ffmpeg-filter.js +3 -0
  339. package/dist/stringify-ffmpeg-filter.js.map +1 -0
  340. package/dist/symbolicate-stacktrace.d.ts.map +1 -0
  341. package/dist/symbolicate-stacktrace.js.map +1 -0
  342. package/dist/tmp-dir.d.ts.map +1 -0
  343. package/dist/tmp-dir.js +5 -1
  344. package/dist/tmp-dir.js.map +1 -0
  345. package/dist/types.d.ts.map +1 -0
  346. package/dist/types.js.map +1 -0
  347. package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -0
  348. package/dist/validate-even-dimensions-with-codec.js.map +1 -0
  349. package/dist/validate-ffmpeg.d.ts.map +1 -0
  350. package/dist/validate-ffmpeg.js.map +1 -0
  351. package/dist/validate-fps-for-gif.d.ts +2 -0
  352. package/dist/validate-fps-for-gif.js +9 -0
  353. package/dist/validate-puppeteer-timeout.d.ts.map +1 -0
  354. package/dist/validate-puppeteer-timeout.js.map +1 -0
  355. package/dist/validate-scale.d.ts.map +1 -0
  356. package/dist/validate-scale.js.map +1 -0
  357. package/package.json +6 -7
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _PipeTransport_instances, _PipeTransport_pipeWrite, _PipeTransport_eventListeners, _PipeTransport_isClosed, _PipeTransport_pendingMessage, _PipeTransport_dispatch;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.PipeTransport = void 0;
16
+ /**
17
+ * Copyright 2018 Google Inc. All rights reserved.
18
+ *
19
+ * Licensed under the Apache License, Version 2.0 (the "License");
20
+ * you may not use this file except in compliance with the License.
21
+ * You may obtain a copy of the License at
22
+ *
23
+ * http://www.apache.org/licenses/LICENSE-2.0
24
+ *
25
+ * Unless required by applicable law or agreed to in writing, software
26
+ * distributed under the License is distributed on an "AS IS" BASIS,
27
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
28
+ * See the License for the specific language governing permissions and
29
+ * limitations under the License.
30
+ */
31
+ const assert_1 = require("./assert");
32
+ const util_1 = require("./util");
33
+ class PipeTransport {
34
+ constructor(pipeWrite, pipeRead) {
35
+ _PipeTransport_instances.add(this);
36
+ _PipeTransport_pipeWrite.set(this, void 0);
37
+ _PipeTransport_eventListeners.set(this, void 0);
38
+ _PipeTransport_isClosed.set(this, false);
39
+ _PipeTransport_pendingMessage.set(this, '');
40
+ __classPrivateFieldSet(this, _PipeTransport_pipeWrite, pipeWrite, "f");
41
+ __classPrivateFieldSet(this, _PipeTransport_eventListeners, [
42
+ (0, util_1.addEventListener)(pipeRead, 'data', (buffer) => {
43
+ return __classPrivateFieldGet(this, _PipeTransport_instances, "m", _PipeTransport_dispatch).call(this, buffer);
44
+ }),
45
+ (0, util_1.addEventListener)(pipeRead, 'close', () => {
46
+ if (this.onclose) {
47
+ this.onclose.call(null);
48
+ }
49
+ }),
50
+ (0, util_1.addEventListener)(pipeRead, 'error', util_1.debugError),
51
+ (0, util_1.addEventListener)(pipeWrite, 'error', util_1.debugError),
52
+ ], "f");
53
+ }
54
+ send(message) {
55
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _PipeTransport_isClosed, "f"), '`PipeTransport` is closed.');
56
+ __classPrivateFieldGet(this, _PipeTransport_pipeWrite, "f").write(message);
57
+ __classPrivateFieldGet(this, _PipeTransport_pipeWrite, "f").write('\0');
58
+ }
59
+ close() {
60
+ __classPrivateFieldSet(this, _PipeTransport_isClosed, true, "f");
61
+ (0, util_1.removeEventListeners)(__classPrivateFieldGet(this, _PipeTransport_eventListeners, "f"));
62
+ }
63
+ }
64
+ exports.PipeTransport = PipeTransport;
65
+ _PipeTransport_pipeWrite = new WeakMap(), _PipeTransport_eventListeners = new WeakMap(), _PipeTransport_isClosed = new WeakMap(), _PipeTransport_pendingMessage = new WeakMap(), _PipeTransport_instances = new WeakSet(), _PipeTransport_dispatch = function _PipeTransport_dispatch(buffer) {
66
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _PipeTransport_isClosed, "f"), '`PipeTransport` is closed.');
67
+ let end = buffer.indexOf('\0');
68
+ if (end === -1) {
69
+ __classPrivateFieldSet(this, _PipeTransport_pendingMessage, __classPrivateFieldGet(this, _PipeTransport_pendingMessage, "f") + buffer.toString(), "f");
70
+ return;
71
+ }
72
+ const message = __classPrivateFieldGet(this, _PipeTransport_pendingMessage, "f") + buffer.toString(undefined, 0, end);
73
+ if (this.onmessage) {
74
+ this.onmessage.call(null, message);
75
+ }
76
+ let start = end + 1;
77
+ end = buffer.indexOf('\0', start);
78
+ while (end !== -1) {
79
+ if (this.onmessage) {
80
+ this.onmessage.call(null, buffer.toString(undefined, start, end));
81
+ }
82
+ start = end + 1;
83
+ end = buffer.indexOf('\0', start);
84
+ }
85
+ __classPrivateFieldSet(this, _PipeTransport_pendingMessage, buffer.toString(undefined, start), "f");
86
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2020 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare type Product = 'chrome' | 'firefox';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2020 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Copyright 2017 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Browser } from './Browser';
17
+ import { BrowserConnectOptions } from './BrowserConnector';
18
+ import { ConnectionTransport } from './ConnectionTransport';
19
+ import { Product } from './Product';
20
+ /**
21
+ * @public
22
+ */
23
+ export interface ConnectOptions extends BrowserConnectOptions {
24
+ browserWSEndpoint?: string;
25
+ transport?: ConnectionTransport;
26
+ product?: Product;
27
+ }
28
+ export declare class Puppeteer {
29
+ protected _changedProduct: boolean;
30
+ /**
31
+ * @internal
32
+ */
33
+ constructor();
34
+ connect(options: ConnectOptions): Promise<Browser>;
35
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Puppeteer = void 0;
4
+ const BrowserConnector_1 = require("./BrowserConnector");
5
+ class Puppeteer {
6
+ /**
7
+ * @internal
8
+ */
9
+ constructor() {
10
+ this._changedProduct = false;
11
+ this.connect = this.connect.bind(this);
12
+ }
13
+ connect(options) {
14
+ return (0, BrowserConnector_1._connectToBrowser)(options);
15
+ }
16
+ }
17
+ exports.Puppeteer = Puppeteer;
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Copyright 2020 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { Browser } from './Browser';
17
+ import { BrowserConnectOptions, ConnectToBrowserOptions } from './BrowserConnector';
18
+ import { BrowserFetcher, BrowserFetcherOptions } from './BrowserFetcher';
19
+ import { ProductLauncher } from './Launcher';
20
+ import { BrowserLaunchArgumentOptions, LaunchOptions } from './LaunchOptions';
21
+ import { Product } from './Product';
22
+ interface PuppeteerLaunchOptions extends LaunchOptions, BrowserLaunchArgumentOptions, BrowserConnectOptions {
23
+ product?: Product;
24
+ extraPrefsFirefox?: Record<string, unknown>;
25
+ }
26
+ export declare class PuppeteerNode {
27
+ #private;
28
+ _preferredRevision: string;
29
+ constructor(settings: {
30
+ preferredRevision: string;
31
+ productName?: Product;
32
+ });
33
+ connect(options: ConnectToBrowserOptions & {
34
+ product: Product;
35
+ }): Promise<Browser>;
36
+ get _productName(): Product | undefined;
37
+ set _productName(name: Product | undefined);
38
+ /**
39
+ * Launches puppeteer and launches a browser instance with given arguments
40
+ * and options when specified.
41
+ *
42
+ * @remarks
43
+ *
44
+ * @example
45
+ * You can use `ignoreDefaultArgs` to filter out `--mute-audio` from default arguments:
46
+ * ```js
47
+ * const browser = await puppeteer.launch({
48
+ * ignoreDefaultArgs: ['--mute-audio']
49
+ * });
50
+ * ```
51
+ *
52
+ * **NOTE** Puppeteer can also be used to control the Chrome browser,
53
+ * but it works best with the version of Chromium it is bundled with.
54
+ * There is no guarantee it will work with any other version.
55
+ * Use `executablePath` option with extreme caution.
56
+ * If Google Chrome (rather than Chromium) is preferred, a {@link https://www.google.com/chrome/browser/canary.html | Chrome Canary} or {@link https://www.chromium.org/getting-involved/dev-channel | Dev Channel} build is suggested.
57
+ * In `puppeteer.launch([options])`, any mention of Chromium also applies to Chrome.
58
+ * See {@link https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/ | this article} for a description of the differences between Chromium and Chrome. {@link https://chromium.googlesource.com/chromium/src/+/lkgr/docs/chromium_browser_vs_google_chrome.md | This article} describes some differences for Linux users.
59
+ *
60
+ * @param options - Set of configurable options to set on the browser.
61
+ * @returns Promise which resolves to browser instance.
62
+ */
63
+ launch(options: PuppeteerLaunchOptions): Promise<Browser>;
64
+ /**
65
+ * @remarks
66
+ *
67
+ * **NOTE** `puppeteer.executablePath()` is affected by the `PUPPETEER_EXECUTABLE_PATH`
68
+ * and `PUPPETEER_CHROMIUM_REVISION` environment variables.
69
+ *
70
+ * @returns A path where Puppeteer expects to find the bundled browser.
71
+ * The browser binary might not be there if the download was skipped with
72
+ * the `PUPPETEER_SKIP_DOWNLOAD` environment variable.
73
+ */
74
+ executablePath(channel?: string): string;
75
+ get _launcher(): ProductLauncher;
76
+ /**
77
+ * The name of the browser that is under automation (`"chrome"` or `"firefox"`)
78
+ *
79
+ * @remarks
80
+ * The product is set by the `PUPPETEER_PRODUCT` environment variable or the `product`
81
+ * option in `puppeteer.launch([options])` and defaults to `chrome`.
82
+ * Firefox support is experimental.
83
+ */
84
+ get product(): string;
85
+ /**
86
+ * @param options - Set of configurable options to specify the settings
87
+ * of the BrowserFetcher.
88
+ * @returns A new BrowserFetcher instance.
89
+ */
90
+ createBrowserFetcher(options: BrowserFetcherOptions): BrowserFetcher;
91
+ }
92
+ export {};
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2020 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
18
+ if (kind === "m") throw new TypeError("Private method is not writable");
19
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
20
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
21
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
22
+ };
23
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
24
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
25
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
26
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ var _PuppeteerNode_lazyLauncher, _PuppeteerNode_productName;
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.PuppeteerNode = void 0;
34
+ const BrowserConnector_1 = require("./BrowserConnector");
35
+ const BrowserFetcher_1 = require("./BrowserFetcher");
36
+ const Launcher_1 = __importDefault(require("./Launcher"));
37
+ const revisions_1 = require("./revisions");
38
+ class PuppeteerNode {
39
+ constructor(settings) {
40
+ _PuppeteerNode_lazyLauncher.set(this, void 0);
41
+ _PuppeteerNode_productName.set(this, void 0);
42
+ const { preferredRevision, productName } = settings;
43
+ __classPrivateFieldSet(this, _PuppeteerNode_productName, productName, "f");
44
+ this._preferredRevision = preferredRevision;
45
+ this.connect = this.connect.bind(this);
46
+ this.launch = this.launch.bind(this);
47
+ this.executablePath = this.executablePath.bind(this);
48
+ this.createBrowserFetcher = this.createBrowserFetcher.bind(this);
49
+ }
50
+ connect(options) {
51
+ if (options.product) {
52
+ this._productName = options.product;
53
+ }
54
+ return (0, BrowserConnector_1._connectToBrowser)(options);
55
+ }
56
+ get _productName() {
57
+ return __classPrivateFieldGet(this, _PuppeteerNode_productName, "f");
58
+ }
59
+ set _productName(name) {
60
+ __classPrivateFieldSet(this, _PuppeteerNode_productName, name, "f");
61
+ }
62
+ /**
63
+ * Launches puppeteer and launches a browser instance with given arguments
64
+ * and options when specified.
65
+ *
66
+ * @remarks
67
+ *
68
+ * @example
69
+ * You can use `ignoreDefaultArgs` to filter out `--mute-audio` from default arguments:
70
+ * ```js
71
+ * const browser = await puppeteer.launch({
72
+ * ignoreDefaultArgs: ['--mute-audio']
73
+ * });
74
+ * ```
75
+ *
76
+ * **NOTE** Puppeteer can also be used to control the Chrome browser,
77
+ * but it works best with the version of Chromium it is bundled with.
78
+ * There is no guarantee it will work with any other version.
79
+ * Use `executablePath` option with extreme caution.
80
+ * If Google Chrome (rather than Chromium) is preferred, a {@link https://www.google.com/chrome/browser/canary.html | Chrome Canary} or {@link https://www.chromium.org/getting-involved/dev-channel | Dev Channel} build is suggested.
81
+ * In `puppeteer.launch([options])`, any mention of Chromium also applies to Chrome.
82
+ * See {@link https://www.howtogeek.com/202825/what%E2%80%99s-the-difference-between-chromium-and-chrome/ | this article} for a description of the differences between Chromium and Chrome. {@link https://chromium.googlesource.com/chromium/src/+/lkgr/docs/chromium_browser_vs_google_chrome.md | This article} describes some differences for Linux users.
83
+ *
84
+ * @param options - Set of configurable options to set on the browser.
85
+ * @returns Promise which resolves to browser instance.
86
+ */
87
+ launch(options) {
88
+ if (options.product) {
89
+ this._productName = options.product;
90
+ }
91
+ return this._launcher.launch(options);
92
+ }
93
+ /**
94
+ * @remarks
95
+ *
96
+ * **NOTE** `puppeteer.executablePath()` is affected by the `PUPPETEER_EXECUTABLE_PATH`
97
+ * and `PUPPETEER_CHROMIUM_REVISION` environment variables.
98
+ *
99
+ * @returns A path where Puppeteer expects to find the bundled browser.
100
+ * The browser binary might not be there if the download was skipped with
101
+ * the `PUPPETEER_SKIP_DOWNLOAD` environment variable.
102
+ */
103
+ executablePath(channel) {
104
+ return this._launcher.executablePath(channel);
105
+ }
106
+ get _launcher() {
107
+ if (!__classPrivateFieldGet(this, _PuppeteerNode_lazyLauncher, "f") ||
108
+ __classPrivateFieldGet(this, _PuppeteerNode_lazyLauncher, "f").product !== this._productName) {
109
+ switch (this._productName) {
110
+ case 'firefox':
111
+ this._preferredRevision = revisions_1.PUPPETEER_REVISIONS.firefox;
112
+ break;
113
+ case 'chrome':
114
+ default:
115
+ this._preferredRevision = revisions_1.PUPPETEER_REVISIONS.chromium;
116
+ }
117
+ // eslint-disable-next-line new-cap
118
+ __classPrivateFieldSet(this, _PuppeteerNode_lazyLauncher, (0, Launcher_1.default)(this._preferredRevision, this._productName), "f");
119
+ }
120
+ return __classPrivateFieldGet(this, _PuppeteerNode_lazyLauncher, "f");
121
+ }
122
+ /**
123
+ * The name of the browser that is under automation (`"chrome"` or `"firefox"`)
124
+ *
125
+ * @remarks
126
+ * The product is set by the `PUPPETEER_PRODUCT` environment variable or the `product`
127
+ * option in `puppeteer.launch([options])` and defaults to `chrome`.
128
+ * Firefox support is experimental.
129
+ */
130
+ get product() {
131
+ return this._launcher.product;
132
+ }
133
+ /**
134
+ * @param options - Set of configurable options to specify the settings
135
+ * of the BrowserFetcher.
136
+ * @returns A new BrowserFetcher instance.
137
+ */
138
+ createBrowserFetcher(options) {
139
+ return new BrowserFetcher_1.BrowserFetcher(options);
140
+ }
141
+ }
142
+ exports.PuppeteerNode = PuppeteerNode;
143
+ _PuppeteerNode_lazyLauncher = new WeakMap(), _PuppeteerNode_productName = new WeakMap();
@@ -0,0 +1,5 @@
1
+ export interface Viewport {
2
+ width: number;
3
+ height: number;
4
+ deviceScaleFactor: number;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright 2020 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { DOMWorld, WaitForSelectorOptions } from './DOMWorld';
17
+ import { ElementHandle, JSHandle } from './JSHandle';
18
+ /**
19
+ * @internal
20
+ */
21
+ export interface InternalQueryHandler {
22
+ queryOne?: (element: ElementHandle, selector: string) => Promise<ElementHandle | null>;
23
+ waitFor?: (domWorld: DOMWorld, selector: string, options: WaitForSelectorOptions) => Promise<ElementHandle | null>;
24
+ queryAll?: (element: ElementHandle, selector: string) => Promise<ElementHandle[]>;
25
+ queryAllArray?: (element: ElementHandle, selector: string) => Promise<JSHandle<Element[]>>;
26
+ }
27
+ /**
28
+ * Contains two functions `queryOne` and `queryAll` that can
29
+ * be {@link Puppeteer.registerCustomQueryHandler | registered}
30
+ * as alternative querying strategies. The functions `queryOne` and `queryAll`
31
+ * are executed in the page context. `queryOne` should take an `Element` and a
32
+ * selector string as argument and return a single `Element` or `null` if no
33
+ * element is found. `queryAll` takes the same arguments but should instead
34
+ * return a `NodeListOf<Element>` or `Array<Element>` with all the elements
35
+ * that match the given query selector.
36
+ * @public
37
+ */
38
+ export interface CustomQueryHandler {
39
+ queryOne?: (element: Element | Document, selector: string) => Element | null;
40
+ queryAll?: (element: Element | Document, selector: string) => Element[] | NodeListOf<Element>;
41
+ }
42
+ /**
43
+ * @internal
44
+ */
45
+ export declare function _registerCustomQueryHandler(name: string, handler: CustomQueryHandler): void;
46
+ /**
47
+ * @internal
48
+ */
49
+ export declare function _unregisterCustomQueryHandler(name: string): void;
50
+ /**
51
+ * @internal
52
+ */
53
+ export declare function _customQueryHandlerNames(): string[];
54
+ /**
55
+ * @internal
56
+ */
57
+ export declare function _clearCustomQueryHandlers(): void;
58
+ /**
59
+ * @internal
60
+ */
61
+ export declare function _getQueryHandlerAndSelector(selector: string): {
62
+ updatedSelector: string;
63
+ queryHandler: InternalQueryHandler;
64
+ };
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2020 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports._getQueryHandlerAndSelector = exports._clearCustomQueryHandlers = exports._customQueryHandlerNames = exports._unregisterCustomQueryHandler = exports._registerCustomQueryHandler = void 0;
19
+ const AriaQueryHandler_1 = require("./AriaQueryHandler");
20
+ function makeQueryHandler(handler) {
21
+ const internalHandler = {};
22
+ if (handler.queryOne) {
23
+ const { queryOne } = handler;
24
+ internalHandler.queryOne = async (element, selector) => {
25
+ const jsHandle = await element.evaluateHandle(queryOne, selector);
26
+ const elementHandle = jsHandle.asElement();
27
+ if (elementHandle) {
28
+ return elementHandle;
29
+ }
30
+ await jsHandle.dispose();
31
+ return null;
32
+ };
33
+ internalHandler.waitFor = (domWorld, selector, options) => {
34
+ return domWorld._waitForSelectorInPage(queryOne, selector, options);
35
+ };
36
+ }
37
+ if (handler.queryAll) {
38
+ const { queryAll } = handler;
39
+ internalHandler.queryAll = async (element, selector) => {
40
+ const jsHandle = await element.evaluateHandle(queryAll, selector);
41
+ const properties = await jsHandle.getProperties();
42
+ await jsHandle.dispose();
43
+ const result = [];
44
+ for (const property of properties.values()) {
45
+ const elementHandle = property.asElement();
46
+ if (elementHandle) {
47
+ result.push(elementHandle);
48
+ }
49
+ }
50
+ return result;
51
+ };
52
+ internalHandler.queryAllArray = async (element, selector) => {
53
+ const resultHandle = await element.evaluateHandle(queryAll, selector);
54
+ const arrayHandle = await resultHandle.evaluateHandle((res) => {
55
+ return Array.from(res);
56
+ });
57
+ return arrayHandle;
58
+ };
59
+ }
60
+ return internalHandler;
61
+ }
62
+ const _defaultHandler = makeQueryHandler({
63
+ queryOne: (element, selector) => {
64
+ return element.querySelector(selector);
65
+ },
66
+ queryAll: (element, selector) => {
67
+ return element.querySelectorAll(selector);
68
+ },
69
+ });
70
+ const pierceHandler = makeQueryHandler({
71
+ queryOne: (element, selector) => {
72
+ let found = null;
73
+ const search = (root) => {
74
+ const iter = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
75
+ do {
76
+ const currentNode = iter.currentNode;
77
+ if (currentNode.shadowRoot) {
78
+ search(currentNode.shadowRoot);
79
+ }
80
+ if (currentNode instanceof ShadowRoot) {
81
+ continue;
82
+ }
83
+ if (currentNode !== root && !found && currentNode.matches(selector)) {
84
+ found = currentNode;
85
+ }
86
+ } while (!found && iter.nextNode());
87
+ };
88
+ if (element instanceof Document) {
89
+ element = element.documentElement;
90
+ }
91
+ search(element);
92
+ return found;
93
+ },
94
+ queryAll: (element, selector) => {
95
+ const result = [];
96
+ const collect = (root) => {
97
+ const iter = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
98
+ do {
99
+ const currentNode = iter.currentNode;
100
+ if (currentNode.shadowRoot) {
101
+ collect(currentNode.shadowRoot);
102
+ }
103
+ if (currentNode instanceof ShadowRoot) {
104
+ continue;
105
+ }
106
+ if (currentNode !== root && currentNode.matches(selector)) {
107
+ result.push(currentNode);
108
+ }
109
+ } while (iter.nextNode());
110
+ };
111
+ if (element instanceof Document) {
112
+ element = element.documentElement;
113
+ }
114
+ collect(element);
115
+ return result;
116
+ },
117
+ });
118
+ const builtInHandlers = new Map([
119
+ ['aria', AriaQueryHandler_1._ariaHandler],
120
+ ['pierce', pierceHandler],
121
+ ]);
122
+ const queryHandlers = new Map(builtInHandlers);
123
+ /**
124
+ * @internal
125
+ */
126
+ function _registerCustomQueryHandler(name, handler) {
127
+ if (queryHandlers.get(name)) {
128
+ throw new Error(`A custom query handler named "${name}" already exists`);
129
+ }
130
+ const isValidName = /^[a-zA-Z]+$/.test(name);
131
+ if (!isValidName) {
132
+ throw new Error(`Custom query handler names may only contain [a-zA-Z]`);
133
+ }
134
+ const internalHandler = makeQueryHandler(handler);
135
+ queryHandlers.set(name, internalHandler);
136
+ }
137
+ exports._registerCustomQueryHandler = _registerCustomQueryHandler;
138
+ /**
139
+ * @internal
140
+ */
141
+ function _unregisterCustomQueryHandler(name) {
142
+ if (queryHandlers.has(name) && !builtInHandlers.has(name)) {
143
+ queryHandlers.delete(name);
144
+ }
145
+ }
146
+ exports._unregisterCustomQueryHandler = _unregisterCustomQueryHandler;
147
+ /**
148
+ * @internal
149
+ */
150
+ function _customQueryHandlerNames() {
151
+ return [...queryHandlers.keys()].filter((name) => {
152
+ return !builtInHandlers.has(name);
153
+ });
154
+ }
155
+ exports._customQueryHandlerNames = _customQueryHandlerNames;
156
+ /**
157
+ * @internal
158
+ */
159
+ function _clearCustomQueryHandlers() {
160
+ _customQueryHandlerNames().forEach(_unregisterCustomQueryHandler);
161
+ }
162
+ exports._clearCustomQueryHandlers = _clearCustomQueryHandlers;
163
+ /**
164
+ * @internal
165
+ */
166
+ function _getQueryHandlerAndSelector(selector) {
167
+ const hasCustomQueryHandler = /^[a-zA-Z]+\//.test(selector);
168
+ if (!hasCustomQueryHandler) {
169
+ return { updatedSelector: selector, queryHandler: _defaultHandler };
170
+ }
171
+ const index = selector.indexOf('/');
172
+ const name = selector.slice(0, index);
173
+ const updatedSelector = selector.slice(index + 1);
174
+ const queryHandler = queryHandlers.get(name);
175
+ if (!queryHandler) {
176
+ throw new Error(`Query set to use "${name}", but no query handler of that name was found`);
177
+ }
178
+ return {
179
+ updatedSelector,
180
+ queryHandler,
181
+ };
182
+ }
183
+ exports._getQueryHandlerAndSelector = _getQueryHandlerAndSelector;