@remotion/renderer 4.0.502 → 4.0.504

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.
@@ -25608,10 +25608,24 @@ var getVideoMetadata = async (videoSource, options2) => {
25608
25608
  };
25609
25609
  // src/options/chrome-mode.tsx
25610
25610
  import { jsx as jsx7, jsxs as jsxs7, Fragment as Fragment7 } from "react/jsx-runtime";
25611
- // src/options/number-of-gif-loops.tsx
25611
+ // src/options/default-editor.tsx
25612
25612
  import { jsx as jsx8, jsxs as jsxs8, Fragment as Fragment8 } from "react/jsx-runtime";
25613
- // src/options/on-browser-download.tsx
25613
+ var defaultEditorIds = [
25614
+ "vscode",
25615
+ "cursor",
25616
+ "windsurf",
25617
+ "zed",
25618
+ "vscodium",
25619
+ "webstorm",
25620
+ "sublime-text"
25621
+ ];
25622
+ var customEditorTargetPathPlaceholder = "%TARGET_PATH%";
25623
+ var customEditorLineNumberPlaceholder = "%LINE_NUMBER%";
25624
+ var customEditorColumnNumberPlaceholder = "%COLUMN_NUMBER%";
25625
+ // src/options/number-of-gif-loops.tsx
25614
25626
  import { jsx as jsx9, jsxs as jsxs9, Fragment as Fragment9 } from "react/jsx-runtime";
25627
+ // src/options/on-browser-download.tsx
25628
+ import { jsx as jsx10, jsxs as jsxs10, Fragment as Fragment10 } from "react/jsx-runtime";
25615
25629
  // src/index.ts
25616
25630
  var RenderInternals = {
25617
25631
  resolveConcurrency,
@@ -25723,6 +25737,10 @@ export {
25723
25737
  getCompositions,
25724
25738
  extractAudio,
25725
25739
  ensureBrowser,
25740
+ defaultEditorIds,
25741
+ customEditorTargetPathPlaceholder,
25742
+ customEditorLineNumberPlaceholder,
25743
+ customEditorColumnNumberPlaceholder,
25726
25744
  combineChunks,
25727
25745
  RenderInternals,
25728
25746
  ErrorWithStackFrame
package/dist/index.d.ts CHANGED
@@ -31,6 +31,8 @@ export type { ChromiumOptions } from './open-browser';
31
31
  export { ChromeMode } from './options/chrome-mode';
32
32
  export { ColorSpace } from './options/color-space';
33
33
  export type { Concurrency } from './options/concurrency';
34
+ export { customEditorColumnNumberPlaceholder, customEditorLineNumberPlaceholder, customEditorTargetPathPlaceholder, defaultEditorIds, } from './options/default-editor';
35
+ export type { BuiltInEditor, CustomEditor, DefaultEditor, } from './options/default-editor';
34
36
  export type { DeleteAfter } from './options/delete-after';
35
37
  export { OpenGlRenderer } from './options/gl';
36
38
  export { NumberOfGifLoops } from './options/number-of-gif-loops';
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.selectComposition = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.openBrowser = exports.makeCancelSignal = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getVideoMetadata = exports.getSilentParts = exports.getCompositions = exports.extractAudio = exports.ErrorWithStackFrame = exports.ensureBrowser = exports.combineChunks = void 0;
39
+ exports.RenderInternals = exports.validateOutputFilename = exports.stitchFramesToVideo = exports.selectComposition = exports.renderStill = exports.renderMedia = exports.renderFrames = exports.defaultEditorIds = exports.customEditorTargetPathPlaceholder = exports.customEditorLineNumberPlaceholder = exports.customEditorColumnNumberPlaceholder = exports.openBrowser = exports.makeCancelSignal = exports.validateSelectedPixelFormatAndImageFormatCombination = exports.getVideoMetadata = exports.getSilentParts = exports.getCompositions = exports.extractAudio = exports.ErrorWithStackFrame = exports.ensureBrowser = exports.combineChunks = void 0;
40
40
  const execa_1 = __importDefault(require("execa"));
41
41
  const download_file_1 = require("./assets/download-file");
42
42
  const browser_1 = require("./browser");
@@ -109,6 +109,11 @@ const make_cancel_signal_1 = require("./make-cancel-signal");
109
109
  Object.defineProperty(exports, "makeCancelSignal", { enumerable: true, get: function () { return make_cancel_signal_1.makeCancelSignal; } });
110
110
  const open_browser_2 = require("./open-browser");
111
111
  Object.defineProperty(exports, "openBrowser", { enumerable: true, get: function () { return open_browser_2.openBrowser; } });
112
+ const default_editor_1 = require("./options/default-editor");
113
+ Object.defineProperty(exports, "customEditorColumnNumberPlaceholder", { enumerable: true, get: function () { return default_editor_1.customEditorColumnNumberPlaceholder; } });
114
+ Object.defineProperty(exports, "customEditorLineNumberPlaceholder", { enumerable: true, get: function () { return default_editor_1.customEditorLineNumberPlaceholder; } });
115
+ Object.defineProperty(exports, "customEditorTargetPathPlaceholder", { enumerable: true, get: function () { return default_editor_1.customEditorTargetPathPlaceholder; } });
116
+ Object.defineProperty(exports, "defaultEditorIds", { enumerable: true, get: function () { return default_editor_1.defaultEditorIds; } });
112
117
  const render_frames_2 = require("./render-frames");
113
118
  Object.defineProperty(exports, "renderFrames", { enumerable: true, get: function () { return render_frames_2.renderFrames; } });
114
119
  const render_media_2 = require("./render-media");
@@ -0,0 +1,28 @@
1
+ export declare const defaultEditorIds: readonly ["vscode", "cursor", "windsurf", "zed", "vscodium", "webstorm", "sublime-text"];
2
+ export declare const customEditorTargetPathPlaceholder: "%TARGET_PATH%";
3
+ export declare const customEditorLineNumberPlaceholder: "%LINE_NUMBER%";
4
+ export declare const customEditorColumnNumberPlaceholder: "%COLUMN_NUMBER%";
5
+ export type BuiltInEditor = (typeof defaultEditorIds)[number];
6
+ export type CustomEditor = {
7
+ readonly type: 'custom';
8
+ readonly name: string;
9
+ readonly executable: string;
10
+ readonly arguments: readonly string[];
11
+ };
12
+ export type DefaultEditor = BuiltInEditor | CustomEditor;
13
+ export declare const defaultEditorOption: {
14
+ name: string;
15
+ cliFlag: "editor";
16
+ description: () => import("react/jsx-runtime").JSX.Element;
17
+ ssrName: null;
18
+ docLink: string;
19
+ type: DefaultEditor | null;
20
+ getValue: ({ commandLine }: {
21
+ commandLine: Record<string, unknown>;
22
+ }) => {
23
+ value: DefaultEditor | null;
24
+ source: string;
25
+ };
26
+ setConfig(value: DefaultEditor | null): void;
27
+ id: "editor";
28
+ };
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultEditorOption = exports.customEditorColumnNumberPlaceholder = exports.customEditorLineNumberPlaceholder = exports.customEditorTargetPathPlaceholder = exports.defaultEditorIds = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ exports.defaultEditorIds = [
6
+ 'vscode',
7
+ 'cursor',
8
+ 'windsurf',
9
+ 'zed',
10
+ 'vscodium',
11
+ 'webstorm',
12
+ 'sublime-text',
13
+ ];
14
+ exports.customEditorTargetPathPlaceholder = '%TARGET_PATH%';
15
+ exports.customEditorLineNumberPlaceholder = '%LINE_NUMBER%';
16
+ exports.customEditorColumnNumberPlaceholder = '%COLUMN_NUMBER%';
17
+ const cliFlag = 'editor';
18
+ let defaultEditor = null;
19
+ const validateBuiltInEditor = (value, source) => {
20
+ if (typeof value !== 'string' ||
21
+ !exports.defaultEditorIds.includes(value)) {
22
+ throw new TypeError(`${source} must be one of: ${exports.defaultEditorIds.join(', ')}. Received: ${JSON.stringify(value)}`);
23
+ }
24
+ return value;
25
+ };
26
+ const validateCustomEditor = (value, source) => {
27
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
28
+ throw new TypeError(`${source} must be a built-in editor ID or a custom editor object. Received: ${JSON.stringify(value)}`);
29
+ }
30
+ const editor = value;
31
+ if (editor.type !== 'custom') {
32
+ throw new TypeError(`${source}: Custom editors must have type "custom".`);
33
+ }
34
+ if (typeof editor.name !== 'string' || editor.name.trim() === '') {
35
+ throw new TypeError(`${source}: Custom editor name must not be empty.`);
36
+ }
37
+ if (typeof editor.executable !== 'string' ||
38
+ editor.executable.trim() === '') {
39
+ throw new TypeError(`${source}: Custom editor executable must not be empty.`);
40
+ }
41
+ if (!Array.isArray(editor.arguments) ||
42
+ !editor.arguments.every((argument) => typeof argument === 'string')) {
43
+ throw new TypeError(`${source}: Custom editor arguments must be an array of strings.`);
44
+ }
45
+ if (!editor.arguments.some((argument) => argument.includes(exports.customEditorTargetPathPlaceholder))) {
46
+ throw new TypeError(`${source}: Custom editor arguments must include ${exports.customEditorTargetPathPlaceholder}.`);
47
+ }
48
+ return editor;
49
+ };
50
+ const validateDefaultEditor = (value, source) => {
51
+ if (value === null) {
52
+ return null;
53
+ }
54
+ return typeof value === 'string'
55
+ ? validateBuiltInEditor(value, source)
56
+ : validateCustomEditor(value, source);
57
+ };
58
+ exports.defaultEditorOption = {
59
+ name: 'Default editor',
60
+ cliFlag,
61
+ description: () => (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Set the default editor for opening files from Remotion Studio. Available editors: ",
62
+ jsx_runtime_1.jsx("code", { children: exports.defaultEditorIds.join(', ') }),
63
+ "."] })),
64
+ ssrName: null,
65
+ docLink: 'https://www.remotion.dev/docs/studio/open-in-editor',
66
+ type: null,
67
+ getValue: ({ commandLine }) => {
68
+ const cliValue = commandLine[cliFlag];
69
+ if (cliValue !== undefined && cliValue !== null) {
70
+ return {
71
+ value: validateBuiltInEditor(cliValue, `--${cliFlag}`),
72
+ source: 'cli',
73
+ };
74
+ }
75
+ return {
76
+ value: defaultEditor,
77
+ source: 'config',
78
+ };
79
+ },
80
+ setConfig(value) {
81
+ defaultEditor = validateDefaultEditor(value, 'Config.setDefaultEditor()');
82
+ },
83
+ id: cliFlag,
84
+ };
@@ -1032,6 +1032,22 @@ export declare const allOptions: {
1032
1032
  setConfig: (value: boolean) => void;
1033
1033
  id: "dark-mode";
1034
1034
  };
1035
+ defaultEditorOption: {
1036
+ name: string;
1037
+ cliFlag: "editor";
1038
+ description: () => import("react/jsx-runtime").JSX.Element;
1039
+ ssrName: null;
1040
+ docLink: string;
1041
+ type: import("./default-editor").DefaultEditor | null;
1042
+ getValue: ({ commandLine }: {
1043
+ commandLine: Record<string, unknown>;
1044
+ }) => {
1045
+ value: import("./default-editor").DefaultEditor | null;
1046
+ source: string;
1047
+ };
1048
+ setConfig(value: import("./default-editor").DefaultEditor | null): void;
1049
+ id: "editor";
1050
+ };
1035
1051
  publicLicenseKeyOption: {
1036
1052
  name: string;
1037
1053
  cliFlag: "public-license-key";
@@ -1371,6 +1387,25 @@ export declare const allOptions: {
1371
1387
  type: string | null;
1372
1388
  id: "package-manager";
1373
1389
  };
1390
+ skipSkillsOption: {
1391
+ name: string;
1392
+ cliFlag: "skip-skills";
1393
+ description: () => import("react/jsx-runtime").JSX.Element;
1394
+ ssrName: null;
1395
+ docLink: string;
1396
+ getValue: ({ commandLine }: {
1397
+ commandLine: Record<string, unknown>;
1398
+ }) => {
1399
+ source: string;
1400
+ value: true;
1401
+ } | {
1402
+ source: string;
1403
+ value: false;
1404
+ };
1405
+ setConfig: () => never;
1406
+ type: boolean;
1407
+ id: "skip-skills";
1408
+ };
1374
1409
  sampleRateOption: {
1375
1410
  name: string;
1376
1411
  cliFlag: "sample-rate";
@@ -18,6 +18,7 @@ const config_1 = require("./config");
18
18
  const crf_1 = require("./crf");
19
19
  const cross_site_isolation_1 = require("./cross-site-isolation");
20
20
  const dark_mode_1 = require("./dark-mode");
21
+ const default_editor_1 = require("./default-editor");
21
22
  const delete_after_1 = require("./delete-after");
22
23
  const disable_git_source_1 = require("./disable-git-source");
23
24
  const disable_web_security_1 = require("./disable-web-security");
@@ -78,6 +79,7 @@ const runs_1 = require("./runs");
78
79
  const sample_rate_1 = require("./sample-rate");
79
80
  const scale_1 = require("./scale");
80
81
  const separate_audio_1 = require("./separate-audio");
82
+ const skip_skills_1 = require("./skip-skills");
81
83
  const still_frame_1 = require("./still-frame");
82
84
  const still_image_format_1 = require("./still-image-format");
83
85
  const throw_if_site_exists_1 = require("./throw-if-site-exists");
@@ -152,6 +154,7 @@ exports.allOptions = {
152
154
  imageSequencePatternOption: image_sequence_pattern_1.imageSequencePatternOption,
153
155
  mediaCacheSizeInBytesOption: video_cache_size_1.mediaCacheSizeInBytesOption,
154
156
  darkModeOption: dark_mode_1.darkModeOption,
157
+ defaultEditorOption: default_editor_1.defaultEditorOption,
155
158
  publicLicenseKeyOption: public_license_key_1.publicLicenseKeyOption,
156
159
  isProductionOption: is_production_1.isProductionOption,
157
160
  askAIOption: ask_ai_1.askAIOption,
@@ -171,6 +174,7 @@ exports.allOptions = {
171
174
  rspackOption: rspack_1.rspackOption,
172
175
  outDirOption: out_dir_1.outDirOption,
173
176
  packageManagerOption: package_manager_1.packageManagerOption,
177
+ skipSkillsOption: skip_skills_1.skipSkillsOption,
174
178
  sampleRateOption: sample_rate_1.sampleRateOption,
175
179
  webpackPollOption: webpack_poll_1.webpackPollOption,
176
180
  stillFrameOption: still_frame_1.stillFrameOption,
@@ -0,0 +1,19 @@
1
+ export declare const skipSkillsOption: {
2
+ name: string;
3
+ cliFlag: "skip-skills";
4
+ description: () => import("react/jsx-runtime").JSX.Element;
5
+ ssrName: null;
6
+ docLink: string;
7
+ getValue: ({ commandLine }: {
8
+ commandLine: Record<string, unknown>;
9
+ }) => {
10
+ source: string;
11
+ value: true;
12
+ } | {
13
+ source: string;
14
+ value: false;
15
+ };
16
+ setConfig: () => never;
17
+ type: boolean;
18
+ id: "skip-skills";
19
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skipSkillsOption = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const cliFlag = 'skip-skills';
6
+ exports.skipSkillsOption = {
7
+ name: 'Skip Skills',
8
+ cliFlag,
9
+ description: () => (jsx_runtime_1.jsx(jsx_runtime_1.Fragment, { children: "Do not update installed Remotion Agent Skills while upgrading Remotion." })),
10
+ ssrName: null,
11
+ docLink: 'https://www.remotion.dev/docs/cli/upgrade#--skip-skills',
12
+ getValue: ({ commandLine }) => {
13
+ if (commandLine[cliFlag]) {
14
+ return {
15
+ source: 'cli',
16
+ value: true,
17
+ };
18
+ }
19
+ return {
20
+ source: 'default',
21
+ value: false,
22
+ };
23
+ },
24
+ setConfig: () => {
25
+ throw new Error('Cannot skip updating skills via config file');
26
+ },
27
+ type: false,
28
+ id: cliFlag,
29
+ };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/renderer"
4
4
  },
5
5
  "name": "@remotion/renderer",
6
- "version": "4.0.502",
6
+ "version": "4.0.504",
7
7
  "description": "Render Remotion videos using Node.js or Bun",
8
8
  "main": "dist/index.js",
9
9
  "types": "dist/index.d.ts",
@@ -22,11 +22,11 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "execa": "5.1.1",
25
- "remotion": "4.0.502",
26
- "@remotion/streaming": "4.0.502",
25
+ "remotion": "4.0.504",
26
+ "@remotion/streaming": "4.0.504",
27
27
  "source-map": "0.8.0",
28
28
  "ws": "8.21.0",
29
- "@remotion/licensing": "4.0.502"
29
+ "@remotion/licensing": "4.0.504"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": ">=16.8.0",
@@ -40,19 +40,19 @@
40
40
  "react-dom": "19.2.3",
41
41
  "@typescript/native-preview": "7.0.0-dev.20260217.1",
42
42
  "@types/ws": "8.5.10",
43
- "@remotion/example-videos": "4.0.502",
44
- "@remotion/eslint-config-internal": "4.0.502",
43
+ "@remotion/example-videos": "4.0.504",
44
+ "@remotion/eslint-config-internal": "4.0.504",
45
45
  "eslint": "9.19.0",
46
46
  "@types/node": "20.12.14"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@remotion/compositor-darwin-arm64": "4.0.502",
50
- "@remotion/compositor-darwin-x64": "4.0.502",
51
- "@remotion/compositor-linux-arm64-gnu": "4.0.502",
52
- "@remotion/compositor-linux-arm64-musl": "4.0.502",
53
- "@remotion/compositor-linux-x64-gnu": "4.0.502",
54
- "@remotion/compositor-linux-x64-musl": "4.0.502",
55
- "@remotion/compositor-win32-x64-msvc": "4.0.502"
49
+ "@remotion/compositor-darwin-arm64": "4.0.504",
50
+ "@remotion/compositor-darwin-x64": "4.0.504",
51
+ "@remotion/compositor-linux-arm64-gnu": "4.0.504",
52
+ "@remotion/compositor-linux-arm64-musl": "4.0.504",
53
+ "@remotion/compositor-linux-x64-gnu": "4.0.504",
54
+ "@remotion/compositor-linux-x64-musl": "4.0.504",
55
+ "@remotion/compositor-win32-x64-msvc": "4.0.504"
56
56
  },
57
57
  "keywords": [
58
58
  "remotion",