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

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 (594) hide show
  1. package/LICENSE.md +8 -8
  2. package/README.md +9 -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 +64 -15
  13. package/dist/assets/download-file.d.ts +9 -6
  14. package/dist/assets/download-file.js +67 -9
  15. package/dist/assets/download-map.d.ts +5 -26
  16. package/dist/assets/download-map.js +15 -16
  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 -2
  22. package/dist/assets/get-audio-channels.js +5 -8
  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 +1 -1
  26. package/dist/assets/read-file.js +4 -6
  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 +2 -2
  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 +28 -0
  38. package/dist/audio-codec.js +83 -0
  39. package/dist/browser/Browser.d.ts +8 -6
  40. package/dist/browser/Browser.js +48 -45
  41. package/dist/browser/BrowserConnector.d.ts +0 -0
  42. package/dist/browser/BrowserConnector.js +0 -0
  43. package/dist/browser/BrowserFetcher.d.ts +15 -63
  44. package/dist/browser/BrowserFetcher.js +151 -237
  45. package/dist/browser/BrowserPage.d.ts +12 -6
  46. package/dist/browser/BrowserPage.js +8 -11
  47. package/dist/browser/BrowserRunner.d.ts +2 -5
  48. package/dist/browser/BrowserRunner.js +42 -92
  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 +5 -4
  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 +2 -6
  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 +1 -5
  72. package/dist/browser/LaunchOptions.js +0 -0
  73. package/dist/browser/Launcher.d.ts +9 -3
  74. package/dist/browser/Launcher.js +17 -387
  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 +5 -5
  83. package/dist/browser/Product.d.ts +0 -0
  84. package/dist/browser/Product.js +0 -0
  85. package/dist/browser/PuppeteerNode.d.ts +2 -5
  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 +2 -2
  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 +5 -1
  102. package/dist/browser/devtools-commands.js +0 -0
  103. package/dist/browser/devtools-types.d.ts +82 -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 +8 -8
  107. package/dist/browser/is-target-closed-err.d.ts +1 -0
  108. package/dist/browser/is-target-closed-err.js +9 -0
  109. package/dist/browser/mitt/index.d.ts +0 -0
  110. package/dist/browser/mitt/index.js +0 -0
  111. package/dist/browser/node.d.ts +0 -0
  112. package/dist/browser/node.js +0 -0
  113. package/dist/browser/revisions.d.ts +0 -1
  114. package/dist/browser/revisions.js +0 -1
  115. package/dist/browser/util.d.ts +2 -2
  116. package/dist/browser/util.js +0 -0
  117. package/dist/browser-executable.d.ts +0 -0
  118. package/dist/browser-executable.js +0 -0
  119. package/dist/browser-log.d.ts +0 -0
  120. package/dist/browser-log.js +0 -0
  121. package/dist/browser.d.ts +0 -0
  122. package/dist/browser.js +0 -0
  123. package/dist/calculate-ffmpeg-filters.d.ts +2 -1
  124. package/dist/calculate-ffmpeg-filters.js +1 -0
  125. package/dist/calculate-sar-dar-pixels.d.ts +0 -0
  126. package/dist/calculate-sar-dar-pixels.js +0 -0
  127. package/dist/call-ffmpeg.d.ts +14 -0
  128. package/dist/call-ffmpeg.js +42 -0
  129. package/dist/can-use-parallel-encoding.d.ts +0 -0
  130. package/dist/can-use-parallel-encoding.js +0 -0
  131. package/dist/chalk/index.d.ts +54 -0
  132. package/dist/chalk/index.js +135 -0
  133. package/dist/chalk/is-color-supported.d.ts +1 -0
  134. package/dist/chalk/is-color-supported.js +37 -0
  135. package/dist/check-apple-silicon.d.ts +1 -0
  136. package/dist/check-apple-silicon.js +12 -0
  137. package/dist/chunk.d.ts +0 -0
  138. package/dist/chunk.js +0 -0
  139. package/dist/client.d.ts +204 -0
  140. package/dist/client.js +49 -0
  141. package/dist/codec-supports-media.d.ts +2 -0
  142. package/dist/codec-supports-media.js +23 -1
  143. package/dist/codec.d.ts +0 -0
  144. package/dist/codec.js +0 -0
  145. package/dist/combine-videos.d.ts +6 -2
  146. package/dist/combine-videos.js +18 -18
  147. package/dist/compositor/compose.d.ts +17 -0
  148. package/dist/compositor/compose.js +71 -0
  149. package/dist/compositor/compositor.d.ts +11 -0
  150. package/dist/compositor/compositor.js +207 -0
  151. package/dist/compositor/get-executable-path.d.ts +1 -0
  152. package/dist/compositor/get-executable-path.js +57 -0
  153. package/dist/compositor/make-nonce.d.ts +1 -0
  154. package/dist/compositor/make-nonce.js +8 -0
  155. package/dist/compositor/payloads.d.ts +68 -0
  156. package/dist/compositor/payloads.js +2 -0
  157. package/dist/compress-assets.d.ts +0 -0
  158. package/dist/compress-assets.js +0 -0
  159. package/dist/convert-number-of-gif-loops-to-ffmpeg.d.ts +0 -0
  160. package/dist/convert-number-of-gif-loops-to-ffmpeg.js +0 -0
  161. package/dist/convert-to-positive-frame-index.d.ts +4 -0
  162. package/dist/convert-to-positive-frame-index.js +8 -0
  163. package/dist/create-ffmpeg-complex-filter.d.ts +6 -5
  164. package/dist/create-ffmpeg-complex-filter.js +6 -4
  165. package/dist/create-ffmpeg-merge-filter.d.ts +5 -1
  166. package/dist/create-ffmpeg-merge-filter.js +21 -13
  167. package/dist/create-silent-audio.d.ts +1 -3
  168. package/dist/create-silent-audio.js +3 -6
  169. package/dist/crf.d.ts +5 -1
  170. package/dist/crf.js +41 -8
  171. package/dist/cycle-browser-tabs.d.ts +2 -5
  172. package/dist/cycle-browser-tabs.js +5 -5
  173. package/dist/delay-render-embedded-stack.d.ts +0 -0
  174. package/dist/delay-render-embedded-stack.js +0 -0
  175. package/dist/delete-directory.d.ts +1 -1
  176. package/dist/delete-directory.js +43 -17
  177. package/dist/determine-resize-params.d.ts +1 -0
  178. package/dist/determine-resize-params.js +10 -0
  179. package/dist/determine-vcodec-ffmpeg-flags.d.ts +2 -0
  180. package/dist/determine-vcodec-ffmpeg-flags.js +13 -0
  181. package/dist/does-have-m2-bug.d.ts +3 -0
  182. package/dist/does-have-m2-bug.js +12 -0
  183. package/dist/ensure-ffmpeg.d.ts +18 -0
  184. package/dist/ensure-ffmpeg.js +58 -0
  185. package/dist/ensure-frames-in-order.d.ts +0 -0
  186. package/dist/ensure-frames-in-order.js +0 -0
  187. package/dist/ensure-output-directory.d.ts +0 -0
  188. package/dist/ensure-output-directory.js +5 -5
  189. package/dist/ensure-presentation-timestamp.d.ts +14 -1
  190. package/dist/ensure-presentation-timestamp.js +36 -17
  191. package/dist/error-handling/handle-javascript-exception.d.ts +0 -0
  192. package/dist/error-handling/handle-javascript-exception.js +10 -0
  193. package/dist/error-handling/symbolicate-error.d.ts +0 -0
  194. package/dist/error-handling/symbolicate-error.js +2 -1
  195. package/dist/error-handling/symbolicateable-error.d.ts +0 -0
  196. package/dist/error-handling/symbolicateable-error.js +0 -0
  197. package/dist/extract-frame-from-video.d.ts +1 -0
  198. package/dist/extract-frame-from-video.js +47 -110
  199. package/dist/ffmpeg-executable.d.ts +0 -0
  200. package/dist/ffmpeg-executable.js +0 -0
  201. package/dist/ffmpeg-filter-file.d.ts +6 -1
  202. package/dist/ffmpeg-filter-file.js +40 -8
  203. package/dist/ffmpeg-flags.d.ts +20 -2
  204. package/dist/ffmpeg-flags.js +205 -9
  205. package/dist/ffmpeg-override.d.ts +4 -0
  206. package/dist/ffmpeg-override.js +2 -0
  207. package/dist/file-extensions.d.ts +14 -0
  208. package/dist/file-extensions.js +76 -0
  209. package/dist/find-closest-package-json.d.ts +2 -0
  210. package/dist/find-closest-package-json.js +31 -0
  211. package/dist/frame-range.d.ts +0 -0
  212. package/dist/frame-range.js +0 -0
  213. package/dist/frame-to-ffmpeg-timestamp.d.ts +0 -0
  214. package/dist/frame-to-ffmpeg-timestamp.js +0 -0
  215. package/dist/get-browser-instance.d.ts +2 -2
  216. package/dist/get-browser-instance.js +1 -1
  217. package/dist/get-can-extract-frames-fast.d.ts +14 -0
  218. package/dist/get-can-extract-frames-fast.js +71 -0
  219. package/dist/get-codec-name.d.ts +0 -0
  220. package/dist/get-codec-name.js +0 -0
  221. package/dist/get-compositions.d.ts +14 -8
  222. package/dist/get-compositions.js +25 -7
  223. package/dist/get-concurrency.d.ts +1 -1
  224. package/dist/get-concurrency.js +11 -4
  225. package/dist/get-duration-from-frame-range.d.ts +0 -0
  226. package/dist/get-duration-from-frame-range.js +0 -0
  227. package/dist/get-extension-from-codec.d.ts +5 -1
  228. package/dist/get-extension-from-codec.js +56 -32
  229. package/dist/get-extension-of-filename.d.ts +0 -0
  230. package/dist/get-extension-of-filename.js +5 -1
  231. package/dist/get-frame-of-video-slow.d.ts +17 -0
  232. package/dist/get-frame-of-video-slow.js +72 -0
  233. package/dist/get-frame-padded-index.d.ts +2 -1
  234. package/dist/get-frame-padded-index.js +3 -2
  235. package/dist/get-frame-to-render.d.ts +0 -0
  236. package/dist/get-frame-to-render.js +1 -1
  237. package/dist/get-local-browser-executable.d.ts +0 -0
  238. package/dist/get-local-browser-executable.js +7 -17
  239. package/dist/get-port.d.ts +4 -1
  240. package/dist/get-port.js +8 -8
  241. package/dist/get-prores-profile-name.d.ts +0 -0
  242. package/dist/get-prores-profile-name.js +0 -0
  243. package/dist/get-video-info.d.ts +6 -1
  244. package/dist/get-video-info.js +19 -9
  245. package/dist/get-video-threads-flag.d.ts +0 -0
  246. package/dist/get-video-threads-flag.js +3 -3
  247. package/dist/guess-extension-for-media.d.ts +3 -1
  248. package/dist/guess-extension-for-media.js +5 -8
  249. package/dist/image-format.d.ts +12 -6
  250. package/dist/image-format.js +19 -13
  251. package/dist/index.d.ts +284 -51
  252. package/dist/index.js +50 -36
  253. package/dist/is-audio-codec.d.ts +0 -0
  254. package/dist/is-audio-codec.js +0 -0
  255. package/dist/is-beyond-last-frame.d.ts +0 -0
  256. package/dist/is-beyond-last-frame.js +0 -0
  257. package/dist/is-serve-url.d.ts +0 -0
  258. package/dist/is-serve-url.js +0 -0
  259. package/dist/jpeg-quality.d.ts +1 -0
  260. package/dist/jpeg-quality.js +21 -0
  261. package/dist/last-frame-from-video-cache.d.ts +1 -0
  262. package/dist/last-frame-from-video-cache.js +0 -0
  263. package/dist/legacy-webpack-config.d.ts +0 -0
  264. package/dist/legacy-webpack-config.js +0 -0
  265. package/dist/locks.d.ts +7 -0
  266. package/dist/locks.js +44 -0
  267. package/dist/log-level.d.ts +0 -0
  268. package/dist/log-level.js +0 -0
  269. package/dist/logger.d.ts +22 -0
  270. package/dist/logger.js +61 -0
  271. package/dist/make-cancel-signal.d.ts +11 -0
  272. package/dist/make-cancel-signal.js +24 -1
  273. package/dist/merge-audio-track.d.ts +3 -3
  274. package/dist/merge-audio-track.js +40 -34
  275. package/dist/mime-db.d.ts +0 -0
  276. package/dist/mime-db.js +0 -0
  277. package/dist/mime-types.d.ts +1 -0
  278. package/dist/mime-types.js +8 -3
  279. package/dist/normalize-serve-url.d.ts +0 -0
  280. package/dist/normalize-serve-url.js +0 -0
  281. package/dist/offthread-video-server.d.ts +12 -8
  282. package/dist/offthread-video-server.js +67 -47
  283. package/dist/open-browser.d.ts +8 -2
  284. package/dist/open-browser.js +16 -18
  285. package/dist/options/audio-bitrate.d.ts +2 -0
  286. package/dist/options/audio-bitrate.js +11 -0
  287. package/dist/options/crf.d.ts +2 -0
  288. package/dist/options/crf.js +11 -0
  289. package/dist/options/enforce-audio.d.ts +2 -0
  290. package/dist/options/enforce-audio.js +11 -0
  291. package/dist/options/jpeg-quality.d.ts +2 -0
  292. package/dist/options/jpeg-quality.js +11 -0
  293. package/dist/options/mute.d.ts +2 -0
  294. package/dist/options/mute.js +11 -0
  295. package/dist/options/option.d.ts +8 -0
  296. package/dist/options/option.js +2 -0
  297. package/dist/options/scale.d.ts +2 -0
  298. package/dist/options/scale.js +11 -0
  299. package/dist/options/video-bitrate.d.ts +2 -0
  300. package/dist/options/video-bitrate.js +11 -0
  301. package/dist/options/video-codec.d.ts +2 -0
  302. package/dist/options/video-codec.js +11 -0
  303. package/dist/overwrite.d.ts +0 -0
  304. package/dist/overwrite.js +0 -0
  305. package/dist/p-limit.d.ts +0 -0
  306. package/dist/p-limit.js +0 -0
  307. package/dist/parse-browser-error-stack.d.ts +0 -0
  308. package/dist/parse-browser-error-stack.js +0 -0
  309. package/dist/parse-ffmpeg-progress.d.ts +0 -0
  310. package/dist/parse-ffmpeg-progress.js +0 -0
  311. package/dist/perf.d.ts +1 -1
  312. package/dist/perf.js +9 -7
  313. package/dist/pixel-format.d.ts +1 -1
  314. package/dist/pixel-format.js +3 -0
  315. package/dist/pool.d.ts +0 -0
  316. package/dist/pool.js +0 -0
  317. package/dist/prepare-server.d.ts +8 -5
  318. package/dist/prepare-server.js +22 -13
  319. package/dist/preprocess-audio-track.d.ts +6 -4
  320. package/dist/preprocess-audio-track.js +7 -8
  321. package/dist/prespawn-ffmpeg.d.ts +10 -9
  322. package/dist/prespawn-ffmpeg.js +51 -28
  323. package/dist/prestitcher-memory-usage.d.ts +0 -4
  324. package/dist/prestitcher-memory-usage.js +4 -5
  325. package/dist/prores-profile.d.ts +5 -3
  326. package/dist/prores-profile.js +8 -8
  327. package/dist/provide-screenshot.d.ts +8 -4
  328. package/dist/provide-screenshot.js +5 -2
  329. package/dist/puppeteer-evaluate.d.ts +0 -0
  330. package/dist/puppeteer-evaluate.js +20 -12
  331. package/dist/puppeteer-screenshot.d.ts +12 -2
  332. package/dist/puppeteer-screenshot.js +19 -45
  333. package/dist/quality.d.ts +0 -0
  334. package/dist/quality.js +0 -0
  335. package/dist/redirect-status-codes.d.ts +1 -0
  336. package/dist/redirect-status-codes.js +6 -0
  337. package/dist/render-frames.d.ts +26 -22
  338. package/dist/render-frames.js +204 -109
  339. package/dist/render-media.d.ts +52 -19
  340. package/dist/render-media.js +162 -55
  341. package/dist/render-still.d.ts +26 -14
  342. package/dist/render-still.js +97 -46
  343. package/dist/replace-browser.d.ts +6 -0
  344. package/dist/replace-browser.js +47 -0
  345. package/dist/resolve-asset-src.d.ts +0 -0
  346. package/dist/resolve-asset-src.js +2 -2
  347. package/dist/sample-rate.d.ts +0 -0
  348. package/dist/sample-rate.js +0 -0
  349. package/dist/screenshot-dom-element.d.ts +8 -4
  350. package/dist/screenshot-dom-element.js +15 -4
  351. package/dist/screenshot-task.d.ts +12 -2
  352. package/dist/screenshot-task.js +44 -14
  353. package/dist/seek-to-frame.d.ts +1 -0
  354. package/dist/seek-to-frame.js +49 -3
  355. package/dist/select-composition.d.ts +33 -0
  356. package/dist/select-composition.js +119 -0
  357. package/dist/serve-handler/index.d.ts +1 -1
  358. package/dist/serve-handler/index.js +21 -19
  359. package/dist/serve-handler/is-path-inside.d.ts +0 -0
  360. package/dist/serve-handler/is-path-inside.js +3 -3
  361. package/dist/serve-handler/range-parser.d.ts +0 -0
  362. package/dist/serve-handler/range-parser.js +0 -0
  363. package/dist/serve-static.d.ts +6 -3
  364. package/dist/serve-static.js +86 -45
  365. package/dist/set-props-and-env.d.ts +7 -3
  366. package/dist/set-props-and-env.js +50 -16
  367. package/dist/stitch-frames-to-video.d.ts +16 -11
  368. package/dist/stitch-frames-to-video.js +165 -79
  369. package/dist/stringify-ffmpeg-filter.d.ts +10 -2
  370. package/dist/stringify-ffmpeg-filter.js +37 -34
  371. package/dist/symbolicate-stacktrace.d.ts +0 -0
  372. package/dist/symbolicate-stacktrace.js +0 -0
  373. package/dist/take-frame-and-compose.d.ts +22 -0
  374. package/dist/take-frame-and-compose.js +103 -0
  375. package/dist/tmp-dir.d.ts +0 -0
  376. package/dist/tmp-dir.js +7 -8
  377. package/dist/truthy.d.ts +0 -0
  378. package/dist/truthy.js +0 -0
  379. package/dist/try-to-extract-frame-of-video-fast.d.ts +12 -0
  380. package/dist/try-to-extract-frame-of-video-fast.js +55 -0
  381. package/dist/types.d.ts +0 -0
  382. package/dist/types.js +0 -0
  383. package/dist/validate-concurrency.d.ts +2 -0
  384. package/dist/validate-concurrency.js +21 -10
  385. package/dist/validate-even-dimensions-with-codec.d.ts +0 -0
  386. package/dist/validate-even-dimensions-with-codec.js +0 -0
  387. package/dist/validate-every-nth-frame.d.ts +2 -1
  388. package/dist/validate-every-nth-frame.js +8 -1
  389. package/dist/validate-ffmpeg-override.d.ts +2 -0
  390. package/dist/validate-ffmpeg-override.js +12 -0
  391. package/dist/validate-ffmpeg.d.ts +7 -2
  392. package/dist/validate-ffmpeg.js +48 -43
  393. package/dist/validate-number-of-gif-loops.d.ts +2 -0
  394. package/dist/validate-number-of-gif-loops.js +24 -0
  395. package/dist/validate-opengl-renderer.d.ts +0 -0
  396. package/dist/validate-opengl-renderer.js +0 -0
  397. package/dist/validate-output-filename.d.ts +7 -2
  398. package/dist/validate-output-filename.js +20 -51
  399. package/dist/validate-puppeteer-timeout.d.ts +0 -0
  400. package/dist/validate-puppeteer-timeout.js +2 -1
  401. package/dist/validate-scale.d.ts +0 -0
  402. package/dist/validate-scale.js +0 -0
  403. package/dist/validate-videobitrate.d.ts +1 -0
  404. package/dist/validate-videobitrate.js +20 -0
  405. package/dist/wait-for-symbolication-error-to-be-done.d.ts +0 -0
  406. package/dist/wait-for-symbolication-error-to-be-done.js +5 -31
  407. package/dist/warn-about-ffmpeg-version.d.ts +5 -0
  408. package/dist/warn-about-ffmpeg-version.js +37 -0
  409. package/dist/ws/ws-types.d.ts +0 -0
  410. package/dist/ws/ws-types.js +2 -1
  411. package/install-toolchain.mjs +36 -0
  412. package/package.json +70 -60
  413. package/types/ws/index.d.ts +5 -5
  414. package/.prettierrc.js +0 -14
  415. package/dist/add-silent-audio-if-necessary.d.ts +0 -8
  416. package/dist/add-silent-audio-if-necessary.d.ts.map +0 -1
  417. package/dist/add-silent-audio-if-necessary.js +0 -51
  418. package/dist/add-silent-audio-if-necessary.js.map +0 -1
  419. package/dist/assets/asset-is-used-at-time.d.ts +0 -3
  420. package/dist/assets/asset-is-used-at-time.d.ts.map +0 -1
  421. package/dist/assets/asset-is-used-at-time.js +0 -8
  422. package/dist/assets/asset-is-used-at-time.js.map +0 -1
  423. package/dist/assets/calculate-asset-positions.d.ts.map +0 -1
  424. package/dist/assets/calculate-asset-positions.js.map +0 -1
  425. package/dist/assets/calculate-atempo.d.ts.map +0 -1
  426. package/dist/assets/calculate-atempo.js.map +0 -1
  427. package/dist/assets/convert-assets-to-file-urls.d.ts.map +0 -1
  428. package/dist/assets/convert-assets-to-file-urls.js.map +0 -1
  429. package/dist/assets/download-and-map-assets-to-file.d.ts.map +0 -1
  430. package/dist/assets/download-and-map-assets-to-file.js.map +0 -1
  431. package/dist/assets/download-file.d.ts.map +0 -1
  432. package/dist/assets/download-file.js.map +0 -1
  433. package/dist/assets/ffmpeg-volume-expression.d.ts.map +0 -1
  434. package/dist/assets/ffmpeg-volume-expression.js.map +0 -1
  435. package/dist/assets/flatten-volume-array.d.ts.map +0 -1
  436. package/dist/assets/flatten-volume-array.js.map +0 -1
  437. package/dist/assets/get-asset-audio-details.d.ts +0 -5
  438. package/dist/assets/get-asset-audio-details.d.ts.map +0 -1
  439. package/dist/assets/get-asset-audio-details.js +0 -21
  440. package/dist/assets/get-asset-audio-details.js.map +0 -1
  441. package/dist/assets/get-audio-channels.d.ts.map +0 -1
  442. package/dist/assets/get-audio-channels.js.map +0 -1
  443. package/dist/assets/get-simulatenous-assets.d.ts +0 -3
  444. package/dist/assets/get-simulatenous-assets.d.ts.map +0 -1
  445. package/dist/assets/get-simulatenous-assets.js +0 -14
  446. package/dist/assets/get-simulatenous-assets.js.map +0 -1
  447. package/dist/assets/read-file.d.ts.map +0 -1
  448. package/dist/assets/read-file.js.map +0 -1
  449. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +0 -1
  450. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +0 -1
  451. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  452. package/dist/assets/sanitize-filename.js.map +0 -1
  453. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  454. package/dist/assets/sanitize-filepath.js.map +0 -1
  455. package/dist/assets/split-assets-into-segments.d.ts +0 -6
  456. package/dist/assets/split-assets-into-segments.d.ts.map +0 -1
  457. package/dist/assets/split-assets-into-segments.js +0 -89
  458. package/dist/assets/split-assets-into-segments.js.map +0 -1
  459. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  460. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  461. package/dist/assets/types.d.ts.map +0 -1
  462. package/dist/assets/types.js.map +0 -1
  463. package/dist/assets-to-ffmpeg-inputs.d.ts +0 -7
  464. package/dist/assets-to-ffmpeg-inputs.d.ts.map +0 -1
  465. package/dist/assets-to-ffmpeg-inputs.js +0 -15
  466. package/dist/assets-to-ffmpeg-inputs.js.map +0 -1
  467. package/dist/browser-log.d.ts.map +0 -1
  468. package/dist/browser-log.js.map +0 -1
  469. package/dist/calculate-ffmpeg-filters.d.ts.map +0 -1
  470. package/dist/calculate-ffmpeg-filters.js.map +0 -1
  471. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  472. package/dist/can-use-parallel-encoding.js.map +0 -1
  473. package/dist/combine-videos.d.ts.map +0 -1
  474. package/dist/combine-videos.js.map +0 -1
  475. package/dist/convert-to-pcm.d.ts +0 -6
  476. package/dist/convert-to-pcm.js +0 -20
  477. package/dist/create-ffmpeg-complex-filter.d.ts.map +0 -1
  478. package/dist/create-ffmpeg-complex-filter.js.map +0 -1
  479. package/dist/cycle-browser-tabs.d.ts.map +0 -1
  480. package/dist/cycle-browser-tabs.js.map +0 -1
  481. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  482. package/dist/delay-render-embedded-stack.js.map +0 -1
  483. package/dist/delete-directory.d.ts.map +0 -1
  484. package/dist/delete-directory.js.map +0 -1
  485. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  486. package/dist/ensure-frames-in-order.js.map +0 -1
  487. package/dist/ensure-output-directory.d.ts.map +0 -1
  488. package/dist/ensure-output-directory.js.map +0 -1
  489. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  490. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  491. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  492. package/dist/error-handling/symbolicate-error.js.map +0 -1
  493. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  494. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  495. package/dist/ffmpeg-flags.d.ts.map +0 -1
  496. package/dist/ffmpeg-flags.js.map +0 -1
  497. package/dist/get-audio-codec-name.d.ts +0 -2
  498. package/dist/get-audio-codec-name.d.ts.map +0 -1
  499. package/dist/get-audio-codec-name.js +0 -28
  500. package/dist/get-audio-codec-name.js.map +0 -1
  501. package/dist/get-browser-instance.d.ts.map +0 -1
  502. package/dist/get-browser-instance.js.map +0 -1
  503. package/dist/get-codec-name.d.ts.map +0 -1
  504. package/dist/get-codec-name.js.map +0 -1
  505. package/dist/get-compositions.d.ts.map +0 -1
  506. package/dist/get-compositions.js.map +0 -1
  507. package/dist/get-concurrency.d.ts.map +0 -1
  508. package/dist/get-concurrency.js.map +0 -1
  509. package/dist/get-extension-from-codec.d.ts.map +0 -1
  510. package/dist/get-extension-from-codec.js.map +0 -1
  511. package/dist/get-frame-to-render.d.ts.map +0 -1
  512. package/dist/get-frame-to-render.js.map +0 -1
  513. package/dist/get-local-browser-executable.d.ts.map +0 -1
  514. package/dist/get-local-browser-executable.js.map +0 -1
  515. package/dist/get-port.d.ts.map +0 -1
  516. package/dist/get-port.js.map +0 -1
  517. package/dist/get-prores-profile-name.d.ts.map +0 -1
  518. package/dist/get-prores-profile-name.js.map +0 -1
  519. package/dist/image-format.d.ts.map +0 -1
  520. package/dist/image-format.js.map +0 -1
  521. package/dist/index.d.ts.map +0 -1
  522. package/dist/index.js.map +0 -1
  523. package/dist/is-serve-url.d.ts.map +0 -1
  524. package/dist/is-serve-url.js.map +0 -1
  525. package/dist/legacy-webpack-config.d.ts.map +0 -1
  526. package/dist/legacy-webpack-config.js.map +0 -1
  527. package/dist/make-assets-download-dir.d.ts +0 -1
  528. package/dist/make-assets-download-dir.d.ts.map +0 -1
  529. package/dist/make-assets-download-dir.js +0 -13
  530. package/dist/make-assets-download-dir.js.map +0 -1
  531. package/dist/normalize-serve-url.d.ts.map +0 -1
  532. package/dist/normalize-serve-url.js.map +0 -1
  533. package/dist/open-browser.d.ts.map +0 -1
  534. package/dist/open-browser.js.map +0 -1
  535. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  536. package/dist/parse-browser-error-stack.js.map +0 -1
  537. package/dist/parse-ffmpeg-progress.d.ts.map +0 -1
  538. package/dist/parse-ffmpeg-progress.js.map +0 -1
  539. package/dist/pool.d.ts.map +0 -1
  540. package/dist/pool.js.map +0 -1
  541. package/dist/prepare-server.d.ts.map +0 -1
  542. package/dist/prepare-server.js.map +0 -1
  543. package/dist/provide-screenshot.d.ts.map +0 -1
  544. package/dist/provide-screenshot.js.map +0 -1
  545. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  546. package/dist/puppeteer-evaluate.js.map +0 -1
  547. package/dist/puppeteer-screenshot.d.ts.map +0 -1
  548. package/dist/puppeteer-screenshot.js.map +0 -1
  549. package/dist/render-media.d.ts.map +0 -1
  550. package/dist/render-media.js.map +0 -1
  551. package/dist/render-still.d.ts.map +0 -1
  552. package/dist/render-still.js.map +0 -1
  553. package/dist/render.d.ts +0 -45
  554. package/dist/render.d.ts.map +0 -1
  555. package/dist/render.js +0 -245
  556. package/dist/render.js.map +0 -1
  557. package/dist/resolve-asset-src.d.ts.map +0 -1
  558. package/dist/resolve-asset-src.js.map +0 -1
  559. package/dist/sample-rate.d.ts.map +0 -1
  560. package/dist/sample-rate.js.map +0 -1
  561. package/dist/screenshot-dom-element.d.ts.map +0 -1
  562. package/dist/screenshot-dom-element.js.map +0 -1
  563. package/dist/screenshot-task.d.ts.map +0 -1
  564. package/dist/screenshot-task.js.map +0 -1
  565. package/dist/seek-to-frame.d.ts.map +0 -1
  566. package/dist/seek-to-frame.js.map +0 -1
  567. package/dist/serve-static.d.ts.map +0 -1
  568. package/dist/serve-static.js.map +0 -1
  569. package/dist/set-props-and-env.d.ts.map +0 -1
  570. package/dist/set-props-and-env.js.map +0 -1
  571. package/dist/stitcher.d.ts +0 -32
  572. package/dist/stitcher.d.ts.map +0 -1
  573. package/dist/stitcher.js +0 -204
  574. package/dist/stitcher.js.map +0 -1
  575. package/dist/stringify-ffmpeg-filter.d.ts.map +0 -1
  576. package/dist/stringify-ffmpeg-filter.js.map +0 -1
  577. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  578. package/dist/symbolicate-stacktrace.js.map +0 -1
  579. package/dist/tmp-dir.d.ts.map +0 -1
  580. package/dist/tmp-dir.js.map +0 -1
  581. package/dist/types.d.ts.map +0 -1
  582. package/dist/types.js.map +0 -1
  583. package/dist/validate-even-dimensions-with-codec.d.ts.map +0 -1
  584. package/dist/validate-even-dimensions-with-codec.js.map +0 -1
  585. package/dist/validate-ffmpeg.d.ts.map +0 -1
  586. package/dist/validate-ffmpeg.js.map +0 -1
  587. package/dist/validate-frame.d.ts +0 -1
  588. package/dist/validate-frame.js +0 -24
  589. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  590. package/dist/validate-puppeteer-timeout.js.map +0 -1
  591. package/dist/validate-scale.d.ts.map +0 -1
  592. package/dist/validate-scale.js.map +0 -1
  593. package/tsconfig.json +0 -10
  594. package/vitest.config.ts +0 -8
@@ -3,33 +3,69 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getVideoStreamDuration = void 0;
6
+ exports.getVideoStreamDuration = exports.getVideoStreamDurationwithoutCache = exports.parseVideoStreamDuration = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
+ const ffmpeg_flags_1 = require("../ffmpeg-flags");
8
9
  const p_limit_1 = require("../p-limit");
9
10
  const limit = (0, p_limit_1.pLimit)(1);
10
- async function getVideoStreamDurationUnlimited(downloadMap, src, ffprobeExecutable) {
11
- if (downloadMap.videoDurationResultCache[src]) {
12
- return downloadMap.videoDurationResultCache[src];
11
+ const parseAlternativeDuration = (stdout) => {
12
+ const webmDuration = stdout.match(/TAG:DURATION=([0-9.]+):([0-9.]+):([0-9.]+)/);
13
+ if (!webmDuration) {
14
+ return null;
15
+ }
16
+ const [, hours, minutes, seconds] = webmDuration;
17
+ const hoursAsNumber = Number(hours);
18
+ if (Number.isNaN(hoursAsNumber)) {
19
+ return null;
20
+ }
21
+ const minutesAsNumber = Number(minutes);
22
+ if (Number.isNaN(minutesAsNumber)) {
23
+ return null;
24
+ }
25
+ const secondsAsNumber = Number(seconds);
26
+ if (Number.isNaN(secondsAsNumber)) {
27
+ return null;
13
28
  }
29
+ return secondsAsNumber + minutesAsNumber * 60 + hoursAsNumber * 3600;
30
+ };
31
+ const parseVideoStreamDuration = (stdout) => {
32
+ const duration = stdout.match(/duration=([0-9.]+)/);
33
+ const alternativeDuration = parseAlternativeDuration(stdout);
34
+ const fps = stdout.match(/r_frame_rate=([0-9.]+)\/([0-9.]+)/);
35
+ const result = {
36
+ duration: duration ? parseFloat(duration[1]) : alternativeDuration,
37
+ fps: fps ? parseInt(fps[1], 10) / parseInt(fps[2], 10) : null,
38
+ };
39
+ return result;
40
+ };
41
+ exports.parseVideoStreamDuration = parseVideoStreamDuration;
42
+ async function getVideoStreamDurationwithoutCache({ src, ffprobeExecutable, remotionRoot, }) {
14
43
  const args = [
15
44
  ['-v', 'error'],
16
45
  ['-select_streams', 'v:0'],
17
- ['-show_entries', 'stream=duration,r_frame_rate'],
46
+ ['-show_entries', 'stream'],
18
47
  [src],
19
48
  ]
20
49
  .reduce((acc, val) => acc.concat(val), [])
21
50
  .filter(Boolean);
22
- const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', args);
23
- const duration = task.stdout.match(/duration=([0-9.]+)/);
24
- const fps = task.stdout.match(/r_frame_rate=([0-9.]+)\/([0-9.]+)/);
25
- const result = {
26
- duration: duration ? parseFloat(duration[1]) : null,
27
- fps: fps ? parseInt(fps[1], 10) / parseInt(fps[2], 10) : null,
28
- };
51
+ const task = await (0, execa_1.default)(await (0, ffmpeg_flags_1.getExecutableBinary)(ffprobeExecutable, remotionRoot, 'ffprobe'), args);
52
+ const result = (0, exports.parseVideoStreamDuration)(task.stdout);
53
+ return result;
54
+ }
55
+ exports.getVideoStreamDurationwithoutCache = getVideoStreamDurationwithoutCache;
56
+ async function getVideoStreamDurationUnlimited(downloadMap, src, ffprobeExecutable, remotionRoot) {
57
+ if (downloadMap.videoDurationResultCache[src]) {
58
+ return downloadMap.videoDurationResultCache[src];
59
+ }
60
+ const result = await getVideoStreamDurationwithoutCache({
61
+ src,
62
+ ffprobeExecutable,
63
+ remotionRoot,
64
+ });
29
65
  downloadMap.videoDurationResultCache[src] = result;
30
66
  return result;
31
67
  }
32
- const getVideoStreamDuration = (downloadMap, src, ffprobeExecutable) => {
33
- return limit(() => getVideoStreamDurationUnlimited(downloadMap, src, ffprobeExecutable));
68
+ const getVideoStreamDuration = (downloadMap, src, ffprobeExecutable, remotionRoot) => {
69
+ return limit(() => getVideoStreamDurationUnlimited(downloadMap, src, ffprobeExecutable, remotionRoot));
34
70
  };
35
71
  exports.getVideoStreamDuration = getVideoStreamDuration;
@@ -1,2 +1,2 @@
1
- import http from 'http';
1
+ import http from 'node:http';
2
2
  export declare const readFile: (url: string, redirectsSoFar?: number) => Promise<http.IncomingMessage>;
@@ -4,14 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.readFile = void 0;
7
- const http_1 = __importDefault(require("http"));
8
7
  const https_1 = __importDefault(require("https"));
8
+ const node_http_1 = __importDefault(require("node:http"));
9
+ const redirect_status_codes_1 = require("../redirect-status-codes");
9
10
  const getClient = (url) => {
10
11
  if (url.startsWith('https://')) {
11
12
  return https_1.default.get;
12
13
  }
13
14
  if (url.startsWith('http://')) {
14
- return http_1.default.get;
15
+ return node_http_1.default.get;
15
16
  }
16
17
  throw new Error('Can only download URLs starting with http:// or https://');
17
18
  };
@@ -29,10 +30,7 @@ const readFile = async (url, redirectsSoFar = 0) => {
29
30
  throw new Error(`Too many redirects while downloading ${url}`);
30
31
  }
31
32
  const file = await readFileWithoutRedirect(url);
32
- if (file.statusCode === 302 ||
33
- file.statusCode === 301 ||
34
- file.statusCode === 307 ||
35
- file.statusCode === 308) {
33
+ if (redirect_status_codes_1.redirectStatusCodes.includes(file.statusCode)) {
36
34
  if (!file.headers.location) {
37
35
  throw new Error(`Received a status code ${file.statusCode} but no "Location" header while calling ${file.headers.location}`);
38
36
  }
File without changes
File without changes
File without changes
@@ -4,13 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.sanitizeFilePath = void 0;
7
- const path_1 = __importDefault(require("path"));
7
+ const node_path_1 = __importDefault(require("node:path"));
8
8
  const sanitize_filename_1 = require("./sanitize-filename");
9
9
  const pathSeparators = /[/\\]/;
10
10
  const sanitizeFilePath = (pathToSanitize) => {
11
11
  return pathToSanitize
12
12
  .split(pathSeparators)
13
13
  .map((s) => (0, sanitize_filename_1.sanitizeFilename)(s))
14
- .join(path_1.default.sep);
14
+ .join(node_path_1.default.sep);
15
15
  };
16
16
  exports.sanitizeFilePath = sanitizeFilePath;
File without changes
File without changes
@@ -6,6 +6,7 @@ export declare type UnsafeAsset = Omit<TAsset, 'frame' | 'id' | 'volume' | 'medi
6
6
  volume: number[];
7
7
  id: string;
8
8
  playbackRate: number;
9
+ allowAmplificationDuringRender: boolean;
9
10
  };
10
11
  export declare type AssetVolume = number | number[];
11
12
  export declare type MediaAsset = Omit<UnsafeAsset, 'duration' | 'volume'> & {
File without changes
@@ -0,0 +1,28 @@
1
+ import type { Codec } from './codec';
2
+ export declare const validAudioCodecs: readonly ["pcm-16", "aac", "mp3", "opus"];
3
+ export declare type AudioCodec = typeof validAudioCodecs[number];
4
+ export declare const supportedAudioCodecs: {
5
+ readonly h264: readonly ["aac", "pcm-16"];
6
+ readonly 'h264-mkv': readonly ["pcm-16"];
7
+ readonly aac: readonly ["aac", "pcm-16"];
8
+ readonly gif: const[];
9
+ readonly h265: readonly ["aac", "pcm-16"];
10
+ readonly mp3: readonly ["mp3", "pcm-16"];
11
+ readonly prores: readonly ["aac", "pcm-16"];
12
+ readonly vp8: readonly ["opus", "pcm-16"];
13
+ readonly vp9: readonly ["opus", "pcm-16"];
14
+ readonly wav: readonly ["pcm-16"];
15
+ };
16
+ declare const audioCodecNames: readonly ["pcm_s16le", "aac", "libmp3lame", "libopus"];
17
+ declare type FfmpegAudioCodecName = typeof audioCodecNames[number];
18
+ export declare const mapAudioCodecToFfmpegAudioCodecName: (audioCodec: AudioCodec) => FfmpegAudioCodecName;
19
+ export declare const defaultAudioCodecs: {
20
+ [key in Codec]: {
21
+ [k in 'compressed' | 'lossless']: typeof supportedAudioCodecs[key][number] | null;
22
+ };
23
+ };
24
+ export declare const getDefaultAudioCodec: ({ codec, preferLossless, }: {
25
+ codec: Codec;
26
+ preferLossless: boolean;
27
+ }) => AudioCodec | null;
28
+ export {};
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDefaultAudioCodec = exports.defaultAudioCodecs = exports.mapAudioCodecToFfmpegAudioCodecName = exports.supportedAudioCodecs = exports.validAudioCodecs = void 0;
4
+ exports.validAudioCodecs = ['pcm-16', 'aac', 'mp3', 'opus'];
5
+ exports.supportedAudioCodecs = {
6
+ h264: ['aac', 'pcm-16'],
7
+ 'h264-mkv': ['pcm-16'],
8
+ aac: ['aac', 'pcm-16'],
9
+ gif: [],
10
+ h265: ['aac', 'pcm-16'],
11
+ mp3: ['mp3', 'pcm-16'],
12
+ prores: ['aac', 'pcm-16'],
13
+ vp8: ['opus', 'pcm-16'],
14
+ vp9: ['opus', 'pcm-16'],
15
+ wav: ['pcm-16'],
16
+ };
17
+ const _satisfies = exports.supportedAudioCodecs;
18
+ if (_satisfies) {
19
+ // Just for type checking
20
+ }
21
+ const audioCodecNames = ['pcm_s16le', 'aac', 'libmp3lame', 'libopus'];
22
+ const mapAudioCodecToFfmpegAudioCodecName = (audioCodec) => {
23
+ if (audioCodec === 'aac') {
24
+ return 'aac';
25
+ }
26
+ if (audioCodec === 'mp3') {
27
+ return 'libmp3lame';
28
+ }
29
+ if (audioCodec === 'opus') {
30
+ return 'libopus';
31
+ }
32
+ if (audioCodec === 'pcm-16') {
33
+ return 'pcm_s16le';
34
+ }
35
+ throw new Error('unknown audio codec: ' + audioCodec);
36
+ };
37
+ exports.mapAudioCodecToFfmpegAudioCodecName = mapAudioCodecToFfmpegAudioCodecName;
38
+ exports.defaultAudioCodecs = {
39
+ 'h264-mkv': {
40
+ lossless: 'pcm-16',
41
+ compressed: 'pcm-16',
42
+ },
43
+ aac: {
44
+ lossless: 'pcm-16',
45
+ compressed: 'aac',
46
+ },
47
+ gif: {
48
+ lossless: null,
49
+ compressed: null,
50
+ },
51
+ h264: {
52
+ lossless: 'pcm-16',
53
+ compressed: 'aac',
54
+ },
55
+ h265: {
56
+ lossless: 'pcm-16',
57
+ compressed: 'aac',
58
+ },
59
+ mp3: {
60
+ lossless: 'pcm-16',
61
+ compressed: 'mp3',
62
+ },
63
+ prores: {
64
+ lossless: 'pcm-16',
65
+ compressed: 'pcm-16',
66
+ },
67
+ vp8: {
68
+ lossless: 'pcm-16',
69
+ compressed: 'opus',
70
+ },
71
+ vp9: {
72
+ lossless: 'pcm-16',
73
+ compressed: 'opus',
74
+ },
75
+ wav: {
76
+ lossless: 'pcm-16',
77
+ compressed: 'pcm-16',
78
+ },
79
+ };
80
+ const getDefaultAudioCodec = ({ codec, preferLossless, }) => {
81
+ return exports.defaultAudioCodecs[codec][preferLossless ? 'lossless' : 'compressed'];
82
+ };
83
+ exports.getDefaultAudioCodec = getDefaultAudioCodec;
@@ -25,16 +25,18 @@ interface WaitForTargetOptions {
25
25
  export declare const enum BrowserEmittedEvents {
26
26
  TargetChanged = "targetchanged",
27
27
  TargetCreated = "targetcreated",
28
- Closed = "closed"
28
+ Closed = "closed",
29
+ ClosedSilent = "closed-silent"
29
30
  }
30
- export declare class Browser extends EventEmitter {
31
+ export declare class HeadlessBrowser extends EventEmitter {
31
32
  #private;
32
33
  static _create({ connection, contextIds, defaultViewport, closeCallback, }: {
33
34
  connection: Connection;
34
35
  contextIds: string[];
35
36
  defaultViewport: Viewport;
36
37
  closeCallback?: BrowserCloseCallback;
37
- }): Promise<Browser>;
38
+ }): Promise<HeadlessBrowser>;
39
+ connection: Connection;
38
40
  get _targets(): Map<string, Target>;
39
41
  constructor(connection: Connection, contextIds: string[], defaultViewport: Viewport, closeCallback?: BrowserCloseCallback);
40
42
  browserContexts(): BrowserContext[];
@@ -43,18 +45,18 @@ export declare class Browser extends EventEmitter {
43
45
  targets(): Target[];
44
46
  waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
45
47
  pages(): Promise<Page[]>;
46
- close(): Promise<void>;
48
+ close(silent: boolean): Promise<void>;
47
49
  disconnect(): void;
48
50
  }
49
51
  export declare class BrowserContext extends EventEmitter {
50
52
  #private;
51
- constructor(browser: Browser, contextId?: string);
53
+ constructor(browser: HeadlessBrowser, contextId?: string);
52
54
  targets(): Target[];
53
55
  waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: {
54
56
  timeout?: number;
55
57
  }): Promise<Target>;
56
58
  pages(): Promise<Page[]>;
57
59
  newPage(): Promise<Page>;
58
- browser(): Browser;
60
+ browser(): HeadlessBrowser;
59
61
  }
60
62
  export {};
@@ -25,60 +25,59 @@ 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 _Browser_instances, _Browser_defaultViewport, _Browser_connection, _Browser_closeCallback, _Browser_defaultContext, _Browser_contexts, _Browser_targets, _Browser_targetCreated, _Browser_targetDestroyed, _Browser_targetInfoChanged, _BrowserContext_browser, _BrowserContext_id;
28
+ var _HeadlessBrowser_instances, _HeadlessBrowser_defaultViewport, _HeadlessBrowser_closeCallback, _HeadlessBrowser_defaultContext, _HeadlessBrowser_contexts, _HeadlessBrowser_targets, _HeadlessBrowser_targetCreated, _HeadlessBrowser_targetDestroyed, _HeadlessBrowser_targetInfoChanged, _BrowserContext_browser, _BrowserContext_id;
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.BrowserContext = exports.Browser = void 0;
30
+ exports.BrowserContext = exports.HeadlessBrowser = void 0;
31
31
  const assert_1 = require("./assert");
32
32
  const EventEmitter_1 = require("./EventEmitter");
33
33
  const Target_1 = require("./Target");
34
34
  const util_1 = require("./util");
35
- class Browser extends EventEmitter_1.EventEmitter {
35
+ class HeadlessBrowser extends EventEmitter_1.EventEmitter {
36
36
  // eslint-disable-next-line max-params
37
37
  constructor(connection, contextIds, defaultViewport, closeCallback) {
38
38
  super();
39
- _Browser_instances.add(this);
40
- _Browser_defaultViewport.set(this, void 0);
41
- _Browser_connection.set(this, void 0);
42
- _Browser_closeCallback.set(this, void 0);
43
- _Browser_defaultContext.set(this, void 0);
44
- _Browser_contexts.set(this, void 0);
45
- _Browser_targets.set(this, void 0);
46
- __classPrivateFieldSet(this, _Browser_defaultViewport, defaultViewport, "f");
47
- __classPrivateFieldSet(this, _Browser_connection, connection, "f");
48
- __classPrivateFieldSet(this, _Browser_closeCallback, closeCallback ||
39
+ _HeadlessBrowser_instances.add(this);
40
+ _HeadlessBrowser_defaultViewport.set(this, void 0);
41
+ _HeadlessBrowser_closeCallback.set(this, void 0);
42
+ _HeadlessBrowser_defaultContext.set(this, void 0);
43
+ _HeadlessBrowser_contexts.set(this, void 0);
44
+ _HeadlessBrowser_targets.set(this, void 0);
45
+ __classPrivateFieldSet(this, _HeadlessBrowser_defaultViewport, defaultViewport, "f");
46
+ this.connection = connection;
47
+ __classPrivateFieldSet(this, _HeadlessBrowser_closeCallback, closeCallback ||
49
48
  function () {
50
49
  return undefined;
51
50
  }, "f");
52
- __classPrivateFieldSet(this, _Browser_defaultContext, new BrowserContext(this), "f");
53
- __classPrivateFieldSet(this, _Browser_contexts, new Map(), "f");
51
+ __classPrivateFieldSet(this, _HeadlessBrowser_defaultContext, new BrowserContext(this), "f");
52
+ __classPrivateFieldSet(this, _HeadlessBrowser_contexts, new Map(), "f");
54
53
  for (const contextId of contextIds) {
55
- __classPrivateFieldGet(this, _Browser_contexts, "f").set(contextId, new BrowserContext(this, contextId));
54
+ __classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").set(contextId, new BrowserContext(this, contextId));
56
55
  }
57
- __classPrivateFieldSet(this, _Browser_targets, new Map(), "f");
58
- __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetCreated', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetCreated).bind(this));
59
- __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetDestroyed', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetDestroyed).bind(this));
60
- __classPrivateFieldGet(this, _Browser_connection, "f").on('Target.targetInfoChanged', __classPrivateFieldGet(this, _Browser_instances, "m", _Browser_targetInfoChanged).bind(this));
56
+ __classPrivateFieldSet(this, _HeadlessBrowser_targets, new Map(), "f");
57
+ this.connection.on('Target.targetCreated', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetCreated).bind(this));
58
+ this.connection.on('Target.targetDestroyed', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetDestroyed).bind(this));
59
+ this.connection.on('Target.targetInfoChanged', __classPrivateFieldGet(this, _HeadlessBrowser_instances, "m", _HeadlessBrowser_targetInfoChanged).bind(this));
61
60
  }
62
61
  static async _create({ connection, contextIds, defaultViewport, closeCallback, }) {
63
- const browser = new Browser(connection, contextIds, defaultViewport, closeCallback);
62
+ const browser = new HeadlessBrowser(connection, contextIds, defaultViewport, closeCallback);
64
63
  await connection.send('Target.setDiscoverTargets', { discover: true });
65
64
  return browser;
66
65
  }
67
66
  get _targets() {
68
- return __classPrivateFieldGet(this, _Browser_targets, "f");
67
+ return __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f");
69
68
  }
70
69
  browserContexts() {
71
- return [__classPrivateFieldGet(this, _Browser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _Browser_contexts, "f").values())];
70
+ return [__classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").values())];
72
71
  }
73
72
  newPage() {
74
- return __classPrivateFieldGet(this, _Browser_defaultContext, "f").newPage();
73
+ return __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f").newPage();
75
74
  }
76
75
  async _createPageInContext(contextId) {
77
- const { targetId } = await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.createTarget', {
76
+ const { targetId } = await this.connection.send('Target.createTarget', {
78
77
  url: 'about:blank',
79
78
  browserContextId: contextId || undefined,
80
79
  });
81
- const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(targetId);
80
+ const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(targetId);
82
81
  if (!target) {
83
82
  throw new Error(`Missing target for page (id = ${targetId})`);
84
83
  }
@@ -93,7 +92,7 @@ class Browser extends EventEmitter_1.EventEmitter {
93
92
  return page;
94
93
  }
95
94
  targets() {
96
- return Array.from(__classPrivateFieldGet(this, _Browser_targets, "f").values()).filter((target) => {
95
+ return Array.from(__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").values()).filter((target) => {
97
96
  return target._isInitialized;
98
97
  });
99
98
  }
@@ -133,44 +132,48 @@ class Browser extends EventEmitter_1.EventEmitter {
133
132
  return acc.concat(x);
134
133
  }, []);
135
134
  }
136
- async close() {
137
- await __classPrivateFieldGet(this, _Browser_closeCallback, "f").call(null);
135
+ async close(silent) {
136
+ await __classPrivateFieldGet(this, _HeadlessBrowser_closeCallback, "f").call(null);
137
+ (await this.pages()).forEach((page) => {
138
+ page.emit("disposed" /* PageEmittedEvents.Disposed */);
139
+ page.closed = true;
140
+ });
138
141
  this.disconnect();
139
- this.emit("closed" /* BrowserEmittedEvents.Closed */);
142
+ this.emit(silent ? "closed-silent" /* BrowserEmittedEvents.ClosedSilent */ : "closed" /* BrowserEmittedEvents.Closed */);
140
143
  }
141
144
  disconnect() {
142
- __classPrivateFieldGet(this, _Browser_connection, "f").dispose();
145
+ this.connection.dispose();
143
146
  }
144
147
  }
145
- exports.Browser = Browser;
146
- _Browser_defaultViewport = new WeakMap(), _Browser_connection = new WeakMap(), _Browser_closeCallback = new WeakMap(), _Browser_defaultContext = new WeakMap(), _Browser_contexts = new WeakMap(), _Browser_targets = new WeakMap(), _Browser_instances = new WeakSet(), _Browser_targetCreated = async function _Browser_targetCreated(event) {
148
+ exports.HeadlessBrowser = HeadlessBrowser;
149
+ _HeadlessBrowser_defaultViewport = new WeakMap(), _HeadlessBrowser_closeCallback = new WeakMap(), _HeadlessBrowser_defaultContext = new WeakMap(), _HeadlessBrowser_contexts = new WeakMap(), _HeadlessBrowser_targets = new WeakMap(), _HeadlessBrowser_instances = new WeakSet(), _HeadlessBrowser_targetCreated = async function _HeadlessBrowser_targetCreated(event) {
147
150
  var _a;
148
151
  const { targetInfo } = event;
149
152
  const { browserContextId } = targetInfo;
150
- const context = browserContextId && __classPrivateFieldGet(this, _Browser_contexts, "f").has(browserContextId)
151
- ? __classPrivateFieldGet(this, _Browser_contexts, "f").get(browserContextId)
152
- : __classPrivateFieldGet(this, _Browser_defaultContext, "f");
153
+ const context = browserContextId && __classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").has(browserContextId)
154
+ ? __classPrivateFieldGet(this, _HeadlessBrowser_contexts, "f").get(browserContextId)
155
+ : __classPrivateFieldGet(this, _HeadlessBrowser_defaultContext, "f");
153
156
  if (!context) {
154
157
  throw new Error('Missing browser context');
155
158
  }
156
159
  const target = new Target_1.Target(targetInfo, context, () => {
157
- return __classPrivateFieldGet(this, _Browser_connection, "f").createSession(targetInfo);
158
- }, (_a = __classPrivateFieldGet(this, _Browser_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null);
159
- (0, assert_1.assert)(!__classPrivateFieldGet(this, _Browser_targets, "f").has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
160
- __classPrivateFieldGet(this, _Browser_targets, "f").set(event.targetInfo.targetId, target);
160
+ return this.connection.createSession(targetInfo);
161
+ }, (_a = __classPrivateFieldGet(this, _HeadlessBrowser_defaultViewport, "f")) !== null && _a !== void 0 ? _a : null);
162
+ (0, assert_1.assert)(!__classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").has(event.targetInfo.targetId), 'Target should not exist before targetCreated');
163
+ __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").set(event.targetInfo.targetId, target);
161
164
  if (await target._initializedPromise) {
162
165
  this.emit("targetcreated" /* BrowserEmittedEvents.TargetCreated */, target);
163
166
  }
164
- }, _Browser_targetDestroyed = function _Browser_targetDestroyed(event) {
165
- const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetId);
167
+ }, _HeadlessBrowser_targetDestroyed = function _HeadlessBrowser_targetDestroyed(event) {
168
+ const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(event.targetId);
166
169
  if (!target) {
167
170
  throw new Error(`Missing target in _targetDestroyed (id = ${event.targetId})`);
168
171
  }
169
172
  target._initializedCallback(false);
170
- __classPrivateFieldGet(this, _Browser_targets, "f").delete(event.targetId);
173
+ __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").delete(event.targetId);
171
174
  target._closedCallback();
172
- }, _Browser_targetInfoChanged = function _Browser_targetInfoChanged(event) {
173
- const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetInfo.targetId);
175
+ }, _HeadlessBrowser_targetInfoChanged = function _HeadlessBrowser_targetInfoChanged(event) {
176
+ const target = __classPrivateFieldGet(this, _HeadlessBrowser_targets, "f").get(event.targetInfo.targetId);
174
177
  if (!target) {
175
178
  throw new Error(`Missing target in targetInfoChanged (id = ${event.targetInfo.targetId})`);
176
179
  }
File without changes
File without changes
@@ -15,11 +15,6 @@
15
15
  */
16
16
  import type { Product } from './Product';
17
17
  declare type Platform = 'linux' | 'mac' | 'mac_arm' | 'win32' | 'win64';
18
- export interface BrowserFetcherOptions {
19
- platform: Platform | null;
20
- product: Product;
21
- path: string | null;
22
- }
23
18
  interface BrowserFetcherRevisionInfo {
24
19
  folderPath: string;
25
20
  executablePath: string;
@@ -28,62 +23,19 @@ interface BrowserFetcherRevisionInfo {
28
23
  revision: string;
29
24
  product: string;
30
25
  }
31
- export declare class BrowserFetcher {
32
- #private;
33
- constructor(options: BrowserFetcherOptions);
34
- /**
35
- * @returns Returns the current `Platform`, which is one of `mac`, `linux`,
36
- * `win32` or `win64`.
37
- */
38
- platform(): Platform;
39
- /**
40
- * @returns Returns the current `Product`, which is one of `chrome` or
41
- * `firefox`.
42
- */
43
- product(): Product;
44
- /**
45
- * @returns The download host being used.
46
- */
47
- host(): string;
48
- /**
49
- * Initiates a HEAD request to check if the revision is available.
50
- * @remarks
51
- * This method is affected by the current `product`.
52
- * @param revision - The revision to check availability for.
53
- * @returns A promise that resolves to `true` if the revision could be downloaded
54
- * from the host.
55
- */
56
- canDownload(revision: string): Promise<boolean>;
57
- /**
58
- * Initiates a GET request to download the revision from the host.
59
- * @remarks
60
- * This method is affected by the current `product`.
61
- * @param revision - The revision to download.
62
- * @param progressCallback - A function that will be called with two arguments:
63
- * How many bytes have been downloaded and the total number of bytes of the download.
64
- * @returns A promise with revision information when the revision is downloaded
65
- * and extracted.
66
- */
67
- download(revision: string, progressCallback?: (x: number, y: number) => void): Promise<BrowserFetcherRevisionInfo | undefined>;
68
- /**
69
- * @remarks
70
- * This method is affected by the current `product`.
71
- * @returns A promise with a list of all revision strings (for the current `product`)
72
- * available locally on disk.
73
- */
74
- localRevisions(): Promise<string[]>;
75
- /**
76
- * @remarks
77
- * This method is affected by the current `product`.
78
- * @param revision - A revision to remove for the current `product`.
79
- * @returns A promise that resolves when the revision has been removes or
80
- * throws if the revision has not been downloaded.
81
- */
82
- remove(revision: string): Promise<void>;
83
- /**
84
- * @param revision - The revision to get info for.
85
- * @returns The revision info for the given revision.
86
- */
87
- revisionInfo(revision: string): BrowserFetcherRevisionInfo;
88
- }
26
+ export declare const getPlatform: (product: Product) => Platform;
27
+ export declare const getDownloadsFolder: (product: Product) => string;
28
+ export declare const getDownloadHost: (product: Product) => "https://storage.googleapis.com" | "https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central";
29
+ export declare const download: ({ revision, progressCallback, product, platform, downloadHost, downloadsFolder, }: {
30
+ revision: string;
31
+ progressCallback: (x: number, y: number) => void;
32
+ product: Product;
33
+ platform: Platform;
34
+ downloadHost: string;
35
+ downloadsFolder: string;
36
+ }) => Promise<BrowserFetcherRevisionInfo | undefined>;
37
+ export declare const localRevisions: (downloadsFolder: string, product: Product, platform: Platform) => Promise<string[]>;
38
+ export declare const removeBrowser: (revision: string, folderPath: string) => Promise<void>;
39
+ export declare const getFolderPath: (revision: string, downloadsFolder: string, platform: Platform) => string;
40
+ export declare const getRevisionInfo: (revision: string, product: Product) => BrowserFetcherRevisionInfo;
89
41
  export {};