@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
@@ -5,21 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getAudioChannelsAndDuration = void 0;
7
7
  const execa_1 = __importDefault(require("execa"));
8
- async function getAudioChannelsAndDuration(path) {
8
+ const p_limit_1 = require("../p-limit");
9
+ const durationOfAssetCache = {};
10
+ const limit = (0, p_limit_1.pLimit)(1);
11
+ async function getAudioChannelsAndDurationUnlimited(src, ffprobeExecutable) {
12
+ if (durationOfAssetCache[src]) {
13
+ return durationOfAssetCache[src];
14
+ }
9
15
  const args = [
10
16
  ['-v', 'error'],
11
17
  ['-show_entries', 'stream=channels:format=duration'],
12
18
  ['-of', 'default=nw=1'],
13
- [path],
19
+ [src],
14
20
  ]
15
21
  .reduce((acc, val) => acc.concat(val), [])
16
22
  .filter(Boolean);
17
- const task = await (0, execa_1.default)('ffprobe', args);
23
+ const task = await (0, execa_1.default)(ffprobeExecutable !== null && ffprobeExecutable !== void 0 ? ffprobeExecutable : 'ffprobe', args);
18
24
  const channels = task.stdout.match(/channels=([0-9]+)/);
19
25
  const duration = task.stdout.match(/duration=([0-9.]+)/);
20
- return {
26
+ const result = {
21
27
  channels: channels ? parseInt(channels[1], 10) : 0,
22
28
  duration: duration ? parseFloat(duration[1]) : null,
23
29
  };
30
+ durationOfAssetCache[src] = result;
31
+ return result;
24
32
  }
33
+ const getAudioChannelsAndDuration = (src, ffprobeExecutable) => {
34
+ return limit(() => getAudioChannelsAndDurationUnlimited(src, ffprobeExecutable));
35
+ };
25
36
  exports.getAudioChannelsAndDuration = getAudioChannelsAndDuration;
@@ -1 +1 @@
1
- {"version":3,"file":"get-audio-channels.js","sourceRoot":"","sources":["../../src/assets/get-audio-channels.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAEnB,KAAK,UAAU,2BAA2B,CAAC,IAAY;IAI7D,MAAM,IAAI,GAAG;QACZ,CAAC,IAAI,EAAE,OAAO,CAAC;QACf,CAAC,eAAe,EAAE,iCAAiC,CAAC;QACpD,CAAC,KAAK,EAAE,cAAc,CAAC;QACvB,CAAC,IAAI,CAAC;KACN;SACC,MAAM,CAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;SAC5D,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,MAAM,IAAI,GAAG,MAAM,IAAA,eAAK,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAEzD,OAAO;QACN,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;KACnD,CAAC;AACH,CAAC;AAtBD,kEAsBC"}
1
+ {"version":3,"file":"get-audio-channels.js","sourceRoot":"","sources":["../../src/assets/get-audio-channels.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAEnB,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAClD,MAAM,IAAI,GAAG;QACZ,CAAC,IAAI,EAAE,OAAO,CAAC;QACf,CAAC,eAAe,EAAE,iBAAiB,CAAC;QACpC,CAAC,KAAK,EAAE,cAAc,CAAC;QACvB,CAAC,IAAI,CAAC;KACN;SACC,MAAM,CAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;SAC5D,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,MAAM,IAAI,GAAG,MAAM,IAAA,eAAK,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACvC,OAAO,CAAC,CAAC;KACT;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;QACpB,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;KAC5E;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AArBD,4CAqBC"}
@@ -0,0 +1,3 @@
1
+ import { Assets, MediaAsset } from './types';
2
+ export declare const getSimultaneousAssets: (allAssets: Assets, asset: MediaAsset) => MediaAsset[];
3
+ //# sourceMappingURL=get-simulatenous-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-simulatenous-assets.d.ts","sourceRoot":"","sources":["../../src/assets/get-simulatenous-assets.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,SAAS,CAAC;AAE3C,eAAO,MAAM,qBAAqB,6BAA8B,UAAU,iBAIzE,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ // Determine how many other audio tracks are not being finished yet given
3
+ // an audio track. This includes audio tracks that will be played in the future.
4
+ // Because of split-assets-into-segments, we are guaranteed to have no overlapping
5
+ // audio tracks.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getSimultaneousAssets = void 0;
8
+ const getSimultaneousAssets = (allAssets, asset) => {
9
+ return allAssets.filter((a) => {
10
+ return a.startInVideo >= asset.startInVideo;
11
+ });
12
+ };
13
+ exports.getSimultaneousAssets = getSimultaneousAssets;
14
+ //# sourceMappingURL=get-simulatenous-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-simulatenous-assets.js","sourceRoot":"","sources":["../../src/assets/get-simulatenous-assets.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,gFAAgF;AAChF,kFAAkF;AAClF,gBAAgB;;;AAIT,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,KAAiB,EAAE,EAAE;IAC7E,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,OAAO,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,CAAC;IAC7C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAJW,QAAA,qBAAqB,yBAIhC"}
@@ -29,7 +29,10 @@ const readFile = async (url, redirectsSoFar = 0) => {
29
29
  throw new Error(`Too many redirects while downloading ${url}`);
30
30
  }
31
31
  const file = await readFileWithoutRedirect(url);
32
- if (file.statusCode === 302 || file.statusCode === 301) {
32
+ if (file.statusCode === 302 ||
33
+ file.statusCode === 301 ||
34
+ file.statusCode === 307 ||
35
+ file.statusCode === 308) {
33
36
  if (!file.headers.location) {
34
37
  throw new Error(`Received a status code ${file.statusCode} but no "Location" header while calling ${file.headers.location}`);
35
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"round-volume-to-avoid-stack-overflow.d.ts","sourceRoot":"","sources":["../../src/assets/round-volume-to-avoid-stack-overflow.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,+BAA+B,WAAY,MAAM,KAAG,MAOhE,CAAC"}
1
+ {"version":3,"file":"round-volume-to-avoid-stack-overflow.d.ts","sourceRoot":"","sources":["../../src/assets/round-volume-to-avoid-stack-overflow.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,eAAO,MAAM,+BAA+B,WAAY,MAAM,KAAG,MAOhE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"round-volume-to-avoid-stack-overflow.js","sourceRoot":"","sources":["../../src/assets/round-volume-to-avoid-stack-overflow.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,wHAAwH;AACxH,iDAAiD;AACjD,4DAA4D;AAC5D,qEAAqE;AACrE,6CAA6C;AAC7C,kFAAkF;AAClF,iDAAiD;;;AAEjD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAE3B,MAAM,+BAA+B,GAAG,CAAC,MAAc,EAAU,EAAE;IACzE,OAAO,MAAM,CACZ,CACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC,sBAAsB,GAAG,CAAC,CAAC,CAC5B,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,+BAA+B,mCAO1C"}
1
+ {"version":3,"file":"round-volume-to-avoid-stack-overflow.js","sourceRoot":"","sources":["../../src/assets/round-volume-to-avoid-stack-overflow.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,wHAAwH;AACxH,iDAAiD;AACjD,4DAA4D;AAC5D,qEAAqE;AACrE,6CAA6C;AAC7C,kFAAkF;AAClF,iDAAiD;;;AAEpC,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAElC,MAAM,+BAA+B,GAAG,CAAC,MAAc,EAAU,EAAE;IACzE,OAAO,MAAM,CACZ,CACC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,8BAAsB,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC,8BAAsB,GAAG,CAAC,CAAC,CAC5B,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,+BAA+B,mCAO1C"}
@@ -0,0 +1,6 @@
1
+ import { MediaAsset } from './types';
2
+ export declare const splitAssetsIntoSegments: ({ assets, duration, }: {
3
+ assets: MediaAsset[];
4
+ duration: number;
5
+ }) => MediaAsset[];
6
+ //# sourceMappingURL=split-assets-into-segments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-assets-into-segments.d.ts","sourceRoot":"","sources":["../../src/assets/split-assets-into-segments.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAQnC,eAAO,MAAM,uBAAuB;YAI3B,UAAU,EAAE;cACV,MAAM;MACb,UAAU,EAuFb,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ // Because of how FFMPEG filters work, we might have to split 1 audio
3
+ // track into multiple filters to avoid unexpected volume changes.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.splitAssetsIntoSegments = void 0;
6
+ const remotion_1 = require("remotion");
7
+ const asset_is_used_at_time_1 = require("./asset-is-used-at-time");
8
+ const flatten_volume_array_1 = require("./flatten-volume-array");
9
+ // If there is a track from 0-10 seconds and one from 5-15 seconds
10
+ // we need to create the following segments:
11
+ // 1. Segment from 0-5 seconds with 1 audio source and volume=1
12
+ // 2. Segment from 5-10 seconds with 2 audio sources and volume=2 for each
13
+ // 3. Segment from 10-15 seconds with 1 audio source and volume=1
14
+ const splitAssetsIntoSegments = ({ assets, duration, }) => {
15
+ const timeIds = new Array(duration).fill(true).map((_, frame) => {
16
+ const sourcesAtThisTime = assets.filter((a) => {
17
+ return (0, asset_is_used_at_time_1.assetIsUsedAtTime)(a, frame);
18
+ });
19
+ return sourcesAtThisTime.map((s) => s.src).join(',');
20
+ });
21
+ const framesAtWhichToCut = [
22
+ 0,
23
+ ...timeIds
24
+ .map((t, i) => {
25
+ return {
26
+ timeId: t,
27
+ index: i,
28
+ };
29
+ })
30
+ .filter(({ index, timeId }) => {
31
+ return index > 0 && timeId !== timeIds[index - 1];
32
+ })
33
+ .map(({ index }) => index),
34
+ duration,
35
+ ];
36
+ return assets
37
+ .map((a) => {
38
+ return framesAtWhichToCut.map((cutEnd, i) => {
39
+ const cutStart = i === 0 ? 0 : framesAtWhichToCut[i - 1];
40
+ const assetStart = a.startInVideo;
41
+ const assetEnd = a.startInVideo + a.duration;
42
+ const amountOfFramesThatGetCut = cutStart - assetStart;
43
+ // Video goes beyond cut
44
+ if (assetStart < cutEnd && assetEnd > cutEnd) {
45
+ const newDuration = cutEnd - cutStart;
46
+ return {
47
+ ...a,
48
+ startInVideo: cutStart,
49
+ volume: typeof a.volume === 'number'
50
+ ? a.volume
51
+ : a.volume.slice(amountOfFramesThatGetCut, newDuration + amountOfFramesThatGetCut),
52
+ duration: cutEnd - cutStart,
53
+ trimLeft: a.trimLeft + amountOfFramesThatGetCut,
54
+ };
55
+ }
56
+ // Video starts before cut
57
+ if (assetStart < cutStart && assetEnd > cutStart) {
58
+ const newDuration = a.duration - amountOfFramesThatGetCut;
59
+ return {
60
+ ...a,
61
+ startInVideo: cutStart,
62
+ volume: typeof a.volume === 'number'
63
+ ? a.volume
64
+ : a.volume.slice(amountOfFramesThatGetCut, newDuration + amountOfFramesThatGetCut),
65
+ duration: newDuration,
66
+ trimLeft: a.trimLeft + amountOfFramesThatGetCut,
67
+ };
68
+ }
69
+ // Video is inside cut, leave
70
+ if (assetStart >= cutStart && assetEnd <= cutEnd) {
71
+ return a;
72
+ }
73
+ // Video is left from cut
74
+ if (assetStart <= cutStart && assetEnd <= cutStart) {
75
+ return null;
76
+ }
77
+ // Video is right from cut
78
+ if (assetStart >= cutStart && assetEnd >= cutStart) {
79
+ return null;
80
+ }
81
+ throw new Error('Unhandled');
82
+ });
83
+ })
84
+ .flat(2)
85
+ .filter(remotion_1.Internals.truthy)
86
+ .map((a) => (0, flatten_volume_array_1.convertAssetToFlattenedVolume)(a));
87
+ };
88
+ exports.splitAssetsIntoSegments = splitAssetsIntoSegments;
89
+ //# sourceMappingURL=split-assets-into-segments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"split-assets-into-segments.js","sourceRoot":"","sources":["../../src/assets/split-assets-into-segments.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TAsset } from 'remotion';
1
+ import type { TAsset } from 'remotion';
2
2
  export declare type UnsafeAsset = Omit<TAsset, 'frame' | 'id' | 'volume' | 'mediaFrame'> & {
3
3
  startInVideo: number;
4
4
  duration: number | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,oBAAY,WAAW,GAAG,IAAI,CAC7B,MAAM,EACN,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACxC,GAAG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE5C,oBAAY,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,cACrB,MAAM,EAAE,qBACA,MAAM,KACvB,MAuBF,CAAC;AAEF,oBAAY,MAAM,GAAG,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAKhC,oBAAY,WAAW,GAAG,IAAI,CAC7B,MAAM,EACN,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,YAAY,CACxC,GAAG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE5C,oBAAY,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,MAAM,GAAG,UAAU,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":";;;AA0BO,MAAM,oBAAoB,GAAG,CACnC,SAAmB,EACnB,iBAAyB,EAChB,EAAE;IACX,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY,EAAE;QAClB,OAAO,iBAAiB,CAAC;KACzB;IAED,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC;IAEnC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAC/C,CAAC;IACF,IAAI,CAAC,WAAW,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,IAAI,SAAS,CAClB,6HAA6H,CAC7H,CAAC;KACF;IAED,OAAO;QACN,GAAG,iBAAiB;QACpB,GAAG,EAAE,WAAW,CAAC,GAAG;KACpB,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,oBAAoB,wBA0B/B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/assets/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export declare const assetsToFfmpegInputs: ({ assets, isAudioOnly, frameCount, fps, }: {
2
+ assets: string[];
3
+ isAudioOnly: boolean;
4
+ frameCount: number;
5
+ fps: number;
6
+ }) => [string, string][];
7
+ //# sourceMappingURL=assets-to-ffmpeg-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets-to-ffmpeg-inputs.d.ts","sourceRoot":"","sources":["../src/assets-to-ffmpeg-inputs.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB;YAMxB,MAAM,EAAE;iBACH,OAAO;gBACR,MAAM;SACb,MAAM;MACR,CAAC,MAAM,EAAE,MAAM,CAAC,EAUnB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetsToFfmpegInputs = void 0;
4
+ const assetsToFfmpegInputs = ({ assets, isAudioOnly, frameCount, fps, }) => {
5
+ if (isAudioOnly && assets.length === 0) {
6
+ return [
7
+ ['-f', 'lavfi'],
8
+ ['-i', 'anullsrc'],
9
+ ['-t', (frameCount / fps).toFixed(4)],
10
+ ];
11
+ }
12
+ return assets.map((path) => ['-i', path]);
13
+ };
14
+ exports.assetsToFfmpegInputs = assetsToFfmpegInputs;
15
+ //# sourceMappingURL=assets-to-ffmpeg-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets-to-ffmpeg-inputs.js","sourceRoot":"","sources":["../src/assets-to-ffmpeg-inputs.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,CAAC,EACpC,MAAM,EACN,WAAW,EACX,UAAU,EACV,GAAG,GAMH,EAAsB,EAAE;IACxB,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvC,OAAO;YACN,CAAC,IAAI,EAAE,OAAO,CAAC;YACf,CAAC,IAAI,EAAE,UAAU,CAAC;YAClB,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACrC,CAAC;KACF;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Copyright 2017 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { Page } from './BrowserPage';
17
+ import type { Connection } from './Connection';
18
+ import { EventEmitter } from './EventEmitter';
19
+ import type { Viewport } from './PuppeteerViewport';
20
+ import { Target } from './Target';
21
+ declare type BrowserCloseCallback = () => Promise<void> | void;
22
+ interface WaitForTargetOptions {
23
+ timeout?: number;
24
+ }
25
+ export declare const enum BrowserEmittedEvents {
26
+ TargetChanged = "targetchanged",
27
+ TargetCreated = "targetcreated",
28
+ Closed = "closed"
29
+ }
30
+ export declare class Browser extends EventEmitter {
31
+ #private;
32
+ static _create({ connection, contextIds, defaultViewport, closeCallback, }: {
33
+ connection: Connection;
34
+ contextIds: string[];
35
+ defaultViewport: Viewport;
36
+ closeCallback?: BrowserCloseCallback;
37
+ }): Promise<Browser>;
38
+ get _targets(): Map<string, Target>;
39
+ constructor(connection: Connection, contextIds: string[], defaultViewport: Viewport, closeCallback?: BrowserCloseCallback);
40
+ browserContexts(): BrowserContext[];
41
+ newPage(): Promise<Page>;
42
+ _createPageInContext(contextId?: string): Promise<Page>;
43
+ targets(): Target[];
44
+ waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: WaitForTargetOptions): Promise<Target>;
45
+ pages(): Promise<Page[]>;
46
+ close(): Promise<void>;
47
+ disconnect(): void;
48
+ }
49
+ export declare class BrowserContext extends EventEmitter {
50
+ #private;
51
+ constructor(browser: Browser, contextId?: string);
52
+ targets(): Target[];
53
+ waitForTarget(predicate: (x: Target) => boolean | Promise<boolean>, options?: {
54
+ timeout?: number;
55
+ }): Promise<Target>;
56
+ pages(): Promise<Page[]>;
57
+ newPage(): Promise<Page>;
58
+ browser(): Browser;
59
+ }
60
+ export {};
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2017 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
18
+ if (kind === "m") throw new TypeError("Private method is not writable");
19
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
20
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
21
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
22
+ };
23
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
24
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
25
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
26
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
27
+ };
28
+ var _Browser_instances, _Browser_defaultViewport, _Browser_connection, _Browser_closeCallback, _Browser_defaultContext, _Browser_contexts, _Browser_targets, _Browser_targetCreated, _Browser_targetDestroyed, _Browser_targetInfoChanged, _BrowserContext_browser, _BrowserContext_id;
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.BrowserContext = exports.Browser = void 0;
31
+ const assert_1 = require("./assert");
32
+ const EventEmitter_1 = require("./EventEmitter");
33
+ const Target_1 = require("./Target");
34
+ const util_1 = require("./util");
35
+ class Browser extends EventEmitter_1.EventEmitter {
36
+ // eslint-disable-next-line max-params
37
+ constructor(connection, contextIds, defaultViewport, closeCallback) {
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 ||
49
+ function () {
50
+ return undefined;
51
+ }, "f");
52
+ __classPrivateFieldSet(this, _Browser_defaultContext, new BrowserContext(this), "f");
53
+ __classPrivateFieldSet(this, _Browser_contexts, new Map(), "f");
54
+ for (const contextId of contextIds) {
55
+ __classPrivateFieldGet(this, _Browser_contexts, "f").set(contextId, new BrowserContext(this, contextId));
56
+ }
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));
61
+ }
62
+ static async _create({ connection, contextIds, defaultViewport, closeCallback, }) {
63
+ const browser = new Browser(connection, contextIds, defaultViewport, closeCallback);
64
+ await connection.send('Target.setDiscoverTargets', { discover: true });
65
+ return browser;
66
+ }
67
+ get _targets() {
68
+ return __classPrivateFieldGet(this, _Browser_targets, "f");
69
+ }
70
+ browserContexts() {
71
+ return [__classPrivateFieldGet(this, _Browser_defaultContext, "f"), ...Array.from(__classPrivateFieldGet(this, _Browser_contexts, "f").values())];
72
+ }
73
+ newPage() {
74
+ return __classPrivateFieldGet(this, _Browser_defaultContext, "f").newPage();
75
+ }
76
+ async _createPageInContext(contextId) {
77
+ const { targetId } = await __classPrivateFieldGet(this, _Browser_connection, "f").send('Target.createTarget', {
78
+ url: 'about:blank',
79
+ browserContextId: contextId || undefined,
80
+ });
81
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(targetId);
82
+ if (!target) {
83
+ throw new Error(`Missing target for page (id = ${targetId})`);
84
+ }
85
+ const initialized = await target._initializedPromise;
86
+ if (!initialized) {
87
+ throw new Error(`Failed to create target for page (id = ${targetId})`);
88
+ }
89
+ const page = await target.page();
90
+ if (!page) {
91
+ throw new Error(`Failed to create a page for context (id = ${contextId})`);
92
+ }
93
+ return page;
94
+ }
95
+ targets() {
96
+ return Array.from(__classPrivateFieldGet(this, _Browser_targets, "f").values()).filter((target) => {
97
+ return target._isInitialized;
98
+ });
99
+ }
100
+ async waitForTarget(predicate, options = {}) {
101
+ const { timeout = 30000 } = options;
102
+ let resolve;
103
+ let isResolved = false;
104
+ const targetPromise = new Promise((x) => {
105
+ resolve = x;
106
+ });
107
+ this.on("targetcreated" /* BrowserEmittedEvents.TargetCreated */, check);
108
+ this.on("targetchanged" /* BrowserEmittedEvents.TargetChanged */, check);
109
+ try {
110
+ if (!timeout) {
111
+ return await targetPromise;
112
+ }
113
+ this.targets().forEach(check);
114
+ return await (0, util_1.waitWithTimeout)(targetPromise, 'target', timeout, this);
115
+ }
116
+ finally {
117
+ this.off("targetcreated" /* BrowserEmittedEvents.TargetCreated */, check);
118
+ this.off("targetchanged" /* BrowserEmittedEvents.TargetChanged */, check);
119
+ }
120
+ async function check(target) {
121
+ if ((await predicate(target)) && !isResolved) {
122
+ isResolved = true;
123
+ resolve(target);
124
+ }
125
+ }
126
+ }
127
+ async pages() {
128
+ const contextPages = await Promise.all(this.browserContexts().map((context) => {
129
+ return context.pages();
130
+ }));
131
+ // Flatten array.
132
+ return contextPages.reduce((acc, x) => {
133
+ return acc.concat(x);
134
+ }, []);
135
+ }
136
+ async close() {
137
+ await __classPrivateFieldGet(this, _Browser_closeCallback, "f").call(null);
138
+ this.disconnect();
139
+ this.emit("closed" /* BrowserEmittedEvents.Closed */);
140
+ }
141
+ disconnect() {
142
+ __classPrivateFieldGet(this, _Browser_connection, "f").dispose();
143
+ }
144
+ }
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) {
147
+ var _a;
148
+ const { targetInfo } = event;
149
+ 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
+ if (!context) {
154
+ throw new Error('Missing browser context');
155
+ }
156
+ 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);
161
+ if (await target._initializedPromise) {
162
+ this.emit("targetcreated" /* BrowserEmittedEvents.TargetCreated */, target);
163
+ }
164
+ }, _Browser_targetDestroyed = function _Browser_targetDestroyed(event) {
165
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetId);
166
+ if (!target) {
167
+ throw new Error(`Missing target in _targetDestroyed (id = ${event.targetId})`);
168
+ }
169
+ target._initializedCallback(false);
170
+ __classPrivateFieldGet(this, _Browser_targets, "f").delete(event.targetId);
171
+ target._closedCallback();
172
+ }, _Browser_targetInfoChanged = function _Browser_targetInfoChanged(event) {
173
+ const target = __classPrivateFieldGet(this, _Browser_targets, "f").get(event.targetInfo.targetId);
174
+ if (!target) {
175
+ throw new Error(`Missing target in targetInfoChanged (id = ${event.targetInfo.targetId})`);
176
+ }
177
+ const previousURL = target.url();
178
+ const wasInitialized = target._isInitialized;
179
+ target._targetInfoChanged(event.targetInfo);
180
+ if (wasInitialized && previousURL !== target.url()) {
181
+ this.emit("targetchanged" /* BrowserEmittedEvents.TargetChanged */, target);
182
+ }
183
+ };
184
+ class BrowserContext extends EventEmitter_1.EventEmitter {
185
+ constructor(browser, contextId) {
186
+ super();
187
+ _BrowserContext_browser.set(this, void 0);
188
+ _BrowserContext_id.set(this, void 0);
189
+ __classPrivateFieldSet(this, _BrowserContext_browser, browser, "f");
190
+ __classPrivateFieldSet(this, _BrowserContext_id, contextId, "f");
191
+ }
192
+ targets() {
193
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f").targets().filter((target) => {
194
+ return target.browserContext() === this;
195
+ });
196
+ }
197
+ waitForTarget(predicate, options = {}) {
198
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f").waitForTarget((target) => {
199
+ return target.browserContext() === this && predicate(target);
200
+ }, options);
201
+ }
202
+ async pages() {
203
+ const pages = await Promise.all(this.targets()
204
+ .filter((target) => target.type() === 'page')
205
+ .map((target) => target.page()));
206
+ return pages.filter((page) => {
207
+ return Boolean(page);
208
+ });
209
+ }
210
+ newPage() {
211
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f")._createPageInContext(__classPrivateFieldGet(this, _BrowserContext_id, "f"));
212
+ }
213
+ browser() {
214
+ return __classPrivateFieldGet(this, _BrowserContext_browser, "f");
215
+ }
216
+ }
217
+ exports.BrowserContext = BrowserContext;
218
+ _BrowserContext_browser = new WeakMap(), _BrowserContext_id = new WeakMap();
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2020 Google Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import type { Viewport } from './PuppeteerViewport';
17
+ export interface BrowserConnectOptions {
18
+ defaultViewport: Viewport;
19
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2020 Google Inc. All rights reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });