@remotion/renderer 4.0.0-alpha.4 → 4.0.0-alpha4

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 (556) hide show
  1. package/LICENSE.md +8 -8
  2. package/README.md +47 -0
  3. package/client.d.ts +1 -0
  4. package/client.js +1 -0
  5. package/dist/assets/calculate-asset-positions.d.ts +0 -0
  6. package/dist/assets/calculate-asset-positions.js +1 -0
  7. package/dist/assets/calculate-atempo.d.ts +0 -0
  8. package/dist/assets/calculate-atempo.js +0 -0
  9. package/dist/assets/convert-assets-to-file-urls.d.ts +0 -0
  10. package/dist/assets/convert-assets-to-file-urls.js +0 -0
  11. package/dist/assets/download-and-map-assets-to-file.d.ts +2 -1
  12. package/dist/assets/download-and-map-assets-to-file.js +60 -11
  13. package/dist/assets/download-file.d.ts +7 -5
  14. package/dist/assets/download-file.js +49 -6
  15. package/dist/assets/download-map.d.ts +8 -3
  16. package/dist/assets/download-map.js +8 -4
  17. package/dist/assets/ffmpeg-volume-expression.d.ts +2 -1
  18. package/dist/assets/ffmpeg-volume-expression.js +5 -3
  19. package/dist/assets/flatten-volume-array.d.ts +0 -0
  20. package/dist/assets/flatten-volume-array.js +0 -0
  21. package/dist/assets/get-audio-channels.d.ts +1 -1
  22. package/dist/assets/get-audio-channels.js +5 -4
  23. package/dist/assets/get-video-stream-duration.d.ts +7 -1
  24. package/dist/assets/get-video-stream-duration.js +50 -14
  25. package/dist/assets/read-file.d.ts +0 -0
  26. package/dist/assets/read-file.js +2 -4
  27. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts +0 -0
  28. package/dist/assets/round-volume-to-avoid-stack-overflow.js +0 -0
  29. package/dist/assets/sanitize-filename.d.ts +0 -0
  30. package/dist/assets/sanitize-filename.js +0 -0
  31. package/dist/assets/sanitize-filepath.d.ts +0 -0
  32. package/dist/assets/sanitize-filepath.js +0 -0
  33. package/dist/assets/truncate-utf8-bytes.d.ts +0 -0
  34. package/dist/assets/truncate-utf8-bytes.js +0 -0
  35. package/dist/assets/types.d.ts +1 -0
  36. package/dist/assets/types.js +0 -0
  37. package/dist/audio-codec.d.ts +27 -0
  38. package/dist/audio-codec.js +89 -0
  39. package/dist/browser/Browser.d.ts +4 -2
  40. package/dist/browser/Browser.js +15 -12
  41. package/dist/browser/BrowserConnector.d.ts +0 -0
  42. package/dist/browser/BrowserConnector.js +0 -0
  43. package/dist/browser/BrowserFetcher.d.ts +16 -63
  44. package/dist/browser/BrowserFetcher.js +146 -231
  45. package/dist/browser/BrowserPage.d.ts +8 -2
  46. package/dist/browser/BrowserPage.js +8 -11
  47. package/dist/browser/BrowserRunner.d.ts +1 -4
  48. package/dist/browser/BrowserRunner.js +30 -73
  49. package/dist/browser/Connection.d.ts +0 -0
  50. package/dist/browser/Connection.js +1 -1
  51. package/dist/browser/ConsoleMessage.d.ts +0 -0
  52. package/dist/browser/ConsoleMessage.js +0 -0
  53. package/dist/browser/DOMWorld.d.ts +2 -1
  54. package/dist/browser/DOMWorld.js +8 -1
  55. package/dist/browser/Errors.d.ts +0 -0
  56. package/dist/browser/Errors.js +0 -0
  57. package/dist/browser/EvalTypes.d.ts +0 -0
  58. package/dist/browser/EvalTypes.js +0 -0
  59. package/dist/browser/EventEmitter.d.ts +0 -0
  60. package/dist/browser/EventEmitter.js +0 -0
  61. package/dist/browser/ExecutionContext.d.ts +0 -0
  62. package/dist/browser/ExecutionContext.js +0 -0
  63. package/dist/browser/FrameManager.d.ts +0 -2
  64. package/dist/browser/FrameManager.js +0 -3
  65. package/dist/browser/HTTPRequest.d.ts +0 -0
  66. package/dist/browser/HTTPRequest.js +0 -0
  67. package/dist/browser/HTTPResponse.d.ts +0 -0
  68. package/dist/browser/HTTPResponse.js +0 -0
  69. package/dist/browser/JSHandle.d.ts +0 -0
  70. package/dist/browser/JSHandle.js +0 -0
  71. package/dist/browser/LaunchOptions.d.ts +0 -4
  72. package/dist/browser/LaunchOptions.js +0 -0
  73. package/dist/browser/Launcher.d.ts +7 -1
  74. package/dist/browser/Launcher.js +12 -375
  75. package/dist/browser/LifecycleWatcher.d.ts +0 -0
  76. package/dist/browser/LifecycleWatcher.js +0 -0
  77. package/dist/browser/NetworkEventManager.d.ts +0 -0
  78. package/dist/browser/NetworkEventManager.js +0 -0
  79. package/dist/browser/NetworkManager.d.ts +0 -0
  80. package/dist/browser/NetworkManager.js +0 -0
  81. package/dist/browser/NodeWebSocketTransport.d.ts +0 -0
  82. package/dist/browser/NodeWebSocketTransport.js +1 -1
  83. package/dist/browser/Product.d.ts +0 -0
  84. package/dist/browser/Product.js +0 -0
  85. package/dist/browser/PuppeteerNode.d.ts +0 -3
  86. package/dist/browser/PuppeteerNode.js +2 -14
  87. package/dist/browser/PuppeteerViewport.d.ts +0 -0
  88. package/dist/browser/PuppeteerViewport.js +0 -0
  89. package/dist/browser/ScreenshotOptions.d.ts +0 -14
  90. package/dist/browser/ScreenshotOptions.js +0 -1
  91. package/dist/browser/Target.d.ts +0 -0
  92. package/dist/browser/Target.js +0 -0
  93. package/dist/browser/TaskQueue.d.ts +0 -0
  94. package/dist/browser/TaskQueue.js +0 -0
  95. package/dist/browser/TimeoutSettings.d.ts +0 -0
  96. package/dist/browser/TimeoutSettings.js +0 -0
  97. package/dist/browser/assert.d.ts +0 -0
  98. package/dist/browser/assert.js +0 -0
  99. package/dist/browser/create-browser-fetcher.d.ts +0 -0
  100. package/dist/browser/create-browser-fetcher.js +34 -90
  101. package/dist/browser/devtools-commands.d.ts +0 -0
  102. package/dist/browser/devtools-commands.js +0 -0
  103. package/dist/browser/devtools-types.d.ts +4 -0
  104. package/dist/browser/devtools-types.js +0 -0
  105. package/dist/browser/get-download-destination.d.ts +0 -0
  106. package/dist/browser/get-download-destination.js +0 -0
  107. package/dist/browser/mitt/index.d.ts +0 -0
  108. package/dist/browser/mitt/index.js +0 -0
  109. package/dist/browser/node.d.ts +0 -0
  110. package/dist/browser/node.js +0 -0
  111. package/dist/browser/revisions.d.ts +0 -1
  112. package/dist/browser/revisions.js +0 -1
  113. package/dist/browser/util.d.ts +0 -0
  114. package/dist/browser/util.js +0 -0
  115. package/dist/browser-executable.d.ts +0 -0
  116. package/dist/browser-executable.js +0 -0
  117. package/dist/browser-log.d.ts +0 -0
  118. package/dist/browser-log.js +0 -0
  119. package/dist/browser.d.ts +0 -0
  120. package/dist/browser.js +0 -0
  121. package/dist/calculate-ffmpeg-filters.d.ts +2 -1
  122. package/dist/calculate-ffmpeg-filters.js +1 -0
  123. package/dist/calculate-sar-dar-pixels.d.ts +0 -0
  124. package/dist/calculate-sar-dar-pixels.js +0 -0
  125. package/dist/can-use-parallel-encoding.d.ts +0 -0
  126. package/dist/can-use-parallel-encoding.js +0 -0
  127. package/dist/check-apple-silicon.d.ts +1 -0
  128. package/dist/check-apple-silicon.js +55 -0
  129. package/dist/chunk.d.ts +0 -0
  130. package/dist/chunk.js +0 -0
  131. package/dist/client.d.ts +179 -0
  132. package/dist/client.js +23 -0
  133. package/dist/codec-supports-media.d.ts +1 -0
  134. package/dist/codec-supports-media.js +8 -1
  135. package/dist/codec.d.ts +0 -0
  136. package/dist/codec.js +0 -0
  137. package/dist/combine-videos.d.ts +9 -2
  138. package/dist/combine-videos.js +12 -8
  139. package/dist/compositor/compose.d.ts +13 -0
  140. package/dist/compositor/compose.js +47 -0
  141. package/dist/compositor/get-executable-path.d.ts +1 -0
  142. package/dist/compositor/get-executable-path.js +47 -0
  143. package/dist/compositor/payloads.d.ts +41 -0
  144. package/dist/compositor/payloads.js +2 -0
  145. package/dist/compress-assets.d.ts +0 -0
  146. package/dist/compress-assets.js +0 -0
  147. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  148. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  149. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  150. package/dist/convert-to-positive-frame-index.js +8 -0
  151. package/dist/create-ffmpeg-complex-filter.d.ts +9 -5
  152. package/dist/create-ffmpeg-complex-filter.js +8 -4
  153. package/dist/create-ffmpeg-merge-filter.d.ts +8 -1
  154. package/dist/create-ffmpeg-merge-filter.js +29 -13
  155. package/dist/create-silent-audio.d.ts +2 -1
  156. package/dist/create-silent-audio.js +3 -2
  157. package/dist/crf.d.ts +5 -1
  158. package/dist/crf.js +33 -6
  159. package/dist/cycle-browser-tabs.d.ts +2 -5
  160. package/dist/cycle-browser-tabs.js +5 -5
  161. package/dist/delay-render-embedded-stack.d.ts +0 -0
  162. package/dist/delay-render-embedded-stack.js +0 -0
  163. package/dist/delete-directory.d.ts +1 -1
  164. package/dist/delete-directory.js +31 -5
  165. package/dist/determine-resize-params.d.ts +1 -0
  166. package/dist/determine-resize-params.js +10 -0
  167. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  168. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  169. package/dist/does-have-m2-bug.d.ts +3 -0
  170. package/dist/does-have-m2-bug.js +12 -0
  171. package/dist/ensure-ffmpeg.d.ts +18 -0
  172. package/dist/ensure-ffmpeg.js +58 -0
  173. package/dist/ensure-frames-in-order.d.ts +0 -0
  174. package/dist/ensure-frames-in-order.js +0 -0
  175. package/dist/ensure-output-directory.d.ts +0 -0
  176. package/dist/ensure-output-directory.js +0 -0
  177. package/dist/ensure-presentation-timestamp.d.ts +14 -1
  178. package/dist/ensure-presentation-timestamp.js +36 -17
  179. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  180. package/dist/error-handling/handle-javascript-exception.js +10 -0
  181. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  182. package/dist/error-handling/symbolicate-error.js +2 -1
  183. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  184. package/dist/error-handling/symbolicateable-error.js +0 -0
  185. package/dist/extract-frame-from-video.d.ts +2 -0
  186. package/dist/extract-frame-from-video.js +47 -110
  187. package/dist/ffmpeg-executable.d.ts +0 -0
  188. package/dist/ffmpeg-executable.js +0 -0
  189. package/dist/ffmpeg-filter-file.d.ts +6 -1
  190. package/dist/ffmpeg-filter-file.js +36 -4
  191. package/dist/ffmpeg-flags.d.ts +20 -2
  192. package/dist/ffmpeg-flags.js +205 -9
  193. package/dist/ffmpeg-override.d.ts +4 -0
  194. package/dist/ffmpeg-override.js +2 -0
  195. package/dist/file-extensions.d.ts +25 -0
  196. package/dist/file-extensions.js +88 -0
  197. package/dist/find-closest-package-json.d.ts +2 -0
  198. package/dist/find-closest-package-json.js +31 -0
  199. package/dist/frame-range.d.ts +0 -0
  200. package/dist/frame-range.js +0 -0
  201. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  202. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  203. package/dist/get-browser-instance.d.ts +0 -0
  204. package/dist/get-browser-instance.js +1 -1
  205. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  206. package/dist/get-can-extract-frames-fast.js +71 -0
  207. package/dist/get-codec-name.d.ts +0 -0
  208. package/dist/get-codec-name.js +0 -0
  209. package/dist/get-compositions.d.ts +4 -0
  210. package/dist/get-compositions.js +26 -7
  211. package/dist/get-concurrency.d.ts +1 -1
  212. package/dist/get-concurrency.js +8 -1
  213. package/dist/get-duration-from-frame-range.d.ts +0 -0
  214. package/dist/get-duration-from-frame-range.js +0 -0
  215. package/dist/get-extension-from-codec.d.ts +5 -1
  216. package/dist/get-extension-from-codec.js +56 -32
  217. package/dist/get-extension-of-filename.d.ts +0 -0
  218. package/dist/get-extension-of-filename.js +5 -1
  219. package/dist/get-frame-of-video-slow.d.ts +15 -0
  220. package/dist/get-frame-of-video-slow.js +72 -0
  221. package/dist/get-frame-padded-index.d.ts +1 -1
  222. package/dist/get-frame-padded-index.js +3 -2
  223. package/dist/get-frame-to-render.d.ts +0 -0
  224. package/dist/get-frame-to-render.js +1 -1
  225. package/dist/get-local-browser-executable.d.ts +0 -0
  226. package/dist/get-local-browser-executable.js +4 -14
  227. package/dist/get-port.d.ts +4 -1
  228. package/dist/get-port.js +8 -8
  229. package/dist/get-prores-profile-name.d.ts +0 -0
  230. package/dist/get-prores-profile-name.js +0 -0
  231. package/dist/get-video-info.d.ts +6 -1
  232. package/dist/get-video-info.js +19 -9
  233. package/dist/get-video-threads-flag.d.ts +0 -0
  234. package/dist/get-video-threads-flag.js +0 -0
  235. package/dist/guess-extension-for-media.d.ts +5 -1
  236. package/dist/guess-extension-for-media.js +4 -3
  237. package/dist/image-format.d.ts +1 -1
  238. package/dist/image-format.js +3 -0
  239. package/dist/index.d.ts +187 -41
  240. package/dist/index.js +31 -28
  241. package/dist/is-audio-codec.d.ts +0 -0
  242. package/dist/is-audio-codec.js +0 -0
  243. package/dist/is-beyond-last-frame.d.ts +0 -0
  244. package/dist/is-beyond-last-frame.js +0 -0
  245. package/dist/is-serve-url.d.ts +0 -0
  246. package/dist/is-serve-url.js +0 -0
  247. package/dist/last-frame-from-video-cache.d.ts +2 -0
  248. package/dist/last-frame-from-video-cache.js +0 -0
  249. package/dist/legacy-webpack-config.d.ts +0 -0
  250. package/dist/legacy-webpack-config.js +0 -0
  251. package/dist/locks.d.ts +7 -0
  252. package/dist/locks.js +44 -0
  253. package/dist/log-level.d.ts +0 -0
  254. package/dist/log-level.js +0 -0
  255. package/dist/make-cancel-signal.d.ts +11 -0
  256. package/dist/make-cancel-signal.js +24 -1
  257. package/dist/merge-audio-track.d.ts +3 -1
  258. package/dist/merge-audio-track.js +43 -30
  259. package/dist/mime-db.d.ts +0 -0
  260. package/dist/mime-db.js +0 -0
  261. package/dist/mime-types.d.ts +1 -0
  262. package/dist/mime-types.js +6 -1
  263. package/dist/normalize-serve-url.d.ts +0 -0
  264. package/dist/normalize-serve-url.js +0 -0
  265. package/dist/offthread-video-server.d.ts +2 -1
  266. package/dist/offthread-video-server.js +13 -1
  267. package/dist/open-browser.d.ts +5 -0
  268. package/dist/open-browser.js +12 -15
  269. package/dist/overwrite.d.ts +0 -0
  270. package/dist/overwrite.js +0 -0
  271. package/dist/p-limit.d.ts +0 -0
  272. package/dist/p-limit.js +0 -0
  273. package/dist/parse-browser-error-stack.d.ts +0 -0
  274. package/dist/parse-browser-error-stack.js +0 -0
  275. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  276. package/dist/parse-ffmpeg-progress.js +0 -0
  277. package/dist/perf.d.ts +0 -0
  278. package/dist/perf.js +0 -0
  279. package/dist/pixel-format.d.ts +1 -1
  280. package/dist/pixel-format.js +3 -0
  281. package/dist/pool.d.ts +0 -0
  282. package/dist/pool.js +0 -0
  283. package/dist/prepare-server.d.ts +3 -2
  284. package/dist/prepare-server.js +8 -3
  285. package/dist/preprocess-audio-track.d.ts +7 -1
  286. package/dist/preprocess-audio-track.js +7 -4
  287. package/dist/prespawn-ffmpeg.d.ts +4 -1
  288. package/dist/prespawn-ffmpeg.js +17 -12
  289. package/dist/prestitcher-memory-usage.d.ts +0 -0
  290. package/dist/prestitcher-memory-usage.js +0 -0
  291. package/dist/prores-profile.d.ts +4 -1
  292. package/dist/prores-profile.js +6 -6
  293. package/dist/provide-screenshot.d.ts +5 -1
  294. package/dist/provide-screenshot.js +4 -1
  295. package/dist/puppeteer-evaluate.d.ts +0 -0
  296. package/dist/puppeteer-evaluate.js +19 -11
  297. package/dist/puppeteer-screenshot.d.ts +11 -2
  298. package/dist/puppeteer-screenshot.js +11 -14
  299. package/dist/quality.d.ts +0 -0
  300. package/dist/quality.js +0 -0
  301. package/dist/redirect-status-codes.d.ts +1 -0
  302. package/dist/redirect-status-codes.js +6 -0
  303. package/dist/render-frames.d.ts +15 -3
  304. package/dist/render-frames.js +176 -84
  305. package/dist/render-media.d.ts +38 -6
  306. package/dist/render-media.js +123 -27
  307. package/dist/render-still.d.ts +8 -4
  308. package/dist/render-still.js +66 -31
  309. package/dist/replace-browser.d.ts +6 -0
  310. package/dist/replace-browser.js +47 -0
  311. package/dist/resolve-asset-src.d.ts +0 -0
  312. package/dist/resolve-asset-src.js +0 -0
  313. package/dist/sample-rate.d.ts +0 -0
  314. package/dist/sample-rate.js +0 -0
  315. package/dist/screenshot-dom-element.d.ts +5 -1
  316. package/dist/screenshot-dom-element.js +10 -2
  317. package/dist/screenshot-task.d.ts +12 -2
  318. package/dist/screenshot-task.js +24 -9
  319. package/dist/seek-to-frame.d.ts +1 -0
  320. package/dist/seek-to-frame.js +49 -3
  321. package/dist/serve-handler/index.d.ts +0 -0
  322. package/dist/serve-handler/index.js +0 -0
  323. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  324. package/dist/serve-handler/is-path-inside.js +0 -0
  325. package/dist/serve-handler/range-parser.d.ts +0 -0
  326. package/dist/serve-handler/range-parser.js +0 -0
  327. package/dist/serve-static.d.ts +1 -0
  328. package/dist/serve-static.js +77 -41
  329. package/dist/set-props-and-env.d.ts +3 -1
  330. package/dist/set-props-and-env.js +39 -15
  331. package/dist/stitch-frames-to-video.d.ts +14 -1
  332. package/dist/stitch-frames-to-video.js +122 -50
  333. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  334. package/dist/stringify-ffmpeg-filter.js +37 -34
  335. package/dist/symbolicate-stacktrace.d.ts +0 -0
  336. package/dist/symbolicate-stacktrace.js +0 -0
  337. package/dist/take-frame-and-compose.d.ts +20 -0
  338. package/dist/take-frame-and-compose.js +96 -0
  339. package/dist/tmp-dir.d.ts +0 -0
  340. package/dist/tmp-dir.js +0 -0
  341. package/dist/truthy.d.ts +0 -0
  342. package/dist/truthy.js +0 -0
  343. package/dist/try-to-extract-frame-of-video-fast.d.ts +13 -0
  344. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  345. package/dist/types.d.ts +0 -0
  346. package/dist/types.js +0 -0
  347. package/dist/validate-concurrency.d.ts +0 -0
  348. package/dist/validate-concurrency.js +14 -9
  349. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  350. package/dist/validate-even-dimensions-with-codec.js +0 -0
  351. package/dist/validate-every-nth-frame.d.ts +2 -1
  352. package/dist/validate-every-nth-frame.js +8 -1
  353. package/dist/validate-ffmpeg-override.d.ts +2 -0
  354. package/dist/validate-ffmpeg-override.js +12 -0
  355. package/dist/validate-ffmpeg.d.ts +7 -2
  356. package/dist/validate-ffmpeg.js +48 -43
  357. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  358. package/dist/validate-number-of-gif-loops.js +24 -0
  359. package/dist/validate-opengl-renderer.d.ts +0 -0
  360. package/dist/validate-opengl-renderer.js +0 -0
  361. package/dist/validate-output-filename.d.ts +7 -2
  362. package/dist/validate-output-filename.js +20 -51
  363. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  364. package/dist/validate-puppeteer-timeout.js +1 -1
  365. package/dist/validate-scale.d.ts +0 -0
  366. package/dist/validate-scale.js +0 -0
  367. package/dist/validate-videobitrate.d.ts +1 -0
  368. package/dist/validate-videobitrate.js +20 -0
  369. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  370. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  371. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  372. package/dist/warn-about-ffmpeg-version.js +37 -0
  373. package/dist/ws/ws-types.d.ts +0 -0
  374. package/dist/ws/ws-types.js +2 -1
  375. package/package.json +68 -60
  376. package/.prettierrc.js +0 -14
  377. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  378. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  379. package/dist/add-silent-audio-if-necessary.js +0 -51
  380. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  381. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  382. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  383. package/dist/assets/asset-is-used-at-time.js +0 -8
  384. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  385. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  386. package/dist/assets/calculate-asset-positions.js.map +0 -1
  387. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  388. package/dist/assets/calculate-atempo.js.map +0 -1
  389. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  390. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  391. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  392. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  393. package/dist/assets/download-file.d.ts.map +0 -1
  394. package/dist/assets/download-file.js.map +0 -1
  395. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  396. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  397. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  398. package/dist/assets/flatten-volume-array.js.map +0 -1
  399. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  400. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  401. package/dist/assets/get-asset-audio-details.js +0 -21
  402. package/dist/assets/get-asset-audio-details.js.map +0 -1
  403. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  404. package/dist/assets/get-audio-channels.js.map +0 -1
  405. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  406. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  407. package/dist/assets/get-simulatenous-assets.js +0 -14
  408. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  409. package/dist/assets/read-file.d.ts.map +0 -1
  410. package/dist/assets/read-file.js.map +0 -1
  411. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  412. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  413. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  414. package/dist/assets/sanitize-filename.js.map +0 -1
  415. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  416. package/dist/assets/sanitize-filepath.js.map +0 -1
  417. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  418. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  419. package/dist/assets/split-assets-into-segments.js +0 -89
  420. package/dist/assets/split-assets-into-segments.js.map +0 -1
  421. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  422. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  423. package/dist/assets/types.d.ts.map +0 -1
  424. package/dist/assets/types.js.map +0 -1
  425. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
  426. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  427. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  428. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  429. package/dist/browser-log.d.ts.map +0 -1
  430. package/dist/browser-log.js.map +0 -1
  431. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  432. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  433. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  434. package/dist/can-use-parallel-encoding.js.map +0 -1
  435. package/dist/combine-videos.d.ts.map +0 -1
  436. package/dist/combine-videos.js.map +0 -1
  437. package/dist/convert-to-pcm.d.ts +0 -6
  438. package/dist/convert-to-pcm.js +0 -20
  439. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  440. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  441. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  442. package/dist/cycle-browser-tabs.js.map +0 -1
  443. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  444. package/dist/delay-render-embedded-stack.js.map +0 -1
  445. package/dist/delete-directory.d.ts.map +0 -1
  446. package/dist/delete-directory.js.map +0 -1
  447. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  448. package/dist/ensure-frames-in-order.js.map +0 -1
  449. package/dist/ensure-output-directory.d.ts.map +0 -1
  450. package/dist/ensure-output-directory.js.map +0 -1
  451. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  452. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  453. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  454. package/dist/error-handling/symbolicate-error.js.map +0 -1
  455. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  456. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  457. package/dist/ffmpeg-flags.d.ts.map +0 -1
  458. package/dist/ffmpeg-flags.js.map +0 -1
  459. package/dist/get-audio-codec-name.d.ts +0 -2
  460. package/dist/get-audio-codec-name.d.ts.map +0 -1
  461. package/dist/get-audio-codec-name.js +0 -28
  462. package/dist/get-audio-codec-name.js.map +0 -1
  463. package/dist/get-browser-instance.d.ts.map +0 -1
  464. package/dist/get-browser-instance.js.map +0 -1
  465. package/dist/get-codec-name.d.ts.map +0 -1
  466. package/dist/get-codec-name.js.map +0 -1
  467. package/dist/get-compositions.d.ts.map +0 -1
  468. package/dist/get-compositions.js.map +0 -1
  469. package/dist/get-concurrency.d.ts.map +0 -1
  470. package/dist/get-concurrency.js.map +0 -1
  471. package/dist/get-extension-from-codec.d.ts.map +0 -1
  472. package/dist/get-extension-from-codec.js.map +0 -1
  473. package/dist/get-frame-to-render.d.ts.map +0 -1
  474. package/dist/get-frame-to-render.js.map +0 -1
  475. package/dist/get-local-browser-executable.d.ts.map +0 -1
  476. package/dist/get-local-browser-executable.js.map +0 -1
  477. package/dist/get-port.d.ts.map +0 -1
  478. package/dist/get-port.js.map +0 -1
  479. package/dist/get-prores-profile-name.d.ts.map +0 -1
  480. package/dist/get-prores-profile-name.js.map +0 -1
  481. package/dist/image-format.d.ts.map +0 -1
  482. package/dist/image-format.js.map +0 -1
  483. package/dist/index.d.ts.map +0 -1
  484. package/dist/index.js.map +0 -1
  485. package/dist/is-serve-url.d.ts.map +0 -1
  486. package/dist/is-serve-url.js.map +0 -1
  487. package/dist/legacy-webpack-config.d.ts.map +0 -1
  488. package/dist/legacy-webpack-config.js.map +0 -1
  489. package/dist/make-assets-download-dir.d.ts +0 -1
  490. package/dist/make-assets-download-dir.d.ts.map +0 -1
  491. package/dist/make-assets-download-dir.js +0 -13
  492. package/dist/make-assets-download-dir.js.map +0 -1
  493. package/dist/normalize-serve-url.d.ts.map +0 -1
  494. package/dist/normalize-serve-url.js.map +0 -1
  495. package/dist/open-browser.d.ts.map +0 -1
  496. package/dist/open-browser.js.map +0 -1
  497. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  498. package/dist/parse-browser-error-stack.js.map +0 -1
  499. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  500. package/dist/parse-ffmpeg-progress.js.map +0 -1
  501. package/dist/pool.d.ts.map +0 -1
  502. package/dist/pool.js.map +0 -1
  503. package/dist/prepare-server.d.ts.map +0 -1
  504. package/dist/prepare-server.js.map +0 -1
  505. package/dist/provide-screenshot.d.ts.map +0 -1
  506. package/dist/provide-screenshot.js.map +0 -1
  507. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  508. package/dist/puppeteer-evaluate.js.map +0 -1
  509. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  510. package/dist/puppeteer-screenshot.js.map +0 -1
  511. package/dist/render-media.d.ts.map +0 -1
  512. package/dist/render-media.js.map +0 -1
  513. package/dist/render-still.d.ts.map +0 -1
  514. package/dist/render-still.js.map +0 -1
  515. package/dist/render.d.ts +0 -45
  516. package/dist/render.d.ts.map +0 -1
  517. package/dist/render.js +0 -245
  518. package/dist/render.js.map +0 -1
  519. package/dist/resolve-asset-src.d.ts.map +0 -1
  520. package/dist/resolve-asset-src.js.map +0 -1
  521. package/dist/sample-rate.d.ts.map +0 -1
  522. package/dist/sample-rate.js.map +0 -1
  523. package/dist/screenshot-dom-element.d.ts.map +0 -1
  524. package/dist/screenshot-dom-element.js.map +0 -1
  525. package/dist/screenshot-task.d.ts.map +0 -1
  526. package/dist/screenshot-task.js.map +0 -1
  527. package/dist/seek-to-frame.d.ts.map +0 -1
  528. package/dist/seek-to-frame.js.map +0 -1
  529. package/dist/serve-static.d.ts.map +0 -1
  530. package/dist/serve-static.js.map +0 -1
  531. package/dist/set-props-and-env.d.ts.map +0 -1
  532. package/dist/set-props-and-env.js.map +0 -1
  533. package/dist/stitcher.d.ts +0 -32
  534. package/dist/stitcher.d.ts.map +0 -1
  535. package/dist/stitcher.js +0 -204
  536. package/dist/stitcher.js.map +0 -1
  537. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  538. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  539. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  540. package/dist/symbolicate-stacktrace.js.map +0 -1
  541. package/dist/tmp-dir.d.ts.map +0 -1
  542. package/dist/tmp-dir.js.map +0 -1
  543. package/dist/types.d.ts.map +0 -1
  544. package/dist/types.js.map +0 -1
  545. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  546. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  547. package/dist/validate-ffmpeg.d.ts.map +0 -1
  548. package/dist/validate-ffmpeg.js.map +0 -1
  549. package/dist/validate-frame.d.ts +0 -1
  550. package/dist/validate-frame.js +0 -24
  551. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  552. package/dist/validate-puppeteer-timeout.js.map +0 -1
  553. package/dist/validate-scale.d.ts.map +0 -1
  554. package/dist/validate-scale.js.map +0 -1
  555. package/tsconfig.json +0 -10
  556. package/vitest.config.ts +0 -8
@@ -37,33 +37,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
37
37
  __setModuleDefault(result, mod);
38
38
  return result;
39
39
  };
40
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
41
- if (kind === "m") throw new TypeError("Private method is not writable");
42
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
43
- 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");
44
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
45
- };
46
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
47
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
48
- 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");
49
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
50
- };
51
40
  var __importDefault = (this && this.__importDefault) || function (mod) {
52
41
  return (mod && mod.__esModule) ? mod : { "default": mod };
53
42
  };
54
- var _BrowserFetcher_instances, _BrowserFetcher_product, _BrowserFetcher_downloadsFolder, _BrowserFetcher_downloadHost, _BrowserFetcher_platform, _BrowserFetcher_getFolderPath;
55
43
  Object.defineProperty(exports, "__esModule", { value: true });
56
- exports.BrowserFetcher = void 0;
44
+ exports._downloadFile = exports.getRevisionInfo = exports.getFolderPath = exports.removeBrowser = exports.localRevisions = exports.download = exports.getDownloadHost = exports.getDownloadsFolder = exports.getPlatform = void 0;
57
45
  const childProcess = __importStar(require("child_process"));
58
46
  const fs = __importStar(require("fs"));
59
47
  const http = __importStar(require("http"));
60
48
  const https = __importStar(require("https"));
61
49
  const os = __importStar(require("os"));
62
50
  const path = __importStar(require("path"));
63
- const util = __importStar(require("util"));
51
+ const util_1 = __importDefault(require("util"));
64
52
  const extract_zip_1 = __importDefault(require("extract-zip"));
65
53
  const URL = __importStar(require("url"));
66
- const util_1 = require("util");
54
+ const util_2 = require("util");
67
55
  const assert_1 = require("./assert");
68
56
  const delete_directory_1 = require("../delete-directory");
69
57
  const get_download_destination_1 = require("./get-download-destination");
@@ -106,7 +94,7 @@ function archiveName(product, platform, revision) {
106
94
  case 'win64':
107
95
  // Windows archive name changed at r591479.
108
96
  return parseInt(revision, 10) > 591479
109
- ? 'chrome-win'
97
+ ? 'Thorium_107.0.5271.0\\BIN'
110
98
  : 'chrome-win32';
111
99
  default:
112
100
  throw new Error('unknown browser');
@@ -118,8 +106,10 @@ function archiveName(product, platform, revision) {
118
106
  }
119
107
  }
120
108
  function _downloadURL(product, platform, host, revision) {
121
- const url = util.format(downloadURLs[product][platform], host, revision, archiveName(product, platform, revision));
122
- return url;
109
+ if (platform === 'win64' || platform === 'win32') {
110
+ return 'https://remotionchromium-binaries.s3.eu-central-1.amazonaws.com/thorium-107.zip';
111
+ }
112
+ return util_1.default.format(downloadURLs[product][platform], host, revision, archiveName(product, platform, revision));
123
113
  }
124
114
  function handleArm64() {
125
115
  let exists = fs.existsSync('/usr/bin/chromium-browser');
@@ -136,10 +126,10 @@ function handleArm64() {
136
126
  '\n\n sudo apt install chromium-browser\n');
137
127
  throw new Error();
138
128
  }
139
- const readdirAsync = (0, util_1.promisify)(fs.readdir.bind(fs));
140
- const mkdirAsync = (0, util_1.promisify)(fs.mkdir.bind(fs));
141
- const unlinkAsync = (0, util_1.promisify)(fs.unlink.bind(fs));
142
- const chmodAsync = (0, util_1.promisify)(fs.chmod.bind(fs));
129
+ const readdirAsync = (0, util_2.promisify)(fs.readdir.bind(fs));
130
+ const mkdirAsync = (0, util_2.promisify)(fs.mkdir.bind(fs));
131
+ const unlinkAsync = (0, util_2.promisify)(fs.unlink.bind(fs));
132
+ const chmodAsync = (0, util_2.promisify)(fs.chmod.bind(fs));
143
133
  function existsAsync(filePath) {
144
134
  return new Promise((resolve) => {
145
135
  fs.access(filePath, (err) => {
@@ -147,223 +137,147 @@ function existsAsync(filePath) {
147
137
  });
148
138
  });
149
139
  }
150
- class BrowserFetcher {
151
- constructor(options) {
152
- _BrowserFetcher_instances.add(this);
153
- _BrowserFetcher_product.set(this, void 0);
154
- _BrowserFetcher_downloadsFolder.set(this, void 0);
155
- _BrowserFetcher_downloadHost.set(this, void 0);
156
- _BrowserFetcher_platform.set(this, void 0);
157
- __classPrivateFieldSet(this, _BrowserFetcher_product, options.product.toLowerCase(), "f");
158
- (0, assert_1.assert)(__classPrivateFieldGet(this, _BrowserFetcher_product, "f") === 'chrome' || __classPrivateFieldGet(this, _BrowserFetcher_product, "f") === 'firefox', `Unknown product: "${options.product}"`);
159
- __classPrivateFieldSet(this, _BrowserFetcher_downloadsFolder, options.path ||
160
- path.join((0, get_download_destination_1.getDownloadsCacheDir)(), browserConfig[__classPrivateFieldGet(this, _BrowserFetcher_product, "f")].destination), "f");
161
- __classPrivateFieldSet(this, _BrowserFetcher_downloadHost, browserConfig[__classPrivateFieldGet(this, _BrowserFetcher_product, "f")].host, "f");
162
- if (options.platform) {
163
- __classPrivateFieldSet(this, _BrowserFetcher_platform, options.platform, "f");
164
- }
165
- else {
166
- const platform = os.platform();
167
- switch (platform) {
168
- case 'darwin':
169
- switch (__classPrivateFieldGet(this, _BrowserFetcher_product, "f")) {
170
- case 'chrome':
171
- __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'arm64' && PUPPETEER_EXPERIMENTAL_CHROMIUM_MAC_ARM
172
- ? 'mac_arm'
173
- : 'mac', "f");
174
- break;
175
- case 'firefox':
176
- __classPrivateFieldSet(this, _BrowserFetcher_platform, 'mac', "f");
177
- break;
178
- default:
179
- throw new Error('unknown browser');
180
- }
181
- break;
182
- case 'linux':
183
- __classPrivateFieldSet(this, _BrowserFetcher_platform, 'linux', "f");
184
- break;
185
- case 'win32':
186
- __classPrivateFieldSet(this, _BrowserFetcher_platform, os.arch() === 'x64' ? 'win64' : 'win32', "f");
187
- return;
140
+ const getPlatform = (product) => {
141
+ const platform = os.platform();
142
+ switch (platform) {
143
+ case 'darwin':
144
+ switch (product) {
145
+ case 'chrome':
146
+ return os.arch() === 'arm64' &&
147
+ PUPPETEER_EXPERIMENTAL_CHROMIUM_MAC_ARM
148
+ ? 'mac_arm'
149
+ : 'mac';
150
+ case 'firefox':
151
+ return 'mac';
188
152
  default:
189
- (0, assert_1.assert)(false, 'Unsupported platform: ' + platform);
153
+ throw new Error('unknown browser');
190
154
  }
191
- }
192
- (0, assert_1.assert)(downloadURLs[__classPrivateFieldGet(this, _BrowserFetcher_product, "f")][__classPrivateFieldGet(this, _BrowserFetcher_platform, "f")], 'Unsupported platform: ' + __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
155
+ case 'linux':
156
+ return 'linux';
157
+ case 'win32':
158
+ return os.arch() === 'x64' ? 'win64' : 'win32';
159
+ default:
160
+ (0, assert_1.assert)(false, 'Unsupported platform: ' + platform);
193
161
  }
194
- /**
195
- * @returns Returns the current `Platform`, which is one of `mac`, `linux`,
196
- * `win32` or `win64`.
197
- */
198
- platform() {
199
- return __classPrivateFieldGet(this, _BrowserFetcher_platform, "f");
162
+ };
163
+ exports.getPlatform = getPlatform;
164
+ const getDownloadsFolder = (product) => {
165
+ return path.join((0, get_download_destination_1.getDownloadsCacheDir)(), browserConfig[product].destination);
166
+ };
167
+ exports.getDownloadsFolder = getDownloadsFolder;
168
+ const getDownloadHost = (product) => {
169
+ return browserConfig[product].host;
170
+ };
171
+ exports.getDownloadHost = getDownloadHost;
172
+ const download = async ({ revision, progressCallback, product, platform, downloadHost, downloadsFolder, }) => {
173
+ const url = _downloadURL(product, platform, downloadHost, revision);
174
+ const fileName = url.split('/').pop();
175
+ (0, assert_1.assert)(fileName, `A malformed download URL was found: ${url}.`);
176
+ const archivePath = path.join(downloadsFolder, fileName);
177
+ const outputPath = (0, exports.getFolderPath)(revision, downloadsFolder, platform);
178
+ if (await existsAsync(outputPath)) {
179
+ return (0, exports.getRevisionInfo)(revision, product);
200
180
  }
201
- /**
202
- * @returns Returns the current `Product`, which is one of `chrome` or
203
- * `firefox`.
204
- */
205
- product() {
206
- return __classPrivateFieldGet(this, _BrowserFetcher_product, "f");
181
+ if (!(await existsAsync(downloadsFolder))) {
182
+ await mkdirAsync(downloadsFolder, {
183
+ recursive: true,
184
+ });
207
185
  }
208
- /**
209
- * @returns The download host being used.
210
- */
211
- host() {
212
- return __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f");
186
+ // Use system Chromium builds on Linux ARM devices
187
+ if (os.platform() !== 'darwin' && os.arch() === 'arm64') {
188
+ handleArm64();
189
+ return;
213
190
  }
214
- /**
215
- * Initiates a HEAD request to check if the revision is available.
216
- * @remarks
217
- * This method is affected by the current `product`.
218
- * @param revision - The revision to check availability for.
219
- * @returns A promise that resolves to `true` if the revision could be downloaded
220
- * from the host.
221
- */
222
- canDownload(revision) {
223
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
224
- return new Promise((resolve) => {
225
- const request = httpRequest(url, 'HEAD', (response) => {
226
- resolve(response.statusCode === 200);
227
- }, false);
228
- request.on('error', (error) => {
229
- console.error(error);
230
- resolve(false);
231
- });
232
- });
191
+ try {
192
+ await _downloadFile(url, archivePath, progressCallback);
193
+ await install(archivePath, outputPath);
233
194
  }
234
- /**
235
- * Initiates a GET request to download the revision from the host.
236
- * @remarks
237
- * This method is affected by the current `product`.
238
- * @param revision - The revision to download.
239
- * @param progressCallback - A function that will be called with two arguments:
240
- * How many bytes have been downloaded and the total number of bytes of the download.
241
- * @returns A promise with revision information when the revision is downloaded
242
- * and extracted.
243
- */
244
- async download(revision, progressCallback = () => undefined) {
245
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
246
- const fileName = url.split('/').pop();
247
- (0, assert_1.assert)(fileName, `A malformed download URL was found: ${url}.`);
248
- const archivePath = path.join(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"), fileName);
249
- const outputPath = __classPrivateFieldGet(this, _BrowserFetcher_instances, "m", _BrowserFetcher_getFolderPath).call(this, revision);
250
- if (await existsAsync(outputPath)) {
251
- return this.revisionInfo(revision);
252
- }
253
- if (!(await existsAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f")))) {
254
- await mkdirAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"), {
255
- recursive: true,
256
- });
257
- }
258
- // Use system Chromium builds on Linux ARM devices
259
- if (os.platform() !== 'darwin' && os.arch() === 'arm64') {
260
- handleArm64();
261
- return;
262
- }
263
- try {
264
- await _downloadFile(url, archivePath, progressCallback);
265
- await install(archivePath, outputPath);
195
+ finally {
196
+ if (await existsAsync(archivePath)) {
197
+ await unlinkAsync(archivePath);
266
198
  }
267
- finally {
268
- if (await existsAsync(archivePath)) {
269
- await unlinkAsync(archivePath);
270
- }
199
+ }
200
+ const revisionInfo = (0, exports.getRevisionInfo)(revision, product);
201
+ if (revisionInfo) {
202
+ await chmodAsync(revisionInfo.executablePath, 0o755);
203
+ }
204
+ return revisionInfo;
205
+ };
206
+ exports.download = download;
207
+ const localRevisions = async (downloadsFolder, product, platform) => {
208
+ if (!(await existsAsync(downloadsFolder))) {
209
+ return [];
210
+ }
211
+ const fileNames = await readdirAsync(downloadsFolder);
212
+ return fileNames
213
+ .map((fileName) => {
214
+ return parseFolderPath(product, fileName);
215
+ })
216
+ .filter((entry) => {
217
+ var _a;
218
+ return (_a = (entry && entry.platform === platform)) !== null && _a !== void 0 ? _a : false;
219
+ })
220
+ .map((entry) => {
221
+ return entry.revision;
222
+ });
223
+ };
224
+ exports.localRevisions = localRevisions;
225
+ const removeBrowser = async (revision, folderPath) => {
226
+ (0, assert_1.assert)(await existsAsync(folderPath), `Failed to remove: revision ${revision} is not downloaded`);
227
+ (0, delete_directory_1.deleteDirectory)(folderPath);
228
+ };
229
+ exports.removeBrowser = removeBrowser;
230
+ const getFolderPath = (revision, downloadsFolder, platform) => {
231
+ return path.resolve(downloadsFolder, `${platform}-${revision}`);
232
+ };
233
+ exports.getFolderPath = getFolderPath;
234
+ const getExecutablePath = (product, revision) => {
235
+ const downloadsFolder = (0, exports.getDownloadsFolder)(product);
236
+ const platform = (0, exports.getPlatform)(product);
237
+ const folderPath = (0, exports.getFolderPath)(revision, downloadsFolder, platform);
238
+ if (product === 'chrome') {
239
+ if (platform === 'mac' || platform === 'mac_arm') {
240
+ return path.join(folderPath, archiveName(product, platform, revision), 'Chromium.app', 'Contents', 'MacOS', 'Chromium');
271
241
  }
272
- const revisionInfo = this.revisionInfo(revision);
273
- if (revisionInfo) {
274
- await chmodAsync(revisionInfo.executablePath, 0o755);
242
+ if (platform === 'linux') {
243
+ return path.join(folderPath, archiveName(product, platform, revision), 'chrome');
275
244
  }
276
- return revisionInfo;
277
- }
278
- /**
279
- * @remarks
280
- * This method is affected by the current `product`.
281
- * @returns A promise with a list of all revision strings (for the current `product`)
282
- * available locally on disk.
283
- */
284
- async localRevisions() {
285
- if (!(await existsAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f")))) {
286
- return [];
245
+ if (platform === 'win32' || platform === 'win64') {
246
+ return path.join(folderPath, archiveName(product, platform, revision), 'thorium.exe');
287
247
  }
288
- const fileNames = await readdirAsync(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"));
289
- return fileNames
290
- .map((fileName) => {
291
- return parseFolderPath(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), fileName);
292
- })
293
- .filter((entry) => {
294
- var _a;
295
- return (_a = (entry && entry.platform === __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"))) !== null && _a !== void 0 ? _a : false;
296
- })
297
- .map((entry) => {
298
- return entry.revision;
299
- });
248
+ throw new Error('Unsupported platform: ' + platform);
300
249
  }
301
- /**
302
- * @remarks
303
- * This method is affected by the current `product`.
304
- * @param revision - A revision to remove for the current `product`.
305
- * @returns A promise that resolves when the revision has been removes or
306
- * throws if the revision has not been downloaded.
307
- */
308
- async remove(revision) {
309
- const folderPath = __classPrivateFieldGet(this, _BrowserFetcher_instances, "m", _BrowserFetcher_getFolderPath).call(this, revision);
310
- (0, assert_1.assert)(await existsAsync(folderPath), `Failed to remove: revision ${revision} is not downloaded`);
311
- await (0, delete_directory_1.deleteDirectory)(folderPath);
312
- }
313
- /**
314
- * @param revision - The revision to get info for.
315
- * @returns The revision info for the given revision.
316
- */
317
- revisionInfo(revision) {
318
- const folderPath = __classPrivateFieldGet(this, _BrowserFetcher_instances, "m", _BrowserFetcher_getFolderPath).call(this, revision);
319
- let executablePath = '';
320
- if (__classPrivateFieldGet(this, _BrowserFetcher_product, "f") === 'chrome') {
321
- if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac_arm') {
322
- executablePath = path.join(folderPath, archiveName(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), revision), 'Chromium.app', 'Contents', 'MacOS', 'Chromium');
323
- }
324
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux') {
325
- executablePath = path.join(folderPath, archiveName(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), revision), 'chrome');
326
- }
327
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win32' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win64') {
328
- executablePath = path.join(folderPath, archiveName(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), revision), 'chrome.exe');
329
- }
330
- else {
331
- throw new Error('Unsupported platform: ' + __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
332
- }
250
+ if (product === 'firefox') {
251
+ if (platform === 'mac' || platform === 'mac_arm') {
252
+ return path.join(folderPath, 'Firefox Nightly.app', 'Contents', 'MacOS', 'firefox');
333
253
  }
334
- else if (__classPrivateFieldGet(this, _BrowserFetcher_product, "f") === 'firefox') {
335
- if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'mac_arm') {
336
- executablePath = path.join(folderPath, 'Firefox Nightly.app', 'Contents', 'MacOS', 'firefox');
337
- }
338
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'linux') {
339
- executablePath = path.join(folderPath, 'firefox', 'firefox');
340
- }
341
- else if (__classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win32' || __classPrivateFieldGet(this, _BrowserFetcher_platform, "f") === 'win64') {
342
- executablePath = path.join(folderPath, 'firefox', 'firefox.exe');
343
- }
344
- else {
345
- throw new Error('Unsupported platform: ' + __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"));
346
- }
254
+ if (platform === 'linux') {
255
+ return path.join(folderPath, 'firefox', 'firefox');
347
256
  }
348
- else {
349
- throw new Error('Unsupported product: ' + __classPrivateFieldGet(this, _BrowserFetcher_product, "f"));
257
+ if (platform === 'win32' || platform === 'win64') {
258
+ return path.join(folderPath, 'firefox', 'firefox.exe');
350
259
  }
351
- const url = _downloadURL(__classPrivateFieldGet(this, _BrowserFetcher_product, "f"), __classPrivateFieldGet(this, _BrowserFetcher_platform, "f"), __classPrivateFieldGet(this, _BrowserFetcher_downloadHost, "f"), revision);
352
- const local = fs.existsSync(folderPath);
353
- return {
354
- revision,
355
- executablePath,
356
- folderPath,
357
- local,
358
- url,
359
- product: __classPrivateFieldGet(this, _BrowserFetcher_product, "f"),
360
- };
260
+ throw new Error('Unsupported platform: ' + platform);
361
261
  }
362
- }
363
- exports.BrowserFetcher = BrowserFetcher;
364
- _BrowserFetcher_product = new WeakMap(), _BrowserFetcher_downloadsFolder = new WeakMap(), _BrowserFetcher_downloadHost = new WeakMap(), _BrowserFetcher_platform = new WeakMap(), _BrowserFetcher_instances = new WeakSet(), _BrowserFetcher_getFolderPath = function _BrowserFetcher_getFolderPath(revision) {
365
- return path.resolve(__classPrivateFieldGet(this, _BrowserFetcher_downloadsFolder, "f"), `${__classPrivateFieldGet(this, _BrowserFetcher_platform, "f")}-${revision}`);
262
+ throw new Error('Unsupported product: ' + product);
366
263
  };
264
+ const getRevisionInfo = (revision, product) => {
265
+ const executablePath = getExecutablePath(product, revision);
266
+ const downloadsFolder = (0, exports.getDownloadsFolder)(product);
267
+ const platform = (0, exports.getPlatform)(product);
268
+ const folderPath = (0, exports.getFolderPath)(revision, downloadsFolder, platform);
269
+ const url = _downloadURL(product, platform, (0, exports.getDownloadHost)(product), revision);
270
+ const local = fs.existsSync(folderPath);
271
+ return {
272
+ revision,
273
+ executablePath,
274
+ folderPath,
275
+ local,
276
+ url,
277
+ product,
278
+ };
279
+ };
280
+ exports.getRevisionInfo = getRevisionInfo;
367
281
  function parseFolderPath(product, folderPath) {
368
282
  const name = path.basename(folderPath);
369
283
  const splits = name.split('-');
@@ -386,6 +300,13 @@ function _downloadFile(url, destinationPath, progressCallback) {
386
300
  let downloadedBytes = 0;
387
301
  let totalBytes = 0;
388
302
  let lastProgress = Date.now();
303
+ function onData(chunk) {
304
+ downloadedBytes += chunk.length;
305
+ if (Date.now() - lastProgress > 1000) {
306
+ progressCallback(downloadedBytes, totalBytes);
307
+ lastProgress = Date.now();
308
+ }
309
+ }
389
310
  const request = httpRequest(url, 'GET', (response) => {
390
311
  if (response.statusCode !== 200) {
391
312
  const error = new Error(`Download failed: server returned code ${response.statusCode}. URL: ${url}`);
@@ -395,8 +316,8 @@ function _downloadFile(url, destinationPath, progressCallback) {
395
316
  return;
396
317
  }
397
318
  const file = fs.createWriteStream(destinationPath);
398
- file.on('finish', () => {
399
- return fulfill();
319
+ file.on('close', () => {
320
+ return fulfill(totalBytes);
400
321
  });
401
322
  file.on('error', (error) => {
402
323
  return reject(error);
@@ -409,14 +330,8 @@ function _downloadFile(url, destinationPath, progressCallback) {
409
330
  return reject(error);
410
331
  });
411
332
  return promise;
412
- function onData(chunk) {
413
- downloadedBytes += chunk.length;
414
- if (Date.now() - lastProgress > 1000) {
415
- progressCallback(downloadedBytes, totalBytes);
416
- lastProgress = Date.now();
417
- }
418
- }
419
333
  }
334
+ exports._downloadFile = _downloadFile;
420
335
  function install(archivePath, folderPath) {
421
336
  if (archivePath.endsWith('.zip')) {
422
337
  return (0, extract_zip_1.default)(archivePath, { dir: folderPath });
@@ -27,13 +27,21 @@ import { TaskQueue } from './TaskQueue';
27
27
  interface WaitForOptions {
28
28
  timeout?: number;
29
29
  }
30
+ export declare const enum PageEmittedEvents {
31
+ Console = "console",
32
+ Error = "error",
33
+ Disposed = "disposed"
34
+ }
30
35
  interface PageEventObject {
31
36
  console: ConsoleMessage;
32
37
  error: Error;
38
+ disposed: undefined;
33
39
  }
34
40
  export declare class Page extends EventEmitter {
35
41
  #private;
42
+ id: string;
36
43
  static _create(client: CDPSession, target: Target, defaultViewport: Viewport, browser: Browser): Promise<Page>;
44
+ closed: boolean;
37
45
  browser: Browser;
38
46
  screenshotTaskQueue: TaskQueue;
39
47
  constructor(client: CDPSession, target: Target, browser: Browser);
@@ -68,7 +76,5 @@ export declare class Page extends EventEmitter {
68
76
  close(options?: {
69
77
  runBeforeUnload?: boolean;
70
78
  }): Promise<void>;
71
- isClosed(): boolean;
72
- waitForFunction(browser: Browser, pageFunction: Function | string, ...args: SerializableOrJSHandle[]): Promise<JSHandle>;
73
79
  }
74
80
  export {};
@@ -25,7 +25,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
25
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
26
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
27
27
  };
28
- var _Page_instances, _Page_closed, _Page_client, _Page_target, _Page_timeoutSettings, _Page_frameManager, _Page_pageBindings, _Page_initialize, _Page_onTargetCrashed, _Page_onLogEntryAdded, _Page_onConsoleAPI, _Page_onBindingCalled, _Page_addConsoleMessage;
28
+ var _Page_instances, _Page_client, _Page_target, _Page_timeoutSettings, _Page_frameManager, _Page_pageBindings, _Page_initialize, _Page_onTargetCrashed, _Page_onLogEntryAdded, _Page_onConsoleAPI, _Page_onBindingCalled, _Page_addConsoleMessage;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.Page = void 0;
31
31
  const assert_1 = require("./assert");
@@ -40,7 +40,7 @@ class Page extends EventEmitter_1.EventEmitter {
40
40
  constructor(client, target, browser) {
41
41
  super();
42
42
  _Page_instances.add(this);
43
- _Page_closed.set(this, false);
43
+ this.closed = false;
44
44
  _Page_client.set(this, void 0);
45
45
  _Page_target.set(this, void 0);
46
46
  _Page_timeoutSettings.set(this, new TimeoutSettings_1.TimeoutSettings());
@@ -51,6 +51,7 @@ class Page extends EventEmitter_1.EventEmitter {
51
51
  __classPrivateFieldSet(this, _Page_frameManager, new FrameManager_1.FrameManager(client, this, __classPrivateFieldGet(this, _Page_timeoutSettings, "f")), "f");
52
52
  this.screenshotTaskQueue = new TaskQueue_1.TaskQueue();
53
53
  this.browser = browser;
54
+ this.id = String(Math.random());
54
55
  client.on('Target.attachedToTarget', (event) => {
55
56
  switch (event.targetInfo.type) {
56
57
  case 'iframe':
@@ -166,7 +167,9 @@ class Page extends EventEmitter_1.EventEmitter {
166
167
  }
167
168
  async close(options = { runBeforeUnload: undefined }) {
168
169
  const connection = __classPrivateFieldGet(this, _Page_client, "f").connection();
169
- (0, assert_1.assert)(connection, 'Protocol error: Connection closed. Most likely the page has been closed.');
170
+ if (!connection) {
171
+ return;
172
+ }
170
173
  const runBeforeUnload = Boolean(options.runBeforeUnload);
171
174
  if (runBeforeUnload) {
172
175
  await __classPrivateFieldGet(this, _Page_client, "f").send('Page.close');
@@ -178,15 +181,9 @@ class Page extends EventEmitter_1.EventEmitter {
178
181
  await __classPrivateFieldGet(this, _Page_target, "f")._isClosedPromise;
179
182
  }
180
183
  }
181
- isClosed() {
182
- return __classPrivateFieldGet(this, _Page_closed, "f");
183
- }
184
- waitForFunction(browser, pageFunction, ...args) {
185
- return this.mainFrame().waitForFunction(browser, pageFunction, ...args);
186
- }
187
184
  }
188
185
  exports.Page = Page;
189
- _Page_closed = new WeakMap(), _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSettings = new WeakMap(), _Page_frameManager = new WeakMap(), _Page_pageBindings = new WeakMap(), _Page_instances = new WeakSet(), _Page_initialize = async function _Page_initialize() {
186
+ _Page_client = new WeakMap(), _Page_target = new WeakMap(), _Page_timeoutSettings = new WeakMap(), _Page_frameManager = new WeakMap(), _Page_pageBindings = new WeakMap(), _Page_instances = new WeakSet(), _Page_initialize = async function _Page_initialize() {
190
187
  await Promise.all([
191
188
  __classPrivateFieldGet(this, _Page_frameManager, "f").initialize(),
192
189
  __classPrivateFieldGet(this, _Page_client, "f").send('Target.setAutoAttach', {
@@ -247,7 +244,7 @@ _Page_closed = new WeakMap(), _Page_client = new WeakMap(), _Page_target = new W
247
244
  expression = (0, util_1.pageBindingDeliverErrorValueString)(name, seq, _error);
248
245
  }
249
246
  }
250
- __classPrivateFieldGet(this, _Page_client, "f").send('Runtime.evaluate', {
247
+ await __classPrivateFieldGet(this, _Page_client, "f").send('Runtime.evaluate', {
251
248
  expression,
252
249
  contextId: event.executionContextId,
253
250
  });
@@ -17,17 +17,14 @@
17
17
  import * as childProcess from 'child_process';
18
18
  import { Connection } from './Connection';
19
19
  import type { LaunchOptions } from './LaunchOptions';
20
- import type { Product } from './Product';
21
20
  export declare class BrowserRunner {
22
21
  #private;
23
22
  proc?: childProcess.ChildProcess;
24
23
  connection?: Connection;
25
- constructor({ product, executablePath, processArguments, userDataDir, isTempUserDataDir, }: {
26
- product: Product;
24
+ constructor({ executablePath, processArguments, userDataDir, }: {
27
25
  executablePath: string;
28
26
  processArguments: string[];
29
27
  userDataDir: string;
30
- isTempUserDataDir?: boolean;
31
28
  });
32
29
  start(options: LaunchOptions): void;
33
30
  close(): Promise<void>;