@remotion/renderer 4.0.0-fastlambda.8 → 4.0.0-july8th.12

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 (371) hide show
  1. package/dist/add-silent-audio-if-necessary.d.ts +2 -0
  2. package/dist/add-silent-audio-if-necessary.d.ts.map +1 -0
  3. package/dist/add-silent-audio-if-necessary.js +41 -0
  4. package/dist/add-silent-audio-if-necessary.js.map +1 -0
  5. package/dist/assets/asset-is-used-at-time.d.ts +3 -0
  6. package/dist/assets/asset-is-used-at-time.d.ts.map +1 -0
  7. package/dist/assets/asset-is-used-at-time.js +8 -0
  8. package/dist/assets/asset-is-used-at-time.js.map +1 -0
  9. package/dist/assets/calculate-asset-positions.d.ts +2 -2
  10. package/dist/assets/calculate-asset-positions.d.ts.map +1 -1
  11. package/dist/assets/calculate-asset-positions.js.map +1 -1
  12. package/dist/assets/calculate-atempo.d.ts.map +1 -1
  13. package/dist/assets/calculate-atempo.js.map +1 -1
  14. package/dist/assets/convert-assets-to-file-urls.d.ts +2 -2
  15. package/dist/assets/convert-assets-to-file-urls.d.ts.map +1 -1
  16. package/dist/assets/download-and-map-assets-to-file.d.ts +11 -3
  17. package/dist/assets/download-and-map-assets-to-file.d.ts.map +1 -1
  18. package/dist/assets/download-and-map-assets-to-file.js +82 -31
  19. package/dist/assets/download-and-map-assets-to-file.js.map +1 -1
  20. package/dist/assets/download-file.d.ts +10 -5
  21. package/dist/assets/download-file.js +18 -5
  22. package/dist/assets/ffmpeg-volume-expression.d.ts +3 -3
  23. package/dist/assets/ffmpeg-volume-expression.d.ts.map +1 -1
  24. package/dist/assets/ffmpeg-volume-expression.js +16 -14
  25. package/dist/assets/ffmpeg-volume-expression.js.map +1 -1
  26. package/dist/assets/flatten-volume-array.d.ts +1 -1
  27. package/dist/assets/get-asset-audio-details.d.ts +5 -0
  28. package/dist/assets/get-asset-audio-details.d.ts.map +1 -0
  29. package/dist/assets/get-asset-audio-details.js +21 -0
  30. package/dist/assets/get-asset-audio-details.js.map +1 -0
  31. package/dist/assets/get-audio-channels.d.ts +5 -2
  32. package/dist/assets/get-audio-channels.d.ts.map +1 -1
  33. package/dist/assets/get-audio-channels.js +15 -4
  34. package/dist/assets/get-audio-channels.js.map +1 -1
  35. package/dist/assets/get-simulatenous-assets.d.ts +3 -0
  36. package/dist/assets/get-simulatenous-assets.d.ts.map +1 -0
  37. package/dist/assets/get-simulatenous-assets.js +14 -0
  38. package/dist/assets/get-simulatenous-assets.js.map +1 -0
  39. package/dist/assets/read-file.js +4 -1
  40. package/dist/assets/round-volume-to-avoid-stack-overflow.d.ts.map +1 -1
  41. package/dist/assets/round-volume-to-avoid-stack-overflow.js.map +1 -1
  42. package/dist/assets/split-assets-into-segments.d.ts +6 -0
  43. package/dist/assets/split-assets-into-segments.d.ts.map +1 -0
  44. package/dist/assets/split-assets-into-segments.js +89 -0
  45. package/dist/assets/split-assets-into-segments.js.map +1 -0
  46. package/dist/assets/types.d.ts +1 -1
  47. package/dist/assets/types.d.ts.map +1 -1
  48. package/dist/assets/types.js.map +1 -1
  49. package/dist/assets-to-ffmpeg-inputs.d.ts +7 -0
  50. package/dist/assets-to-ffmpeg-inputs.d.ts.map +1 -0
  51. package/dist/assets-to-ffmpeg-inputs.js +15 -0
  52. package/dist/assets-to-ffmpeg-inputs.js.map +1 -0
  53. package/dist/browser/Browser.d.ts +60 -0
  54. package/dist/browser/Browser.js +218 -0
  55. package/dist/browser/BrowserConnector.d.ts +19 -0
  56. package/dist/browser/BrowserConnector.js +17 -0
  57. package/dist/browser/BrowserFetcher.d.ts +89 -0
  58. package/dist/browser/BrowserFetcher.js +510 -0
  59. package/dist/browser/BrowserPage.d.ts +74 -0
  60. package/dist/browser/BrowserPage.js +283 -0
  61. package/dist/browser/BrowserRunner.d.ts +39 -0
  62. package/dist/browser/BrowserRunner.js +308 -0
  63. package/dist/browser/Connection.d.ts +42 -0
  64. package/dist/browser/Connection.js +242 -0
  65. package/dist/browser/ConsoleMessage.d.ts +31 -0
  66. package/dist/browser/ConsoleMessage.js +48 -0
  67. package/dist/browser/DOMWorld.d.ts +52 -0
  68. package/dist/browser/DOMWorld.js +272 -0
  69. package/dist/browser/Errors.d.ts +25 -0
  70. package/dist/browser/Errors.js +35 -0
  71. package/dist/browser/EvalTypes.d.ts +27 -0
  72. package/dist/browser/EvalTypes.js +17 -0
  73. package/dist/browser/EventEmitter.d.ts +23 -0
  74. package/dist/browser/EventEmitter.js +53 -0
  75. package/dist/browser/ExecutionContext.d.ts +34 -0
  76. package/dist/browser/ExecutionContext.js +174 -0
  77. package/dist/browser/FrameManager.d.ts +93 -0
  78. package/dist/browser/FrameManager.js +496 -0
  79. package/dist/browser/HTTPRequest.d.ts +28 -0
  80. package/dist/browser/HTTPRequest.js +37 -0
  81. package/dist/browser/HTTPResponse.d.ts +21 -0
  82. package/dist/browser/HTTPResponse.js +41 -0
  83. package/dist/browser/JSHandle.d.ts +35 -0
  84. package/dist/browser/JSHandle.js +90 -0
  85. package/dist/browser/LaunchOptions.d.ts +37 -0
  86. package/dist/browser/LaunchOptions.js +17 -0
  87. package/dist/browser/Launcher.d.ts +9 -0
  88. package/dist/browser/Launcher.js +504 -0
  89. package/dist/browser/LifecycleWatcher.d.ts +29 -0
  90. package/dist/browser/LifecycleWatcher.js +180 -0
  91. package/dist/browser/NetworkEventManager.d.ts +33 -0
  92. package/dist/browser/NetworkEventManager.js +81 -0
  93. package/dist/browser/NetworkManager.d.ts +34 -0
  94. package/dist/browser/NetworkManager.js +235 -0
  95. package/dist/browser/NodeWebSocketTransport.d.ts +17 -0
  96. package/dist/browser/NodeWebSocketTransport.js +87 -0
  97. package/dist/browser/Product.d.ts +16 -0
  98. package/dist/browser/Product.js +17 -0
  99. package/dist/browser/PuppeteerNode.d.ts +40 -0
  100. package/dist/browser/PuppeteerNode.js +81 -0
  101. package/dist/browser/PuppeteerViewport.d.ts +5 -0
  102. package/dist/browser/PuppeteerViewport.js +2 -0
  103. package/dist/browser/ScreenshotOptions.d.ts +14 -0
  104. package/dist/browser/ScreenshotOptions.js +2 -0
  105. package/dist/browser/Target.d.ts +61 -0
  106. package/dist/browser/Target.js +146 -0
  107. package/dist/browser/TaskQueue.d.ts +20 -0
  108. package/dist/browser/TaskQueue.js +47 -0
  109. package/dist/browser/TimeoutSettings.d.ts +23 -0
  110. package/dist/browser/TimeoutSettings.js +62 -0
  111. package/dist/browser/assert.d.ts +1 -0
  112. package/dist/browser/assert.js +9 -0
  113. package/dist/browser/create-browser-fetcher.d.ts +17 -0
  114. package/dist/browser/create-browser-fetcher.js +119 -0
  115. package/dist/browser/devtools-commands.d.ts +270 -0
  116. package/dist/browser/devtools-commands.js +2 -0
  117. package/dist/browser/devtools-types.d.ts +1122 -0
  118. package/dist/browser/devtools-types.js +2 -0
  119. package/dist/browser/get-download-destination.d.ts +1 -0
  120. package/dist/browser/get-download-destination.js +38 -0
  121. package/dist/browser/mitt/index.d.ts +22 -0
  122. package/dist/browser/mitt/index.js +49 -0
  123. package/dist/browser/node.d.ts +2 -0
  124. package/dist/browser/node.js +9 -0
  125. package/dist/browser/revisions.d.ts +21 -0
  126. package/dist/browser/revisions.js +22 -0
  127. package/dist/browser/util.d.ts +47 -0
  128. package/dist/browser/util.js +169 -0
  129. package/dist/browser-log.d.ts +1 -1
  130. package/dist/calculate-ffmpeg-filters.d.ts +1 -1
  131. package/dist/calculate-ffmpeg-filters.d.ts.map +1 -1
  132. package/dist/calculate-ffmpeg-filters.js +2 -2
  133. package/dist/calculate-ffmpeg-filters.js.map +1 -1
  134. package/dist/calculate-sar-dar-pixels.d.ts +9 -0
  135. package/dist/calculate-sar-dar-pixels.js +19 -0
  136. package/dist/can-use-parallel-encoding.d.ts +1 -1
  137. package/dist/combine-videos.d.ts +3 -2
  138. package/dist/combine-videos.js +8 -1
  139. package/dist/combine-videos.js.map +1 -1
  140. package/dist/convert-to-pcm.d.ts +1 -1
  141. package/dist/create-ffmpeg-complex-filter.d.ts +1 -4
  142. package/dist/create-ffmpeg-complex-filter.d.ts.map +1 -1
  143. package/dist/create-ffmpeg-complex-filter.js.map +1 -1
  144. package/dist/create-silent-audio.d.ts +1 -1
  145. package/dist/cycle-browser-tabs.d.ts +3 -2
  146. package/dist/cycle-browser-tabs.d.ts.map +1 -1
  147. package/dist/cycle-browser-tabs.js +9 -2
  148. package/dist/cycle-browser-tabs.js.map +1 -1
  149. package/dist/delay-render-embedded-stack.d.ts +1 -1
  150. package/dist/delete-directory.d.ts.map +1 -1
  151. package/dist/delete-directory.js.map +1 -1
  152. package/dist/ensure-presentation-timestamp.d.ts +1 -0
  153. package/dist/ensure-presentation-timestamp.js +57 -0
  154. package/dist/error-handling/handle-javascript-exception.d.ts +2 -2
  155. package/dist/error-handling/handle-javascript-exception.js +3 -4
  156. package/dist/error-handling/symbolicate-error.d.ts +1 -1
  157. package/dist/error-handling/symbolicateable-error.d.ts +1 -1
  158. package/dist/extract-frame-from-video.d.ts +12 -0
  159. package/dist/extract-frame-from-video.js +247 -0
  160. package/dist/frame-to-ffmpeg-timestamp.d.ts +1 -0
  161. package/dist/frame-to-ffmpeg-timestamp.js +8 -0
  162. package/dist/get-audio-codec-name.d.ts +1 -1
  163. package/dist/get-audio-codec-name.d.ts.map +1 -1
  164. package/dist/get-audio-codec-name.js.map +1 -1
  165. package/dist/get-browser-instance.d.ts +4 -3
  166. package/dist/get-codec-name.d.ts +1 -1
  167. package/dist/get-compositions.d.ts +8 -5
  168. package/dist/get-compositions.d.ts.map +1 -1
  169. package/dist/get-compositions.js +26 -8
  170. package/dist/get-compositions.js.map +1 -1
  171. package/dist/get-duration-from-frame-range.d.ts +1 -1
  172. package/dist/get-extension-from-codec.d.ts +1 -1
  173. package/dist/get-frame-number-length.d.ts +8 -0
  174. package/dist/get-frame-number-length.d.ts.map +1 -0
  175. package/dist/get-frame-number-length.js +30 -0
  176. package/dist/get-frame-number-length.js.map +1 -0
  177. package/dist/get-frame-range.d.ts +3 -0
  178. package/dist/get-frame-range.d.ts.map +1 -0
  179. package/dist/get-frame-range.js +23 -0
  180. package/dist/get-frame-range.js.map +1 -0
  181. package/dist/get-frame-to-render.d.ts +1 -1
  182. package/dist/get-frame-to-render.d.ts.map +1 -1
  183. package/dist/get-frame-to-render.js.map +1 -1
  184. package/dist/get-local-browser-executable.d.ts +1 -1
  185. package/dist/get-local-browser-executable.d.ts.map +1 -1
  186. package/dist/get-local-browser-executable.js +7 -5
  187. package/dist/get-local-browser-executable.js.map +1 -1
  188. package/dist/get-port.js +30 -37
  189. package/dist/get-prores-profile-name.d.ts +1 -1
  190. package/dist/get-video-info.d.ts +8 -0
  191. package/dist/get-video-info.js +50 -0
  192. package/dist/image-format.d.ts +1 -1
  193. package/dist/index.d.ts +46 -14
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +18 -5
  196. package/dist/index.js.map +1 -1
  197. package/dist/is-beyond-last-frame.d.ts +2 -0
  198. package/dist/is-beyond-last-frame.js +12 -0
  199. package/dist/last-frame-from-video-cache.d.ts +14 -0
  200. package/dist/last-frame-from-video-cache.js +55 -0
  201. package/dist/make-assets-download-dir.js +6 -1
  202. package/dist/make-cancel-signal.d.ts +7 -0
  203. package/dist/make-cancel-signal.js +25 -0
  204. package/dist/merge-audio-track.d.ts +1 -1
  205. package/dist/merge-audio-track.js +2 -2
  206. package/dist/mime-db.d.ts +6 -0
  207. package/dist/mime-db.js +8636 -0
  208. package/dist/mime-types.d.ts +2 -0
  209. package/dist/mime-types.js +89 -0
  210. package/dist/min-max.d.ts +3 -0
  211. package/dist/min-max.d.ts.map +1 -0
  212. package/dist/min-max.js +34 -0
  213. package/dist/min-max.js.map +1 -0
  214. package/dist/offthread-video-server.d.ts +15 -0
  215. package/dist/offthread-video-server.js +74 -0
  216. package/dist/open-browser.d.ts +10 -8
  217. package/dist/open-browser.d.ts.map +1 -1
  218. package/dist/open-browser.js +31 -27
  219. package/dist/open-browser.js.map +1 -1
  220. package/dist/prepare-server.d.ts +13 -2
  221. package/dist/prepare-server.js +38 -5
  222. package/dist/preprocess-audio-track.d.ts +3 -2
  223. package/dist/preprocess-audio-track.js +2 -2
  224. package/dist/prespawn-ffmpeg.d.ts +3 -1
  225. package/dist/prespawn-ffmpeg.js +10 -9
  226. package/dist/provide-screenshot.d.ts +4 -4
  227. package/dist/provide-screenshot.d.ts.map +1 -1
  228. package/dist/provide-screenshot.js +1 -2
  229. package/dist/provide-screenshot.js.map +1 -1
  230. package/dist/puppeteer-evaluate.d.ts +1 -1
  231. package/dist/puppeteer-evaluate.js +3 -4
  232. package/dist/puppeteer-screenshot.d.ts +3 -2
  233. package/dist/puppeteer-screenshot.js +7 -5
  234. package/dist/puppeteer-screenshot.js.map +1 -1
  235. package/dist/render-frames.d.ts +13 -8
  236. package/dist/render-frames.js +105 -43
  237. package/dist/render-media.d.ts +19 -9
  238. package/dist/render-media.d.ts.map +1 -1
  239. package/dist/render-media.js +134 -56
  240. package/dist/render-media.js.map +1 -1
  241. package/dist/render-still.d.ts +17 -7
  242. package/dist/render-still.d.ts.map +1 -1
  243. package/dist/render-still.js +58 -19
  244. package/dist/render-still.js.map +1 -1
  245. package/dist/render.d.ts +33 -0
  246. package/dist/render.d.ts.map +1 -0
  247. package/dist/render.js +201 -0
  248. package/dist/render.js.map +1 -0
  249. package/dist/screenshot-dom-element.d.ts +6 -7
  250. package/dist/screenshot-dom-element.d.ts.map +1 -1
  251. package/dist/screenshot-dom-element.js +3 -6
  252. package/dist/screenshot-dom-element.js.map +1 -1
  253. package/dist/screenshot-task.d.ts +3 -2
  254. package/dist/screenshot-task.js +3 -5
  255. package/dist/screenshot-task.js.map +1 -1
  256. package/dist/seek-to-frame.d.ts +2 -2
  257. package/dist/seek-to-frame.d.ts.map +1 -1
  258. package/dist/seek-to-frame.js +2 -2
  259. package/dist/seek-to-frame.js.map +1 -1
  260. package/dist/serve-handler/glob-slash.d.ts +1 -0
  261. package/dist/serve-handler/glob-slash.js +12 -0
  262. package/dist/serve-handler/index.d.ts +4 -0
  263. package/dist/serve-handler/index.js +204 -0
  264. package/dist/serve-handler/is-path-inside.d.ts +1 -0
  265. package/dist/serve-handler/is-path-inside.js +27 -0
  266. package/dist/serve-handler/range-parser.d.ts +13 -0
  267. package/dist/serve-handler/range-parser.js +57 -0
  268. package/dist/serve-static.d.ts +10 -3
  269. package/dist/serve-static.d.ts.map +1 -1
  270. package/dist/serve-static.js +22 -4
  271. package/dist/serve-static.js.map +1 -1
  272. package/dist/set-props-and-env.d.ts +4 -2
  273. package/dist/set-props-and-env.d.ts.map +1 -1
  274. package/dist/set-props-and-env.js +34 -7
  275. package/dist/set-props-and-env.js.map +1 -1
  276. package/dist/stitch-frames-to-video.d.ts +9 -5
  277. package/dist/stitch-frames-to-video.js +57 -18
  278. package/dist/stitcher.d.ts +28 -0
  279. package/dist/stitcher.d.ts.map +1 -0
  280. package/dist/stitcher.js +174 -0
  281. package/dist/stitcher.js.map +1 -0
  282. package/dist/stringify-ffmpeg-filter.d.ts +2 -2
  283. package/dist/stringify-ffmpeg-filter.d.ts.map +1 -1
  284. package/dist/stringify-ffmpeg-filter.js +10 -5
  285. package/dist/stringify-ffmpeg-filter.js.map +1 -1
  286. package/dist/symbolicate-stacktrace.d.ts +1 -1
  287. package/dist/tmp-dir.d.ts.map +1 -1
  288. package/dist/tmp-dir.js +5 -1
  289. package/dist/tmp-dir.js.map +1 -1
  290. package/dist/types.d.ts +1 -1
  291. package/dist/validate-even-dimensions-with-codec.d.ts +1 -1
  292. package/dist/validate-even-dimensions-with-codec.d.ts.map +1 -1
  293. package/dist/validate-even-dimensions-with-codec.js.map +1 -1
  294. package/dist/validate-ffmpeg.d.ts.map +1 -1
  295. package/dist/validate-ffmpeg.js.map +1 -1
  296. package/dist/validate-output-filename.d.ts +1 -1
  297. package/dist/wait-for-symbolication-error-to-be-done.d.ts +3 -0
  298. package/dist/wait-for-symbolication-error-to-be-done.js +34 -0
  299. package/dist/ws/ws-types.d.ts +14 -0
  300. package/dist/ws/ws-types.js +10 -0
  301. package/package.json +9 -10
  302. package/tsconfig.json +0 -1
  303. package/types/ws/index.d.ts +509 -0
  304. package/dist/assets/download-file.d.ts.map +0 -1
  305. package/dist/assets/download-file.js.map +0 -1
  306. package/dist/assets/read-file.d.ts.map +0 -1
  307. package/dist/assets/read-file.js.map +0 -1
  308. package/dist/assets/sanitize-filename.d.ts.map +0 -1
  309. package/dist/assets/sanitize-filename.js.map +0 -1
  310. package/dist/assets/sanitize-filepath.d.ts.map +0 -1
  311. package/dist/assets/sanitize-filepath.js.map +0 -1
  312. package/dist/assets/truncate-utf8-bytes.d.ts.map +0 -1
  313. package/dist/assets/truncate-utf8-bytes.js.map +0 -1
  314. package/dist/can-use-parallel-encoding.d.ts.map +0 -1
  315. package/dist/can-use-parallel-encoding.js.map +0 -1
  316. package/dist/chunk.d.ts.map +0 -1
  317. package/dist/chunk.js.map +0 -1
  318. package/dist/convert-to-pcm.d.ts.map +0 -1
  319. package/dist/convert-to-pcm.js.map +0 -1
  320. package/dist/create-ffmpeg-merge-filter.d.ts.map +0 -1
  321. package/dist/create-ffmpeg-merge-filter.js.map +0 -1
  322. package/dist/create-silent-audio.d.ts.map +0 -1
  323. package/dist/create-silent-audio.js.map +0 -1
  324. package/dist/delay-render-embedded-stack.d.ts.map +0 -1
  325. package/dist/delay-render-embedded-stack.js.map +0 -1
  326. package/dist/ensure-frames-in-order.d.ts.map +0 -1
  327. package/dist/ensure-frames-in-order.js.map +0 -1
  328. package/dist/ensure-output-directory.d.ts.map +0 -1
  329. package/dist/ensure-output-directory.js.map +0 -1
  330. package/dist/error-handling/handle-javascript-exception.d.ts.map +0 -1
  331. package/dist/error-handling/handle-javascript-exception.js.map +0 -1
  332. package/dist/error-handling/symbolicate-error.d.ts.map +0 -1
  333. package/dist/error-handling/symbolicate-error.js.map +0 -1
  334. package/dist/error-handling/symbolicateable-error.d.ts.map +0 -1
  335. package/dist/error-handling/symbolicateable-error.js.map +0 -1
  336. package/dist/ffmpeg-filter-file.d.ts.map +0 -1
  337. package/dist/ffmpeg-filter-file.js.map +0 -1
  338. package/dist/get-browser-instance.d.ts.map +0 -1
  339. package/dist/get-browser-instance.js.map +0 -1
  340. package/dist/get-duration-from-frame-range.d.ts.map +0 -1
  341. package/dist/get-duration-from-frame-range.js.map +0 -1
  342. package/dist/is-serve-url.d.ts.map +0 -1
  343. package/dist/is-serve-url.js.map +0 -1
  344. package/dist/legacy-webpack-config.d.ts.map +0 -1
  345. package/dist/legacy-webpack-config.js.map +0 -1
  346. package/dist/merge-audio-track.d.ts.map +0 -1
  347. package/dist/merge-audio-track.js.map +0 -1
  348. package/dist/p-limit.d.ts.map +0 -1
  349. package/dist/p-limit.js.map +0 -1
  350. package/dist/parse-browser-error-stack.d.ts.map +0 -1
  351. package/dist/parse-browser-error-stack.js.map +0 -1
  352. package/dist/prepare-server.d.ts.map +0 -1
  353. package/dist/prepare-server.js.map +0 -1
  354. package/dist/preprocess-audio-track.d.ts.map +0 -1
  355. package/dist/preprocess-audio-track.js.map +0 -1
  356. package/dist/prespawn-ffmpeg.d.ts.map +0 -1
  357. package/dist/prespawn-ffmpeg.js.map +0 -1
  358. package/dist/puppeteer-evaluate.d.ts.map +0 -1
  359. package/dist/puppeteer-evaluate.js.map +0 -1
  360. package/dist/render-frames.d.ts.map +0 -1
  361. package/dist/render-frames.js.map +0 -1
  362. package/dist/sample-rate.d.ts.map +0 -1
  363. package/dist/sample-rate.js.map +0 -1
  364. package/dist/stitch-frames-to-video.d.ts.map +0 -1
  365. package/dist/stitch-frames-to-video.js.map +0 -1
  366. package/dist/symbolicate-stacktrace.d.ts.map +0 -1
  367. package/dist/symbolicate-stacktrace.js.map +0 -1
  368. package/dist/validate-puppeteer-timeout.d.ts.map +0 -1
  369. package/dist/validate-puppeteer-timeout.js.map +0 -1
  370. package/dist/validate-scale.d.ts.map +0 -1
  371. package/dist/validate-scale.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export declare function mimeLookup(path: string): string | false;
2
+ export declare function mimeContentType(str: string): string | false;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mimeContentType = exports.mimeLookup = void 0;
4
+ const path_1 = require("path");
5
+ const mime_db_1 = require("./mime-db");
6
+ const extensions = {};
7
+ const types = {};
8
+ // Populate the extensions/types maps
9
+ populateMaps(extensions, {});
10
+ function mimeLookup(path) {
11
+ if (!path || typeof path !== 'string') {
12
+ return false;
13
+ }
14
+ // get the extension ("ext" or ".ext" or full path)
15
+ const ext = (0, path_1.extname)('x.' + path)
16
+ .toLowerCase()
17
+ .substr(1);
18
+ if (!ext) {
19
+ return false;
20
+ }
21
+ return types[ext] || false;
22
+ }
23
+ exports.mimeLookup = mimeLookup;
24
+ /**
25
+ * Populate the extensions and types maps.
26
+ * @private
27
+ */
28
+ function populateMaps(exts, _types) {
29
+ // source preference (least -> most)
30
+ const preference = ['nginx', 'apache', undefined, 'iana'];
31
+ Object.keys(mime_db_1.mimeDb).forEach((type) => {
32
+ const mime = mime_db_1.mimeDb[type];
33
+ const _exts = mime.extensions;
34
+ if (!_exts || !_exts.length) {
35
+ return;
36
+ }
37
+ // mime -> extensions
38
+ exts[type] = _exts;
39
+ // extension -> mime
40
+ for (let i = 0; i < _exts.length; i++) {
41
+ const _ext = _exts[i];
42
+ if (_types[_ext]) {
43
+ const from = preference.indexOf(mime_db_1.mimeDb[_types[_ext]].source);
44
+ const to = preference.indexOf(mime.source);
45
+ if (_types[_ext] !== 'application/octet-stream' &&
46
+ (from > to ||
47
+ (from === to && _types[_ext].substr(0, 12) === 'application/'))) {
48
+ // skip the remapping
49
+ continue;
50
+ }
51
+ }
52
+ // set the extension -> mime
53
+ _types[_ext] = type;
54
+ }
55
+ });
56
+ }
57
+ function mimeContentType(str) {
58
+ if (!str || typeof str !== 'string') {
59
+ return false;
60
+ }
61
+ let mime = str.indexOf('/') === -1 ? mimeLookup(str) : str;
62
+ if (!mime) {
63
+ return false;
64
+ }
65
+ if (mime.indexOf('charset') === -1) {
66
+ const _charset = charset(mime);
67
+ if (_charset)
68
+ mime += '; charset=' + _charset.toLowerCase();
69
+ }
70
+ return mime;
71
+ }
72
+ exports.mimeContentType = mimeContentType;
73
+ const EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
74
+ const TEXT_TYPE_REGEXP = /^text\//i;
75
+ function charset(type) {
76
+ if (!type || typeof type !== 'string') {
77
+ return false;
78
+ }
79
+ const match = EXTRACT_TYPE_REGEXP.exec(type);
80
+ const mime = match && mime_db_1.mimeDb[match[1].toLowerCase()];
81
+ if (mime === null || mime === void 0 ? void 0 : mime.charset) {
82
+ return mime.charset;
83
+ }
84
+ // default text/* to utf-8
85
+ if (match && TEXT_TYPE_REGEXP.test(match[1])) {
86
+ return 'UTF-8';
87
+ }
88
+ return false;
89
+ }
@@ -0,0 +1,3 @@
1
+ export declare const min: (arr: number[]) => number;
2
+ export declare const max: (arr: number[]) => number;
3
+ //# sourceMappingURL=min-max.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min-max.d.ts","sourceRoot":"","sources":["../src/min-max.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG,QAAS,MAAM,EAAE,WAchC,CAAC;AAEF,eAAO,MAAM,GAAG,QAAS,MAAM,EAAE,WAchC,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ // Standard library Math.min and Math.max can throw
3
+ // if array length is very long. Fixing this with own implementation
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.max = exports.min = void 0;
6
+ const min = (arr) => {
7
+ if (arr.length === 0) {
8
+ throw new Error('Array of 0 length');
9
+ }
10
+ let smallest = arr[0];
11
+ for (let i = 0; i < arr.length; i++) {
12
+ const elem = arr[i];
13
+ if (elem < smallest) {
14
+ smallest = elem;
15
+ }
16
+ }
17
+ return smallest;
18
+ };
19
+ exports.min = min;
20
+ const max = (arr) => {
21
+ if (arr.length === 0) {
22
+ throw new Error('Array of 0 length');
23
+ }
24
+ let biggest = arr[0];
25
+ for (let i = 0; i < arr.length; i++) {
26
+ const elem = arr[i];
27
+ if (elem > biggest) {
28
+ biggest = elem;
29
+ }
30
+ }
31
+ return biggest;
32
+ };
33
+ exports.max = max;
34
+ //# sourceMappingURL=min-max.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min-max.js","sourceRoot":"","sources":["../src/min-max.ts"],"names":[],"mappings":";AAAA,mDAAmD;AACnD,oEAAoE;;;AAE7D,MAAM,GAAG,GAAG,CAAC,GAAa,EAAE,EAAE;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACrC;IAED,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,GAAG,QAAQ,EAAE;YACpB,QAAQ,GAAG,IAAI,CAAC;SAChB;KACD;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAdW,QAAA,GAAG,OAcd;AAEK,MAAM,GAAG,GAAG,CAAC,GAAa,EAAE,EAAE;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACrC;IAED,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,IAAI,GAAG,OAAO,EAAE;YACnB,OAAO,GAAG,IAAI,CAAC;SACf;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAdW,QAAA,GAAG,OAcd"}
@@ -0,0 +1,15 @@
1
+ import type { RequestListener } from 'http';
2
+ import type { FfmpegExecutable, OffthreadVideoImageFormat } from 'remotion';
3
+ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
4
+ export declare const extractUrlAndSourceFromUrl: (url: string) => {
5
+ src: string;
6
+ time: number;
7
+ imageFormat: OffthreadVideoImageFormat;
8
+ };
9
+ export declare const startOffthreadVideoServer: ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }: {
10
+ ffmpegExecutable: FfmpegExecutable;
11
+ ffprobeExecutable: FfmpegExecutable;
12
+ downloadDir: string;
13
+ onDownload: RenderMediaOnDownload;
14
+ onError: (err: Error) => void;
15
+ }) => RequestListener;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.startOffthreadVideoServer = exports.extractUrlAndSourceFromUrl = void 0;
4
+ const remotion_1 = require("remotion");
5
+ const url_1 = require("url");
6
+ const download_and_map_assets_to_file_1 = require("./assets/download-and-map-assets-to-file");
7
+ const extract_frame_from_video_1 = require("./extract-frame-from-video");
8
+ const extractUrlAndSourceFromUrl = (url) => {
9
+ const parsed = new URL(url, 'http://localhost');
10
+ const query = parsed.search;
11
+ if (!query.trim()) {
12
+ throw new Error('Expected query from ' + url);
13
+ }
14
+ const params = new url_1.URLSearchParams(query);
15
+ const src = params.get('src');
16
+ if (!src) {
17
+ throw new Error('Did not pass `src` parameter');
18
+ }
19
+ const time = params.get('time');
20
+ if (!time) {
21
+ throw new Error('Did not get `time` parameter');
22
+ }
23
+ const imageFormat = params.get('imageFormat');
24
+ if (!imageFormat) {
25
+ throw new TypeError('Did not get `imageFormat` parameter');
26
+ }
27
+ remotion_1.Internals.validateOffthreadVideoImageFormat(imageFormat);
28
+ return {
29
+ src,
30
+ time: parseFloat(time),
31
+ imageFormat: imageFormat,
32
+ };
33
+ };
34
+ exports.extractUrlAndSourceFromUrl = extractUrlAndSourceFromUrl;
35
+ const startOffthreadVideoServer = ({ ffmpegExecutable, ffprobeExecutable, downloadDir, onDownload, onError, }) => {
36
+ return (req, res) => {
37
+ if (!req.url) {
38
+ throw new Error('Request came in without URL');
39
+ }
40
+ if (!req.url.startsWith('/proxy')) {
41
+ res.writeHead(404);
42
+ res.end();
43
+ return;
44
+ }
45
+ const { src, time, imageFormat } = (0, exports.extractUrlAndSourceFromUrl)(req.url);
46
+ res.setHeader('access-control-allow-origin', '*');
47
+ res.setHeader('content-type', `image/${imageFormat === 'jpeg' ? 'jpg' : 'png'}`);
48
+ (0, download_and_map_assets_to_file_1.downloadAsset)({ src, downloadDir, onDownload })
49
+ .then((to) => {
50
+ return (0, extract_frame_from_video_1.extractFrameFromVideo)({
51
+ time,
52
+ src: to,
53
+ ffmpegExecutable,
54
+ ffprobeExecutable,
55
+ imageFormat,
56
+ });
57
+ })
58
+ .then((readable) => {
59
+ if (!readable) {
60
+ throw new Error('no readable from ffmpeg');
61
+ }
62
+ res.writeHead(200);
63
+ res.write(readable);
64
+ res.end();
65
+ })
66
+ .catch((err) => {
67
+ res.writeHead(500);
68
+ res.end();
69
+ onError(err);
70
+ console.log('Error occurred', err);
71
+ });
72
+ };
73
+ };
74
+ exports.startOffthreadVideoServer = startOffthreadVideoServer;
@@ -1,6 +1,7 @@
1
- import puppeteer from 'puppeteer-core';
2
- import { Browser } from 'remotion';
3
- declare const validRenderers: readonly ["angle", "egl", "swiftshader"];
1
+ import type { Browser } from 'remotion';
2
+ import type { Browser as PuppeteerBrowser } from './browser/Browser';
3
+ import type { Viewport } from './browser/PuppeteerViewport';
4
+ declare const validRenderers: readonly ["swangle", "angle", "egl", "swiftshader"];
4
5
  declare type OpenGlRenderer = typeof validRenderers[number];
5
6
  export declare type ChromiumOptions = {
6
7
  ignoreCertificateErrors?: boolean;
@@ -10,9 +11,10 @@ export declare type ChromiumOptions = {
10
11
  };
11
12
  export declare const killAllBrowsers: () => Promise<void>;
12
13
  export declare const openBrowser: (browser: Browser, options?: {
13
- shouldDumpIo?: boolean | undefined;
14
- browserExecutable?: string | null | undefined;
15
- chromiumOptions?: ChromiumOptions | undefined;
16
- forceDeviceScaleFactor?: number | undefined;
17
- } | undefined) => Promise<puppeteer.Browser>;
14
+ shouldDumpIo?: boolean;
15
+ browserExecutable?: string | null;
16
+ chromiumOptions?: ChromiumOptions;
17
+ forceDeviceScaleFactor?: number;
18
+ viewport?: Viewport;
19
+ }) => Promise<PuppeteerBrowser>;
18
20
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAY,MAAM,UAAU,CAAC;AAM5C,QAAA,MAAM,cAAc,0CAA2C,CAAC;AAEhE,aAAK,cAAc,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAEpD,oBAAY,eAAe,GAAG;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAYF,eAAO,MAAM,eAAe,qBAM3B,CAAC;AAEF,eAAO,MAAM,WAAW,YACd,OAAO;;;;kBAMd,QAAQ,iBAAiB,CA4D3B,CAAC"}
1
+ {"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAY,MAAM,UAAU,CAAC;AAM5C,eAAO,MAAM,WAAW,YACd,OAAO;;;kBAKd,QAAQ,iBAAiB,CAsC3B,CAAC"}
@@ -7,14 +7,20 @@ exports.openBrowser = exports.killAllBrowsers = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const os_1 = __importDefault(require("os"));
9
9
  const path_1 = __importDefault(require("path"));
10
- const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
11
10
  const remotion_1 = require("remotion");
11
+ const node_1 = require("./browser/node");
12
12
  const get_local_browser_executable_1 = require("./get-local-browser-executable");
13
- const validRenderers = ['angle', 'egl', 'swiftshader'];
13
+ const validRenderers = ['swangle', 'angle', 'egl', 'swiftshader'];
14
14
  const getOpenGlRenderer = (option) => {
15
15
  const renderer = option !== null && option !== void 0 ? option : remotion_1.Internals.DEFAULT_OPENGL_RENDERER;
16
16
  remotion_1.Internals.validateOpenGlRenderer(renderer);
17
- return renderer;
17
+ if (renderer === 'swangle') {
18
+ return [`--use-gl=angle`, `--use-angle=swiftshader`];
19
+ }
20
+ if (renderer === null) {
21
+ return [];
22
+ }
23
+ return [`--use-gl=${renderer}`];
18
24
  };
19
25
  const browserInstances = [];
20
26
  const killAllBrowsers = async () => {
@@ -27,24 +33,19 @@ const killAllBrowsers = async () => {
27
33
  };
28
34
  exports.killAllBrowsers = killAllBrowsers;
29
35
  const openBrowser = async (browser, options) => {
30
- var _a, _b, _c, _d, _e, _f, _g;
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
31
37
  if (browser === 'firefox' && !remotion_1.Internals.FEATURE_FLAG_FIREFOX_SUPPORT) {
32
38
  throw new TypeError('Firefox supported is not yet turned on. Stay tuned for the future.');
33
39
  }
34
40
  await (0, get_local_browser_executable_1.ensureLocalBrowser)(browser, (_a = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _a !== void 0 ? _a : null);
35
41
  const executablePath = (0, get_local_browser_executable_1.getLocalBrowserExecutable)(browser, (_b = options === null || options === void 0 ? void 0 : options.browserExecutable) !== null && _b !== void 0 ? _b : null);
36
42
  const customGlRenderer = getOpenGlRenderer((_d = (_c = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _c === void 0 ? void 0 : _c.gl) !== null && _d !== void 0 ? _d : null);
37
- const browserInstance = await puppeteer_core_1.default.launch({
43
+ const browserInstance = await node_1.puppeteer.launch({
38
44
  executablePath,
39
45
  product: browser,
40
46
  dumpio: (_e = options === null || options === void 0 ? void 0 : options.shouldDumpIo) !== null && _e !== void 0 ? _e : false,
41
- headless: false,
42
- ignoreDefaultArgs: true,
43
- defaultViewport: {
44
- width: 1920,
45
- height: 1080,
46
- },
47
47
  args: [
48
+ 'about:blank',
48
49
  '--allow-pre-commit-input',
49
50
  '--disable-background-networking',
50
51
  '--enable-features=NetworkService,NetworkServiceInProcess',
@@ -56,9 +57,9 @@ const openBrowser = async (browser, options) => {
56
57
  '--disable-default-apps',
57
58
  '--disable-dev-shm-usage',
58
59
  '--disable-extensions',
59
- // TODO: remove AvoidUnnecessaryBeforeUnloadCheckSync below
60
- // once crbug.com/1324138 is fixed and released.
61
- '--disable-features=Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync',
60
+ '--no-proxy-server',
61
+ "--proxy-server='direct://'",
62
+ '--proxy-bypass-list=*',
62
63
  '--disable-hang-monitor',
63
64
  '--disable-ipc-flooding-protection',
64
65
  '--disable-popup-blocking',
@@ -72,36 +73,34 @@ const openBrowser = async (browser, options) => {
72
73
  '--enable-automation',
73
74
  '--password-store=basic',
74
75
  '--use-mock-keychain',
75
- (options === null || options === void 0 ? void 0 : options.forceDeviceScaleFactor)
76
- ? `--force-device-scale-factor=${options.forceDeviceScaleFactor}`
77
- : null,
78
- // TODO(sadym): remove '--enable-blink-features=IdleDetection'
79
- // once IdleDetection is turned on by default.
80
76
  '--enable-blink-features=IdleDetection',
81
77
  '--export-tagged-pdf',
82
78
  '--intensive-wake-up-throttling-policy=0',
83
- '--headless',
79
+ ((_g = (_f = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _f === void 0 ? void 0 : _f.headless) !== null && _g !== void 0 ? _g : true) ? '--headless' : null,
84
80
  '--no-sandbox',
85
81
  '--disable-setuid-sandbox',
86
- '--disable-dev-shm-usage',
87
- customGlRenderer ? `--use-gl=${customGlRenderer}` : null,
82
+ ...customGlRenderer,
88
83
  '--disable-background-media-suspend',
89
84
  process.platform === 'linux' ? '--single-process' : null,
90
85
  '--allow-running-insecure-content',
91
86
  '--disable-component-update',
92
87
  '--disable-domain-reliability',
93
- '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process',
88
+ '--disable-features=AudioServiceOutOfProcess,IsolateOrigins,site-per-process,Translate,BackForwardCache,AvoidUnnecessaryBeforeUnloadCheckSync,IntensiveWakeUpThrottling',
94
89
  '--disable-print-preview',
95
90
  '--disable-site-isolation-trials',
96
- '--disk-cache-size=33554432',
91
+ '--disk-cache-size=268435456',
97
92
  '--hide-scrollbars',
98
93
  '--no-default-browser-check',
99
94
  '--no-pings',
95
+ '--font-render-hinting=none',
100
96
  '--no-zygote',
101
- ((_f = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _f === void 0 ? void 0 : _f.ignoreCertificateErrors)
97
+ (options === null || options === void 0 ? void 0 : options.forceDeviceScaleFactor)
98
+ ? `--force-device-scale-factor=${options.forceDeviceScaleFactor}`
99
+ : null,
100
+ ((_h = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _h === void 0 ? void 0 : _h.ignoreCertificateErrors)
102
101
  ? '--ignore-certificate-errors'
103
102
  : null,
104
- ...(((_g = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _g === void 0 ? void 0 : _g.disableWebSecurity)
103
+ ...(((_j = options === null || options === void 0 ? void 0 : options.chromiumOptions) === null || _j === void 0 ? void 0 : _j.disableWebSecurity)
105
104
  ? [
106
105
  '--disable-web-security',
107
106
  '--user-data-dir=' +
@@ -109,9 +108,14 @@ const openBrowser = async (browser, options) => {
109
108
  ]
110
109
  : []),
111
110
  ].filter(Boolean),
111
+ defaultViewport: (_k = options === null || options === void 0 ? void 0 : options.viewport) !== null && _k !== void 0 ? _k : {
112
+ height: 720,
113
+ width: 1280,
114
+ deviceScaleFactor: 1,
115
+ },
112
116
  });
113
117
  const pages = await browserInstance.pages();
114
- pages.forEach((p) => p.close());
118
+ await pages[0].close();
115
119
  browserInstances.push(browserInstance);
116
120
  return browserInstance;
117
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../src/open-browser.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAuC;AACvC,uCAA4C;AAC5C,iFAGwC;AAEjC,MAAM,WAAW,GAAG,KAAK,EAC/B,OAAgB,EAChB,OAGC,EAC4B,EAAE;;IAC/B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,oBAAS,CAAC,4BAA4B,EAAE;QACrE,MAAM,IAAI,SAAS,CAClB,oEAAoE,CACpE,CAAC;KACF;IAED,MAAM,IAAA,iDAAkB,EAAC,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,IAAI,CAAC,CAAC;IAEtE,MAAM,cAAc,GAAG,MAAM,IAAA,wDAAyB,EACrD,OAAO,EACP,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,mCAAI,IAAI,CAClC,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,wBAAS,CAAC,MAAM,CAAC;QAC9C,cAAc;QACd,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,KAAK;QACtC,IAAI,EAAE;YACL,cAAc;YACd,0BAA0B;YAC1B,yBAAyB;YACzB,gBAAgB;YAChB,oCAAoC;YACpC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI;YACxD,kCAAkC;YAClC,4BAA4B;YAC5B,8BAA8B;YAC9B,6EAA6E;YAC7E,yBAAyB;YACzB,iCAAiC;YACjC,4BAA4B;YAC5B,mBAAmB;YACnB,4BAA4B;YAC5B,YAAY;YACZ,aAAa,EAAE,6EAA6E;SAC5F,CAAC,MAAM,CAAC,OAAO,CAAa;KAC7B,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACxB,CAAC,CAAC;AA5CW,QAAA,WAAW,eA4CtB"}
@@ -1,4 +1,15 @@
1
- export declare const prepareServer: (webpackConfigOrServeUrl: string) => Promise<{
1
+ import type { FfmpegExecutable } from 'remotion';
2
+ import type { RenderMediaOnDownload } from './assets/download-and-map-assets-to-file';
3
+ export declare const prepareServer: ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }: {
4
+ webpackConfigOrServeUrl: string;
5
+ downloadDir: string;
6
+ onDownload: RenderMediaOnDownload;
7
+ onError: (err: Error) => void;
8
+ ffmpegExecutable: FfmpegExecutable;
9
+ ffprobeExecutable: FfmpegExecutable;
10
+ port: number | null;
11
+ }) => Promise<{
2
12
  serveUrl: string;
3
- closeServer: () => Promise<void>;
13
+ closeServer: () => Promise<unknown>;
14
+ offthreadPort: number;
4
15
  }>;
@@ -1,19 +1,52 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.prepareServer = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
4
9
  const is_serve_url_1 = require("./is-serve-url");
5
10
  const serve_static_1 = require("./serve-static");
6
- const prepareServer = async (webpackConfigOrServeUrl) => {
11
+ const wait_for_symbolication_error_to_be_done_1 = require("./wait-for-symbolication-error-to-be-done");
12
+ const prepareServer = async ({ downloadDir, ffmpegExecutable, ffprobeExecutable, onDownload, onError, webpackConfigOrServeUrl, port, }) => {
7
13
  if ((0, is_serve_url_1.isServeUrl)(webpackConfigOrServeUrl)) {
14
+ const { port: offthreadPort, close: closeProxy } = await (0, serve_static_1.serveStatic)(null, {
15
+ downloadDir,
16
+ onDownload,
17
+ onError,
18
+ ffmpegExecutable,
19
+ ffprobeExecutable,
20
+ port,
21
+ });
8
22
  return Promise.resolve({
9
23
  serveUrl: webpackConfigOrServeUrl,
10
- closeServer: () => Promise.resolve(undefined),
24
+ closeServer: () => {
25
+ return closeProxy();
26
+ },
27
+ offthreadPort,
11
28
  });
12
29
  }
13
- const { port, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl);
30
+ // Check if the path has a `index.html` file
31
+ const indexFile = path_1.default.join(webpackConfigOrServeUrl, 'index.html');
32
+ const exists = (0, fs_1.existsSync)(indexFile);
33
+ if (!exists) {
34
+ throw new Error(`Tried to serve the Webpack bundle on a HTTP server, but the file ${indexFile} does not exist. Is this a valid path to a Webpack bundle?`);
35
+ }
36
+ const { port: serverPort, close } = await (0, serve_static_1.serveStatic)(webpackConfigOrServeUrl, {
37
+ downloadDir,
38
+ onDownload,
39
+ onError,
40
+ ffmpegExecutable,
41
+ ffprobeExecutable,
42
+ port,
43
+ });
14
44
  return Promise.resolve({
15
- closeServer: () => close(),
16
- serveUrl: `http://localhost:${port}`,
45
+ closeServer: () => {
46
+ return (0, wait_for_symbolication_error_to_be_done_1.waitForSymbolicationToBeDone)().then(() => close());
47
+ },
48
+ serveUrl: `http://localhost:${serverPort}`,
49
+ offthreadPort: serverPort,
17
50
  });
18
51
  };
19
52
  exports.prepareServer = prepareServer;
@@ -1,7 +1,8 @@
1
- import { FfmpegExecutable } from 'remotion';
2
- import { MediaAsset } from './assets/types';
1
+ import type { FfmpegExecutable } from 'remotion';
2
+ import type { MediaAsset } from './assets/types';
3
3
  declare type Options = {
4
4
  ffmpegExecutable: FfmpegExecutable;
5
+ ffprobeExecutable: FfmpegExecutable;
5
6
  outName: string;
6
7
  asset: MediaAsset;
7
8
  expectedFrames: number;
@@ -10,8 +10,8 @@ const calculate_ffmpeg_filters_1 = require("./calculate-ffmpeg-filters");
10
10
  const ffmpeg_filter_file_1 = require("./ffmpeg-filter-file");
11
11
  const p_limit_1 = require("./p-limit");
12
12
  const resolve_asset_src_1 = require("./resolve-asset-src");
13
- const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, outName, asset, expectedFrames, fps, }) => {
14
- const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)((0, resolve_asset_src_1.resolveAssetSrc)(asset.src));
13
+ const preprocessAudioTrackUnlimited = async ({ ffmpegExecutable, ffprobeExecutable, outName, asset, expectedFrames, fps, }) => {
14
+ const { channels, duration } = await (0, get_audio_channels_1.getAudioChannelsAndDuration)((0, resolve_asset_src_1.resolveAssetSrc)(asset.src), ffprobeExecutable);
15
15
  const filter = (0, calculate_ffmpeg_filters_1.calculateFfmpegFilter)({
16
16
  asset,
17
17
  durationInFrames: expectedFrames,
@@ -1,5 +1,6 @@
1
1
  import execa from 'execa';
2
- import { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
2
+ import type { Codec, FfmpegExecutable, ImageFormat, PixelFormat, ProResProfile } from 'remotion';
3
+ import type { CancelSignal } from './make-cancel-signal';
3
4
  declare type PreSticherOptions = {
4
5
  fps: number;
5
6
  width: number;
@@ -13,6 +14,7 @@ declare type PreSticherOptions = {
13
14
  verbose: boolean;
14
15
  ffmpegExecutable: FfmpegExecutable | undefined;
15
16
  imageFormat: ImageFormat;
17
+ signal: CancelSignal;
16
18
  };
17
19
  export declare const prespawnFfmpeg: (options: PreSticherOptions) => Promise<{
18
20
  task: execa.ExecaChildProcess<string>;
@@ -57,15 +57,13 @@ const prespawnFfmpeg = async (options) => {
57
57
  // -c:v is the same as -vcodec as -codec:video
58
58
  // and specified the video codec.
59
59
  ['-c:v', encoderName],
60
- ...[
61
- proResProfileName ? ['-profile:v', proResProfileName] : null,
62
- supportsCrf ? ['-crf', String(crf)] : null,
63
- ['-pix_fmt', pixelFormat],
64
- // Without explicitly disabling auto-alt-ref,
65
- // transparent WebM generation doesn't work
66
- pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
67
- ['-b:v', '1M'],
68
- ],
60
+ proResProfileName ? ['-profile:v', proResProfileName] : null,
61
+ supportsCrf ? ['-crf', String(crf)] : null,
62
+ ['-pix_fmt', pixelFormat],
63
+ // Without explicitly disabling auto-alt-ref,
64
+ // transparent WebM generation doesn't work
65
+ pixelFormat === 'yuva420p' ? ['-auto-alt-ref', '0'] : null,
66
+ ['-b:v', '1M'],
69
67
  '-y',
70
68
  options.outputLocation,
71
69
  ];
@@ -75,6 +73,9 @@ const prespawnFfmpeg = async (options) => {
75
73
  }
76
74
  const ffmpegString = ffmpegArgs.flat(2).filter(Boolean);
77
75
  const task = (0, execa_1.default)((_f = options.ffmpegExecutable) !== null && _f !== void 0 ? _f : 'ffmpeg', ffmpegString);
76
+ options.signal(() => {
77
+ task.kill();
78
+ });
78
79
  let ffmpegOutput = '';
79
80
  (_g = task.stderr) === null || _g === void 0 ? void 0 : _g.on('data', (data) => {
80
81
  const str = data.toString();
@@ -1,11 +1,11 @@
1
- import puppeteer from 'puppeteer-core';
2
- import { ImageFormat } from 'remotion';
1
+ import type { ImageFormat } from 'remotion';
2
+ import type { Page } from './browser/BrowserPage';
3
3
  export declare const provideScreenshot: ({ page, imageFormat, options, quality, }: {
4
- page: puppeteer.Page;
4
+ page: Page;
5
5
  imageFormat: ImageFormat;
6
6
  quality: number | undefined;
7
7
  options: {
8
8
  frame: number;
9
- output?: string;
9
+ output: string | null;
10
10
  };
11
11
  }) => Promise<Buffer>;
@@ -1 +1 @@
1
- {"version":3,"file":"provide-screenshot.d.ts","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAGrC,eAAO,MAAM,iBAAiB;UAMvB,UAAU,IAAI;iBACP,WAAW;aACf,MAAM,GAAG,SAAS;aAClB;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB;MACE,QAAQ,MAAM,CAUjB,CAAC"}
1
+ {"version":3,"file":"provide-screenshot.d.ts","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAGrC,eAAO,MAAM,iBAAiB;UAMvB,UAAU,IAAI;iBACP,WAAW;aACf,MAAM,GAAG,SAAS;aAClB;QACR,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB;MACE,QAAQ,MAAM,CAWjB,CAAC"}
@@ -2,12 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.provideScreenshot = void 0;
4
4
  const screenshot_dom_element_1 = require("./screenshot-dom-element");
5
- const provideScreenshot = async ({ page, imageFormat, options, quality, }) => {
5
+ const provideScreenshot = ({ page, imageFormat, options, quality, }) => {
6
6
  return (0, screenshot_dom_element_1.screenshotDOMElement)({
7
7
  page,
8
8
  opts: {
9
9
  path: options.output,
10
- selector: '#remotion-canvas',
11
10
  },
12
11
  imageFormat,
13
12
  quality,
@@ -1 +1 @@
1
- {"version":3,"file":"provide-screenshot.js","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":";;;AAEA,qEAA8D;AAEvD,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACvC,IAAI,EACJ,WAAW,EACX,OAAO,EACP,OAAO,GASP,EAAmB,EAAE;IACrB,OAAO,IAAA,6CAAoB,EAAC;QAC3B,IAAI;QACJ,IAAI,EAAE;YACL,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,kBAAkB;SAC5B;QACD,WAAW;QACX,OAAO;KACP,CAAC,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,iBAAiB,qBAuB5B"}
1
+ {"version":3,"file":"provide-screenshot.js","sourceRoot":"","sources":["../src/provide-screenshot.ts"],"names":[],"mappings":";;;AAEA,qEAA8D;AAEvD,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACvC,IAAI,EACJ,WAAW,EACX,OAAO,EACP,OAAO,GASP,EAAmB,EAAE;IACrB,+BAA+B;IAC/B,OAAO,IAAA,6CAAoB,EAAC;QAC3B,IAAI;QACJ,IAAI,EAAE;YACL,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,QAAQ,EAAE,kBAAkB;SAC5B;QACD,WAAW;QACX,OAAO;KACP,CAAC,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,iBAAiB,qBAwB5B"}
@@ -1,4 +1,4 @@
1
- import { Page } from 'puppeteer-core';
1
+ import type { Page } from './browser/BrowserPage';
2
2
  export declare function puppeteerEvaluateWithCatch<ReturnType>({ page, pageFunction, frame, args, }: {
3
3
  page: Page;
4
4
  pageFunction: Function | string;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.puppeteerEvaluateWithCatch = void 0;
4
- /* eslint-disable no-new */
5
- const puppeteer_core_1 = require("puppeteer-core");
4
+ const JSHandle_1 = require("./browser/JSHandle");
6
5
  const symbolicateable_error_1 = require("./error-handling/symbolicateable-error");
7
6
  const parse_browser_error_stack_1 = require("./parse-browser-error-stack");
8
7
  const EVALUATION_SCRIPT_URL = '__puppeteer_evaluation_script__';
@@ -33,7 +32,7 @@ function isString(obj) {
33
32
  async function puppeteerEvaluateWithCatch({ page, pageFunction, frame, args, }) {
34
33
  var _a, _b, _c, _d, _e, _f, _g;
35
34
  const contextId = (await page.mainFrame().executionContext())._contextId;
36
- const client = page._client;
35
+ const client = page._client();
37
36
  const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;
38
37
  if (isString(pageFunction)) {
39
38
  const expression = pageFunction;
@@ -140,7 +139,7 @@ function convertArgument(arg) {
140
139
  return { unserializableValue: '-Infinity' };
141
140
  if (Object.is(arg, NaN))
142
141
  return { unserializableValue: 'NaN' };
143
- const objectHandle = arg && arg instanceof puppeteer_core_1.JSHandle ? arg : null;
142
+ const objectHandle = arg && arg instanceof JSHandle_1.JSHandle ? arg : null;
144
143
  if (objectHandle) {
145
144
  if (objectHandle._disposed)
146
145
  throw new Error('JSHandle is disposed!');
@@ -1,2 +1,3 @@
1
- import { Page, ScreenshotOptions } from 'puppeteer-core';
2
- export declare const screenshot: (page: Page, options?: ScreenshotOptions) => Promise<Buffer | string | void>;
1
+ import type { Page } from './browser/BrowserPage';
2
+ import type { ScreenshotOptions } from './browser/ScreenshotOptions';
3
+ export declare const screenshot: (page: Page, options: ScreenshotOptions) => Promise<Buffer | string | void>;