@remotion/studio-server 4.0.512 → 4.0.514
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/codemods/delete-jsx-node.d.ts +2 -5
- package/dist/codemods/delete-jsx-node.js +23 -341
- package/dist/codemods/duplicate-composition.d.ts +1 -9
- package/dist/codemods/duplicate-composition.js +3 -49
- package/dist/codemods/format-inline-content.d.ts +2 -5
- package/dist/codemods/format-inline-content.js +20 -50
- package/dist/codemods/parse-ast.d.ts +1 -0
- package/dist/codemods/parse-ast.js +5 -1
- package/dist/codemods/recast-mods.js +0 -18
- package/dist/codemods/reorder-sequence.d.ts +2 -2
- package/dist/codemods/reorder-sequence.js +12 -112
- package/dist/codemods/split-jsx-sequence.d.ts +1 -2
- package/dist/codemods/split-jsx-sequence.js +11 -298
- package/dist/codemods/split-video-from-audio.d.ts +15 -0
- package/dist/codemods/split-video-from-audio.js +15 -0
- package/dist/codemods/update-default-props.d.ts +2 -6
- package/dist/codemods/update-default-props.js +12 -220
- package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.d.ts +1 -4
- package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.js +5 -102
- package/dist/codemods/update-keyframes/update-keyframes.d.ts +8 -93
- package/dist/codemods/update-keyframes/update-keyframes.js +11 -1302
- package/dist/codemods/update-sequence-props/update-sequence-props.d.ts +4 -1
- package/dist/codemods/update-sequence-props/update-sequence-props.js +47 -3
- package/dist/detect-outdated-remotion-skills.d.ts +7 -0
- package/dist/detect-outdated-remotion-skills.js +11 -5
- package/dist/helpers/resolve-composition-component.d.ts +3 -11
- package/dist/helpers/resolve-composition-component.js +38 -1495
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -0
- package/dist/max-timeline-tracks.d.ts +2 -1
- package/dist/max-timeline-tracks.js +10 -4
- package/dist/preview-server/api-routes.js +4 -0
- package/dist/preview-server/routes/add-effect.js +1 -1
- package/dist/preview-server/routes/apply-codemod.js +3 -3
- package/dist/preview-server/routes/apply-visual-control-change.js +3 -3
- package/dist/preview-server/routes/can-update-effect-props.js +3 -0
- package/dist/preview-server/routes/can-update-sequence-props.d.ts +26 -0
- package/dist/preview-server/routes/can-update-sequence-props.js +437 -61
- package/dist/preview-server/routes/default-editor.js +4 -1
- package/dist/preview-server/routes/delete-effect.js +1 -1
- package/dist/preview-server/routes/delete-jsx-node.js +1 -1
- package/dist/preview-server/routes/duplicate-effect.js +1 -1
- package/dist/preview-server/routes/duplicate-jsx-node.js +1 -1
- package/dist/preview-server/routes/element-install-plan.d.ts +1 -1
- package/dist/preview-server/routes/insert-element.js +2 -2
- package/dist/preview-server/routes/insert-jsx-element.js +1 -1
- package/dist/preview-server/routes/log-updates/log-effect-update.js +2 -1
- package/dist/preview-server/routes/log-updates/log-update.js +2 -1
- package/dist/preview-server/routes/paste-effects.js +1 -1
- package/dist/preview-server/routes/remotion-skills-info.d.ts +7 -0
- package/dist/preview-server/routes/remotion-skills-info.js +24 -0
- package/dist/preview-server/routes/reorder-effect.js +1 -1
- package/dist/preview-server/routes/reorder-sequence.js +1 -1
- package/dist/preview-server/routes/save-sequence-props.js +27 -4
- package/dist/preview-server/routes/source-file-write-queue.d.ts +1 -0
- package/dist/preview-server/routes/source-file-write-queue.js +11 -2
- package/dist/preview-server/routes/split-jsx-sequence.js +1 -1
- package/dist/preview-server/routes/split-video-from-audio.d.ts +3 -0
- package/dist/preview-server/routes/split-video-from-audio.js +80 -0
- package/dist/preview-server/routes/subscribe-to-sequence-props.d.ts +2 -2
- package/dist/preview-server/routes/subscribe-to-sequence-props.js +37 -3
- package/dist/preview-server/routes/update-default-props.js +1 -1
- package/dist/preview-server/sequence-props-watchers.d.ts +2 -1
- package/dist/preview-server/sequence-props-watchers.js +33 -2
- package/dist/preview-server/start-server.js +188 -140
- package/dist/preview-server/undo-stack.d.ts +3 -52
- package/dist/preview-server/update-available.js +4 -4
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -60,7 +60,8 @@ export declare const StudioServerInternals: {
|
|
|
60
60
|
installCommand: string;
|
|
61
61
|
startCommand: string;
|
|
62
62
|
};
|
|
63
|
-
getMaxTimelineTracks: () => number;
|
|
63
|
+
getMaxTimelineTracks: () => number | null;
|
|
64
|
+
getConfiguredMaxTimelineTracks: () => number | null;
|
|
64
65
|
setMaxTimelineTracks: (maxTracks: number) => void;
|
|
65
66
|
resetMaxTimelineTracks: () => void;
|
|
66
67
|
getLatestRemotionVersion: () => Promise<any>;
|
|
@@ -92,7 +93,7 @@ export declare const StudioServerInternals: {
|
|
|
92
93
|
codeMod: import("@remotion/studio-shared").RecastCodemod;
|
|
93
94
|
}) => {
|
|
94
95
|
newContents: string;
|
|
95
|
-
changesMade: import("
|
|
96
|
+
changesMade: import("@remotion/studio-codemods").Change[];
|
|
96
97
|
};
|
|
97
98
|
applyCodemodToFile: ({ filePath, codeMod, }: {
|
|
98
99
|
filePath: string;
|
package/dist/index.js
CHANGED
|
@@ -32,6 +32,7 @@ exports.StudioServerInternals = {
|
|
|
32
32
|
lockFilePaths: get_package_manager_1.lockFilePaths,
|
|
33
33
|
getPackageManager: get_package_manager_1.getPackageManager,
|
|
34
34
|
getMaxTimelineTracks: max_timeline_tracks_1.getMaxTimelineTracks,
|
|
35
|
+
getConfiguredMaxTimelineTracks: max_timeline_tracks_1.getConfiguredMaxTimelineTracks,
|
|
35
36
|
setMaxTimelineTracks: max_timeline_tracks_1.setMaxTimelineTracks,
|
|
36
37
|
resetMaxTimelineTracks: max_timeline_tracks_1.resetMaxTimelineTracks,
|
|
37
38
|
getLatestRemotionVersion: get_latest_remotion_version_1.getLatestRemotionVersion,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const setMaxTimelineTracks: (maxTracks: number) => void;
|
|
2
|
-
export declare const getMaxTimelineTracks: () => number;
|
|
2
|
+
export declare const getMaxTimelineTracks: () => number | null;
|
|
3
|
+
export declare const getConfiguredMaxTimelineTracks: () => number | null;
|
|
3
4
|
export declare const resetMaxTimelineTracks: () => void;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resetMaxTimelineTracks = exports.getMaxTimelineTracks = exports.setMaxTimelineTracks = void 0;
|
|
4
|
-
|
|
5
|
-
let
|
|
3
|
+
exports.resetMaxTimelineTracks = exports.getConfiguredMaxTimelineTracks = exports.getMaxTimelineTracks = exports.setMaxTimelineTracks = void 0;
|
|
4
|
+
let maxTimelineTracks = null;
|
|
5
|
+
let configuredMaxTimelineTracks = null;
|
|
6
6
|
const setMaxTimelineTracks = (maxTracks) => {
|
|
7
7
|
if (typeof maxTracks !== 'number') {
|
|
8
8
|
throw new Error(`Need to pass a number to Config.setMaxTimelineTracks(), got ${typeof maxTracks}`);
|
|
@@ -17,13 +17,19 @@ const setMaxTimelineTracks = (maxTracks) => {
|
|
|
17
17
|
throw new Error(`Need to pass a non-negative number to Config.setMaxTimelineTracks(), got ${maxTracks}`);
|
|
18
18
|
}
|
|
19
19
|
maxTimelineTracks = maxTracks;
|
|
20
|
+
configuredMaxTimelineTracks = maxTracks;
|
|
20
21
|
};
|
|
21
22
|
exports.setMaxTimelineTracks = setMaxTimelineTracks;
|
|
22
23
|
const getMaxTimelineTracks = () => {
|
|
23
24
|
return maxTimelineTracks;
|
|
24
25
|
};
|
|
25
26
|
exports.getMaxTimelineTracks = getMaxTimelineTracks;
|
|
27
|
+
const getConfiguredMaxTimelineTracks = () => {
|
|
28
|
+
return configuredMaxTimelineTracks;
|
|
29
|
+
};
|
|
30
|
+
exports.getConfiguredMaxTimelineTracks = getConfiguredMaxTimelineTracks;
|
|
26
31
|
const resetMaxTimelineTracks = () => {
|
|
27
|
-
maxTimelineTracks =
|
|
32
|
+
maxTimelineTracks = null;
|
|
33
|
+
configuredMaxTimelineTracks = null;
|
|
28
34
|
};
|
|
29
35
|
exports.resetMaxTimelineTracks = resetMaxTimelineTracks;
|
|
@@ -37,6 +37,7 @@ const prepare_element_install_1 = require("./routes/prepare-element-install");
|
|
|
37
37
|
const project_info_1 = require("./routes/project-info");
|
|
38
38
|
const redo_1 = require("./routes/redo");
|
|
39
39
|
const register_client_render_1 = require("./routes/register-client-render");
|
|
40
|
+
const remotion_skills_info_1 = require("./routes/remotion-skills-info");
|
|
40
41
|
const remove_render_1 = require("./routes/remove-render");
|
|
41
42
|
const rename_static_file_1 = require("./routes/rename-static-file");
|
|
42
43
|
const reorder_effect_1 = require("./routes/reorder-effect");
|
|
@@ -46,6 +47,7 @@ const save_effect_props_1 = require("./routes/save-effect-props");
|
|
|
46
47
|
const save_multiple_effect_props_1 = require("./routes/save-multiple-effect-props");
|
|
47
48
|
const save_sequence_props_1 = require("./routes/save-sequence-props");
|
|
48
49
|
const split_jsx_sequence_1 = require("./routes/split-jsx-sequence");
|
|
50
|
+
const split_video_from_audio_1 = require("./routes/split-video-from-audio");
|
|
49
51
|
const subscribe_to_default_props_1 = require("./routes/subscribe-to-default-props");
|
|
50
52
|
const subscribe_to_file_existence_1 = require("./routes/subscribe-to-file-existence");
|
|
51
53
|
const subscribe_to_sequence_props_1 = require("./routes/subscribe-to-sequence-props");
|
|
@@ -104,7 +106,9 @@ exports.allApiRoutes = {
|
|
|
104
106
|
'/api/delete-jsx-node': delete_jsx_node_1.deleteJsxNodeHandler,
|
|
105
107
|
'/api/duplicate-jsx-node': duplicate_jsx_node_1.duplicateJsxNodeHandler,
|
|
106
108
|
'/api/split-jsx-sequence': split_jsx_sequence_1.splitJsxSequenceHandler,
|
|
109
|
+
'/api/split-video-from-audio': split_video_from_audio_1.splitVideoFromAudioHandler,
|
|
107
110
|
'/api/update-available': update_available_1.handleUpdate,
|
|
111
|
+
'/api/remotion-skills-info': remotion_skills_info_1.remotionSkillsInfoHandler,
|
|
108
112
|
'/api/project-info': project_info_1.projectInfoHandler,
|
|
109
113
|
'/api/delete-static-file': delete_static_file_1.deleteStaticFileHandler,
|
|
110
114
|
'/api/rename-static-file': rename_static_file_1.renameStaticFileHandler,
|
|
@@ -55,7 +55,7 @@ const addEffectHandler = ({ input: { fileName, sequenceNodePath, effectName, eff
|
|
|
55
55
|
absolutePath,
|
|
56
56
|
line: logLine,
|
|
57
57
|
});
|
|
58
|
-
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Added ${(0, formatting_1.attrName)(effectLabel)} to ${nodeLabel}`);
|
|
58
|
+
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Added ${(0, formatting_1.attrName)(effectLabel)} to ${nodeLabel}`);
|
|
59
59
|
if (!formatted) {
|
|
60
60
|
(0, log_update_1.warnAboutPrettierOnce)(logLevel);
|
|
61
61
|
}
|
|
@@ -7,10 +7,10 @@ exports.applyCodemodHandler = exports.getCodemodLogMessage = void 0;
|
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_path_1 = __importDefault(require("node:path"));
|
|
9
9
|
const renderer_1 = require("@remotion/renderer");
|
|
10
|
+
const studio_codemods_1 = require("@remotion/studio-codemods");
|
|
10
11
|
const generate_canvas_capture_composition_1 = require("../../canvas-capture/generate-canvas-capture-composition");
|
|
11
12
|
const apply_codemod_to_file_1 = require("../../codemods/apply-codemod-to-file");
|
|
12
13
|
const duplicate_composition_1 = require("../../codemods/duplicate-composition");
|
|
13
|
-
const simple_diff_1 = require("../../codemods/simple-diff");
|
|
14
14
|
const file_watcher_1 = require("../../file-watcher");
|
|
15
15
|
const format_log_file_location_1 = require("../format-log-file-location");
|
|
16
16
|
const project_info_1 = require("../project-info");
|
|
@@ -194,7 +194,7 @@ const applyCodemodHandler = ({ input: { codemod, dryRun, symbolicatedStack }, lo
|
|
|
194
194
|
filePath,
|
|
195
195
|
codeMod: codemod,
|
|
196
196
|
});
|
|
197
|
-
const diff = (0,
|
|
197
|
+
const diff = (0, studio_codemods_1.simpleDiff)({
|
|
198
198
|
oldLines: input.split('\n'),
|
|
199
199
|
newLines: formatted.split('\n'),
|
|
200
200
|
});
|
|
@@ -272,7 +272,7 @@ const applyCodemodHandler = ({ input: { codemod, dryRun, symbolicatedStack }, lo
|
|
|
272
272
|
});
|
|
273
273
|
}
|
|
274
274
|
const logMessage = (0, exports.getCodemodLogMessage)(codemod);
|
|
275
|
-
const editMessage = `${renderer_1.RenderInternals.chalk.blueBright((0, format_log_file_location_1.formatLogFileLocation)({
|
|
275
|
+
const editMessage = `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright((0, format_log_file_location_1.formatLogFileLocation)({
|
|
276
276
|
remotionRoot,
|
|
277
277
|
absolutePath: filePath,
|
|
278
278
|
line: logLine,
|
|
@@ -36,9 +36,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.applyVisualControlHandler = void 0;
|
|
37
37
|
const node_fs_1 = require("node:fs");
|
|
38
38
|
const renderer_1 = require("@remotion/renderer");
|
|
39
|
+
const studio_codemods_1 = require("@remotion/studio-codemods");
|
|
39
40
|
const recast = __importStar(require("recast"));
|
|
40
41
|
const parse_ast_1 = require("../../codemods/parse-ast");
|
|
41
|
-
const recast_mods_1 = require("../../codemods/recast-mods");
|
|
42
42
|
const file_watcher_1 = require("../../file-watcher");
|
|
43
43
|
const resolve_file_inside_project_1 = require("../../helpers/resolve-file-inside-project");
|
|
44
44
|
const format_log_file_location_1 = require("../format-log-file-location");
|
|
@@ -78,7 +78,7 @@ const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot,
|
|
|
78
78
|
const fileContents = (0, node_fs_1.readFileSync)(absolutePath, 'utf-8');
|
|
79
79
|
const ast = (0, parse_ast_1.parseAst)(fileContents);
|
|
80
80
|
const logLine = changes.length > 0 ? getVisualControlChangeLine(ast, changes[0].id) : 1;
|
|
81
|
-
const { newAst, changesMade } = (0,
|
|
81
|
+
const { newAst, changesMade } = (0, studio_codemods_1.applyCodemod)({
|
|
82
82
|
file: ast,
|
|
83
83
|
codeMod: {
|
|
84
84
|
type: 'apply-visual-control',
|
|
@@ -150,7 +150,7 @@ const applyVisualControlHandler = ({ input: { fileName, changes }, remotionRoot,
|
|
|
150
150
|
absolutePath,
|
|
151
151
|
line: logLine,
|
|
152
152
|
});
|
|
153
|
-
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Applied visual control changes`);
|
|
153
|
+
renderer_1.RenderInternals.Log.info({ indent: false, logLevel }, `${(0, source_file_write_queue_1.getCodemodTimingPrefix)(logLevel)}${renderer_1.RenderInternals.chalk.blueBright(`${locationLabel}`)} Applied visual control changes`);
|
|
154
154
|
if (!formatted) {
|
|
155
155
|
(0, log_update_1.warnAboutPrettierOnce)(logLevel);
|
|
156
156
|
}
|
|
@@ -10,6 +10,7 @@ const video_config_values_1 = require("../../helpers/video-config-values");
|
|
|
10
10
|
const can_update_sequence_props_1 = require("./can-update-sequence-props");
|
|
11
11
|
const staticStatus = (codeValue) => ({
|
|
12
12
|
status: 'static',
|
|
13
|
+
keyframeDisplayOffsetAdjustment: null,
|
|
13
14
|
codeValue,
|
|
14
15
|
});
|
|
15
16
|
const findEffectsAttr = (jsx) => {
|
|
@@ -110,6 +111,7 @@ const getPropsFromObjectExpression = ({ ast, objExpr, keys, videoConfigValues, }
|
|
|
110
111
|
out[key] = numericExpression
|
|
111
112
|
? {
|
|
112
113
|
status: 'static',
|
|
114
|
+
keyframeDisplayOffsetAdjustment: null,
|
|
113
115
|
codeValue: numericExpression.value,
|
|
114
116
|
...(numericExpression.type === 'literal'
|
|
115
117
|
? {}
|
|
@@ -120,6 +122,7 @@ const getPropsFromObjectExpression = ({ ast, objExpr, keys, videoConfigValues, }
|
|
|
120
122
|
}
|
|
121
123
|
out[key] = {
|
|
122
124
|
status: 'static',
|
|
125
|
+
keyframeDisplayOffsetAdjustment: null,
|
|
123
126
|
codeValue: (0, can_update_sequence_props_1.extractStaticValue)(valueExpr),
|
|
124
127
|
};
|
|
125
128
|
}
|
|
@@ -2,6 +2,7 @@ import type { Expression, File, JSXElement, JSXOpeningElement } from '@babel/typ
|
|
|
2
2
|
import type { SubscribeToSequencePropsResponse } from '@remotion/studio-shared';
|
|
3
3
|
import type { CanUpdateSequencePropsResponseTrue, CanUpdateSequencePropStatus, SequenceNodePath, VideoConfigValues } from 'remotion';
|
|
4
4
|
import { type VideoConfigIdentifierValues } from '../../helpers/video-config-values';
|
|
5
|
+
export declare const takeCachedSequencePropsStatusAst: (fileContents: string) => File | null;
|
|
5
6
|
type StaticValueOptions = {
|
|
6
7
|
allowSpecialValues: boolean;
|
|
7
8
|
};
|
|
@@ -24,6 +25,31 @@ export declare const hasJsxChildrenAttribute: (jsxElement: JSXOpeningElement) =>
|
|
|
24
25
|
export declare const getStaticJsxTextContent: (jsxElement: JSXElement) => StaticJsxTextContent | null;
|
|
25
26
|
export declare const findNodePathForJsxElement: (ast: File, target: JSXOpeningElement) => SequenceNodePath | null;
|
|
26
27
|
export declare const lineColumnToNodePath: (ast: File, targetLine: number, targetColumn?: number | undefined, fileContents?: string | undefined) => SequenceNodePath | null;
|
|
28
|
+
export declare const lineColumnsToNodePaths: ({ ast, targets, fileContents, }: {
|
|
29
|
+
ast: File;
|
|
30
|
+
targets: {
|
|
31
|
+
line: number;
|
|
32
|
+
column: number;
|
|
33
|
+
}[];
|
|
34
|
+
fileContents: string;
|
|
35
|
+
}) => (SequenceNodePath | null)[];
|
|
36
|
+
export declare const resolveSequencePropsNodePathsFromFilename: ({ fileName, targets, remotionRoot, }: {
|
|
37
|
+
fileName: string;
|
|
38
|
+
targets: {
|
|
39
|
+
line: number;
|
|
40
|
+
column: number;
|
|
41
|
+
}[];
|
|
42
|
+
remotionRoot: string;
|
|
43
|
+
}) => (SequenceNodePath | null)[];
|
|
44
|
+
export declare const computeSequencePropsStatusFromAst: ({ ast, nodePath, componentIdentity, keys, assetKeys, effects, videoConfigValues, }: {
|
|
45
|
+
ast: File;
|
|
46
|
+
nodePath: SequenceNodePath;
|
|
47
|
+
componentIdentity: string | null;
|
|
48
|
+
keys: string[];
|
|
49
|
+
assetKeys?: string[] | undefined;
|
|
50
|
+
effects: string[][];
|
|
51
|
+
videoConfigValues: VideoConfigValues | null;
|
|
52
|
+
}) => CanUpdateSequencePropsResponseTrue;
|
|
27
53
|
export declare const computeSequencePropsStatusFromContent: ({ fileContents, nodePath, componentIdentity, keys, assetKeys, effects, videoConfigValues, }: {
|
|
28
54
|
fileContents: string;
|
|
29
55
|
nodePath: SequenceNodePath;
|