@remotion/cli 3.3.10 → 3.3.12

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.
@@ -7,3 +7,5 @@ export declare const getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl
7
7
  export declare const setChromiumOpenGlRenderer: (renderer: OpenGlRenderer) => void;
8
8
  export declare const getChromiumHeadlessMode: () => boolean;
9
9
  export declare const setChromiumHeadlessMode: (should: boolean) => void;
10
+ export declare const getChromiumEnableExtensions: () => boolean;
11
+ export declare const setEnableChromiumExtensions: (should: boolean) => void;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setChromiumHeadlessMode = exports.getChromiumHeadlessMode = exports.setChromiumOpenGlRenderer = exports.getChromiumOpenGlRenderer = exports.setChromiumIgnoreCertificateErrors = exports.getIgnoreCertificateErrors = exports.setChromiumDisableWebSecurity = exports.getChromiumDisableWebSecurity = void 0;
3
+ exports.setEnableChromiumExtensions = exports.getChromiumEnableExtensions = exports.setChromiumHeadlessMode = exports.getChromiumHeadlessMode = exports.setChromiumOpenGlRenderer = exports.getChromiumOpenGlRenderer = exports.setChromiumIgnoreCertificateErrors = exports.getIgnoreCertificateErrors = exports.setChromiumDisableWebSecurity = exports.getChromiumDisableWebSecurity = void 0;
4
4
  const renderer_1 = require("@remotion/renderer");
5
5
  let chromiumDisableWebSecurity = false;
6
6
  let ignoreCertificateErrors = false;
7
7
  let openGlRenderer = renderer_1.RenderInternals.DEFAULT_OPENGL_RENDERER;
8
8
  let headlessMode = true;
9
+ let enableExtensions = false;
9
10
  const getChromiumDisableWebSecurity = () => chromiumDisableWebSecurity;
10
11
  exports.getChromiumDisableWebSecurity = getChromiumDisableWebSecurity;
11
12
  const setChromiumDisableWebSecurity = (should) => {
@@ -31,3 +32,9 @@ const setChromiumHeadlessMode = (should) => {
31
32
  headlessMode = should;
32
33
  };
33
34
  exports.setChromiumHeadlessMode = setChromiumHeadlessMode;
35
+ const getChromiumEnableExtensions = () => enableExtensions;
36
+ exports.getChromiumEnableExtensions = getChromiumEnableExtensions;
37
+ const setEnableChromiumExtensions = (should) => {
38
+ enableExtensions = should;
39
+ };
40
+ exports.setEnableChromiumExtensions = setEnableChromiumExtensions;
@@ -23,6 +23,7 @@ export declare const ConfigInternals: {
23
23
  getIgnoreCertificateErrors: () => boolean;
24
24
  getChromiumHeadlessMode: () => boolean;
25
25
  getChromiumOpenGlRenderer: () => "swangle" | "angle" | "egl" | "swiftshader" | null;
26
+ getChromiumEnableExtensions: () => boolean;
26
27
  getEveryNthFrame: () => number;
27
28
  getConcurrency: () => number | null;
28
29
  getCurrentPuppeteerTimeout: () => number;
@@ -53,5 +54,6 @@ export declare const ConfigInternals: {
53
54
  getCrfOrUndefined: () => import("@remotion/renderer").Crf;
54
55
  getEntryPoint: () => string | null;
55
56
  getNumberOfGifLoops: () => import("./number-of-gif-loops").Loop;
57
+ getWebpackPolling: () => number | null;
56
58
  };
57
59
  export declare const overrideRemotion: () => void;
@@ -82,12 +82,14 @@ const quality_2 = require("./quality");
82
82
  const scale_2 = require("./scale");
83
83
  const timeout_2 = require("./timeout");
84
84
  const webpack_caching_2 = require("./webpack-caching");
85
+ const webpack_poll_1 = require("./webpack-poll");
85
86
  const width_1 = require("./width");
86
87
  exports.Config = {
87
88
  Preview: {
88
89
  setMaxTimelineTracks: max_timeline_tracks_2.setMaxTimelineTracks,
89
90
  setKeyboardShortcutsEnabled: keyboard_shortcuts_1.setKeyboardShortcutsEnabled,
90
91
  setNumberOfSharedAudioTags: number_of_shared_audio_tags_1.setNumberOfSharedAudioTags,
92
+ setWebpackPollingInMilliseconds: webpack_poll_1.setWebpackPollingInMilliseconds,
91
93
  },
92
94
  Bundling: {
93
95
  overrideWebpackConfig: override_webpack_2.overrideWebpackConfig,
@@ -105,6 +107,7 @@ exports.Config = {
105
107
  setChromiumDisableWebSecurity: chromium_flags_2.setChromiumDisableWebSecurity,
106
108
  setChromiumIgnoreCertificateErrors: chromium_flags_2.setChromiumIgnoreCertificateErrors,
107
109
  setChromiumHeadlessMode: chromium_flags_2.setChromiumHeadlessMode,
110
+ setEnableChromiumExtensions: chromium_flags_1.setEnableChromiumExtensions,
108
111
  setChromiumOpenGlRenderer: chromium_flags_2.setChromiumOpenGlRenderer,
109
112
  },
110
113
  Rendering: {
@@ -154,6 +157,7 @@ exports.ConfigInternals = {
154
157
  getIgnoreCertificateErrors: chromium_flags_1.getIgnoreCertificateErrors,
155
158
  getChromiumHeadlessMode: chromium_flags_1.getChromiumHeadlessMode,
156
159
  getChromiumOpenGlRenderer: chromium_flags_1.getChromiumOpenGlRenderer,
160
+ getChromiumEnableExtensions: chromium_flags_1.getChromiumEnableExtensions,
157
161
  getEveryNthFrame: every_nth_frame_1.getEveryNthFrame,
158
162
  getConcurrency: concurrency_1.getConcurrency,
159
163
  getCurrentPuppeteerTimeout: timeout_1.getCurrentPuppeteerTimeout,
@@ -184,6 +188,7 @@ exports.ConfigInternals = {
184
188
  getCrfOrUndefined: crf_1.getCrfOrUndefined,
185
189
  getEntryPoint: entry_point_1.getEntryPoint,
186
190
  getNumberOfGifLoops: number_of_gif_loops_1.getNumberOfGifLoops,
191
+ getWebpackPolling: webpack_poll_1.getWebpackPolling,
187
192
  };
188
193
  const overrideRemotion = () => {
189
194
  Object.assign(remotion_1.Config, exports.Config);
@@ -1,3 +1,3 @@
1
1
  import type { LogLevel } from '@remotion/renderer';
2
- export declare const getLogLevel: () => "error" | "verbose" | "info" | "warn";
2
+ export declare const getLogLevel: () => "verbose" | "error" | "info" | "warn";
3
3
  export declare const setLogLevel: (newLogLevel: LogLevel) => void;
@@ -0,0 +1,2 @@
1
+ export declare const setWebpackPollingInMilliseconds: (interval: number | null) => void;
2
+ export declare const getWebpackPolling: () => number | null;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebpackPolling = exports.setWebpackPollingInMilliseconds = void 0;
4
+ const DEFAULT_WEBPACK_POLL = null;
5
+ let webpackPolling = DEFAULT_WEBPACK_POLL;
6
+ const setWebpackPollingInMilliseconds = (interval) => {
7
+ if (typeof interval !== 'number' && interval !== null) {
8
+ throw new TypeError(`Polling must be a number or null, got ${JSON.stringify(interval)} instead.`);
9
+ }
10
+ webpackPolling = interval;
11
+ };
12
+ exports.setWebpackPollingInMilliseconds = setWebpackPollingInMilliseconds;
13
+ const getWebpackPolling = () => {
14
+ return webpackPolling;
15
+ };
16
+ exports.getWebpackPolling = getWebpackPolling;
@@ -0,0 +1,2 @@
1
+ import type { SymbolicatedStackFrame } from '../../preview-server/error-overlay/react-overlay/utils/stack-frame';
2
+ export declare const openInEditor: (stack: SymbolicatedStackFrame) => Promise<Response>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openInEditor = void 0;
4
+ const openInEditor = (stack) => {
5
+ const { originalFileName, originalLineNumber, originalColumnNumber, originalFunctionName, originalScriptCode, } = stack;
6
+ return fetch(`/api/open-in-editor`, {
7
+ method: 'post',
8
+ headers: {
9
+ 'content-type': 'application/json',
10
+ },
11
+ body: JSON.stringify({
12
+ stack: {
13
+ originalFileName,
14
+ originalLineNumber,
15
+ originalColumnNumber,
16
+ originalFunctionName,
17
+ originalScriptCode,
18
+ },
19
+ }),
20
+ });
21
+ };
22
+ exports.openInEditor = openInEditor;
@@ -7,6 +7,7 @@ const remotion_1 = require("remotion");
7
7
  const ShortcutHint_1 = require("../../preview-server/error-overlay/remotion-overlay/ShortcutHint");
8
8
  const truthy_1 = require("../../truthy");
9
9
  const layout_1 = require("../components/layout");
10
+ const NotificationCenter_1 = require("../components/Notifications/NotificationCenter");
10
11
  const SizeSelector_1 = require("../components/SizeSelector");
11
12
  const TimelineInOutToggle_1 = require("../components/TimelineInOutToggle");
12
13
  const Checkmark_1 = require("../icons/Checkmark");
@@ -16,6 +17,7 @@ const preview_size_1 = require("../state/preview-size");
16
17
  const rich_timeline_1 = require("../state/rich-timeline");
17
18
  const sidebar_1 = require("../state/sidebar");
18
19
  const timeline_ref_1 = require("../state/timeline-ref");
20
+ const open_in_editor_1 = require("./open-in-editor");
19
21
  const pick_color_1 = require("./pick-color");
20
22
  const use_keybinding_1 = require("./use-keybinding");
21
23
  const openExternal = (link) => {
@@ -123,7 +125,50 @@ const useMenuStructure = (closeMenu) => {
123
125
  subMenu: null,
124
126
  quickSwitcherLabel: 'New still...',
125
127
  },
126
- ],
128
+ window.remotion_editorName
129
+ ? {
130
+ id: 'open-in-editor',
131
+ value: 'open-in-editor',
132
+ label: `Open in ${window.remotion_editorName}`,
133
+ onClick: async () => {
134
+ await (0, open_in_editor_1.openInEditor)({
135
+ originalFileName: `${window.remotion_cwd}`,
136
+ originalLineNumber: 1,
137
+ originalColumnNumber: 1,
138
+ originalFunctionName: null,
139
+ originalScriptCode: null,
140
+ })
141
+ .then((res) => res.json())
142
+ .then(({ success }) => {
143
+ var _a;
144
+ if (!success) {
145
+ (_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
146
+ content: `Could not open ${window.remotion_editorName}`,
147
+ duration: 2000,
148
+ created: Date.now(),
149
+ id: String(Math.random()),
150
+ });
151
+ }
152
+ })
153
+ .catch((err) => {
154
+ var _a;
155
+ console.error(err);
156
+ (_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
157
+ content: `Could not open ${window.remotion_editorName}`,
158
+ duration: 2000,
159
+ created: Date.now(),
160
+ id: String(Math.random()),
161
+ });
162
+ });
163
+ },
164
+ type: 'item',
165
+ keyHint: null,
166
+ leftItem: null,
167
+ subMenu: null,
168
+ quickSwitcherLabel: 'Open in editor...',
169
+ }
170
+ : null,
171
+ ].filter(truthy_1.truthy),
127
172
  quickSwitcherLabel: null,
128
173
  },
129
174
  {
@@ -30,7 +30,7 @@ export declare const getCliOptions: (options: {
30
30
  browserExecutable: BrowserExecutable;
31
31
  ffmpegExecutable: import("@remotion/renderer").FfmpegExecutable;
32
32
  ffprobeExecutable: import("@remotion/renderer").FfmpegExecutable;
33
- logLevel: "error" | "verbose" | "info" | "warn";
33
+ logLevel: "verbose" | "error" | "info" | "warn";
34
34
  scale: number;
35
35
  chromiumOptions: ChromiumOptions;
36
36
  overwrite: boolean;
@@ -131,6 +131,7 @@ const getCliOptions = async (options) => {
131
131
  ignoreCertificateErrors: config_1.ConfigInternals.getIgnoreCertificateErrors(),
132
132
  headless: config_1.ConfigInternals.getChromiumHeadlessMode(),
133
133
  gl: (_a = config_1.ConfigInternals.getChromiumOpenGlRenderer()) !== null && _a !== void 0 ? _a : renderer_1.RenderInternals.DEFAULT_OPENGL_RENDERER,
134
+ enableExtensions: config_1.ConfigInternals.getChromiumEnableExtensions(),
134
135
  };
135
136
  const everyNthFrame = config_1.ConfigInternals.getEveryNthFrame();
136
137
  const numberOfGifLoops = config_1.ConfigInternals.getNumberOfGifLoops();
package/dist/index.d.ts CHANGED
@@ -88,7 +88,7 @@ export declare const CliInternals: {
88
88
  browserExecutable: import("@remotion/renderer").BrowserExecutable;
89
89
  ffmpegExecutable: import("@remotion/renderer").FfmpegExecutable;
90
90
  ffprobeExecutable: import("@remotion/renderer").FfmpegExecutable;
91
- logLevel: "error" | "verbose" | "info" | "warn";
91
+ logLevel: "verbose" | "error" | "info" | "warn";
92
92
  scale: number;
93
93
  chromiumOptions: import("@remotion/renderer").ChromiumOptions;
94
94
  overwrite: boolean;
@@ -36,6 +36,7 @@ export declare type CommandLineOptions = {
36
36
  port: number;
37
37
  frame: string | number;
38
38
  ['disable-headless']: boolean;
39
+ ['enable-extensions']: boolean;
39
40
  ['disable-keyboard-shortcuts']: boolean;
40
41
  muted: boolean;
41
42
  height: number;
@@ -45,6 +46,7 @@ export declare type CommandLineOptions = {
45
46
  ['enforce-audio-track']: boolean;
46
47
  gl: OpenGlRenderer;
47
48
  ['package-manager']: string;
49
+ ['webpack-poll']: number;
48
50
  };
49
51
  export declare const BooleanFlags: string[];
50
52
  export declare const parsedCli: CommandLineOptions & {
@@ -29,6 +29,7 @@ exports.BooleanFlags = [
29
29
  'ignore-certificate-errors',
30
30
  'disable-headless',
31
31
  'disable-keyboard-shortcuts',
32
+ 'default-only',
32
33
  ];
33
34
  exports.parsedCli = (0, minimist_1.default)(process.argv.slice(2), {
34
35
  boolean: exports.BooleanFlags,
@@ -64,6 +65,9 @@ const parseCommandLine = () => {
64
65
  if (exports.parsedCli['disable-headless']) {
65
66
  config_1.Config.Puppeteer.setChromiumHeadlessMode(false);
66
67
  }
68
+ if (exports.parsedCli['enable-extensions']) {
69
+ config_1.Config.Puppeteer.setEnableChromiumExtensions(true);
70
+ }
67
71
  if (exports.parsedCli.log) {
68
72
  if (!renderer_1.RenderInternals.isValidLogLevel(exports.parsedCli.log)) {
69
73
  log_1.Log.error('Invalid `--log` value passed.');
@@ -136,6 +140,9 @@ const parseCommandLine = () => {
136
140
  if (typeof exports.parsedCli['public-dir'] !== 'undefined') {
137
141
  config_1.Config.Bundling.setPublicDir(exports.parsedCli['public-dir']);
138
142
  }
143
+ if (typeof exports.parsedCli['webpack-poll'] !== 'undefined') {
144
+ config_1.Config.Preview.setWebpackPollingInMilliseconds(exports.parsedCli['webpack-poll']);
145
+ }
139
146
  if (typeof exports.parsedCli['audio-bitrate'] !== 'undefined') {
140
147
  config_1.Config.Output.setAudioBitrate(exports.parsedCli['audio-bitrate']);
141
148
  }
@@ -1,4 +1,4 @@
1
- declare const editorNames: readonly ["atom", "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta", "brackets", "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl", "code", "code-insiders", "vscodium", "/Applications/AppCode.app/Contents/MacOS/appcode", "/Applications/CLion.app/Contents/MacOS/clion", "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea", "/Applications/PhpStorm.app/Contents/MacOS/phpstorm", "/Applications/PyCharm.app/Contents/MacOS/pycharm", "/Applications/PyCharm CE.app/Contents/MacOS/pycharm", "/Applications/RubyMine.app/Contents/MacOS/rubymine", "/Applications/WebStorm.app/Contents/MacOS/webstorm", "/Applications/GoLand.app/Contents/MacOS/goland", "/Applications/Rider.app/Contents/MacOS/rider", "mvim", "emacs", "gvim", "idea", "phpstorm", "pycharm", "rubymine", "sublime_text", "vim", "webstorm", "goland", "rider", "Brackets.exe", "Code.exe", "Code - Insiders.exe", "VSCodium.exe", "atom.exe", "sublime_text.exe", "notepad++.exe", "clion.exe", "clion64.exe", "idea.exe", "idea64.exe", "phpstorm.exe", "phpstorm64.exe", "pycharm.exe", "pycharm64.exe", "rubymine.exe", "rubymine64.exe", "webstorm.exe", "webstorm64.exe", "goland.exe", "goland64.exe", "rider.exe", "rider64.exe", "nano"];
1
+ declare const editorNames: readonly ["atom", "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta", "brackets", "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl", "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl", "code", "code-insiders", "vscodium", "/Applications/AppCode.app/Contents/MacOS/appcode", "/Applications/CLion.app/Contents/MacOS/clion", "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea", "/Applications/PhpStorm.app/Contents/MacOS/phpstorm", "/Applications/PyCharm.app/Contents/MacOS/pycharm", "/Applications/PyCharm CE.app/Contents/MacOS/pycharm", "/Applications/RubyMine.app/Contents/MacOS/rubymine", "/Applications/WebStorm.app/Contents/MacOS/webstorm", "/Applications/GoLand.app/Contents/MacOS/goland", "/Applications/Rider.app/Contents/MacOS/rider", "mvim", "emacs", "gvim", "idea", "phpstorm", "pycharm", "rubymine", "subl", "sublime_text", "vim", "webstorm", "goland", "rider", "Brackets.exe", "Code.exe", "Code - Insiders.exe", "VSCodium.exe", "atom.exe", "sublime_text.exe", "notepad++.exe", "clion.exe", "clion64.exe", "idea.exe", "idea64.exe", "phpstorm.exe", "phpstorm64.exe", "pycharm.exe", "pycharm64.exe", "rubymine.exe", "rubymine64.exe", "webstorm.exe", "webstorm64.exe", "goland.exe", "goland64.exe", "rider.exe", "rider64.exe", "nano"];
2
2
  export declare const getDisplayNameForEditor: (editor: Editor | null) => string | null;
3
3
  declare type Editor = typeof editorNames[number];
4
4
  declare type ProcessAndCommand = {
@@ -80,6 +80,7 @@ const editorNames = [
80
80
  'phpstorm',
81
81
  'pycharm',
82
82
  'rubymine',
83
+ 'subl',
83
84
  'sublime_text',
84
85
  'vim',
85
86
  'webstorm',
@@ -161,6 +162,7 @@ const displayNameForEditor = {
161
162
  pycharm: 'PyCharm',
162
163
  rider: 'Rider',
163
164
  rubymine: 'RubyMine',
165
+ subl: 'Sublime Text',
164
166
  sublime_text: 'Sublime Text',
165
167
  vim: 'vim',
166
168
  vscodium: 'VS Codium',
@@ -215,7 +217,7 @@ const COMMON_EDITORS_LINUX = {
215
217
  'phpstorm.sh': 'phpstorm',
216
218
  'pycharm.sh': 'pycharm',
217
219
  'rubymine.sh': 'rubymine',
218
- sublime_text: 'sublime_text',
220
+ sublime_text: 'subl',
219
221
  vim: 'vim',
220
222
  'webstorm.sh': 'webstorm',
221
223
  'goland.sh': 'goland',
@@ -252,6 +254,7 @@ const COMMON_EDITORS_WIN = [
252
254
  const WINDOWS_FILE_NAME_WHITELIST = /^([A-Za-z]:[/\\])?(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/;
253
255
  function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
254
256
  const editorBasename = path_1.default.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
257
+ const isFolder = fs_1.default.existsSync(fileName) && fs_1.default.lstatSync(fileName).isDirectory();
255
258
  switch (editorBasename) {
256
259
  case 'atom':
257
260
  case 'Atom':
@@ -259,7 +262,9 @@ function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
259
262
  case 'subl':
260
263
  case 'sublime':
261
264
  case 'sublime_text':
262
- return [fileName + ':' + lineNumber + ':' + colNumber];
265
+ return isFolder
266
+ ? [fileName]
267
+ : [fileName + ':' + lineNumber + ':' + colNumber];
263
268
  case 'wstorm':
264
269
  case 'charm':
265
270
  return [fileName + ':' + lineNumber];
@@ -461,23 +466,28 @@ async function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNew
461
466
  }
462
467
  });
463
468
  });
464
- if (process.platform === 'win32') {
465
- // On Windows, launch the editor in a shell because spawn can only
466
- // launch .exe files.
467
- _childProcess = child_process_1.default.spawn('cmd.exe', ['/C', binaryToUse].concat(args), { stdio: 'inherit', detached: true });
468
- }
469
- else {
470
- _childProcess = child_process_1.default.spawn(binaryToUse, args, { stdio: 'inherit' });
471
- }
472
- _childProcess.on('exit', (errorCode) => {
473
- _childProcess = null;
474
- if (errorCode) {
475
- log_1.Log.error(`Process exited with code ${errorCode}`);
469
+ return new Promise((resolve, reject) => {
470
+ if (process.platform === 'win32') {
471
+ // On Windows, launch the editor in a shell because spawn can only
472
+ // launch .exe files.
473
+ _childProcess = child_process_1.default.spawn('cmd.exe', ['/C', binaryToUse].concat(args), { stdio: 'inherit', detached: true });
476
474
  }
475
+ else {
476
+ _childProcess = child_process_1.default.spawn(binaryToUse, args, {
477
+ stdio: 'inherit',
478
+ });
479
+ }
480
+ _childProcess.on('exit', (errorCode) => {
481
+ _childProcess = null;
482
+ if (errorCode) {
483
+ log_1.Log.error(`Process exited with code ${errorCode}`);
484
+ }
485
+ });
486
+ _childProcess.on('error', (error) => {
487
+ log_1.Log.error('Error opening file in editor', fileName, error.message);
488
+ reject(new Error('Error opening file in editor'));
489
+ });
490
+ resolve(true);
477
491
  });
478
- _childProcess.on('error', (error) => {
479
- log_1.Log.error('Error opening file in editor', fileName, error.message);
480
- });
481
- return true;
482
492
  }
483
493
  exports.launchEditor = launchEditor;
@@ -4,6 +4,7 @@ exports.OpenInEditor = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  /* eslint-disable no-console */
6
6
  const react_1 = require("react");
7
+ const open_in_editor_1 = require("../../../editor/helpers/open-in-editor");
7
8
  const use_keybinding_1 = require("../../../editor/helpers/use-keybinding");
8
9
  const Button_1 = require("./Button");
9
10
  const ShortcutHint_1 = require("./ShortcutHint");
@@ -42,15 +43,7 @@ const OpenInEditor = ({ stack, canHaveKeyboardShortcuts }) => {
42
43
  }, []);
43
44
  const openInBrowser = (0, react_1.useCallback)(() => {
44
45
  dispatch({ type: 'start' });
45
- fetch(`/api/open-in-editor`, {
46
- method: 'post',
47
- headers: {
48
- 'content-type': 'application/json',
49
- },
50
- body: JSON.stringify({
51
- stack,
52
- }),
53
- })
46
+ (0, open_in_editor_1.openInEditor)(stack)
54
47
  .then((res) => res.json())
55
48
  .then((data) => {
56
49
  if (data.success) {
@@ -9,6 +9,7 @@ export declare const startServer: (entry: string, userDefinedComponent: string,
9
9
  remotionRoot: string;
10
10
  keyboardShortcutsEnabled: boolean;
11
11
  userPassedPublicDir: string | null;
12
+ poll: number | null;
12
13
  }) => Promise<{
13
14
  port: number;
14
15
  liveEventsServer: LiveEventsServer;
@@ -34,6 +34,7 @@ const startServer = async (entry, userDefinedComponent, options) => {
34
34
  ],
35
35
  remotionRoot: options.remotionRoot,
36
36
  keyboardShortcutsEnabled: options.keyboardShortcutsEnabled,
37
+ poll: options.poll,
37
38
  });
38
39
  const compiler = (0, bundler_1.webpack)(config);
39
40
  const hashPrefix = '/static-';
package/dist/preview.js CHANGED
@@ -70,6 +70,7 @@ const previewCommand = async (remotionRoot, args) => {
70
70
  keyboardShortcutsEnabled: config_1.ConfigInternals.getKeyboardShortcutsEnabled(),
71
71
  userPassedPublicDir: config_1.ConfigInternals.getPublicDir(),
72
72
  webpackOverride: config_1.ConfigInternals.getWebpackOverrideFn(),
73
+ poll: config_1.ConfigInternals.getWebpackPolling(),
73
74
  });
74
75
  setLiveEventsListener(liveEventsServer);
75
76
  const networkAddress = (0, get_network_address_1.getNetworkAddress)();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/cli",
3
- "version": "3.3.10",
3
+ "version": "3.3.12",
4
4
  "description": "CLI for Remotion",
5
5
  "main": "dist/index.js",
6
6
  "sideEffects": false,
@@ -22,16 +22,16 @@
22
22
  "author": "Jonny Burger <jonny@remotion.dev>",
23
23
  "license": "SEE LICENSE IN LICENSE.md",
24
24
  "dependencies": {
25
- "@remotion/bundler": "3.3.10",
26
- "@remotion/media-utils": "3.3.10",
27
- "@remotion/player": "3.3.10",
28
- "@remotion/renderer": "3.3.10",
25
+ "@remotion/bundler": "3.3.12",
26
+ "@remotion/media-utils": "3.3.12",
27
+ "@remotion/player": "3.3.12",
28
+ "@remotion/renderer": "3.3.12",
29
29
  "better-opn": "2.1.1",
30
30
  "dotenv": "9.0.2",
31
31
  "memfs": "3.4.3",
32
32
  "minimist": "1.2.6",
33
33
  "prompts": "2.4.1",
34
- "remotion": "3.3.10",
34
+ "remotion": "3.3.12",
35
35
  "semver": "7.3.5",
36
36
  "source-map": "0.6.1"
37
37
  },
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "4909df63b9663ecc0294f186d5fe7efd59eee143"
75
+ "gitHead": "0c7c54df00df527cd7e395658324102461883e87"
76
76
  }