@remotion/studio-shared 4.0.516 → 4.0.517
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/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 +9 -0
- package/dist/index.d.ts +1 -1
- package/dist/package-info.d.ts +2 -2
- package/dist/package-info.js +8 -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
|
@@ -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",
|
|
@@ -2387,11 +2390,13 @@ var descriptions = {
|
|
|
2387
2390
|
lambda: "Render Remotion videos on AWS Lambda",
|
|
2388
2391
|
bundler: "Bundle Remotion compositions using Webpack",
|
|
2389
2392
|
"browser-studio": "Run Remotion Studio in the browser",
|
|
2393
|
+
canvas: "Headless primitives for Remotion authoring interfaces",
|
|
2390
2394
|
"studio-codemods": "Shared codemods for Remotion Studio",
|
|
2391
2395
|
"studio-server": "Run a Remotion Studio with a server backend",
|
|
2392
2396
|
"install-whisper-cpp": "Helpers for installing and using Whisper.cpp",
|
|
2393
2397
|
"whisper-web": "Helpers for using Whisper.cpp in browser using WASM",
|
|
2394
2398
|
"google-fonts": "Use Google Fonts in Remotion",
|
|
2399
|
+
gsap: "Use GSAP timelines in Remotion",
|
|
2395
2400
|
mcp: "Remotion's Model Context Protocol",
|
|
2396
2401
|
"media-utils": "Utilities for working with media files",
|
|
2397
2402
|
lottie: "Include Lottie animations in Remotion",
|
|
@@ -2489,6 +2494,7 @@ var installableMap = {
|
|
|
2489
2494
|
brand: false,
|
|
2490
2495
|
bundler: false,
|
|
2491
2496
|
"browser-studio": false,
|
|
2497
|
+
canvas: false,
|
|
2492
2498
|
cli: false,
|
|
2493
2499
|
cloudrun: true,
|
|
2494
2500
|
"claude-code-plugin": false,
|
|
@@ -2518,6 +2524,7 @@ var installableMap = {
|
|
|
2518
2524
|
fonts: true,
|
|
2519
2525
|
gif: true,
|
|
2520
2526
|
"google-fonts": true,
|
|
2527
|
+
gsap: true,
|
|
2521
2528
|
"install-whisper-cpp": true,
|
|
2522
2529
|
"whisper-web": true,
|
|
2523
2530
|
"it-tests": false,
|
|
@@ -2611,6 +2618,7 @@ var apiDocs = {
|
|
|
2611
2618
|
lambda: "https://www.remotion.dev/docs/lambda",
|
|
2612
2619
|
bundler: "https://www.remotion.dev/docs/bundler",
|
|
2613
2620
|
"browser-studio": null,
|
|
2621
|
+
canvas: null,
|
|
2614
2622
|
"studio-codemods": null,
|
|
2615
2623
|
"lambda-client": null,
|
|
2616
2624
|
"serverless-client": null,
|
|
@@ -2618,6 +2626,7 @@ var apiDocs = {
|
|
|
2618
2626
|
"install-whisper-cpp": "https://www.remotion.dev/docs/install-whisper-cpp",
|
|
2619
2627
|
"whisper-web": "https://www.remotion.dev/docs/whisper-web",
|
|
2620
2628
|
"google-fonts": "https://www.remotion.dev/docs/google-fonts",
|
|
2629
|
+
gsap: "https://www.remotion.dev/docs/gsap",
|
|
2621
2630
|
"media-utils": "https://www.remotion.dev/docs/media-utils",
|
|
2622
2631
|
lottie: "https://www.remotion.dev/docs/lottie",
|
|
2623
2632
|
licensing: "https://www.remotion.dev/docs/licensing",
|
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", "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" | "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',
|
|
@@ -157,11 +159,13 @@ exports.descriptions = {
|
|
|
157
159
|
lambda: 'Render Remotion videos on AWS Lambda',
|
|
158
160
|
bundler: 'Bundle Remotion compositions using Webpack',
|
|
159
161
|
'browser-studio': 'Run Remotion Studio in the browser',
|
|
162
|
+
canvas: 'Headless primitives for Remotion authoring interfaces',
|
|
160
163
|
'studio-codemods': 'Shared codemods for Remotion Studio',
|
|
161
164
|
'studio-server': 'Run a Remotion Studio with a server backend',
|
|
162
165
|
'install-whisper-cpp': 'Helpers for installing and using Whisper.cpp',
|
|
163
166
|
'whisper-web': 'Helpers for using Whisper.cpp in browser using WASM',
|
|
164
167
|
'google-fonts': 'Use Google Fonts in Remotion',
|
|
168
|
+
gsap: 'Use GSAP timelines in Remotion',
|
|
165
169
|
mcp: "Remotion's Model Context Protocol",
|
|
166
170
|
'media-utils': 'Utilities for working with media files',
|
|
167
171
|
lottie: 'Include Lottie animations in Remotion',
|
|
@@ -259,6 +263,7 @@ exports.installableMap = {
|
|
|
259
263
|
brand: false,
|
|
260
264
|
bundler: false,
|
|
261
265
|
'browser-studio': false,
|
|
266
|
+
canvas: false,
|
|
262
267
|
cli: false,
|
|
263
268
|
cloudrun: true,
|
|
264
269
|
'claude-code-plugin': false,
|
|
@@ -288,6 +293,7 @@ exports.installableMap = {
|
|
|
288
293
|
fonts: true,
|
|
289
294
|
gif: true,
|
|
290
295
|
'google-fonts': true,
|
|
296
|
+
gsap: true,
|
|
291
297
|
'install-whisper-cpp': true,
|
|
292
298
|
'whisper-web': true,
|
|
293
299
|
'it-tests': false,
|
|
@@ -381,6 +387,7 @@ exports.apiDocs = {
|
|
|
381
387
|
lambda: 'https://www.remotion.dev/docs/lambda',
|
|
382
388
|
bundler: 'https://www.remotion.dev/docs/bundler',
|
|
383
389
|
'browser-studio': null,
|
|
390
|
+
canvas: null,
|
|
384
391
|
'studio-codemods': null,
|
|
385
392
|
'lambda-client': null,
|
|
386
393
|
'serverless-client': null,
|
|
@@ -388,6 +395,7 @@ exports.apiDocs = {
|
|
|
388
395
|
'install-whisper-cpp': 'https://www.remotion.dev/docs/install-whisper-cpp',
|
|
389
396
|
'whisper-web': 'https://www.remotion.dev/docs/whisper-web',
|
|
390
397
|
'google-fonts': 'https://www.remotion.dev/docs/google-fonts',
|
|
398
|
+
gsap: 'https://www.remotion.dev/docs/gsap',
|
|
391
399
|
'media-utils': 'https://www.remotion.dev/docs/media-utils',
|
|
392
400
|
lottie: 'https://www.remotion.dev/docs/lottie',
|
|
393
401
|
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.517",
|
|
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.517",
|
|
25
|
+
"remotion": "4.0.517"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@remotion/renderer": "4.0.
|
|
29
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
28
|
+
"@remotion/renderer": "4.0.517",
|
|
29
|
+
"@remotion/eslint-config-internal": "4.0.517",
|
|
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;
|