@remotion/studio-server 4.0.507 → 4.0.508
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 +4 -0
- package/dist/codemods/delete-jsx-node.js +8 -0
- package/dist/codemods/duplicate-jsx-node.d.ts +2 -0
- package/dist/codemods/duplicate-jsx-node.js +8 -0
- package/dist/codemods/get-node-path-remappings.d.ts +13 -0
- package/dist/codemods/get-node-path-remappings.js +87 -0
- package/dist/codemods/reorder-sequence.d.ts +2 -1
- package/dist/codemods/reorder-sequence.js +8 -0
- package/dist/codemods/split-jsx-sequence.d.ts +2 -0
- package/dist/codemods/split-jsx-sequence.js +8 -0
- package/dist/file-watcher.d.ts +11 -1
- package/dist/file-watcher.js +16 -5
- package/dist/helpers/coding-agent-registry.d.ts +0 -1
- package/dist/helpers/coding-agent-registry.js +1 -5
- package/dist/helpers/finder-artwork.d.ts +1 -0
- package/dist/helpers/finder-artwork.js +4 -0
- package/dist/helpers/resolve-composition-component.d.ts +2 -1
- package/dist/helpers/resolve-composition-component.js +60 -68
- package/dist/helpers/terminal-artwork.d.ts +6 -0
- package/dist/helpers/terminal-artwork.js +14 -0
- package/dist/helpers/terminal-registry.d.ts +36 -0
- package/dist/helpers/terminal-registry.js +401 -0
- package/dist/index.d.ts +6 -1
- package/dist/preview-server/api-routes.js +2 -0
- package/dist/preview-server/live-events.d.ts +1 -0
- package/dist/preview-server/live-events.js +3 -1
- package/dist/preview-server/routes/add-effect-keyframe.js +7 -1
- package/dist/preview-server/routes/add-effect.js +7 -1
- package/dist/preview-server/routes/add-keyframes.js +10 -2
- package/dist/preview-server/routes/add-sequence-keyframe.js +7 -1
- package/dist/preview-server/routes/app-icon.d.ts +6 -0
- package/dist/preview-server/routes/app-icon.js +66 -0
- package/dist/preview-server/routes/apply-codemod.js +15 -2
- package/dist/preview-server/routes/apply-visual-control-change.js +7 -1
- package/dist/preview-server/routes/batch-update-keyframe-settings.js +10 -2
- package/dist/preview-server/routes/can-update-sequence-props.d.ts +1 -0
- package/dist/preview-server/routes/can-update-sequence-props.js +5 -4
- package/dist/preview-server/routes/default-coding-agent.js +4 -2
- package/dist/preview-server/routes/delete-effect.js +7 -1
- package/dist/preview-server/routes/delete-jsx-node.js +16 -2
- package/dist/preview-server/routes/delete-keyframes.js +10 -2
- package/dist/preview-server/routes/duplicate-effect.js +7 -1
- package/dist/preview-server/routes/duplicate-jsx-node.js +17 -5
- package/dist/preview-server/routes/insert-element.js +23 -3
- package/dist/preview-server/routes/insert-jsx-element.js +17 -2
- package/dist/preview-server/routes/move-keyframes.js +10 -2
- package/dist/preview-server/routes/open-in-terminal.d.ts +3 -0
- package/dist/preview-server/routes/open-in-terminal.js +17 -0
- package/dist/preview-server/routes/paste-effects.js +7 -1
- package/dist/preview-server/routes/reorder-effect.js +7 -1
- package/dist/preview-server/routes/reorder-sequence.js +17 -2
- package/dist/preview-server/routes/save-effect-props.js +7 -1
- package/dist/preview-server/routes/save-multiple-effect-props.js +10 -2
- package/dist/preview-server/routes/save-sequence-props.js +10 -2
- package/dist/preview-server/routes/split-jsx-sequence.js +17 -6
- package/dist/preview-server/routes/update-config.js +6 -1
- package/dist/preview-server/routes/update-default-props.js +7 -1
- package/dist/preview-server/routes/update-effect-keyframe-settings.js +7 -1
- package/dist/preview-server/routes/update-sequence-keyframe-settings.js +7 -1
- package/dist/preview-server/sequence-node-path-mutation.d.ts +7 -0
- package/dist/preview-server/sequence-node-path-mutation.js +21 -0
- package/dist/preview-server/sequence-props-watchers.js +15 -6
- package/dist/preview-server/undo-stack.d.ts +7 -13
- package/dist/preview-server/undo-stack.js +58 -5
- package/dist/routes.js +8 -0
- package/package.json +8 -8
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const terminalArtworkDataUrls: {
|
|
2
|
+
readonly ghostty: "data:image/png;base64,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";
|
|
3
|
+
readonly iterm2: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAARGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAABIoAMABAAAAAEAAABIAAAAAJAxRu8AAAHNaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEwMjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kwe07qQAAC11JREFUeAHtW2tsXEcVPnfvvry7tuPYieM8XDWOayeRKkCiKiUmJKU8ojgJQYEWVaWAhIpAQqV/KJQ+oILyA4RASBUSLURIFUSEJJZCQ2iikFBoEUgU1MZxXCsP23EaJ67X+7q7916+b9brutvd2bUd25toj7Te9Z07M+f75pwzZ+beEalKlYEqA1UGqgxUGagycJMyYMwV18HTp2sbnGC76zPWmR5zlWFIo4hR67puwDAMz1zbL6c++nJcw0h5xI26rozajj1opN2z164m+3Zu6oyW00axe2ZN0PHX++4MhsJf8hjmxwzTbK2pqTFNr1c8numcuOiXXfA7J/ld6u7Jr5f/P9vM1c+27ziO2JmMJBJx27Wd845r/yUZjz23ZUP7P3IazOQ7X9uSdX9/6lRry4rW7/v9wftq6+t8sWhURoaG5PLwkFy7OirxiQmxrJS4UJSSDykHZ/r16Z0WojP/3kL3GBgYvz8goUhEGpY2yvKWldK8cqWEa2sl+vZ42rKSLwxfOv/dz27adH56f6V+z4igQ6/+e3NTU/PzdUuW3HppaFD+fGC/HO05KP29b8j42Fipvha0vG5Jg7R1dso923fKx3d9RlaAsPG3xwauXBn54o47PnCiXGXKJmj/y69uXr685Y/hSKTh+IuH5ec/+J4MnOmd6sf0+QQ+JnA3QeyZur6QPxCLxLVtse2M2On0VNdrb+uQr3/7cdnyyW0Sm5i4dvny8Kd333VHWSSVhWRvz9HW1ra1J2uXLGnd9+tfyY+feEzSaUs8ICMYqZNATUg8iD+LRcwUE5M/SJSDOJRKxCU5MS4OSPP5/PLIU0/Lnge/LNGxsfPn+9/seqD7npLu5s1vvMD/RlNL8w9hsq3H/tQDcr4DctLiD9ZIuKFRGJhVjODo4VMp4oFFh3z1EgiFJXZtVKxkQune1NwsWz+1vZWYoOv9+GiVLmlBLxx56a6WNbeciMfj3of27JLzA28qcmqblmOCQvUKIqXg4EzqGL1yWZHUeutaeXbfAQmFQpnhC+c23/eJu18uWG/y4vQ5ueB9kbr6r4Qjtd4jCMgkh25Fy7khyCEiDiBIos7UnRiIhZiIrSDoaRe1BD385JNLTa/v7uj4uBw73KOqBSO1yq2KWg5mdyNJxab1Mv0nZ3/Gz8z0i/P8GyQxFFB3CrEQE7ERo653LUEdG27vQMMrR4YuykBfn2onUBMuyg1BO+2uxJ9Oi9MMhrKp0Dv927i0zpV0tyOZO1FYjMR3aly3XzQk6k4hFmIiNmLUdaIlKBQOrQsEAp4RJIGxiahwKudsVRQZLMNZ5or1OVtc6pJvJeDEWeFK5oOOOB0LyI5iwFW6w2oUFmIitlAwtG7WBHnEu9oD/x0bHYXVwEyZ5zDoFRILtNWDgDZXjJSIvdERtw434ve7ZDFcbFIB6q5mXWAhJmLzmN7V79Iv7x/tNO/BwpPEILlS1QyPmVd98l9YTuYjjiQfTYu9NutaiR+lxerPSOBnXvEdQb0iVQs3OH9XcxiIidiIUdebliDHkAgXf2msrSgGWnuPMJQ0upJ4PC0u3Cv4LBaspw1lSda9Gcl8yBHfixXCzjQMxERsxPgeTNMuaAkyHNfPLNTGp6gw8K4ASS0YjV5Dgj9BkwkQ6XfFvx/ETOC3NtIVbXleC4iJ2AzH8es60qqOfRXTcRBwwXRRAQeeYXzOGWKvhzv+NC2ZLaiDceE1I46a2l6KtjyvBcREbLbjaM1br7pqBMEWvlpU0IJx1ZCaR7FYfd2Q9E5bJn5jSWyvJda9MC96pYbfou3OcwEx0cXwR9uTliAHjXB1rCWIzfsQg//jkcgXsB/zDZ/4/upRs1j8mbQkv8WsEKLhOHvDwv7FHqTCRow60ROEbQOyrHUxto5BMNhPDKHnoCmhh/wS+qofrmeItQe+zpwnPyfSabUAZdilVdi4NaITLUE2WGYg01oQyHGRNSceAZnIgVx4tIGcyPt3jxiX0TX+d736UdIpOF9lysUYqIFRJ9pZzEUQK2VBJMPaghzo4YxYn8+I918gZgTT/G2u2O93xXfMI+YZjAN70g+WTs/rXpYN0vQOzQyNXrUEOTbMkCxr/NQNZN3KgHtZCNCZ96HTJZi4Bg0JPGdK4JfoAiRWSqKYYzobpIlNH6T1BE36Kf21qHCWwurd/wdTfPiktzuSeMaS0Df94v2nIW4Q5dqJtGjL81pAYrIGoMEGDbQxKOtizIP0fsqpXBGBBo0EfsOqaDXqO58cEspetT2jfJ6FmLI5nt7FtGo6NoM08yA9y1NYYI+eS4b4f4eN+3FczW8d5DBxNN5CArnID0HULKZCiH7wtS6WyzZLWlCOIRLUZ0joMV/WevIJQrn5GoL2/1CBetGaFknKtSAtQXgqqaJ82RZEsCAl524FsZMYzmaLSA71IiY8eS0ZpPPHmHWnRFmQcjG9GU5VKPfHIpNDNXOzWKkkWEuQmuLVYvU6E1QukfN4X9bFsmmMrhs9QSqTnkGQ1vVUYWXZIF06k9YS5Kq1WImlRoUBL1edKRcrMUNrCWIGrab5ElsC5SpVSfep3UQ1zc8hD8pN87qlRiWBnokuUxZUYvBLWFDpxepMlKqke7ODz2l+DhbkZMrcMKsk5GXqoiyIC3Fg1InWghjpsWdbesNM10OFlqlZjNjmFKSZA5XaMKtQAkqpxTyI2Lhg1Yneghjly2BZ10Gllk1ZEDDqREsQ2c1uCej9VNdBpZblFqtzsyD454y2OyqVjQJ6KQtS68y5WNCkjzLi32ySy4O456UTrYvhqQZCELc89CzrOqjUMpUHwYLw9FgLTksQVvMp5WKVinIOetFuVIwFRl0zWoLsTDrGRky8xU65GVwth4GYiM2203geU1y0BGUy6atOhu8Y49kyhHnDjS45DMREbJm0fVWHSUuQlUwPpjNpwUEV1QYf0+ZGQNdopZZR99yjZmIiNiuZGtTpqyVoIh7tt5JJJ4IDIsFgUJ2i4Rvsi76hrENUtAxPe6E7TwIRCzGlgI0Yi1ZBgZagvjcunEmlUpcieH22adkyBiG83h9Tr0jrGq3EMryOqHQnBmIhJgvYiFGnr5agV155aSSZSJzw+byyfv0G1U4Sb7tyFG4olsAOdabuFGIhJmIjRnWxyB8tQazz1sil5+OxmN25Yb0sXboUmbWtzj5wJG4Ikmg60JXnNag7MawHFmIitiK8TF0uSdC+ffuOj0fHD0VwKOSjW7biVWBTnXng2Qf6tHotmEpUmkAn6kYdc+c0qDsxhEMRISZiK6V2/pPzQvc7DfX1/62rr9u9vLm5lgHu3LlzmB7xih3iEQ0JZ1XxBixee5lUarG/CYLEJGMTynKoK8nZsnWrbNi4ka81D/f19j44MDCgdS+2U/bQ79ixe8eaW1b9NhgI1p492yenTp6UUbyMnRMT57FML4la5AN1TP6Q39ggJSeNjY2yqatL2te1SyKVjF44N3j/oUP7D+XKdd9lE8RGuru7d61avfoX4VB45QQCXm9vr/Th3AOJSiZ5gqVyhJZOYtrb26Wjo0PNWvF4bOjixYtf6+npOVCupjMiiI12dXXd3tbW9hTOW3XDmkzLsiQKsibw5noykRQLI8d3kBc6oaRb042YITMJZJ5Ti6nc7/dLMpW0cd6tp7+//4mTJ0++Vi45vG/GBE02Hti2bds9GKEHcCDkw17TbIFiCEPZODQTBWZzL8JeUcU5MNwFxalIN2Pbw8jj/gYL33v48OGjqKZdmBbSZbYE5doyOzs716xataoTI9YGklZ6PZ6lICqMA/R+KFvOJJBra9bfsB48W3AsMBPLOM5VkDMEi+4fHBw8DbmAhme9iJwrQTpQ89l2oX5pWFWpMlBloMpAlYEqA1UGphj4P2lbybYJeYtFAAAAAElFTkSuQmCC";
|
|
4
|
+
readonly 'windows-terminal': "data:image/png;base64,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";
|
|
5
|
+
readonly terminal: "data:image/png;base64,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";
|
|
6
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.terminalArtworkDataUrls = void 0;
|
|
4
|
+
// Terminal.app and Ghostty.app artwork extracted from installed macOS applications.
|
|
5
|
+
// iTerm2 artwork sourced from the official release icon:
|
|
6
|
+
// https://github.com/gnachman/iTerm2/blob/3ec57866cd9bcf932f2675f7ca47183793a37b79/images/AppIcon/release.png
|
|
7
|
+
// Windows Terminal artwork sourced from Microsoft's official repository:
|
|
8
|
+
// https://github.com/microsoft/terminal/blob/b888cb7e4c3b0b21b7ed66c224bcdf7fa9ef6d9a/res/terminal/Terminal.svg
|
|
9
|
+
exports.terminalArtworkDataUrls = {
|
|
10
|
+
ghostty: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAeGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAAJAAAAABAAAAkAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAABCvP5OAAAACXBIWXMAABYlAAAWJQFJUiTwAAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MjU2PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cl6wHhsAABpDSURBVHgB7ZtpkF1HdcfP22aXZrTZWjwa7bJl2cjGu7GJwYhUbMpFSoTIOKTiFEmRSoErlUoKAhUSEj4Axq6kTOVDUoTEmNhml13IdsJmJDABLOFIli0vGHuk0TIaaTTbW2/+v9O337wZzTyNocKHlFq6c3s5ffqcf59zuvve+8zOpXMInEPgHALnEDiHwDkE/p8ikPkl9aJfQt8HHnhg8TXXXLOmu7t7VT6fX6arJ5PJdKqpQ/fWWq32usZIEmcL63oSj3qezLSyuiRFjTVWLpdHdZ1U++FTp079fO/evS/dfvvtx9POdZmnMDtL4XUJL15xkPyRI0d+Y8GCBbdLmDdXq9VeCVjIZrOGgklS0yUEZ1B2ujyiTqGe3qKyN50JWCPfmNf4dQYAKJnK2Vz21Wwm+12B9UBfX993RFDRFXWo0zfLTHJtRhXanPGzzz67Yd26dX9XqVR+W0LkRkdGrFgqGQLmczkNn0E4K5XKVqmUPd8441GhZsPNpoGDAF6p1ExITmPKaq2lpaB83idFsjl76tvb28lXRfeVl1566SNbtmx5PuVwJvLea+qfuQLkMr/yyitvXbFixb+USqW+wcFBVx4h8hLs8MBhe+aZZ+zZ/c9a/6F+O3nypE1MTDgNgKHcTOA01kUaF2oWemgcKLRUHoA6Ojqsp6fHli9fbhdeeKFdcskldv7557srVjR2TkDOnz+fHq8cOTLwhxs3bvwvCrrOCtJcAGoE58HTw8OLTg0Pu3Ctra2mWbGHHnrInnrqKTt9+rTXAxrCM8NcMUUwGutooz4qjrWRj/fYPlufyJNJUPzxCQGMq666yrZt22Zr1qzxevgAZGtb6+DA4YF3zxWkOQG0e/fujVdcccXjo6OjvfJnnzWUePjhh+z++79g4+Pj1tnZ6fXlcsmqci0miFhUrSWWFS3zhTJ1METhIcrhVzM0mlCf0gY3UqUn2U2Yc5XgAU/6O0BqwpIKhRbdg5uNjY2pXLDt27fbu971LgawROAjp+pf/dGeH219+01vfw52YYSZ/yJVs5RVvCloNfiiFHinArMsIqfZrdo9995rTzz+uA+IcsXiuOrN2jsXW1vHIsvm8f1s3Y5dfwcNeSZlCrAEEZwGpRskamxvqE75Qom1VaxcHLXx0eM2MTYoAPLW1tam+sRGFCO3bt1qH/jAB70eQLW4KEaWvnr99ddvf+GFF5jNqctkw0DNAHLZ9u3b95urV69+RODkMHvc5557PmM7dz5mWtqtrABdlNUsXLLWOrvXWpLpsEpVI7p5MFLjEMGCfPww/co2wuEtv9Sf4M6JVUqnbOjoczY6/KrNm9flFjWskABId931Qbe6nCZ53vz51YMHn7/1uuuu26kBZ5sHyzeRhk7ZCy644D3FYjEnxLUitNnXvvZ1++Y3dzo4ExPjYl2w3jVvtnIy34ZHi5qKMVmz4g6WlmmxqtoTDSMDF2olyyUlyyZlmbtQTKrBRepgRmkaQYuyNwI9TaW0yQXOtljP0jdaW9dSO/Laf1tXR6sH6Mdl7Zpou+2226xEGKhWclpw3iNOT+hiwMZBVQxJ6/KsKfOxj31s6bXXXfu3Q0NDPVjPwMAR+9SnPuVWxBJu2YIt7bveTo/nbFwrlkKtJaorZ+eZdfbainWb7A2XvcG2bLnY1l+0wRYt67VipttOjmmmy0WBU7aagisuW5WbcMddGCvkp98DbWibIa+YV6vK3QRArjDP2ruW2NCxl62Qz8q9Wmz//v129dVXe1ggqBdyhe5CS+HBXbt2jQiFGQFqZkHJzTffvLZSqa4gCLe0tNiOHTsMcyXQqd7O77vSTgxX5FKyhlxBgLVapW2FXfbGLbbtbZvs4tULra2gzaM83I1EU3x6omo/fXbAvvLY0/bcMz+1XPWYdilYVMWtyS2tYc6i1NPsxynOaFMQi8G8XCkJmA6bt/hiO3lsry3UNoBV9tFHH7U777zTtyByyxU33njj2k9+8pOHG4ackp0NIORJtK/oU+TPgzb7GiHtQBXlWvMW9NnIRMEmFJwzuRZZTptl5q+139v2Frtj6zrFAoExIofDlZxbGDeXy9gNl6ywKzYts899fZl9Y8djlhn5hQAqpW4X0ZwiZyhMQamBaZ1U8DgNWww2rGUrtC3W5PXY2Niolvh2++EPf+hu1tXVRSjIL168uE/dn9Q1E8OmMYg9zDLMnaRob8eOHbP2jnZZjIJ1+/k2eOp0ajkCqHOlvW/72+yOm1fb0eNymSrzy8Xyyj4nFGvVjJ08XXOzf/+2N6o5Y1/+0lctW35VISm4WTC30Fe9ZkwzaRPBQVXiIFuBqmRtn99r40PPOEBHjx61F1980S699FJ3Y63Ay2YcIK1sZkEZuVUP23bcA4DIV7QZK7TNt9FiYiVZRzbfatX8InvrDVfb7wqcgUHFFxkNyd1Kf3x3Ix6Yf9gHyasqNSsL3/feusUOvNhve3cPqnXChfYAnoIbOM38F5CmpHoFlqRLVpSpKf7k2qySaMHQBOANALR582bXR0bQIx5xN8usTEmzAQRRRp07WL0Iiv39/b4rBqAOmefIRNF0gHDX6lq6yt77js02ouBbLI1r1eiw0XECMRTBjsKoqQYgp/9l8e3QZu7dt15t+/bttdLxUxqLwKyzlKMbes39b8pfNwDK6kGClFD3nGUUj0olzYgkOnToUJhsTbi2LR1e2Shmw4ARuYaqelZjZNqxGrbw7KBJrkAmZyXNBkt5JT/fLrt0va3p7bBvfGu/vfP999p993/LytVx65qX1/E5KyC0mVOfnDZwWV05geL5fEErYNXWr1xia9ZvsHJG1qgxcAsCf0VjzP2apK9i6Vz09zx7wbxWuHCMQRcmnjZZNDvaFFnlpqWmFiRzbAsDVEzHDO+KDTK5vhEUQBm52+YLl9uQFsrVfQts2Xlddt/nv2aPfffH9r73bLWbrt9s4yXtiaoTOtCeYGqDCGLCyrjwvEVimLGN61fZ3h8zmSfkDnpcQnCvJ0aNOkzP14nqNAyREU/BIat3Yd3NAb0gmcfHxusWhI71jo2s0nwzgNxafDaFNFYEMojHRejOamnPt3fakkVddkwGtrx3uX3xs39qn/7Hr9jnHviy/flf/9w++pE/sjveucU++okn7KFvfMf0VIKe/LFcyzz753v/xDatWWKLFvfIutq1sZRiGsDPWFPcjFHD2NO3At4QWx0c5iHEnyQ9RWRSXvAtaw9XLod4RExqls4KEPEnWpFPInJq8IRp0sEwLyvAbYpCrKSd9I5HfmCPfHePVQo9dvObrrCbrlppQzK+33rrxbZsgbpqmddfB4D91Lo+7cC1Ic86nxar+A48tE/BZ7oWsAmYpS1sU6kMKR1Fu3blxCjXwMz1kfsRLnwiYqcZ7k0BAt1wETgDM2bXFUyPE1mdopmDjDjt/PY++8zdX7aNm/vss3/2brvpxkvsNXnVK/2J9a5da5duWevWAbYkZD52gmCOyxJQc9JZV5LVvGuDGcjqf+nmeqaZDASRmaid3utUDT9kFB/oqAYMLmIRO3h0+5UAojMuFhlxOva6ROhrQJmDm3JZwmAl1165zu779B/Y1dds0oLdZk89r/4VP4BY/1Gz147gHJRDQlkWmfZWBXvlM+IH0onunN+CWinxlJIj5LzUISUAgliKdQGgms58GXbrIvFFhscw2oug19lSUwtyZnKxeC7ieYrsyHn6Vl454lBVAI3KTfK5+dZ36eW2/5DZ2HjNcpmwyQSUEHWCytqeeMbjmBTMKUNAzeigaTrgZvwKtEHVAKt3C2bjsCSeD6BMUqgsQnc3ZQCnWpmwFs47nmRB0qMqvZh8dtzNUlOAovVEpCfnKMwM+5gax13FFTaHoyM6kmirEaxerhMF0tRFOeBB3pUVsPJQy4mwoq0AlsPTgcR0pcqHMYMKnscMNECon/wb1aQmESg+qbIaKLNu6ZwJAUdQigc6AVSQJPCf6W9TgBgkgDQZg1wAhsUV5AbEjExe4km3pKLYgQAIgvWms4ZAYVYRPgCUokg3y4oWgBPtepOERyMFV0z46Q4f/pBTxoFjgoIktPDk0gHxO67kg8u6FX8U17IZuVhCbCOOSnbJFyff3Roms6SmAIFyQDqgDeKIFWJFmOmagGK/jNyJmwaugusJFDRUPXsmllnAQTiqU9W9jnnExXRCUw43g7eSOrhj0JEita4kTfAjyIbFg2dLAU3iojakGsOXercemaiEStk4n0m9mKLZ05wAghlp0iRhGqynqsNnRUp7HJE2CBGUE0jpA3vqMkLQ45Dy0cWUcxfTcc7AZkJmVNLxpFzSIqClLSoEKKn2SCH+HmGUhyOyMACWp+R/ggzaJqYVVGLdmkrcU4wDQGFq6DZbagpQcLHgZm49YuyziBQy2Vo1K9cIfo2MHOBRKiiGIBpWFxaUaAZxs9BGdep20IsMGuahhpvVBP40ULAA1AzuisUGWagLKQWRAZyQ2ghQzIf+6OIuyXLvcShwmOlvU4CinxLxg0kzOIrjx5o5Bdbx0Qkrj5WsVacEFPVYk0qtEOCVuBrGFOXGgpyHmsnnxSqvMWoVuYe1ikdFdywjJufsBY2szoETecbzBKCehxY5cGsE0OV3YpBATV3SdUv18g6z/IHDrKkcY5DudYCYIQlPME3kXqWxCT0+OG5LuxVoox4SFB0AxXVB8PTyOooqc9Heo+Piyy8ctqq240lVc6ZHE5lEQCV6CMddcSmUuceLdsUrp+MeaGIZeuKZ0+O/AgkdzlzFRNYkNbWgBICEMmjDGHP0uMKMyIJqZcUePVHc+e0DtmXdYrto6SI7rkMrVtGjI2BHtqInink7OSFI1aVHMrfKOiYE7nBRMkuw8/X4+pkD/fb9H7ykx686xYtvkhCkxUSzHyxGE+TuQg9cKdTjZM5ENdTTGivchX12sAFaJK/k90kRUMSgqrsa/GZPTQHyN5XpjjOapvusBk4Uf2olMR8v2qnDA/aJf9plt71lg11+0RIH9JFdR+2nzw/ZDZcttcs3LJB1JfbI7mP2o/2DdsPlS+2KCxf4Q7OHnxywHY8/ZxODJ61WJDgDPgEXgNyJ3F2CCaIICtGm5G4V82EhSRu8p6PhwAawsaBGgDhyqKppagpQiEEc6qKLpcIpQKME8S0ZK+tAOGbDlcP2r/9xwu7Xc18mjLcLeZnNv73Qb/ezG5TINT0VyCs2/PuLh+0Ler+W6ERdGddroKKeJI7pdF2SItXgDr5su6Ugvz+40B1tJgFiYxDjEVY1maePaLEgjz/0YxXDgsLdg7T0cjrIZ0lNAQpfZ3AWA2kGETvGxYJqcgOtODXOZXrWk9Ej2Exe78VGdOZIZ7giYcjjIL7kqq8eUakqHHBxYQJXRV+C1CbUou0KwR93Cku04oZzwH2CTYWdUepiaWAONhTGigpDx+bQgXMgJ4M+usRlnklulpoC5H6Kr+qKAc5nkFlhZ4oyTCLH8ZJUUQRmkwYoHh9YidymEQEFUDcAxOz6Uk5/+AOWVkXogsIChL4k0YaTudg5KIyPuwTtIj3jwp9u7py+NWBcZIoWFCY7eAf9Aw9lZkxNAeLdFw+6gzlK5RRuQAgrSwpQZC2BwwyjPEAgcBA6kjii9XrQgVY0CsyutCtDNwQPloLSgQ9ccIsINi4DfyU/XijPlt4Td+jgEfswhPSoW5DqI3nodMbfswDER1BhFWO2ifqcb8LAWlqjoBoEPHzlSIdwpetAxHFRBiV0uWBpGYBIbh2yOm8TQLgojKmoxxL6TgLEOFgLfHFDaJ1bCrDzaLAg6FiRo4sFS1e3WdJZAAruFV3MeTgSCI4iCKpUVwLxqIsKx3xQwIMm7fVZV33Mxz5T7ikfB4CBKEeesRzgCW1qB2zI/C5aZFTMi+CF1TjsoMP25VdysclP6EIMghkCIWTwayDxxA2g3O9F43kCY5jh0AdKCOmv5LMMTZrqs045uFhQFmtC+VjvCHj/NKe2IFvg5MKoK+NwBTkAhDe7tEYLolezdFYL4vltowW54i41g3IFYahi2QUI10MK+cFQtZQDTKjTqDhlLlK8SyGyKdjhntI5SciHQ2cY3cn1hzHqSbEonP+oA6TQBtvwuEPewTJ/lmWMnrMmXhJGpCFiH+EABQRUo0HdlBk8WFYQMgiURgO6huQy8gcpYeKM0saYj200T6dJSRnW+4Y+DT0DRx9HEiEbVwoQ7uUbXVFx/5U3irxHCgCFxwSpeBqZWZbxybeDm6AMrfqD5ZDzciqp6t3FcBNWmRi7vBM03iP0d2WUjZbmNI3uAw9dDMDd6RksWjN9oVEf5OTw523hLAZfrC+szPB1Qek0Y2rqYvGjSKI+X5ZhPZOKp4LGlYYiQ7jQU/OhRKtT1GmCaChAog2B0+SWST70m3SflA83D8BpOQhW5+3AIRsApjLF+eB7xni2DBbFODOnZgAlerlWjC7GW1CYsWFLajzr1bhSgrsPLG1R2M2aOkpu3mk+1FAQkf8Pfb2XSANaoSHmA6koUqukHNsalYZnyi0IEeHkrn/0YZvOTQPxcSe6hHhqOjanQjjF1D9nAag87u+QxKyrs8t7+n6oMqJ3hhm9c9fzG1lXwutd/Q9vLx0yFaWWz2AQCrOug6l80JO/qQXRKOF9ApyQzR3LMzQE/9Df7xEc2sin6PqYog4D0cTOno2i+tdGRIaF5vwDsGg5unM2CuLQd1qK9j2tOhT15epYeNxRsR59GYqSCFMc7bcWXkW4GyAAbNTmgqMdyqR11NevyTpvdwtL2+v5MPZknFJZbQEeaOExySeM21D2SVGZu+cZaUwHYX3Jpu7o0N3d4xbESFqlx7jPluA8W0r0pfxJXIz32PoSy/hwHBCGTx7Up3VD6seM85A8zFTw9yAYM+0SuVQMw+USpnlYAW76L5KnvZzU7YZeNDKaUsg6aD6GKoMBiUqy+T/ufjGmwkLtsJXGDymfdR34DJjtC+/ESqXKSTW8bgvyDhMTpYG4D+KTtfB5vx6ujx3X6ftn1taq7+wQxA+pUtbvqXCsHuksuuWJDtpwoWjMc6cMyKyK9AN08ulKqVc3sS7Uq6w6XunoCy7dRUeZPl6vtxrUi1c+O2rV8Z/558EAuWTJEkOXmtyNh3/6TG9Ao5NmBAmIZ0uZoaHBX+hLiEoMaJsu2iQuHgXsxOEnrTP/c70zVMCWYHxgHl7QSUiVMWzq/ZLf1/Oxzmmohy4oE/pQ1uX9Yx7QYz69MzFOk05I2q5f90iOQJNV/M1V/sfGhn7iYDJRGzZsCDooL5krJ06c+IUAYIpmTLMBBJrZn+zf/7KCNLbpn79c0HuB9a3s0w5Un98Vh2x44KvW1fKKBBJIPnNSWEsoYIVyqky9HOvTuw6+dTpoGsuej+3T+tX5TbZPjolFAVLRCskBGz3+qNxpxJf13t5eW7p0mW8QW7Uqt7W1Hnr66adfRlddr9uCkqd37z4qF9vl+wbfNNbq3xnDc+z0SzYy8IC1Z/bqSSE/cNF2UJbh1qRPY8Jd5RQ0L8v0Mf+Qh7axrHydtqG+XtfIC1po0vHSO8+I8nbKCpUf2+jRB604xqeDeX11P88uu+xy5toTgVp67dIPAvVZxczgQCh/aJoy69dvnOjs7PgdfbKWxdVaWlo9YOunUfJffYxUGtKbjQMCSEJp6UfgECDl4zLcrATm1W+4k292iU6yNu/TyCvmuU8IGP1Oo3ZQTzX/00aO7dTvN45Llpz/buNNb7rBfx1A3GEfpB/YVU+fHv6ovsA/KATYU8xoQbP6njrQ1qLfY3Tceeedn1fxHXyGx+aKQY7pc9onv/89fbs4rLJ2GrKwXGG+voC9wHKtS1WnfZNeIQc2Gls+H0RI82qZmminTbVRVPIkyvX6WIgNKvtj32EF4gFN1mv63uiUhuMJYuK/I7v22uv8ByxMHD/6W7V6ta1c2bvjrrvu+n19r8gyr9WmPiqM6ymKUK+YlsHCWm655ZZNGzde+PVSsbSiWNJzZw2MvkU9bN+zZ6/ei73gH0VS55s6KUoIjXpO4en6qc1pJlum0zor/YmYAZDnvUH9wCXtTpU/yXTenLkktGLMmjVr9bnvxf4zBMDJ6bi0RNsV6dJ/4MD+2+6+++796go4WNCM6WwuxpDZgwcPnli9evUBbRa3qtzOQY+EJa1cuZLZcIHYM/EEUp6oZTQo5FMPl4aEAp5SZUMZ0MOaUW93VAIQ1DEBoS10dDb8UQOuhPv39CywtWvX2pVXXmWrVq3ygM3bFX5HFsDZeGJwcOiPP/7xv3lKPVEknEFcoDP/pCKe2dBQAw2vKXP6cdrbli9f8Q8CopcfrBGTeAxL4meP7JnGVT8yOqIf2U3IqopeF7YJUE1Dxsuwdy0hUIo0oeQAx2zDHbBYrQqyCqyltbXNjxD8RpWJ40kEnFlgiDn61ZJpFXv1yJFjH/jwh//yCTUBTtNzGMPBYy6JqeUhdO7WW2+9eN26DX8lAW8ROLlSUSBImJpbDmcmLCFly33SHOYyzhQaP4f5ESQCOB28QI7L47LhrBUsm6cPgLVw4UI2h9Xu7vmP6oeBf3/PPffsUy/AwbUaHh8EXtP/zhUg+gESUZerffv2O24877xF27RqXSvhVqguH4QMwsbN5aRx4AaakRS8xjv5xrJ4edmFc/rQl/lMu0NS78MP5HiZgLUADBajnz9VOjvb+2VdPzh6dPBLH/rQX3xPXTiY6h2VX2cFR3RztiBoScjsgVt3B0w/Cjlv1aq1qxcu7O6VcEt1dWvf0a5w0i5iXFO6s1dBOX7kG+48G8YVaAt59jR8ksc2ASvgPkkf+4U7o6tN4qisp0LZoj5LHtexYVwfXJzSG9wB/Sr71T179ry8c+dO9jmAAiAxIM9siiKYnnySplfOoQw4XDwu4U6C10yXN/4f/0HhmS6GBRgCMfc5WY3o6umXBSgymAmQWBdpfp33mUCKdb9OOc6NdQ6BcwicQ+AcAr8OBP4Xw/zZH15pBiQAAAAASUVORK5CYII=',
|
|
11
|
+
iterm2: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAARGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAABIoAMABAAAAAEAAABIAAAAAJAxRu8AAAHNaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEwMjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kwe07qQAAC11JREFUeAHtW2tsXEcVPnfvvry7tuPYieM8XDWOayeRKkCiKiUmJKU8ojgJQYEWVaWAhIpAQqV/KJQ+oILyA4RASBUSLURIFUSEJJZCQ2iikFBoEUgU1MZxXCsP23EaJ67X+7q7916+b9brutvd2bUd25toj7Te9Z07M+f75pwzZ+beEalKlYEqA1UGqgxUGagycJMyYMwV18HTp2sbnGC76zPWmR5zlWFIo4hR67puwDAMz1zbL6c++nJcw0h5xI26rozajj1opN2z164m+3Zu6oyW00axe2ZN0PHX++4MhsJf8hjmxwzTbK2pqTFNr1c8numcuOiXXfA7J/ld6u7Jr5f/P9vM1c+27ziO2JmMJBJx27Wd845r/yUZjz23ZUP7P3IazOQ7X9uSdX9/6lRry4rW7/v9wftq6+t8sWhURoaG5PLwkFy7OirxiQmxrJS4UJSSDykHZ/r16Z0WojP/3kL3GBgYvz8goUhEGpY2yvKWldK8cqWEa2sl+vZ42rKSLwxfOv/dz27adH56f6V+z4igQ6/+e3NTU/PzdUuW3HppaFD+fGC/HO05KP29b8j42Fipvha0vG5Jg7R1dso923fKx3d9RlaAsPG3xwauXBn54o47PnCiXGXKJmj/y69uXr685Y/hSKTh+IuH5ec/+J4MnOmd6sf0+QQ+JnA3QeyZur6QPxCLxLVtse2M2On0VNdrb+uQr3/7cdnyyW0Sm5i4dvny8Kd333VHWSSVhWRvz9HW1ra1J2uXLGnd9+tfyY+feEzSaUs8ICMYqZNATUg8iD+LRcwUE5M/SJSDOJRKxCU5MS4OSPP5/PLIU0/Lnge/LNGxsfPn+9/seqD7npLu5s1vvMD/RlNL8w9hsq3H/tQDcr4DctLiD9ZIuKFRGJhVjODo4VMp4oFFh3z1EgiFJXZtVKxkQune1NwsWz+1vZWYoOv9+GiVLmlBLxx56a6WNbeciMfj3of27JLzA28qcmqblmOCQvUKIqXg4EzqGL1yWZHUeutaeXbfAQmFQpnhC+c23/eJu18uWG/y4vQ5ueB9kbr6r4Qjtd4jCMgkh25Fy7khyCEiDiBIos7UnRiIhZiIrSDoaRe1BD385JNLTa/v7uj4uBw73KOqBSO1yq2KWg5mdyNJxab1Mv0nZ3/Gz8z0i/P8GyQxFFB3CrEQE7ERo653LUEdG27vQMMrR4YuykBfn2onUBMuyg1BO+2uxJ9Oi9MMhrKp0Dv927i0zpV0tyOZO1FYjMR3aly3XzQk6k4hFmIiNmLUdaIlKBQOrQsEAp4RJIGxiahwKudsVRQZLMNZ5or1OVtc6pJvJeDEWeFK5oOOOB0LyI5iwFW6w2oUFmIitlAwtG7WBHnEu9oD/x0bHYXVwEyZ5zDoFRILtNWDgDZXjJSIvdERtw434ve7ZDFcbFIB6q5mXWAhJmLzmN7V79Iv7x/tNO/BwpPEILlS1QyPmVd98l9YTuYjjiQfTYu9NutaiR+lxerPSOBnXvEdQb0iVQs3OH9XcxiIidiIUdebliDHkAgXf2msrSgGWnuPMJQ0upJ4PC0u3Cv4LBaspw1lSda9Gcl8yBHfixXCzjQMxERsxPgeTNMuaAkyHNfPLNTGp6gw8K4ASS0YjV5Dgj9BkwkQ6XfFvx/ETOC3NtIVbXleC4iJ2AzH8es60qqOfRXTcRBwwXRRAQeeYXzOGWKvhzv+NC2ZLaiDceE1I46a2l6KtjyvBcREbLbjaM1br7pqBMEWvlpU0IJx1ZCaR7FYfd2Q9E5bJn5jSWyvJda9MC96pYbfou3OcwEx0cXwR9uTliAHjXB1rCWIzfsQg//jkcgXsB/zDZ/4/upRs1j8mbQkv8WsEKLhOHvDwv7FHqTCRow60ROEbQOyrHUxto5BMNhPDKHnoCmhh/wS+qofrmeItQe+zpwnPyfSabUAZdilVdi4NaITLUE2WGYg01oQyHGRNSceAZnIgVx4tIGcyPt3jxiX0TX+d736UdIpOF9lysUYqIFRJ9pZzEUQK2VBJMPaghzo4YxYn8+I918gZgTT/G2u2O93xXfMI+YZjAN70g+WTs/rXpYN0vQOzQyNXrUEOTbMkCxr/NQNZN3KgHtZCNCZ96HTJZi4Bg0JPGdK4JfoAiRWSqKYYzobpIlNH6T1BE36Kf21qHCWwurd/wdTfPiktzuSeMaS0Df94v2nIW4Q5dqJtGjL81pAYrIGoMEGDbQxKOtizIP0fsqpXBGBBo0EfsOqaDXqO58cEspetT2jfJ6FmLI5nt7FtGo6NoM08yA9y1NYYI+eS4b4f4eN+3FczW8d5DBxNN5CArnID0HULKZCiH7wtS6WyzZLWlCOIRLUZ0joMV/WevIJQrn5GoL2/1CBetGaFknKtSAtQXgqqaJ82RZEsCAl524FsZMYzmaLSA71IiY8eS0ZpPPHmHWnRFmQcjG9GU5VKPfHIpNDNXOzWKkkWEuQmuLVYvU6E1QukfN4X9bFsmmMrhs9QSqTnkGQ1vVUYWXZIF06k9YS5Kq1WImlRoUBL1edKRcrMUNrCWIGrab5ElsC5SpVSfep3UQ1zc8hD8pN87qlRiWBnokuUxZUYvBLWFDpxepMlKqke7ODz2l+DhbkZMrcMKsk5GXqoiyIC3Fg1InWghjpsWdbesNM10OFlqlZjNjmFKSZA5XaMKtQAkqpxTyI2Lhg1Yneghjly2BZ10Gllk1ZEDDqREsQ2c1uCej9VNdBpZblFqtzsyD454y2OyqVjQJ6KQtS68y5WNCkjzLi32ySy4O456UTrYvhqQZCELc89CzrOqjUMpUHwYLw9FgLTksQVvMp5WKVinIOetFuVIwFRl0zWoLsTDrGRky8xU65GVwth4GYiM2203geU1y0BGUy6atOhu8Y49kyhHnDjS45DMREbJm0fVWHSUuQlUwPpjNpwUEV1QYf0+ZGQNdopZZR99yjZmIiNiuZGtTpqyVoIh7tt5JJJ4IDIsFgUJ2i4Rvsi76hrENUtAxPe6E7TwIRCzGlgI0Yi1ZBgZagvjcunEmlUpcieH22adkyBiG83h9Tr0jrGq3EMryOqHQnBmIhJgvYiFGnr5agV155aSSZSJzw+byyfv0G1U4Sb7tyFG4olsAOdabuFGIhJmIjRnWxyB8tQazz1sil5+OxmN25Yb0sXboUmbWtzj5wJG4Ikmg60JXnNag7MawHFmIitiK8TF0uSdC+ffuOj0fHD0VwKOSjW7biVWBTnXng2Qf6tHotmEpUmkAn6kYdc+c0qDsxhEMRISZiK6V2/pPzQvc7DfX1/62rr9u9vLm5lgHu3LlzmB7xih3iEQ0JZ1XxBixee5lUarG/CYLEJGMTynKoK8nZsnWrbNi4ka81D/f19j44MDCgdS+2U/bQ79ixe8eaW1b9NhgI1p492yenTp6UUbyMnRMT57FML4la5AN1TP6Q39ggJSeNjY2yqatL2te1SyKVjF44N3j/oUP7D+XKdd9lE8RGuru7d61avfoX4VB45QQCXm9vr/Th3AOJSiZ5gqVyhJZOYtrb26Wjo0PNWvF4bOjixYtf6+npOVCupjMiiI12dXXd3tbW9hTOW3XDmkzLsiQKsibw5noykRQLI8d3kBc6oaRb042YITMJZJ5Ti6nc7/dLMpW0cd6tp7+//4mTJ0++Vi45vG/GBE02Hti2bds9GKEHcCDkw17TbIFiCEPZODQTBWZzL8JeUcU5MNwFxalIN2Pbw8jj/gYL33v48OGjqKZdmBbSZbYE5doyOzs716xataoTI9YGklZ6PZ6lICqMA/R+KFvOJJBra9bfsB48W3AsMBPLOM5VkDMEi+4fHBw8DbmAhme9iJwrQTpQ89l2oX5pWFWpMlBloMpAlYEqA1UGphj4P2lbybYJeYtFAAAAAElFTkSuQmCC',
|
|
12
|
+
'windows-terminal': 'data:image/png;base64,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',
|
|
13
|
+
terminal: 'data:image/png;base64,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',
|
|
14
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TerminalId } from '@remotion/studio-shared';
|
|
2
|
+
type SupportedTerminalPlatform = 'darwin' | 'linux' | 'win32';
|
|
3
|
+
export type InstalledTerminal = {
|
|
4
|
+
id: TerminalId;
|
|
5
|
+
name: string;
|
|
6
|
+
applicationPath: string;
|
|
7
|
+
platform: SupportedTerminalPlatform;
|
|
8
|
+
};
|
|
9
|
+
export type TerminalDiscoveryContext = {
|
|
10
|
+
platform: NodeJS.Platform;
|
|
11
|
+
env: NodeJS.ProcessEnv;
|
|
12
|
+
homeDirectory: string;
|
|
13
|
+
pathExists: (filePath: string) => boolean;
|
|
14
|
+
findMacApplications: (bundleIdentifier: string) => Promise<readonly string[]>;
|
|
15
|
+
};
|
|
16
|
+
export declare const discoverAvailableTerminals: (context: TerminalDiscoveryContext) => Promise<readonly InstalledTerminal[]>;
|
|
17
|
+
export declare const getAvailableTerminals: () => Promise<readonly InstalledTerminal[]>;
|
|
18
|
+
type TerminalLaunchInstruction = {
|
|
19
|
+
type: 'command';
|
|
20
|
+
command: string;
|
|
21
|
+
args: string[];
|
|
22
|
+
cwd: string;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'url';
|
|
25
|
+
url: string;
|
|
26
|
+
};
|
|
27
|
+
export declare const getTerminalLaunchInstruction: ({ terminal, directory, }: {
|
|
28
|
+
terminal: InstalledTerminal;
|
|
29
|
+
directory: string;
|
|
30
|
+
}) => TerminalLaunchInstruction;
|
|
31
|
+
export declare const launchTerminal: ({ terminal, directory, allowedDirectory, }: {
|
|
32
|
+
terminal: InstalledTerminal;
|
|
33
|
+
directory: string;
|
|
34
|
+
allowedDirectory: string;
|
|
35
|
+
}) => Promise<void>;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.launchTerminal = exports.getTerminalLaunchInstruction = exports.getAvailableTerminals = exports.discoverAvailableTerminals = void 0;
|
|
7
|
+
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const node_fs_1 = require("node:fs");
|
|
9
|
+
const node_os_1 = require("node:os");
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_util_1 = require("node:util");
|
|
12
|
+
const open = require("open");
|
|
13
|
+
const execFilePromise = (0, node_util_1.promisify)(node_child_process_1.execFile);
|
|
14
|
+
const getWindowsEnvironmentPaths = (context, segments) => {
|
|
15
|
+
const paths = [];
|
|
16
|
+
for (const directory of [
|
|
17
|
+
context.env.LOCALAPPDATA,
|
|
18
|
+
context.env.ProgramFiles,
|
|
19
|
+
context.env['ProgramFiles(x86)'],
|
|
20
|
+
]) {
|
|
21
|
+
if (directory) {
|
|
22
|
+
paths.push(node_path_1.default.win32.join(directory, ...segments));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return paths;
|
|
26
|
+
};
|
|
27
|
+
const getLinuxCommandPaths = (context, command) => [
|
|
28
|
+
node_path_1.default.posix.join('/usr/local/bin', command),
|
|
29
|
+
node_path_1.default.posix.join('/usr/bin', command),
|
|
30
|
+
node_path_1.default.posix.join(context.homeDirectory, '.local/bin', command),
|
|
31
|
+
];
|
|
32
|
+
const terminalDefinitions = {
|
|
33
|
+
terminal: {
|
|
34
|
+
name: 'Terminal',
|
|
35
|
+
darwin: {
|
|
36
|
+
bundleIdentifiers: ['com.apple.Terminal'],
|
|
37
|
+
applicationNames: ['Terminal.app'],
|
|
38
|
+
},
|
|
39
|
+
linux: null,
|
|
40
|
+
win32: null,
|
|
41
|
+
},
|
|
42
|
+
iterm2: {
|
|
43
|
+
name: 'iTerm2',
|
|
44
|
+
darwin: {
|
|
45
|
+
bundleIdentifiers: ['com.googlecode.iterm2'],
|
|
46
|
+
applicationNames: ['iTerm.app'],
|
|
47
|
+
},
|
|
48
|
+
linux: null,
|
|
49
|
+
win32: null,
|
|
50
|
+
},
|
|
51
|
+
ghostty: {
|
|
52
|
+
name: 'Ghostty',
|
|
53
|
+
darwin: {
|
|
54
|
+
bundleIdentifiers: ['com.mitchellh.ghostty'],
|
|
55
|
+
applicationNames: ['Ghostty.app'],
|
|
56
|
+
},
|
|
57
|
+
linux: {
|
|
58
|
+
paths: (context) => getLinuxCommandPaths(context, 'ghostty'),
|
|
59
|
+
commands: ['ghostty'],
|
|
60
|
+
},
|
|
61
|
+
win32: null,
|
|
62
|
+
},
|
|
63
|
+
warp: {
|
|
64
|
+
name: 'Warp',
|
|
65
|
+
darwin: {
|
|
66
|
+
bundleIdentifiers: ['dev.warp.Warp-Stable'],
|
|
67
|
+
applicationNames: ['Warp.app'],
|
|
68
|
+
},
|
|
69
|
+
linux: {
|
|
70
|
+
paths: (context) => getLinuxCommandPaths(context, 'warp-terminal'),
|
|
71
|
+
commands: ['warp-terminal'],
|
|
72
|
+
},
|
|
73
|
+
win32: {
|
|
74
|
+
paths: (context) => context.env.LOCALAPPDATA
|
|
75
|
+
? [
|
|
76
|
+
node_path_1.default.win32.join(context.env.LOCALAPPDATA, 'Programs', 'Warp', 'Warp.exe'),
|
|
77
|
+
]
|
|
78
|
+
: [],
|
|
79
|
+
commands: ['Warp.exe'],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
wezterm: {
|
|
83
|
+
name: 'WezTerm',
|
|
84
|
+
darwin: {
|
|
85
|
+
bundleIdentifiers: ['com.github.wez.wezterm'],
|
|
86
|
+
applicationNames: ['WezTerm.app'],
|
|
87
|
+
},
|
|
88
|
+
linux: {
|
|
89
|
+
paths: (context) => getLinuxCommandPaths(context, 'wezterm'),
|
|
90
|
+
commands: ['wezterm'],
|
|
91
|
+
},
|
|
92
|
+
win32: {
|
|
93
|
+
paths: (context) => [
|
|
94
|
+
...getWindowsEnvironmentPaths(context, ['WezTerm', 'wezterm-gui.exe']),
|
|
95
|
+
],
|
|
96
|
+
commands: ['wezterm-gui.exe', 'wezterm.exe'],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
alacritty: {
|
|
100
|
+
name: 'Alacritty',
|
|
101
|
+
darwin: {
|
|
102
|
+
bundleIdentifiers: ['org.alacritty'],
|
|
103
|
+
applicationNames: ['Alacritty.app'],
|
|
104
|
+
},
|
|
105
|
+
linux: {
|
|
106
|
+
paths: (context) => getLinuxCommandPaths(context, 'alacritty'),
|
|
107
|
+
commands: ['alacritty'],
|
|
108
|
+
},
|
|
109
|
+
win32: {
|
|
110
|
+
paths: (context) => getWindowsEnvironmentPaths(context, ['Alacritty', 'alacritty.exe']),
|
|
111
|
+
commands: ['alacritty.exe'],
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
'windows-terminal': {
|
|
115
|
+
name: 'Windows Terminal',
|
|
116
|
+
darwin: null,
|
|
117
|
+
linux: null,
|
|
118
|
+
win32: {
|
|
119
|
+
paths: (context) => context.env.LOCALAPPDATA
|
|
120
|
+
? [
|
|
121
|
+
node_path_1.default.win32.join(context.env.LOCALAPPDATA, 'Microsoft', 'WindowsApps', 'wt.exe'),
|
|
122
|
+
]
|
|
123
|
+
: [],
|
|
124
|
+
commands: ['wt.exe'],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
'gnome-terminal': {
|
|
128
|
+
name: 'GNOME Terminal',
|
|
129
|
+
darwin: null,
|
|
130
|
+
linux: {
|
|
131
|
+
paths: (context) => getLinuxCommandPaths(context, 'gnome-terminal'),
|
|
132
|
+
commands: ['gnome-terminal'],
|
|
133
|
+
},
|
|
134
|
+
win32: null,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
const findMacApplications = async (bundleIdentifier) => {
|
|
138
|
+
try {
|
|
139
|
+
const { stdout } = await execFilePromise('mdfind', [
|
|
140
|
+
`kMDItemCFBundleIdentifier == '${bundleIdentifier}'`,
|
|
141
|
+
]);
|
|
142
|
+
return stdout
|
|
143
|
+
.split('\n')
|
|
144
|
+
.map((line) => line.trim())
|
|
145
|
+
.filter(Boolean);
|
|
146
|
+
}
|
|
147
|
+
catch (_a) {
|
|
148
|
+
return [];
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const defaultDiscoveryContext = {
|
|
152
|
+
platform: process.platform,
|
|
153
|
+
env: process.env,
|
|
154
|
+
homeDirectory: (0, node_os_1.homedir)(),
|
|
155
|
+
pathExists: node_fs_1.existsSync,
|
|
156
|
+
findMacApplications,
|
|
157
|
+
};
|
|
158
|
+
const getPathDirectories = (context) => {
|
|
159
|
+
var _a, _b;
|
|
160
|
+
const value = (_b = (_a = context.env.PATH) !== null && _a !== void 0 ? _a : context.env.Path) !== null && _b !== void 0 ? _b : '';
|
|
161
|
+
return value.split(context.platform === 'win32' ? ';' : ':').filter(Boolean);
|
|
162
|
+
};
|
|
163
|
+
const findExecutable = ({ paths, commands, context, }) => {
|
|
164
|
+
for (const executablePath of paths) {
|
|
165
|
+
if (context.pathExists(executablePath)) {
|
|
166
|
+
return executablePath;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const pathImplementation = context.platform === 'win32' ? node_path_1.default.win32 : node_path_1.default.posix;
|
|
170
|
+
for (const directory of getPathDirectories(context)) {
|
|
171
|
+
for (const command of commands) {
|
|
172
|
+
const executablePath = pathImplementation.join(directory, command);
|
|
173
|
+
if (context.pathExists(executablePath)) {
|
|
174
|
+
return executablePath;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return null;
|
|
179
|
+
};
|
|
180
|
+
const discoverAvailableTerminals = async (context) => {
|
|
181
|
+
if (context.platform !== 'darwin' &&
|
|
182
|
+
context.platform !== 'linux' &&
|
|
183
|
+
context.platform !== 'win32') {
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
const installedTerminals = [];
|
|
187
|
+
for (const [id, definition] of Object.entries(terminalDefinitions)) {
|
|
188
|
+
const platformDefinition = definition[context.platform];
|
|
189
|
+
if (platformDefinition === null) {
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
if (context.platform === 'darwin') {
|
|
193
|
+
const darwinDefinition = definition.darwin;
|
|
194
|
+
if (darwinDefinition === null) {
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
const discoveredApplications = (await Promise.all(darwinDefinition.bundleIdentifiers.map((bundleIdentifier) => context.findMacApplications(bundleIdentifier)))).flat();
|
|
198
|
+
const knownApplications = darwinDefinition.applicationNames.flatMap((name) => [
|
|
199
|
+
node_path_1.default.posix.join('/Applications', name),
|
|
200
|
+
node_path_1.default.posix.join(context.homeDirectory, 'Applications', name),
|
|
201
|
+
]);
|
|
202
|
+
const macApplicationPath = [
|
|
203
|
+
...new Set([...discoveredApplications, ...knownApplications]),
|
|
204
|
+
].find(context.pathExists);
|
|
205
|
+
if (macApplicationPath) {
|
|
206
|
+
installedTerminals.push({
|
|
207
|
+
applicationPath: macApplicationPath,
|
|
208
|
+
id,
|
|
209
|
+
name: definition.name,
|
|
210
|
+
platform: context.platform,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
const executableDefinition = definition[context.platform];
|
|
216
|
+
if (executableDefinition === null) {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
const applicationPath = findExecutable({
|
|
220
|
+
paths: typeof executableDefinition.paths === 'function'
|
|
221
|
+
? executableDefinition.paths(context)
|
|
222
|
+
: executableDefinition.paths,
|
|
223
|
+
commands: executableDefinition.commands,
|
|
224
|
+
context,
|
|
225
|
+
});
|
|
226
|
+
if (applicationPath) {
|
|
227
|
+
installedTerminals.push({
|
|
228
|
+
applicationPath,
|
|
229
|
+
id,
|
|
230
|
+
name: definition.name,
|
|
231
|
+
platform: context.platform,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return installedTerminals;
|
|
236
|
+
};
|
|
237
|
+
exports.discoverAvailableTerminals = discoverAvailableTerminals;
|
|
238
|
+
let availableTerminals = null;
|
|
239
|
+
const getAvailableTerminals = () => {
|
|
240
|
+
availableTerminals !== null && availableTerminals !== void 0 ? availableTerminals : (availableTerminals = (0, exports.discoverAvailableTerminals)(defaultDiscoveryContext));
|
|
241
|
+
return availableTerminals;
|
|
242
|
+
};
|
|
243
|
+
exports.getAvailableTerminals = getAvailableTerminals;
|
|
244
|
+
const getTerminalLaunchInstruction = ({ terminal, directory, }) => {
|
|
245
|
+
if (terminal.id === 'warp') {
|
|
246
|
+
const url = new URL('warp://action/new_window');
|
|
247
|
+
url.searchParams.set('path', directory);
|
|
248
|
+
return { type: 'url', url: url.href };
|
|
249
|
+
}
|
|
250
|
+
if (terminal.platform === 'darwin') {
|
|
251
|
+
switch (terminal.id) {
|
|
252
|
+
case 'terminal':
|
|
253
|
+
case 'iterm2':
|
|
254
|
+
return {
|
|
255
|
+
type: 'command',
|
|
256
|
+
command: 'open',
|
|
257
|
+
args: ['-a', terminal.applicationPath, directory],
|
|
258
|
+
cwd: directory,
|
|
259
|
+
};
|
|
260
|
+
case 'ghostty':
|
|
261
|
+
return {
|
|
262
|
+
type: 'command',
|
|
263
|
+
command: 'open',
|
|
264
|
+
args: [
|
|
265
|
+
'-na',
|
|
266
|
+
terminal.applicationPath,
|
|
267
|
+
'--args',
|
|
268
|
+
`--working-directory=${directory}`,
|
|
269
|
+
],
|
|
270
|
+
cwd: directory,
|
|
271
|
+
};
|
|
272
|
+
case 'wezterm':
|
|
273
|
+
return {
|
|
274
|
+
type: 'command',
|
|
275
|
+
command: node_path_1.default.posix.join(terminal.applicationPath, 'Contents/MacOS/wezterm'),
|
|
276
|
+
args: ['start', '--cwd', directory],
|
|
277
|
+
cwd: directory,
|
|
278
|
+
};
|
|
279
|
+
case 'alacritty':
|
|
280
|
+
return {
|
|
281
|
+
type: 'command',
|
|
282
|
+
command: node_path_1.default.posix.join(terminal.applicationPath, 'Contents/MacOS/alacritty'),
|
|
283
|
+
args: ['--working-directory', directory],
|
|
284
|
+
cwd: directory,
|
|
285
|
+
};
|
|
286
|
+
case 'windows-terminal':
|
|
287
|
+
case 'gnome-terminal':
|
|
288
|
+
throw new Error(`${terminal.name} is not supported on macOS.`);
|
|
289
|
+
default: {
|
|
290
|
+
const invalidTerminal = terminal.id;
|
|
291
|
+
throw new Error(`Unknown terminal: ${invalidTerminal}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
if (terminal.platform === 'win32') {
|
|
296
|
+
switch (terminal.id) {
|
|
297
|
+
case 'windows-terminal':
|
|
298
|
+
return {
|
|
299
|
+
type: 'command',
|
|
300
|
+
command: terminal.applicationPath,
|
|
301
|
+
args: ['-d', directory],
|
|
302
|
+
cwd: directory,
|
|
303
|
+
};
|
|
304
|
+
case 'wezterm':
|
|
305
|
+
return {
|
|
306
|
+
type: 'command',
|
|
307
|
+
command: terminal.applicationPath,
|
|
308
|
+
args: ['start', '--cwd', directory],
|
|
309
|
+
cwd: directory,
|
|
310
|
+
};
|
|
311
|
+
case 'alacritty':
|
|
312
|
+
return {
|
|
313
|
+
type: 'command',
|
|
314
|
+
command: terminal.applicationPath,
|
|
315
|
+
args: ['--working-directory', directory],
|
|
316
|
+
cwd: directory,
|
|
317
|
+
};
|
|
318
|
+
case 'terminal':
|
|
319
|
+
case 'iterm2':
|
|
320
|
+
case 'ghostty':
|
|
321
|
+
case 'gnome-terminal':
|
|
322
|
+
throw new Error(`${terminal.name} is not supported on Windows.`);
|
|
323
|
+
default: {
|
|
324
|
+
const invalidTerminal = terminal.id;
|
|
325
|
+
throw new Error(`Unknown terminal: ${invalidTerminal}`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
switch (terminal.id) {
|
|
330
|
+
case 'ghostty':
|
|
331
|
+
return {
|
|
332
|
+
type: 'command',
|
|
333
|
+
command: terminal.applicationPath,
|
|
334
|
+
args: [`--working-directory=${directory}`],
|
|
335
|
+
cwd: directory,
|
|
336
|
+
};
|
|
337
|
+
case 'wezterm':
|
|
338
|
+
return {
|
|
339
|
+
type: 'command',
|
|
340
|
+
command: terminal.applicationPath,
|
|
341
|
+
args: ['start', '--cwd', directory],
|
|
342
|
+
cwd: directory,
|
|
343
|
+
};
|
|
344
|
+
case 'alacritty':
|
|
345
|
+
return {
|
|
346
|
+
type: 'command',
|
|
347
|
+
command: terminal.applicationPath,
|
|
348
|
+
args: ['--working-directory', directory],
|
|
349
|
+
cwd: directory,
|
|
350
|
+
};
|
|
351
|
+
case 'gnome-terminal':
|
|
352
|
+
return {
|
|
353
|
+
type: 'command',
|
|
354
|
+
command: terminal.applicationPath,
|
|
355
|
+
args: [`--working-directory=${directory}`],
|
|
356
|
+
cwd: directory,
|
|
357
|
+
};
|
|
358
|
+
case 'terminal':
|
|
359
|
+
case 'iterm2':
|
|
360
|
+
case 'windows-terminal':
|
|
361
|
+
throw new Error(`${terminal.name} is not supported on Linux.`);
|
|
362
|
+
default: {
|
|
363
|
+
const invalidTerminal = terminal.id;
|
|
364
|
+
throw new Error(`Unknown terminal: ${invalidTerminal}`);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
};
|
|
368
|
+
exports.getTerminalLaunchInstruction = getTerminalLaunchInstruction;
|
|
369
|
+
const launchTerminal = async ({ terminal, directory, allowedDirectory, }) => {
|
|
370
|
+
const resolvedAllowedDirectory = node_path_1.default.resolve(allowedDirectory);
|
|
371
|
+
const resolvedDirectory = node_path_1.default.resolve(resolvedAllowedDirectory, directory);
|
|
372
|
+
const relativePath = node_path_1.default.relative(resolvedAllowedDirectory, resolvedDirectory);
|
|
373
|
+
if (relativePath.startsWith('..') || node_path_1.default.isAbsolute(relativePath)) {
|
|
374
|
+
throw new Error(`Not allowed to open ${relativePath}`);
|
|
375
|
+
}
|
|
376
|
+
if (!(0, node_fs_1.statSync)(resolvedDirectory).isDirectory()) {
|
|
377
|
+
throw new Error('Only folders can be opened in a terminal.');
|
|
378
|
+
}
|
|
379
|
+
const instruction = (0, exports.getTerminalLaunchInstruction)({
|
|
380
|
+
terminal,
|
|
381
|
+
directory: resolvedDirectory,
|
|
382
|
+
});
|
|
383
|
+
if (instruction.type === 'url') {
|
|
384
|
+
await open(instruction.url);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
const { command, args, cwd } = instruction;
|
|
388
|
+
await new Promise((resolve, reject) => {
|
|
389
|
+
const child = (0, node_child_process_1.spawn)(command, args, {
|
|
390
|
+
cwd,
|
|
391
|
+
detached: true,
|
|
392
|
+
stdio: 'ignore',
|
|
393
|
+
});
|
|
394
|
+
child.once('error', reject);
|
|
395
|
+
child.once('spawn', () => {
|
|
396
|
+
child.unref();
|
|
397
|
+
resolve();
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
};
|
|
401
|
+
exports.launchTerminal = launchTerminal;
|
package/dist/index.d.ts
CHANGED
|
@@ -71,7 +71,12 @@ export declare const StudioServerInternals: {
|
|
|
71
71
|
exists: boolean;
|
|
72
72
|
unwatch: () => void;
|
|
73
73
|
};
|
|
74
|
-
writeFileAndNotifyFileWatchers: (
|
|
74
|
+
writeFileAndNotifyFileWatchers: (options: {
|
|
75
|
+
file: string;
|
|
76
|
+
content: string;
|
|
77
|
+
originatorClientId: string | undefined;
|
|
78
|
+
metadata: import("./file-watcher").FileChangeMetadata | null;
|
|
79
|
+
}) => void;
|
|
75
80
|
createFileWatcherRegistry: () => import("./file-watcher").FileWatcherRegistry;
|
|
76
81
|
setFileWatcherRegistry: (registry: import("./file-watcher").FileWatcherRegistry) => () => void;
|
|
77
82
|
AnsiDiff: typeof AnsiDiff;
|
|
@@ -30,6 +30,7 @@ const log_studio_error_1 = require("./routes/log-studio-error");
|
|
|
30
30
|
const move_keyframes_1 = require("./routes/move-keyframes");
|
|
31
31
|
const open_in_editor_1 = require("./routes/open-in-editor");
|
|
32
32
|
const open_in_file_explorer_1 = require("./routes/open-in-file-explorer");
|
|
33
|
+
const open_in_terminal_1 = require("./routes/open-in-terminal");
|
|
33
34
|
const paste_effects_1 = require("./routes/paste-effects");
|
|
34
35
|
const prepare_element_install_1 = require("./routes/prepare-element-install");
|
|
35
36
|
const project_info_1 = require("./routes/project-info");
|
|
@@ -69,6 +70,7 @@ exports.allApiRoutes = {
|
|
|
69
70
|
'/api/remove-render': remove_render_1.handleRemoveRender,
|
|
70
71
|
'/api/find-in-file': find_in_file_1.findInFileHandler,
|
|
71
72
|
'/api/open-in-file-explorer': open_in_file_explorer_1.handleOpenInFileExplorer,
|
|
73
|
+
'/api/open-in-terminal': open_in_terminal_1.openInTerminalHandler,
|
|
72
74
|
'/api/open-in-editor': open_in_editor_1.openInEditorHandler,
|
|
73
75
|
'/api/open-in-coding-agent': default_coding_agent_1.openInCodingAgentHandler,
|
|
74
76
|
'/api/register-client-render': register_client_render_1.registerClientRenderHandler,
|
|
@@ -14,4 +14,5 @@ export type InitialUndoRedoState = {
|
|
|
14
14
|
};
|
|
15
15
|
export declare const makeLiveEventsRouter: (logLevel: "error" | "info" | "trace" | "verbose" | "warn", getInitialUndoRedoState: () => InitialUndoRedoState) => LiveEventsServer;
|
|
16
16
|
export declare const waitForLiveEventsListener: () => Promise<LiveEventsServer>;
|
|
17
|
+
export declare const getLiveEventsListener: () => LiveEventsServer | null;
|
|
17
18
|
export declare const setLiveEventsListener: (listener: LiveEventsServer) => () => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setLiveEventsListener = exports.waitForLiveEventsListener = exports.makeLiveEventsRouter = exports.clearPrintPortMessageTimeout = void 0;
|
|
3
|
+
exports.setLiveEventsListener = exports.getLiveEventsListener = exports.waitForLiveEventsListener = exports.makeLiveEventsRouter = exports.clearPrintPortMessageTimeout = void 0;
|
|
4
4
|
const server_ready_1 = require("../server-ready");
|
|
5
5
|
const default_props_watchers_1 = require("./default-props-watchers");
|
|
6
6
|
const file_existence_watchers_1 = require("./file-existence-watchers");
|
|
@@ -105,6 +105,8 @@ const waitForLiveEventsListener = () => {
|
|
|
105
105
|
});
|
|
106
106
|
};
|
|
107
107
|
exports.waitForLiveEventsListener = waitForLiveEventsListener;
|
|
108
|
+
const getLiveEventsListener = () => liveEventsListener;
|
|
109
|
+
exports.getLiveEventsListener = getLiveEventsListener;
|
|
108
110
|
const setLiveEventsListener = (listener) => {
|
|
109
111
|
liveEventsListener = listener;
|
|
110
112
|
waiters.forEach((w) => w(listener));
|
|
@@ -58,10 +58,16 @@ const addEffectKeyframeHandler = ({ input: { fileName, sequenceNodePath, effectI
|
|
|
58
58
|
},
|
|
59
59
|
entryType: 'effect-props',
|
|
60
60
|
suppressHmrOnFileRestore: true,
|
|
61
|
+
nodePathRemappings: null,
|
|
61
62
|
});
|
|
62
63
|
(0, undo_stack_1.suppressUndoStackInvalidation)(absolutePath);
|
|
63
64
|
(0, watch_ignore_next_change_1.suppressBundlerUpdateForFile)(absolutePath);
|
|
64
|
-
(0, file_watcher_1.writeFileAndNotifyFileWatchers)(
|
|
65
|
+
(0, file_watcher_1.writeFileAndNotifyFileWatchers)({
|
|
66
|
+
file: absolutePath,
|
|
67
|
+
content: output,
|
|
68
|
+
originatorClientId: clientId,
|
|
69
|
+
metadata: null,
|
|
70
|
+
});
|
|
65
71
|
(0, log_effect_update_1.logEffectUpdate)({
|
|
66
72
|
fileRelativeToRoot,
|
|
67
73
|
line: logLine,
|