@remotion/studio-server 4.0.470 → 4.0.472

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.
Files changed (46) hide show
  1. package/dist/codemods/add-effect.d.ts +26 -0
  2. package/dist/codemods/add-effect.js +193 -0
  3. package/dist/codemods/format-file-content.js +1 -1
  4. package/dist/codemods/parse-ast.js +4 -1
  5. package/dist/codemods/paste-effects.d.ts +15 -0
  6. package/dist/codemods/paste-effects.js +234 -0
  7. package/dist/codemods/recast-mods.js +178 -31
  8. package/dist/codemods/reorder-effect.d.ts +13 -0
  9. package/dist/codemods/reorder-effect.js +61 -0
  10. package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.d.ts +1 -1
  11. package/dist/codemods/update-keyframes/ensure-imports-and-frame-hook.js +7 -55
  12. package/dist/codemods/update-keyframes/update-keyframes.d.ts +15 -6
  13. package/dist/codemods/update-keyframes/update-keyframes.js +152 -26
  14. package/dist/helpers/get-ast-node-path.js +6 -1
  15. package/dist/helpers/import-agnostic-node-path.d.ts +10 -0
  16. package/dist/helpers/import-agnostic-node-path.js +154 -0
  17. package/dist/helpers/imports.d.ts +16 -0
  18. package/dist/helpers/imports.js +145 -0
  19. package/dist/helpers/open-in-editor.d.ts +2 -2
  20. package/dist/helpers/open-in-editor.js +35 -2
  21. package/dist/helpers/resolve-composition-component.d.ts +15 -0
  22. package/dist/helpers/resolve-composition-component.js +332 -31
  23. package/dist/preview-server/api-routes.js +10 -4
  24. package/dist/preview-server/routes/add-effect-keyframe.js +4 -2
  25. package/dist/preview-server/routes/add-effect.d.ts +3 -0
  26. package/dist/preview-server/routes/add-effect.js +68 -0
  27. package/dist/preview-server/routes/add-sequence-keyframe.js +7 -3
  28. package/dist/preview-server/routes/apply-codemod.js +18 -0
  29. package/dist/preview-server/routes/can-update-effect-props.d.ts +3 -2
  30. package/dist/preview-server/routes/can-update-effect-props.js +75 -6
  31. package/dist/preview-server/routes/can-update-sequence-props.d.ts +1 -0
  32. package/dist/preview-server/routes/can-update-sequence-props.js +47 -30
  33. package/dist/preview-server/routes/delete-keyframes.d.ts +13 -0
  34. package/dist/preview-server/routes/delete-keyframes.js +264 -0
  35. package/dist/preview-server/routes/insert-jsx-element.d.ts +3 -0
  36. package/dist/preview-server/routes/insert-jsx-element.js +102 -0
  37. package/dist/preview-server/routes/paste-effects.d.ts +3 -0
  38. package/dist/preview-server/routes/paste-effects.js +78 -0
  39. package/dist/preview-server/routes/reorder-effect.d.ts +3 -0
  40. package/dist/preview-server/routes/reorder-effect.js +67 -0
  41. package/dist/preview-server/routes/save-effect-props.js +1 -0
  42. package/dist/preview-server/routes/subscribe-to-sequence-props.js +2 -1
  43. package/dist/preview-server/sequence-props-watchers.d.ts +2 -1
  44. package/dist/preview-server/sequence-props-watchers.js +22 -2
  45. package/dist/preview-server/undo-stack.d.ts +15 -1
  46. package/package.json +6 -6
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ensureNamedImports = exports.ensureNamedImport = exports.normalizeImportSpacing = exports.insertImportDeclaration = exports.findImportDeclaration = exports.getImportedName = void 0;
37
+ const recast = __importStar(require("recast"));
38
+ const b = recast.types.builders;
39
+ const getImportedName = (specifier) => {
40
+ if (specifier.imported.type === 'Identifier') {
41
+ return specifier.imported.name;
42
+ }
43
+ return specifier.imported.value;
44
+ };
45
+ exports.getImportedName = getImportedName;
46
+ const findImportDeclaration = (ast, sourcePath) => {
47
+ for (const stmt of ast.program.body) {
48
+ if (stmt.type === 'ImportDeclaration' &&
49
+ stmt.source.type === 'StringLiteral' &&
50
+ stmt.source.value === sourcePath) {
51
+ return stmt;
52
+ }
53
+ }
54
+ return null;
55
+ };
56
+ exports.findImportDeclaration = findImportDeclaration;
57
+ const findImportDeclarations = (ast, sourcePath) => {
58
+ return ast.program.body.filter((stmt) => stmt.type === 'ImportDeclaration' &&
59
+ stmt.source.type === 'StringLiteral' &&
60
+ stmt.source.value === sourcePath);
61
+ };
62
+ const insertImportDeclaration = (ast, importDeclaration) => {
63
+ const { body } = ast.program;
64
+ let lastImportIndex = -1;
65
+ for (let i = 0; i < body.length; i++) {
66
+ if (body[i].type === 'ImportDeclaration') {
67
+ lastImportIndex = i;
68
+ }
69
+ }
70
+ body.splice(lastImportIndex + 1, 0, importDeclaration);
71
+ };
72
+ exports.insertImportDeclaration = insertImportDeclaration;
73
+ const normalizeImportSpacing = (input) => {
74
+ return input.replace(/(import[^\n]*\n)\n+(?=import\b)/g, '$1');
75
+ };
76
+ exports.normalizeImportSpacing = normalizeImportSpacing;
77
+ const hasNamespaceSpecifier = (importDeclaration) => {
78
+ var _a;
79
+ return (_a = importDeclaration.specifiers) === null || _a === void 0 ? void 0 : _a.some((specifier) => specifier.type === 'ImportNamespaceSpecifier');
80
+ };
81
+ const ensureNamedImport = ({ ast, importedName, sourcePath, localName, }) => {
82
+ var _a, _b;
83
+ var _c, _d;
84
+ const existingImports = findImportDeclarations(ast, sourcePath);
85
+ for (const existingImportDeclaration of existingImports) {
86
+ const matchingSpecifier = (_a = existingImportDeclaration.specifiers) === null || _a === void 0 ? void 0 : _a.find((importSpecifierCandidate) => importSpecifierCandidate.type === 'ImportSpecifier' &&
87
+ (0, exports.getImportedName)(importSpecifierCandidate) === importedName);
88
+ if (matchingSpecifier) {
89
+ return (_c = (_b = matchingSpecifier.local) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : importedName;
90
+ }
91
+ }
92
+ const existingImport = existingImports.find((candidateImportDeclaration) => !hasNamespaceSpecifier(candidateImportDeclaration));
93
+ if (existingImport) {
94
+ const importSpecifier = b.importSpecifier(b.identifier(importedName), localName === importedName ? null : b.identifier(localName));
95
+ existingImport.specifiers = [
96
+ ...((_d = existingImport.specifiers) !== null && _d !== void 0 ? _d : []),
97
+ importSpecifier,
98
+ ];
99
+ return localName;
100
+ }
101
+ const specifier = b.importSpecifier(b.identifier(importedName), localName === importedName ? null : b.identifier(localName));
102
+ const importDeclaration = b.importDeclaration([specifier], b.stringLiteral(sourcePath));
103
+ (0, exports.insertImportDeclaration)(ast, importDeclaration);
104
+ return localName;
105
+ };
106
+ exports.ensureNamedImport = ensureNamedImport;
107
+ const ensureNamedImports = ({ ast, importedNames, sourcePath, }) => {
108
+ var _a, _b;
109
+ if (importedNames.size === 0) {
110
+ return;
111
+ }
112
+ const existingImports = findImportDeclarations(ast, sourcePath);
113
+ const existingNames = new Set();
114
+ for (const existingImportDeclaration of existingImports) {
115
+ for (const importSpecifierCandidate of (_a = existingImportDeclaration.specifiers) !== null && _a !== void 0 ? _a : []) {
116
+ if (importSpecifierCandidate.type !== 'ImportSpecifier') {
117
+ continue;
118
+ }
119
+ existingNames.add((0, exports.getImportedName)(importSpecifierCandidate));
120
+ }
121
+ }
122
+ const existingImport = existingImports.find((candidateImportDeclaration) => !hasNamespaceSpecifier(candidateImportDeclaration));
123
+ if (existingImport) {
124
+ for (const importedName of importedNames) {
125
+ if (existingNames.has(importedName)) {
126
+ continue;
127
+ }
128
+ existingImport.specifiers = [
129
+ ...((_b = existingImport.specifiers) !== null && _b !== void 0 ? _b : []),
130
+ b.importSpecifier(b.identifier(importedName)),
131
+ ];
132
+ existingNames.add(importedName);
133
+ }
134
+ return;
135
+ }
136
+ const specifiers = [...importedNames]
137
+ .filter((importedName) => !existingNames.has(importedName))
138
+ .map((importedName) => b.importSpecifier(b.identifier(importedName)));
139
+ if (specifiers.length === 0) {
140
+ return;
141
+ }
142
+ const importDeclaration = b.importDeclaration(specifiers, b.stringLiteral(sourcePath));
143
+ (0, exports.insertImportDeclaration)(ast, importDeclaration);
144
+ };
145
+ exports.ensureNamedImports = ensureNamedImports;
@@ -5,8 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import type { LogLevel } from '@remotion/renderer';
8
- 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", "cursor", "/Applications/Cursor.app/Contents/MacOS/Cursor", "Cursor.exe", "windsurf", "/Applications/Windsurf.app/Contents/MacOS/Windsurf", "Windsurf.exe", "zed"];
9
- export declare const getDisplayNameForEditor: (editor: "/Applications/AppCode.app/Contents/MacOS/appcode" | "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta" | "/Applications/CLion.app/Contents/MacOS/clion" | "/Applications/Cursor.app/Contents/MacOS/Cursor" | "/Applications/GoLand.app/Contents/MacOS/goland" | "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea" | "/Applications/PhpStorm.app/Contents/MacOS/phpstorm" | "/Applications/PyCharm CE.app/Contents/MacOS/pycharm" | "/Applications/PyCharm.app/Contents/MacOS/pycharm" | "/Applications/Rider.app/Contents/MacOS/rider" | "/Applications/RubyMine.app/Contents/MacOS/rubymine" | "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" | "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl" | "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" | "/Applications/WebStorm.app/Contents/MacOS/webstorm" | "/Applications/Windsurf.app/Contents/MacOS/Windsurf" | "Brackets.exe" | "Code - Insiders.exe" | "Code.exe" | "Cursor.exe" | "VSCodium.exe" | "Windsurf.exe" | "atom" | "atom.exe" | "brackets" | "clion.exe" | "clion64.exe" | "code" | "code-insiders" | "cursor" | "emacs" | "goland" | "goland.exe" | "goland64.exe" | "gvim" | "idea" | "idea.exe" | "idea64.exe" | "mvim" | "nano" | "notepad++.exe" | "phpstorm" | "phpstorm.exe" | "phpstorm64.exe" | "pycharm" | "pycharm.exe" | "pycharm64.exe" | "rider" | "rider.exe" | "rider64.exe" | "rubymine" | "rubymine.exe" | "rubymine64.exe" | "subl" | "sublime_text" | "sublime_text.exe" | "vim" | "vscodium" | "webstorm" | "webstorm.exe" | "webstorm64.exe" | "windsurf" | "zed" | null) => string | null;
8
+ 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", "cursor", "/Applications/Cursor.app/Contents/MacOS/Cursor", "Cursor.exe", "windsurf", "/Applications/Windsurf.app/Contents/MacOS/Windsurf", "Windsurf.exe", "zed", "zedit", "zeditor", "zed-editor", "/Applications/Zed.app/Contents/MacOS/zed", "/Applications/Zed.app/Contents/MacOS/cli", "/Applications/Zed Preview.app/Contents/MacOS/zed", "/Applications/Zed Preview.app/Contents/MacOS/cli", "/Applications/Zed Preview.app/Contents/MacOS/Zed Preview", "Zed.exe"];
9
+ export declare const getDisplayNameForEditor: (editor: "/Applications/AppCode.app/Contents/MacOS/appcode" | "/Applications/Atom Beta.app/Contents/MacOS/Atom Beta" | "/Applications/CLion.app/Contents/MacOS/clion" | "/Applications/Cursor.app/Contents/MacOS/Cursor" | "/Applications/GoLand.app/Contents/MacOS/goland" | "/Applications/IntelliJ IDEA.app/Contents/MacOS/idea" | "/Applications/PhpStorm.app/Contents/MacOS/phpstorm" | "/Applications/PyCharm CE.app/Contents/MacOS/pycharm" | "/Applications/PyCharm.app/Contents/MacOS/pycharm" | "/Applications/Rider.app/Contents/MacOS/rider" | "/Applications/RubyMine.app/Contents/MacOS/rubymine" | "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" | "/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl" | "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" | "/Applications/WebStorm.app/Contents/MacOS/webstorm" | "/Applications/Windsurf.app/Contents/MacOS/Windsurf" | "/Applications/Zed Preview.app/Contents/MacOS/Zed Preview" | "/Applications/Zed Preview.app/Contents/MacOS/cli" | "/Applications/Zed Preview.app/Contents/MacOS/zed" | "/Applications/Zed.app/Contents/MacOS/cli" | "/Applications/Zed.app/Contents/MacOS/zed" | "Brackets.exe" | "Code - Insiders.exe" | "Code.exe" | "Cursor.exe" | "VSCodium.exe" | "Windsurf.exe" | "Zed.exe" | "atom" | "atom.exe" | "brackets" | "clion.exe" | "clion64.exe" | "code" | "code-insiders" | "cursor" | "emacs" | "goland" | "goland.exe" | "goland64.exe" | "gvim" | "idea" | "idea.exe" | "idea64.exe" | "mvim" | "nano" | "notepad++.exe" | "phpstorm" | "phpstorm.exe" | "phpstorm64.exe" | "pycharm" | "pycharm.exe" | "pycharm64.exe" | "rider" | "rider.exe" | "rider64.exe" | "rubymine" | "rubymine.exe" | "rubymine64.exe" | "subl" | "sublime_text" | "sublime_text.exe" | "vim" | "vscodium" | "webstorm" | "webstorm.exe" | "webstorm64.exe" | "windsurf" | "zed" | "zed-editor" | "zedit" | "zeditor" | null) => string | null;
10
10
  type Editor = (typeof editorNames)[number];
11
11
  type ProcessAndCommand = {
12
12
  process: string;
@@ -136,6 +136,15 @@ const editorNames = [
136
136
  '/Applications/Windsurf.app/Contents/MacOS/Windsurf',
137
137
  'Windsurf.exe',
138
138
  'zed',
139
+ 'zedit',
140
+ 'zeditor',
141
+ 'zed-editor',
142
+ '/Applications/Zed.app/Contents/MacOS/zed',
143
+ '/Applications/Zed.app/Contents/MacOS/cli',
144
+ '/Applications/Zed Preview.app/Contents/MacOS/zed',
145
+ '/Applications/Zed Preview.app/Contents/MacOS/cli',
146
+ '/Applications/Zed Preview.app/Contents/MacOS/Zed Preview',
147
+ 'Zed.exe',
139
148
  ];
140
149
  const displayNameForEditor = {
141
150
  '/Applications/AppCode.app/Contents/MacOS/appcode': 'AppCode',
@@ -159,6 +168,7 @@ const displayNameForEditor = {
159
168
  'Code.exe': 'VS Code',
160
169
  'Cursor.exe': 'Cursor',
161
170
  'Windsurf.exe': 'Windsurf',
171
+ 'Zed.exe': 'Zed',
162
172
  'VSCodium.exe': 'VS Codium',
163
173
  'atom.exe': 'Atom',
164
174
  'clion.exe': 'CLion',
@@ -186,6 +196,14 @@ const displayNameForEditor = {
186
196
  cursor: 'Cursor',
187
197
  windsurf: 'Windsurf',
188
198
  zed: 'Zed',
199
+ zedit: 'Zed',
200
+ zeditor: 'Zed',
201
+ 'zed-editor': 'Zed',
202
+ '/Applications/Zed.app/Contents/MacOS/zed': 'Zed',
203
+ '/Applications/Zed.app/Contents/MacOS/cli': 'Zed',
204
+ '/Applications/Zed Preview.app/Contents/MacOS/zed': 'Zed Preview',
205
+ '/Applications/Zed Preview.app/Contents/MacOS/cli': 'Zed Preview',
206
+ '/Applications/Zed Preview.app/Contents/MacOS/Zed Preview': 'Zed Preview',
189
207
  emacs: 'emacs',
190
208
  goland: 'GoLand',
191
209
  gvim: 'GVim',
@@ -228,6 +246,9 @@ const COMMON_EDITORS_OSX = {
228
246
  '/Applications/VSCodium.app/Contents/MacOS/Electron': 'vscodium',
229
247
  '/Applications/Cursor.app/Contents/MacOS/Cursor': 'cursor',
230
248
  '/Applications/Windsurf.app/Contents/MacOS/Electron': 'windsurf',
249
+ '/Applications/Zed.app/Contents/MacOS/zed': '/Applications/Zed.app/Contents/MacOS/cli',
250
+ '/Applications/Zed Preview.app/Contents/MacOS/zed': '/Applications/Zed Preview.app/Contents/MacOS/cli',
251
+ '/Applications/Zed Preview.app/Contents/MacOS/Zed Preview': '/Applications/Zed Preview.app/Contents/MacOS/cli',
231
252
  '/Applications/AppCode.app/Contents/MacOS/appcode': '/Applications/AppCode.app/Contents/MacOS/appcode',
232
253
  '/Applications/CLion.app/Contents/MacOS/clion': '/Applications/CLion.app/Contents/MacOS/clion',
233
254
  '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea': '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',
@@ -248,6 +269,9 @@ const COMMON_EDITORS_LINUX = {
248
269
  cursor: 'cursor',
249
270
  windsurf: 'windsurf',
250
271
  zed: 'zed',
272
+ zedit: 'zedit',
273
+ zeditor: 'zeditor',
274
+ 'zed-editor': 'zed-editor',
251
275
  vscodium: 'vscodium',
252
276
  emacs: 'emacs',
253
277
  gvim: 'gvim',
@@ -268,6 +292,7 @@ const COMMON_EDITORS_WIN = [
268
292
  'VSCodium.exe',
269
293
  'Cursor.exe',
270
294
  'Windsurf.exe',
295
+ 'Zed.exe',
271
296
  'atom.exe',
272
297
  'sublime_text.exe',
273
298
  'notepad++.exe',
@@ -294,7 +319,17 @@ const COMMON_EDITORS_WIN = [
294
319
  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])+$/;
295
320
  function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
296
321
  const editorBasename = node_path_1.default.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
322
+ const isZedEditor = editor === 'zed' ||
323
+ editor === 'zedit' ||
324
+ editor === 'zeditor' ||
325
+ editor === 'zed-editor' ||
326
+ editor === 'Zed.exe' ||
327
+ editor.endsWith('/Zed.app/Contents/MacOS/cli') ||
328
+ editor.endsWith('/Zed Preview.app/Contents/MacOS/cli');
297
329
  const isFolder = node_fs_1.default.existsSync(fileName) && node_fs_1.default.lstatSync(fileName).isDirectory();
330
+ if (isZedEditor) {
331
+ return [fileName + ':' + lineNumber + ':' + colNumber];
332
+ }
298
333
  switch (editorBasename) {
299
334
  case 'atom':
300
335
  case 'Atom':
@@ -333,8 +368,6 @@ function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
333
368
  case 'windsurf':
334
369
  case 'Windsurf':
335
370
  return ['-g', fileName + ':' + lineNumber + ':' + colNumber];
336
- case 'zed':
337
- return ['--new', fileName + ':' + lineNumber + ':' + colNumber];
338
371
  case 'appcode':
339
372
  case 'clion':
340
373
  case 'clion64':
@@ -1,3 +1,4 @@
1
+ import type { InsertableCompositionElement } from '@remotion/studio-shared';
1
2
  export type ResolvedCompositionComponent = {
2
3
  source: string;
3
4
  line: number;
@@ -9,3 +10,17 @@ export declare const resolveCompositionComponent: ({ remotionRoot, compositionFi
9
10
  compositionFile: string;
10
11
  compositionId: string;
11
12
  }) => Promise<ResolvedCompositionComponent>;
13
+ export declare const insertJsxElementIntoComposition: ({ remotionRoot, compositionFile, compositionId, element, prettierConfigOverride, }: {
14
+ remotionRoot: string;
15
+ compositionFile: string;
16
+ compositionId: string;
17
+ element: InsertableCompositionElement;
18
+ prettierConfigOverride: Record<string, unknown> | null;
19
+ }) => Promise<{
20
+ fileName: string;
21
+ source: string;
22
+ oldContents: string;
23
+ output: string;
24
+ formatted: boolean;
25
+ logLine: number;
26
+ }>;