remotion 3.3.45 → 3.3.52

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 (553) hide show
  1. package/dist/Sequence.js +1 -1
  2. package/dist/Still.d.ts +0 -1
  3. package/dist/audio/Audio.d.ts +2 -2
  4. package/dist/audio/AudioForDevelopment.d.ts +1 -1
  5. package/dist/audio/AudioForRendering.d.ts +1 -1
  6. package/dist/cjs/AbsoluteFill.d.ts +6 -0
  7. package/dist/cjs/AbsoluteFill.js +28 -0
  8. package/dist/cjs/CanUseRemotionHooks.d.ts +5 -0
  9. package/dist/cjs/CanUseRemotionHooks.js +10 -0
  10. package/dist/cjs/Clipper.d.ts +7 -0
  11. package/dist/cjs/Clipper.js +24 -0
  12. package/dist/cjs/Composition.d.ts +23 -0
  13. package/dist/cjs/Composition.js +113 -0
  14. package/dist/cjs/CompositionManager.d.ts +82 -0
  15. package/dist/cjs/CompositionManager.js +164 -0
  16. package/dist/cjs/Folder.d.ts +15 -0
  17. package/dist/cjs/Folder.js +33 -0
  18. package/dist/cjs/IFrame.d.ts +2 -0
  19. package/dist/cjs/IFrame.js +24 -0
  20. package/dist/cjs/Img.d.ts +2 -0
  21. package/dist/cjs/Img.js +52 -0
  22. package/dist/cjs/NativeLayers.d.ts +13 -0
  23. package/dist/cjs/NativeLayers.js +29 -0
  24. package/dist/cjs/Null.d.ts +2 -0
  25. package/dist/cjs/Null.js +25 -0
  26. package/dist/cjs/RemotionRoot.d.ts +5 -0
  27. package/dist/cjs/RemotionRoot.js +73 -0
  28. package/dist/cjs/Sequence.d.ts +29 -0
  29. package/dist/cjs/Sequence.js +131 -0
  30. package/dist/cjs/Still.d.ts +3 -0
  31. package/dist/cjs/Still.js +9 -0
  32. package/dist/cjs/absolute-src.d.ts +1 -0
  33. package/dist/cjs/absolute-src.js +7 -0
  34. package/dist/cjs/asset-types.d.ts +50 -0
  35. package/dist/cjs/asset-types.js +1 -0
  36. package/dist/cjs/audio/Audio.d.ts +8 -0
  37. package/dist/cjs/audio/Audio.js +52 -0
  38. package/dist/cjs/audio/AudioForDevelopment.d.ts +11 -0
  39. package/dist/cjs/audio/AudioForDevelopment.js +94 -0
  40. package/dist/cjs/audio/AudioForRendering.d.ts +10 -0
  41. package/dist/cjs/audio/AudioForRendering.js +111 -0
  42. package/dist/cjs/audio/index.d.ts +2 -0
  43. package/dist/cjs/audio/index.js +18 -0
  44. package/dist/cjs/audio/props.d.ts +12 -0
  45. package/dist/cjs/audio/props.js +2 -0
  46. package/dist/cjs/audio/shared-audio-tags.d.ts +37 -0
  47. package/dist/cjs/audio/shared-audio-tags.js +222 -0
  48. package/dist/cjs/audio/use-audio-frame.d.ts +6 -0
  49. package/dist/cjs/audio/use-audio-frame.js +23 -0
  50. package/dist/cjs/bezier.d.ts +1 -0
  51. package/dist/cjs/bezier.js +114 -0
  52. package/dist/cjs/cancel-render.d.ts +1 -0
  53. package/dist/cjs/cancel-render.js +43 -0
  54. package/dist/cjs/config/input-props.d.ts +1 -0
  55. package/dist/cjs/config/input-props.js +31 -0
  56. package/dist/cjs/config.d.ts +285 -0
  57. package/dist/cjs/config.js +21 -0
  58. package/dist/cjs/default-css.d.ts +3 -0
  59. package/dist/cjs/default-css.js +49 -0
  60. package/dist/cjs/delay-render.d.ts +14 -0
  61. package/dist/cjs/delay-render.js +77 -0
  62. package/dist/cjs/easing.d.ts +19 -0
  63. package/dist/cjs/easing.js +77 -0
  64. package/dist/cjs/freeze.d.ts +7 -0
  65. package/dist/cjs/freeze.js +34 -0
  66. package/dist/cjs/get-asset-file-name.d.ts +1 -0
  67. package/dist/cjs/get-asset-file-name.js +14 -0
  68. package/dist/cjs/get-environment.d.ts +3 -0
  69. package/dist/cjs/get-environment.js +34 -0
  70. package/dist/cjs/get-preview-dom-element.d.ts +1 -0
  71. package/dist/cjs/get-preview-dom-element.js +7 -0
  72. package/dist/cjs/get-static-files.d.ts +17 -0
  73. package/dist/cjs/get-static-files.js +31 -0
  74. package/dist/cjs/get-timeline-clip-name.d.ts +1 -0
  75. package/dist/cjs/get-timeline-clip-name.js +25 -0
  76. package/dist/cjs/index.d.ts +92 -0
  77. package/dist/cjs/index.js +73 -0
  78. package/dist/cjs/internals.d.ts +99 -0
  79. package/dist/cjs/internals.js +101 -0
  80. package/dist/cjs/interpolate-colors.d.ts +5 -0
  81. package/dist/cjs/interpolate-colors.js +401 -0
  82. package/dist/cjs/interpolate.d.ts +18 -0
  83. package/dist/cjs/interpolate.js +123 -0
  84. package/dist/cjs/is-approximately-the-same.d.ts +1 -0
  85. package/dist/cjs/is-approximately-the-same.js +8 -0
  86. package/dist/cjs/is-player.d.ts +3 -0
  87. package/dist/cjs/is-player.js +14 -0
  88. package/dist/cjs/loading-indicator.d.ts +2 -0
  89. package/dist/cjs/loading-indicator.js +35 -0
  90. package/dist/cjs/loop/index.d.ts +9 -0
  91. package/dist/cjs/loop/index.js +29 -0
  92. package/dist/cjs/multiple-versions-warning.d.ts +1 -0
  93. package/dist/cjs/multiple-versions-warning.js +32 -0
  94. package/dist/cjs/nonce.d.ts +7 -0
  95. package/dist/cjs/nonce.js +17 -0
  96. package/dist/cjs/play-and-handle-not-allowed-error.d.ts +2 -0
  97. package/dist/cjs/play-and-handle-not-allowed-error.js +44 -0
  98. package/dist/cjs/portal-node.d.ts +1 -0
  99. package/dist/cjs/portal-node.js +23 -0
  100. package/dist/cjs/prefetch-state.d.ts +8 -0
  101. package/dist/cjs/prefetch-state.js +27 -0
  102. package/dist/cjs/prefetch.d.ts +9 -0
  103. package/dist/cjs/prefetch.js +108 -0
  104. package/dist/cjs/random.d.ts +7 -0
  105. package/dist/cjs/random.js +42 -0
  106. package/dist/cjs/register-root.d.ts +4 -0
  107. package/dist/cjs/register-root.js +33 -0
  108. package/dist/cjs/series/flatten-children.d.ts +2 -0
  109. package/dist/cjs/series/flatten-children.js +19 -0
  110. package/dist/cjs/series/index.d.ts +13 -0
  111. package/dist/cjs/series/index.js +60 -0
  112. package/dist/cjs/setup-env-variables.d.ts +2 -0
  113. package/dist/cjs/setup-env-variables.js +36 -0
  114. package/dist/cjs/spring/index.d.ts +27 -0
  115. package/dist/cjs/spring/index.js +55 -0
  116. package/dist/cjs/spring/measure-spring.d.ts +8 -0
  117. package/dist/cjs/spring/measure-spring.js +64 -0
  118. package/dist/cjs/spring/spring-utils.d.ts +21 -0
  119. package/dist/cjs/spring/spring-utils.js +103 -0
  120. package/dist/cjs/static-file.d.ts +5 -0
  121. package/dist/cjs/static-file.js +33 -0
  122. package/dist/cjs/test/Img.test.d.ts +1 -0
  123. package/dist/cjs/test/Img.test.js +25 -0
  124. package/dist/cjs/test/absolute-src.test.d.ts +1 -0
  125. package/dist/cjs/test/absolute-src.test.js +18 -0
  126. package/dist/cjs/test/audio-for-rendering.test.d.ts +1 -0
  127. package/dist/cjs/test/audio-for-rendering.test.js +88 -0
  128. package/dist/cjs/test/audio.test.d.ts +1 -0
  129. package/dist/cjs/test/audio.test.js +76 -0
  130. package/dist/cjs/test/bezier.test.d.ts +1 -0
  131. package/dist/cjs/test/bezier.test.js +52 -0
  132. package/dist/cjs/test/composition-rules.test.d.ts +1 -0
  133. package/dist/cjs/test/composition-rules.test.js +30 -0
  134. package/dist/cjs/test/composition-validation.test.d.ts +1 -0
  135. package/dist/cjs/test/composition-validation.test.js +99 -0
  136. package/dist/cjs/test/easing.test.d.ts +1 -0
  137. package/dist/cjs/test/easing.test.js +191 -0
  138. package/dist/cjs/test/expect-to-throw.d.ts +1 -0
  139. package/dist/cjs/test/expect-to-throw.js +15 -0
  140. package/dist/cjs/test/freeze.test.d.ts +1 -0
  141. package/dist/cjs/test/freeze.test.js +65 -0
  142. package/dist/cjs/test/get-asset-file-name.test.d.ts +1 -0
  143. package/dist/cjs/test/get-asset-file-name.test.js +14 -0
  144. package/dist/cjs/test/get-current-time.test.d.ts +1 -0
  145. package/dist/cjs/test/get-current-time.test.js +74 -0
  146. package/dist/cjs/test/input-props.test.d.ts +1 -0
  147. package/dist/cjs/test/input-props.test.js +31 -0
  148. package/dist/cjs/test/interpolate.test.d.ts +1 -0
  149. package/dist/cjs/test/interpolate.test.js +138 -0
  150. package/dist/cjs/test/interpolateColors.test.d.ts +1 -0
  151. package/dist/cjs/test/interpolateColors.test.js +63 -0
  152. package/dist/cjs/test/loop-validation.test.d.ts +1 -0
  153. package/dist/cjs/test/loop-validation.test.js +93 -0
  154. package/dist/cjs/test/measure-spring.test.d.ts +1 -0
  155. package/dist/cjs/test/measure-spring.test.js +45 -0
  156. package/dist/cjs/test/media-validation.test.d.ts +1 -0
  157. package/dist/cjs/test/media-validation.test.js +47 -0
  158. package/dist/cjs/test/nested-sequences.test.d.ts +1 -0
  159. package/dist/cjs/test/nested-sequences.test.js +132 -0
  160. package/dist/cjs/test/not-all-props-in-media-tags.test.d.ts +1 -0
  161. package/dist/cjs/test/not-all-props-in-media-tags.test.js +33 -0
  162. package/dist/cjs/test/random.test.d.ts +1 -0
  163. package/dist/cjs/test/random.test.js +60 -0
  164. package/dist/cjs/test/ready-manager.test.d.ts +1 -0
  165. package/dist/cjs/test/ready-manager.test.js +29 -0
  166. package/dist/cjs/test/render-hook.d.ts +23 -0
  167. package/dist/cjs/test/render-hook.js +27 -0
  168. package/dist/cjs/test/sequence-from-initial-offset.test.d.ts +4 -0
  169. package/dist/cjs/test/sequence-from-initial-offset.test.js +35 -0
  170. package/dist/cjs/test/sequence-validation.test.d.ts +1 -0
  171. package/dist/cjs/test/sequence-validation.test.js +47 -0
  172. package/dist/cjs/test/series.test.d.ts +1 -0
  173. package/dist/cjs/test/series.test.js +115 -0
  174. package/dist/cjs/test/spring.test.d.ts +1 -0
  175. package/dist/cjs/test/spring.test.js +38 -0
  176. package/dist/cjs/test/truthy.test.d.ts +1 -0
  177. package/dist/cjs/test/truthy.test.js +24 -0
  178. package/dist/cjs/test/use-audio-frame.test.d.ts +1 -0
  179. package/dist/cjs/test/use-audio-frame.test.js +78 -0
  180. package/dist/cjs/test/use-media-in-timeline.test.d.ts +1 -0
  181. package/dist/cjs/test/use-media-in-timeline.test.js +74 -0
  182. package/dist/cjs/test/use-media-tag-volume.test.d.ts +1 -0
  183. package/dist/cjs/test/use-media-tag-volume.test.js +49 -0
  184. package/dist/cjs/test/use-sync-volume-with-media-tag.test.d.ts +1 -0
  185. package/dist/cjs/test/use-sync-volume-with-media-tag.test.js +55 -0
  186. package/dist/cjs/test/validate-start-from-props.test.d.ts +1 -0
  187. package/dist/cjs/test/validate-start-from-props.test.js +39 -0
  188. package/dist/cjs/test/video.test.d.ts +1 -0
  189. package/dist/cjs/test/video.test.js +80 -0
  190. package/dist/cjs/test/volume-prop.test.d.ts +1 -0
  191. package/dist/cjs/test/volume-prop.test.js +95 -0
  192. package/dist/cjs/test/wrap-sequence-context.d.ts +6 -0
  193. package/dist/cjs/test/wrap-sequence-context.js +41 -0
  194. package/dist/cjs/timeline-position-state.d.ts +29 -0
  195. package/dist/cjs/timeline-position-state.js +41 -0
  196. package/dist/cjs/truthy.d.ts +3 -0
  197. package/dist/cjs/truthy.js +7 -0
  198. package/dist/cjs/use-current-frame.d.ts +6 -0
  199. package/dist/cjs/use-current-frame.js +28 -0
  200. package/dist/cjs/use-lazy-component.d.ts +7 -0
  201. package/dist/cjs/use-lazy-component.js +49 -0
  202. package/dist/cjs/use-media-in-timeline.d.ts +10 -0
  203. package/dist/cjs/use-media-in-timeline.js +129 -0
  204. package/dist/cjs/use-media-playback.d.ts +10 -0
  205. package/dist/cjs/use-media-playback.js +77 -0
  206. package/dist/cjs/use-media-tag-volume.d.ts +2 -0
  207. package/dist/cjs/use-media-tag-volume.js +31 -0
  208. package/dist/cjs/use-sync-volume-with-media-tag.d.ts +10 -0
  209. package/dist/cjs/use-sync-volume-with-media-tag.js +21 -0
  210. package/dist/cjs/use-unsafe-video-config.d.ts +2 -0
  211. package/dist/cjs/use-unsafe-video-config.js +27 -0
  212. package/dist/cjs/use-video-config.d.ts +7 -0
  213. package/dist/cjs/use-video-config.js +29 -0
  214. package/dist/cjs/use-video.d.ts +13 -0
  215. package/dist/cjs/use-video.js +28 -0
  216. package/dist/cjs/validate-frame.d.ts +1 -0
  217. package/dist/cjs/validate-frame.js +24 -0
  218. package/dist/cjs/validate-media-props.d.ts +4 -0
  219. package/dist/cjs/validate-media-props.js +24 -0
  220. package/dist/cjs/validate-start-from-props.d.ts +1 -0
  221. package/dist/cjs/validate-start-from-props.js +31 -0
  222. package/dist/cjs/validation/validate-composition-id.d.ts +3 -0
  223. package/dist/cjs/validation/validate-composition-id.js +13 -0
  224. package/dist/cjs/validation/validate-dimensions.d.ts +1 -0
  225. package/dist/cjs/validation/validate-dimensions.js +21 -0
  226. package/dist/cjs/validation/validate-duration-in-frames.d.ts +1 -0
  227. package/dist/cjs/validation/validate-duration-in-frames.js +15 -0
  228. package/dist/cjs/validation/validate-folder-name.d.ts +3 -0
  229. package/dist/cjs/validation/validate-folder-name.js +19 -0
  230. package/dist/cjs/validation/validate-fps.d.ts +1 -0
  231. package/dist/cjs/validation/validate-fps.js +21 -0
  232. package/dist/cjs/validation/validate-offthreadvideo-image-format.d.ts +1 -0
  233. package/dist/cjs/validation/validate-offthreadvideo-image-format.js +15 -0
  234. package/dist/cjs/validation/validation-spring-duration.d.ts +1 -0
  235. package/dist/cjs/validation/validation-spring-duration.js +21 -0
  236. package/dist/cjs/version.d.ts +1 -0
  237. package/dist/cjs/version.js +5 -0
  238. package/dist/cjs/video/OffthreadVideo.d.ts +3 -0
  239. package/dist/cjs/video/OffthreadVideo.js +33 -0
  240. package/dist/cjs/video/OffthreadVideoForRendering.d.ts +3 -0
  241. package/dist/cjs/video/OffthreadVideoForRendering.js +104 -0
  242. package/dist/cjs/video/Video.d.ts +8 -0
  243. package/dist/cjs/video/Video.js +50 -0
  244. package/dist/cjs/video/VideoForDevelopment.d.ts +11 -0
  245. package/dist/cjs/video/VideoForDevelopment.js +113 -0
  246. package/dist/cjs/video/VideoForRendering.d.ts +10 -0
  247. package/dist/cjs/video/VideoForRendering.js +203 -0
  248. package/dist/cjs/video/duration-state.d.ts +17 -0
  249. package/dist/cjs/video/duration-state.js +34 -0
  250. package/dist/cjs/video/get-current-time.d.ts +13 -0
  251. package/dist/cjs/video/get-current-time.js +31 -0
  252. package/dist/cjs/video/index.d.ts +3 -0
  253. package/dist/cjs/video/index.js +7 -0
  254. package/dist/cjs/video/props.d.ts +25 -0
  255. package/dist/cjs/video/props.js +2 -0
  256. package/dist/cjs/video/video-fragment.d.ts +12 -0
  257. package/dist/cjs/video/video-fragment.js +60 -0
  258. package/dist/cjs/video-config.d.ts +8 -0
  259. package/dist/cjs/video-config.js +2 -0
  260. package/dist/cjs/volume-position-state.d.ts +19 -0
  261. package/dist/cjs/volume-position-state.js +32 -0
  262. package/dist/cjs/volume-prop.d.ts +7 -0
  263. package/dist/cjs/volume-prop.js +24 -0
  264. package/dist/cjs/warn-about-non-seekable-media.d.ts +1 -0
  265. package/dist/cjs/warn-about-non-seekable-media.js +34 -0
  266. package/dist/cjs/wrap-remotion-context.d.ts +18 -0
  267. package/dist/cjs/wrap-remotion-context.js +73 -0
  268. package/dist/esm/AbsoluteFill.d.ts +6 -0
  269. package/dist/esm/AbsoluteFill.js +25 -0
  270. package/dist/esm/CanUseRemotionHooks.d.ts +5 -0
  271. package/dist/esm/CanUseRemotionHooks.js +6 -0
  272. package/dist/esm/Clipper.d.ts +7 -0
  273. package/dist/esm/Clipper.js +20 -0
  274. package/dist/esm/Composition.d.ts +23 -0
  275. package/dist/esm/Composition.js +108 -0
  276. package/dist/esm/CompositionManager.d.ts +82 -0
  277. package/dist/esm/CompositionManager.js +137 -0
  278. package/dist/esm/Folder.d.ts +15 -0
  279. package/dist/esm/Folder.js +29 -0
  280. package/dist/esm/IFrame.d.ts +2 -0
  281. package/dist/esm/IFrame.js +21 -0
  282. package/dist/esm/Img.d.ts +2 -0
  283. package/dist/esm/Img.js +49 -0
  284. package/dist/esm/NativeLayers.d.ts +13 -0
  285. package/dist/esm/NativeLayers.js +25 -0
  286. package/dist/esm/Null.d.ts +2 -0
  287. package/dist/esm/Null.js +21 -0
  288. package/dist/esm/RemotionRoot.d.ts +5 -0
  289. package/dist/esm/RemotionRoot.js +69 -0
  290. package/dist/esm/Sequence.d.ts +29 -0
  291. package/dist/esm/Sequence.js +128 -0
  292. package/dist/esm/Still.d.ts +3 -0
  293. package/dist/esm/Still.js +5 -0
  294. package/dist/esm/absolute-src.d.ts +1 -0
  295. package/dist/esm/absolute-src.js +3 -0
  296. package/dist/esm/asset-types.d.ts +50 -0
  297. package/dist/esm/asset-types.js +1 -0
  298. package/dist/esm/audio/Audio.d.ts +8 -0
  299. package/dist/esm/audio/Audio.js +49 -0
  300. package/dist/esm/audio/AudioForDevelopment.d.ts +11 -0
  301. package/dist/esm/audio/AudioForDevelopment.js +91 -0
  302. package/dist/esm/audio/AudioForRendering.d.ts +10 -0
  303. package/dist/esm/audio/AudioForRendering.js +108 -0
  304. package/dist/esm/audio/index.d.ts +2 -0
  305. package/dist/esm/audio/index.js +2 -0
  306. package/dist/esm/audio/props.d.ts +12 -0
  307. package/dist/esm/audio/props.js +1 -0
  308. package/dist/esm/audio/shared-audio-tags.d.ts +37 -0
  309. package/dist/esm/audio/shared-audio-tags.js +194 -0
  310. package/dist/esm/audio/use-audio-frame.d.ts +6 -0
  311. package/dist/esm/audio/use-audio-frame.js +18 -0
  312. package/dist/esm/bezier.d.ts +1 -0
  313. package/dist/esm/bezier.js +110 -0
  314. package/dist/esm/cancel-render.d.ts +1 -0
  315. package/dist/esm/cancel-render.js +39 -0
  316. package/dist/esm/config/input-props.d.ts +1 -0
  317. package/dist/esm/config/input-props.js +27 -0
  318. package/dist/esm/config.d.ts +285 -0
  319. package/dist/esm/config.js +17 -0
  320. package/dist/esm/default-css.d.ts +3 -0
  321. package/dist/esm/default-css.js +44 -0
  322. package/dist/esm/delay-render.d.ts +14 -0
  323. package/dist/esm/delay-render.js +72 -0
  324. package/dist/esm/easing.d.ts +19 -0
  325. package/dist/esm/easing.js +73 -0
  326. package/dist/esm/freeze.d.ts +7 -0
  327. package/dist/esm/freeze.js +30 -0
  328. package/dist/esm/get-asset-file-name.d.ts +1 -0
  329. package/dist/esm/get-asset-file-name.js +10 -0
  330. package/dist/esm/get-environment.d.ts +3 -0
  331. package/dist/esm/get-environment.js +29 -0
  332. package/dist/esm/get-preview-dom-element.d.ts +1 -0
  333. package/dist/esm/get-preview-dom-element.js +3 -0
  334. package/dist/esm/get-static-files.d.ts +17 -0
  335. package/dist/esm/get-static-files.js +27 -0
  336. package/dist/esm/get-timeline-clip-name.d.ts +1 -0
  337. package/dist/esm/get-timeline-clip-name.js +21 -0
  338. package/dist/esm/index.d.ts +92 -0
  339. package/dist/esm/index.js +41 -0
  340. package/dist/esm/internals.d.ts +99 -0
  341. package/dist/esm/internals.js +75 -0
  342. package/dist/esm/interpolate-colors.d.ts +5 -0
  343. package/dist/esm/interpolate-colors.js +397 -0
  344. package/dist/esm/interpolate.d.ts +18 -0
  345. package/dist/esm/interpolate.js +119 -0
  346. package/dist/esm/is-approximately-the-same.d.ts +1 -0
  347. package/dist/esm/is-approximately-the-same.js +4 -0
  348. package/dist/esm/is-player.d.ts +3 -0
  349. package/dist/esm/is-player.js +9 -0
  350. package/dist/esm/loading-indicator.d.ts +2 -0
  351. package/dist/esm/loading-indicator.js +31 -0
  352. package/dist/esm/loop/index.d.ts +9 -0
  353. package/dist/esm/loop/index.js +25 -0
  354. package/dist/esm/multiple-versions-warning.d.ts +1 -0
  355. package/dist/esm/multiple-versions-warning.js +28 -0
  356. package/dist/esm/nonce.d.ts +7 -0
  357. package/dist/esm/nonce.js +13 -0
  358. package/dist/esm/play-and-handle-not-allowed-error.d.ts +2 -0
  359. package/dist/esm/play-and-handle-not-allowed-error.js +40 -0
  360. package/dist/esm/portal-node.d.ts +1 -0
  361. package/dist/esm/portal-node.js +19 -0
  362. package/dist/esm/prefetch-state.d.ts +8 -0
  363. package/dist/esm/prefetch-state.js +22 -0
  364. package/dist/esm/prefetch.d.ts +9 -0
  365. package/dist/esm/prefetch.js +103 -0
  366. package/dist/esm/random.d.ts +7 -0
  367. package/dist/esm/random.js +38 -0
  368. package/dist/esm/register-root.d.ts +4 -0
  369. package/dist/esm/register-root.js +27 -0
  370. package/dist/esm/series/flatten-children.d.ts +2 -0
  371. package/dist/esm/series/flatten-children.js +12 -0
  372. package/dist/esm/series/index.d.ts +13 -0
  373. package/dist/esm/series/index.js +57 -0
  374. package/dist/esm/setup-env-variables.d.ts +2 -0
  375. package/dist/esm/setup-env-variables.js +32 -0
  376. package/dist/esm/spring/index.d.ts +27 -0
  377. package/dist/esm/spring/index.js +50 -0
  378. package/dist/esm/spring/measure-spring.d.ts +8 -0
  379. package/dist/esm/spring/measure-spring.js +60 -0
  380. package/dist/esm/spring/spring-utils.d.ts +21 -0
  381. package/dist/esm/spring/spring-utils.js +99 -0
  382. package/dist/esm/static-file.d.ts +5 -0
  383. package/dist/esm/static-file.js +29 -0
  384. package/dist/esm/test/Img.test.d.ts +1 -0
  385. package/dist/esm/test/Img.test.js +20 -0
  386. package/dist/esm/test/absolute-src.test.d.ts +1 -0
  387. package/dist/esm/test/absolute-src.test.js +16 -0
  388. package/dist/esm/test/audio-for-rendering.test.d.ts +1 -0
  389. package/dist/esm/test/audio-for-rendering.test.js +83 -0
  390. package/dist/esm/test/audio.test.d.ts +1 -0
  391. package/dist/esm/test/audio.test.js +51 -0
  392. package/dist/esm/test/bezier.test.d.ts +1 -0
  393. package/dist/esm/test/bezier.test.js +50 -0
  394. package/dist/esm/test/composition-rules.test.d.ts +1 -0
  395. package/dist/esm/test/composition-rules.test.js +28 -0
  396. package/dist/esm/test/composition-validation.test.d.ts +1 -0
  397. package/dist/esm/test/composition-validation.test.js +97 -0
  398. package/dist/esm/test/easing.test.d.ts +1 -0
  399. package/dist/esm/test/easing.test.js +189 -0
  400. package/dist/esm/test/expect-to-throw.d.ts +1 -0
  401. package/dist/esm/test/expect-to-throw.js +11 -0
  402. package/dist/esm/test/freeze.test.d.ts +1 -0
  403. package/dist/esm/test/freeze.test.js +63 -0
  404. package/dist/esm/test/get-asset-file-name.test.d.ts +1 -0
  405. package/dist/esm/test/get-asset-file-name.test.js +12 -0
  406. package/dist/esm/test/get-current-time.test.d.ts +1 -0
  407. package/dist/esm/test/get-current-time.test.js +72 -0
  408. package/dist/esm/test/input-props.test.d.ts +1 -0
  409. package/dist/esm/test/input-props.test.js +29 -0
  410. package/dist/esm/test/interpolate.test.d.ts +1 -0
  411. package/dist/esm/test/interpolate.test.js +136 -0
  412. package/dist/esm/test/interpolateColors.test.d.ts +1 -0
  413. package/dist/esm/test/interpolateColors.test.js +61 -0
  414. package/dist/esm/test/loop-validation.test.d.ts +1 -0
  415. package/dist/esm/test/loop-validation.test.js +68 -0
  416. package/dist/esm/test/measure-spring.test.d.ts +1 -0
  417. package/dist/esm/test/measure-spring.test.js +43 -0
  418. package/dist/esm/test/media-validation.test.d.ts +1 -0
  419. package/dist/esm/test/media-validation.test.js +45 -0
  420. package/dist/esm/test/nested-sequences.test.d.ts +1 -0
  421. package/dist/esm/test/nested-sequences.test.js +130 -0
  422. package/dist/esm/test/not-all-props-in-media-tags.test.d.ts +1 -0
  423. package/dist/esm/test/not-all-props-in-media-tags.test.js +28 -0
  424. package/dist/esm/test/random.test.d.ts +1 -0
  425. package/dist/esm/test/random.test.js +58 -0
  426. package/dist/esm/test/ready-manager.test.d.ts +1 -0
  427. package/dist/esm/test/ready-manager.test.js +27 -0
  428. package/dist/esm/test/render-hook.d.ts +23 -0
  429. package/dist/esm/test/render-hook.js +20 -0
  430. package/dist/esm/test/sequence-from-initial-offset.test.d.ts +4 -0
  431. package/dist/esm/test/sequence-from-initial-offset.test.js +33 -0
  432. package/dist/esm/test/sequence-validation.test.d.ts +1 -0
  433. package/dist/esm/test/sequence-validation.test.js +45 -0
  434. package/dist/esm/test/series.test.d.ts +1 -0
  435. package/dist/esm/test/series.test.js +113 -0
  436. package/dist/esm/test/spring.test.d.ts +1 -0
  437. package/dist/esm/test/spring.test.js +36 -0
  438. package/dist/esm/test/truthy.test.d.ts +1 -0
  439. package/dist/esm/test/truthy.test.js +22 -0
  440. package/dist/esm/test/use-audio-frame.test.d.ts +1 -0
  441. package/dist/esm/test/use-audio-frame.test.js +53 -0
  442. package/dist/esm/test/use-media-in-timeline.test.d.ts +1 -0
  443. package/dist/esm/test/use-media-in-timeline.test.js +49 -0
  444. package/dist/esm/test/use-media-tag-volume.test.d.ts +1 -0
  445. package/dist/esm/test/use-media-tag-volume.test.js +44 -0
  446. package/dist/esm/test/use-sync-volume-with-media-tag.test.d.ts +1 -0
  447. package/dist/esm/test/use-sync-volume-with-media-tag.test.js +53 -0
  448. package/dist/esm/test/validate-start-from-props.test.d.ts +1 -0
  449. package/dist/esm/test/validate-start-from-props.test.js +37 -0
  450. package/dist/esm/test/video.test.d.ts +1 -0
  451. package/dist/esm/test/video.test.js +55 -0
  452. package/dist/esm/test/volume-prop.test.d.ts +1 -0
  453. package/dist/esm/test/volume-prop.test.js +93 -0
  454. package/dist/esm/test/wrap-sequence-context.d.ts +6 -0
  455. package/dist/esm/test/wrap-sequence-context.js +37 -0
  456. package/dist/esm/timeline-position-state.d.ts +29 -0
  457. package/dist/esm/timeline-position-state.js +35 -0
  458. package/dist/esm/truthy.d.ts +3 -0
  459. package/dist/esm/truthy.js +3 -0
  460. package/dist/esm/use-current-frame.d.ts +6 -0
  461. package/dist/esm/use-current-frame.js +24 -0
  462. package/dist/esm/use-lazy-component.d.ts +7 -0
  463. package/dist/esm/use-lazy-component.js +22 -0
  464. package/dist/esm/use-media-in-timeline.d.ts +10 -0
  465. package/dist/esm/use-media-in-timeline.js +125 -0
  466. package/dist/esm/use-media-playback.d.ts +10 -0
  467. package/dist/esm/use-media-playback.js +73 -0
  468. package/dist/esm/use-media-tag-volume.d.ts +2 -0
  469. package/dist/esm/use-media-tag-volume.js +27 -0
  470. package/dist/esm/use-sync-volume-with-media-tag.d.ts +10 -0
  471. package/dist/esm/use-sync-volume-with-media-tag.js +17 -0
  472. package/dist/esm/use-unsafe-video-config.d.ts +2 -0
  473. package/dist/esm/use-unsafe-video-config.js +23 -0
  474. package/dist/esm/use-video-config.d.ts +7 -0
  475. package/dist/esm/use-video-config.js +25 -0
  476. package/dist/esm/use-video.d.ts +13 -0
  477. package/dist/esm/use-video.js +24 -0
  478. package/dist/esm/validate-frame.d.ts +1 -0
  479. package/dist/esm/validate-frame.js +20 -0
  480. package/dist/esm/validate-media-props.d.ts +4 -0
  481. package/dist/esm/validate-media-props.js +20 -0
  482. package/dist/esm/validate-start-from-props.d.ts +1 -0
  483. package/dist/esm/validate-start-from-props.js +27 -0
  484. package/dist/esm/validation/validate-composition-id.d.ts +3 -0
  485. package/dist/esm/validation/validate-composition-id.js +8 -0
  486. package/dist/esm/validation/validate-dimensions.d.ts +1 -0
  487. package/dist/esm/validation/validate-dimensions.js +17 -0
  488. package/dist/esm/validation/validate-duration-in-frames.d.ts +1 -0
  489. package/dist/esm/validation/validate-duration-in-frames.js +11 -0
  490. package/dist/esm/validation/validate-folder-name.d.ts +3 -0
  491. package/dist/esm/validation/validate-folder-name.js +14 -0
  492. package/dist/esm/validation/validate-fps.d.ts +1 -0
  493. package/dist/esm/validation/validate-fps.js +17 -0
  494. package/dist/esm/validation/validate-offthreadvideo-image-format.d.ts +1 -0
  495. package/dist/esm/validation/validate-offthreadvideo-image-format.js +11 -0
  496. package/dist/esm/validation/validation-spring-duration.d.ts +1 -0
  497. package/dist/esm/validation/validation-spring-duration.js +17 -0
  498. package/dist/esm/version.d.ts +1 -0
  499. package/dist/esm/version.js +2 -0
  500. package/dist/esm/video/OffthreadVideo.d.ts +3 -0
  501. package/dist/esm/video/OffthreadVideo.js +29 -0
  502. package/dist/esm/video/OffthreadVideoForRendering.d.ts +3 -0
  503. package/dist/esm/video/OffthreadVideoForRendering.js +100 -0
  504. package/dist/esm/video/Video.d.ts +8 -0
  505. package/dist/esm/video/Video.js +47 -0
  506. package/dist/esm/video/VideoForDevelopment.d.ts +11 -0
  507. package/dist/esm/video/VideoForDevelopment.js +110 -0
  508. package/dist/esm/video/VideoForRendering.d.ts +10 -0
  509. package/dist/esm/video/VideoForRendering.js +200 -0
  510. package/dist/esm/video/duration-state.d.ts +17 -0
  511. package/dist/esm/video/duration-state.js +29 -0
  512. package/dist/esm/video/get-current-time.d.ts +13 -0
  513. package/dist/esm/video/get-current-time.js +26 -0
  514. package/dist/esm/video/index.d.ts +3 -0
  515. package/dist/esm/video/index.js +2 -0
  516. package/dist/esm/video/props.d.ts +25 -0
  517. package/dist/esm/video/props.js +1 -0
  518. package/dist/esm/video/video-fragment.d.ts +12 -0
  519. package/dist/esm/video/video-fragment.js +55 -0
  520. package/dist/esm/video-config.d.ts +8 -0
  521. package/dist/esm/video-config.js +1 -0
  522. package/dist/esm/volume-position-state.d.ts +19 -0
  523. package/dist/esm/volume-position-state.js +27 -0
  524. package/dist/esm/volume-prop.d.ts +7 -0
  525. package/dist/esm/volume-prop.js +20 -0
  526. package/dist/esm/warn-about-non-seekable-media.d.ts +1 -0
  527. package/dist/esm/warn-about-non-seekable-media.js +30 -0
  528. package/dist/esm/wrap-remotion-context.d.ts +18 -0
  529. package/dist/esm/wrap-remotion-context.js +45 -0
  530. package/dist/internals.d.ts +0 -1
  531. package/dist/series/index.js +5 -2
  532. package/dist/tsconfig-cjs.tsbuildinfo +1 -0
  533. package/dist/use-video.d.ts +0 -1
  534. package/dist/version.d.ts +1 -1
  535. package/dist/version.js +1 -1
  536. package/dist/video/Video.d.ts +1 -1
  537. package/dist/video/VideoForDevelopment.d.ts +1 -1
  538. package/dist/video/VideoForRendering.d.ts +1 -1
  539. package/package.json +23 -12
  540. package/tsconfig-cjs.json +11 -0
  541. package/tsconfig.json +3 -3
  542. package/dist/LayerMaster.d.ts +0 -8
  543. package/dist/LayerMaster.js +0 -39
  544. package/dist/Satori.d.ts +0 -5
  545. package/dist/Satori.js +0 -92
  546. package/dist/get-compositions-from-markup.d.ts +0 -3
  547. package/dist/get-compositions-from-markup.js +0 -19
  548. package/dist/layers.d.ts +0 -24
  549. package/dist/layers.js +0 -149
  550. package/dist/video/NativeVideo.d.ts +0 -5
  551. package/dist/video/NativeVideo.js +0 -33
  552. package/dist/video/NativeVideoForRendering.d.ts +0 -8
  553. package/dist/video/NativeVideoForRendering.js +0 -14
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const volume_prop_js_1 = require("../volume-prop.js");
5
+ const expect_to_throw_js_1 = require("./expect-to-throw.js");
6
+ (0, vitest_1.describe)('EvaluateVolume does not throw', () => {
7
+ (0, vitest_1.test)('Volume is undefined', () => {
8
+ const toEvaluate = {
9
+ frame: 10,
10
+ volume: undefined,
11
+ mediaVolume: 1,
12
+ allowAmplificationDuringRender: false,
13
+ };
14
+ (0, vitest_1.expect)((0, volume_prop_js_1.evaluateVolume)(toEvaluate)).toEqual(1);
15
+ });
16
+ (0, vitest_1.test)('Volume is smaller than one', () => {
17
+ const smallVolume = 0.5;
18
+ const toEvaluate = {
19
+ frame: 10,
20
+ volume: smallVolume,
21
+ mediaVolume: 1,
22
+ allowAmplificationDuringRender: false,
23
+ };
24
+ (0, vitest_1.expect)((0, volume_prop_js_1.evaluateVolume)(toEvaluate)).toEqual(smallVolume);
25
+ });
26
+ (0, vitest_1.test)('Volume is bigger than one', () => {
27
+ const toEvaluate = {
28
+ frame: 10,
29
+ volume: 10,
30
+ mediaVolume: 1,
31
+ allowAmplificationDuringRender: true,
32
+ };
33
+ (0, vitest_1.expect)((0, volume_prop_js_1.evaluateVolume)(toEvaluate)).toBe(10);
34
+ });
35
+ (0, vitest_1.test)('evaluated volume from frame that is smaller than one', () => {
36
+ const toEvaluate = {
37
+ frame: 1,
38
+ volume: (frame) => frame * 0.5,
39
+ mediaVolume: 1,
40
+ allowAmplificationDuringRender: false,
41
+ };
42
+ (0, vitest_1.expect)((0, volume_prop_js_1.evaluateVolume)(toEvaluate)).toBe(0.5);
43
+ });
44
+ (0, vitest_1.test)('evaluated volume from frame that is bigger than one', () => {
45
+ const toEvaluate = {
46
+ frame: 10,
47
+ volume: (frame) => frame,
48
+ mediaVolume: 1,
49
+ allowAmplificationDuringRender: false,
50
+ };
51
+ (0, vitest_1.expect)((0, volume_prop_js_1.evaluateVolume)(toEvaluate)).toBe(1);
52
+ });
53
+ });
54
+ (0, vitest_1.describe)('evaluateVolume throws exception', () => {
55
+ (0, vitest_1.test)('It should throw if volume prop is neither number nor undefined', () => {
56
+ const toEvaluate = { frame: 10, volume: 'NaN' };
57
+ (0, expect_to_throw_js_1.expectToThrow)(() => {
58
+ // @ts-expect-error
59
+ (0, volume_prop_js_1.evaluateVolume)(toEvaluate);
60
+ }, /volume is not a function/);
61
+ });
62
+ (0, vitest_1.test)('It should throw if volume is invalid type', () => {
63
+ const invalidVolume = 'anystring';
64
+ const toEvaluate = { frame: 1, volume: () => invalidVolume, mediaVolume: 1 };
65
+ // changing the test because string multiply by a number in javascript is `NaN`
66
+ (0, expect_to_throw_js_1.expectToThrow)(() => {
67
+ // @ts-expect-error
68
+ (0, volume_prop_js_1.evaluateVolume)(toEvaluate);
69
+ }, /You passed in a function to the volume prop but it returned NaN for frame 1./);
70
+ });
71
+ (0, vitest_1.test)('It should throw if volume is NaN', () => {
72
+ const invalidVolume = NaN;
73
+ const toEvaluate = {
74
+ frame: 1,
75
+ volume: () => invalidVolume,
76
+ mediaVolume: 1,
77
+ allowAmplificationDuringRender: false,
78
+ };
79
+ (0, expect_to_throw_js_1.expectToThrow)(() => {
80
+ (0, volume_prop_js_1.evaluateVolume)(toEvaluate);
81
+ }, /You passed in a function to the volume prop but it returned NaN for frame 1/);
82
+ });
83
+ (0, vitest_1.test)('It should throw if volume returns non finite number', () => {
84
+ const invalidVolume = Infinity;
85
+ const toEvaluate = {
86
+ frame: 1,
87
+ volume: () => invalidVolume,
88
+ mediaVolume: 1,
89
+ allowAmplificationDuringRender: false,
90
+ };
91
+ (0, expect_to_throw_js_1.expectToThrow)(() => {
92
+ (0, volume_prop_js_1.evaluateVolume)(toEvaluate);
93
+ }, /You passed in a function to the volume prop but it returned a non-finite number for frame 1/);
94
+ });
95
+ });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { CompositionManagerContext } from '../CompositionManager.js';
3
+ export declare const mockCompositionContext: CompositionManagerContext;
4
+ export declare const WrapSequenceContext: React.FC<{
5
+ children: React.ReactNode;
6
+ }>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WrapSequenceContext = exports.mockCompositionContext = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const CanUseRemotionHooks_js_1 = require("../CanUseRemotionHooks.js");
6
+ const CompositionManager_js_1 = require("../CompositionManager.js");
7
+ const Comp = () => null;
8
+ exports.mockCompositionContext = {
9
+ assets: [],
10
+ compositions: [
11
+ {
12
+ id: 'my-comp',
13
+ durationInFrames: 100,
14
+ // @ts-expect-error
15
+ component: Comp,
16
+ defaultProps: {},
17
+ folderName: null,
18
+ fps: 30,
19
+ height: 1080,
20
+ width: 1080,
21
+ parentFolderName: null,
22
+ nonce: 0,
23
+ },
24
+ ],
25
+ currentComposition: 'my-comp',
26
+ folders: [],
27
+ registerAsset: () => undefined,
28
+ registerComposition: () => undefined,
29
+ registerFolder: () => undefined,
30
+ registerSequence: () => undefined,
31
+ sequences: [],
32
+ setCurrentComposition: () => undefined,
33
+ unregisterAsset: () => undefined,
34
+ unregisterComposition: () => undefined,
35
+ unregisterFolder: () => undefined,
36
+ unregisterSequence: () => undefined,
37
+ };
38
+ const WrapSequenceContext = ({ children }) => {
39
+ return ((0, jsx_runtime_1.jsx)(CanUseRemotionHooks_js_1.CanUseRemotionHooksProvider, { children: (0, jsx_runtime_1.jsx)(CompositionManager_js_1.CompositionManager.Provider, { value: exports.mockCompositionContext, children: children }) }));
40
+ };
41
+ exports.WrapSequenceContext = WrapSequenceContext;
@@ -0,0 +1,29 @@
1
+ import type { MutableRefObject } from 'react';
2
+ export declare type PlayableMediaTag = {
3
+ play: () => void;
4
+ id: string;
5
+ };
6
+ export declare type TimelineContextValue = {
7
+ frame: number;
8
+ playing: boolean;
9
+ rootId: string;
10
+ playbackRate: number;
11
+ imperativePlaying: MutableRefObject<boolean>;
12
+ setPlaybackRate: (u: React.SetStateAction<number>) => void;
13
+ audioAndVideoTags: MutableRefObject<PlayableMediaTag[]>;
14
+ };
15
+ export declare type SetTimelineContextValue = {
16
+ setFrame: (u: React.SetStateAction<number>) => void;
17
+ setPlaying: (u: React.SetStateAction<boolean>) => void;
18
+ };
19
+ export declare const TimelineContext: import("react").Context<TimelineContextValue>;
20
+ export declare const SetTimelineContext: import("react").Context<SetTimelineContextValue>;
21
+ export declare const useTimelinePosition: () => number;
22
+ export declare const useTimelineSetFrame: () => (u: React.SetStateAction<number>) => void;
23
+ declare type PlayingReturnType = readonly [
24
+ boolean,
25
+ (u: React.SetStateAction<boolean>) => void,
26
+ MutableRefObject<boolean>
27
+ ];
28
+ export declare const usePlayingState: () => PlayingReturnType;
29
+ export {};
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePlayingState = exports.useTimelineSetFrame = exports.useTimelinePosition = exports.SetTimelineContext = exports.TimelineContext = void 0;
4
+ const react_1 = require("react");
5
+ exports.TimelineContext = (0, react_1.createContext)({
6
+ frame: 0,
7
+ playing: false,
8
+ playbackRate: 1,
9
+ rootId: '',
10
+ imperativePlaying: {
11
+ current: false,
12
+ },
13
+ setPlaybackRate: () => {
14
+ throw new Error('default');
15
+ },
16
+ audioAndVideoTags: { current: [] },
17
+ });
18
+ exports.SetTimelineContext = (0, react_1.createContext)({
19
+ setFrame: () => {
20
+ throw new Error('default');
21
+ },
22
+ setPlaying: () => {
23
+ throw new Error('default');
24
+ },
25
+ });
26
+ const useTimelinePosition = () => {
27
+ const state = (0, react_1.useContext)(exports.TimelineContext);
28
+ return state.frame;
29
+ };
30
+ exports.useTimelinePosition = useTimelinePosition;
31
+ const useTimelineSetFrame = () => {
32
+ const { setFrame } = (0, react_1.useContext)(exports.SetTimelineContext);
33
+ return setFrame;
34
+ };
35
+ exports.useTimelineSetFrame = useTimelineSetFrame;
36
+ const usePlayingState = () => {
37
+ const { playing, imperativePlaying } = (0, react_1.useContext)(exports.TimelineContext);
38
+ const { setPlaying } = (0, react_1.useContext)(exports.SetTimelineContext);
39
+ return (0, react_1.useMemo)(() => [playing, setPlaying, imperativePlaying], [imperativePlaying, playing, setPlaying]);
40
+ };
41
+ exports.usePlayingState = usePlayingState;
@@ -0,0 +1,3 @@
1
+ declare type Truthy<T> = T extends false | '' | 0 | null | undefined ? never : T;
2
+ export declare function truthy<T>(value: T): value is Truthy<T>;
3
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.truthy = void 0;
4
+ function truthy(value) {
5
+ return Boolean(value);
6
+ }
7
+ exports.truthy = truthy;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get the current frame of the video.
3
+ * Frames are 0-indexed, meaning the first frame is 0, the last frame is the duration of the composition in frames minus one.
4
+ * @link https://www.remotion.dev/docs/use-current-frame
5
+ */
6
+ export declare const useCurrentFrame: () => number;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCurrentFrame = void 0;
4
+ const react_1 = require("react");
5
+ const CanUseRemotionHooks_js_1 = require("./CanUseRemotionHooks.js");
6
+ const Sequence_js_1 = require("./Sequence.js");
7
+ const timeline_position_state_js_1 = require("./timeline-position-state.js");
8
+ /**
9
+ * Get the current frame of the video.
10
+ * Frames are 0-indexed, meaning the first frame is 0, the last frame is the duration of the composition in frames minus one.
11
+ * @link https://www.remotion.dev/docs/use-current-frame
12
+ */
13
+ const useCurrentFrame = () => {
14
+ const canUseRemotionHooks = (0, react_1.useContext)(CanUseRemotionHooks_js_1.CanUseRemotionHooks);
15
+ if (!canUseRemotionHooks) {
16
+ if (typeof window !== 'undefined' && window.remotion_isPlayer) {
17
+ throw new Error(`useCurrentFrame can only be called inside a component that was passed to <Player>. See: https://www.remotion.dev/docs/player/examples`);
18
+ }
19
+ throw new Error(`useCurrentFrame() can only be called inside a component that was registered as a composition. See https://www.remotion.dev/docs/the-fundamentals#defining-compositions`);
20
+ }
21
+ const frame = (0, timeline_position_state_js_1.useTimelinePosition)();
22
+ const context = (0, react_1.useContext)(Sequence_js_1.SequenceContext);
23
+ const contextOffset = context
24
+ ? context.cumulatedFrom + context.relativeFrom
25
+ : 0;
26
+ return frame - contextOffset;
27
+ };
28
+ exports.useCurrentFrame = useCurrentFrame;
@@ -0,0 +1,7 @@
1
+ import type { ComponentPropsWithRef, ComponentType, ExoticComponent } from 'react';
2
+ import type { CompProps } from './internals.js';
3
+ declare type LazyExoticComponent<T extends ComponentType<any>> = ExoticComponent<ComponentPropsWithRef<T>> & {
4
+ readonly _result: T;
5
+ };
6
+ export declare const useLazyComponent: <T>(compProps: CompProps<T>) => LazyExoticComponent<ComponentType<T>>;
7
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.useLazyComponent = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ // Expected, it can be any component props
29
+ const useLazyComponent = (compProps) => {
30
+ const lazy = (0, react_1.useMemo)(() => {
31
+ if ('lazyComponent' in compProps) {
32
+ return react_1.default.lazy(compProps.lazyComponent);
33
+ }
34
+ if ('component' in compProps) {
35
+ // In SSR, suspense is not yet supported, we cannot use React.lazy
36
+ if (typeof document === 'undefined') {
37
+ return compProps.component;
38
+ }
39
+ return react_1.default.lazy(() => Promise.resolve({ default: compProps.component }));
40
+ }
41
+ throw new Error("You must pass either 'component' or 'lazyComponent'");
42
+ // Very important to leave the dependencies as they are, or instead
43
+ // the player will remount on every frame.
44
+ // @ts-expect-error
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ }, [compProps.component, compProps.lazyComponent]);
47
+ return lazy;
48
+ };
49
+ exports.useLazyComponent = useLazyComponent;
@@ -0,0 +1,10 @@
1
+ import type { RefObject } from 'react';
2
+ import type { VolumeProp } from './volume-prop.js';
3
+ export declare const useMediaInTimeline: ({ volume, mediaVolume, mediaRef, src, mediaType, playbackRate, }: {
4
+ volume: VolumeProp | undefined;
5
+ mediaVolume: number;
6
+ mediaRef: RefObject<HTMLAudioElement | HTMLVideoElement>;
7
+ src: string | undefined;
8
+ mediaType: 'audio' | 'video';
9
+ playbackRate: number;
10
+ }) => void;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMediaInTimeline = void 0;
4
+ const react_1 = require("react");
5
+ const use_audio_frame_js_1 = require("./audio/use-audio-frame.js");
6
+ const CompositionManager_js_1 = require("./CompositionManager.js");
7
+ const get_asset_file_name_js_1 = require("./get-asset-file-name.js");
8
+ const get_environment_js_1 = require("./get-environment.js");
9
+ const nonce_js_1 = require("./nonce.js");
10
+ const play_and_handle_not_allowed_error_js_1 = require("./play-and-handle-not-allowed-error.js");
11
+ const Sequence_js_1 = require("./Sequence.js");
12
+ const timeline_position_state_js_1 = require("./timeline-position-state.js");
13
+ const use_video_config_js_1 = require("./use-video-config.js");
14
+ const volume_prop_js_1 = require("./volume-prop.js");
15
+ const didWarn = {};
16
+ const warnOnce = (message) => {
17
+ if (didWarn[message]) {
18
+ return;
19
+ }
20
+ console.warn(message);
21
+ didWarn[message] = true;
22
+ };
23
+ const useMediaInTimeline = ({ volume, mediaVolume, mediaRef, src, mediaType, playbackRate, }) => {
24
+ const videoConfig = (0, use_video_config_js_1.useVideoConfig)();
25
+ const { rootId, audioAndVideoTags } = (0, react_1.useContext)(timeline_position_state_js_1.TimelineContext);
26
+ const parentSequence = (0, react_1.useContext)(Sequence_js_1.SequenceContext);
27
+ const actualFrom = parentSequence
28
+ ? parentSequence.relativeFrom + parentSequence.cumulatedFrom
29
+ : 0;
30
+ const [playing] = (0, timeline_position_state_js_1.usePlayingState)();
31
+ const startsAt = (0, use_audio_frame_js_1.useMediaStartsAt)();
32
+ const { registerSequence, unregisterSequence } = (0, react_1.useContext)(CompositionManager_js_1.CompositionManager);
33
+ const [id] = (0, react_1.useState)(() => String(Math.random()));
34
+ const [initialVolume] = (0, react_1.useState)(() => volume);
35
+ const nonce = (0, nonce_js_1.useNonce)();
36
+ const duration = parentSequence
37
+ ? Math.min(parentSequence.durationInFrames, videoConfig.durationInFrames)
38
+ : videoConfig.durationInFrames;
39
+ const doesVolumeChange = typeof volume === 'function';
40
+ const environment = (0, get_environment_js_1.useRemotionEnvironment)();
41
+ const volumes = (0, react_1.useMemo)(() => {
42
+ if (typeof volume === 'number') {
43
+ return volume;
44
+ }
45
+ return new Array(Math.max(0, duration + startsAt))
46
+ .fill(true)
47
+ .map((_, i) => {
48
+ return (0, volume_prop_js_1.evaluateVolume)({
49
+ frame: i + startsAt,
50
+ volume,
51
+ mediaVolume,
52
+ allowAmplificationDuringRender: false,
53
+ });
54
+ })
55
+ .join(',');
56
+ }, [duration, startsAt, volume, mediaVolume]);
57
+ (0, react_1.useEffect)(() => {
58
+ if (typeof volume === 'number' && volume !== initialVolume) {
59
+ warnOnce(`Remotion: The ${mediaType} with src ${src} has changed it's volume. Prefer the callback syntax for setting volume to get better timeline display: https://www.remotion.dev/docs/using-audio/#controlling-volume`);
60
+ }
61
+ }, [initialVolume, mediaType, src, volume]);
62
+ (0, react_1.useEffect)(() => {
63
+ var _a;
64
+ if (!mediaRef.current) {
65
+ return;
66
+ }
67
+ if (!src) {
68
+ throw new Error('No src passed');
69
+ }
70
+ if (environment !== 'preview' && process.env.NODE_ENV !== 'test') {
71
+ return;
72
+ }
73
+ registerSequence({
74
+ type: mediaType,
75
+ src,
76
+ id,
77
+ duration,
78
+ from: 0,
79
+ parent: (_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.id) !== null && _a !== void 0 ? _a : null,
80
+ displayName: (0, get_asset_file_name_js_1.getAssetDisplayName)(src),
81
+ rootId,
82
+ volume: volumes,
83
+ showInTimeline: true,
84
+ nonce,
85
+ startMediaFrom: 0 - startsAt,
86
+ doesVolumeChange,
87
+ showLoopTimesInTimeline: undefined,
88
+ playbackRate,
89
+ });
90
+ return () => {
91
+ unregisterSequence(id);
92
+ };
93
+ }, [
94
+ actualFrom,
95
+ duration,
96
+ id,
97
+ parentSequence,
98
+ src,
99
+ registerSequence,
100
+ rootId,
101
+ unregisterSequence,
102
+ videoConfig,
103
+ volumes,
104
+ doesVolumeChange,
105
+ nonce,
106
+ mediaRef,
107
+ mediaType,
108
+ startsAt,
109
+ playbackRate,
110
+ environment,
111
+ ]);
112
+ (0, react_1.useEffect)(() => {
113
+ const tag = {
114
+ id,
115
+ play: () => {
116
+ if (!playing) {
117
+ // Don't play if for example in a <Freeze> state.
118
+ return;
119
+ }
120
+ return (0, play_and_handle_not_allowed_error_js_1.playAndHandleNotAllowedError)(mediaRef, mediaType);
121
+ },
122
+ };
123
+ audioAndVideoTags.current.push(tag);
124
+ return () => {
125
+ audioAndVideoTags.current = audioAndVideoTags.current.filter((a) => a.id !== id);
126
+ };
127
+ }, [audioAndVideoTags, id, mediaRef, mediaType, playing]);
128
+ };
129
+ exports.useMediaInTimeline = useMediaInTimeline;
@@ -0,0 +1,10 @@
1
+ import type { RefObject } from 'react';
2
+ export declare const DEFAULT_ACCEPTABLE_TIMESHIFT = 0.45;
3
+ export declare const useMediaPlayback: ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, acceptableTimeshift, }: {
4
+ mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>;
5
+ src: string | undefined;
6
+ mediaType: 'audio' | 'video';
7
+ playbackRate: number;
8
+ onlyWarnForMediaSeekingError: boolean;
9
+ acceptableTimeshift: number;
10
+ }) => void;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMediaPlayback = exports.DEFAULT_ACCEPTABLE_TIMESHIFT = void 0;
4
+ const react_1 = require("react");
5
+ const use_audio_frame_js_1 = require("./audio/use-audio-frame.js");
6
+ const play_and_handle_not_allowed_error_js_1 = require("./play-and-handle-not-allowed-error.js");
7
+ const timeline_position_state_js_1 = require("./timeline-position-state.js");
8
+ const use_current_frame_js_1 = require("./use-current-frame.js");
9
+ const use_video_config_js_1 = require("./use-video-config.js");
10
+ const get_current_time_js_1 = require("./video/get-current-time.js");
11
+ const warn_about_non_seekable_media_js_1 = require("./warn-about-non-seekable-media.js");
12
+ exports.DEFAULT_ACCEPTABLE_TIMESHIFT = 0.45;
13
+ const useMediaPlayback = ({ mediaRef, src, mediaType, playbackRate: localPlaybackRate, onlyWarnForMediaSeekingError, acceptableTimeshift, }) => {
14
+ const { playbackRate: globalPlaybackRate } = (0, react_1.useContext)(timeline_position_state_js_1.TimelineContext);
15
+ const frame = (0, use_current_frame_js_1.useCurrentFrame)();
16
+ const absoluteFrame = (0, timeline_position_state_js_1.useTimelinePosition)();
17
+ const [playing] = (0, timeline_position_state_js_1.usePlayingState)();
18
+ const { fps } = (0, use_video_config_js_1.useVideoConfig)();
19
+ const mediaStartsAt = (0, use_audio_frame_js_1.useMediaStartsAt)();
20
+ const playbackRate = localPlaybackRate * globalPlaybackRate;
21
+ (0, react_1.useEffect)(() => {
22
+ var _a;
23
+ if (!playing) {
24
+ (_a = mediaRef.current) === null || _a === void 0 ? void 0 : _a.pause();
25
+ }
26
+ }, [mediaRef, mediaType, playing]);
27
+ (0, react_1.useEffect)(() => {
28
+ const tagName = mediaType === 'audio' ? '<Audio>' : '<Video>';
29
+ if (!mediaRef.current) {
30
+ throw new Error(`No ${mediaType} ref found`);
31
+ }
32
+ if (!src) {
33
+ throw new Error(`No 'src' attribute was passed to the ${tagName} element.`);
34
+ }
35
+ mediaRef.current.playbackRate = Math.max(0, playbackRate);
36
+ const shouldBeTime = (0, get_current_time_js_1.getMediaTime)({
37
+ fps,
38
+ frame,
39
+ src,
40
+ playbackRate: localPlaybackRate,
41
+ startFrom: -mediaStartsAt,
42
+ mediaType,
43
+ });
44
+ const isTime = mediaRef.current.currentTime;
45
+ const timeShift = Math.abs(shouldBeTime - isTime);
46
+ if (timeShift > acceptableTimeshift && !mediaRef.current.ended) {
47
+ // If scrubbing around, adjust timing
48
+ // or if time shift is bigger than 0.2sec
49
+ mediaRef.current.currentTime = shouldBeTime;
50
+ if (!onlyWarnForMediaSeekingError) {
51
+ (0, warn_about_non_seekable_media_js_1.warnAboutNonSeekableMedia)(mediaRef.current, onlyWarnForMediaSeekingError ? 'console-warning' : 'console-error');
52
+ }
53
+ }
54
+ if (!playing || absoluteFrame === 0) {
55
+ mediaRef.current.currentTime = shouldBeTime;
56
+ }
57
+ if (mediaRef.current.paused && !mediaRef.current.ended && playing) {
58
+ const { current } = mediaRef;
59
+ current.currentTime = shouldBeTime;
60
+ (0, play_and_handle_not_allowed_error_js_1.playAndHandleNotAllowedError)(mediaRef, mediaType);
61
+ }
62
+ }, [
63
+ absoluteFrame,
64
+ fps,
65
+ playbackRate,
66
+ frame,
67
+ mediaRef,
68
+ mediaType,
69
+ playing,
70
+ src,
71
+ mediaStartsAt,
72
+ localPlaybackRate,
73
+ onlyWarnForMediaSeekingError,
74
+ acceptableTimeshift,
75
+ ]);
76
+ };
77
+ exports.useMediaPlayback = useMediaPlayback;
@@ -0,0 +1,2 @@
1
+ import type { RefObject } from 'react';
2
+ export declare const useMediaTagVolume: (mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>) => number;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useMediaTagVolume = void 0;
4
+ const react_1 = require("react");
5
+ // Returns the real volume of the audio or video while playing,
6
+ // no matter what the supposed volume should be
7
+ const useMediaTagVolume = (mediaRef) => {
8
+ const [actualVolume, setActualVolume] = (0, react_1.useState)(1);
9
+ (0, react_1.useEffect)(() => {
10
+ const ref = mediaRef.current;
11
+ if (!ref) {
12
+ return;
13
+ }
14
+ const onChange = () => {
15
+ setActualVolume(ref.volume);
16
+ };
17
+ ref.addEventListener('volumechange', onChange);
18
+ return () => ref.removeEventListener('volumechange', onChange);
19
+ }, [mediaRef]);
20
+ (0, react_1.useEffect)(() => {
21
+ const ref = mediaRef.current;
22
+ if (!ref) {
23
+ return;
24
+ }
25
+ if (ref.volume !== actualVolume) {
26
+ setActualVolume(ref.volume);
27
+ }
28
+ }, [actualVolume, mediaRef]);
29
+ return actualVolume;
30
+ };
31
+ exports.useMediaTagVolume = useMediaTagVolume;
@@ -0,0 +1,10 @@
1
+ import type { RefObject } from 'react';
2
+ import type { VolumeProp } from './volume-prop.js';
3
+ export declare type UseSyncVolumeWithMediaTagOptions = {
4
+ volumePropFrame: number;
5
+ actualVolume: number;
6
+ volume?: VolumeProp;
7
+ mediaVolume: number;
8
+ mediaRef: RefObject<HTMLVideoElement | HTMLAudioElement>;
9
+ };
10
+ export declare const useSyncVolumeWithMediaTag: ({ volumePropFrame, actualVolume, volume, mediaVolume, mediaRef, }: UseSyncVolumeWithMediaTagOptions) => void;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSyncVolumeWithMediaTag = void 0;
4
+ const react_1 = require("react");
5
+ const is_approximately_the_same_js_1 = require("./is-approximately-the-same.js");
6
+ const volume_prop_js_1 = require("./volume-prop.js");
7
+ const useSyncVolumeWithMediaTag = ({ volumePropFrame, actualVolume, volume, mediaVolume, mediaRef, }) => {
8
+ (0, react_1.useEffect)(() => {
9
+ const userPreferredVolume = (0, volume_prop_js_1.evaluateVolume)({
10
+ frame: volumePropFrame,
11
+ volume,
12
+ mediaVolume,
13
+ allowAmplificationDuringRender: false,
14
+ });
15
+ if (!(0, is_approximately_the_same_js_1.isApproximatelyTheSame)(userPreferredVolume, actualVolume) &&
16
+ mediaRef.current) {
17
+ mediaRef.current.volume = userPreferredVolume;
18
+ }
19
+ }, [actualVolume, volumePropFrame, mediaRef, volume, mediaVolume]);
20
+ };
21
+ exports.useSyncVolumeWithMediaTag = useSyncVolumeWithMediaTag;
@@ -0,0 +1,2 @@
1
+ import type { VideoConfig } from './video-config.js';
2
+ export declare const useUnsafeVideoConfig: () => VideoConfig | null;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useUnsafeVideoConfig = void 0;
4
+ const react_1 = require("react");
5
+ const Sequence_js_1 = require("./Sequence.js");
6
+ const use_video_js_1 = require("./use-video.js");
7
+ const useUnsafeVideoConfig = () => {
8
+ var _a;
9
+ const context = (0, react_1.useContext)(Sequence_js_1.SequenceContext);
10
+ const ctxDuration = (_a = context === null || context === void 0 ? void 0 : context.durationInFrames) !== null && _a !== void 0 ? _a : null;
11
+ const video = (0, use_video_js_1.useVideo)();
12
+ return (0, react_1.useMemo)(() => {
13
+ if (!video) {
14
+ return null;
15
+ }
16
+ const { id, durationInFrames, fps, height, width, defaultProps } = video;
17
+ return {
18
+ id,
19
+ width,
20
+ height,
21
+ fps,
22
+ durationInFrames: ctxDuration !== null && ctxDuration !== void 0 ? ctxDuration : durationInFrames,
23
+ defaultProps,
24
+ };
25
+ }, [ctxDuration, video]);
26
+ };
27
+ exports.useUnsafeVideoConfig = useUnsafeVideoConfig;