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,108 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useContext, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useRef, } from 'react';
3
+ import { getAbsoluteSrc } from '../absolute-src.js';
4
+ import { CompositionManager } from '../CompositionManager.js';
5
+ import { continueRender, delayRender } from '../delay-render.js';
6
+ import { useRemotionEnvironment } from '../get-environment.js';
7
+ import { random } from '../random.js';
8
+ import { SequenceContext } from '../Sequence.js';
9
+ import { useTimelinePosition } from '../timeline-position-state.js';
10
+ import { useCurrentFrame } from '../use-current-frame.js';
11
+ import { evaluateVolume } from '../volume-prop.js';
12
+ import { useFrameForVolumeProp } from './use-audio-frame.js';
13
+ const AudioForRenderingRefForwardingFunction = (props, ref) => {
14
+ const audioRef = useRef(null);
15
+ const absoluteFrame = useTimelinePosition();
16
+ const volumePropFrame = useFrameForVolumeProp();
17
+ const frame = useCurrentFrame();
18
+ const sequenceContext = useContext(SequenceContext);
19
+ const { registerAsset, unregisterAsset } = useContext(CompositionManager);
20
+ const environment = useRemotionEnvironment();
21
+ // Generate a string that's as unique as possible for this asset
22
+ // but at the same time the same on all threads
23
+ const id = useMemo(() => {
24
+ var _a;
25
+ return `audio-${random((_a = props.src) !== null && _a !== void 0 ? _a : '')}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.relativeFrom}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.cumulatedFrom}-${sequenceContext === null || sequenceContext === void 0 ? void 0 : sequenceContext.durationInFrames}`;
26
+ }, [props.src, sequenceContext]);
27
+ const { volume: volumeProp, playbackRate, allowAmplificationDuringRender, onDuration, ...nativeProps } = props;
28
+ const volume = evaluateVolume({
29
+ volume: volumeProp,
30
+ frame: volumePropFrame,
31
+ mediaVolume: 1,
32
+ allowAmplificationDuringRender: allowAmplificationDuringRender !== null && allowAmplificationDuringRender !== void 0 ? allowAmplificationDuringRender : false,
33
+ });
34
+ useImperativeHandle(ref, () => {
35
+ return audioRef.current;
36
+ }, []);
37
+ useEffect(() => {
38
+ var _a;
39
+ if (!props.src) {
40
+ throw new Error('No src passed');
41
+ }
42
+ if (!window.remotion_audioEnabled) {
43
+ return;
44
+ }
45
+ if (props.muted) {
46
+ return;
47
+ }
48
+ if (volume <= 0) {
49
+ return;
50
+ }
51
+ registerAsset({
52
+ type: 'audio',
53
+ src: getAbsoluteSrc(props.src),
54
+ id,
55
+ frame: absoluteFrame,
56
+ volume,
57
+ mediaFrame: frame,
58
+ playbackRate: (_a = props.playbackRate) !== null && _a !== void 0 ? _a : 1,
59
+ allowAmplificationDuringRender: allowAmplificationDuringRender !== null && allowAmplificationDuringRender !== void 0 ? allowAmplificationDuringRender : false,
60
+ });
61
+ return () => unregisterAsset(id);
62
+ }, [
63
+ props.muted,
64
+ props.src,
65
+ registerAsset,
66
+ absoluteFrame,
67
+ id,
68
+ unregisterAsset,
69
+ volume,
70
+ volumePropFrame,
71
+ frame,
72
+ playbackRate,
73
+ props.playbackRate,
74
+ allowAmplificationDuringRender,
75
+ ]);
76
+ const { src } = props;
77
+ // If audio source switches, make new handle
78
+ if (environment === 'rendering') {
79
+ // eslint-disable-next-line react-hooks/rules-of-hooks
80
+ useLayoutEffect(() => {
81
+ if (process.env.NODE_ENV === 'test') {
82
+ return;
83
+ }
84
+ const newHandle = delayRender('Loading <Audio> duration with src=' + src);
85
+ const { current } = audioRef;
86
+ const didLoad = () => {
87
+ if (current === null || current === void 0 ? void 0 : current.duration) {
88
+ onDuration(src, current.duration);
89
+ }
90
+ continueRender(newHandle);
91
+ };
92
+ if (current === null || current === void 0 ? void 0 : current.duration) {
93
+ onDuration(src, current.duration);
94
+ continueRender(newHandle);
95
+ }
96
+ else {
97
+ current === null || current === void 0 ? void 0 : current.addEventListener('loadedmetadata', didLoad, { once: true });
98
+ }
99
+ // If tag gets unmounted, clear pending handles because video metadata is not going to load
100
+ return () => {
101
+ current === null || current === void 0 ? void 0 : current.removeEventListener('loadedmetadata', didLoad);
102
+ continueRender(newHandle);
103
+ };
104
+ }, [src, onDuration]);
105
+ }
106
+ return _jsx("audio", { ref: audioRef, ...nativeProps });
107
+ };
108
+ export const AudioForRendering = forwardRef(AudioForRenderingRefForwardingFunction);
@@ -0,0 +1,2 @@
1
+ export * from './Audio.js';
2
+ export * from './props.js';
@@ -0,0 +1,2 @@
1
+ export * from './Audio.js';
2
+ export * from './props.js';
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import type { VolumeProp } from '../volume-prop.js';
3
+ export declare type RemotionMainAudioProps = {
4
+ startFrom?: number;
5
+ endAt?: number;
6
+ };
7
+ export declare type RemotionAudioProps = Omit<React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, 'autoPlay' | 'controls' | 'onEnded' | 'nonce' | 'onResize' | 'onResizeCapture'> & {
8
+ volume?: VolumeProp;
9
+ playbackRate?: number;
10
+ acceptableTimeShiftInSeconds?: number;
11
+ allowAmplificationDuringRender?: boolean;
12
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import type { RemotionAudioProps } from './props.js';
3
+ /**
4
+ * This functionality of Remotion will keep a certain amount
5
+ * of <audio> tags pre-mounted and by default filled with an empty audio track.
6
+ * If the user interacts, the empty audio will be played.
7
+ * If one of Remotions <Audio /> tags get mounted, the audio will not be rendered at this location, but into one of the prerendered audio tags.
8
+ *
9
+ * This helps with autoplay issues on iOS Safari and soon other browsers,
10
+ * which only allow audio playback upon user interaction.
11
+ *
12
+ * The behavior can be disabled by passing `0` as the number of shared audio tracks.
13
+ */
14
+ declare type AudioElem = {
15
+ id: number;
16
+ props: RemotionAudioProps;
17
+ el: React.RefObject<HTMLAudioElement>;
18
+ audioId: string;
19
+ };
20
+ declare type SharedContext = {
21
+ registerAudio: (aud: RemotionAudioProps, audioId: string) => AudioElem;
22
+ unregisterAudio: (id: number) => void;
23
+ updateAudio: (options: {
24
+ id: number;
25
+ aud: RemotionAudioProps;
26
+ audioId: string;
27
+ }) => void;
28
+ playAllAudios: () => void;
29
+ numberOfAudioTags: number;
30
+ };
31
+ export declare const SharedAudioContext: React.Context<SharedContext | null>;
32
+ export declare const SharedAudioContextProvider: React.FC<{
33
+ numberOfAudioTags: number;
34
+ children: React.ReactNode;
35
+ }>;
36
+ export declare const useSharedAudio: (aud: RemotionAudioProps, audioId: string) => AudioElem;
37
+ export {};
@@ -0,0 +1,194 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { createContext, createRef, useCallback, useContext, useInsertionEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
3
+ const EMPTY_AUDIO = 'data:audio/mp3;base64,/+MYxAAJcAV8AAgAABn//////+/gQ5BAMA+D4Pg+BAQBAEAwD4Pg+D4EBAEAQDAPg++hYBH///hUFQVBUFREDQNHmf///////+MYxBUGkAGIMAAAAP/29Xt6lUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV/+MYxDUAAANIAAAAAFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV';
4
+ const compareProps = (obj1, obj2) => {
5
+ const keysA = Object.keys(obj1).sort();
6
+ const keysB = Object.keys(obj2).sort();
7
+ if (keysA.length !== keysB.length) {
8
+ return false;
9
+ }
10
+ for (let i = 0; i < keysA.length; i++) {
11
+ // Not the same keys
12
+ if (keysA[i] !== keysB[i]) {
13
+ return false;
14
+ }
15
+ // Not the same values
16
+ if (obj1[keysA[i]] !== obj2[keysB[i]]) {
17
+ return false;
18
+ }
19
+ }
20
+ return true;
21
+ };
22
+ const didPropChange = (key, newProp, prevProp) => {
23
+ // /music.mp3 and http://localhost:3000/music.mp3 are the same
24
+ if (key === 'src' &&
25
+ !prevProp.startsWith('data:') &&
26
+ !newProp.startsWith('data:')) {
27
+ return (new URL(prevProp, window.location.origin).toString() !==
28
+ new URL(newProp, window.location.origin).toString());
29
+ }
30
+ if (prevProp === newProp) {
31
+ return false;
32
+ }
33
+ return true;
34
+ };
35
+ export const SharedAudioContext = createContext(null);
36
+ export const SharedAudioContextProvider = ({ children, numberOfAudioTags }) => {
37
+ const audios = useRef([]);
38
+ const [initialNumberOfAudioTags] = useState(numberOfAudioTags);
39
+ if (numberOfAudioTags !== initialNumberOfAudioTags) {
40
+ throw new Error('The number of shared audio tags has changed dynamically. Once you have set this property, you cannot change it afterwards.');
41
+ }
42
+ const refs = useMemo(() => {
43
+ return new Array(numberOfAudioTags).fill(true).map(() => {
44
+ return { id: Math.random(), ref: createRef() };
45
+ });
46
+ }, [numberOfAudioTags]);
47
+ const takenAudios = useRef(new Array(numberOfAudioTags).fill(false));
48
+ const rerenderAudios = useCallback(() => {
49
+ refs.forEach(({ ref, id }) => {
50
+ var _a;
51
+ const data = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.find((a) => a.id === id);
52
+ const { current } = ref;
53
+ if (!current) {
54
+ // Whole player has been unmounted, the refs don't exist anymore.
55
+ // It is not an error anymore though
56
+ return;
57
+ }
58
+ if (data === undefined) {
59
+ current.src = EMPTY_AUDIO;
60
+ return;
61
+ }
62
+ if (!data) {
63
+ throw new TypeError('Expected audio data to be there');
64
+ }
65
+ Object.keys(data.props).forEach((key) => {
66
+ // @ts-expect-error
67
+ if (didPropChange(key, data.props[key], current[key])) {
68
+ // @ts-expect-error
69
+ current[key] = data.props[key];
70
+ }
71
+ });
72
+ });
73
+ }, [refs]);
74
+ const registerAudio = useCallback((aud, audioId) => {
75
+ var _a, _b;
76
+ const found = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.find((a) => a.audioId === audioId);
77
+ if (found) {
78
+ return found;
79
+ }
80
+ const firstFreeAudio = takenAudios.current.findIndex((a) => a === false);
81
+ if (firstFreeAudio === -1) {
82
+ throw new Error(`Tried to simultaneously mount ${numberOfAudioTags + 1} <Audio /> tags at the same time. With the current settings, the maximum amount of <Audio /> tags is limited to ${numberOfAudioTags} at the same time. Remotion pre-mounts silent audio tags to help avoid browser autoplay restrictions. See https://remotion.dev/docs/player/autoplay#use-the-numberofsharedaudiotags-property for more information on how to increase this limit.`);
83
+ }
84
+ const { id, ref } = refs[firstFreeAudio];
85
+ const cloned = [...takenAudios.current];
86
+ cloned[firstFreeAudio] = id;
87
+ takenAudios.current = cloned;
88
+ const newElem = {
89
+ props: aud,
90
+ id,
91
+ el: ref,
92
+ audioId,
93
+ };
94
+ (_b = audios.current) === null || _b === void 0 ? void 0 : _b.push(newElem);
95
+ rerenderAudios();
96
+ return newElem;
97
+ }, [numberOfAudioTags, refs, rerenderAudios]);
98
+ const unregisterAudio = useCallback((id) => {
99
+ var _a;
100
+ const cloned = [...takenAudios.current];
101
+ const index = refs.findIndex((r) => r.id === id);
102
+ if (index === -1) {
103
+ throw new TypeError('Error occured in ');
104
+ }
105
+ cloned[index] = false;
106
+ takenAudios.current = cloned;
107
+ audios.current = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.filter((a) => a.id !== id);
108
+ rerenderAudios();
109
+ }, [refs, rerenderAudios]);
110
+ const updateAudio = useCallback(({ aud, audioId, id, }) => {
111
+ var _a;
112
+ let changed = false;
113
+ audios.current = (_a = audios.current) === null || _a === void 0 ? void 0 : _a.map((prevA) => {
114
+ if (prevA.id === id) {
115
+ const isTheSame = compareProps(aud, prevA.props);
116
+ if (isTheSame) {
117
+ return prevA;
118
+ }
119
+ changed = true;
120
+ return {
121
+ ...prevA,
122
+ props: aud,
123
+ audioId,
124
+ };
125
+ }
126
+ return prevA;
127
+ });
128
+ if (changed) {
129
+ rerenderAudios();
130
+ }
131
+ }, [rerenderAudios]);
132
+ const playAllAudios = useCallback(() => {
133
+ refs.forEach((ref) => {
134
+ var _a;
135
+ (_a = ref.ref.current) === null || _a === void 0 ? void 0 : _a.play();
136
+ });
137
+ }, [refs]);
138
+ const value = useMemo(() => {
139
+ return {
140
+ registerAudio,
141
+ unregisterAudio,
142
+ updateAudio,
143
+ playAllAudios,
144
+ numberOfAudioTags,
145
+ };
146
+ }, [
147
+ numberOfAudioTags,
148
+ playAllAudios,
149
+ registerAudio,
150
+ unregisterAudio,
151
+ updateAudio,
152
+ ]);
153
+ return (_jsxs(SharedAudioContext.Provider, { value: value, children: [refs.map(({ id, ref }) => {
154
+ return _jsx("audio", { ref: ref, src: EMPTY_AUDIO }, id);
155
+ }), children] }));
156
+ };
157
+ export const useSharedAudio = (aud, audioId) => {
158
+ const ctx = useContext(SharedAudioContext);
159
+ /**
160
+ * We work around this in React 18 so an audio tag will only register itself once
161
+ */
162
+ const [elem] = useState(() => {
163
+ if (ctx && ctx.numberOfAudioTags > 0) {
164
+ return ctx.registerAudio(aud, audioId);
165
+ }
166
+ return {
167
+ el: React.createRef(),
168
+ id: Math.random(),
169
+ props: aud,
170
+ audioId,
171
+ };
172
+ });
173
+ /**
174
+ * Effects in React 18 fire twice, and we are looking for a way to only fire it once.
175
+ * - useInsertionEffect only fires once. If it's available we are in React 18.
176
+ * - useLayoutEffect only fires once in React 17.
177
+ */
178
+ const effectToUse = useInsertionEffect !== null && useInsertionEffect !== void 0 ? useInsertionEffect : useLayoutEffect;
179
+ if (typeof document !== 'undefined') {
180
+ effectToUse(() => {
181
+ if (ctx && ctx.numberOfAudioTags > 0) {
182
+ ctx.updateAudio({ id: elem.id, aud, audioId });
183
+ }
184
+ }, [aud, ctx, elem.id, audioId]);
185
+ effectToUse(() => {
186
+ return () => {
187
+ if (ctx && ctx.numberOfAudioTags > 0) {
188
+ ctx.unregisterAudio(elem.id);
189
+ }
190
+ };
191
+ }, [ctx, elem.id]);
192
+ }
193
+ return elem;
194
+ };
@@ -0,0 +1,6 @@
1
+ export declare const useMediaStartsAt: () => number;
2
+ /**
3
+ * When passing a function as the prop for `volume`,
4
+ * we calculate the way more intuitive value for currentFrame
5
+ */
6
+ export declare const useFrameForVolumeProp: () => number;
@@ -0,0 +1,18 @@
1
+ import { useContext } from 'react';
2
+ import { SequenceContext } from '../Sequence.js';
3
+ import { useCurrentFrame } from '../use-current-frame.js';
4
+ export const useMediaStartsAt = () => {
5
+ var _a;
6
+ const parentSequence = useContext(SequenceContext);
7
+ const startsAt = Math.min(0, (_a = parentSequence === null || parentSequence === void 0 ? void 0 : parentSequence.relativeFrom) !== null && _a !== void 0 ? _a : 0);
8
+ return startsAt;
9
+ };
10
+ /**
11
+ * When passing a function as the prop for `volume`,
12
+ * we calculate the way more intuitive value for currentFrame
13
+ */
14
+ export const useFrameForVolumeProp = () => {
15
+ const frame = useCurrentFrame();
16
+ const startsAt = useMediaStartsAt();
17
+ return frame + startsAt;
18
+ };
@@ -0,0 +1 @@
1
+ export declare function bezier(mX1: number, mY1: number, mX2: number, mY2: number): (x: number) => number;
@@ -0,0 +1,110 @@
1
+ // Taken from https://github.com/facebook/react-native/blob/0b9ea60b4fee8cacc36e7160e31b91fc114dbc0d/Libraries/Animated/src/bezier.js
2
+ const NEWTON_ITERATIONS = 4;
3
+ const NEWTON_MIN_SLOPE = 0.001;
4
+ const SUBDIVISION_PRECISION = 0.0000001;
5
+ const SUBDIVISION_MAX_ITERATIONS = 10;
6
+ const kSplineTableSize = 11;
7
+ const kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);
8
+ const float32ArraySupported = typeof Float32Array === 'function';
9
+ function a(aA1, aA2) {
10
+ return 1.0 - 3.0 * aA2 + 3.0 * aA1;
11
+ }
12
+ function b(aA1, aA2) {
13
+ return 3.0 * aA2 - 6.0 * aA1;
14
+ }
15
+ function c(aA1) {
16
+ return 3.0 * aA1;
17
+ }
18
+ // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.
19
+ function calcBezier(aT, aA1, aA2) {
20
+ return ((a(aA1, aA2) * aT + b(aA1, aA2)) * aT + c(aA1)) * aT;
21
+ }
22
+ // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.
23
+ function getSlope(aT, aA1, aA2) {
24
+ return 3.0 * a(aA1, aA2) * aT * aT + 2.0 * b(aA1, aA2) * aT + c(aA1);
25
+ }
26
+ function binarySubdivide({ aX, _aA, _aB, mX1, mX2, }) {
27
+ let currentX;
28
+ let currentT;
29
+ let i = 0;
30
+ let aA = _aA;
31
+ let aB = _aB;
32
+ do {
33
+ currentT = aA + (aB - aA) / 2.0;
34
+ currentX = calcBezier(currentT, mX1, mX2) - aX;
35
+ if (currentX > 0.0) {
36
+ aB = currentT;
37
+ }
38
+ else {
39
+ aA = currentT;
40
+ }
41
+ } while (Math.abs(currentX) > SUBDIVISION_PRECISION &&
42
+ ++i < SUBDIVISION_MAX_ITERATIONS);
43
+ return currentT;
44
+ }
45
+ function newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {
46
+ let aGuessT = _aGuessT;
47
+ for (let i = 0; i < NEWTON_ITERATIONS; ++i) {
48
+ const currentSlope = getSlope(aGuessT, mX1, mX2);
49
+ if (currentSlope === 0.0) {
50
+ return aGuessT;
51
+ }
52
+ const currentX = calcBezier(aGuessT, mX1, mX2) - aX;
53
+ aGuessT -= currentX / currentSlope;
54
+ }
55
+ return aGuessT;
56
+ }
57
+ export function bezier(mX1, mY1, mX2, mY2) {
58
+ if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {
59
+ throw new Error('bezier x values must be in [0, 1] range');
60
+ }
61
+ // Precompute samples table
62
+ const sampleValues = float32ArraySupported
63
+ ? new Float32Array(kSplineTableSize)
64
+ : new Array(kSplineTableSize);
65
+ if (mX1 !== mY1 || mX2 !== mY2) {
66
+ for (let i = 0; i < kSplineTableSize; ++i) {
67
+ sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);
68
+ }
69
+ }
70
+ function getTForX(aX) {
71
+ let intervalStart = 0.0;
72
+ let currentSample = 1;
73
+ const lastSample = kSplineTableSize - 1;
74
+ for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {
75
+ intervalStart += kSampleStepSize;
76
+ }
77
+ --currentSample;
78
+ // Interpolate to provide an initial guess for t
79
+ const dist = (aX - sampleValues[currentSample]) /
80
+ (sampleValues[currentSample + 1] - sampleValues[currentSample]);
81
+ const guessForT = intervalStart + dist * kSampleStepSize;
82
+ const initialSlope = getSlope(guessForT, mX1, mX2);
83
+ if (initialSlope >= NEWTON_MIN_SLOPE) {
84
+ return newtonRaphsonIterate(aX, guessForT, mX1, mX2);
85
+ }
86
+ if (initialSlope === 0.0) {
87
+ return guessForT;
88
+ }
89
+ return binarySubdivide({
90
+ aX,
91
+ _aA: intervalStart,
92
+ _aB: intervalStart + kSampleStepSize,
93
+ mX1,
94
+ mX2,
95
+ });
96
+ }
97
+ return function (x) {
98
+ if (mX1 === mY1 && mX2 === mY2) {
99
+ return x; // linear
100
+ }
101
+ // Because JavaScript number are imprecise, we should guarantee the extremes are right.
102
+ if (x === 0) {
103
+ return 0;
104
+ }
105
+ if (x === 1) {
106
+ return 1;
107
+ }
108
+ return calcBezier(getTForX(x), mY1, mY2);
109
+ };
110
+ }
@@ -0,0 +1 @@
1
+ export declare function cancelRender(err: unknown): never;
@@ -0,0 +1,39 @@
1
+ const isErrorLike = (err) => {
2
+ if (err === null) {
3
+ return false;
4
+ }
5
+ if (typeof err !== 'object') {
6
+ return false;
7
+ }
8
+ if (!('stack' in err)) {
9
+ return false;
10
+ }
11
+ // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
12
+ // @ts-ignore we just asserted
13
+ if (typeof err.stack !== 'string') {
14
+ return false;
15
+ }
16
+ if (!('message' in err)) {
17
+ return false;
18
+ }
19
+ // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
20
+ // @ts-ignore we just asserted
21
+ if (typeof err.message !== 'string') {
22
+ return false;
23
+ }
24
+ return true;
25
+ };
26
+ export function cancelRender(err) {
27
+ let error;
28
+ if (isErrorLike(err)) {
29
+ error = err;
30
+ }
31
+ else if (typeof err === 'string') {
32
+ error = Error(err);
33
+ }
34
+ else {
35
+ error = Error('Rendering was cancelled');
36
+ }
37
+ window.remotion_cancelledError = error.stack;
38
+ throw error;
39
+ }
@@ -0,0 +1 @@
1
+ export declare const getInputProps: () => any;
@@ -0,0 +1,27 @@
1
+ import { getRemotionEnvironment } from '../get-environment.js';
2
+ let didWarnSSRImport = false;
3
+ const warnOnceSSRImport = () => {
4
+ if (didWarnSSRImport) {
5
+ return;
6
+ }
7
+ didWarnSSRImport = true;
8
+ console.warn('Called `getInputProps()` on the server. This function is not available server-side and has returned an empty object.');
9
+ console.warn("To hide this warning, don't call this function on the server:");
10
+ console.warn(" typeof window === 'undefined' ? {} : getInputProps()");
11
+ };
12
+ export const getInputProps = () => {
13
+ if (typeof window === 'undefined') {
14
+ warnOnceSSRImport();
15
+ return {};
16
+ }
17
+ if (getRemotionEnvironment() === 'player-development' ||
18
+ getRemotionEnvironment() === 'player-production') {
19
+ throw new Error('You cannot call `getInputProps()` from a <Player>. Instead, the props are available as React props from component that you passed as `component` prop.');
20
+ }
21
+ const param = window.remotion_inputProps;
22
+ if (!param) {
23
+ return {};
24
+ }
25
+ const parsed = JSON.parse(param);
26
+ return parsed;
27
+ };