@remotion/studio-server 4.0.498 → 4.0.499
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.
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.insertElementHandler = void 0;
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const drag_and_drop_1 = require("@remotion/drag-and-drop");
|
|
9
10
|
const renderer_1 = require("@remotion/renderer");
|
|
10
|
-
const studio_shared_1 = require("@remotion/studio-shared");
|
|
11
11
|
const file_watcher_1 = require("../../file-watcher");
|
|
12
12
|
const resolve_composition_component_1 = require("../../helpers/resolve-composition-component");
|
|
13
13
|
const format_log_file_location_1 = require("../format-log-file-location");
|
|
@@ -56,7 +56,7 @@ const validateDimensions = (dimensions) => {
|
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
const validateElement = (element) => {
|
|
59
|
-
if (
|
|
59
|
+
if (drag_and_drop_1.DragAndDropInternals.makeElementFileNameFromSlug(element.slug) === null) {
|
|
60
60
|
throw new Error('Element slug must produce a safe lowercase .tsx file name');
|
|
61
61
|
}
|
|
62
62
|
if (typeof element.sourceCode !== 'string' ||
|
|
@@ -64,7 +64,7 @@ const validateElement = (element) => {
|
|
|
64
64
|
element.sourceCode.length > 200000) {
|
|
65
65
|
throw new Error('Unsupported Element source code');
|
|
66
66
|
}
|
|
67
|
-
if (
|
|
67
|
+
if (drag_and_drop_1.DragAndDropInternals.getElementComponentNameFromSourceCode(element.sourceCode) === null) {
|
|
68
68
|
throw new Error('Element source must export exactly one named component');
|
|
69
69
|
}
|
|
70
70
|
validateDimensions(element.dimensions);
|
|
@@ -77,7 +77,7 @@ const insertElementHandler = ({ input: { compositionFile, compositionId, element
|
|
|
77
77
|
(!Number.isInteger(from) || !Number.isFinite(from) || from < 0)) {
|
|
78
78
|
throw new Error('from must be a non-negative integer');
|
|
79
79
|
}
|
|
80
|
-
const componentName =
|
|
80
|
+
const componentName = drag_and_drop_1.DragAndDropInternals.getElementComponentNameFromSourceCode(element.sourceCode);
|
|
81
81
|
if (componentName === null) {
|
|
82
82
|
throw new Error('Element source must export exactly one named component');
|
|
83
83
|
}
|
|
@@ -90,7 +90,7 @@ const insertElementHandler = ({ input: { compositionFile, compositionId, element
|
|
|
90
90
|
if (!location.canAddSequence) {
|
|
91
91
|
throw new Error('Cannot insert Element into this composition component');
|
|
92
92
|
}
|
|
93
|
-
const derivedElementFileName =
|
|
93
|
+
const derivedElementFileName = drag_and_drop_1.DragAndDropInternals.makeElementFileNameFromSlug(element.slug);
|
|
94
94
|
if (derivedElementFileName === null) {
|
|
95
95
|
throw new Error('Element slug must produce a safe lowercase .tsx file name');
|
|
96
96
|
}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.insertJsxElementHandler = void 0;
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const drag_and_drop_1 = require("@remotion/drag-and-drop");
|
|
8
9
|
const renderer_1 = require("@remotion/renderer");
|
|
9
10
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
10
11
|
const file_watcher_1 = require("../../file-watcher");
|
|
@@ -78,16 +79,16 @@ const validateElement = (element, remotionRoot) => {
|
|
|
78
79
|
return;
|
|
79
80
|
}
|
|
80
81
|
if (element.type === 'component') {
|
|
81
|
-
if (!
|
|
82
|
+
if (!drag_and_drop_1.DragAndDropInternals.isComponentIdentifier(element.componentName)) {
|
|
82
83
|
throw new Error('Unsupported component name');
|
|
83
84
|
}
|
|
84
|
-
if (!
|
|
85
|
+
if (!drag_and_drop_1.DragAndDropInternals.isComponentIdentifier(element.importName)) {
|
|
85
86
|
throw new Error('Unsupported component import name');
|
|
86
87
|
}
|
|
87
|
-
if (!
|
|
88
|
+
if (!drag_and_drop_1.DragAndDropInternals.isComponentImportPath(element.importPath)) {
|
|
88
89
|
throw new Error('Unsupported component import path');
|
|
89
90
|
}
|
|
90
|
-
if (!
|
|
91
|
+
if (!drag_and_drop_1.DragAndDropInternals.areComponentProps(element.props)) {
|
|
91
92
|
throw new Error('Unsupported component props');
|
|
92
93
|
}
|
|
93
94
|
return;
|
package/dist/routes.js
CHANGED
|
@@ -39,6 +39,7 @@ const node_fs_1 = require("node:fs");
|
|
|
39
39
|
const node_path_1 = __importStar(require("node:path"));
|
|
40
40
|
const node_url_1 = require("node:url");
|
|
41
41
|
const bundler_1 = require("@remotion/bundler");
|
|
42
|
+
const drag_and_drop_1 = require("@remotion/drag-and-drop");
|
|
42
43
|
const renderer_1 = require("@remotion/renderer");
|
|
43
44
|
const studio_shared_1 = require("@remotion/studio-shared");
|
|
44
45
|
const better_opn_1 = require("./better-opn");
|
|
@@ -165,12 +166,11 @@ const handleRequestElementInstall = async ({ liveEventsServer, request, response
|
|
|
165
166
|
response.setHeader('Content-Type', 'application/json');
|
|
166
167
|
try {
|
|
167
168
|
const body = await (0, parse_body_1.parseRequestBody)(request);
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
if (parsed === null) {
|
|
169
|
+
const { mimeType, payload } = body;
|
|
170
|
+
const parsed = typeof mimeType === 'string' && typeof payload === 'string'
|
|
171
|
+
? drag_and_drop_1.DragAndDropInternals.parseDragData({ mimeType, payload })
|
|
172
|
+
: null;
|
|
173
|
+
if ((parsed === null || parsed === void 0 ? void 0 : parsed.type) !== 'element') {
|
|
174
174
|
response.writeHead(400);
|
|
175
175
|
response.end(JSON.stringify({ success: false, reason: 'Invalid Element payload' }));
|
|
176
176
|
return;
|
|
@@ -201,7 +201,7 @@ const handleRequestElementInstall = async ({ liveEventsServer, request, response
|
|
|
201
201
|
createdAt: Date.now(),
|
|
202
202
|
compositionFile: target.compositionFile,
|
|
203
203
|
compositionId: target.compositionId,
|
|
204
|
-
element: parsed.element,
|
|
204
|
+
element: parsed.data.element,
|
|
205
205
|
position: null,
|
|
206
206
|
};
|
|
207
207
|
const delivered = liveEventsServer.sendEventToClientId(target.clientId, {
|
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.
|
|
6
|
+
"version": "4.0.499",
|
|
7
7
|
"description": "Run a Remotion Studio with a server backend",
|
|
8
8
|
"main": "dist",
|
|
9
9
|
"scripts": {
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
+
"@remotion/drag-and-drop": "4.0.499",
|
|
26
27
|
"@babel/types": "7.24.0",
|
|
27
28
|
"@babel/parser": "7.24.1",
|
|
28
29
|
"@svgr/core": "8.1.0",
|
|
@@ -30,11 +31,11 @@
|
|
|
30
31
|
"kiwi-schema": "0.5.0",
|
|
31
32
|
"semver": "7.5.3",
|
|
32
33
|
"prettier": "3.8.1",
|
|
33
|
-
"remotion": "4.0.
|
|
34
|
+
"remotion": "4.0.499",
|
|
34
35
|
"recast": "0.23.11",
|
|
35
|
-
"@remotion/bundler": "4.0.
|
|
36
|
-
"@remotion/renderer": "4.0.
|
|
37
|
-
"@remotion/studio-shared": "4.0.
|
|
36
|
+
"@remotion/bundler": "4.0.499",
|
|
37
|
+
"@remotion/renderer": "4.0.499",
|
|
38
|
+
"@remotion/studio-shared": "4.0.499",
|
|
38
39
|
"memfs": "3.4.3",
|
|
39
40
|
"open": "8.4.2"
|
|
40
41
|
},
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
"ast-types": "0.16.1",
|
|
43
44
|
"react": "19.2.3",
|
|
44
45
|
"@types/semver": "7.5.3",
|
|
45
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
46
|
+
"@remotion/eslint-config-internal": "4.0.499",
|
|
46
47
|
"eslint": "9.19.0",
|
|
47
48
|
"@types/node": "20.12.14",
|
|
48
49
|
"@typescript/native-preview": "7.0.0-dev.20260217.1"
|