@remotion/bundler 4.0.0-alpha.4 → 4.0.0-alpha5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/LICENSE.md +8 -8
  2. package/dist/bundle-mode.d.ts +0 -0
  3. package/dist/bundle-mode.js +0 -0
  4. package/dist/bundle.d.ts +25 -6
  5. package/dist/bundle.js +127 -16
  6. package/dist/copy-dir.d.ts +9 -1
  7. package/dist/copy-dir.js +19 -3
  8. package/dist/esbuild-loader/index.d.ts +0 -0
  9. package/dist/esbuild-loader/index.js +0 -0
  10. package/dist/esbuild-loader/interfaces.d.ts +0 -0
  11. package/dist/esbuild-loader/interfaces.js +0 -0
  12. package/dist/fast-refresh/helpers.d.ts +0 -0
  13. package/dist/fast-refresh/helpers.js +2 -2
  14. package/dist/fast-refresh/index.d.ts +0 -0
  15. package/dist/fast-refresh/index.js +0 -0
  16. package/dist/fast-refresh/loader.d.ts +94 -0
  17. package/dist/fast-refresh/loader.js +8 -15
  18. package/dist/fast-refresh/runtime.d.ts +0 -0
  19. package/dist/fast-refresh/runtime.js +0 -0
  20. package/dist/homepage/homepage.d.ts +0 -0
  21. package/dist/homepage/homepage.js +30 -3
  22. package/dist/index-html.d.ts +40 -1
  23. package/dist/index-html.js +21 -4
  24. package/dist/index.d.ts +27 -10
  25. package/dist/index.js +2 -0
  26. package/dist/read-recursively.d.ts +8 -0
  27. package/dist/read-recursively.js +78 -0
  28. package/dist/renderEntry.d.ts +0 -0
  29. package/dist/renderEntry.js +37 -6
  30. package/dist/setup-environment.d.ts +0 -0
  31. package/dist/setup-environment.js +56 -1
  32. package/dist/stringify-with-circular-references.d.ts +1 -0
  33. package/dist/stringify-with-circular-references.js +18 -0
  34. package/dist/test/validate-bundle.test.d.ts +1 -0
  35. package/dist/test/validate-bundle.test.js +10 -0
  36. package/dist/test/validate-public-dir.test.d.ts +1 -0
  37. package/dist/test/validate-public-dir.test.js +21 -0
  38. package/dist/validate-public-dir.d.ts +1 -0
  39. package/dist/validate-public-dir.js +30 -0
  40. package/dist/webpack-cache.d.ts +0 -0
  41. package/dist/webpack-cache.js +1 -2
  42. package/dist/webpack-config.d.ts +8 -4
  43. package/dist/webpack-config.js +12 -9
  44. package/package.json +65 -66
  45. package/react-shim.js +5 -1
  46. package/dist/bundle-mode.d.ts.map +0 -1
  47. package/dist/bundle-mode.js.map +0 -1
  48. package/dist/bundler.d.ts +0 -8
  49. package/dist/bundler.d.ts.map +0 -1
  50. package/dist/bundler.js +0 -77
  51. package/dist/bundler.js.map +0 -1
  52. package/dist/copy-dir.d.ts.map +0 -1
  53. package/dist/copy-dir.js.map +0 -1
  54. package/dist/dev-middleware/compatible-api.d.ts +0 -10
  55. package/dist/dev-middleware/compatible-api.d.ts.map +0 -1
  56. package/dist/dev-middleware/compatible-api.js +0 -45
  57. package/dist/dev-middleware/compatible-api.js.map +0 -1
  58. package/dist/dev-middleware/get-filename-from-url.d.ts +0 -3
  59. package/dist/dev-middleware/get-filename-from-url.d.ts.map +0 -1
  60. package/dist/dev-middleware/get-filename-from-url.js +0 -93
  61. package/dist/dev-middleware/get-filename-from-url.js.map +0 -1
  62. package/dist/dev-middleware/get-paths.d.ts +0 -8
  63. package/dist/dev-middleware/get-paths.d.ts.map +0 -1
  64. package/dist/dev-middleware/get-paths.js +0 -20
  65. package/dist/dev-middleware/get-paths.js.map +0 -1
  66. package/dist/dev-middleware/index.d.ts +0 -4
  67. package/dist/dev-middleware/index.d.ts.map +0 -1
  68. package/dist/dev-middleware/index.js +0 -58
  69. package/dist/dev-middleware/index.js.map +0 -1
  70. package/dist/dev-middleware/is-color-supported.d.ts +0 -2
  71. package/dist/dev-middleware/is-color-supported.d.ts.map +0 -1
  72. package/dist/dev-middleware/is-color-supported.js +0 -34
  73. package/dist/dev-middleware/is-color-supported.js.map +0 -1
  74. package/dist/dev-middleware/middleware.d.ts +0 -5
  75. package/dist/dev-middleware/middleware.d.ts.map +0 -1
  76. package/dist/dev-middleware/middleware.js +0 -142
  77. package/dist/dev-middleware/middleware.js.map +0 -1
  78. package/dist/dev-middleware/range-parser.d.ts +0 -16
  79. package/dist/dev-middleware/range-parser.d.ts.map +0 -1
  80. package/dist/dev-middleware/range-parser.js +0 -97
  81. package/dist/dev-middleware/range-parser.js.map +0 -1
  82. package/dist/dev-middleware/ready.d.ts +0 -6
  83. package/dist/dev-middleware/ready.d.ts.map +0 -1
  84. package/dist/dev-middleware/ready.js +0 -14
  85. package/dist/dev-middleware/ready.js.map +0 -1
  86. package/dist/dev-middleware/setup-hooks.d.ts +0 -3
  87. package/dist/dev-middleware/setup-hooks.d.ts.map +0 -1
  88. package/dist/dev-middleware/setup-hooks.js +0 -45
  89. package/dist/dev-middleware/setup-hooks.js.map +0 -1
  90. package/dist/dev-middleware/setup-output-filesystem.d.ts +0 -3
  91. package/dist/dev-middleware/setup-output-filesystem.d.ts.map +0 -1
  92. package/dist/dev-middleware/setup-output-filesystem.js +0 -14
  93. package/dist/dev-middleware/setup-output-filesystem.js.map +0 -1
  94. package/dist/dev-middleware/types.d.ts +0 -12
  95. package/dist/dev-middleware/types.d.ts.map +0 -1
  96. package/dist/dev-middleware/types.js +0 -3
  97. package/dist/dev-middleware/types.js.map +0 -1
  98. package/dist/error-overlay/entry-basic.d.ts +0 -2
  99. package/dist/error-overlay/entry-basic.d.ts.map +0 -1
  100. package/dist/error-overlay/entry-basic.js +0 -22
  101. package/dist/error-overlay/entry-basic.js.map +0 -1
  102. package/dist/error-overlay/react-overlay/effects/format-warning.d.ts +0 -12
  103. package/dist/error-overlay/react-overlay/effects/format-warning.d.ts.map +0 -1
  104. package/dist/error-overlay/react-overlay/effects/format-warning.js +0 -42
  105. package/dist/error-overlay/react-overlay/effects/format-warning.js.map +0 -1
  106. package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts +0 -8
  107. package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts.map +0 -1
  108. package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.js +0 -47
  109. package/dist/error-overlay/react-overlay/effects/map-error-to-react-stack.js.map +0 -1
  110. package/dist/error-overlay/react-overlay/effects/proxy-console.d.ts +0 -25
  111. package/dist/error-overlay/react-overlay/effects/proxy-console.d.ts.map +0 -1
  112. package/dist/error-overlay/react-overlay/effects/proxy-console.js +0 -64
  113. package/dist/error-overlay/react-overlay/effects/proxy-console.js.map +0 -1
  114. package/dist/error-overlay/react-overlay/effects/resolve-file-source.d.ts +0 -4
  115. package/dist/error-overlay/react-overlay/effects/resolve-file-source.d.ts.map +0 -1
  116. package/dist/error-overlay/react-overlay/effects/resolve-file-source.js +0 -32
  117. package/dist/error-overlay/react-overlay/effects/resolve-file-source.js.map +0 -1
  118. package/dist/error-overlay/react-overlay/effects/stack-trace-limit.d.ts +0 -4
  119. package/dist/error-overlay/react-overlay/effects/stack-trace-limit.d.ts.map +0 -1
  120. package/dist/error-overlay/react-overlay/effects/stack-trace-limit.js +0 -44
  121. package/dist/error-overlay/react-overlay/effects/stack-trace-limit.js.map +0 -1
  122. package/dist/error-overlay/react-overlay/effects/unhandled-error.d.ts +0 -5
  123. package/dist/error-overlay/react-overlay/effects/unhandled-error.d.ts.map +0 -1
  124. package/dist/error-overlay/react-overlay/effects/unhandled-error.js +0 -46
  125. package/dist/error-overlay/react-overlay/effects/unhandled-error.js.map +0 -1
  126. package/dist/error-overlay/react-overlay/effects/unhandled-rejection.d.ts +0 -5
  127. package/dist/error-overlay/react-overlay/effects/unhandled-rejection.d.ts.map +0 -1
  128. package/dist/error-overlay/react-overlay/effects/unhandled-rejection.js +0 -42
  129. package/dist/error-overlay/react-overlay/effects/unhandled-rejection.js.map +0 -1
  130. package/dist/error-overlay/react-overlay/index.d.ts +0 -3
  131. package/dist/error-overlay/react-overlay/index.d.ts.map +0 -1
  132. package/dist/error-overlay/react-overlay/index.js +0 -22
  133. package/dist/error-overlay/react-overlay/index.js.map +0 -1
  134. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.d.ts +0 -9
  135. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.d.ts.map +0 -1
  136. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +0 -79
  137. package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js.map +0 -1
  138. package/dist/error-overlay/react-overlay/utils/get-file-source.d.ts +0 -2
  139. package/dist/error-overlay/react-overlay/utils/get-file-source.d.ts.map +0 -1
  140. package/dist/error-overlay/react-overlay/utils/get-file-source.js +0 -22
  141. package/dist/error-overlay/react-overlay/utils/get-file-source.js.map +0 -1
  142. package/dist/error-overlay/react-overlay/utils/get-lines-around.d.ts +0 -15
  143. package/dist/error-overlay/react-overlay/utils/get-lines-around.d.ts.map +0 -1
  144. package/dist/error-overlay/react-overlay/utils/get-lines-around.js +0 -25
  145. package/dist/error-overlay/react-overlay/utils/get-lines-around.js.map +0 -1
  146. package/dist/error-overlay/react-overlay/utils/get-source-map.d.ts +0 -14
  147. package/dist/error-overlay/react-overlay/utils/get-source-map.d.ts.map +0 -1
  148. package/dist/error-overlay/react-overlay/utils/get-source-map.js +0 -56
  149. package/dist/error-overlay/react-overlay/utils/get-source-map.js.map +0 -1
  150. package/dist/error-overlay/react-overlay/utils/get-stack-frames.d.ts +0 -9
  151. package/dist/error-overlay/react-overlay/utils/get-stack-frames.d.ts.map +0 -1
  152. package/dist/error-overlay/react-overlay/utils/get-stack-frames.js +0 -22
  153. package/dist/error-overlay/react-overlay/utils/get-stack-frames.js.map +0 -1
  154. package/dist/error-overlay/react-overlay/utils/open-in-editor.d.ts +0 -13
  155. package/dist/error-overlay/react-overlay/utils/open-in-editor.d.ts.map +0 -1
  156. package/dist/error-overlay/react-overlay/utils/open-in-editor.js +0 -456
  157. package/dist/error-overlay/react-overlay/utils/open-in-editor.js.map +0 -1
  158. package/dist/error-overlay/react-overlay/utils/parser.d.ts +0 -3
  159. package/dist/error-overlay/react-overlay/utils/parser.d.ts.map +0 -1
  160. package/dist/error-overlay/react-overlay/utils/parser.js +0 -118
  161. package/dist/error-overlay/react-overlay/utils/parser.js.map +0 -1
  162. package/dist/error-overlay/react-overlay/utils/stack-frame.d.ts +0 -41
  163. package/dist/error-overlay/react-overlay/utils/stack-frame.d.ts.map +0 -1
  164. package/dist/error-overlay/react-overlay/utils/stack-frame.js +0 -32
  165. package/dist/error-overlay/react-overlay/utils/stack-frame.js.map +0 -1
  166. package/dist/error-overlay/react-overlay/utils/unmapper.d.ts +0 -3
  167. package/dist/error-overlay/react-overlay/utils/unmapper.d.ts.map +0 -1
  168. package/dist/error-overlay/react-overlay/utils/unmapper.js +0 -60
  169. package/dist/error-overlay/react-overlay/utils/unmapper.js.map +0 -1
  170. package/dist/error-overlay/remotion-overlay/AskOnDiscord.d.ts +0 -3
  171. package/dist/error-overlay/remotion-overlay/AskOnDiscord.d.ts.map +0 -1
  172. package/dist/error-overlay/remotion-overlay/AskOnDiscord.js +0 -15
  173. package/dist/error-overlay/remotion-overlay/AskOnDiscord.js.map +0 -1
  174. package/dist/error-overlay/remotion-overlay/Button.d.ts +0 -7
  175. package/dist/error-overlay/remotion-overlay/Button.d.ts.map +0 -1
  176. package/dist/error-overlay/remotion-overlay/Button.js +0 -25
  177. package/dist/error-overlay/remotion-overlay/Button.js.map +0 -1
  178. package/dist/error-overlay/remotion-overlay/CodeFrame.d.ts +0 -7
  179. package/dist/error-overlay/remotion-overlay/CodeFrame.d.ts.map +0 -1
  180. package/dist/error-overlay/remotion-overlay/CodeFrame.js +0 -29
  181. package/dist/error-overlay/remotion-overlay/CodeFrame.js.map +0 -1
  182. package/dist/error-overlay/remotion-overlay/DismissButton.d.ts +0 -3
  183. package/dist/error-overlay/remotion-overlay/DismissButton.d.ts.map +0 -1
  184. package/dist/error-overlay/remotion-overlay/DismissButton.js +0 -24
  185. package/dist/error-overlay/remotion-overlay/DismissButton.js.map +0 -1
  186. package/dist/error-overlay/remotion-overlay/ErrorDisplay.d.ts +0 -6
  187. package/dist/error-overlay/remotion-overlay/ErrorDisplay.d.ts.map +0 -1
  188. package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +0 -46
  189. package/dist/error-overlay/remotion-overlay/ErrorDisplay.js.map +0 -1
  190. package/dist/error-overlay/remotion-overlay/ErrorLoader.d.ts +0 -5
  191. package/dist/error-overlay/remotion-overlay/ErrorLoader.d.ts.map +0 -1
  192. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +0 -62
  193. package/dist/error-overlay/remotion-overlay/ErrorLoader.js.map +0 -1
  194. package/dist/error-overlay/remotion-overlay/ErrorTitle.d.ts +0 -7
  195. package/dist/error-overlay/remotion-overlay/ErrorTitle.d.ts.map +0 -1
  196. package/dist/error-overlay/remotion-overlay/ErrorTitle.js +0 -42
  197. package/dist/error-overlay/remotion-overlay/ErrorTitle.js.map +0 -1
  198. package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts +0 -6
  199. package/dist/error-overlay/remotion-overlay/OpenInEditor.d.ts.map +0 -1
  200. package/dist/error-overlay/remotion-overlay/OpenInEditor.js +0 -91
  201. package/dist/error-overlay/remotion-overlay/OpenInEditor.js.map +0 -1
  202. package/dist/error-overlay/remotion-overlay/Overlay.d.ts +0 -15
  203. package/dist/error-overlay/remotion-overlay/Overlay.d.ts.map +0 -1
  204. package/dist/error-overlay/remotion-overlay/Overlay.js +0 -50
  205. package/dist/error-overlay/remotion-overlay/Overlay.js.map +0 -1
  206. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.d.ts +0 -5
  207. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.d.ts.map +0 -1
  208. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +0 -14
  209. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js.map +0 -1
  210. package/dist/error-overlay/remotion-overlay/StackFrame.d.ts +0 -9
  211. package/dist/error-overlay/remotion-overlay/StackFrame.d.ts.map +0 -1
  212. package/dist/error-overlay/remotion-overlay/StackFrame.js +0 -49
  213. package/dist/error-overlay/remotion-overlay/StackFrame.js.map +0 -1
  214. package/dist/error-overlay/remotion-overlay/Symbolicating.d.ts +0 -3
  215. package/dist/error-overlay/remotion-overlay/Symbolicating.d.ts.map +0 -1
  216. package/dist/error-overlay/remotion-overlay/Symbolicating.js +0 -9
  217. package/dist/error-overlay/remotion-overlay/Symbolicating.js.map +0 -1
  218. package/dist/error-overlay/remotion-overlay/carets.d.ts +0 -4
  219. package/dist/error-overlay/remotion-overlay/carets.d.ts.map +0 -1
  220. package/dist/error-overlay/remotion-overlay/carets.js +0 -13
  221. package/dist/error-overlay/remotion-overlay/carets.js.map +0 -1
  222. package/dist/error-overlay/remotion-overlay/format-location.d.ts +0 -2
  223. package/dist/error-overlay/remotion-overlay/format-location.d.ts.map +0 -1
  224. package/dist/error-overlay/remotion-overlay/format-location.js +0 -11
  225. package/dist/error-overlay/remotion-overlay/format-location.js.map +0 -1
  226. package/dist/error-overlay/remotion-overlay/index.d.ts +0 -2
  227. package/dist/error-overlay/remotion-overlay/index.d.ts.map +0 -1
  228. package/dist/error-overlay/remotion-overlay/index.js +0 -23
  229. package/dist/error-overlay/remotion-overlay/index.js.map +0 -1
  230. package/dist/esbuild-loader/index.d.ts.map +0 -1
  231. package/dist/esbuild-loader/index.js.map +0 -1
  232. package/dist/esbuild-loader/interfaces.d.ts.map +0 -1
  233. package/dist/esbuild-loader/interfaces.js.map +0 -1
  234. package/dist/fast-refresh/helpers.d.ts.map +0 -1
  235. package/dist/fast-refresh/helpers.js.map +0 -1
  236. package/dist/fast-refresh/index.d.ts.map +0 -1
  237. package/dist/fast-refresh/index.js.map +0 -1
  238. package/dist/fast-refresh/loader.d.ts.map +0 -1
  239. package/dist/fast-refresh/loader.js.map +0 -1
  240. package/dist/fast-refresh/runtime.d.ts.map +0 -1
  241. package/dist/fast-refresh/runtime.js.map +0 -1
  242. package/dist/get-latest-remotion-version.d.ts +0 -2
  243. package/dist/get-latest-remotion-version.d.ts.map +0 -1
  244. package/dist/get-latest-remotion-version.js +0 -32
  245. package/dist/get-latest-remotion-version.js.map +0 -1
  246. package/dist/get-package-manager.d.ts +0 -9
  247. package/dist/get-package-manager.d.ts.map +0 -1
  248. package/dist/get-package-manager.js +0 -39
  249. package/dist/get-package-manager.js.map +0 -1
  250. package/dist/get-port.d.ts +0 -2
  251. package/dist/get-port.d.ts.map +0 -1
  252. package/dist/get-port.js +0 -79
  253. package/dist/get-port.js.map +0 -1
  254. package/dist/homepage/homepage.d.ts.map +0 -1
  255. package/dist/homepage/homepage.js.map +0 -1
  256. package/dist/hot-middleware/client.d.ts +0 -20
  257. package/dist/hot-middleware/client.d.ts.map +0 -1
  258. package/dist/hot-middleware/client.js +0 -207
  259. package/dist/hot-middleware/client.js.map +0 -1
  260. package/dist/hot-middleware/index.d.ts +0 -14
  261. package/dist/hot-middleware/index.d.ts.map +0 -1
  262. package/dist/hot-middleware/index.js +0 -181
  263. package/dist/hot-middleware/index.js.map +0 -1
  264. package/dist/hot-middleware/process-update.d.ts +0 -13
  265. package/dist/hot-middleware/process-update.d.ts.map +0 -1
  266. package/dist/hot-middleware/process-update.js +0 -148
  267. package/dist/hot-middleware/process-update.js.map +0 -1
  268. package/dist/hot-middleware/strip-ansi.d.ts +0 -2
  269. package/dist/hot-middleware/strip-ansi.d.ts.map +0 -1
  270. package/dist/hot-middleware/strip-ansi.js +0 -22
  271. package/dist/hot-middleware/strip-ansi.js.map +0 -1
  272. package/dist/hot-middleware/types.d.ts +0 -38
  273. package/dist/hot-middleware/types.d.ts.map +0 -1
  274. package/dist/hot-middleware/types.js +0 -18
  275. package/dist/hot-middleware/types.js.map +0 -1
  276. package/dist/index.d.ts.map +0 -1
  277. package/dist/index.js.map +0 -1
  278. package/dist/project-info.d.ts +0 -6
  279. package/dist/project-info.d.ts.map +0 -1
  280. package/dist/project-info.js +0 -23
  281. package/dist/project-info.js.map +0 -1
  282. package/dist/renderEntry.d.ts.map +0 -1
  283. package/dist/renderEntry.js.map +0 -1
  284. package/dist/setup-environment.d.ts.map +0 -1
  285. package/dist/setup-environment.js.map +0 -1
  286. package/dist/start-server.d.ts +0 -9
  287. package/dist/start-server.d.ts.map +0 -1
  288. package/dist/start-server.js +0 -122
  289. package/dist/start-server.js.map +0 -1
  290. package/dist/static-preview.d.ts +0 -2
  291. package/dist/static-preview.d.ts.map +0 -1
  292. package/dist/static-preview.js +0 -41
  293. package/dist/static-preview.js.map +0 -1
  294. package/dist/test/expect-to-throw.d.ts +0 -2
  295. package/dist/test/expect-to-throw.d.ts.map +0 -1
  296. package/dist/test/expect-to-throw.js +0 -15
  297. package/dist/test/expect-to-throw.js.map +0 -1
  298. package/dist/test/latest-remotion-version.test.d.ts +0 -2
  299. package/dist/test/latest-remotion-version.test.d.ts.map +0 -1
  300. package/dist/test/latest-remotion-version.test.js +0 -7
  301. package/dist/test/latest-remotion-version.test.js.map +0 -1
  302. package/dist/test/parse-error-stack.test.d.ts +0 -2
  303. package/dist/test/parse-error-stack.test.d.ts.map +0 -1
  304. package/dist/test/parse-error-stack.test.js +0 -18
  305. package/dist/test/parse-error-stack.test.js.map +0 -1
  306. package/dist/test/parse-module-not-found.test.d.ts +0 -2
  307. package/dist/test/parse-module-not-found.test.d.ts.map +0 -1
  308. package/dist/test/parse-module-not-found.test.js +0 -18
  309. package/dist/test/parse-module-not-found.test.js.map +0 -1
  310. package/dist/test/secure-source-read.test.d.ts +0 -2
  311. package/dist/test/secure-source-read.test.d.ts.map +0 -1
  312. package/dist/test/secure-source-read.test.js +0 -9
  313. package/dist/test/secure-source-read.test.js.map +0 -1
  314. package/dist/update-available.d.ts +0 -11
  315. package/dist/update-available.d.ts.map +0 -1
  316. package/dist/update-available.js +0 -37
  317. package/dist/update-available.js.map +0 -1
  318. package/dist/webpack-cache.d.ts.map +0 -1
  319. package/dist/webpack-cache.js.map +0 -1
  320. package/dist/webpack-config.d.ts.map +0 -1
  321. package/dist/webpack-config.js.map +0 -1
@@ -1,7 +1,46 @@
1
- export declare const indexHtml: ({ baseDir, editorName, inputProps, staticHash, remotionRoot, }: {
1
+ import type { StaticFile } from 'remotion';
2
+ export declare type RenderDefaults = {
3
+ jpegQuality: number;
4
+ scale: number;
5
+ logLevel: string;
6
+ codec: string;
7
+ concurrency: number;
8
+ minConcurrency: number;
9
+ muted: boolean;
10
+ maxConcurrency: number;
11
+ stillImageFormat: 'png' | 'jpeg' | 'webp' | 'pdf';
12
+ videoImageFormat: 'png' | 'jpeg' | 'none';
13
+ audioCodec: string | null;
14
+ enforceAudioTrack: boolean;
15
+ proResProfile: string;
16
+ pixelFormat: string;
17
+ audioBitrate: string | null;
18
+ videoBitrate: string | null;
19
+ everyNthFrame: number;
20
+ numberOfGifLoops: number | null;
21
+ delayRenderTimeout: number;
22
+ disableWebSecurity: boolean;
23
+ openGlRenderer: string | null;
24
+ ignoreCertificateErrors: boolean;
25
+ headless: boolean;
26
+ };
27
+ declare global {
28
+ interface Window {
29
+ remotion_renderDefaults: RenderDefaults | undefined;
30
+ }
31
+ }
32
+ export declare const indexHtml: ({ baseDir, editorName, inputProps, envVariables, staticHash, remotionRoot, previewServerCommand, renderQueue, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, }: {
2
33
  staticHash: string;
3
34
  baseDir: string;
4
35
  editorName: string | null;
5
36
  inputProps: object | null;
37
+ envVariables?: Record<string, string> | undefined;
6
38
  remotionRoot: string;
39
+ previewServerCommand: string | null;
40
+ renderQueue: unknown | null;
41
+ numberOfAudioTags: number;
42
+ publicFiles: StaticFile[];
43
+ includeFavicon: boolean;
44
+ title: string;
45
+ renderDefaults: RenderDefaults | undefined;
7
46
  }) => string;
@@ -5,17 +5,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.indexHtml = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
- const indexHtml = ({ baseDir, editorName, inputProps, staticHash, remotionRoot, }) => `
8
+ const indexHtml = ({ baseDir, editorName, inputProps, envVariables, staticHash, remotionRoot, previewServerCommand, renderQueue, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, }) => `
9
9
  <!DOCTYPE html>
10
10
  <html lang="en">
11
11
  <head>
12
12
  <meta charset="UTF-8" />
13
13
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
14
  <link rel="preconnect" href="https://fonts.gstatic.com" />
15
- <link rel="icon" type="image/png" href="/remotion.png" />
16
- <title>Remotion Preview</title>
15
+ ${includeFavicon
16
+ ? ` <link rel="icon" type="image/png" href="/remotion.png" />\n`
17
+ : ''}
18
+ <title>${title}</title>
17
19
  </head>
18
20
  <body>
21
+ <script>window.remotion_numberOfAudioTags = ${numberOfAudioTags};</script>
19
22
  <script>window.remotion_staticBase = "${staticHash}";</script>
20
23
  <div id="video-container"></div>
21
24
  <div id="explainer-container"></div>
@@ -23,11 +26,24 @@ const indexHtml = ({ baseDir, editorName, inputProps, staticHash, remotionRoot,
23
26
  ? `<script>window.remotion_editorName = "${editorName}";</script>`
24
27
  : '<script>window.remotion_editorName = null;</script>'}
25
28
  <script>window.remotion_projectName = ${JSON.stringify(path_1.default.basename(remotionRoot))};</script>
29
+ <script>window.remotion_renderDefaults = ${JSON.stringify(renderDefaults)};</script>
26
30
  <script>window.remotion_cwd = ${JSON.stringify(remotionRoot)};</script>
31
+ <script>window.remotion_previewServerCommand = ${previewServerCommand ? JSON.stringify(previewServerCommand) : 'null'};</script>
27
32
  ${inputProps
28
- ? ` <script>window.remotion_inputProps = ${JSON.stringify(JSON.stringify(inputProps))};</script>
33
+ ? `<script>window.remotion_inputProps = ${JSON.stringify(JSON.stringify(inputProps))};</script>
34
+ `
35
+ : ''}
36
+ ${renderQueue
37
+ ? `<script>window.remotion_initialRenderQueue = ${JSON.stringify(renderQueue)};</script>
38
+ `
39
+ : ''}
40
+ ${envVariables
41
+ ? `<script> window.process = {
42
+ env: ${JSON.stringify(envVariables)}
43
+ };</script>
29
44
  `
30
45
  : ''}
46
+ <script>window.remotion_staticFiles = ${JSON.stringify(publicFiles)}</script>
31
47
 
32
48
  <div id="container"></div>
33
49
  <div id="menuportal-0"></div>
@@ -37,6 +53,7 @@ const indexHtml = ({ baseDir, editorName, inputProps, staticHash, remotionRoot,
37
53
  <div id="menuportal-4"></div>
38
54
  <div id="menuportal-5"></div>
39
55
  <div id="remotion-error-overlay"></div>
56
+ <div id="server-disconnected-overlay"></div>
40
57
  <script src="${baseDir}bundle.js"></script>
41
58
  </body>
42
59
  </html>
package/dist/index.d.ts CHANGED
@@ -2,36 +2,53 @@ import esbuild = require('esbuild');
2
2
  import webpack = require('webpack');
3
3
  export declare const BundlerInternals: {
4
4
  esbuild: typeof esbuild;
5
- webpackConfig: ({ entry, userDefinedComponent, outDir, environment, webpackOverride, onProgressUpdate, enableCaching, envVariables, maxTimelineTracks, entryPoints, remotionRoot, }: {
5
+ webpackConfig: ({ entry, userDefinedComponent, outDir, environment, webpackOverride, onProgress, enableCaching, envVariables, maxTimelineTracks, entryPoints, remotionRoot, keyboardShortcutsEnabled, poll, }: {
6
6
  entry: string;
7
7
  userDefinedComponent: string;
8
- outDir: string;
8
+ outDir: string | null;
9
9
  environment: "development" | "production";
10
- webpackOverride: import("remotion/dist/internals").WebpackOverrideFn;
11
- onProgressUpdate?: ((f: number) => void) | undefined;
10
+ webpackOverride: import("./webpack-config").WebpackOverrideFn;
11
+ onProgress?: ((f: number) => void) | undefined;
12
12
  enableCaching?: boolean | undefined;
13
13
  envVariables: Record<string, string>;
14
14
  maxTimelineTracks: number;
15
+ keyboardShortcutsEnabled: boolean;
15
16
  entryPoints: string[];
16
17
  remotionRoot: string;
18
+ poll: number | null;
17
19
  }) => [string, webpack.Configuration];
18
- indexHtml: ({ baseDir, editorName, inputProps, staticHash, remotionRoot, }: {
20
+ indexHtml: ({ baseDir, editorName, inputProps, envVariables, staticHash, remotionRoot, previewServerCommand, renderQueue, numberOfAudioTags, publicFiles, includeFavicon, title, renderDefaults, }: {
19
21
  staticHash: string;
20
22
  baseDir: string;
21
23
  editorName: string | null;
22
24
  inputProps: object | null;
25
+ envVariables?: Record<string, string> | undefined;
23
26
  remotionRoot: string;
27
+ previewServerCommand: string | null;
28
+ renderQueue: unknown;
29
+ numberOfAudioTags: number;
30
+ publicFiles: import("remotion").StaticFile[];
31
+ includeFavicon: boolean;
32
+ title: string;
33
+ renderDefaults: import("./index-html").RenderDefaults | undefined;
24
34
  }) => string;
25
35
  cacheExists: (remotionRoot: string, environment: "development" | "production", hash: string) => "exists" | "other-exists" | "does-not-exist";
26
36
  clearCache: (remotionRoot: string) => Promise<void>;
27
- getConfig: ({ entryPoint, outDir, resolvedRemotionRoot, onProgressUpdate, options, }: {
37
+ getConfig: ({ entryPoint, outDir, resolvedRemotionRoot, onProgress, options, }: {
28
38
  outDir: string;
29
39
  entryPoint: string;
30
40
  resolvedRemotionRoot: string;
31
- onProgressUpdate?: ((progress: number) => void) | undefined;
32
- options?: import("./bundle").BundleOptions | undefined;
41
+ onProgress?: ((progress: number) => void) | undefined;
42
+ options?: import("./bundle").LegacyBundleOptions | undefined;
33
43
  }) => [string, webpack.Configuration];
44
+ readRecursively: ({ folder, output, startPath, staticHash, limit, }: {
45
+ folder: string;
46
+ startPath: string;
47
+ output?: import("remotion").StaticFile[] | undefined;
48
+ staticHash: string;
49
+ limit: number;
50
+ }) => import("remotion").StaticFile[];
34
51
  };
35
- export { bundle, BundleOptions } from './bundle';
52
+ export { bundle, BundleOptions, LegacyBundleOptions } from './bundle';
53
+ export { WebpackConfiguration, WebpackOverrideFn } from './webpack-config';
36
54
  export { webpack };
37
- export declare type WebpackConfiguration = webpack.Configuration;
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.webpack = exports.bundle = exports.BundlerInternals = void 0;
4
4
  const bundle_1 = require("./bundle");
5
5
  const index_html_1 = require("./index-html");
6
+ const read_recursively_1 = require("./read-recursively");
6
7
  const webpack_cache_1 = require("./webpack-cache");
7
8
  const webpack_config_1 = require("./webpack-config");
8
9
  const esbuild = require("esbuild");
@@ -15,6 +16,7 @@ exports.BundlerInternals = {
15
16
  cacheExists: webpack_cache_1.cacheExists,
16
17
  clearCache: webpack_cache_1.clearCache,
17
18
  getConfig: bundle_1.getConfig,
19
+ readRecursively: read_recursively_1.readRecursively,
18
20
  };
19
21
  var bundle_2 = require("./bundle");
20
22
  Object.defineProperty(exports, "bundle", { enumerable: true, get: function () { return bundle_2.bundle; } });
@@ -0,0 +1,8 @@
1
+ import type { StaticFile } from 'remotion';
2
+ export declare const readRecursively: ({ folder, output, startPath, staticHash, limit, }: {
3
+ folder: string;
4
+ startPath: string;
5
+ output?: StaticFile[] | undefined;
6
+ staticHash: string;
7
+ limit: number;
8
+ }) => StaticFile[];
@@ -0,0 +1,78 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.readRecursively = void 0;
30
+ const fs_1 = __importStar(require("fs"));
31
+ const path_1 = __importDefault(require("path"));
32
+ const readRecursively = ({ folder, output = [], startPath, staticHash, limit, }) => {
33
+ const absFolder = path_1.default.join(startPath, folder);
34
+ if (!fs_1.default.existsSync(absFolder)) {
35
+ return [];
36
+ }
37
+ const files = fs_1.default.readdirSync(absFolder);
38
+ for (const file of files) {
39
+ if (output.length >= limit) {
40
+ break;
41
+ }
42
+ if (file.startsWith('.DS_Store')) {
43
+ continue;
44
+ }
45
+ const stat = (0, fs_1.statSync)(path_1.default.join(absFolder, file));
46
+ if (stat.isDirectory()) {
47
+ (0, exports.readRecursively)({
48
+ startPath,
49
+ folder: path_1.default.join(folder, file),
50
+ output,
51
+ staticHash,
52
+ limit,
53
+ });
54
+ }
55
+ else if (stat.isFile()) {
56
+ output.push({
57
+ name: path_1.default.join(folder, file),
58
+ lastModified: Math.floor(stat.mtimeMs),
59
+ sizeInBytes: stat.size,
60
+ src: staticHash + '/' + path_1.default.join(folder, file),
61
+ });
62
+ }
63
+ else if (stat.isSymbolicLink()) {
64
+ const realpath = fs_1.default.realpathSync(path_1.default.join(folder, file));
65
+ const realStat = fs_1.default.statSync(realpath);
66
+ if (realStat.isFile()) {
67
+ output.push({
68
+ name: realpath,
69
+ lastModified: Math.floor(realStat.mtimeMs),
70
+ sizeInBytes: realStat.size,
71
+ src: staticHash + '/' + realpath,
72
+ });
73
+ }
74
+ }
75
+ }
76
+ return output.sort((a, b) => a.name.localeCompare(b.name));
77
+ };
78
+ exports.readRecursively = readRecursively;
File without changes
@@ -15,6 +15,19 @@ const remotion_1 = require("remotion");
15
15
  const bundle_mode_1 = require("./bundle-mode");
16
16
  const homepage_1 = require("./homepage/homepage");
17
17
  remotion_1.Internals.CSSUtils.injectCSS(remotion_1.Internals.CSSUtils.makeDefaultCSS(null, '#fff'));
18
+ const getCanSerializeDefaultProps = (object) => {
19
+ try {
20
+ const str = JSON.stringify(object);
21
+ // 256MB is the theoretical limit, making it throw if over 90% of that is reached.
22
+ return str.length < 256 * 1024 * 1024 * 0.9;
23
+ }
24
+ catch (err) {
25
+ if (err.message.includes('Invalid string length')) {
26
+ return false;
27
+ }
28
+ throw err;
29
+ }
30
+ };
18
31
  const GetVideo = ({ state }) => {
19
32
  const video = remotion_1.Internals.useVideo();
20
33
  const compositions = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
@@ -34,6 +47,13 @@ const GetVideo = ({ state }) => {
34
47
  throw new Error('Found no composition with the name ' + state.compositionName);
35
48
  }
36
49
  compositions.setCurrentComposition((_a = foundComposition === null || foundComposition === void 0 ? void 0 : foundComposition.id) !== null && _a !== void 0 ? _a : null);
50
+ compositions.setCurrentCompositionMetadata({
51
+ defaultProps: state.compositionDefaultProps,
52
+ durationInFrames: state.compositionDurationInFrames,
53
+ fps: state.compositionFps,
54
+ height: state.compositionHeight,
55
+ width: state.compositionWidth,
56
+ });
37
57
  }
38
58
  }, [compositions, compositions.compositions, state, video]);
39
59
  (0, react_1.useEffect)(() => {
@@ -75,7 +95,7 @@ let cleanupVideoContainer = () => {
75
95
  let cleanupExplainerContainer = () => {
76
96
  explainerContainer.innerHTML = '';
77
97
  };
78
- const waitForRootHandle = (0, remotion_1.delayRender)('Loading root component');
98
+ const waitForRootHandle = (0, remotion_1.delayRender)('Loading root component - See https://remotion.dev/docs/troubleshooting/loading-root-component if you experience a timeout');
79
99
  const WaitForRoot = () => {
80
100
  const [Root, setRoot] = (0, react_1.useState)(() => remotion_1.Internals.getRoot());
81
101
  (0, react_1.useEffect)(() => {
@@ -96,7 +116,7 @@ const WaitForRoot = () => {
96
116
  const renderContent = () => {
97
117
  const bundleMode = (0, bundle_mode_1.getBundleMode)();
98
118
  if (bundleMode.type === 'composition' || bundleMode.type === 'evaluation') {
99
- const markup = ((0, jsx_runtime_1.jsxs)(remotion_1.Internals.RemotionRoot, { children: [(0, jsx_runtime_1.jsx)(WaitForRoot, {}), (0, jsx_runtime_1.jsx)(GetVideo, { state: bundleMode })] }));
119
+ const markup = ((0, jsx_runtime_1.jsxs)(remotion_1.Internals.RemotionRoot, { numberOfAudioTags: 0, children: [(0, jsx_runtime_1.jsx)(WaitForRoot, {}), (0, jsx_runtime_1.jsx)(GetVideo, { state: bundleMode })] }));
100
120
  if (client_1.default.createRoot) {
101
121
  const root = client_1.default.createRoot(videoContainer);
102
122
  root.render(markup);
@@ -154,9 +174,19 @@ if (typeof window !== 'undefined') {
154
174
  if (!remotion_1.Internals.compositionsRef.current) {
155
175
  throw new Error('Unexpectedly did not have a CompositionManager');
156
176
  }
157
- return remotion_1.Internals.compositionsRef.current
158
- .getCompositions()
159
- .map((c) => {
177
+ const compositions = remotion_1.Internals.compositionsRef.current.getCompositions();
178
+ const canSerializeDefaultProps = getCanSerializeDefaultProps(compositions);
179
+ if (!canSerializeDefaultProps) {
180
+ console.warn('defaultProps are too big to serialize - trying to find the problematic composition...');
181
+ for (const comp of compositions) {
182
+ if (!getCanSerializeDefaultProps(comp)) {
183
+ throw new Error(`defaultProps too big - could not serialize - the defaultProps of composition with ID ${comp.id} - the object that was passed to defaultProps was too big. Learn how to mitigate this error by visiting https://remotion.dev/docs/troubleshooting/serialize-defaultprops`);
184
+ }
185
+ }
186
+ console.warn('Could not single out a problematic composition - The composition list as a whole is too big to serialize.');
187
+ throw new Error('defaultProps too big - Could not serialize - an object that was passed to defaultProps was too big. Learn how to mitigate this error by visiting https://remotion.dev/docs/troubleshooting/serialize-defaultprops');
188
+ }
189
+ return compositions.map((c) => {
160
190
  return {
161
191
  defaultProps: c.defaultProps,
162
192
  durationInFrames: c.durationInFrames,
@@ -167,6 +197,7 @@ if (typeof window !== 'undefined') {
167
197
  };
168
198
  });
169
199
  };
170
- window.siteVersion = '3';
200
+ window.siteVersion = '4';
201
+ window.remotion_version = remotion_1.VERSION;
171
202
  window.setBundleMode = exports.setBundleModeAndUpdate;
172
203
  }
File without changes
@@ -5,10 +5,65 @@ remotion_1.Internals.setupEnvVariables();
5
5
  remotion_1.Internals.CSSUtils.injectCSS(`
6
6
  .css-reset, .css-reset * {
7
7
  font-size: 16px;
8
- line-height: 1;
8
+ line-height: 1.5;
9
9
  color: white;
10
10
  font-family: Arial, Helvetica, sans-serif;
11
11
  background: transparent;
12
12
  box-sizing: border-box;
13
13
  }
14
+
15
+ .algolia-docsearch-suggestion--highlight {
16
+ font-size: 15px;
17
+ line-height: 1.25;
18
+ }
19
+
20
+ .__remotion-info-button-container code {
21
+ font-family: monospace;
22
+ font-size: 14px;
23
+ color: #0584f2
24
+ }
25
+
26
+ .__remotion-vertical-scrollbar::-webkit-scrollbar {
27
+ width: 6px;
28
+ }
29
+ .__remotion-vertical-scrollbar::-webkit-scrollbar-thumb {
30
+ background-color: rgba(0, 0, 0, 0.0);
31
+ }
32
+ .__remotion-vertical-scrollbar:hover::-webkit-scrollbar-thumb {
33
+ background-color: rgba(0, 0, 0, 0.6);
34
+ }
35
+ .__remotion-vertical-scrollbar:hover::-webkit-scrollbar-thumb:hover {
36
+ background-color: rgba(0, 0, 0, 1);
37
+ }
38
+
39
+ .__remotion-horizontal-scrollbar::-webkit-scrollbar {
40
+ height: 6px;
41
+ }
42
+ .__remotion-horizontal-scrollbar::-webkit-scrollbar-thumb {
43
+ background-color: rgba(0, 0, 0, 0.0);
44
+ }
45
+ .__remotion-horizontal-scrollbar:hover::-webkit-scrollbar-thumb {
46
+ background-color: rgba(0, 0, 0, 0.6);
47
+ }
48
+ .__remotion-horizontal-scrollbar:hover::-webkit-scrollbar-thumb:hover {
49
+ background-color: rgba(0, 0, 0, 1);
50
+ }
51
+
52
+ .__remotion-timeline-slider {
53
+ appearance: none;
54
+ width: 100px;
55
+ border-radius: 3px;
56
+ height: 6px;
57
+ background-color: rgba(255, 255, 255, 0.1);
58
+ accent-color: #ffffff;
59
+ }
60
+
61
+ .__remotion-timeline-slider::-moz-range-thumb {
62
+ width: 14px;
63
+ height: 14px;
64
+ border-radius: 50%;
65
+ background-color: #ffffff;
66
+ appearance: none;
67
+ }
68
+
14
69
  `);
@@ -0,0 +1 @@
1
+ export declare const jsonStringifyWithCircularReferences: (circ: unknown) => string;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jsonStringifyWithCircularReferences = void 0;
4
+ const jsonStringifyWithCircularReferences = (circ) => {
5
+ let seen = [];
6
+ const val = JSON.stringify(circ, (_, value) => {
7
+ if (typeof value === 'object' && value !== null && seen) {
8
+ if (seen.includes(value)) {
9
+ return '[Circular]';
10
+ }
11
+ seen.push(value);
12
+ }
13
+ return value;
14
+ });
15
+ seen = null;
16
+ return val;
17
+ };
18
+ exports.jsonStringifyWithCircularReferences = jsonStringifyWithCircularReferences;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const bundle_1 = require("../bundle");
5
+ (0, vitest_1.test)('Should reject bad bundle options', () => {
6
+ // @ts-expect-error
7
+ (0, vitest_1.expect)(() => (0, bundle_1.bundle)()).rejects.toThrow(/bundle\(\) was called without arguments/);
8
+ // @ts-expect-error
9
+ (0, vitest_1.expect)(() => (0, bundle_1.bundle)({})).rejects.toThrow(/bundle\(\) was called without the `entryPoint` option/);
10
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const vitest_1 = require("vitest");
8
+ const validate_public_dir_1 = require("../validate-public-dir");
9
+ (0, vitest_1.describe)('validatePublicDir()', () => {
10
+ (0, vitest_1.test)('Should not allow root directory as public dir.', () => {
11
+ (0, vitest_1.expect)(() => (0, validate_public_dir_1.validatePublicDir)(path_1.default.parse(process.cwd()).root)).toThrow(/which is the root directory. This is not allowed./);
12
+ });
13
+ (0, vitest_1.test)('Should not allow a path where the parent directory does not exist', () => {
14
+ const pathToPass = process.platform === 'win32' ? 'C:\\foo\\bar' : '/foo/bar';
15
+ const expectedParent = process.platform === 'win32' ? 'C:\\foo' : '/foo';
16
+ (0, vitest_1.expect)(() => (0, validate_public_dir_1.validatePublicDir)(pathToPass)).toThrow(`The public directory was specified as "${pathToPass}", but this folder does not exist and the parent directory "${expectedParent}" does also not exist.`);
17
+ });
18
+ (0, vitest_1.test)('Should allow /foo as a path since that directory can be created', () => {
19
+ (0, vitest_1.expect)(() => (0, validate_public_dir_1.validatePublicDir)(process.platform === 'win32' ? 'C:\\foo' : '/foo')).not.toThrow();
20
+ });
21
+ });
@@ -0,0 +1 @@
1
+ export declare const validatePublicDir: (p: string) => void;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.validatePublicDir = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const validatePublicDir = (p) => {
10
+ const { root } = path_1.default.parse(process.cwd());
11
+ if (p === root) {
12
+ throw new Error(`The public directory was specified as "${p}", which is the root directory. This is not allowed.`);
13
+ }
14
+ try {
15
+ const stat = fs_1.default.lstatSync(p);
16
+ if (!stat.isDirectory()) {
17
+ throw new Error(`The public directory was specified as "${p}", and while this path exists on the filesystem, it is not a directory.`);
18
+ }
19
+ }
20
+ catch (e) {
21
+ // Path does not exist
22
+ // Check if the parent path exists
23
+ const parentPath = path_1.default.dirname(p);
24
+ const exists = fs_1.default.existsSync(parentPath);
25
+ if (!exists) {
26
+ throw new Error(`The public directory was specified as "${p}", but this folder does not exist and the parent directory "${parentPath}" does also not exist. Create at least the parent directory.`);
27
+ }
28
+ }
29
+ };
30
+ exports.validatePublicDir = validatePublicDir;
File without changes
@@ -40,8 +40,7 @@ const remotionCacheLocation = (remotionRoot, environment, hash) => {
40
40
  return path_1.default.join(getWebpackCacheDir(remotionRoot), (0, exports.getWebpackCacheName)(environment, hash));
41
41
  };
42
42
  const clearCache = (remotionRoot) => {
43
- var _a;
44
- return ((_a = fs_1.default.promises.rm) !== null && _a !== void 0 ? _a : fs_1.default.promises.rmdir)(getWebpackCacheDir(remotionRoot), {
43
+ return fs_1.default.promises.rm(getWebpackCacheDir(remotionRoot), {
45
44
  recursive: true,
46
45
  });
47
46
  };
@@ -1,14 +1,18 @@
1
- import type { WebpackConfiguration, WebpackOverrideFn } from 'remotion';
2
- export declare const webpackConfig: ({ entry, userDefinedComponent, outDir, environment, webpackOverride, onProgressUpdate, enableCaching, envVariables, maxTimelineTracks, entryPoints, remotionRoot, }: {
1
+ import type { Configuration } from 'webpack';
2
+ export declare type WebpackConfiguration = Configuration;
3
+ export declare type WebpackOverrideFn = (currentConfiguration: WebpackConfiguration) => WebpackConfiguration;
4
+ export declare const webpackConfig: ({ entry, userDefinedComponent, outDir, environment, webpackOverride, onProgress, enableCaching, envVariables, maxTimelineTracks, entryPoints, remotionRoot, keyboardShortcutsEnabled, poll, }: {
3
5
  entry: string;
4
6
  userDefinedComponent: string;
5
- outDir: string;
7
+ outDir: string | null;
6
8
  environment: 'development' | 'production';
7
9
  webpackOverride: WebpackOverrideFn;
8
- onProgressUpdate?: ((f: number) => void) | undefined;
10
+ onProgress?: ((f: number) => void) | undefined;
9
11
  enableCaching?: boolean | undefined;
10
12
  envVariables: Record<string, string>;
11
13
  maxTimelineTracks: number;
14
+ keyboardShortcutsEnabled: boolean;
12
15
  entryPoints: string[];
13
16
  remotionRoot: string;
17
+ poll: number | null;
14
18
  }) => [string, WebpackConfiguration];
@@ -32,6 +32,7 @@ const react_dom_1 = __importDefault(require("react-dom"));
32
32
  const remotion_1 = require("remotion");
33
33
  const webpack_1 = __importStar(require("webpack"));
34
34
  const fast_refresh_1 = require("./fast-refresh");
35
+ const stringify_with_circular_references_1 = require("./stringify-with-circular-references");
35
36
  const webpack_cache_1 = require("./webpack-cache");
36
37
  const esbuild = require("esbuild");
37
38
  if (!react_dom_1.default || !react_dom_1.default.version) {
@@ -50,7 +51,7 @@ const esbuildLoaderOptions = {
50
51
  function truthy(value) {
51
52
  return Boolean(value);
52
53
  }
53
- const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpackOverride = (f) => f, onProgressUpdate, enableCaching = true, envVariables, maxTimelineTracks, entryPoints, remotionRoot, }) => {
54
+ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpackOverride = (f) => f, onProgress, enableCaching = true, envVariables, maxTimelineTracks, entryPoints, remotionRoot, keyboardShortcutsEnabled, poll, }) => {
54
55
  const conf = webpackOverride({
55
56
  optimization: {
56
57
  minimize: false,
@@ -63,12 +64,11 @@ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpa
63
64
  },
64
65
  },
65
66
  watchOptions: {
67
+ poll: poll !== null && poll !== void 0 ? poll : undefined,
66
68
  aggregateTimeout: 0,
67
69
  ignored: ['**/.git/**', '**/node_modules/**'],
68
70
  },
69
- devtool: environment === 'development'
70
- ? 'cheap-module-source-map'
71
- : 'cheap-module-source-map',
71
+ devtool: 'cheap-module-source-map',
72
72
  entry: [
73
73
  // Fast Refresh must come first,
74
74
  // because setup-environment imports ReactDOM.
@@ -89,13 +89,14 @@ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpa
89
89
  new webpack_1.default.HotModuleReplacementPlugin(),
90
90
  new webpack_1.default.DefinePlugin({
91
91
  'process.env.MAX_TIMELINE_TRACKS': maxTimelineTracks,
92
+ 'process.env.KEYBOARD_SHORTCUTS_ENABLED': keyboardShortcutsEnabled,
92
93
  [`process.env.${remotion_1.Internals.ENV_VARIABLES_ENV_NAME}`]: JSON.stringify(envVariables),
93
94
  }),
94
95
  ]
95
96
  : [
96
97
  new webpack_1.ProgressPlugin((p) => {
97
- if (onProgressUpdate) {
98
- onProgressUpdate(Number((p * 100).toFixed(2)));
98
+ if (onProgress) {
99
+ onProgress(Number((p * 100).toFixed(2)));
99
100
  }
100
101
  }),
101
102
  ],
@@ -107,7 +108,7 @@ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpa
107
108
  assetModuleFilename: environment === 'development' ? '[path][name][ext]' : '[hash][ext]',
108
109
  },
109
110
  resolve: {
110
- extensions: ['.ts', '.tsx', '.js', '.jsx'],
111
+ extensions: ['.ts', '.tsx', '.web.js', '.js', '.jsx'],
111
112
  alias: {
112
113
  // Only one version of react
113
114
  'react/jsx-runtime': require.resolve('react/jsx-runtime'),
@@ -167,7 +168,9 @@ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpa
167
168
  ],
168
169
  },
169
170
  });
170
- const hash = (0, crypto_1.createHash)('md5').update(JSON.stringify(conf)).digest('hex');
171
+ const hash = (0, crypto_1.createHash)('md5')
172
+ .update((0, stringify_with_circular_references_1.jsonStringifyWithCircularReferences)(conf))
173
+ .digest('hex');
171
174
  return [
172
175
  hash,
173
176
  {
@@ -181,7 +184,7 @@ const webpackConfig = ({ entry, userDefinedComponent, outDir, environment, webpa
181
184
  : false,
182
185
  output: {
183
186
  ...conf.output,
184
- path: outDir,
187
+ ...(outDir ? { path: outDir } : {}),
185
188
  },
186
189
  context: remotionRoot,
187
190
  },