@remotion/cli 4.0.49 → 4.0.51

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.
@@ -3,7 +3,7 @@ export declare const getChromiumDisableWebSecurity: () => boolean;
3
3
  export declare const setChromiumDisableWebSecurity: (should: boolean) => void;
4
4
  export declare const getIgnoreCertificateErrors: () => boolean;
5
5
  export declare const setChromiumIgnoreCertificateErrors: (should: boolean) => void;
6
- export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | null;
6
+ export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
7
7
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
8
8
  export declare const getChromiumHeadlessMode: () => boolean;
9
9
  export declare const setChromiumHeadlessMode: (should: boolean) => void;
@@ -2,4 +2,4 @@ import type { StillImageFormat, VideoImageFormat } from '@remotion/renderer';
2
2
  export declare const setStillImageFormat: (format: StillImageFormat) => void;
3
3
  export declare const setVideoImageFormat: (format: VideoImageFormat) => void;
4
4
  export declare const getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
5
- export declare const getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
5
+ export declare const getUserPreferredVideoImageFormat: () => "png" | "jpeg" | "none" | undefined;
@@ -103,10 +103,10 @@ declare global {
103
103
  */
104
104
  readonly setChromiumHeadlessMode: (should: boolean) => void;
105
105
  /**
106
- * Set the OpenGL rendering backend for Chrome. Possible values: 'egl', 'angle', 'swiftshader', 'swangle' and 'vulkan'.
106
+ * Set the OpenGL rendering backend for Chrome. Possible values: 'egl', 'angle', 'swiftshader', 'swangle', 'vulkan' and 'angle-egl'.
107
107
  * Default: 'swangle' in Lambda, null elsewhere.
108
108
  */
109
- readonly setChromiumOpenGlRenderer: (renderer: 'swangle' | 'angle' | 'egl' | 'swiftshader' | 'vulkan') => void;
109
+ readonly setChromiumOpenGlRenderer: (renderer: 'swangle' | 'angle' | 'egl' | 'swiftshader' | 'vulkan' | 'angle-egl') => void;
110
110
  /**
111
111
  * Set the user agent for Chrome. Only works during rendering.
112
112
  * Default is the default user agent for Chrome
@@ -306,7 +306,7 @@ export declare const ConfigInternals: {
306
306
  getChromiumDisableWebSecurity: () => boolean;
307
307
  getIgnoreCertificateErrors: () => boolean;
308
308
  getChromiumHeadlessMode: () => boolean;
309
- getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | null;
309
+ getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl" | null;
310
310
  getEveryNthFrame: () => number;
311
311
  getConcurrency: () => string | number | null;
312
312
  getCurrentPuppeteerTimeout: () => number;
@@ -316,7 +316,7 @@ export declare const ConfigInternals: {
316
316
  getShouldOutputImageSequence: (frameRange: FrameRange | null) => boolean;
317
317
  getDotEnvLocation: () => string | null;
318
318
  getUserPreferredStillImageFormat: () => "png" | "jpeg" | "pdf" | "webp" | undefined;
319
- getUserPreferredVideoImageFormat: () => "none" | "png" | "jpeg" | undefined;
319
+ getUserPreferredVideoImageFormat: () => "png" | "jpeg" | "none" | undefined;
320
320
  getWebpackOverrideFn: () => WebpackOverrideFn;
321
321
  getWebpackCaching: () => boolean;
322
322
  getOutputLocation: () => string | null;
@@ -1 +1 @@
1
- export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn", setLogLevel: (newLogLevel: "error" | "verbose" | "info" | "warn") => void;
1
+ export declare const getLogLevel: () => "verbose" | "info" | "warn" | "error", setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
@@ -12,6 +12,6 @@ export declare const getInputBorderColor: ({ status, isFocused, isHovered, }: {
12
12
  status: 'error' | 'warning' | 'ok';
13
13
  isFocused: boolean;
14
14
  isHovered: boolean;
15
- }) => "#ff3232" | "hsla(0, 0%, 100%, 0.15)" | "#f1c40f" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)";
16
- export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | "rightAlign" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
15
+ }) => "hsla(0, 0%, 100%, 0.15)" | "rgba(0, 0, 0, 0.6)" | "rgba(255, 255, 255, 0.05)" | "#ff3232" | "#f1c40f";
16
+ export declare const RemotionInput: React.ForwardRefExoticComponent<Pick<Props, "status" | "key" | "rightAlign" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
17
17
  export {};
@@ -4,5 +4,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>
4
4
  status: RemInputStatus;
5
5
  name: string;
6
6
  };
7
- export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
7
+ export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Pick<Props, "status" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & React.RefAttributes<HTMLInputElement>>;
8
8
  export {};
@@ -3,5 +3,5 @@ type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLTextAreaEleme
3
3
  status: 'error' | 'warning' | 'ok';
4
4
  };
5
5
  export declare const inputBaseStyle: React.CSSProperties;
6
- export declare const RemTextarea: React.ForwardRefExoticComponent<Pick<Props, "key" | "status" | keyof React.InputHTMLAttributes<HTMLTextAreaElement>> & React.RefAttributes<HTMLTextAreaElement>>;
6
+ export declare const RemTextarea: React.ForwardRefExoticComponent<Pick<Props, "status" | "key" | keyof React.InputHTMLAttributes<HTMLTextAreaElement>> & React.RefAttributes<HTMLTextAreaElement>>;
7
7
  export {};
@@ -19,7 +19,15 @@ const container = {
19
19
  };
20
20
  const RenderModalAdvanced = ({ renderMode, maxConcurrency, minConcurrency, setConcurrency, concurrency, setVerboseLogging, verbose, delayRenderTimeout, setDelayRenderTimeout, disallowParallelEncoding, setDisallowParallelEncoding, setDisableWebSecurity, setIgnoreCertificateErrors, setHeadless, headless, ignoreCertificateErrors, disableWebSecurity, openGlOption, setOpenGlOption, setEnvVariables, envVariables, setx264Preset, x264Preset, codec, offthreadVideoCacheSizeInBytes, setOffthreadVideoCacheSizeInBytes, enableMultiProcessOnLinux, setChromiumMultiProcessOnLinux, }) => {
21
21
  const extendedOpenGlOptions = (0, react_1.useMemo)(() => {
22
- return ['angle', 'egl', 'swangle', 'swiftshader', 'vulkan', 'default'];
22
+ return [
23
+ 'angle',
24
+ 'egl',
25
+ 'swangle',
26
+ 'swiftshader',
27
+ 'vulkan',
28
+ 'angle-egl',
29
+ 'default',
30
+ ];
23
31
  }, []);
24
32
  const onVerboseLoggingChanged = (0, react_1.useCallback)((e) => {
25
33
  setVerboseLogging(e.target.checked);
@@ -1,2 +1,2 @@
1
1
  import type { Codec } from '@remotion/renderer';
2
- export declare const humanReadableCodec: (codec: Codec) => "AAC" | "MP3" | "GIF" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
2
+ export declare const humanReadableCodec: (codec: Codec) => "GIF" | "AAC" | "MP3" | "H.264" | "H.264 Matroska" | "H.265" | "ProRes" | "WebM VP8" | "WebM VP9" | "Waveform" | undefined;
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  export declare const inPointerHandle: React.RefObject<HTMLDivElement>;
3
3
  export declare const outPointerHandle: React.RefObject<HTMLDivElement>;
4
- export declare const TimelineInOutPointerHandle: React.FC<{
4
+ type Props = {
5
5
  dragging: boolean;
6
6
  type: 'in' | 'out';
7
7
  atFrame: number;
8
- }>;
8
+ };
9
+ export declare const TimelineInOutPointerHandle: React.FC<Props>;
10
+ export {};
@@ -17,12 +17,8 @@ const line = {
17
17
  };
18
18
  exports.inPointerHandle = (0, react_1.createRef)();
19
19
  exports.outPointerHandle = (0, react_1.createRef)();
20
- const TimelineInOutPointerHandle = ({ dragging, type, atFrame }) => {
21
- const timelineWidth = (0, react_1.useContext)(TimelineWidthProvider_1.TimelineWidthContext);
20
+ const InnerTimelineInOutPointerHandle = ({ atFrame, dragging, timelineWidth, type }) => {
22
21
  const videoConfig = (0, remotion_1.useVideoConfig)();
23
- if (timelineWidth === null) {
24
- throw new Error('Timeline width is null');
25
- }
26
22
  const style = (0, react_1.useMemo)(() => {
27
23
  return {
28
24
  ...line,
@@ -34,4 +30,13 @@ const TimelineInOutPointerHandle = ({ dragging, type, atFrame }) => {
34
30
  }, [atFrame, dragging, timelineWidth, videoConfig.durationInFrames]);
35
31
  return ((0, jsx_runtime_1.jsx)("div", { ref: type === 'in' ? exports.inPointerHandle : exports.outPointerHandle, style: style }));
36
32
  };
33
+ const TimelineInOutPointerHandle = ({ dragging, type, atFrame, }) => {
34
+ const timelineWidth = (0, react_1.useContext)(TimelineWidthProvider_1.TimelineWidthContext);
35
+ // When switching from a content which has no timeline (still or asset preview)
36
+ // the timeline first needs to mount, so we need to wait for the timeline width
37
+ if (timelineWidth === null) {
38
+ return null;
39
+ }
40
+ return ((0, jsx_runtime_1.jsx)(InnerTimelineInOutPointerHandle, { atFrame: atFrame, dragging: dragging, timelineWidth: timelineWidth, type: type }));
41
+ };
37
42
  exports.TimelineInOutPointerHandle = TimelineInOutPointerHandle;
@@ -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.25)" | "hsla(0, 0%, 100%, 0.15)" | "rgba(255, 255, 255, 0.06)";
19
+ }) => "transparent" | "hsla(0, 0%, 100%, 0.15)" | "hsla(0, 0%, 100%, 0.25)" | "rgba(255, 255, 255, 0.06)";
@@ -21,7 +21,7 @@ export declare const getCliOptions: (options: {
21
21
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
22
22
  stillFrame: number;
23
23
  browserExecutable: BrowserExecutable;
24
- logLevel: "error" | "verbose" | "info" | "warn";
24
+ logLevel: "verbose" | "info" | "warn" | "error";
25
25
  scale: number;
26
26
  chromiumOptions: ChromiumOptions;
27
27
  overwrite: boolean;
@@ -34,7 +34,7 @@ export declare const getCliOptions: (options: {
34
34
  videoBitrate: string | null;
35
35
  height: number | null;
36
36
  width: number | null;
37
- configFileImageFormat: "none" | "png" | "jpeg" | undefined;
37
+ configFileImageFormat: "png" | "jpeg" | "none" | undefined;
38
38
  offthreadVideoCacheSizeInBytes: number | null;
39
39
  deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
40
40
  colorSpace: "default" | "bt709";
package/dist/index.d.ts CHANGED
@@ -63,24 +63,24 @@ export declare const CliInternals: {
63
63
  verbose: (message?: any, ...optionalParams: any[]) => void;
64
64
  verboseAdvanced: (options: {
65
65
  indent: boolean;
66
- logLevel: "error" | "verbose" | "info" | "warn";
66
+ logLevel: "verbose" | "info" | "warn" | "error";
67
67
  } & {
68
68
  tag?: string | undefined;
69
69
  }, message?: any, ...optionalParams: any[]) => void;
70
70
  info: (message?: any, ...optionalParams: any[]) => void;
71
71
  infoAdvanced: (options: {
72
72
  indent: boolean;
73
- logLevel: "error" | "verbose" | "info" | "warn";
73
+ logLevel: "verbose" | "info" | "warn" | "error";
74
74
  }, message?: any, ...optionalParams: any[]) => void;
75
75
  warn: (message?: any, ...optionalParams: any[]) => void;
76
76
  warnAdvanced: (options: {
77
77
  indent: boolean;
78
- logLevel: "error" | "verbose" | "info" | "warn";
78
+ logLevel: "verbose" | "info" | "warn" | "error";
79
79
  }, message?: any, ...optionalParams: any[]) => void;
80
80
  error: (message?: any, ...optionalParams: any[]) => void;
81
81
  errorAdvanced: (options: {
82
82
  indent: boolean;
83
- logLevel: "error" | "verbose" | "info" | "warn";
83
+ logLevel: "verbose" | "info" | "warn" | "error";
84
84
  } & {
85
85
  tag?: string | undefined;
86
86
  }, message?: any, ...optionalParams: any[]) => void;
@@ -106,7 +106,7 @@ export declare const CliInternals: {
106
106
  numberOfGifLoops: import("./config/number-of-gif-loops").Loop;
107
107
  stillFrame: number;
108
108
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
109
- logLevel: "error" | "verbose" | "info" | "warn";
109
+ logLevel: "verbose" | "info" | "warn" | "error";
110
110
  scale: number;
111
111
  chromiumOptions: import("@remotion/renderer").ChromiumOptions;
112
112
  overwrite: boolean;
@@ -119,7 +119,7 @@ export declare const CliInternals: {
119
119
  videoBitrate: string | null;
120
120
  height: number | null;
121
121
  width: number | null;
122
- configFileImageFormat: "none" | "png" | "jpeg" | undefined;
122
+ configFileImageFormat: "png" | "jpeg" | "none" | undefined;
123
123
  offthreadVideoCacheSizeInBytes: number | null;
124
124
  deleteAfter: ("1-day" | "3-days" | "7-days" | "30-days") | null;
125
125
  colorSpace: "default" | "bt709";
@@ -131,7 +131,7 @@ export declare const CliInternals: {
131
131
  parsedCli: {
132
132
  "browser-executable": import("@remotion/renderer").BrowserExecutable;
133
133
  "pixel-format": "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
134
- "image-format": "none" | "png" | "jpeg" | "pdf" | "webp";
134
+ "image-format": "png" | "jpeg" | "pdf" | "webp" | "none";
135
135
  "prores-profile": "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy";
136
136
  "x264-preset": "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo";
137
137
  "bundle-cache": string;
@@ -175,7 +175,7 @@ export declare const CliInternals: {
175
175
  runs: number;
176
176
  concurrencies: string;
177
177
  "enforce-audio-track": boolean;
178
- gl: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan";
178
+ gl: "swangle" | "angle" | "egl" | "swiftshader" | "vulkan" | "angle-egl";
179
179
  "package-manager": string;
180
180
  "webpack-poll": number;
181
181
  "no-open": boolean;
@@ -190,7 +190,7 @@ export declare const CliInternals: {
190
190
  } & {
191
191
  _: string[];
192
192
  };
193
- printError: (err: Error, logLevel: "error" | "verbose" | "info" | "warn") => Promise<void>;
193
+ printError: (err: Error, logLevel: "verbose" | "info" | "warn" | "error") => Promise<void>;
194
194
  formatBytes: (number: number, options?: Intl.NumberFormatOptions & {
195
195
  locale: string;
196
196
  bits?: boolean | undefined;
@@ -202,7 +202,7 @@ export declare const CliInternals: {
202
202
  downloadName: string | null;
203
203
  outName: string | null;
204
204
  configImageFormat: "png" | "jpeg" | "pdf" | "webp" | null;
205
- cliFlag: "none" | "png" | "jpeg" | "pdf" | "webp" | null;
205
+ cliFlag: "png" | "jpeg" | "pdf" | "webp" | "none" | null;
206
206
  isLambda: boolean;
207
207
  fromUi: "png" | "jpeg" | "pdf" | "webp" | null;
208
208
  }) => {
@@ -217,8 +217,8 @@ export declare const CliInternals: {
217
217
  };
218
218
  getVideoImageFormat: ({ codec, uiImageFormat, }: {
219
219
  codec: import("@remotion/renderer").CodecOrUndefined;
220
- uiImageFormat: "none" | "png" | "jpeg" | null;
221
- }) => "none" | "png" | "jpeg";
220
+ uiImageFormat: "png" | "jpeg" | "none" | null;
221
+ }) => "png" | "jpeg" | "none";
222
222
  printCompositions: (compositions: import("remotion").VideoConfig[]) => void;
223
223
  getFinalOutputCodec: ({ cliFlag, configFile, downloadName, outName, uiCodec, }: {
224
224
  cliFlag: import("@remotion/renderer").CodecOrUndefined;
@@ -232,7 +232,7 @@ export declare const CliInternals: {
232
232
  };
233
233
  listOfRemotionPackages: string[];
234
234
  shouldUseNonOverlayingLogger: ({ logLevel, }: {
235
- logLevel: "error" | "verbose" | "info" | "warn";
235
+ logLevel: "verbose" | "info" | "warn" | "error";
236
236
  }) => boolean;
237
237
  getCompositionWithDimensionOverride: ({ height, width, args, compositionIdFromUi, chromiumOptions, envVariables, port, puppeteerInstance, timeoutInMilliseconds, browserExecutable, serveUrlOrWebpackUrl, indent, serializedInputPropsWithCustomSchema, logLevel, server, offthreadVideoCacheSizeInBytes, }: {
238
238
  height: number | null;
@@ -247,7 +247,7 @@ export declare const CliInternals: {
247
247
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
248
248
  serveUrlOrWebpackUrl: string;
249
249
  indent: boolean;
250
- logLevel: "error" | "verbose" | "info" | "warn";
250
+ logLevel: "verbose" | "info" | "warn" | "error";
251
251
  serializedInputPropsWithCustomSchema: string;
252
252
  server: import("@remotion/renderer").RemotionServer;
253
253
  offthreadVideoCacheSizeInBytes: number | null;
package/dist/log.d.ts CHANGED
@@ -2,24 +2,24 @@ export declare const Log: {
2
2
  verbose: (message?: any, ...optionalParams: any[]) => void;
3
3
  verboseAdvanced: (options: {
4
4
  indent: boolean;
5
- logLevel: "error" | "verbose" | "info" | "warn";
5
+ logLevel: "verbose" | "info" | "warn" | "error";
6
6
  } & {
7
7
  tag?: string | undefined;
8
8
  }, message?: any, ...optionalParams: any[]) => void;
9
9
  info: (message?: any, ...optionalParams: any[]) => void;
10
10
  infoAdvanced: (options: {
11
11
  indent: boolean;
12
- logLevel: "error" | "verbose" | "info" | "warn";
12
+ logLevel: "verbose" | "info" | "warn" | "error";
13
13
  }, message?: any, ...optionalParams: any[]) => void;
14
14
  warn: (message?: any, ...optionalParams: any[]) => void;
15
15
  warnAdvanced: (options: {
16
16
  indent: boolean;
17
- logLevel: "error" | "verbose" | "info" | "warn";
17
+ logLevel: "verbose" | "info" | "warn" | "error";
18
18
  }, message?: any, ...optionalParams: any[]) => void;
19
19
  error: (message?: any, ...optionalParams: any[]) => void;
20
20
  errorAdvanced: (options: {
21
21
  indent: boolean;
22
- logLevel: "error" | "verbose" | "info" | "warn";
22
+ logLevel: "verbose" | "info" | "warn" | "error";
23
23
  } & {
24
24
  tag?: string | undefined;
25
25
  }, message?: any, ...optionalParams: any[]) => void;
@@ -11,5 +11,5 @@ type Range = {
11
11
  type Ranges = Range[] & {
12
12
  type?: string;
13
13
  };
14
- export declare function parseRange(size: number, str: string | string[]): -1 | -2 | Ranges;
14
+ export declare function parseRange(size: number, str: string | string[]): -1 | Ranges | -2;
15
15
  export {};
@@ -79,8 +79,10 @@ const startServer = async (options) => {
79
79
  });
80
80
  const desiredPort = (_d = (_c = options === null || options === void 0 ? void 0 : options.port) !== null && _c !== void 0 ? _c : (process.env.PORT ? Number(process.env.PORT) : undefined)) !== null && _d !== void 0 ? _d : undefined;
81
81
  const maxTries = 5;
82
- // Default Node.js host, but explicity
83
- const host = '::';
82
+ const host = renderer_1.RenderInternals.isIpV6Supported() ? '::' : '0.0.0.0';
83
+ const hostsToTry = renderer_1.RenderInternals.isIpV6Supported()
84
+ ? ['::', '::1']
85
+ : ['0.0.0.0', '127.0.0.1'];
84
86
  for (let i = 0; i < maxTries; i++) {
85
87
  try {
86
88
  const selectedPort = await new Promise((resolve, reject) => {
@@ -88,7 +90,7 @@ const startServer = async (options) => {
88
90
  desiredPort,
89
91
  from: 3000,
90
92
  to: 3100,
91
- hostsToTry: ['::1', '::'],
93
+ hostsToTry,
92
94
  })
93
95
  .then(({ port, didUsePort }) => {
94
96
  server.listen({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "4.0.49",
3
+ "version": "4.0.51",
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.49",
39
- "@remotion/media-utils": "4.0.49",
40
- "@remotion/player": "4.0.49",
41
- "remotion": "4.0.49",
42
- "@remotion/renderer": "4.0.49"
38
+ "@remotion/bundler": "4.0.51",
39
+ "@remotion/media-utils": "4.0.51",
40
+ "@remotion/player": "4.0.51",
41
+ "@remotion/renderer": "4.0.51",
42
+ "remotion": "4.0.51"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
@@ -65,8 +65,8 @@
65
65
  "react-dom": "^18.0.0",
66
66
  "vitest": "0.31.1",
67
67
  "zod": "^3.22.3",
68
- "@remotion/zod-types": "4.0.49",
69
- "@remotion/tailwind": "4.0.49"
68
+ "@remotion/zod-types": "4.0.51",
69
+ "@remotion/tailwind": "4.0.51"
70
70
  },
71
71
  "keywords": [
72
72
  "remotion",