@remotion/cli 4.0.22 → 4.0.23

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 (61) hide show
  1. package/dist/benchmark.js +3 -1
  2. package/dist/better-opn/index.d.ts +0 -1
  3. package/dist/compositions.js +2 -1
  4. package/dist/config/index.d.ts +2 -0
  5. package/dist/config/index.js +3 -0
  6. package/dist/config/offthread-video-cache-size.d.ts +2 -0
  7. package/dist/config/offthread-video-cache-size.js +12 -0
  8. package/dist/editor/components/Modals.js +1 -1
  9. package/dist/editor/components/NewComposition/NewCompCode.d.ts +0 -1
  10. package/dist/editor/components/NewComposition/RemInput.d.ts +1 -1
  11. package/dist/editor/components/Notifications/ServerDisconnected.js +2 -1
  12. package/dist/editor/components/RenderButton.js +1 -0
  13. package/dist/editor/components/RenderModal/CrfSetting.d.ts +2 -2
  14. package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +2 -2
  15. package/dist/editor/components/RenderModal/MutedSetting.d.ts +2 -2
  16. package/dist/editor/components/RenderModal/NumberSetting.d.ts +2 -2
  17. package/dist/editor/components/RenderModal/OptionExplainer.d.ts +2 -2
  18. package/dist/editor/components/RenderModal/RenderModal.d.ts +1 -0
  19. package/dist/editor/components/RenderModal/RenderModal.js +7 -2
  20. package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +2 -0
  21. package/dist/editor/components/RenderModal/RenderModalAdvanced.js +22 -2
  22. package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +1 -1
  23. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.d.ts +14 -0
  24. package/dist/editor/components/RenderModal/SchemaEditor/input-props-serialization.js +42 -0
  25. package/dist/editor/components/RenderModal/layout.js +1 -1
  26. package/dist/editor/components/RenderQueue/actions.d.ts +4 -2
  27. package/dist/editor/components/RenderQueue/actions.js +4 -2
  28. package/dist/editor/components/RightPanel.js +12 -45
  29. package/dist/editor/components/SidebarRenderButton.js +8 -1
  30. package/dist/editor/components/UpdateCheck.d.ts +0 -1
  31. package/dist/editor/helpers/colors.d.ts +1 -1
  32. package/dist/editor/helpers/convert-env-variables.d.ts +8 -2
  33. package/dist/editor/helpers/render-modal-sections.d.ts +0 -1
  34. package/dist/editor/state/modals.d.ts +1 -0
  35. package/dist/get-cli-options.d.ts +1 -0
  36. package/dist/get-cli-options.js +1 -0
  37. package/dist/get-composition-id.d.ts +2 -1
  38. package/dist/get-composition-id.js +3 -1
  39. package/dist/get-composition-with-dimension-override.d.ts +2 -1
  40. package/dist/get-composition-with-dimension-override.js +2 -1
  41. package/dist/index.d.ts +4 -1
  42. package/dist/list-of-remotion-packages.js +1 -0
  43. package/dist/parse-command-line.d.ts +3 -0
  44. package/dist/parse-command-line.js +3 -0
  45. package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.d.ts +1 -1
  46. package/dist/preview-server/render-queue/job.d.ts +3 -0
  47. package/dist/preview-server/render-queue/make-retry-payload.js +2 -0
  48. package/dist/preview-server/render-queue/process-still.js +1 -0
  49. package/dist/preview-server/render-queue/process-video.js +1 -0
  50. package/dist/preview-server/routes/add-render.js +2 -0
  51. package/dist/preview-server/routes.d.ts +0 -1
  52. package/dist/preview-server/routes.js +2 -0
  53. package/dist/render-flows/render.d.ts +2 -1
  54. package/dist/render-flows/render.js +5 -1
  55. package/dist/render-flows/still.d.ts +2 -1
  56. package/dist/render-flows/still.js +4 -1
  57. package/dist/render.js +2 -1
  58. package/dist/still.js +2 -1
  59. package/package.json +9 -9
  60. package/dist/config/presets-profile.d.ts +0 -3
  61. package/dist/config/presets-profile.js +0 -12
@@ -4,10 +4,8 @@ exports.RightPanel = exports.rightSidebarTabs = exports.persistSelectedPanel = v
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const remotion_1 = require("remotion");
7
- const ShortcutHint_1 = require("../../preview-server/error-overlay/remotion-overlay/ShortcutHint");
8
7
  const colors_1 = require("../helpers/colors");
9
8
  const DataEditor_1 = require("./RenderModal/DataEditor");
10
- const deep_equal_1 = require("./RenderModal/SchemaEditor/deep-equal");
11
9
  const RenderQueue_1 = require("./RenderQueue");
12
10
  const RendersTab_1 = require("./RendersTab");
13
11
  const Tabs_1 = require("./Tabs");
@@ -18,10 +16,17 @@ const container = {
18
16
  display: 'flex',
19
17
  flexDirection: 'column',
20
18
  };
21
- const circle = {
22
- width: 8,
23
- height: 8,
24
- borderRadius: 4,
19
+ const PropsEditor = ({ composition }) => {
20
+ const { props, updateProps } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
21
+ const setInputProps = (0, react_1.useCallback)((newProps) => {
22
+ updateProps({
23
+ id: composition.id,
24
+ defaultProps: composition.defaultProps,
25
+ newProps,
26
+ });
27
+ }, [composition.defaultProps, composition.id, updateProps]);
28
+ const actualProps = (0, react_1.useMemo)(() => { var _a, _b; return (_b = (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps) !== null && _b !== void 0 ? _b : {}; }, [composition.defaultProps, composition.id, props]);
29
+ return ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, inputProps: actualProps, setInputProps: setInputProps, mayShowSaveButton: true, propsEditType: "default-props" }, composition.id));
25
30
  };
26
31
  const localStorageKey = 'remotion.sidebarPanel';
27
32
  const getSelectedPanel = () => {
@@ -40,8 +45,6 @@ const persistSelectedPanel = (panel) => {
40
45
  exports.persistSelectedPanel = persistSelectedPanel;
41
46
  exports.rightSidebarTabs = (0, react_1.createRef)();
42
47
  const RightPanel = () => {
43
- const { props, updateProps } = (0, react_1.useContext)(remotion_1.Internals.EditorPropsContext);
44
- const [saving, setSaving] = (0, react_1.useState)(false);
45
48
  const [panel, setPanel] = (0, react_1.useState)(() => getSelectedPanel());
46
49
  const onCompositionsSelected = (0, react_1.useCallback)(() => {
47
50
  setPanel('input-props');
@@ -60,14 +63,6 @@ const RightPanel = () => {
60
63
  };
61
64
  }, []);
62
65
  const { compositions, currentComposition } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
63
- const circleStyle = (0, react_1.useMemo)(() => {
64
- const onTabColor = saving ? colors_1.LIGHT_TEXT : 'white';
65
- return {
66
- ...circle,
67
- backgroundColor: panel === 'input-props' ? onTabColor : colors_1.LIGHT_TEXT,
68
- cursor: 'help',
69
- };
70
- }, [panel, saving]);
71
66
  const composition = (0, react_1.useMemo)(() => {
72
67
  for (const comp of compositions) {
73
68
  if (comp.id === currentComposition) {
@@ -76,37 +71,9 @@ const RightPanel = () => {
76
71
  }
77
72
  return null;
78
73
  }, [compositions, currentComposition]);
79
- const saveToolTip = (0, react_1.useMemo)(() => {
80
- return process.env.KEYBOARD_SHORTCUTS_ENABLED
81
- ? `Save using ${ShortcutHint_1.cmdOrCtrlCharacter}+S`
82
- : 'There are unsaved changes';
83
- }, []);
84
- const setInputProps = (0, react_1.useCallback)((newProps) => {
85
- if (composition === null) {
86
- return;
87
- }
88
- updateProps({
89
- id: composition.id,
90
- defaultProps: composition.defaultProps,
91
- newProps,
92
- });
93
- }, [composition, updateProps]);
94
- const actualProps = (0, react_1.useMemo)(() => {
95
- var _a, _b;
96
- if (composition === null) {
97
- return {};
98
- }
99
- return (_b = (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps) !== null && _b !== void 0 ? _b : {};
100
- }, [composition, props]);
101
- const unsavedChangesExist = (0, react_1.useMemo)(() => {
102
- if (composition === null || composition.defaultProps === undefined) {
103
- return false;
104
- }
105
- return !(0, deep_equal_1.deepEqual)(composition.defaultProps, actualProps);
106
- }, [actualProps, composition]);
107
74
  if (composition === null) {
108
75
  return null;
109
76
  }
110
- return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [(0, jsx_runtime_1.jsxs)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onCompositionsSelected, style: { justifyContent: 'space-between' }, children: ["Props", unsavedChangesExist ? ((0, jsx_runtime_1.jsx)("div", { title: saveToolTip, style: circleStyle })) : null] }), (0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' })] }) }), panel === 'renders' ? ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {})) : ((0, jsx_runtime_1.jsx)(DataEditor_1.DataEditor, { unresolvedComposition: composition, inputProps: actualProps, setInputProps: setInputProps, mayShowSaveButton: true, propsEditType: "default-props", saving: saving, setSaving: setSaving }, composition.id))] }));
77
+ return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'input-props', onClick: onCompositionsSelected, children: "Props" }), (0, jsx_runtime_1.jsx)(RendersTab_1.RendersTab, { onClick: onRendersSelected, selected: panel === 'renders' })] }) }), panel === 'renders' ? ((0, jsx_runtime_1.jsx)(RenderQueue_1.RenderQueue, {})) : ((0, jsx_runtime_1.jsx)(PropsEditor, { composition: composition }))] }));
111
78
  };
112
79
  exports.RightPanel = RightPanel;
@@ -73,12 +73,19 @@ const SidebarRenderButton = ({ composition, visible }) => {
73
73
  initialDisableWebSecurity: defaults.disableWebSecurity,
74
74
  initialOpenGlRenderer: defaults.openGlRenderer,
75
75
  initialHeadless: defaults.headless,
76
+ initialOffthreadVideoCacheSizeInBytes: defaults.offthreadVideoCacheSizeInBytes,
76
77
  initialIgnoreCertificateErrors: defaults.ignoreCertificateErrors,
77
78
  defaultProps: (_a = props[composition.id]) !== null && _a !== void 0 ? _a : composition.defaultProps,
78
79
  inFrameMark: null,
79
80
  outFrameMark: null,
80
81
  });
81
- }, [composition.defaultProps, composition.id, isVideo, props, setSelectedModal]);
82
+ }, [
83
+ composition.defaultProps,
84
+ composition.id,
85
+ isVideo,
86
+ props,
87
+ setSelectedModal,
88
+ ]);
82
89
  const renderAction = (0, react_1.useCallback)((color) => {
83
90
  return (0, jsx_runtime_1.jsx)(render_1.ThinRenderIcon, { fill: color, svgProps: iconStyle });
84
91
  }, [iconStyle]);
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { PackageManager } from '../../preview-server/get-package-manager';
3
2
  export type UpdateInfo = {
4
3
  currentVersion: string;
@@ -16,4 +16,4 @@ export declare const BLUE_DISABLED = "#284f73";
16
16
  export declare const getBackgroundFromHoverState: ({ selected, hovered, }: {
17
17
  selected: boolean;
18
18
  hovered: boolean;
19
- }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
19
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)" | "hsla(0, 0%, 100%, 0.25)";
@@ -1,2 +1,8 @@
1
- export declare const envVariablesObjectToArray: (envVariables: Record<string, string>) => [string, string][];
2
- export declare const envVariablesArrayToObject: (envVariables: [string, string][]) => Record<string, string>;
1
+ export declare const envVariablesObjectToArray: (envVariables: Record<string, string>) => [
2
+ string,
3
+ string
4
+ ][];
5
+ export declare const envVariablesArrayToObject: (envVariables: [
6
+ string,
7
+ string
8
+ ][]) => Record<string, string>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { Codec } from '@remotion/renderer';
3
2
  import type { RenderType } from '../components/RenderModal/RenderModalAdvanced';
4
3
  type Section = 'general' | 'picture' | 'advanced' | 'data' | 'gif' | 'audio';
@@ -34,6 +34,7 @@ export type RenderModalState = {
34
34
  initialOpenGlRenderer: OpenGlRenderer | null;
35
35
  initialIgnoreCertificateErrors: boolean;
36
36
  initialHeadless: boolean;
37
+ initialOffthreadVideoCacheSizeInBytes: number | null;
37
38
  minConcurrency: number;
38
39
  maxConcurrency: number;
39
40
  defaultProps: Record<string, unknown>;
@@ -35,4 +35,5 @@ export declare const getCliOptions: (options: {
35
35
  height: number | null;
36
36
  width: number | null;
37
37
  configFileImageFormat: "none" | "png" | "jpeg" | undefined;
38
+ offthreadVideoCacheSizeInBytes: number | null;
38
39
  }>;
@@ -123,6 +123,7 @@ const getCliOptions = async (options) => {
123
123
  height,
124
124
  width,
125
125
  configFileImageFormat: config_1.ConfigInternals.getUserPreferredVideoImageFormat(),
126
+ offthreadVideoCacheSizeInBytes: config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes(),
126
127
  };
127
128
  };
128
129
  exports.getCliOptions = getCliOptions;
@@ -1,6 +1,6 @@
1
1
  import type { BrowserExecutable, ChromiumOptions, HeadlessBrowser, LogLevel, RemotionServer } from '@remotion/renderer';
2
2
  import type { VideoConfig } from 'remotion';
3
- export declare const getCompositionId: ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, }: {
3
+ export declare const getCompositionId: ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, }: {
4
4
  args: string[];
5
5
  compositionIdFromUi: string | null;
6
6
  serializedInputPropsWithCustomSchema: string;
@@ -14,6 +14,7 @@ export declare const getCompositionId: ({ args, compositionIdFromUi, serializedI
14
14
  logLevel: LogLevel;
15
15
  indent: boolean;
16
16
  server: RemotionServer;
17
+ offthreadVideoCacheSizeInBytes: number | null;
17
18
  }) => Promise<{
18
19
  compositionId: string;
19
20
  reason: string;
@@ -16,7 +16,7 @@ const getCompName = ({ cliArgs, compositionIdFromUi, }) => {
16
16
  const [compName, ...remainingArgs] = cliArgs;
17
17
  return { compName, remainingArgs, reason: 'Passed as argument' };
18
18
  };
19
- const getCompositionId = async ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, }) => {
19
+ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputPropsWithCustomSchema, puppeteerInstance, envVariables, timeoutInMilliseconds, chromiumOptions, port, browserExecutable, serveUrlOrWebpackUrl, logLevel, indent, server, offthreadVideoCacheSizeInBytes, }) => {
20
20
  const { compName, remainingArgs, reason: compReason, } = getCompName({
21
21
  cliArgs: args,
22
22
  compositionIdFromUi,
@@ -36,6 +36,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
36
36
  server,
37
37
  indent,
38
38
  onBrowserLog: null,
39
+ offthreadVideoCacheSizeInBytes,
39
40
  });
40
41
  if (propsSize > 10000000) {
41
42
  log_1.Log.warnAdvanced({
@@ -67,6 +68,7 @@ const getCompositionId = async ({ args, compositionIdFromUi, serializedInputProp
67
68
  serveUrlOrWebpackUrl,
68
69
  onBrowserLog: null,
69
70
  serializedInputPropsWithCustomSchema,
71
+ offthreadVideoCacheSizeInBytes,
70
72
  });
71
73
  const { compositionId, reason } = await (0, show_compositions_picker_1.showSingleCompositionsPicker)(comps);
72
74
  if (compositionId && typeof compositionId === 'string') {
@@ -1,6 +1,6 @@
1
1
  import type { BrowserExecutable, ChromiumOptions, HeadlessBrowser, LogLevel, RemotionServer } from '@remotion/renderer';
2
2
  import type { VideoConfig } from 'remotion';
3
- export declare const getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }: {
3
+ export declare const getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
4
4
  height: number | null;
5
5
  width: number | null;
6
6
  args: string[];
@@ -16,6 +16,7 @@ export declare const getCompositionWithDimensionOverride: ({ height, width, args
16
16
  logLevel: LogLevel;
17
17
  serializedInputPropsWithCustomSchema: string;
18
18
  server: RemotionServer;
19
+ offthreadVideoCacheSizeInBytes: number | null;
19
20
  }) => Promise<{
20
21
  compositionId: string;
21
22
  reason: string;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getCompositionWithDimensionOverride = void 0;
4
4
  const get_composition_id_1 = require("./get-composition-id");
5
- const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }) => {
5
+ const getCompositionWithDimensionOverride = async ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }) => {
6
6
  const returnValue = await (0, get_composition_id_1.getCompositionId)({
7
7
  args,
8
8
  compositionIdFromUi,
@@ -17,6 +17,7 @@ const getCompositionWithDimensionOverride = async ({ height, width, args, compos
17
17
  puppeteerInstance,
18
18
  timeoutInMilliseconds,
19
19
  server,
20
+ offthreadVideoCacheSizeInBytes,
20
21
  });
21
22
  return {
22
23
  ...returnValue,
package/dist/index.d.ts CHANGED
@@ -120,6 +120,7 @@ export declare const CliInternals: {
120
120
  height: number | null;
121
121
  width: number | null;
122
122
  configFileImageFormat: "none" | "png" | "jpeg" | undefined;
123
+ offthreadVideoCacheSizeInBytes: number | null;
123
124
  }>;
124
125
  loadConfig: (remotionRoot: string) => Promise<string | null>;
125
126
  initializeCli: (remotionRoot: string) => Promise<void>;
@@ -179,6 +180,7 @@ export declare const CliInternals: {
179
180
  browser: string;
180
181
  "browser-args": string;
181
182
  "user-agent": string;
183
+ "offthreadvideo-cache-size-in-bytes": number | null;
182
184
  } & {
183
185
  _: string[];
184
186
  };
@@ -226,7 +228,7 @@ export declare const CliInternals: {
226
228
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
227
229
  logLevel: "verbose" | "info" | "warn" | "error";
228
230
  }) => boolean;
229
- getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, }: {
231
+ getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
230
232
  height: number | null;
231
233
  width: number | null;
232
234
  args: string[];
@@ -242,6 +244,7 @@ export declare const CliInternals: {
242
244
  logLevel: "verbose" | "info" | "warn" | "error";
243
245
  serializedInputPropsWithCustomSchema: string;
244
246
  server: import("@remotion/renderer").RemotionServer;
247
+ offthreadVideoCacheSizeInBytes: number | null;
245
248
  }) => Promise<{
246
249
  compositionId: string;
247
250
  reason: string;
@@ -5,6 +5,7 @@ exports.listOfRemotionPackages = void 0;
5
5
  exports.listOfRemotionPackages = [
6
6
  '@remotion/bundler',
7
7
  '@remotion/cli',
8
+ '@remotion/cloudrun',
8
9
  '@remotion/eslint-config',
9
10
  '@remotion/eslint-plugin',
10
11
  '@remotion/renderer',
@@ -1,4 +1,5 @@
1
1
  import type { AudioCodec, BrowserExecutable, Codec, OpenGlRenderer, PixelFormat, ProResProfile, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
+ import type { BrowserSafeApis } from '@remotion/renderer/client';
2
3
  type CommandLineOptions = {
3
4
  ['browser-executable']: BrowserExecutable;
4
5
  ['pixel-format']: PixelFormat;
@@ -12,6 +13,8 @@ type CommandLineOptions = {
12
13
  ['every-nth-frame']: number;
13
14
  ['number-of-gif-loops']: number;
14
15
  ['number-of-shared-audio-tags']: number;
16
+ [BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption
17
+ .cliFlag]: typeof BrowserSafeApis.options.offthreadVideoCacheSizeInBytesOption.type;
15
18
  version: string;
16
19
  codec: Codec;
17
20
  concurrency: number;
@@ -145,6 +145,9 @@ const parseCommandLine = () => {
145
145
  if (typeof exports.parsedCli['video-bitrate'] !== 'undefined') {
146
146
  config_1.Config.setVideoBitrate(exports.parsedCli['video-bitrate']);
147
147
  }
148
+ if (typeof exports.parsedCli['offthreadvideo-cache-size-in-bytes'] !== 'undefined') {
149
+ config_1.Config.setOffthreadVideoCacheSizeInBytes(exports.parsedCli['offthreadvideo-cache-size-in-bytes']);
150
+ }
148
151
  };
149
152
  exports.parseCommandLine = parseCommandLine;
150
153
  const quietFlagProvided = () => exports.parsedCli.quiet || exports.parsedCli.q;
@@ -1,6 +1,6 @@
1
1
  declare const editorNames: readonly ["atom", "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta", "brackets", "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl", "code", "code-insiders", "vscodium", "/Applications/AppCode.app/Contents/MacOS/appcode", "/Applications/CLion.app/Contents/MacOS/clion", "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea", "/Applications/PhpStorm.app/Contents/MacOS/phpstorm", "/Applications/PyCharm.app/Contents/MacOS/pycharm", "/Applications/PyCharm CE.app/Contents/MacOS/pycharm", "/Applications/RubyMine.app/Contents/MacOS/rubymine", "/Applications/WebStorm.app/Contents/MacOS/webstorm", "/Applications/GoLand.app/Contents/MacOS/goland", "/Applications/Rider.app/Contents/MacOS/rider", "mvim", "emacs", "gvim", "idea", "phpstorm", "pycharm", "rubymine", "subl", "sublime_text", "vim", "webstorm", "goland", "rider", "Brackets.exe", "Code.exe", "Code - Insiders.exe", "VSCodium.exe", "atom.exe", "sublime_text.exe", "notepad++.exe", "clion.exe", "clion64.exe", "idea.exe", "idea64.exe", "phpstorm.exe", "phpstorm64.exe", "pycharm.exe", "pycharm64.exe", "rubymine.exe", "rubymine64.exe", "webstorm.exe", "webstorm64.exe", "goland.exe", "goland64.exe", "rider.exe", "rider64.exe", "nano"];
2
2
  export declare const getDisplayNameForEditor: (editor: Editor | null) => string | null;
3
- type Editor = typeof editorNames[number];
3
+ type Editor = (typeof editorNames)[number];
4
4
  type ProcessAndCommand = {
5
5
  process: string;
6
6
  command: Editor;
@@ -29,6 +29,7 @@ type RenderJobDynamicFields = ({
29
29
  jpegQuality: number;
30
30
  frame: number;
31
31
  scale: number;
32
+ offthreadVideoCacheSizeInBytes: number | null;
32
33
  } & RenderJobDynamicStatus) | ({
33
34
  type: 'video';
34
35
  imageFormat: VideoImageFormat;
@@ -50,6 +51,7 @@ type RenderJobDynamicFields = ({
50
51
  everyNthFrame: number;
51
52
  numberOfGifLoops: number | null;
52
53
  disallowParallelEncoding: boolean;
54
+ offthreadVideoCacheSizeInBytes: number | null;
53
55
  } & RenderJobDynamicStatus);
54
56
  export type RenderJob = {
55
57
  startedAt: number;
@@ -108,6 +110,7 @@ export type AddRenderRequest = {
108
110
  delayRenderTimeout: number;
109
111
  envVariables: Record<string, string>;
110
112
  serializedInputPropsWithCustomSchema: string;
113
+ offthreadVideoCacheSizeInBytes: number | null;
111
114
  } & AddRenderRequestDynamicFields;
112
115
  export type RemoveRenderRequest = {
113
116
  jobId: string;
@@ -49,6 +49,7 @@ const makeRetryPayload = (job) => {
49
49
  defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
50
50
  inFrameMark: null,
51
51
  outFrameMark: null,
52
+ initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
52
53
  };
53
54
  }
54
55
  if (job.type === 'video') {
@@ -91,6 +92,7 @@ const makeRetryPayload = (job) => {
91
92
  defaultProps: remotion_1.Internals.deserializeJSONWithCustomFields(job.serializedInputPropsWithCustomSchema),
92
93
  inFrameMark: job.startFrame,
93
94
  outFrameMark: job.endFrame,
95
+ initialOffthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
94
96
  };
95
97
  }
96
98
  throw new Error(`Job ${JSON.stringify(job)} Not implemented`);
@@ -41,6 +41,7 @@ const processStill = async ({ job, remotionRoot, entryPoint, onProgress, addClea
41
41
  addCleanupCallback,
42
42
  cancelSignal: job.cancelToken.cancelSignal,
43
43
  outputLocationFromUi: job.outName,
44
+ offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
44
45
  });
45
46
  };
46
47
  exports.processStill = processStill;
@@ -59,6 +59,7 @@ const processVideoJob = async ({ job, remotionRoot, entryPoint, onProgress, addC
59
59
  numberOfGifLoops: job.numberOfGifLoops,
60
60
  audioCodec: job.audioCodec,
61
61
  disallowParallelEncoding: job.disallowParallelEncoding,
62
+ offthreadVideoCacheSizeInBytes: job.offthreadVideoCacheSizeInBytes,
62
63
  });
63
64
  };
64
65
  exports.processVideoJob = processVideoJob;
@@ -43,6 +43,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
43
43
  chromiumOptions: input.chromiumOptions,
44
44
  envVariables: input.envVariables,
45
45
  serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
46
+ offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
46
47
  },
47
48
  });
48
49
  }
@@ -67,6 +68,7 @@ const handleAddRender = ({ input, entryPoint, remotionRoot, }) => {
67
68
  delayRenderTimeout: input.delayRenderTimeout,
68
69
  envVariables: input.envVariables,
69
70
  serializedInputPropsWithCustomSchema: input.serializedInputPropsWithCustomSchema,
71
+ offthreadVideoCacheSizeInBytes: input.offthreadVideoCacheSizeInBytes,
70
72
  },
71
73
  entryPoint,
72
74
  remotionRoot,
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { IncomingMessage, ServerResponse } from 'node:http';
3
2
  import type { LiveEventsServer } from './live-events';
4
3
  export declare const handleRoutes: ({ hash, hashPrefix, request, response, liveEventsServer, getCurrentInputProps, getEnvVariables, remotionRoot, entryPoint, publicDir, }: {
@@ -53,6 +53,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
53
53
  const headless = config_1.ConfigInternals.getChromiumHeadlessMode();
54
54
  const ignoreCertificateErrors = config_1.ConfigInternals.getIgnoreCertificateErrors();
55
55
  const openGlRenderer = config_1.ConfigInternals.getChromiumOpenGlRenderer();
56
+ const offthreadVideoCacheSizeInBytes = config_1.ConfigInternals.getOffthreadVideoCacheSizeInBytes();
56
57
  const maxConcurrency = renderer_1.RenderInternals.getMaxConcurrency();
57
58
  const minConcurrency = renderer_1.RenderInternals.getMinConcurrency();
58
59
  response.setHeader('content-type', 'text/html');
@@ -97,6 +98,7 @@ const handleFallback = async ({ remotionRoot, hash, response, getCurrentInputPro
97
98
  headless,
98
99
  ignoreCertificateErrors,
99
100
  openGlRenderer,
101
+ offthreadVideoCacheSizeInBytes,
100
102
  },
101
103
  publicFolderExists: (0, node_fs_1.existsSync)(publicDir) ? publicDir : null,
102
104
  }));
@@ -1,7 +1,7 @@
1
1
  import type { AudioCodec, Browser, BrowserExecutable, CancelSignal, ChromiumOptions, Codec, Crf, FfmpegOverrideFn, FrameRange, LogLevel, PixelFormat, ProResProfile, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { Loop } from '../config/number-of-gif-loops';
3
3
  import type { JobProgressCallback } from '../preview-server/render-queue/job';
4
- export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }: {
4
+ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }: {
5
5
  remotionRoot: string;
6
6
  fullEntryPoint: string;
7
7
  entryPointReason: string;
@@ -45,4 +45,5 @@ export declare const renderVideoFlow: ({ remotionRoot, fullEntryPoint, indent, l
45
45
  numberOfGifLoops: Loop;
46
46
  audioCodec: AudioCodec | null;
47
47
  disallowParallelEncoding: boolean;
48
+ offthreadVideoCacheSizeInBytes: number | null;
48
49
  }) => Promise<void>;
@@ -47,7 +47,7 @@ const setup_cache_1 = require("../setup-cache");
47
47
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
48
48
  const truthy_1 = require("../truthy");
49
49
  const user_passed_output_location_1 = require("../user-passed-output-location");
50
- const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, }) => {
50
+ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel, browserExecutable, browser, chromiumOptions, scale, shouldOutputImageSequence, publicDir, envVariables, puppeteerTimeout, port, height, width, remainingArgs, compositionIdFromUi, entryPointReason, overwrite, quiet, concurrency, frameRange, everyNthFrame, outputLocationFromUI, jpegQuality, onProgress, addCleanupCallback, cancelSignal, crf, uiCodec, uiImageFormat, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, audioCodec, serializedInputPropsWithCustomSchema, disallowParallelEncoding, offthreadVideoCacheSizeInBytes, }) => {
51
51
  var _a;
52
52
  const downloads = [];
53
53
  if (browserExecutable) {
@@ -138,6 +138,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
138
138
  remotionRoot,
139
139
  logLevel,
140
140
  webpackConfigOrServeUrl: urlOrBundle,
141
+ offthreadVideoCacheSizeInBytes,
141
142
  });
142
143
  addCleanupCallback(() => server.closeServer(false));
143
144
  const { compositionId, config, reason, argsAfterComposition } = await (0, get_composition_with_dimension_override_1.getCompositionWithDimensionOverride)({
@@ -156,6 +157,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
156
157
  timeoutInMilliseconds: puppeteerTimeout,
157
158
  logLevel,
158
159
  server,
160
+ offthreadVideoCacheSizeInBytes,
159
161
  });
160
162
  const { codec, reason: codecReason } = (0, get_final_output_codec_1.getFinalOutputCodec)({
161
163
  cliFlag: parse_command_line_1.parsedCli.codec,
@@ -242,6 +244,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
242
244
  staticBase: null,
243
245
  data: config.props,
244
246
  }).serializedString,
247
+ offthreadVideoCacheSizeInBytes,
245
248
  });
246
249
  updateRenderProgress({ newline: true, printToConsole: true });
247
250
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`▶ ${absoluteOutputFile}`));
@@ -315,6 +318,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
315
318
  indent: undefined,
316
319
  staticBase: null,
317
320
  }).serializedString,
321
+ offthreadVideoCacheSizeInBytes,
318
322
  });
319
323
  updateRenderProgress({ newline: true, printToConsole: true });
320
324
  log_1.Log.infoAdvanced({ indent, logLevel }, chalk_1.chalk.blue(`${exists ? '○' : '+'} ${absoluteOutputFile}`));
@@ -1,6 +1,6 @@
1
1
  import type { Browser, BrowserExecutable, CancelSignal, ChromiumOptions, LogLevel, StillImageFormat } from '@remotion/renderer';
2
2
  import type { JobProgressCallback } from '../preview-server/render-queue/job';
3
- export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }: {
3
+ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }: {
4
4
  remotionRoot: string;
5
5
  fullEntryPoint: string;
6
6
  entryPointReason: string;
@@ -27,4 +27,5 @@ export declare const renderStillFlow: ({ remotionRoot, fullEntryPoint, entryPoin
27
27
  addCleanupCallback: (cb: () => void) => void;
28
28
  cancelSignal: CancelSignal | null;
29
29
  outputLocationFromUi: string | null;
30
+ offthreadVideoCacheSizeInBytes: number | null;
30
31
  }) => Promise<void>;
@@ -24,7 +24,7 @@ const setup_cache_1 = require("../setup-cache");
24
24
  const should_use_non_overlaying_logger_1 = require("../should-use-non-overlaying-logger");
25
25
  const truthy_1 = require("../truthy");
26
26
  const user_passed_output_location_1 = require("../user-passed-output-location");
27
- const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, }) => {
27
+ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason, remainingArgs, browser, browserExecutable, chromiumOptions, envVariables, height, serializedInputPropsWithCustomSchema, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, compositionIdFromUi, imageFormatFromUi, logLevel, onProgress, indent, addCleanupCallback, cancelSignal, outputLocationFromUi, offthreadVideoCacheSizeInBytes, }) => {
28
28
  var _a, _b;
29
29
  const aggregate = (0, progress_types_1.initialAggregateRenderProgress)();
30
30
  const updatesDontOverwrite = (0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel });
@@ -88,6 +88,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
88
88
  remotionRoot,
89
89
  logLevel,
90
90
  webpackConfigOrServeUrl: urlOrBundle,
91
+ offthreadVideoCacheSizeInBytes,
91
92
  });
92
93
  addCleanupCallback(() => server.closeServer(false));
93
94
  addCleanupCallback(() => cleanupBundle());
@@ -109,6 +110,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
109
110
  timeoutInMilliseconds: puppeteerTimeout,
110
111
  logLevel,
111
112
  server,
113
+ offthreadVideoCacheSizeInBytes,
112
114
  });
113
115
  const { format: imageFormat, source } = (0, determine_image_format_1.determineFinalStillImageFormat)({
114
116
  cliFlag: (_a = parse_command_line_1.parsedCli['image-format']) !== null && _a !== void 0 ? _a : null,
@@ -175,6 +177,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
175
177
  staticBase: null,
176
178
  data: config.props,
177
179
  }).serializedString,
180
+ offthreadVideoCacheSizeInBytes,
178
181
  });
179
182
  aggregate.rendering = {
180
183
  frames: 1,
package/dist/render.js CHANGED
@@ -25,7 +25,7 @@ const render = async (remotionRoot, args) => {
25
25
  log_1.Log.error('--frame flag was passed to the `render` command. This flag only works with the `still` command. Did you mean `--frames`? See reference: https://www.remotion.dev/docs/cli/');
26
26
  process.exit(1);
27
27
  }
28
- const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, } = await (0, get_cli_options_1.getCliOptions)({
28
+ const { concurrency, frameRange, shouldOutputImageSequence, overwrite, inputProps, envVariables, jpegQuality, browser, browserExecutable, scale, chromiumOptions, port, everyNthFrame, puppeteerTimeout, publicDir, height, width, crf, ffmpegOverride, audioBitrate, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, videoBitrate, numberOfGifLoops, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
29
29
  isLambda: false,
30
30
  type: 'series',
31
31
  remotionRoot,
@@ -81,6 +81,7 @@ const render = async (remotionRoot, args) => {
81
81
  numberOfGifLoops,
82
82
  audioCodec,
83
83
  disallowParallelEncoding: false,
84
+ offthreadVideoCacheSizeInBytes,
84
85
  });
85
86
  };
86
87
  exports.render = render;
package/dist/still.js CHANGED
@@ -22,7 +22,7 @@ const still = async (remotionRoot, args) => {
22
22
  log_1.Log.error('--frames flag was passed to the `still` command. This flag only works with the `render` command. Did you mean `--frame`? See reference: https://www.remotion.dev/docs/cli/');
23
23
  process.exit(1);
24
24
  }
25
- const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, } = await (0, get_cli_options_1.getCliOptions)({
25
+ const { browser, browserExecutable, chromiumOptions, envVariables, height, inputProps, overwrite, port, publicDir, puppeteerTimeout, jpegQuality, scale, stillFrame, width, logLevel, offthreadVideoCacheSizeInBytes, } = await (0, get_cli_options_1.getCliOptions)({
26
26
  isLambda: false,
27
27
  type: 'still',
28
28
  remotionRoot,
@@ -60,6 +60,7 @@ const still = async (remotionRoot, args) => {
60
60
  },
61
61
  cancelSignal: null,
62
62
  outputLocationFromUi: null,
63
+ offthreadVideoCacheSizeInBytes,
63
64
  });
64
65
  };
65
66
  exports.still = still;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.22",
3
+ "version": "4.0.23",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -35,11 +35,11 @@
35
35
  "prompts": "2.4.1",
36
36
  "semver": "7.5.3",
37
37
  "source-map": "0.6.1",
38
- "@remotion/bundler": "4.0.22",
39
- "@remotion/media-utils": "4.0.22",
40
- "@remotion/renderer": "4.0.22",
41
- "@remotion/player": "4.0.22",
42
- "remotion": "4.0.22"
38
+ "@remotion/renderer": "4.0.23",
39
+ "remotion": "4.0.23",
40
+ "@remotion/bundler": "4.0.23",
41
+ "@remotion/media-utils": "4.0.23",
42
+ "@remotion/player": "4.0.23"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -58,14 +58,14 @@
58
58
  "eslint-plugin-10x": "1.5.2",
59
59
  "eslint-plugin-react": "7.32.2",
60
60
  "eslint-plugin-react-hooks": "4.4.0",
61
- "prettier": "^2.7.1",
61
+ "prettier": "3.0.2",
62
62
  "prettier-plugin-organize-imports": "^3.2.2",
63
63
  "react": "^18.0.0",
64
64
  "react-dom": "^18.0.0",
65
65
  "vitest": "0.31.1",
66
66
  "zod": "^3.21.4",
67
- "@remotion/zod-types": "4.0.22",
68
- "@remotion/tailwind": "4.0.22"
67
+ "@remotion/zod-types": "4.0.23",
68
+ "@remotion/tailwind": "4.0.23"
69
69
  },
70
70
  "keywords": [
71
71
  "remotion",
@@ -1,3 +0,0 @@
1
- import type { PresetsProfile } from '@remotion/renderer';
2
- export declare const getPresetProfile: () => PresetsProfile | undefined;
3
- export declare const setPresetProfile: (profile: PresetsProfile | undefined) => void;