@remotion/cli 4.0.396 → 4.0.398

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.
package/dist/benchmark.js CHANGED
@@ -119,6 +119,10 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
119
119
  const publicDir = publicDirOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
120
120
  const chromeMode = chromeModeOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
121
121
  const darkMode = darkModeOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
122
+ const experimentalClientSideRenderingEnabled = config_1.ConfigInternals.getExperimentalClientSideRenderingEnabled();
123
+ if (experimentalClientSideRenderingEnabled) {
124
+ log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
125
+ }
122
126
  const chromiumOptions = {
123
127
  disableWebSecurity,
124
128
  enableMultiProcessOnLinux,
@@ -171,6 +175,7 @@ const benchmarkCommand = async (remotionRoot, args, logLevel) => {
171
175
  maxTimelineTracks: null,
172
176
  publicPath,
173
177
  audioLatencyHint: null,
178
+ experimentalClientSideRenderingEnabled,
174
179
  });
175
180
  (0, cleanup_before_quit_1.registerCleanupJob)(`Deleting bundle`, () => cleanupBundle());
176
181
  const puppeteerInstance = await browserInstance;
package/dist/bundle.js CHANGED
@@ -10,6 +10,7 @@ const studio_server_1 = require("@remotion/studio-server");
10
10
  const fs_1 = require("fs");
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const chalk_1 = require("./chalk");
13
+ const config_1 = require("./config");
13
14
  const entry_point_1 = require("./entry-point");
14
15
  const get_github_repository_1 = require("./get-github-repository");
15
16
  const log_1 = require("./log");
@@ -40,6 +41,10 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
40
41
  log_1.Log.error({ indent: false, logLevel }, 'See: https://www.remotion.dev/docs/terminology/entry-point');
41
42
  process.exit(1);
42
43
  }
44
+ const experimentalClientSideRenderingEnabled = config_1.ConfigInternals.getExperimentalClientSideRenderingEnabled();
45
+ if (experimentalClientSideRenderingEnabled) {
46
+ log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
47
+ }
43
48
  const publicPath = publicPathOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
44
49
  const publicDir = publicDirOption.getValue({ commandLine: parsed_cli_1.parsedCli }).value;
45
50
  const disableGitSource = disableGitSourceOption.getValue({
@@ -93,6 +98,7 @@ const bundleCommand = async (remotionRoot, args, logLevel) => {
93
98
  maxTimelineTracks: null,
94
99
  publicPath,
95
100
  audioLatencyHint,
101
+ experimentalClientSideRenderingEnabled,
96
102
  });
97
103
  log_1.Log.info({ indent: false, logLevel }, chalk_1.chalk.blue(`${existed ? '○' : '+'} ${output}`));
98
104
  if (!gitignoreFolder) {
@@ -6,6 +6,7 @@ const client_1 = require("@remotion/renderer/client");
6
6
  const no_react_1 = require("remotion/no-react");
7
7
  const browser_download_bar_1 = require("./browser-download-bar");
8
8
  const cleanup_before_quit_1 = require("./cleanup-before-quit");
9
+ const config_1 = require("./config");
9
10
  const preview_server_1 = require("./config/preview-server");
10
11
  const entry_point_1 = require("./entry-point");
11
12
  const get_cli_options_1 = require("./get-cli-options");
@@ -68,6 +69,10 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
68
69
  userAgent,
69
70
  darkMode,
70
71
  };
72
+ const experimentalClientSideRenderingEnabled = config_1.ConfigInternals.getExperimentalClientSideRenderingEnabled();
73
+ if (experimentalClientSideRenderingEnabled) {
74
+ log_1.Log.warn({ indent: false, logLevel }, 'Enabling WIP client-side rendering. Please see caveats on https://www.remotion.dev/docs/client-side-rendering/.');
75
+ }
71
76
  const { urlOrBundle: bundled, cleanup: cleanupBundle } = await (0, setup_cache_1.bundleOnCliOrTakeServeUrl)({
72
77
  remotionRoot,
73
78
  fullPath: file,
@@ -87,6 +92,7 @@ const listCompositionsCommand = async (remotionRoot, args, logLevel) => {
87
92
  maxTimelineTracks: null,
88
93
  publicPath,
89
94
  audioLatencyHint,
95
+ experimentalClientSideRenderingEnabled,
90
96
  });
91
97
  (0, cleanup_before_quit_1.registerCleanupJob)(`Cleanup bundle`, () => cleanupBundle());
92
98
  const compositions = await renderer_1.RenderInternals.internalGetCompositions({
@@ -327,6 +327,12 @@ declare global {
327
327
  * @param pattern The pattern string, e.g. 'frame_[frame].[ext]'.
328
328
  */
329
329
  readonly setImageSequencePattern: (pattern: string | null) => void;
330
+ /**
331
+ * Set the public license key for your company license.
332
+ * Obtain it from the "Usage" tab on https://remotion.pro
333
+ * Pass "free-license" if you are eligible for the free license.
334
+ */
335
+ readonly setPublicLicenseKey: (key: string | null) => void;
330
336
  }
331
337
  }
332
338
  type FlatConfig = RemotionConfigObject & RemotionBundlingOptions & {
@@ -43,7 +43,7 @@ const user_agent_1 = require("./user-agent");
43
43
  const webpack_caching_2 = require("./webpack-caching");
44
44
  const webpack_poll_1 = require("./webpack-poll");
45
45
  const width_1 = require("./width");
46
- const { offthreadVideoCacheSizeInBytesOption, x264Option, audioBitrateOption, videoBitrateOption, scaleOption, crfOption, jpegQualityOption, enforceAudioOption, overwriteOption, chromeModeOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, enableLambdaInsights, logLevelOption, delayRenderTimeoutInMillisecondsOption, publicDirOption, binariesDirectoryOption, preferLosslessOption, forSeamlessAacConcatenationOption, audioCodecOption, publicPathOption, hardwareAccelerationOption, audioLatencyHintOption, enableCrossSiteIsolationOption, imageSequencePatternOption, darkModeOption, } = client_1.BrowserSafeApis.options;
46
+ const { offthreadVideoCacheSizeInBytesOption, x264Option, audioBitrateOption, videoBitrateOption, scaleOption, crfOption, jpegQualityOption, enforceAudioOption, overwriteOption, chromeModeOption, mutedOption, videoCodecOption, colorSpaceOption, disallowParallelEncodingOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, glOption, headlessOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, enableLambdaInsights, logLevelOption, delayRenderTimeoutInMillisecondsOption, publicDirOption, binariesDirectoryOption, preferLosslessOption, forSeamlessAacConcatenationOption, audioCodecOption, publicPathOption, hardwareAccelerationOption, audioLatencyHintOption, enableCrossSiteIsolationOption, imageSequencePatternOption, darkModeOption, publicLicenseKeyOption, } = client_1.BrowserSafeApis.options;
47
47
  exports.Config = {
48
48
  get Bundling() {
49
49
  throw new Error('The config format has changed. Change `Config.Bundling.*()` calls to `Config.*()` in your config file.');
@@ -141,6 +141,7 @@ exports.Config = {
141
141
  setImageSequencePattern: imageSequencePatternOption.setConfig,
142
142
  setHardwareAcceleration: hardwareAccelerationOption.setConfig,
143
143
  setEnableCrossSiteIsolation: enableCrossSiteIsolationOption.setConfig,
144
+ setPublicLicenseKey: publicLicenseKeyOption.setConfig,
144
145
  };
145
146
  exports.ConfigInternals = {
146
147
  getRange: frame_range_1.getRange,
@@ -5,7 +5,7 @@ const renderer_1 = require("@remotion/renderer");
5
5
  const client_1 = require("@remotion/renderer/client");
6
6
  const config_1 = require("./config");
7
7
  const parsed_cli_1 = require("./parsed-cli");
8
- const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, logLevelOption, delayRenderTimeoutInMillisecondsOption, headlessOption, forSeamlessAacConcatenationOption, audioCodecOption, hardwareAccelerationOption, chromeModeOption, mediaCacheSizeInBytesOption, darkModeOption, } = client_1.BrowserSafeApis.options;
8
+ const { x264Option, audioBitrateOption, offthreadVideoCacheSizeInBytesOption, offthreadVideoThreadsOption, scaleOption, jpegQualityOption, videoBitrateOption, enforceAudioOption, mutedOption, colorSpaceOption, enableMultiprocessOnLinuxOption, glOption, numberOfGifLoopsOption, beepOnFinishOption, encodingMaxRateOption, encodingBufferSizeOption, reproOption, logLevelOption, delayRenderTimeoutInMillisecondsOption, headlessOption, forSeamlessAacConcatenationOption, audioCodecOption, hardwareAccelerationOption, chromeModeOption, mediaCacheSizeInBytesOption, darkModeOption, publicLicenseKeyOption, } = client_1.BrowserSafeApis.options;
9
9
  const getRenderDefaults = () => {
10
10
  var _a;
11
11
  const defaultJpegQuality = jpegQualityOption.getValue({
@@ -85,6 +85,9 @@ const getRenderDefaults = () => {
85
85
  const mediaCacheSizeInBytes = mediaCacheSizeInBytesOption.getValue({
86
86
  commandLine: parsed_cli_1.parsedCli,
87
87
  }).value;
88
+ const publicLicenseKey = publicLicenseKeyOption.getValue({
89
+ commandLine: parsed_cli_1.parsedCli,
90
+ }).value;
88
91
  const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
89
92
  const stillImageFormat = config_1.ConfigInternals.getUserPreferredStillImageFormat();
90
93
  const videoImageFormat = config_1.ConfigInternals.getUserPreferredVideoImageFormat();
@@ -137,6 +140,7 @@ const getRenderDefaults = () => {
137
140
  hardwareAcceleration,
138
141
  chromeMode,
139
142
  mediaCacheSizeInBytes,
143
+ publicLicenseKey,
140
144
  };
141
145
  };
142
146
  exports.getRenderDefaults = getRenderDefaults;
@@ -300,6 +300,20 @@ declare const beepOnFinishOption: {
300
300
  value: boolean;
301
301
  };
302
302
  setConfig: (value: boolean) => void;
303
+ }, publicLicenseKeyOption: {
304
+ name: string;
305
+ cliFlag: "public-license-key";
306
+ description: () => import("react/jsx-runtime").JSX.Element;
307
+ ssrName: "publicLicenseKey";
308
+ docLink: string;
309
+ getValue: ({ commandLine }: {
310
+ commandLine: Record<string, unknown>;
311
+ }) => {
312
+ source: string;
313
+ value: string | null;
314
+ };
315
+ setConfig: (value: string | null) => void;
316
+ type: string | null;
303
317
  };
304
318
  export type CommandLineOptions = {
305
319
  ['browser-executable']: BrowserExecutable;
@@ -372,6 +386,8 @@ export type CommandLineOptions = {
372
386
  [enableMultiprocessOnLinuxOption.cliFlag]: TypeOfOption<typeof enableMultiprocessOnLinuxOption>;
373
387
  repro: boolean;
374
388
  'image-sequence-pattern': string;
389
+ 'license-key': string;
390
+ [publicLicenseKeyOption.cliFlag]: string;
375
391
  };
376
392
  export declare const parseCommandLine: () => void;
377
393
  export {};
@@ -5,7 +5,7 @@ const client_1 = require("@remotion/renderer/client");
5
5
  const config_1 = require("./config");
6
6
  const log_1 = require("./log");
7
7
  const parsed_cli_1 = require("./parsed-cli");
8
- const { beepOnFinishOption, colorSpaceOption, disallowParallelEncodingOption, offthreadVideoCacheSizeInBytesOption, encodingBufferSizeOption, encodingMaxRateOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, numberOfGifLoopsOption, x264Option, enforceAudioOption, jpegQualityOption, audioBitrateOption, videoBitrateOption, audioCodecOption, publicPathOption, audioLatencyHintOption, darkModeOption, } = client_1.BrowserSafeApis.options;
8
+ const { beepOnFinishOption, colorSpaceOption, disallowParallelEncodingOption, offthreadVideoCacheSizeInBytesOption, encodingBufferSizeOption, encodingMaxRateOption, deleteAfterOption, folderExpiryOption, enableMultiprocessOnLinuxOption, numberOfGifLoopsOption, x264Option, enforceAudioOption, jpegQualityOption, audioBitrateOption, videoBitrateOption, audioCodecOption, publicPathOption, audioLatencyHintOption, darkModeOption, publicLicenseKeyOption, } = client_1.BrowserSafeApis.options;
9
9
  const parseCommandLine = () => {
10
10
  if (parsed_cli_1.parsedCli['pixel-format']) {
11
11
  config_1.Config.setPixelFormat(parsed_cli_1.parsedCli['pixel-format']);
@@ -55,6 +55,13 @@ const parseCommandLine = () => {
55
55
  if (parsed_cli_1.parsedCli['prores-profile']) {
56
56
  config_1.Config.setProResProfile(String(parsed_cli_1.parsedCli['prores-profile']));
57
57
  }
58
+ if (parsed_cli_1.parsedCli['license-key'] &&
59
+ parsed_cli_1.parsedCli['license-key'].startsWith('rm_pub_')) {
60
+ config_1.Config.setPublicLicenseKey(parsed_cli_1.parsedCli['license-key']);
61
+ }
62
+ if (parsed_cli_1.parsedCli['public-license-key']) {
63
+ config_1.Config.setPublicLicenseKey(parsed_cli_1.parsedCli['public-license-key']);
64
+ }
58
65
  if (typeof parsed_cli_1.parsedCli.quality !== 'undefined') {
59
66
  log_1.Log.warn({ indent: false, logLevel: 'info' }, 'The --quality flag has been renamed to --jpeg-quality instead.');
60
67
  config_1.Config.setJpegQuality(parsed_cli_1.parsedCli.quality);
@@ -160,6 +160,7 @@ const renderVideoFlow = async ({ remotionRoot, fullEntryPoint, indent, logLevel,
160
160
  maxTimelineTracks: null,
161
161
  publicPath,
162
162
  audioLatencyHint,
163
+ experimentalClientSideRenderingEnabled: false,
163
164
  });
164
165
  addCleanupCallback(`Cleanup bundle`, () => cleanupBundle());
165
166
  const onDownload = (0, make_on_download_1.makeOnDownload)({
@@ -101,6 +101,7 @@ const renderStillFlow = async ({ remotionRoot, fullEntryPoint, entryPointReason,
101
101
  maxTimelineTracks: null,
102
102
  publicPath,
103
103
  audioLatencyHint,
104
+ experimentalClientSideRenderingEnabled: false,
104
105
  });
105
106
  const server = await renderer_1.RenderInternals.prepareServer({
106
107
  offthreadVideoThreads: offthreadVideoThreads !== null && offthreadVideoThreads !== void 0 ? offthreadVideoThreads : renderer_1.RenderInternals.DEFAULT_RENDER_FRAMES_OFFTHREAD_VIDEO_THREADS,
@@ -1,7 +1,7 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
2
  import type { BundlingState, CopyingState } from '@remotion/studio-server';
3
3
  import type { GitSource } from '@remotion/studio-shared';
4
- export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, }: {
4
+ export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, experimentalClientSideRenderingEnabled, }: {
5
5
  fullPath: string;
6
6
  remotionRoot: string;
7
7
  publicDir: string | null;
@@ -20,11 +20,12 @@ export declare const bundleOnCliOrTakeServeUrl: ({ fullPath, remotionRoot, publi
20
20
  maxTimelineTracks: number | null;
21
21
  publicPath: string | null;
22
22
  audioLatencyHint: AudioContextLatencyCategory | null;
23
+ experimentalClientSideRenderingEnabled: boolean;
23
24
  }) => Promise<{
24
25
  urlOrBundle: string;
25
26
  cleanup: () => void;
26
27
  }>;
27
- export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, }: {
28
+ export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, experimentalClientSideRenderingEnabled, }: {
28
29
  fullPath: string;
29
30
  remotionRoot: string;
30
31
  publicDir: string | null;
@@ -43,4 +44,5 @@ export declare const bundleOnCli: ({ fullPath, remotionRoot, publicDir, onProgre
43
44
  bufferStateDelayInMilliseconds: number | null;
44
45
  publicPath: string | null;
45
46
  audioLatencyHint: AudioContextLatencyCategory | null;
47
+ experimentalClientSideRenderingEnabled: boolean;
46
48
  }) => Promise<string>;
@@ -9,10 +9,11 @@ const renderer_1 = require("@remotion/renderer");
9
9
  const fs_1 = require("fs");
10
10
  const path_1 = __importDefault(require("path"));
11
11
  const config_1 = require("./config");
12
+ const get_render_defaults_1 = require("./get-render-defaults");
12
13
  const log_1 = require("./log");
13
14
  const progress_bar_1 = require("./progress-bar");
14
15
  const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger");
15
- const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, }) => {
16
+ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, onProgress, indentOutput, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, bufferStateDelayInMilliseconds, maxTimelineTracks, publicPath, audioLatencyHint, experimentalClientSideRenderingEnabled, }) => {
16
17
  const isServeUrl = renderer_1.RenderInternals.isServeUrl(fullPath);
17
18
  const isBundle = (0, fs_1.existsSync)(fullPath) && (0, fs_1.existsSync)(path_1.default.join(fullPath, 'index.html'));
18
19
  if (isServeUrl || isBundle) {
@@ -47,6 +48,7 @@ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, on
47
48
  maxTimelineTracks,
48
49
  publicPath,
49
50
  audioLatencyHint,
51
+ experimentalClientSideRenderingEnabled,
50
52
  });
51
53
  return {
52
54
  urlOrBundle: bundled,
@@ -54,7 +56,7 @@ const bundleOnCliOrTakeServeUrl = async ({ fullPath, remotionRoot, publicDir, on
54
56
  };
55
57
  };
56
58
  exports.bundleOnCliOrTakeServeUrl = bundleOnCliOrTakeServeUrl;
57
- const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, }) => {
59
+ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallback, indent, logLevel, onDirectoryCreated, quietProgress, quietFlag, outDir, gitSource, maxTimelineTracks, bufferStateDelayInMilliseconds, publicPath, audioLatencyHint, experimentalClientSideRenderingEnabled, }) => {
58
60
  var _a;
59
61
  const shouldCache = config_1.ConfigInternals.getWebpackCaching();
60
62
  const symlinkState = {
@@ -115,6 +117,7 @@ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallba
115
117
  resolvedRemotionRoot: remotionRoot,
116
118
  bufferStateDelayInMilliseconds,
117
119
  maxTimelineTracks,
120
+ experimentalClientSideRenderingEnabled,
118
121
  });
119
122
  const cacheExistedBefore = bundler_1.BundlerInternals.cacheExists(remotionRoot, 'production', hash);
120
123
  if (cacheExistedBefore !== 'does-not-exist' && !shouldCache) {
@@ -152,6 +155,8 @@ const bundleOnCli = async ({ fullPath, remotionRoot, publicDir, onProgressCallba
152
155
  maxTimelineTracks,
153
156
  bufferStateDelayInMilliseconds,
154
157
  audioLatencyHint,
158
+ experimentalClientSideRenderingEnabled,
159
+ renderDefaults: (0, get_render_defaults_1.getRenderDefaults)(),
155
160
  });
156
161
  bundlingState = {
157
162
  progress: 1,
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/cli"
4
4
  },
5
5
  "name": "@remotion/cli",
6
- "version": "4.0.396",
6
+ "version": "4.0.398",
7
7
  "description": "Control Remotion features using the `npx remotion` command",
8
8
  "main": "dist/index.js",
9
9
  "sideEffects": false,
@@ -36,17 +36,17 @@
36
36
  "author": "Jonny Burger <jonny@remotion.dev>",
37
37
  "license": "SEE LICENSE IN LICENSE.md",
38
38
  "dependencies": {
39
- "@remotion/bundler": "4.0.396",
40
- "@remotion/media-utils": "4.0.396",
41
- "@remotion/player": "4.0.396",
42
- "@remotion/renderer": "4.0.396",
43
- "@remotion/studio-shared": "4.0.396",
44
- "@remotion/studio-server": "4.0.396",
45
- "@remotion/studio": "4.0.396",
39
+ "@remotion/bundler": "4.0.398",
40
+ "@remotion/media-utils": "4.0.398",
41
+ "@remotion/player": "4.0.398",
42
+ "@remotion/renderer": "4.0.398",
43
+ "@remotion/studio-shared": "4.0.398",
44
+ "@remotion/studio-server": "4.0.398",
45
+ "@remotion/studio": "4.0.398",
46
46
  "dotenv": "9.0.2",
47
47
  "minimist": "1.2.6",
48
48
  "prompts": "2.4.2",
49
- "remotion": "4.0.396"
49
+ "remotion": "4.0.398"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "react": ">=16.8.0",
@@ -57,14 +57,14 @@
57
57
  "@types/prompts": "^2.4.1",
58
58
  "@types/prettier": "^2.7.2",
59
59
  "@types/node": "20.12.14",
60
- "@remotion/zod-types": "4.0.396",
61
- "@remotion/tailwind-v4": "4.0.396",
62
- "@remotion/enable-scss": "4.0.396",
63
- "@remotion/skia": "4.0.396",
60
+ "@remotion/zod-types": "4.0.398",
61
+ "@remotion/tailwind-v4": "4.0.398",
62
+ "@remotion/enable-scss": "4.0.398",
63
+ "@remotion/skia": "4.0.398",
64
64
  "react": "19.2.3",
65
65
  "react-dom": "19.2.3",
66
66
  "zod": "3.22.3",
67
- "@remotion/eslint-config-internal": "4.0.396",
67
+ "@remotion/eslint-config-internal": "4.0.398",
68
68
  "eslint": "9.19.0"
69
69
  },
70
70
  "keywords": [