@remotion/studio-shared 4.0.516 → 4.0.518
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/api-requests.d.ts +2 -0
- package/dist/config-method-lifecycles.d.ts +1 -0
- package/dist/config-method-lifecycles.js +1 -0
- package/dist/define-plugin-definitions.d.ts +1 -3
- package/dist/define-plugin-definitions.js +1 -2
- package/dist/element-drag-data.d.ts +3 -1
- package/dist/element-drag-data.js +11 -2
- package/dist/esm/index.mjs +13 -0
- package/dist/event-source-event.d.ts +5 -0
- package/dist/index.d.ts +1 -1
- package/dist/package-info.d.ts +2 -2
- package/dist/package-info.js +12 -0
- package/dist/studio-runtime-config.d.ts +5 -0
- package/package.json +5 -5
- package/dist/optimistic-update-for-code-values.d.ts +0 -7
- package/dist/optimistic-update-for-code-values.js +0 -30
- package/dist/optimistic-update-for-effect-code-values.d.ts +0 -8
- package/dist/optimistic-update-for-effect-code-values.js +0 -43
- package/dist/shape-drag-data.d.ts +0 -22
- package/dist/shape-drag-data.js +0 -90
package/dist/api-requests.d.ts
CHANGED
|
@@ -309,6 +309,7 @@ export type CaptionPatch = {
|
|
|
309
309
|
endMs: number;
|
|
310
310
|
timestampMs: number | null;
|
|
311
311
|
confidence: number | null;
|
|
312
|
+
pageBreakAfter: boolean | null;
|
|
312
313
|
};
|
|
313
314
|
changes: Partial<{
|
|
314
315
|
text: string;
|
|
@@ -316,6 +317,7 @@ export type CaptionPatch = {
|
|
|
316
317
|
endMs: number;
|
|
317
318
|
timestampMs: number | null;
|
|
318
319
|
confidence: number | null;
|
|
320
|
+
pageBreakAfter: boolean;
|
|
319
321
|
}>;
|
|
320
322
|
};
|
|
321
323
|
export type SaveInlineCaptionPatchesRequest = {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configMethodLifecycles = void 0;
|
|
4
4
|
exports.configMethodLifecycles = {
|
|
5
|
+
addElementLibrary: 'runtime',
|
|
5
6
|
overrideBundlerConfig: 'restart',
|
|
6
7
|
overrideDuration: 'runtime',
|
|
7
8
|
overrideFfmpegCommand: 'runtime',
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
export declare const getDefinePluginDefinitions: ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds,
|
|
1
|
+
export declare const getDefinePluginDefinitions: ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, }: {
|
|
2
2
|
maxTimelineTracks: number | null;
|
|
3
3
|
askAIEnabled: boolean;
|
|
4
4
|
interactivityEnabled: boolean;
|
|
5
5
|
keyboardShortcutsEnabled: boolean;
|
|
6
6
|
bufferStateDelayInMilliseconds: number | null;
|
|
7
|
-
experimentalClientSideRenderingEnabled: boolean;
|
|
8
7
|
}) => {
|
|
9
8
|
'process.env.MAX_TIMELINE_TRACKS': number | null;
|
|
10
9
|
'process.env.ASK_AI_ENABLED': boolean;
|
|
11
10
|
'process.env.INTERACTIVITY_ENABLED': boolean;
|
|
12
11
|
'process.env.KEYBOARD_SHORTCUTS_ENABLED': boolean;
|
|
13
12
|
'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': number | null;
|
|
14
|
-
'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': boolean;
|
|
15
13
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDefinePluginDefinitions = void 0;
|
|
4
|
-
const getDefinePluginDefinitions = ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds,
|
|
4
|
+
const getDefinePluginDefinitions = ({ maxTimelineTracks, askAIEnabled, interactivityEnabled, keyboardShortcutsEnabled, bufferStateDelayInMilliseconds, }) => ({
|
|
5
5
|
'process.env.MAX_TIMELINE_TRACKS': maxTimelineTracks,
|
|
6
6
|
'process.env.ASK_AI_ENABLED': askAIEnabled,
|
|
7
7
|
'process.env.INTERACTIVITY_ENABLED': interactivityEnabled,
|
|
8
8
|
'process.env.KEYBOARD_SHORTCUTS_ENABLED': keyboardShortcutsEnabled,
|
|
9
9
|
'process.env.BUFFER_STATE_DELAY_IN_MILLISECONDS': bufferStateDelayInMilliseconds,
|
|
10
|
-
'process.env.EXPERIMENTAL_CLIENT_SIDE_RENDERING_ENABLED': experimentalClientSideRenderingEnabled,
|
|
11
10
|
});
|
|
12
11
|
exports.getDefinePluginDefinitions = getDefinePluginDefinitions;
|
|
@@ -4,6 +4,7 @@ export type ElementDragData = {
|
|
|
4
4
|
type: 'remotion-element';
|
|
5
5
|
version: 1;
|
|
6
6
|
element: {
|
|
7
|
+
dependencies: string[];
|
|
7
8
|
slug: string;
|
|
8
9
|
displayName: string;
|
|
9
10
|
sourceCode: string;
|
|
@@ -13,7 +14,8 @@ export type ElementDragData = {
|
|
|
13
14
|
export declare const isLowercaseElementFileName: (value: unknown) => value is string;
|
|
14
15
|
export declare const makeElementFileNameFromSlug: (slug: string) => string | null;
|
|
15
16
|
export declare const getElementComponentNameFromSourceCode: (sourceCode: string) => string | null;
|
|
16
|
-
export declare const makeElementDragData: ({ dimensions, displayName, slug, sourceCode, }: {
|
|
17
|
+
export declare const makeElementDragData: ({ dependencies, dimensions, displayName, slug, sourceCode, }: {
|
|
18
|
+
dependencies: string[];
|
|
17
19
|
slug: string;
|
|
18
20
|
displayName: string;
|
|
19
21
|
sourceCode: string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseElementDragData = exports.makeElementDragData = exports.getElementComponentNameFromSourceCode = exports.makeElementFileNameFromSlug = exports.isLowercaseElementFileName = exports.ELEMENT_DRAG_MIME_TYPE = void 0;
|
|
4
4
|
const component_drag_data_1 = require("./component-drag-data");
|
|
5
|
+
const package_name_1 = require("./package-name");
|
|
5
6
|
const drag_mime_types_1 = require("./drag-mime-types");
|
|
6
7
|
Object.defineProperty(exports, "ELEMENT_DRAG_MIME_TYPE", { enumerable: true, get: function () { return drag_mime_types_1.ELEMENT_DRAG_MIME_TYPE; } });
|
|
7
8
|
const isRecord = (value) => {
|
|
@@ -48,6 +49,11 @@ const isSourceCode = (value) => {
|
|
|
48
49
|
value.trim().length > 0 &&
|
|
49
50
|
value.length < 200000);
|
|
50
51
|
};
|
|
52
|
+
const isDependencies = (value) => {
|
|
53
|
+
return (Array.isArray(value) &&
|
|
54
|
+
value.length <= 100 &&
|
|
55
|
+
value.every((dependency) => typeof dependency === 'string' && (0, package_name_1.isValidPackageName)(dependency)));
|
|
56
|
+
};
|
|
51
57
|
const isDimensions = (value) => {
|
|
52
58
|
if (!isRecord(value)) {
|
|
53
59
|
return false;
|
|
@@ -69,11 +75,12 @@ const getElementComponentNameFromSourceCode = (sourceCode) => {
|
|
|
69
75
|
return (0, component_drag_data_1.isComponentIdentifier)(componentName) ? componentName : null;
|
|
70
76
|
};
|
|
71
77
|
exports.getElementComponentNameFromSourceCode = getElementComponentNameFromSourceCode;
|
|
72
|
-
const makeElementDragData = ({ dimensions, displayName, slug, sourceCode, }) => {
|
|
78
|
+
const makeElementDragData = ({ dependencies, dimensions, displayName, slug, sourceCode, }) => {
|
|
73
79
|
return {
|
|
74
80
|
type: 'remotion-element',
|
|
75
81
|
version: 1,
|
|
76
82
|
element: {
|
|
83
|
+
dependencies: Array.from(new Set(dependencies)),
|
|
77
84
|
slug,
|
|
78
85
|
displayName,
|
|
79
86
|
sourceCode,
|
|
@@ -94,18 +101,20 @@ const parseElementDragData = (value) => {
|
|
|
94
101
|
if (!isRecord(parsed.element)) {
|
|
95
102
|
return null;
|
|
96
103
|
}
|
|
97
|
-
const { dimensions, displayName, slug, sourceCode } = parsed.element;
|
|
104
|
+
const { dependencies, dimensions, displayName, slug, sourceCode } = parsed.element;
|
|
98
105
|
if (!isSlug(slug) ||
|
|
99
106
|
!isDisplayName(displayName) ||
|
|
100
107
|
!isSourceCode(sourceCode) ||
|
|
101
108
|
(0, exports.getElementComponentNameFromSourceCode)(sourceCode) === null ||
|
|
102
109
|
(0, exports.makeElementFileNameFromSlug)(slug) === null ||
|
|
110
|
+
(dependencies !== undefined && !isDependencies(dependencies)) ||
|
|
103
111
|
(dimensions !== undefined &&
|
|
104
112
|
dimensions !== null &&
|
|
105
113
|
!isDimensions(dimensions))) {
|
|
106
114
|
return null;
|
|
107
115
|
}
|
|
108
116
|
return (0, exports.makeElementDragData)({
|
|
117
|
+
dependencies: dependencies !== null && dependencies !== void 0 ? dependencies : [],
|
|
109
118
|
slug,
|
|
110
119
|
displayName,
|
|
111
120
|
sourceCode,
|
package/dist/esm/index.mjs
CHANGED
|
@@ -122,6 +122,7 @@ var getConfigFileChangeMessage = (changeType) => {
|
|
|
122
122
|
};
|
|
123
123
|
// src/config-method-lifecycles.ts
|
|
124
124
|
var configMethodLifecycles = {
|
|
125
|
+
addElementLibrary: "runtime",
|
|
125
126
|
overrideBundlerConfig: "restart",
|
|
126
127
|
overrideDuration: "runtime",
|
|
127
128
|
overrideFfmpegCommand: "runtime",
|
|
@@ -2243,6 +2244,7 @@ var allPackages = [
|
|
|
2243
2244
|
"brand",
|
|
2244
2245
|
"bundler",
|
|
2245
2246
|
"browser-studio",
|
|
2247
|
+
"canvas",
|
|
2246
2248
|
"claude-code-plugin",
|
|
2247
2249
|
"cli",
|
|
2248
2250
|
"cloudrun",
|
|
@@ -2270,6 +2272,7 @@ var allPackages = [
|
|
|
2270
2272
|
"fonts",
|
|
2271
2273
|
"gif",
|
|
2272
2274
|
"google-fonts",
|
|
2275
|
+
"gsap",
|
|
2273
2276
|
"install-whisper-cpp",
|
|
2274
2277
|
"it-tests",
|
|
2275
2278
|
"react18-tests",
|
|
@@ -2324,6 +2327,7 @@ var allPackages = [
|
|
|
2324
2327
|
"compositor",
|
|
2325
2328
|
"example-videos",
|
|
2326
2329
|
"whisper-web",
|
|
2330
|
+
"whisper-webgpu",
|
|
2327
2331
|
"media",
|
|
2328
2332
|
"remotion-media",
|
|
2329
2333
|
"web-renderer",
|
|
@@ -2387,11 +2391,14 @@ var descriptions = {
|
|
|
2387
2391
|
lambda: "Render Remotion videos on AWS Lambda",
|
|
2388
2392
|
bundler: "Bundle Remotion compositions using Webpack",
|
|
2389
2393
|
"browser-studio": "Run Remotion Studio in the browser",
|
|
2394
|
+
canvas: "Headless primitives for Remotion authoring interfaces",
|
|
2390
2395
|
"studio-codemods": "Shared codemods for Remotion Studio",
|
|
2391
2396
|
"studio-server": "Run a Remotion Studio with a server backend",
|
|
2392
2397
|
"install-whisper-cpp": "Helpers for installing and using Whisper.cpp",
|
|
2393
2398
|
"whisper-web": "Helpers for using Whisper.cpp in browser using WASM",
|
|
2399
|
+
"whisper-webgpu": "Transcribe audio in the browser using Whisper and WebGPU",
|
|
2394
2400
|
"google-fonts": "Use Google Fonts in Remotion",
|
|
2401
|
+
gsap: "Use GSAP timelines in Remotion",
|
|
2395
2402
|
mcp: "Remotion's Model Context Protocol",
|
|
2396
2403
|
"media-utils": "Utilities for working with media files",
|
|
2397
2404
|
lottie: "Include Lottie animations in Remotion",
|
|
@@ -2489,6 +2496,7 @@ var installableMap = {
|
|
|
2489
2496
|
brand: false,
|
|
2490
2497
|
bundler: false,
|
|
2491
2498
|
"browser-studio": false,
|
|
2499
|
+
canvas: false,
|
|
2492
2500
|
cli: false,
|
|
2493
2501
|
cloudrun: true,
|
|
2494
2502
|
"claude-code-plugin": false,
|
|
@@ -2518,8 +2526,10 @@ var installableMap = {
|
|
|
2518
2526
|
fonts: true,
|
|
2519
2527
|
gif: true,
|
|
2520
2528
|
"google-fonts": true,
|
|
2529
|
+
gsap: true,
|
|
2521
2530
|
"install-whisper-cpp": true,
|
|
2522
2531
|
"whisper-web": true,
|
|
2532
|
+
"whisper-webgpu": true,
|
|
2523
2533
|
"it-tests": false,
|
|
2524
2534
|
"react18-tests": false,
|
|
2525
2535
|
"lambda-go-example": false,
|
|
@@ -2611,13 +2621,16 @@ var apiDocs = {
|
|
|
2611
2621
|
lambda: "https://www.remotion.dev/docs/lambda",
|
|
2612
2622
|
bundler: "https://www.remotion.dev/docs/bundler",
|
|
2613
2623
|
"browser-studio": null,
|
|
2624
|
+
canvas: null,
|
|
2614
2625
|
"studio-codemods": null,
|
|
2615
2626
|
"lambda-client": null,
|
|
2616
2627
|
"serverless-client": null,
|
|
2617
2628
|
"studio-server": null,
|
|
2618
2629
|
"install-whisper-cpp": "https://www.remotion.dev/docs/install-whisper-cpp",
|
|
2619
2630
|
"whisper-web": "https://www.remotion.dev/docs/whisper-web",
|
|
2631
|
+
"whisper-webgpu": "https://www.remotion.dev/docs/whisper-webgpu",
|
|
2620
2632
|
"google-fonts": "https://www.remotion.dev/docs/google-fonts",
|
|
2633
|
+
gsap: "https://www.remotion.dev/docs/gsap",
|
|
2621
2634
|
"media-utils": "https://www.remotion.dev/docs/media-utils",
|
|
2622
2635
|
lottie: "https://www.remotion.dev/docs/lottie",
|
|
2623
2636
|
licensing: "https://www.remotion.dev/docs/licensing",
|
|
@@ -79,6 +79,11 @@ export type EventSourceEvent = {
|
|
|
79
79
|
} | {
|
|
80
80
|
type: 'license-key-install-request';
|
|
81
81
|
licenseKey: string;
|
|
82
|
+
} | {
|
|
83
|
+
type: 'element-library-add-request';
|
|
84
|
+
url: string;
|
|
85
|
+
displayName: string | null;
|
|
86
|
+
origin: string;
|
|
82
87
|
} | {
|
|
83
88
|
type: 'visual-control-values-changed';
|
|
84
89
|
values: Array<{
|
package/dist/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export { ScriptLine, SomeStackFrame, StackFrame, SymbolicatedStackFrame, } from
|
|
|
45
45
|
export { EnumPath, stringifyDefaultProps } from './stringify-default-props';
|
|
46
46
|
export { getStudioEntryPoints, type StudioEntryPointPaths, } from './studio-entry-points';
|
|
47
47
|
export { studioHtml, type StudioHtmlOptions } from './studio-html';
|
|
48
|
-
export type { ConfigFileStudioSettings, StudioRuntimeConfig, } from './studio-runtime-config';
|
|
48
|
+
export type { ConfigFileStudioSettings, StudioElementLibrary, StudioRuntimeConfig, } from './studio-runtime-config';
|
|
49
49
|
export { BORDER_RADIUS_LONGHAND_KEYS, BORDER_RADIUS_SHORTHAND_KEY, getStylePropertyLonghandKeys, } from './style-property-relations';
|
|
50
50
|
export type { VisualControlChange } from './codemods';
|
|
51
51
|
export { optimisticAddEffectKeyframe, optimisticAddSequenceKeyframe, } from './optimistic-add-keyframe';
|
package/dist/package-info.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare const allPackages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "browser-studio", "claude-code-plugin", "cli", "cloudrun", "codex-plugin", "kimi-code-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", "skills-evals", "studio-codemods", "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", "remotion-media", "web-renderer", "design", "studio-protocol", "light-leaks", "mac-cursors", "maptiler", "rough-notation", "starburst", "vercel", "sfx", "effects"];
|
|
1
|
+
declare const allPackages: readonly ["svg-3d-engine", "animation-utils", "animated-emoji", "astro-example", "babel-loader", "bugs", "brand", "bundler", "browser-studio", "canvas", "claude-code-plugin", "cli", "cloudrun", "codex-plugin", "kimi-code-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", "gsap", "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", "skills-evals", "studio-codemods", "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", "whisper-webgpu", "media", "remotion-media", "web-renderer", "design", "studio-protocol", "light-leaks", "mac-cursors", "maptiler", "rough-notation", "starburst", "vercel", "sfx", "effects"];
|
|
2
2
|
export type Pkgs = (typeof allPackages)[number];
|
|
3
|
-
export declare const packages: ("animated-emoji" | "animation-utils" | "astro-example" | "babel-loader" | "brand" | "browser-studio" | "bugs" | "bundler" | "captions" | "claude-code-plugin" | "cli" | "cloudrun" | "codex-plugin" | "compositor" | "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" | "convert" | "core" | "create-video" | "design" | "discord-poster" | "docs" | "docusaurus-plugin" | "effects" | "elevenlabs" | "enable-scss" | "eslint-config" | "eslint-config-flat" | "eslint-config-internal" | "eslint-plugin" | "example" | "example-videos" | "example-without-zod" | "fonts" | "gif" | "google-fonts" | "install-whisper-cpp" | "it-tests" | "kimi-code-plugin" | "lambda" | "lambda-client" | "lambda-go" | "lambda-go-example" | "lambda-php" | "lambda-python" | "lambda-ruby" | "layout-utils" | "licensing" | "light-leaks" | "lottie" | "mac-cursors" | "maptiler" | "mcp" | "media" | "media-parser" | "media-utils" | "motion-blur" | "noise" | "openai-whisper" | "paths" | "player" | "player-a11y" | "player-example" | "preload" | "promo-pages" | "react18-tests" | "remotion-media" | "renderer" | "rive" | "rough-notation" | "rounded-text-box" | "serverless" | "serverless-client" | "sfx" | "shapes" | "skia" | "skills" | "skills-evals" | "starburst" | "streaming" | "studio" | "studio-codemods" | "studio-protocol" | "studio-server" | "studio-shared" | "svg-3d-engine" | "tailwind" | "tailwind-v4" | "test-utils" | "three" | "timeline-utils" | "transitions" | "vercel" | "web-renderer" | "webcodecs" | "whisper-web" | "zod-types" | "zod-types-v3")[];
|
|
3
|
+
export declare const packages: ("animated-emoji" | "animation-utils" | "astro-example" | "babel-loader" | "brand" | "browser-studio" | "bugs" | "bundler" | "canvas" | "captions" | "claude-code-plugin" | "cli" | "cloudrun" | "codex-plugin" | "compositor" | "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" | "convert" | "core" | "create-video" | "design" | "discord-poster" | "docs" | "docusaurus-plugin" | "effects" | "elevenlabs" | "enable-scss" | "eslint-config" | "eslint-config-flat" | "eslint-config-internal" | "eslint-plugin" | "example" | "example-videos" | "example-without-zod" | "fonts" | "gif" | "google-fonts" | "gsap" | "install-whisper-cpp" | "it-tests" | "kimi-code-plugin" | "lambda" | "lambda-client" | "lambda-go" | "lambda-go-example" | "lambda-php" | "lambda-python" | "lambda-ruby" | "layout-utils" | "licensing" | "light-leaks" | "lottie" | "mac-cursors" | "maptiler" | "mcp" | "media" | "media-parser" | "media-utils" | "motion-blur" | "noise" | "openai-whisper" | "paths" | "player" | "player-a11y" | "player-example" | "preload" | "promo-pages" | "react18-tests" | "remotion-media" | "renderer" | "rive" | "rough-notation" | "rounded-text-box" | "serverless" | "serverless-client" | "sfx" | "shapes" | "skia" | "skills" | "skills-evals" | "starburst" | "streaming" | "studio" | "studio-codemods" | "studio-protocol" | "studio-server" | "studio-shared" | "svg-3d-engine" | "tailwind" | "tailwind-v4" | "test-utils" | "three" | "timeline-utils" | "transitions" | "vercel" | "web-renderer" | "webcodecs" | "whisper-web" | "whisper-webgpu" | "zod-types" | "zod-types-v3")[];
|
|
4
4
|
export type ExtraPackage = {
|
|
5
5
|
name: string;
|
|
6
6
|
version: string;
|
package/dist/package-info.js
CHANGED
|
@@ -13,6 +13,7 @@ const allPackages = [
|
|
|
13
13
|
'brand',
|
|
14
14
|
'bundler',
|
|
15
15
|
'browser-studio',
|
|
16
|
+
'canvas',
|
|
16
17
|
'claude-code-plugin',
|
|
17
18
|
'cli',
|
|
18
19
|
'cloudrun',
|
|
@@ -40,6 +41,7 @@ const allPackages = [
|
|
|
40
41
|
'fonts',
|
|
41
42
|
'gif',
|
|
42
43
|
'google-fonts',
|
|
44
|
+
'gsap',
|
|
43
45
|
'install-whisper-cpp',
|
|
44
46
|
'it-tests',
|
|
45
47
|
'react18-tests',
|
|
@@ -94,6 +96,7 @@ const allPackages = [
|
|
|
94
96
|
'compositor',
|
|
95
97
|
'example-videos',
|
|
96
98
|
'whisper-web',
|
|
99
|
+
'whisper-webgpu',
|
|
97
100
|
'media',
|
|
98
101
|
'remotion-media',
|
|
99
102
|
'web-renderer',
|
|
@@ -157,11 +160,14 @@ exports.descriptions = {
|
|
|
157
160
|
lambda: 'Render Remotion videos on AWS Lambda',
|
|
158
161
|
bundler: 'Bundle Remotion compositions using Webpack',
|
|
159
162
|
'browser-studio': 'Run Remotion Studio in the browser',
|
|
163
|
+
canvas: 'Headless primitives for Remotion authoring interfaces',
|
|
160
164
|
'studio-codemods': 'Shared codemods for Remotion Studio',
|
|
161
165
|
'studio-server': 'Run a Remotion Studio with a server backend',
|
|
162
166
|
'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
|
|
163
167
|
'whisper-web': 'Helpers for using Whisper.cpp in browser using WASM',
|
|
168
|
+
'whisper-webgpu': 'Transcribe audio in the browser using Whisper and WebGPU',
|
|
164
169
|
'google-fonts': 'Use Google Fonts in Remotion',
|
|
170
|
+
gsap: 'Use GSAP timelines in Remotion',
|
|
165
171
|
mcp: "Remotion's Model Context Protocol",
|
|
166
172
|
'media-utils': 'Utilities for working with media files',
|
|
167
173
|
lottie: 'Include Lottie animations in Remotion',
|
|
@@ -259,6 +265,7 @@ exports.installableMap = {
|
|
|
259
265
|
brand: false,
|
|
260
266
|
bundler: false,
|
|
261
267
|
'browser-studio': false,
|
|
268
|
+
canvas: false,
|
|
262
269
|
cli: false,
|
|
263
270
|
cloudrun: true,
|
|
264
271
|
'claude-code-plugin': false,
|
|
@@ -288,8 +295,10 @@ exports.installableMap = {
|
|
|
288
295
|
fonts: true,
|
|
289
296
|
gif: true,
|
|
290
297
|
'google-fonts': true,
|
|
298
|
+
gsap: true,
|
|
291
299
|
'install-whisper-cpp': true,
|
|
292
300
|
'whisper-web': true,
|
|
301
|
+
'whisper-webgpu': true,
|
|
293
302
|
'it-tests': false,
|
|
294
303
|
'react18-tests': false,
|
|
295
304
|
'lambda-go-example': false,
|
|
@@ -381,13 +390,16 @@ exports.apiDocs = {
|
|
|
381
390
|
lambda: 'https://www.remotion.dev/docs/lambda',
|
|
382
391
|
bundler: 'https://www.remotion.dev/docs/bundler',
|
|
383
392
|
'browser-studio': null,
|
|
393
|
+
canvas: null,
|
|
384
394
|
'studio-codemods': null,
|
|
385
395
|
'lambda-client': null,
|
|
386
396
|
'serverless-client': null,
|
|
387
397
|
'studio-server': null,
|
|
388
398
|
'install-whisper-cpp': 'https://www.remotion.dev/docs/install-whisper-cpp',
|
|
389
399
|
'whisper-web': 'https://www.remotion.dev/docs/whisper-web',
|
|
400
|
+
'whisper-webgpu': 'https://www.remotion.dev/docs/whisper-webgpu',
|
|
390
401
|
'google-fonts': 'https://www.remotion.dev/docs/google-fonts',
|
|
402
|
+
gsap: 'https://www.remotion.dev/docs/gsap',
|
|
391
403
|
'media-utils': 'https://www.remotion.dev/docs/media-utils',
|
|
392
404
|
lottie: 'https://www.remotion.dev/docs/lottie',
|
|
393
405
|
licensing: 'https://www.remotion.dev/docs/licensing',
|
|
@@ -11,9 +11,14 @@ export type ConfigFileStudioSettings = {
|
|
|
11
11
|
readonly numberOfSharedAudioTags: number | null;
|
|
12
12
|
readonly rspack: boolean | null;
|
|
13
13
|
};
|
|
14
|
+
export type StudioElementLibrary = {
|
|
15
|
+
readonly displayName: string | null;
|
|
16
|
+
readonly url: string;
|
|
17
|
+
};
|
|
14
18
|
export type StudioRuntimeConfig = {
|
|
15
19
|
readonly maxTimelineTracks: number | null;
|
|
16
20
|
readonly askAIEnabled: boolean;
|
|
21
|
+
readonly elementLibraries?: readonly StudioElementLibrary[];
|
|
17
22
|
readonly interactivityEnabled: boolean;
|
|
18
23
|
readonly keyboardShortcutsEnabled: boolean;
|
|
19
24
|
readonly bufferStateDelayInMilliseconds: number | null;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
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.
|
|
6
|
+
"version": "4.0.518",
|
|
7
7
|
"description": "Internal package for shared objects between the Studio backend and frontend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"module": "dist/esm/index.mjs",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@remotion/studio-protocol": "4.0.
|
|
25
|
-
"remotion": "4.0.
|
|
24
|
+
"@remotion/studio-protocol": "4.0.518",
|
|
25
|
+
"remotion": "4.0.518"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@remotion/renderer": "4.0.
|
|
29
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
28
|
+
"@remotion/renderer": "4.0.518",
|
|
29
|
+
"@remotion/eslint-config-internal": "4.0.518",
|
|
30
30
|
"eslint": "9.19.0",
|
|
31
31
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|
|
32
32
|
},
|
|
@@ -1,7 +0,0 @@
|
|
|
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;
|
|
@@ -1,30 +0,0 @@
|
|
|
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]: { status: 'static', 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
|
-
effects: previous.effects,
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
exports.optimisticUpdateForCodeValues = optimisticUpdateForCodeValues;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type CanUpdateSequencePropsResponse, type SequenceSchema } from 'remotion';
|
|
2
|
-
export declare const optimisticUpdateForEffectCodeValues: ({ previous, effectIndex, fieldKey, value, schema, }: {
|
|
3
|
-
previous: CanUpdateSequencePropsResponse;
|
|
4
|
-
effectIndex: number;
|
|
5
|
-
fieldKey: string;
|
|
6
|
-
value: unknown;
|
|
7
|
-
schema: SequenceSchema;
|
|
8
|
-
}) => CanUpdateSequencePropsResponse;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.optimisticUpdateForEffectCodeValues = void 0;
|
|
4
|
-
const no_react_1 = require("remotion/no-react");
|
|
5
|
-
const optimisticUpdateForEffectCodeValues = ({ previous, effectIndex, fieldKey, value, schema, }) => {
|
|
6
|
-
var _a;
|
|
7
|
-
if (!previous.canUpdate) {
|
|
8
|
-
return previous;
|
|
9
|
-
}
|
|
10
|
-
const targetIndex = previous.effects.findIndex((e) => e.effectIndex === effectIndex);
|
|
11
|
-
if (targetIndex === -1) {
|
|
12
|
-
return previous;
|
|
13
|
-
}
|
|
14
|
-
const target = previous.effects[targetIndex];
|
|
15
|
-
if (!target.canUpdate) {
|
|
16
|
-
return previous;
|
|
17
|
-
}
|
|
18
|
-
const props = {
|
|
19
|
-
...target.props,
|
|
20
|
-
[fieldKey]: { status: 'static', codeValue: value },
|
|
21
|
-
};
|
|
22
|
-
if (((_a = schema[fieldKey]) === null || _a === void 0 ? void 0 : _a.type) === 'enum') {
|
|
23
|
-
const propsToDelete = no_react_1.NoReactInternals.findPropsToDelete({
|
|
24
|
-
schema,
|
|
25
|
-
key: fieldKey,
|
|
26
|
-
value,
|
|
27
|
-
});
|
|
28
|
-
for (const propToDelete of propsToDelete) {
|
|
29
|
-
delete props[propToDelete];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
const updatedEffect = {
|
|
33
|
-
...target,
|
|
34
|
-
props,
|
|
35
|
-
};
|
|
36
|
-
const effects = [...previous.effects];
|
|
37
|
-
effects[targetIndex] = updatedEffect;
|
|
38
|
-
return {
|
|
39
|
-
...previous,
|
|
40
|
-
effects,
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
exports.optimisticUpdateForEffectCodeValues = optimisticUpdateForEffectCodeValues;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export declare const SHAPE_DRAG_MIME_TYPE = "application/vnd.remotion.shape+json";
|
|
2
|
-
export declare const shapeNames: readonly ["Arrow", "Circle", "Ellipse", "Heart", "Pie", "Polygon", "Rect", "Star", "Triangle"];
|
|
3
|
-
export type ShapeName = (typeof shapeNames)[number];
|
|
4
|
-
export type ShapeAttribute = {
|
|
5
|
-
name: string;
|
|
6
|
-
value: string | number | boolean;
|
|
7
|
-
};
|
|
8
|
-
export type ShapeDragData = {
|
|
9
|
-
type: 'remotion-shape';
|
|
10
|
-
version: 1;
|
|
11
|
-
shape: ShapeName;
|
|
12
|
-
attributes: ShapeAttribute[];
|
|
13
|
-
};
|
|
14
|
-
export declare const isShapeName: (value: unknown) => value is "Arrow" | "Circle" | "Ellipse" | "Heart" | "Pie" | "Polygon" | "Rect" | "Star" | "Triangle";
|
|
15
|
-
export declare const isShapeAttributeName: (value: unknown) => value is string;
|
|
16
|
-
export declare const isShapeAttribute: (value: unknown) => value is ShapeAttribute;
|
|
17
|
-
export declare const areShapeAttributes: (value: unknown) => value is ShapeAttribute[];
|
|
18
|
-
export declare const makeShapeDragData: ({ attributes, shape, }: {
|
|
19
|
-
attributes: ShapeAttribute[];
|
|
20
|
-
shape: "Arrow" | "Circle" | "Ellipse" | "Heart" | "Pie" | "Polygon" | "Rect" | "Star" | "Triangle";
|
|
21
|
-
}) => ShapeDragData;
|
|
22
|
-
export declare const parseShapeDragData: (value: string) => ShapeDragData | null;
|
package/dist/shape-drag-data.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseShapeDragData = exports.makeShapeDragData = exports.areShapeAttributes = exports.isShapeAttribute = exports.isShapeAttributeName = exports.isShapeName = exports.shapeNames = exports.SHAPE_DRAG_MIME_TYPE = void 0;
|
|
4
|
-
exports.SHAPE_DRAG_MIME_TYPE = 'application/vnd.remotion.shape+json';
|
|
5
|
-
exports.shapeNames = [
|
|
6
|
-
'Arrow',
|
|
7
|
-
'Circle',
|
|
8
|
-
'Ellipse',
|
|
9
|
-
'Heart',
|
|
10
|
-
'Pie',
|
|
11
|
-
'Polygon',
|
|
12
|
-
'Rect',
|
|
13
|
-
'Star',
|
|
14
|
-
'Triangle',
|
|
15
|
-
];
|
|
16
|
-
const isRecord = (value) => {
|
|
17
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
18
|
-
};
|
|
19
|
-
const isShapeName = (value) => {
|
|
20
|
-
return typeof value === 'string' && exports.shapeNames.includes(value);
|
|
21
|
-
};
|
|
22
|
-
exports.isShapeName = isShapeName;
|
|
23
|
-
const isShapeAttributeName = (value) => {
|
|
24
|
-
return (typeof value === 'string' &&
|
|
25
|
-
value !== 'style' &&
|
|
26
|
-
/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(value));
|
|
27
|
-
};
|
|
28
|
-
exports.isShapeAttributeName = isShapeAttributeName;
|
|
29
|
-
const isShapeAttribute = (value) => {
|
|
30
|
-
if (!isRecord(value)) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
if (!(0, exports.isShapeAttributeName)(value.name)) {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
return (typeof value.value === 'string' ||
|
|
37
|
-
typeof value.value === 'boolean' ||
|
|
38
|
-
(typeof value.value === 'number' && Number.isFinite(value.value)));
|
|
39
|
-
};
|
|
40
|
-
exports.isShapeAttribute = isShapeAttribute;
|
|
41
|
-
const areShapeAttributes = (value) => {
|
|
42
|
-
if (!Array.isArray(value)) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
const seen = new Set();
|
|
46
|
-
for (const attribute of value) {
|
|
47
|
-
if (!(0, exports.isShapeAttribute)(attribute) || seen.has(attribute.name)) {
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
seen.add(attribute.name);
|
|
51
|
-
}
|
|
52
|
-
return true;
|
|
53
|
-
};
|
|
54
|
-
exports.areShapeAttributes = areShapeAttributes;
|
|
55
|
-
const makeShapeDragData = ({ attributes, shape, }) => {
|
|
56
|
-
return {
|
|
57
|
-
type: 'remotion-shape',
|
|
58
|
-
version: 1,
|
|
59
|
-
shape,
|
|
60
|
-
attributes,
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
exports.makeShapeDragData = makeShapeDragData;
|
|
64
|
-
const parseShapeDragData = (value) => {
|
|
65
|
-
try {
|
|
66
|
-
const parsed = JSON.parse(value);
|
|
67
|
-
if (!isRecord(parsed)) {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
if (parsed.type !== 'remotion-shape' || parsed.version !== 1) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
if (!(0, exports.isShapeName)(parsed.shape)) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
if (!(0, exports.areShapeAttributes)(parsed.attributes)) {
|
|
77
|
-
return null;
|
|
78
|
-
}
|
|
79
|
-
return {
|
|
80
|
-
type: 'remotion-shape',
|
|
81
|
-
version: 1,
|
|
82
|
-
shape: parsed.shape,
|
|
83
|
-
attributes: parsed.attributes,
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
catch (_a) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
exports.parseShapeDragData = parseShapeDragData;
|