@remotion/studio-server 4.0.525 → 4.0.526

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.
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.applyCodemodToFile = exports.resolveFilePathFromSymbolicatedStack = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
+ const studio_codemods_1 = require("@remotion/studio-codemods");
5
6
  const resolve_file_inside_project_1 = require("../helpers/resolve-file-inside-project");
6
7
  const can_update_default_props_1 = require("../preview-server/routes/can-update-default-props");
7
- const duplicate_composition_1 = require("./duplicate-composition");
8
8
  const resolveFilePathFromSymbolicatedStack = (remotionRoot, stack) => {
9
9
  if (!stack.originalFileName) {
10
10
  throw new Error('Could not determine the file where this composition is defined');
@@ -20,20 +20,13 @@ const resolveFilePathFromSymbolicatedStack = (remotionRoot, stack) => {
20
20
  return absolutePath;
21
21
  };
22
22
  exports.resolveFilePathFromSymbolicatedStack = resolveFilePathFromSymbolicatedStack;
23
- const applyCodemodToFile = async ({ filePath, codeMod, }) => {
23
+ const applyCodemodToFile = ({ filePath, codeMod, }) => {
24
24
  (0, can_update_default_props_1.checkIfTypeScriptFile)(filePath);
25
25
  const input = (0, node_fs_1.readFileSync)(filePath, 'utf-8');
26
- const { newContents } = (0, duplicate_composition_1.parseAndApplyCodemod)({
26
+ const { newContents } = (0, studio_codemods_1.parseAndApplyCodemod)({
27
27
  codeMod,
28
28
  input,
29
29
  });
30
- if (codeMod.type === 'new-composition' ||
31
- codeMod.type === 'duplicate-composition' ||
32
- codeMod.type === 'rename-composition' ||
33
- codeMod.type === 'delete-composition') {
34
- return newContents;
35
- }
36
- const formatted = await (0, duplicate_composition_1.formatOutput)(newContents);
37
- return formatted;
30
+ return Promise.resolve(newContents);
38
31
  };
39
32
  exports.applyCodemodToFile = applyCodemodToFile;
@@ -1,15 +1 @@
1
- import type { ReorderSequencePosition } from '@remotion/studio-shared';
2
- import type { SequenceNodePath } from 'remotion';
3
- export declare const reorderSequence: ({ input, sourceNodePath, targetNodePath, position, prettierConfigOverride, }: {
4
- input: string;
5
- sourceNodePath: SequenceNodePath;
6
- targetNodePath: SequenceNodePath;
7
- position: ReorderSequencePosition;
8
- prettierConfigOverride?: Record<string, unknown> | null | undefined;
9
- }) => Promise<{
10
- output: string;
11
- formatted: boolean;
12
- sequenceLabel: string;
13
- logLine: number;
14
- nodePathRemappings: import("@remotion/studio-shared").SequenceNodePathRemapping[];
15
- }>;
1
+ export { reorderSequence } from '@remotion/studio-codemods';
@@ -2,16 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.reorderSequence = void 0;
4
4
  const studio_codemods_1 = require("@remotion/studio-codemods");
5
- const format_file_content_1 = require("./format-file-content");
6
- const reorderSequence = ({ input, sourceNodePath, targetNodePath, position, prettierConfigOverride, }) => (0, studio_codemods_1.reorderSequence)({
7
- input,
8
- sourceNodePath,
9
- targetNodePath,
10
- position,
11
- formatFile: ({ contents, prettierConfigOverride: override }) => (0, format_file_content_1.formatFileContent)({
12
- input: contents,
13
- prettierConfigOverride: override,
14
- }),
15
- prettierConfigOverride,
16
- });
17
- exports.reorderSequence = reorderSequence;
5
+ Object.defineProperty(exports, "reorderSequence", { enumerable: true, get: function () { return studio_codemods_1.reorderSequence; } });
@@ -1,12 +1 @@
1
- import type { SequenceNodePath } from 'remotion';
2
- export declare const splitVideoFromAudio: ({ input, nodePath, prettierConfigOverride, }: {
3
- input: string;
4
- nodePath: SequenceNodePath;
5
- prettierConfigOverride?: Record<string, unknown> | null | undefined;
6
- }) => Promise<{
7
- output: string;
8
- formatted: boolean;
9
- nodeLabel: string;
10
- logLine: number;
11
- nodePathRemappings: import("@remotion/studio-shared").SequenceNodePathRemapping[];
12
- }>;
1
+ export { splitVideoFromAudio } from '@remotion/studio-codemods';
@@ -2,14 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.splitVideoFromAudio = void 0;
4
4
  const studio_codemods_1 = require("@remotion/studio-codemods");
5
- const format_file_content_1 = require("./format-file-content");
6
- const splitVideoFromAudio = ({ input, nodePath, prettierConfigOverride, }) => (0, studio_codemods_1.splitVideoFromAudio)({
7
- input,
8
- nodePath,
9
- formatFile: ({ contents, prettierConfigOverride: override }) => (0, format_file_content_1.formatFileContent)({
10
- input: contents,
11
- prettierConfigOverride: override,
12
- }),
13
- prettierConfigOverride,
14
- });
15
- exports.splitVideoFromAudio = splitVideoFromAudio;
5
+ Object.defineProperty(exports, "splitVideoFromAudio", { enumerable: true, get: function () { return studio_codemods_1.splitVideoFromAudio; } });
@@ -1,11 +1 @@
1
- import type { EnumPath } from '@remotion/studio-shared';
2
- export { getCompositionDefaultPropsLine } from '@remotion/studio-codemods';
3
- export declare const updateDefaultProps: ({ input, compositionId, newDefaultProps, enumPaths, }: {
4
- input: string;
5
- compositionId: string;
6
- newDefaultProps: Record<string, unknown>;
7
- enumPaths: EnumPath[];
8
- }) => Promise<{
9
- output: string;
10
- formatted: boolean;
11
- }>;
1
+ export { getCompositionDefaultPropsLine, updateDefaultProps, } from '@remotion/studio-codemods';
@@ -2,15 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateDefaultProps = exports.getCompositionDefaultPropsLine = void 0;
4
4
  const studio_codemods_1 = require("@remotion/studio-codemods");
5
- const format_inline_content_1 = require("./format-inline-content");
6
- const studio_codemods_2 = require("@remotion/studio-codemods");
7
- Object.defineProperty(exports, "getCompositionDefaultPropsLine", { enumerable: true, get: function () { return studio_codemods_2.getCompositionDefaultPropsLine; } });
8
- const formatInline = ({ inlineContent, linePrefix, endOfLine }) => (0, format_inline_content_1.formatInlineContent)({ inlineContent, linePrefix, endOfLine });
9
- const updateDefaultProps = ({ input, compositionId, newDefaultProps, enumPaths, }) => (0, studio_codemods_1.updateDefaultProps)({
10
- input,
11
- compositionId,
12
- newDefaultProps,
13
- enumPaths,
14
- formatInline,
15
- });
16
- exports.updateDefaultProps = updateDefaultProps;
5
+ Object.defineProperty(exports, "getCompositionDefaultPropsLine", { enumerable: true, get: function () { return studio_codemods_1.getCompositionDefaultPropsLine; } });
6
+ Object.defineProperty(exports, "updateDefaultProps", { enumerable: true, get: function () { return studio_codemods_1.updateDefaultProps; } });
package/dist/index.d.ts CHANGED
@@ -99,16 +99,14 @@ export declare const StudioServerInternals: {
99
99
  filePath: string;
100
100
  codeMod: import("@remotion/studio-shared").RecastCodemod;
101
101
  }) => Promise<string>;
102
- formatOutput: (tsContent: string) => Promise<string>;
103
102
  updateDefaultProps: ({ input, compositionId, newDefaultProps, enumPaths, }: {
104
103
  input: string;
105
104
  compositionId: string;
106
105
  newDefaultProps: Record<string, unknown>;
107
106
  enumPaths: import("@remotion/studio-shared").EnumPath[];
108
- }) => Promise<{
107
+ }) => {
109
108
  output: string;
110
- formatted: boolean;
111
- }>;
109
+ };
112
110
  getInstalledDependencies: (remotionRoot: string) => {
113
111
  dependencies: string[];
114
112
  devDependencies: string[];
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@ exports.StudioServerInternals = exports.remotionSkillNames = exports.parseRemoti
4
4
  const studio_shared_1 = require("@remotion/studio-shared");
5
5
  const studio_shared_2 = require("@remotion/studio-shared");
6
6
  Object.defineProperty(exports, "getDefaultOutLocation", { enumerable: true, get: function () { return studio_shared_2.getDefaultOutLocation; } });
7
+ const studio_codemods_1 = require("@remotion/studio-codemods");
7
8
  const ansi_diff_1 = require("./ansi-diff");
8
9
  const client_render_queue_1 = require("./client-render-queue");
9
10
  const apply_codemod_to_file_1 = require("./codemods/apply-codemod-to-file");
10
- const duplicate_composition_1 = require("./codemods/duplicate-composition");
11
11
  const update_default_props_1 = require("./codemods/update-default-props");
12
12
  const detect_outdated_remotion_skills_1 = require("./detect-outdated-remotion-skills");
13
13
  Object.defineProperty(exports, "detectOutdatedRemotionSkills", { enumerable: true, get: function () { return detect_outdated_remotion_skills_1.detectOutdatedRemotionSkills; } });
@@ -42,9 +42,8 @@ exports.StudioServerInternals = {
42
42
  setFileWatcherRegistry: file_watcher_1.setFileWatcherRegistry,
43
43
  AnsiDiff: ansi_diff_1.AnsiDiff,
44
44
  formatBytes: studio_shared_1.formatBytes,
45
- parseAndApplyCodemod: duplicate_composition_1.parseAndApplyCodemod,
45
+ parseAndApplyCodemod: studio_codemods_1.parseAndApplyCodemod,
46
46
  applyCodemodToFile: apply_codemod_to_file_1.applyCodemodToFile,
47
- formatOutput: duplicate_composition_1.formatOutput,
48
47
  updateDefaultProps: update_default_props_1.updateDefaultProps,
49
48
  getInstalledDependencies: get_installed_dependencies_1.getInstalledDependencies,
50
49
  getInstalledDependenciesWithVersions: get_installed_dependencies_1.getInstalledDependenciesWithVersions,
@@ -45,7 +45,6 @@ const format_log_file_location_1 = require("../format-log-file-location");
45
45
  const live_events_1 = require("../live-events");
46
46
  const undo_stack_1 = require("../undo-stack");
47
47
  const watch_ignore_next_change_1 = require("../watch-ignore-next-change");
48
- const log_update_1 = require("./log-updates/log-update");
49
48
  const source_file_write_queue_1 = require("./source-file-write-queue");
50
49
  const getVisualControlChangeLine = (file, changeId) => {
51
50
  let line = 1;
@@ -68,7 +67,7 @@ const getVisualControlChangeLine = (file, changeId) => {
68
67
  return line;
69
68
  };
70
69
  const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot, logLevel }) => {
71
- return (0, source_file_write_queue_1.withSourceFileWriteQueue)(async () => {
70
+ return (0, source_file_write_queue_1.withSourceFileWriteQueue)(() => {
72
71
  renderer_1.RenderInternals.Log.trace({ indent: false, logLevel }, `[apply-visual-control] Received request for ${fileName} with ${changes.length} changes`);
73
72
  const { absolutePath } = (0, resolve_file_inside_project_1.resolveFileInsideProject)({
74
73
  remotionRoot,
@@ -78,9 +77,9 @@ const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot,
78
77
  const fileContents = (0, node_fs_1.readFileSync)(absolutePath, 'utf-8');
79
78
  const ast = (0, parse_ast_1.parseAst)(fileContents);
80
79
  const logLine = changes.length > 0 ? getVisualControlChangeLine(ast, changes[0].id) : 1;
81
- const { newAst, changesMade } = (0, studio_codemods_1.applyCodemod)({
82
- file: ast,
83
- codeMod: {
80
+ const { newContents: output, changesMade } = (0, studio_codemods_1.applyVisualControl)({
81
+ input: fileContents,
82
+ transformation: {
84
83
  type: 'apply-visual-control',
85
84
  changes,
86
85
  },
@@ -88,28 +87,6 @@ const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot,
88
87
  if (changesMade.length === 0) {
89
88
  throw new Error('No changes were made to the file');
90
89
  }
91
- let output = (0, parse_ast_1.serializeAst)(newAst);
92
- let formatted = false;
93
- try {
94
- const prettier = await Promise.resolve().then(() => __importStar(require('prettier')));
95
- const { format, resolveConfig, resolveConfigFile } = prettier;
96
- const configFilePath = await resolveConfigFile();
97
- if (configFilePath) {
98
- const prettierConfig = await resolveConfig(configFilePath);
99
- if (prettierConfig) {
100
- output = await format(output, {
101
- ...prettierConfig,
102
- filepath: 'test.tsx',
103
- plugins: [],
104
- endOfLine: 'auto',
105
- });
106
- formatted = true;
107
- }
108
- }
109
- }
110
- catch (_a) {
111
- // Prettier not available, use unformatted output
112
- }
113
90
  (0, undo_stack_1.pushToUndoStack)({
114
91
  filePath: absolutePath,
115
92
  oldContents: fileContents,
@@ -151,13 +128,8 @@ const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot,
151
128
  line: logLine,
152
129
  });
153
130
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Applied visual control changes`);
154
- if (!formatted) {
155
- (0, log_update_1.warnAboutPrettierOnce)(logLevel);
156
- }
157
131
  (0, undo_stack_1.printUndoHint)(logLevel);
158
- return {
159
- success: true,
160
- };
132
+ return Promise.resolve({ success: true });
161
133
  });
162
134
  };
163
135
  exports.applyVisualControlHandler = applyVisualControlHandler;
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.duplicateJsxNodeHandler = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
5
  const renderer_1 = require("@remotion/renderer");
6
- const duplicate_jsx_node_1 = require("../../codemods/duplicate-jsx-node");
6
+ const studio_codemods_1 = require("@remotion/studio-codemods");
7
7
  const file_watcher_1 = require("../../file-watcher");
8
8
  const resolve_file_inside_project_1 = require("../../helpers/resolve-file-inside-project");
9
9
  const format_log_file_location_1 = require("../format-log-file-location");
10
10
  const sequence_node_path_mutation_1 = require("../sequence-node-path-mutation");
11
11
  const undo_stack_1 = require("../undo-stack");
12
- const log_update_1 = require("./log-updates/log-update");
13
12
  const source_file_write_queue_1 = require("./source-file-write-queue");
14
13
  const duplicateJsxNodeHandler = ({ input: { nodes }, remotionRoot, logLevel }) => {
15
14
  return (0, source_file_write_queue_1.withSourceFileWriteQueue)(async () => {
@@ -32,7 +31,7 @@ const duplicateJsxNodeHandler = ({ input: { nodes }, remotionRoot, logLevel }) =
32
31
  action: 'modify',
33
32
  });
34
33
  const fileContents = (0, node_fs_1.readFileSync)(absolutePath, 'utf-8');
35
- const { output, formatted, nodeLabels, logLines, nodePathRemappings } = await (0, duplicate_jsx_node_1.duplicateJsxNodes)({
34
+ const { output, nodeLabels, logLines, nodePathRemappings } = await (0, studio_codemods_1.duplicateJsxNodes)({
36
35
  input: fileContents,
37
36
  nodePaths: fileItems.map((item) => item.nodePath),
38
37
  });
@@ -40,7 +39,6 @@ const duplicateJsxNodeHandler = ({ input: { nodes }, remotionRoot, logLevel }) =
40
39
  absolutePath,
41
40
  fileRelativeToRoot,
42
41
  fileContents,
43
- formatted,
44
42
  logLine: Math.min(...logLines),
45
43
  nodeLabels,
46
44
  nodePathRemappings,
@@ -89,10 +87,7 @@ const duplicateJsxNodeHandler = ({ input: { nodes }, remotionRoot, logLevel }) =
89
87
  ? update.nodeLabels[0]
90
88
  : `${update.nodeLabels.length} JSX nodes`;
91
89
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Duplicated ${fileDescription}`);
92
- if (!update.formatted) {
93
- (0, log_update_1.warnAboutPrettierOnce)(logLevel);
94
- }
95
- renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `[duplicate-jsx-node] Wrote ${update.fileRelativeToRoot}${update.formatted ? ' (formatted)' : ''}`);
90
+ renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `[duplicate-jsx-node] Wrote ${update.fileRelativeToRoot}`);
96
91
  }
97
92
  (0, undo_stack_1.printUndoHint)(logLevel);
98
93
  return {
@@ -10,7 +10,6 @@ const format_log_file_location_1 = require("../format-log-file-location");
10
10
  const sequence_node_path_mutation_1 = require("../sequence-node-path-mutation");
11
11
  const undo_stack_1 = require("../undo-stack");
12
12
  const formatting_1 = require("./log-updates/formatting");
13
- const log_update_1 = require("./log-updates/log-update");
14
13
  const source_file_write_queue_1 = require("./source-file-write-queue");
15
14
  const reorderSequenceHandler = ({ input: { fileName, sourceNodePath, targetNodePath, position, clientId }, remotionRoot, logLevel, }) => {
16
15
  return (0, source_file_write_queue_1.withSourceFileWriteQueue)(async () => {
@@ -22,7 +21,7 @@ const reorderSequenceHandler = ({ input: { fileName, sourceNodePath, targetNodeP
22
21
  action: 'modify',
23
22
  });
24
23
  const fileContents = (0, node_fs_1.readFileSync)(absolutePath, 'utf-8');
25
- const { output, formatted, sequenceLabel, logLine, nodePathRemappings } = await (0, reorder_sequence_1.reorderSequence)({
24
+ const { output, sequenceLabel, logLine, nodePathRemappings } = await (0, reorder_sequence_1.reorderSequence)({
26
25
  input: fileContents,
27
26
  sourceNodePath: sourceNodePath.nodePath,
28
27
  targetNodePath: targetNodePath.nodePath,
@@ -62,10 +61,7 @@ const reorderSequenceHandler = ({ input: { fileName, sourceNodePath, targetNodeP
62
61
  line: logLine,
63
62
  });
64
63
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Reordered ${(0, formatting_1.attrName)(sequenceLabel)}`);
65
- if (!formatted) {
66
- (0, log_update_1.warnAboutPrettierOnce)(logLevel);
67
- }
68
- renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `[reorder-sequence] Wrote ${fileRelativeToRoot}${formatted ? ' (formatted)' : ''}`);
64
+ renderer_1.RenderInternals.Log.verbose({ indent: false, logLevel }, `[reorder-sequence] Wrote ${fileRelativeToRoot}`);
69
65
  (0, undo_stack_1.printUndoHint)(logLevel);
70
66
  return {
71
67
  success: true,
@@ -10,7 +10,6 @@ const project_info_1 = require("../project-info");
10
10
  const undo_stack_1 = require("../undo-stack");
11
11
  const watch_ignore_next_change_1 = require("../watch-ignore-next-change");
12
12
  const can_update_default_props_1 = require("./can-update-default-props");
13
- const log_update_1 = require("./log-updates/log-update");
14
13
  const source_file_write_queue_1 = require("./source-file-write-queue");
15
14
  const updateDefaultPropsHandler = ({ input: { compositionId, defaultProps, enumPaths }, remotionRoot, entryPoint, logLevel, }) => {
16
15
  return (0, source_file_write_queue_1.withSourceFileWriteQueue)(async () => {
@@ -26,7 +25,7 @@ const updateDefaultPropsHandler = ({ input: { compositionId, defaultProps, enumP
26
25
  input: fileContents,
27
26
  compositionId,
28
27
  });
29
- const { output, formatted } = await (0, update_default_props_1.updateDefaultProps)({
28
+ const { output } = (0, update_default_props_1.updateDefaultProps)({
30
29
  compositionId,
31
30
  input: fileContents,
32
31
  newDefaultProps: JSON.parse(defaultProps),
@@ -61,9 +60,6 @@ const updateDefaultPropsHandler = ({ input: { compositionId, defaultProps, enumP
61
60
  line: logLine,
62
61
  });
63
62
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Updated default props for "${compositionId}"`);
64
- if (!formatted) {
65
- (0, log_update_1.warnAboutPrettierOnce)(logLevel);
66
- }
67
63
  (0, undo_stack_1.printUndoHint)(logLevel);
68
64
  return {
69
65
  success: true,
@@ -4,6 +4,7 @@ import type { GitSource, RenderDefaults, RenderJob, StudioRuntimeConfig } from '
4
4
  import type { QueueMethods } from './preview-server/api-types';
5
5
  export type StartStudioResult = {
6
6
  type: 'restarted';
7
+ port: number;
7
8
  } | {
8
9
  type: 'already-running';
9
10
  } | {
@@ -154,6 +154,6 @@ const startStudio = async ({ browserArgs, browserFlag, shouldOpenBrowser, fullEn
154
154
  return { type: 'shutdown' };
155
155
  }
156
156
  renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, renderer_1.RenderInternals.chalk.blue('Restarting server...'));
157
- return { type: 'restarted' };
157
+ return { type: 'restarted', port };
158
158
  };
159
159
  exports.startStudio = startStudio;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio-server"
4
4
  },
5
5
  "name": "@remotion/studio-server",
6
- "version": "4.0.525",
6
+ "version": "4.0.526",
7
7
  "description": "Run a Remotion Studio with a server backend",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "access": "public"
24
24
  },
25
25
  "dependencies": {
26
- "@remotion/studio-protocol": "4.0.525",
26
+ "@remotion/studio-protocol": "4.0.526",
27
27
  "@babel/types": "7.24.0",
28
28
  "@babel/parser": "7.24.1",
29
29
  "@svgr/core": "8.1.0",
@@ -31,13 +31,12 @@
31
31
  "kiwi-schema": "0.5.0",
32
32
  "semver": "7.5.3",
33
33
  "zod": "4.5.4",
34
- "prettier": "3.8.1",
35
- "remotion": "4.0.525",
34
+ "remotion": "4.0.526",
36
35
  "recast": "0.23.21",
37
- "@remotion/bundler": "4.0.525",
38
- "@remotion/renderer": "4.0.525",
39
- "@remotion/studio-codemods": "4.0.525",
40
- "@remotion/studio-shared": "4.0.525",
36
+ "@remotion/bundler": "4.0.526",
37
+ "@remotion/renderer": "4.0.526",
38
+ "@remotion/studio-codemods": "4.0.526",
39
+ "@remotion/studio-shared": "4.0.526",
41
40
  "memfs": "3.4.3",
42
41
  "open": "8.4.2"
43
42
  },
@@ -45,8 +44,9 @@
45
44
  "ast-types": "0.16.1",
46
45
  "react": "19.2.3",
47
46
  "@types/semver": "7.5.3",
48
- "@remotion/eslint-config-internal": "4.0.525",
47
+ "@remotion/eslint-config-internal": "4.0.526",
49
48
  "eslint": "9.19.0",
49
+ "prettier": "3.8.1",
50
50
  "@types/node": "20.12.14",
51
51
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
52
52
  },