@remotion/cli 4.0.0-alpha4 → 4.0.0-alpha5

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 (471) hide show
  1. package/dist/ansi/ansi-diff.d.ts +2 -1
  2. package/dist/ansi/ansi-diff.js +14 -20
  3. package/dist/ansi/ansi-split.d.ts +1 -0
  4. package/dist/ansi/ansi-split.js +16 -3
  5. package/dist/benchmark.js +64 -23
  6. package/dist/codemods/update-default-props.d.ts +5 -0
  7. package/dist/codemods/update-default-props.js +143 -0
  8. package/dist/color-math.d.ts +2 -0
  9. package/dist/color-math.js +11 -0
  10. package/dist/composition-prompts.d.ts +3 -4
  11. package/dist/composition-prompts.js +0 -1
  12. package/dist/compositions.js +10 -4
  13. package/dist/config/bitrate.d.ts +2 -2
  14. package/dist/config/bitrate.js +2 -2
  15. package/dist/config/browser.d.ts +1 -3
  16. package/dist/config/browser.js +2 -12
  17. package/dist/config/codec.d.ts +0 -4
  18. package/dist/config/codec.js +1 -21
  19. package/dist/config/image-format.d.ts +5 -3
  20. package/dist/config/image-format.js +32 -10
  21. package/dist/config/index.d.ts +255 -14
  22. package/dist/config/index.js +16 -49
  23. package/dist/config/jpeg-quality.d.ts +2 -0
  24. package/dist/config/jpeg-quality.js +17 -0
  25. package/dist/config/public-dir.d.ts +1 -1
  26. package/dist/config/scale.d.ts +2 -1
  27. package/dist/convert-entry-point-to-serve-url.d.ts +1 -0
  28. package/dist/convert-entry-point-to-serve-url.js +15 -0
  29. package/dist/determine-image-format.d.ts +5 -4
  30. package/dist/determine-image-format.js +17 -4
  31. package/dist/download-progress.d.ts +2 -2
  32. package/dist/download-progress.js +12 -3
  33. package/dist/editor/components/Canvas.js +3 -0
  34. package/dist/editor/components/Checkbox.d.ts +6 -0
  35. package/dist/editor/components/Checkbox.js +42 -0
  36. package/dist/editor/components/CheckerboardProvider.d.ts +4 -0
  37. package/dist/editor/components/CheckerboardProvider.js +24 -0
  38. package/dist/editor/components/CompositionSelector.js +2 -4
  39. package/dist/editor/components/CompositionSelectorItem.d.ts +3 -3
  40. package/dist/editor/components/CompositionSelectorItem.js +24 -6
  41. package/dist/editor/components/CurrentComposition.js +4 -19
  42. package/dist/editor/components/CurrentCompositionSideEffects.d.ts +3 -0
  43. package/dist/editor/components/CurrentCompositionSideEffects.js +51 -0
  44. package/dist/editor/components/Editor.js +2 -11
  45. package/dist/editor/components/EditorContent.js +1 -1
  46. package/dist/editor/components/EditorContexts.js +10 -86
  47. package/dist/editor/components/GlobalKeybindings.js +4 -0
  48. package/dist/editor/components/InitialCompositionLoader.d.ts +2 -2
  49. package/dist/editor/components/InlineAction.d.ts +7 -0
  50. package/dist/editor/components/InlineAction.js +31 -0
  51. package/dist/editor/components/KeyboardShortcutsExplainer.js +5 -4
  52. package/dist/editor/components/MediaVolumeProvider.d.ts +4 -0
  53. package/dist/editor/components/MediaVolumeProvider.js +25 -0
  54. package/dist/editor/components/Menu/MenuSubItem.d.ts +0 -1
  55. package/dist/editor/components/Menu/MenuSubItem.js +15 -3
  56. package/dist/editor/components/Menu/is-menu-item.d.ts +2 -0
  57. package/dist/editor/components/Menu/is-menu-item.js +3 -1
  58. package/dist/editor/components/Menu/styles.d.ts +4 -0
  59. package/dist/editor/components/Menu/styles.js +13 -4
  60. package/dist/editor/components/MenuToolbar.js +2 -1
  61. package/dist/editor/components/ModalContainer.d.ts +2 -0
  62. package/dist/editor/components/ModalContainer.js +12 -3
  63. package/dist/editor/components/ModalHeader.js +6 -2
  64. package/dist/editor/components/Modals.d.ts +2 -0
  65. package/dist/editor/components/Modals.js +23 -0
  66. package/dist/editor/components/ModalsProvider.d.ts +4 -0
  67. package/dist/editor/components/ModalsProvider.js +17 -0
  68. package/dist/editor/components/NewComposition/CancelButton.js +3 -0
  69. package/dist/editor/components/NewComposition/ComboBox.js +23 -15
  70. package/dist/editor/components/NewComposition/InputDragger.d.ts +4 -0
  71. package/dist/editor/components/NewComposition/InputDragger.js +12 -7
  72. package/dist/editor/components/NewComposition/MenuContent.js +14 -1
  73. package/dist/editor/components/NewComposition/NewCompDuration.js +2 -2
  74. package/dist/editor/components/NewComposition/NewComposition.js +8 -5
  75. package/dist/editor/components/NewComposition/RemInput.d.ts +14 -2
  76. package/dist/editor/components/NewComposition/RemInput.js +24 -9
  77. package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +7 -0
  78. package/dist/editor/components/NewComposition/RemInputTypeColor.js +53 -0
  79. package/dist/editor/components/NewComposition/RemTextarea.d.ts +7 -0
  80. package/dist/editor/components/NewComposition/RemTextarea.js +92 -0
  81. package/dist/editor/components/NewComposition/ValidationMessage.d.ts +2 -0
  82. package/dist/editor/components/NewComposition/ValidationMessage.js +18 -8
  83. package/dist/editor/components/Notifications/NotificationCenter.d.ts +1 -0
  84. package/dist/editor/components/Notifications/NotificationCenter.js +11 -1
  85. package/dist/editor/components/Notifications/ServerDisconnected.d.ts +0 -4
  86. package/dist/editor/components/Notifications/ServerDisconnected.js +4 -14
  87. package/dist/editor/components/PlayPause.js +6 -0
  88. package/dist/editor/components/PlaybackKeyboardShortcutsManager.js +3 -0
  89. package/dist/editor/components/PlaybackRateSelector.d.ts +0 -2
  90. package/dist/editor/components/PlaybackRateSelector.js +5 -6
  91. package/dist/editor/components/PlayerEmitterContext.d.ts +4 -0
  92. package/dist/editor/components/PlayerEmitterContext.js +11 -0
  93. package/dist/editor/components/Preview.d.ts +0 -1
  94. package/dist/editor/components/Preview.js +4 -4
  95. package/dist/editor/components/PreviewToolbar.js +2 -2
  96. package/dist/editor/components/QuickSwitcher/QuickSwitcherContent.js +8 -3
  97. package/dist/editor/components/QuickSwitcher/QuickSwitcherResult.js +4 -2
  98. package/dist/editor/components/QuickSwitcher/algolia-search.d.ts +0 -27
  99. package/dist/editor/components/QuickSwitcher/algolia-search.js +2 -3
  100. package/dist/editor/components/RenderButton.d.ts +2 -0
  101. package/dist/editor/components/RenderButton.js +103 -0
  102. package/dist/editor/components/RenderModal/CliCopyButton.d.ts +4 -0
  103. package/dist/editor/components/RenderModal/CliCopyButton.js +22 -0
  104. package/dist/editor/components/RenderModal/CrfSetting.d.ts +15 -0
  105. package/dist/editor/components/RenderModal/CrfSetting.js +42 -0
  106. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +8 -0
  107. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +16 -0
  108. package/dist/editor/components/RenderModal/EnvInput.d.ts +11 -0
  109. package/dist/editor/components/RenderModal/EnvInput.js +74 -0
  110. package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +8 -0
  111. package/dist/editor/components/RenderModal/FrameRangeSetting.js +42 -0
  112. package/dist/editor/components/RenderModal/GuiRenderStatus.d.ts +5 -0
  113. package/dist/editor/components/RenderModal/GuiRenderStatus.js +78 -0
  114. package/dist/editor/components/RenderModal/InfoBubble.d.ts +5 -0
  115. package/dist/editor/components/RenderModal/InfoBubble.js +115 -0
  116. package/dist/editor/components/RenderModal/InfoTooltip.d.ts +5 -0
  117. package/dist/editor/components/RenderModal/InfoTooltip.js +40 -0
  118. package/dist/editor/components/RenderModal/InlineEyeIcon.d.ts +5 -0
  119. package/dist/editor/components/RenderModal/InlineEyeIcon.js +17 -0
  120. package/dist/editor/components/RenderModal/InlineRemoveButton.d.ts +4 -0
  121. package/dist/editor/components/RenderModal/InlineRemoveButton.js +17 -0
  122. package/dist/editor/components/RenderModal/JpegQualitySetting.d.ts +5 -0
  123. package/dist/editor/components/RenderModal/JpegQualitySetting.js +12 -0
  124. package/dist/editor/components/RenderModal/MutedSetting.d.ts +8 -0
  125. package/dist/editor/components/RenderModal/MutedSetting.js +16 -0
  126. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
  127. package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
  128. package/dist/editor/components/RenderModal/NumberSetting.d.ts +12 -0
  129. package/dist/editor/components/RenderModal/NumberSetting.js +29 -0
  130. package/dist/editor/components/RenderModal/OptionExplainer.d.ts +5 -0
  131. package/dist/editor/components/RenderModal/OptionExplainer.js +45 -0
  132. package/dist/editor/components/RenderModal/RenderModal.d.ts +35 -0
  133. package/dist/editor/components/RenderModal/RenderModal.js +597 -0
  134. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +26 -0
  135. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +61 -0
  136. package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +17 -0
  137. package/dist/editor/components/RenderModal/RenderModalAudio.js +46 -0
  138. package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +23 -0
  139. package/dist/editor/components/RenderModal/RenderModalBasic.js +79 -0
  140. package/dist/editor/components/RenderModal/RenderModalData.d.ts +20 -0
  141. package/dist/editor/components/RenderModal/RenderModalData.js +249 -0
  142. package/dist/editor/components/RenderModal/RenderModalEnvironmentVariables.d.ts +5 -0
  143. package/dist/editor/components/RenderModal/RenderModalEnvironmentVariables.js +55 -0
  144. package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
  145. package/dist/editor/components/RenderModal/RenderModalGif.js +19 -0
  146. package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
  147. package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
  148. package/dist/editor/components/RenderModal/RenderModalInput.d.ts +10 -0
  149. package/dist/editor/components/RenderModal/RenderModalInput.js +13 -0
  150. package/dist/editor/components/RenderModal/RenderModalJSONPropsEditor.d.ts +15 -0
  151. package/dist/editor/components/RenderModal/RenderModalJSONPropsEditor.js +109 -0
  152. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
  153. package/dist/editor/components/RenderModal/RenderModalPicture.js +54 -0
  154. package/dist/editor/components/RenderModal/RenderStatusModal.d.ts +4 -0
  155. package/dist/editor/components/RenderModal/RenderStatusModal.js +72 -0
  156. package/dist/editor/components/RenderModal/ScaleSetting.d.ts +5 -0
  157. package/dist/editor/components/RenderModal/ScaleSetting.js +17 -0
  158. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.d.ts +13 -0
  159. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +39 -0
  160. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEmptyStateGraphic.d.ts +2 -0
  161. package/dist/editor/components/RenderModal/SchemaEditor/SchemaEmptyStateGraphic.js +15 -0
  162. package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.d.ts +12 -0
  163. package/dist/editor/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +59 -0
  164. package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.d.ts +16 -0
  165. package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.js +40 -0
  166. package/dist/editor/components/RenderModal/SchemaEditor/SchemaResetButton.d.ts +4 -0
  167. package/dist/editor/components/RenderModal/SchemaEditor/SchemaResetButton.js +17 -0
  168. package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.d.ts +5 -0
  169. package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.js +17 -0
  170. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.d.ts +15 -0
  171. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +84 -0
  172. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.d.ts +14 -0
  173. package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +28 -0
  174. package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.d.ts +13 -0
  175. package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +27 -0
  176. package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.d.ts +15 -0
  177. package/dist/editor/components/RenderModal/SchemaEditor/ZodColorEditor.js +116 -0
  178. package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.d.ts +15 -0
  179. package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.js +76 -0
  180. package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.d.ts +15 -0
  181. package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.js +55 -0
  182. package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +15 -0
  183. package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.js +72 -0
  184. package/dist/editor/components/RenderModal/SchemaEditor/ZodErrorMessages.d.ts +5 -0
  185. package/dist/editor/components/RenderModal/SchemaEditor/ZodErrorMessages.js +23 -0
  186. package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.d.ts +9 -0
  187. package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +27 -0
  188. package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.d.ts +15 -0
  189. package/dist/editor/components/RenderModal/SchemaEditor/ZodNullableEditor.js +10 -0
  190. package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.d.ts +15 -0
  191. package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.js +88 -0
  192. package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +15 -0
  193. package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +64 -0
  194. package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.d.ts +15 -0
  195. package/dist/editor/components/RenderModal/SchemaEditor/ZodOptionalEditor.js +10 -0
  196. package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.d.ts +16 -0
  197. package/dist/editor/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +52 -0
  198. package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.d.ts +15 -0
  199. package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.js +48 -0
  200. package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.d.ts +15 -0
  201. package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +84 -0
  202. package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.d.ts +15 -0
  203. package/dist/editor/components/RenderModal/SchemaEditor/ZodUnionEditor.js +49 -0
  204. package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.d.ts +2 -0
  205. package/dist/editor/components/RenderModal/SchemaEditor/create-zod-values.js +158 -0
  206. package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.d.ts +6 -0
  207. package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.js +24 -0
  208. package/dist/editor/components/RenderModal/SchemaEditor/get-schema-label.d.ts +2 -0
  209. package/dist/editor/components/RenderModal/SchemaEditor/get-schema-label.js +15 -0
  210. package/dist/editor/components/RenderModal/SchemaEditor/zod-types.d.ts +1 -0
  211. package/dist/editor/components/RenderModal/SchemaEditor/zod-types.js +2 -0
  212. package/dist/editor/components/RenderModal/WarningIndicatorButton.d.ts +6 -0
  213. package/dist/editor/components/RenderModal/WarningIndicatorButton.js +49 -0
  214. package/dist/editor/components/RenderModal/get-render-modal-warnings.d.ts +15 -0
  215. package/dist/editor/components/RenderModal/get-render-modal-warnings.js +34 -0
  216. package/dist/editor/components/RenderModal/human-readable-audio-codecs.d.ts +2 -0
  217. package/dist/editor/components/RenderModal/human-readable-audio-codecs.js +18 -0
  218. package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
  219. package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
  220. package/dist/editor/components/RenderModal/layout.d.ts +7 -0
  221. package/dist/editor/components/RenderModal/layout.js +45 -0
  222. package/dist/editor/components/RenderModal/out-name-checker.d.ts +14 -0
  223. package/dist/editor/components/RenderModal/out-name-checker.js +80 -0
  224. package/dist/editor/components/RenderQueue/CircularProgress.d.ts +5 -0
  225. package/dist/editor/components/RenderQueue/CircularProgress.js +18 -0
  226. package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +5 -0
  227. package/dist/editor/components/RenderQueue/RenderQueueError.js +26 -0
  228. package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +5 -0
  229. package/dist/editor/components/RenderQueue/RenderQueueItem.js +40 -0
  230. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +5 -0
  231. package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +26 -0
  232. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +5 -0
  233. package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +43 -0
  234. package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.d.ts +5 -0
  235. package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +26 -0
  236. package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +5 -0
  237. package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +26 -0
  238. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +5 -0
  239. package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +26 -0
  240. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +5 -0
  241. package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +37 -0
  242. package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +5 -0
  243. package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +26 -0
  244. package/dist/editor/components/RenderQueue/SuccessIcon.d.ts +2 -0
  245. package/dist/editor/components/RenderQueue/SuccessIcon.js +14 -0
  246. package/dist/editor/components/RenderQueue/actions.d.ts +58 -0
  247. package/dist/editor/components/RenderQueue/actions.js +120 -0
  248. package/dist/editor/components/RenderQueue/context.d.ts +18 -0
  249. package/dist/editor/components/RenderQueue/context.js +49 -0
  250. package/dist/editor/components/RenderQueue/index.d.ts +2 -0
  251. package/dist/editor/components/RenderQueue/index.js +43 -0
  252. package/dist/editor/components/RenderQueue/item-style.d.ts +2 -0
  253. package/dist/editor/components/RenderQueue/item-style.js +21 -0
  254. package/dist/editor/components/RendersTab.d.ts +6 -0
  255. package/dist/editor/components/RendersTab.js +43 -0
  256. package/dist/editor/components/RightPanel.d.ts +8 -0
  257. package/dist/editor/components/RightPanel.js +76 -0
  258. package/dist/editor/components/SegmentedControl.d.ts +11 -0
  259. package/dist/editor/components/SegmentedControl.js +62 -0
  260. package/dist/editor/components/SetTimelineInOutProvider.d.ts +4 -0
  261. package/dist/editor/components/SetTimelineInOutProvider.js +19 -0
  262. package/dist/editor/components/SidebarCollapserControls.d.ts +2 -0
  263. package/dist/editor/components/SidebarCollapserControls.js +129 -0
  264. package/dist/editor/components/SidebarRenderButton.d.ts +6 -0
  265. package/dist/editor/components/SidebarRenderButton.js +85 -0
  266. package/dist/editor/components/SizeSelector.d.ts +0 -1
  267. package/dist/editor/components/SizeSelector.js +3 -3
  268. package/dist/editor/components/Splitter/SplitterHandle.d.ts +1 -2
  269. package/dist/editor/components/Splitter/SplitterHandle.js +15 -7
  270. package/dist/editor/components/Tabs/index.d.ts +11 -0
  271. package/dist/editor/components/Tabs/index.js +58 -0
  272. package/dist/editor/components/Tabs/vertical.d.ts +7 -0
  273. package/dist/editor/components/Tabs/vertical.js +43 -0
  274. package/dist/editor/components/Timeline/MaxTimelineTracks.js +1 -1
  275. package/dist/editor/components/Timeline/Timeline.js +1 -1
  276. package/dist/editor/components/Timeline/TimelineCollapseToggle.d.ts +1 -0
  277. package/dist/editor/components/Timeline/TimelineCollapseToggle.js +4 -5
  278. package/dist/editor/components/Timeline/TimelineListItem.js +2 -1
  279. package/dist/editor/components/Timeline/TimelineScrollable.js +2 -1
  280. package/dist/editor/components/Timeline/TimelineSequence.js +2 -14
  281. package/dist/editor/components/Timeline/TimelineSequenceFrame.js +2 -1
  282. package/dist/editor/components/Timeline/TimelineZoomControls.js +2 -5
  283. package/dist/editor/components/Timeline/imperative-state.d.ts +0 -4
  284. package/dist/editor/components/Timeline/imperative-state.js +13 -13
  285. package/dist/editor/components/Timeline/is-collapsed.js +2 -3
  286. package/dist/editor/components/Timeline/timeline-scroll-logic.d.ts +0 -1
  287. package/dist/editor/components/Timeline/timeline-scroll-logic.js +5 -6
  288. package/dist/editor/components/TimelineInOutToggle.js +3 -0
  289. package/dist/editor/components/TopPanel.d.ts +1 -0
  290. package/dist/editor/components/TopPanel.js +30 -16
  291. package/dist/editor/components/ZoomGesturesProvider.d.ts +4 -0
  292. package/dist/editor/components/ZoomGesturesProvider.js +24 -0
  293. package/dist/editor/components/ZoomPersistor.d.ts +0 -1
  294. package/dist/editor/components/ZoomPersistor.js +2 -3
  295. package/dist/editor/components/get-zod-if-possible.d.ts +10 -0
  296. package/dist/editor/components/get-zod-if-possible.js +79 -0
  297. package/dist/editor/components/layout.d.ts +3 -1
  298. package/dist/editor/components/layout.js +9 -7
  299. package/dist/editor/helpers/calculate-timeline.d.ts +0 -4
  300. package/dist/editor/helpers/client-id.d.ts +17 -0
  301. package/dist/editor/helpers/client-id.js +46 -0
  302. package/dist/editor/helpers/colors.d.ts +3 -1
  303. package/dist/editor/helpers/colors.js +6 -3
  304. package/dist/editor/helpers/convert-env-variables.d.ts +2 -0
  305. package/dist/editor/helpers/convert-env-variables.js +20 -0
  306. package/dist/editor/helpers/create-folder-tree.d.ts +2 -3
  307. package/dist/editor/helpers/create-folder-tree.js +3 -4
  308. package/dist/editor/helpers/get-timeline-sequence-layout.d.ts +2 -2
  309. package/dist/editor/helpers/get-timeline-sequence-sort-key.d.ts +2 -1
  310. package/dist/editor/helpers/is-composition-still.d.ts +2 -2
  311. package/dist/editor/helpers/is-composition-still.js +3 -0
  312. package/dist/editor/helpers/prores-labels.d.ts +2 -0
  313. package/dist/editor/helpers/prores-labels.js +25 -0
  314. package/dist/editor/helpers/render-modal-sections.d.ts +10 -0
  315. package/dist/editor/helpers/render-modal-sections.js +32 -0
  316. package/dist/editor/helpers/use-breakpoint.d.ts +1 -0
  317. package/dist/editor/helpers/use-breakpoint.js +17 -0
  318. package/dist/editor/helpers/use-file-existence.d.ts +1 -0
  319. package/dist/editor/helpers/use-file-existence.js +66 -0
  320. package/dist/editor/helpers/use-keybinding.d.ts +1 -0
  321. package/dist/editor/helpers/use-keybinding.js +9 -0
  322. package/dist/editor/helpers/use-menu-structure.js +99 -51
  323. package/dist/editor/helpers/validate-new-comp-data.d.ts +2 -2
  324. package/dist/editor/icons/Checkmark.js +1 -1
  325. package/dist/editor/icons/audio.d.ts +2 -0
  326. package/dist/editor/icons/audio.js +6 -0
  327. package/dist/editor/icons/caret.d.ts +4 -1
  328. package/dist/editor/icons/caret.js +17 -1
  329. package/dist/editor/icons/data.d.ts +2 -0
  330. package/dist/editor/icons/data.js +8 -0
  331. package/dist/editor/icons/file.d.ts +2 -0
  332. package/dist/editor/icons/file.js +6 -0
  333. package/dist/editor/icons/folder.d.ts +6 -2
  334. package/dist/editor/icons/folder.js +4 -4
  335. package/dist/editor/icons/frame.d.ts +2 -0
  336. package/dist/editor/icons/frame.js +6 -0
  337. package/dist/editor/icons/gear.d.ts +2 -0
  338. package/dist/editor/icons/gear.js +6 -0
  339. package/dist/editor/icons/gif.d.ts +2 -0
  340. package/dist/editor/icons/gif.js +6 -0
  341. package/dist/editor/icons/render.d.ts +9 -0
  342. package/dist/editor/icons/render.js +12 -0
  343. package/dist/editor/icons/still.d.ts +3 -1
  344. package/dist/editor/icons/still.js +2 -2
  345. package/dist/editor/icons/video.d.ts +5 -0
  346. package/dist/editor/icons/video.js +8 -0
  347. package/dist/editor/state/keybindings.d.ts +2 -1
  348. package/dist/editor/state/modals.d.ts +38 -0
  349. package/dist/editor/state/preview-size.d.ts +0 -1
  350. package/dist/editor/state/preview-size.js +3 -4
  351. package/dist/editor/state/sidebar.d.ts +7 -3
  352. package/dist/editor/state/sidebar.js +42 -13
  353. package/dist/editor/state/timeline-ref.d.ts +2 -1
  354. package/dist/editor/state/z-index.d.ts +0 -5
  355. package/dist/editor/state/z-index.js +16 -6
  356. package/dist/event-source-events.d.ts +15 -0
  357. package/dist/event-source.d.ts +2 -0
  358. package/dist/event-source.js +31 -5
  359. package/dist/ffmpeg.d.ts +2 -0
  360. package/dist/ffmpeg.js +21 -0
  361. package/dist/file-watcher.d.ts +9 -0
  362. package/dist/file-watcher.js +35 -0
  363. package/dist/get-cli-options.d.ts +3 -12
  364. package/dist/get-cli-options.js +7 -60
  365. package/dist/get-composition-id.d.ts +7 -3
  366. package/dist/get-composition-id.js +17 -3
  367. package/dist/get-composition-with-dimension-override.d.ts +5 -4
  368. package/dist/get-composition-with-dimension-override.js +6 -2
  369. package/dist/get-config-file-name.d.ts +0 -2
  370. package/dist/get-config-file-name.js +7 -7
  371. package/dist/get-default-out-name.d.ts +5 -0
  372. package/dist/get-default-out-name.js +10 -0
  373. package/dist/get-env.d.ts +1 -1
  374. package/dist/get-env.js +39 -48
  375. package/dist/get-filename.d.ts +5 -1
  376. package/dist/get-filename.js +6 -4
  377. package/dist/get-final-output-codec.d.ts +2 -1
  378. package/dist/get-final-output-codec.js +4 -1
  379. package/dist/get-input-props.d.ts +1 -5
  380. package/dist/get-input-props.js +11 -13
  381. package/dist/image-formats.d.ts +5 -2
  382. package/dist/image-formats.js +16 -6
  383. package/dist/index.d.ts +91 -22
  384. package/dist/index.js +12 -13
  385. package/dist/list-of-remotion-packages.js +1 -0
  386. package/dist/load-config.js +1 -1
  387. package/dist/log.d.ts +14 -0
  388. package/dist/log.js +24 -8
  389. package/dist/parse-command-line.d.ts +5 -5
  390. package/dist/parse-command-line.js +6 -14
  391. package/dist/preview-server/api-routes.d.ts +4 -0
  392. package/dist/preview-server/api-routes.js +21 -0
  393. package/dist/preview-server/api-types.d.ts +25 -0
  394. package/dist/preview-server/api-types.js +2 -0
  395. package/dist/preview-server/dev-middleware/middleware.d.ts +0 -1
  396. package/dist/preview-server/dev-middleware/middleware.js +1 -2
  397. package/dist/preview-server/error-overlay/remotion-overlay/AskOnDiscord.js +1 -0
  398. package/dist/preview-server/error-overlay/remotion-overlay/Button.d.ts +8 -4
  399. package/dist/preview-server/error-overlay/remotion-overlay/Button.js +12 -8
  400. package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.js +2 -1
  401. package/dist/preview-server/error-overlay/remotion-overlay/HelpLink.js +1 -0
  402. package/dist/preview-server/error-overlay/remotion-overlay/OpenInEditor.js +1 -0
  403. package/dist/preview-server/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -0
  404. package/dist/preview-server/error-overlay/remotion-overlay/ShortcutHint.js +16 -1
  405. package/dist/preview-server/file-existence-watchers.d.ts +13 -0
  406. package/dist/preview-server/file-existence-watchers.js +62 -0
  407. package/dist/preview-server/handler.d.ts +9 -0
  408. package/dist/preview-server/handler.js +34 -0
  409. package/dist/preview-server/hot-middleware/client.js +2 -2
  410. package/dist/preview-server/live-events.d.ts +2 -0
  411. package/dist/preview-server/live-events.js +22 -2
  412. package/dist/preview-server/parse-body.d.ts +2 -0
  413. package/dist/preview-server/parse-body.js +16 -0
  414. package/dist/preview-server/public-folder.d.ts +0 -5
  415. package/dist/preview-server/public-folder.js +3 -4
  416. package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +10 -0
  417. package/dist/preview-server/render-queue/get-default-video-contexts.js +13 -0
  418. package/dist/preview-server/render-queue/job.d.ts +138 -0
  419. package/dist/preview-server/render-queue/job.js +2 -0
  420. package/dist/preview-server/render-queue/make-retry-payload.d.ts +3 -0
  421. package/dist/preview-server/render-queue/make-retry-payload.js +91 -0
  422. package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +1 -0
  423. package/dist/preview-server/render-queue/open-directory-in-finder.js +43 -0
  424. package/dist/preview-server/render-queue/process-still.d.ts +8 -0
  425. package/dist/preview-server/render-queue/process-still.js +46 -0
  426. package/dist/preview-server/render-queue/process-video.d.ts +8 -0
  427. package/dist/preview-server/render-queue/process-video.js +63 -0
  428. package/dist/preview-server/render-queue/queue.d.ts +9 -0
  429. package/dist/preview-server/render-queue/queue.js +212 -0
  430. package/dist/preview-server/routes/add-render.d.ts +3 -0
  431. package/dist/preview-server/routes/add-render.js +76 -0
  432. package/dist/preview-server/routes/can-update-default-props.d.ts +4 -0
  433. package/dist/preview-server/routes/can-update-default-props.js +39 -0
  434. package/dist/preview-server/routes/cancel-render.d.ts +3 -0
  435. package/dist/preview-server/routes/cancel-render.js +9 -0
  436. package/dist/preview-server/routes/open-in-file-explorer.d.ts +3 -0
  437. package/dist/preview-server/routes/open-in-file-explorer.js +8 -0
  438. package/dist/preview-server/routes/remove-render.d.ts +3 -0
  439. package/dist/preview-server/routes/remove-render.js +9 -0
  440. package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +3 -0
  441. package/dist/preview-server/routes/subscribe-to-file-existence.js +13 -0
  442. package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +3 -0
  443. package/dist/preview-server/routes/unsubscribe-from-file-existence.js +13 -0
  444. package/dist/preview-server/routes/update-default-props.d.ts +3 -0
  445. package/dist/preview-server/routes/update-default-props.js +24 -0
  446. package/dist/preview-server/routes.d.ts +2 -1
  447. package/dist/preview-server/routes.js +71 -13
  448. package/dist/preview-server/start-server.js +1 -0
  449. package/dist/preview.js +8 -21
  450. package/dist/previewEntry.js +2 -3
  451. package/dist/print-compositions.d.ts +2 -2
  452. package/dist/print-error.js +4 -2
  453. package/dist/print-help.js +4 -8
  454. package/dist/progress-bar.d.ts +17 -37
  455. package/dist/progress-bar.js +102 -41
  456. package/dist/progress-types.d.ts +32 -0
  457. package/dist/progress-types.js +17 -0
  458. package/dist/render-flows/render.d.ts +47 -0
  459. package/dist/render-flows/render.js +293 -0
  460. package/dist/render-flows/still.d.ts +29 -0
  461. package/dist/render-flows/still.js +174 -0
  462. package/dist/render.js +42 -232
  463. package/dist/required-chromium-options.d.ts +3 -0
  464. package/dist/required-chromium-options.js +2 -0
  465. package/dist/select-composition.d.ts +2 -1
  466. package/dist/setup-cache.d.ts +12 -9
  467. package/dist/setup-cache.js +29 -20
  468. package/dist/still.js +25 -130
  469. package/dist/user-passed-output-location.js +2 -7
  470. package/package.json +22 -7
  471. package/styles/styles.css +13 -3
@@ -0,0 +1,138 @@
1
+ import type { AudioCodec, Codec, makeCancelSignal, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
2
+ import type { AggregateRenderProgress } from '../../progress-types';
3
+ import type { RequiredChromiumOptions } from '../../required-chromium-options';
4
+ declare type BaseRenderProgress = {
5
+ message: string;
6
+ value: number;
7
+ };
8
+ declare type RenderJobDynamicStatus = {
9
+ status: 'done';
10
+ progress: BaseRenderProgress & AggregateRenderProgress;
11
+ } | {
12
+ status: 'running';
13
+ progress: BaseRenderProgress & AggregateRenderProgress;
14
+ } | {
15
+ status: 'idle';
16
+ } | {
17
+ status: 'failed';
18
+ error: {
19
+ message: string;
20
+ stack: string | undefined;
21
+ };
22
+ };
23
+ export declare type JobProgressCallback = (options: BaseRenderProgress & AggregateRenderProgress) => void;
24
+ declare type RenderJobDynamicFields = ({
25
+ type: 'still';
26
+ imageFormat: StillImageFormat;
27
+ jpegQuality: number | null;
28
+ frame: number;
29
+ scale: number;
30
+ } & RenderJobDynamicStatus) | ({
31
+ type: 'video';
32
+ imageFormat: VideoImageFormat;
33
+ jpegQuality: number | null;
34
+ scale: number;
35
+ codec: Codec;
36
+ audioCodec: AudioCodec;
37
+ concurrency: number;
38
+ crf: number | null;
39
+ startFrame: number;
40
+ endFrame: number;
41
+ muted: boolean;
42
+ enforceAudioTrack: boolean;
43
+ proResProfile: ProResProfile | null;
44
+ pixelFormat: PixelFormat;
45
+ audioBitrate: string | null;
46
+ videoBitrate: string | null;
47
+ everyNthFrame: number;
48
+ numberOfGifLoops: number | null;
49
+ disallowParallelEncoding: boolean;
50
+ } & RenderJobDynamicStatus);
51
+ export declare type RenderJob = {
52
+ startedAt: number;
53
+ compositionId: string;
54
+ id: string;
55
+ outName: string;
56
+ deletedOutputLocation: boolean;
57
+ verbose: boolean;
58
+ delayRenderTimeout: number;
59
+ cancelToken: ReturnType<typeof makeCancelSignal>;
60
+ chromiumOptions: RequiredChromiumOptions;
61
+ envVariables: Record<string, string>;
62
+ inputProps: unknown;
63
+ } & RenderJobDynamicFields;
64
+ export declare type RenderJobWithCleanup = RenderJob & {
65
+ cleanup: (() => void)[];
66
+ };
67
+ declare type AddRenderRequestDynamicFields = {
68
+ type: 'still';
69
+ imageFormat: StillImageFormat;
70
+ jpegQuality: number | null;
71
+ frame: number;
72
+ scale: number;
73
+ verbose: boolean;
74
+ } | {
75
+ type: 'video';
76
+ codec: Codec;
77
+ audioCodec: AudioCodec;
78
+ imageFormat: VideoImageFormat;
79
+ jpegQuality: number | null;
80
+ scale: number;
81
+ verbose: boolean;
82
+ concurrency: number;
83
+ crf: number | null;
84
+ startFrame: number;
85
+ endFrame: number;
86
+ muted: boolean;
87
+ enforceAudioTrack: boolean;
88
+ proResProfile: ProResProfile | null;
89
+ pixelFormat: PixelFormat;
90
+ audioBitrate: string | null;
91
+ videoBitrate: string | null;
92
+ everyNthFrame: number;
93
+ numberOfGifLoops: number | null;
94
+ disallowParallelEncoding: boolean;
95
+ };
96
+ export declare type CancelRenderRequest = {
97
+ jobId: string;
98
+ };
99
+ export declare type CancelRenderResponse = {};
100
+ export declare type AddRenderRequest = {
101
+ compositionId: string;
102
+ outName: string;
103
+ chromiumOptions: RequiredChromiumOptions;
104
+ delayRenderTimeout: number;
105
+ envVariables: Record<string, string>;
106
+ inputProps: unknown;
107
+ } & AddRenderRequestDynamicFields;
108
+ export declare type RemoveRenderRequest = {
109
+ jobId: string;
110
+ };
111
+ export declare type OpenInFileExplorerRequest = {
112
+ directory: string;
113
+ };
114
+ export declare type SubscribeToFileExistenceRequest = {
115
+ file: string;
116
+ clientId: string;
117
+ };
118
+ export declare type SubscribeToFileExistenceResponse = {
119
+ exists: boolean;
120
+ };
121
+ export declare type UnsubscribeFromFileExistenceRequest = {
122
+ file: string;
123
+ clientId: string;
124
+ };
125
+ export declare type UpdateDefaultPropsRequest = {
126
+ compositionId: string;
127
+ defaultProps: string;
128
+ };
129
+ export declare type CanUpdateDefaultPropsRequest = {
130
+ compositionId: string;
131
+ };
132
+ export declare type CanUpdateDefaultPropsResponse = {
133
+ canUpdate: true;
134
+ } | {
135
+ canUpdate: false;
136
+ reason: string;
137
+ };
138
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ import type { RenderModalState } from '../../editor/state/modals';
2
+ import type { RenderJob } from './job';
3
+ export declare const makeRetryPayload: (job: RenderJob) => RenderModalState;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeRetryPayload = void 0;
4
+ const get_default_video_contexts_1 = require("./get-default-video-contexts");
5
+ const makeRetryPayload = (job) => {
6
+ var _a, _b, _c;
7
+ const defaults = window.remotion_renderDefaults;
8
+ if (!defaults) {
9
+ throw new Error('defaults not set');
10
+ }
11
+ if (job.type === 'still') {
12
+ const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
13
+ defaultCodec: defaults.codec,
14
+ isStill: true,
15
+ });
16
+ return {
17
+ type: 'render',
18
+ compositionId: job.compositionId,
19
+ initialFrame: job.frame,
20
+ initialStillImageFormat: job.imageFormat,
21
+ initialVideoImageFormat: defaults.videoImageFormat,
22
+ initialJpegQuality: (_a = job.jpegQuality) !== null && _a !== void 0 ? _a : defaults.jpegQuality,
23
+ initialOutName: job.outName,
24
+ initialScale: job.scale,
25
+ initialVerbose: job.verbose,
26
+ initialVideoCodecForAudioTab: initialAudioCodec,
27
+ initialRenderType,
28
+ initialVideoCodecForVideoTab: initialVideoCodec,
29
+ initialConcurrency: defaults.concurrency,
30
+ maxConcurrency: defaults.maxConcurrency,
31
+ minConcurrency: defaults.minConcurrency,
32
+ initialMuted: defaults.muted,
33
+ initialEnforceAudioTrack: defaults.enforceAudioTrack,
34
+ initialProResProfile: defaults.proResProfile,
35
+ initialPixelFormat: defaults.pixelFormat,
36
+ initialAudioBitrate: defaults.audioBitrate,
37
+ initialVideoBitrate: defaults.videoBitrate,
38
+ initialEveryNthFrame: defaults.everyNthFrame,
39
+ initialNumberOfGifLoops: defaults.numberOfGifLoops,
40
+ initialDelayRenderTimeout: job.delayRenderTimeout,
41
+ initialAudioCodec: defaults.audioCodec,
42
+ initialEnvVariables: job.envVariables,
43
+ initialDisableWebSecurity: job.chromiumOptions.disableWebSecurity,
44
+ initialOpenGlRenderer: job.chromiumOptions.gl,
45
+ initialHeadless: job.chromiumOptions.headless,
46
+ initialIgnoreCertificateErrors: job.chromiumOptions.ignoreCertificateErrors,
47
+ defaultProps: job.inputProps,
48
+ };
49
+ }
50
+ if (job.type === 'video') {
51
+ const { initialAudioCodec, initialRenderType, initialVideoCodec } = (0, get_default_video_contexts_1.getDefaultCodecs)({
52
+ defaultCodec: defaults.codec,
53
+ isStill: false,
54
+ });
55
+ return {
56
+ type: 'render',
57
+ compositionId: job.compositionId,
58
+ initialStillImageFormat: defaults.stillImageFormat,
59
+ initialVideoImageFormat: job.imageFormat,
60
+ initialJpegQuality: (_b = job.jpegQuality) !== null && _b !== void 0 ? _b : defaults.jpegQuality,
61
+ initialOutName: job.outName,
62
+ initialScale: job.scale,
63
+ initialVerbose: job.verbose,
64
+ initialFrame: 0,
65
+ initialConcurrency: job.concurrency,
66
+ maxConcurrency: defaults.maxConcurrency,
67
+ minConcurrency: defaults.minConcurrency,
68
+ initialMuted: job.muted,
69
+ initialVideoCodecForAudioTab: initialAudioCodec,
70
+ initialEnforceAudioTrack: job.enforceAudioTrack,
71
+ initialRenderType,
72
+ initialVideoCodecForVideoTab: initialVideoCodec,
73
+ initialProResProfile: (_c = job.proResProfile) !== null && _c !== void 0 ? _c : defaults.proResProfile,
74
+ initialPixelFormat: job.pixelFormat,
75
+ initialAudioBitrate: job.audioBitrate,
76
+ initialVideoBitrate: job.videoBitrate,
77
+ initialEveryNthFrame: job.everyNthFrame,
78
+ initialNumberOfGifLoops: job.numberOfGifLoops,
79
+ initialDelayRenderTimeout: job.delayRenderTimeout,
80
+ initialAudioCodec: job.audioCodec,
81
+ initialEnvVariables: job.envVariables,
82
+ initialDisableWebSecurity: job.chromiumOptions.disableWebSecurity,
83
+ initialOpenGlRenderer: job.chromiumOptions.gl,
84
+ initialHeadless: job.chromiumOptions.headless,
85
+ initialIgnoreCertificateErrors: job.chromiumOptions.ignoreCertificateErrors,
86
+ defaultProps: job.inputProps,
87
+ };
88
+ }
89
+ throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
90
+ };
91
+ exports.makeRetryPayload = makeRetryPayload;
@@ -0,0 +1 @@
1
+ export declare const openDirectoryInFinder: (dirToOpen: string, allowedDirectory: string) => Promise<void>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.openDirectoryInFinder = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const os_1 = require("os");
9
+ const path_1 = __importDefault(require("path"));
10
+ const truthy_1 = require("../../truthy");
11
+ const openDirectoryInFinder = (dirToOpen, allowedDirectory) => {
12
+ const resolved = path_1.default.resolve(allowedDirectory, dirToOpen);
13
+ const relativeToProcessCwd = path_1.default.relative(allowedDirectory, resolved);
14
+ if (relativeToProcessCwd.startsWith('..')) {
15
+ throw new Error(`Not allowed to open ${relativeToProcessCwd}`);
16
+ }
17
+ const command = (0, os_1.platform)() === 'darwin'
18
+ ? 'open'
19
+ : (0, os_1.platform)() === 'linux'
20
+ ? 'xdg-open'
21
+ : 'start';
22
+ const p = (0, child_process_1.spawn)(command, [(0, os_1.platform)() === 'darwin' ? '-R' : null, dirToOpen].filter(truthy_1.truthy));
23
+ const stderrChunks = [];
24
+ p.stderr.on('data', (d) => stderrChunks.push(d));
25
+ return new Promise((resolve, reject) => {
26
+ p.on('exit', (code) => {
27
+ if (code === 0) {
28
+ resolve();
29
+ }
30
+ else {
31
+ const message = Buffer.concat(stderrChunks).toString('utf-8');
32
+ reject(new Error(message));
33
+ }
34
+ });
35
+ p.on('error', (err) => {
36
+ p.kill();
37
+ if (err) {
38
+ reject(err);
39
+ }
40
+ });
41
+ });
42
+ };
43
+ exports.openDirectoryInFinder = openDirectoryInFinder;
@@ -0,0 +1,8 @@
1
+ import type { JobProgressCallback, RenderJob } from './job';
2
+ export declare const processStill: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
+ job: RenderJob;
4
+ remotionRoot: string;
5
+ entryPoint: string;
6
+ onProgress: JobProgressCallback;
7
+ addCleanupCallback: (cb: () => void) => void;
8
+ }) => Promise<void>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processStill = void 0;
4
+ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to-serve-url");
5
+ const get_cli_options_1 = require("../../get-cli-options");
6
+ const still_1 = require("../../render-flows/still");
7
+ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
+ var _a;
9
+ if (job.type !== 'still') {
10
+ throw new Error('Expected still job');
11
+ }
12
+ const { publicDir, browserExecutable, port, browser, puppeteerTimeout } = await (0, get_cli_options_1.getCliOptions)({
13
+ isLambda: false,
14
+ type: 'still',
15
+ remotionRoot,
16
+ });
17
+ const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
18
+ await (0, still_1.renderStillFlow)({
19
+ remotionRoot,
20
+ browser,
21
+ browserExecutable,
22
+ chromiumOptions: job.chromiumOptions,
23
+ entryPointReason: 'same as preview',
24
+ envVariables: job.envVariables,
25
+ height: null,
26
+ fullEntryPoint,
27
+ inputProps: job.inputProps,
28
+ overwrite: true,
29
+ port,
30
+ publicDir,
31
+ puppeteerTimeout,
32
+ jpegQuality: (_a = job.jpegQuality) !== null && _a !== void 0 ? _a : undefined,
33
+ remainingArgs: [],
34
+ scale: job.scale,
35
+ stillFrame: job.frame,
36
+ width: null,
37
+ compositionIdFromUi: job.compositionId,
38
+ imageFormatFromUi: job.imageFormat,
39
+ logLevel: job.verbose ? 'verbose' : 'info',
40
+ onProgress,
41
+ indentOutput: true,
42
+ addCleanupCallback,
43
+ cancelSignal: job.cancelToken.cancelSignal,
44
+ });
45
+ };
46
+ exports.processStill = processStill;
@@ -0,0 +1,8 @@
1
+ import type { JobProgressCallback, RenderJob } from './job';
2
+ export declare const processVideoJob: ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }: {
3
+ job: RenderJob;
4
+ remotionRoot: string;
5
+ entryPoint: string;
6
+ onProgress: JobProgressCallback;
7
+ addCleanupCallback: (cb: () => void) => void;
8
+ }) => Promise<void>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processVideoJob = void 0;
4
+ const convert_entry_point_to_serve_url_1 = require("../../convert-entry-point-to-serve-url");
5
+ const get_cli_options_1 = require("../../get-cli-options");
6
+ const render_1 = require("../../render-flows/render");
7
+ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
8
+ var _a, _b;
9
+ if (job.type !== 'video') {
10
+ throw new Error('Expected video job');
11
+ }
12
+ const { publicDir, browserExecutable, port, browser, ffmpegOverride } = await (0, get_cli_options_1.getCliOptions)({
13
+ isLambda: false,
14
+ type: 'still',
15
+ remotionRoot,
16
+ });
17
+ const fullEntryPoint = (0, convert_entry_point_to_serve_url_1.convertEntryPointToServeUrl)(entryPoint);
18
+ await (0, render_1.renderVideoFlow)({
19
+ remotionRoot,
20
+ browser,
21
+ browserExecutable,
22
+ chromiumOptions: job.chromiumOptions,
23
+ entryPointReason: 'same as preview',
24
+ envVariables: job.envVariables,
25
+ height: null,
26
+ fullEntryPoint,
27
+ inputProps: job.inputProps,
28
+ overwrite: true,
29
+ port,
30
+ publicDir,
31
+ puppeteerTimeout: job.delayRenderTimeout,
32
+ jpegQuality: (_a = job.jpegQuality) !== null && _a !== void 0 ? _a : undefined,
33
+ remainingArgs: [],
34
+ scale: job.scale,
35
+ width: null,
36
+ compositionIdFromUi: job.compositionId,
37
+ logLevel: job.verbose ? 'verbose' : 'info',
38
+ onProgress,
39
+ indent: true,
40
+ concurrency: job.concurrency,
41
+ everyNthFrame: job.everyNthFrame,
42
+ frameRange: [job.startFrame, job.endFrame],
43
+ quiet: false,
44
+ shouldOutputImageSequence: false,
45
+ addCleanupCallback,
46
+ outputLocationFromUI: job.outName,
47
+ uiCodec: job.codec,
48
+ uiImageFormat: job.imageFormat,
49
+ cancelSignal: job.cancelToken.cancelSignal,
50
+ crf: job.crf,
51
+ ffmpegOverride,
52
+ audioBitrate: job.audioBitrate,
53
+ muted: job.muted,
54
+ enforceAudioTrack: job.enforceAudioTrack,
55
+ proResProfile: (_b = job.proResProfile) !== null && _b !== void 0 ? _b : undefined,
56
+ pixelFormat: job.pixelFormat,
57
+ videoBitrate: job.videoBitrate,
58
+ numberOfGifLoops: job.numberOfGifLoops,
59
+ audioCodec: job.audioCodec,
60
+ disallowParallelEncoding: job.disallowParallelEncoding,
61
+ });
62
+ };
63
+ exports.processVideoJob = processVideoJob;
@@ -0,0 +1,9 @@
1
+ import type { RenderJob, RenderJobWithCleanup } from './job';
2
+ export declare const getRenderQueue: () => RenderJob[];
3
+ export declare const addJob: ({ job, entryPoint, remotionRoot, }: {
4
+ job: RenderJobWithCleanup;
5
+ entryPoint: string;
6
+ remotionRoot: string;
7
+ }) => void;
8
+ export declare const removeJob: (jobId: string) => void;
9
+ export declare const cancelJob: (jobId: string) => void;
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.cancelJob = exports.removeJob = exports.addJob = exports.getRenderQueue = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const chalk_1 = require("../../chalk");
9
+ const file_watcher_1 = require("../../file-watcher");
10
+ const handle_common_errors_1 = require("../../handle-common-errors");
11
+ const log_1 = require("../../log");
12
+ const progress_types_1 = require("../../progress-types");
13
+ const live_events_1 = require("../live-events");
14
+ const process_still_1 = require("./process-still");
15
+ const process_video_1 = require("./process-video");
16
+ let jobQueue = [];
17
+ const updateJob = (id, updater) => {
18
+ jobQueue = jobQueue.map((j) => {
19
+ if (id === j.id) {
20
+ return updater(j);
21
+ }
22
+ return j;
23
+ });
24
+ notifyClientsOfJobUpdate();
25
+ };
26
+ const getRenderQueue = () => {
27
+ return jobQueue.map((j) => {
28
+ const { cleanup, ...rest } = j;
29
+ return rest;
30
+ });
31
+ };
32
+ exports.getRenderQueue = getRenderQueue;
33
+ const notifyClientsOfJobUpdate = () => {
34
+ (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
35
+ listener.sendEventToClient({
36
+ type: 'render-queue-updated',
37
+ queue: (0, exports.getRenderQueue)(),
38
+ });
39
+ });
40
+ };
41
+ const processJob = async ({ job, remotionRoot, entryPoint, onProgress, addCleanupCallback, }) => {
42
+ if (job.type === 'still') {
43
+ await (0, process_still_1.processStill)({
44
+ job,
45
+ remotionRoot,
46
+ entryPoint,
47
+ onProgress,
48
+ addCleanupCallback,
49
+ });
50
+ return;
51
+ }
52
+ if (job.type === 'video') {
53
+ await (0, process_video_1.processVideoJob)({
54
+ job,
55
+ remotionRoot,
56
+ entryPoint,
57
+ onProgress,
58
+ addCleanupCallback,
59
+ });
60
+ return;
61
+ }
62
+ throw new Error(`Unknown job ${JSON.stringify(job)}`);
63
+ };
64
+ const addJob = ({ job, entryPoint, remotionRoot, }) => {
65
+ jobQueue.push(job);
66
+ processJobIfPossible({ entryPoint, remotionRoot });
67
+ notifyClientsOfJobUpdate();
68
+ };
69
+ exports.addJob = addJob;
70
+ const removeJob = (jobId) => {
71
+ jobQueue = jobQueue.filter((job) => {
72
+ if (job.id === jobId) {
73
+ job.cleanup.forEach((c) => {
74
+ c();
75
+ });
76
+ return false;
77
+ }
78
+ return true;
79
+ });
80
+ notifyClientsOfJobUpdate();
81
+ };
82
+ exports.removeJob = removeJob;
83
+ const cancelJob = (jobId) => {
84
+ for (const job of jobQueue) {
85
+ if (job.id === jobId) {
86
+ if (job.status !== 'running') {
87
+ throw new Error('Job is not running');
88
+ }
89
+ job.cancelToken.cancel();
90
+ break;
91
+ }
92
+ }
93
+ };
94
+ exports.cancelJob = cancelJob;
95
+ // TODO: Currently, concurrency = 1 is not enforced
96
+ const processJobIfPossible = async ({ remotionRoot, entryPoint, }) => {
97
+ const runningJob = jobQueue.find((q) => {
98
+ return q.status === 'running';
99
+ });
100
+ if (runningJob) {
101
+ return;
102
+ }
103
+ const nextJob = jobQueue.find((q) => {
104
+ return q.status === 'idle';
105
+ });
106
+ if (!nextJob) {
107
+ return;
108
+ }
109
+ const jobCleanups = [];
110
+ try {
111
+ updateJob(nextJob.id, (job) => {
112
+ return {
113
+ ...job,
114
+ status: 'running',
115
+ progress: {
116
+ value: 0,
117
+ message: 'Starting job...',
118
+ ...(0, progress_types_1.initialAggregateRenderProgress)(),
119
+ },
120
+ };
121
+ });
122
+ const startTime = Date.now();
123
+ log_1.Log.info(chalk_1.chalk.gray('╭─ Starting render '));
124
+ let lastProgress = null;
125
+ await processJob({
126
+ job: nextJob,
127
+ entryPoint,
128
+ remotionRoot,
129
+ onProgress: (progress) => {
130
+ updateJob(nextJob.id, (job) => {
131
+ lastProgress = progress;
132
+ // Ignore late callbacks of progress updates after cancelling
133
+ if (job.status === 'failed' || job.status === 'done') {
134
+ return job;
135
+ }
136
+ if (job.type === 'still') {
137
+ return {
138
+ ...job,
139
+ status: 'running',
140
+ progress,
141
+ };
142
+ }
143
+ if (job.type === 'video') {
144
+ return {
145
+ ...job,
146
+ status: 'running',
147
+ progress,
148
+ };
149
+ }
150
+ throw new Error('Unknown job type');
151
+ });
152
+ },
153
+ addCleanupCallback: (cleanup) => {
154
+ jobCleanups.push(cleanup);
155
+ },
156
+ });
157
+ log_1.Log.info(chalk_1.chalk.gray('╰─ Done in ' + (Date.now() - startTime) + 'ms.'));
158
+ const { unwatch } = (0, file_watcher_1.installFileWatcher)({
159
+ file: path_1.default.resolve(remotionRoot, nextJob.outName),
160
+ onChange: (type) => {
161
+ if (type === 'created') {
162
+ updateJob(nextJob.id, (job) => ({
163
+ ...job,
164
+ deletedOutputLocation: false,
165
+ }));
166
+ }
167
+ if (type === 'deleted') {
168
+ updateJob(nextJob.id, (job) => ({
169
+ ...job,
170
+ deletedOutputLocation: true,
171
+ }));
172
+ }
173
+ },
174
+ });
175
+ updateJob(nextJob.id, (job) => {
176
+ if (!lastProgress) {
177
+ throw new Error('expected progress');
178
+ }
179
+ return {
180
+ ...job,
181
+ status: 'done',
182
+ cleanup: [...job.cleanup, unwatch],
183
+ progress: { message: 'Done', value: 1, ...lastProgress },
184
+ };
185
+ });
186
+ }
187
+ catch (err) {
188
+ log_1.Log.error(chalk_1.chalk.gray('╰─ '), chalk_1.chalk.red('Failed to render'));
189
+ updateJob(nextJob.id, (job) => {
190
+ return {
191
+ ...job,
192
+ status: 'failed',
193
+ error: {
194
+ message: err.message,
195
+ stack: err.stack,
196
+ },
197
+ };
198
+ });
199
+ await (0, handle_common_errors_1.handleCommonError)(err);
200
+ (0, live_events_1.waitForLiveEventsListener)().then((listener) => {
201
+ listener.sendEventToClient({
202
+ type: 'render-job-failed',
203
+ compositionId: nextJob.compositionId,
204
+ error: err,
205
+ });
206
+ });
207
+ }
208
+ finally {
209
+ await Promise.all(jobCleanups.map((c) => c()));
210
+ }
211
+ processJobIfPossible({ remotionRoot, entryPoint });
212
+ };
@@ -0,0 +1,3 @@
1
+ import type { ApiHandler } from '../api-types';
2
+ import type { AddRenderRequest } from '../render-queue/job';
3
+ export declare const handleAddRender: ApiHandler<AddRenderRequest, undefined>;