@remotion/studio-shared 4.0.459 → 4.0.461

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.
@@ -0,0 +1,3 @@
1
+ import type { CodeValues } from 'remotion';
2
+ export declare const getCodeValues: (codeValues: CodeValues, overrideId: string) => Record<string, import("remotion").CanUpdateSequencePropStatus>;
3
+ export type GetCodeValuesType = typeof getCodeValues;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCodeValues = void 0;
4
+ const getCodeValues = (codeValues, overrideId) => {
5
+ var _a;
6
+ return (_a = codeValues[overrideId]) !== null && _a !== void 0 ? _a : undefined;
7
+ };
8
+ exports.getCodeValues = getCodeValues;
@@ -1,13 +1,13 @@
1
1
  import type { AudioCodec, ChromeMode, Codec, ColorSpace, LogLevel, PixelFormat, StillImageFormat, VideoImageFormat, X264Preset } from '@remotion/renderer';
2
2
  import type { HardwareAccelerationOption } from '@remotion/renderer/client';
3
- import type { _InternalTypes, SequenceSchema } from 'remotion';
4
- import type { CanUpdateSequencePropStatus } from 'remotion';
3
+ import type { _InternalTypes, CanUpdateSequencePropsResponseFalse, CanUpdateSequencePropsResponseTrue, SequenceSchema } from 'remotion';
4
+ import type { CanUpdateSequencePropsResponse } from 'remotion';
5
+ import type { SequenceNodePath } from 'remotion';
5
6
  import type { RecastCodemod, VisualControlChange } from './codemods';
6
7
  import type { PackageManager } from './package-manager';
7
8
  import type { ProjectInfo } from './project-info';
8
9
  import type { RequiredChromiumOptions } from './render-job';
9
10
  import type { EnumPath } from './stringify-default-props';
10
- export type SequenceNodePath = Array<string | number>;
11
11
  export type OpenInFileExplorerRequest = {
12
12
  directory: string;
13
13
  };
@@ -172,22 +172,19 @@ export type SubscribeToSequencePropsRequest = {
172
172
  schema: SequenceSchema;
173
173
  clientId: string;
174
174
  };
175
- export type SubscribeToSequencePropsResponse = CanUpdateSequencePropsResponse;
175
+ export type SubscribeToSequencePropsResponse = {
176
+ success: true;
177
+ status: CanUpdateSequencePropsResponseTrue;
178
+ nodePath: SequenceNodePath;
179
+ } | {
180
+ success: false;
181
+ status: CanUpdateSequencePropsResponseFalse;
182
+ };
176
183
  export type UnsubscribeFromSequencePropsRequest = {
177
184
  fileName: string;
178
185
  nodePath: SequenceNodePath;
179
186
  clientId: string;
180
187
  };
181
- export type CanUpdateSequencePropsResponse = {
182
- canUpdate: true;
183
- props: Record<string, CanUpdateSequencePropStatus>;
184
- nodePath: SequenceNodePath;
185
- /** True when the JSX is inside a `.map()` callback (list iteration). */
186
- jsxInMapCallback: boolean;
187
- } | {
188
- canUpdate: false;
189
- reason: string;
190
- };
191
188
  export type SaveSequencePropsRequest = {
192
189
  fileName: string;
193
190
  nodePath: SequenceNodePath;
@@ -196,14 +193,6 @@ export type SaveSequencePropsRequest = {
196
193
  defaultValue: string | null;
197
194
  schema: SequenceSchema;
198
195
  };
199
- export type SaveSequencePropsResponse = {
200
- success: true;
201
- newStatus: CanUpdateSequencePropsResponse;
202
- } | {
203
- success: false;
204
- reason: string;
205
- stack: string;
206
- };
207
196
  export type DeleteJsxNodeRequest = {
208
197
  fileName: string;
209
198
  nodePath: SequenceNodePath;
@@ -271,7 +260,7 @@ export type ApiRoutes = {
271
260
  '/api/unsubscribe-from-default-props': ReqAndRes<UnsubscribeFromDefaultPropsRequest, undefined>;
272
261
  '/api/subscribe-to-sequence-props': ReqAndRes<SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse>;
273
262
  '/api/unsubscribe-from-sequence-props': ReqAndRes<UnsubscribeFromSequencePropsRequest, undefined>;
274
- '/api/save-sequence-props': ReqAndRes<SaveSequencePropsRequest, SaveSequencePropsResponse>;
263
+ '/api/save-sequence-props': ReqAndRes<SaveSequencePropsRequest, CanUpdateSequencePropsResponse>;
275
264
  '/api/delete-jsx-node': ReqAndRes<DeleteJsxNodeRequest, DeleteJsxNodeResponse>;
276
265
  '/api/duplicate-jsx-node': ReqAndRes<DuplicateJsxNodeRequest, DuplicateJsxNodeResponse>;
277
266
  '/api/update-available': ReqAndRes<UpdateAvailableRequest, UpdateAvailableResponse>;
@@ -1,5 +1,6 @@
1
1
  import type { StaticFile } from 'remotion';
2
- import type { CanUpdateDefaultPropsResponse, CanUpdateSequencePropsResponse, SequenceNodePath } from './api-requests';
2
+ import type { SequenceNodePath, CanUpdateSequencePropsResponse } from 'remotion';
3
+ import type { CanUpdateDefaultPropsResponse } from './api-requests';
3
4
  import type { HotMiddlewareMessage } from './hot-middleware';
4
5
  import type { CompletedClientRender, RenderJob } from './render-job';
5
6
  export type EventSourceEvent = {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { splitAnsi, stripAnsi } from './ansi';
2
- export { AddRenderRequest, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CanUpdateSequencePropsResponse, CancelRenderRequest, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UnsubscribeFromSequencePropsRequest, CancelRenderResponse, CopyStillToClipboardRequest, DeleteJsxNodeRequest, DeleteJsxNodeResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, DeleteStaticFileRequest, DeleteStaticFileResponse, InstallPackageRequest, InstallPackageResponse, OpenInFileExplorerRequest, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RestartStudioRequest, RestartStudioResponse, SaveSequencePropsRequest, SaveSequencePropsResponse, SequenceNodePath, SimpleDiff, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, } from './api-requests';
2
+ export { AddRenderRequest, ApiRoutes, ApplyCodemodRequest, ApplyCodemodResponse, ApplyVisualControlRequest, ApplyVisualControlResponse, CanUpdateDefaultPropsResponse, CanUpdateSequencePropsRequest, CancelRenderRequest, SubscribeToSequencePropsRequest, SubscribeToSequencePropsResponse, UnsubscribeFromSequencePropsRequest, CancelRenderResponse, CopyStillToClipboardRequest, DeleteJsxNodeRequest, DeleteJsxNodeResponse, DuplicateJsxNodeRequest, DuplicateJsxNodeResponse, DeleteStaticFileRequest, DeleteStaticFileResponse, InstallPackageRequest, InstallPackageResponse, OpenInFileExplorerRequest, ProjectInfoRequest, ProjectInfoResponse, RedoRequest, RedoResponse, RemoveRenderRequest, RestartStudioRequest, RestartStudioResponse, SaveSequencePropsRequest, SimpleDiff, SubscribeToDefaultPropsRequest, SubscribeToDefaultPropsResponse, SubscribeToFileExistenceRequest, SubscribeToFileExistenceResponse, UndoRequest, UndoResponse, UnsubscribeFromDefaultPropsRequest, UnsubscribeFromFileExistenceRequest, UpdateAvailableRequest, UpdateAvailableResponse, UpdateDefaultPropsRequest, UpdateDefaultPropsResponse, } from './api-requests';
3
3
  export type { ApplyVisualControlCodemod, RecastCodemod } from './codemods';
4
4
  export { DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS } from './default-buffer-state-delay-in-milliseconds';
5
5
  export { EventSourceEvent } from './event-source-event';
@@ -18,7 +18,7 @@ export { AggregateRenderProgress, ArtifactProgress, BrowserDownloadState, Browse
18
18
  export type { CompletedClientRender } from './render-job';
19
19
  export { SCHEMA_FIELD_ROW_HEIGHT, UNSUPPORTED_FIELD_ROW_HEIGHT, getFieldsToShow, } from './schema-field-info';
20
20
  export type { CodeValues, DragOverrides, SchemaFieldInfo, SequenceControls, } from './schema-field-info';
21
- export { SOURCE_MAP_ENDPOINT } from './source-map-endpoint';
22
21
  export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from './stack-types';
23
22
  export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
24
23
  export type { VisualControlChange } from './codemods';
24
+ export { optimisticUpdateForCodeValues } from './optimistic-update-for-code-values';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stringifyDefaultProps = exports.SOURCE_MAP_ENDPOINT = exports.getFieldsToShow = exports.UNSUPPORTED_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.formatBytes = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.stripAnsi = exports.splitAnsi = void 0;
3
+ exports.optimisticUpdateForCodeValues = exports.stringifyDefaultProps = exports.getFieldsToShow = exports.UNSUPPORTED_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.packages = exports.installableMap = exports.extraPackages = exports.descriptions = exports.apiDocs = exports.DEFAULT_TIMELINE_TRACKS = exports.hotMiddlewareOptions = exports.getProjectName = exports.getLocationFromBuildError = exports.getDefaultOutLocation = exports.formatBytes = exports.DEFAULT_BUFFER_STATE_DELAY_IN_MILLISECONDS = exports.stripAnsi = exports.splitAnsi = void 0;
4
4
  const ansi_1 = require("./ansi");
5
5
  Object.defineProperty(exports, "splitAnsi", { enumerable: true, get: function () { return ansi_1.splitAnsi; } });
6
6
  Object.defineProperty(exports, "stripAnsi", { enumerable: true, get: function () { return ansi_1.stripAnsi; } });
@@ -28,7 +28,7 @@ const schema_field_info_1 = require("./schema-field-info");
28
28
  Object.defineProperty(exports, "SCHEMA_FIELD_ROW_HEIGHT", { enumerable: true, get: function () { return schema_field_info_1.SCHEMA_FIELD_ROW_HEIGHT; } });
29
29
  Object.defineProperty(exports, "UNSUPPORTED_FIELD_ROW_HEIGHT", { enumerable: true, get: function () { return schema_field_info_1.UNSUPPORTED_FIELD_ROW_HEIGHT; } });
30
30
  Object.defineProperty(exports, "getFieldsToShow", { enumerable: true, get: function () { return schema_field_info_1.getFieldsToShow; } });
31
- const source_map_endpoint_1 = require("./source-map-endpoint");
32
- Object.defineProperty(exports, "SOURCE_MAP_ENDPOINT", { enumerable: true, get: function () { return source_map_endpoint_1.SOURCE_MAP_ENDPOINT; } });
33
31
  const stringify_default_props_1 = require("./stringify-default-props");
34
32
  Object.defineProperty(exports, "stringifyDefaultProps", { enumerable: true, get: function () { return stringify_default_props_1.stringifyDefaultProps; } });
33
+ const optimistic_update_for_code_values_1 = require("./optimistic-update-for-code-values");
34
+ Object.defineProperty(exports, "optimisticUpdateForCodeValues", { enumerable: true, get: function () { return optimistic_update_for_code_values_1.optimisticUpdateForCodeValues; } });
@@ -0,0 +1,7 @@
1
+ import { type CanUpdateSequencePropsResponse, type SequenceSchema } from 'remotion';
2
+ export declare const optimisticUpdateForCodeValues: ({ previous, fieldKey, value, schema, }: {
3
+ previous: CanUpdateSequencePropsResponse;
4
+ fieldKey: string;
5
+ value: unknown;
6
+ schema: SequenceSchema;
7
+ }) => CanUpdateSequencePropsResponse;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.optimisticUpdateForCodeValues = void 0;
4
+ const no_react_1 = require("remotion/no-react");
5
+ const optimisticUpdateForCodeValues = ({ previous, fieldKey, value, schema, }) => {
6
+ var _a;
7
+ if (!previous.canUpdate) {
8
+ return previous;
9
+ }
10
+ const props = {
11
+ ...previous.props,
12
+ [fieldKey]: { canUpdate: true, codeValue: value },
13
+ };
14
+ if (((_a = schema[fieldKey]) === null || _a === void 0 ? void 0 : _a.type) === 'enum') {
15
+ const propsToDelete = no_react_1.NoReactInternals.findPropsToDelete({
16
+ schema,
17
+ key: fieldKey,
18
+ value,
19
+ });
20
+ for (const propToDelete of propsToDelete) {
21
+ delete props[propToDelete];
22
+ }
23
+ }
24
+ return {
25
+ canUpdate: true,
26
+ props,
27
+ };
28
+ };
29
+ exports.optimisticUpdateForCodeValues = optimisticUpdateForCodeValues;
@@ -1,4 +1,4 @@
1
- export declare const packages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "cli", "cloudrun", "codex-plugin", "compositor-darwin-arm64", "compositor-darwin-x64", "compositor-linux-arm64-gnu", "compositor-linux-arm64-musl", "compositor-linux-x64-gnu", "compositor-linux-x64-musl", "compositor-win32-x64-msvc", "core", "create-video", "discord-poster", "docusaurus-plugin", "docs", "enable-scss", "eslint-config", "eslint-config-flat", "eslint-config-internal", "eslint-plugin", "example-without-zod", "example", "fonts", "gif", "google-fonts", "install-whisper-cpp", "it-tests", "react18-tests", "lambda-go-example", "lambda-go", "lambda-php", "lambda-ruby", "lambda-python", "lambda", "lambda-client", "layout-utils", "rounded-text-box", "licensing", "lottie", "mcp", "media-utils", "motion-blur", "noise", "paths", "player-a11y", "player-example", "player", "preload", "renderer", "rive", "shapes", "skia", "promo-pages", "streaming", "serverless", "serverless-client", "skills", "studio-server", "studio-shared", "studio", "tailwind", "tailwind-v4", "test-utils", "three", "transitions", "media-parser", "zod-types", "zod-types-v3", "webcodecs", "convert", "captions", "openai-whisper", "elevenlabs", "compositor", "example-videos", "whisper-web", "media", "web-renderer", "design", "light-leaks", "starburst", "vercel", "sfx", "effects"];
1
+ export declare const packages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "cli", "cloudrun", "codex-plugin", "compositor-darwin-arm64", "compositor-darwin-x64", "compositor-linux-arm64-gnu", "compositor-linux-arm64-musl", "compositor-linux-x64-gnu", "compositor-linux-x64-musl", "compositor-win32-x64-msvc", "core", "create-video", "discord-poster", "docusaurus-plugin", "docs", "enable-scss", "eslint-config", "eslint-config-flat", "eslint-config-internal", "eslint-plugin", "example-without-zod", "example", "fonts", "gif", "google-fonts", "install-whisper-cpp", "it-tests", "react18-tests", "lambda-go-example", "lambda-go", "lambda-php", "lambda-ruby", "lambda-python", "lambda", "lambda-client", "layout-utils", "rounded-text-box", "licensing", "lottie", "mcp", "media-utils", "motion-blur", "noise", "paths", "player-a11y", "player-example", "player", "preload", "renderer", "rive", "shapes", "skia", "promo-pages", "streaming", "serverless", "serverless-client", "skills", "studio-server", "studio-shared", "studio", "tailwind", "tailwind-v4", "timeline-utils", "test-utils", "three", "transitions", "media-parser", "zod-types", "zod-types-v3", "webcodecs", "convert", "captions", "openai-whisper", "elevenlabs", "compositor", "example-videos", "whisper-web", "media", "web-renderer", "design", "light-leaks", "starburst", "vercel", "sfx", "effects"];
2
2
  export type Pkgs = (typeof packages)[number];
3
3
  export type ExtraPackage = {
4
4
  name: string;
@@ -72,6 +72,7 @@ exports.packages = [
72
72
  'studio',
73
73
  'tailwind',
74
74
  'tailwind-v4',
75
+ 'timeline-utils',
75
76
  'test-utils',
76
77
  'three',
77
78
  'transitions',
@@ -157,6 +158,7 @@ exports.descriptions = {
157
158
  'enable-scss': 'Enable SCSS support in Remotion',
158
159
  'create-video': 'Create a new Remotion project',
159
160
  'studio-shared': 'Internal package for shared objects between the Studio backend and frontend',
161
+ 'timeline-utils': 'Internal utilities for rendering Remotion timelines',
160
162
  tailwind: 'Enable TailwindCSS support in Remotion (TailwindCSS v3)',
161
163
  'tailwind-v4': 'Enable TailwindCSS support in Remotion (TailwindCSS v4)',
162
164
  streaming: 'Utilities for streaming data between programs',
@@ -281,6 +283,7 @@ exports.installableMap = {
281
283
  studio: true,
282
284
  tailwind: true,
283
285
  'tailwind-v4': true,
286
+ 'timeline-utils': false,
284
287
  'test-utils': false,
285
288
  three: true,
286
289
  transitions: true,
@@ -376,6 +379,7 @@ exports.apiDocs = {
376
379
  serverless: null,
377
380
  skills: null,
378
381
  studio: 'https://www.remotion.dev/docs/studio/api',
382
+ 'timeline-utils': null,
379
383
  transitions: 'https://www.remotion.dev/transitions',
380
384
  'animated-emoji': 'https://www.remotion.dev/docs/animated-emoji',
381
385
  webcodecs: 'https://remotion.dev/webcodecs',
@@ -1,4 +1,4 @@
1
- import type { CodeValues, DragOverrides, SequenceControls, SequenceFieldSchema, SequenceSchema } from 'remotion';
1
+ import type { CodeValues, DragOverrides, SequenceControls, VisibleFieldSchema, SequenceSchema, GetDragOverrides, GetCodeValues, SequenceNodePath } from 'remotion';
2
2
  export type { CodeValues, DragOverrides, SequenceControls };
3
3
  export type SchemaFieldInfo = {
4
4
  key: string;
@@ -7,14 +7,14 @@ export type SchemaFieldInfo = {
7
7
  supported: boolean;
8
8
  rowHeight: number;
9
9
  currentRuntimeValue: unknown;
10
- fieldSchema: SequenceFieldSchema;
10
+ fieldSchema: VisibleFieldSchema;
11
11
  };
12
12
  export declare const SCHEMA_FIELD_ROW_HEIGHT = 22;
13
13
  export declare const UNSUPPORTED_FIELD_ROW_HEIGHT = 22;
14
- export declare const getFieldsToShow: ({ dragOverrides, codeValues, overrideId, schema, currentRuntimeValueDotNotation, }: {
14
+ export declare const getFieldsToShow: ({ getDragOverrides, getCodeValues, nodePath, schema, currentRuntimeValueDotNotation, }: {
15
15
  schema: SequenceSchema;
16
16
  currentRuntimeValueDotNotation: Record<string, unknown>;
17
- dragOverrides: DragOverrides;
18
- codeValues: CodeValues;
19
- overrideId: string;
17
+ getDragOverrides: GetDragOverrides;
18
+ getCodeValues: GetCodeValues;
19
+ nodePath: SequenceNodePath;
20
20
  }) => SchemaFieldInfo[] | null;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getFieldsToShow = exports.UNSUPPORTED_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_ROW_HEIGHT = void 0;
4
4
  const remotion_1 = require("remotion");
5
+ const no_react_1 = require("remotion/no-react");
5
6
  exports.SCHEMA_FIELD_ROW_HEIGHT = 22;
6
7
  exports.UNSUPPORTED_FIELD_ROW_HEIGHT = 22;
7
8
  const SUPPORTED_SCHEMA_TYPES = new Set([
@@ -11,18 +12,21 @@ const SUPPORTED_SCHEMA_TYPES = new Set([
11
12
  'translate',
12
13
  'enum',
13
14
  ]);
14
- const getFieldsToShow = ({ dragOverrides, codeValues, overrideId, schema, currentRuntimeValueDotNotation, }) => {
15
- var _a;
16
- const valuesDotNotation = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
15
+ const getFieldsToShow = ({ getDragOverrides, getCodeValues, nodePath, schema, currentRuntimeValueDotNotation, }) => {
16
+ const { merged: valuesDotNotation } = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
17
17
  schema,
18
18
  currentValue: currentRuntimeValueDotNotation,
19
- overrideValues: (_a = dragOverrides[overrideId]) !== null && _a !== void 0 ? _a : {},
20
- propStatus: codeValues[overrideId],
19
+ overrideValues: getDragOverrides(nodePath),
20
+ propStatus: getCodeValues(nodePath),
21
21
  });
22
22
  const activeSchema = remotion_1.Internals.flattenActiveSchema(schema, (key) => valuesDotNotation[key]);
23
- return Object.entries(activeSchema).map(([key, fieldSchema]) => {
23
+ return Object.entries(activeSchema)
24
+ .map(([key, fieldSchema]) => {
24
25
  const typeName = fieldSchema.type;
25
26
  const supported = SUPPORTED_SCHEMA_TYPES.has(typeName);
27
+ if (typeName === 'hidden') {
28
+ return null;
29
+ }
26
30
  return {
27
31
  key,
28
32
  description: fieldSchema.description,
@@ -34,6 +38,7 @@ const getFieldsToShow = ({ dragOverrides, codeValues, overrideId, schema, curren
34
38
  currentRuntimeValue: currentRuntimeValueDotNotation[key],
35
39
  fieldSchema,
36
40
  };
37
- });
41
+ })
42
+ .filter(no_react_1.NoReactInternals.truthy);
38
43
  };
39
44
  exports.getFieldsToShow = getFieldsToShow;
package/package.json CHANGED
@@ -3,12 +3,13 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio-shared"
4
4
  },
5
5
  "name": "@remotion/studio-shared",
6
- "version": "4.0.459",
6
+ "version": "4.0.461",
7
7
  "description": "Internal package for shared objects between the Studio backend and frontend",
8
8
  "main": "dist",
9
9
  "sideEffects": false,
10
10
  "scripts": {
11
11
  "lint": "eslint src",
12
+ "test": "bun test src",
12
13
  "formatting": "oxfmt src --check",
13
14
  "format": "oxfmt src",
14
15
  "make": "tsgo -d"
@@ -20,11 +21,11 @@
20
21
  "url": "https://github.com/remotion-dev/remotion/issues"
21
22
  },
22
23
  "dependencies": {
23
- "remotion": "4.0.459"
24
+ "remotion": "4.0.461"
24
25
  },
25
26
  "devDependencies": {
26
- "@remotion/renderer": "4.0.459",
27
- "@remotion/eslint-config-internal": "4.0.459",
27
+ "@remotion/renderer": "4.0.461",
28
+ "@remotion/eslint-config-internal": "4.0.461",
28
29
  "eslint": "9.19.0",
29
30
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
30
31
  },