@remotion/cli 4.0.0-oops.3 → 4.0.0-publish.10

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 (318) hide show
  1. package/dist/bundle-on-cli.d.ts +2 -0
  2. package/dist/bundle-on-cli.js +41 -0
  3. package/dist/bundle.d.ts +1 -0
  4. package/dist/bundle.js +31 -0
  5. package/dist/chalk/index.d.ts +58 -0
  6. package/dist/chalk/index.js +138 -0
  7. package/dist/chalk/symbols.d.ts +111 -0
  8. package/dist/chalk/symbols.js +75 -0
  9. package/dist/chalk/utilities.d.ts +2 -0
  10. package/dist/chalk/utilities.js +37 -0
  11. package/dist/code-frame.d.ts +1 -1
  12. package/dist/code-frame.js +5 -8
  13. package/dist/compositions.js +14 -3
  14. package/dist/download-progress.d.ts +2 -1
  15. package/dist/download-progress.js +19 -4
  16. package/dist/editor/components/AudioWaveform.js +2 -2
  17. package/dist/editor/components/AudioWaveformBar.js +1 -1
  18. package/dist/editor/components/Canvas.js +1 -1
  19. package/dist/editor/components/CheckboardToggle.js +1 -1
  20. package/dist/editor/components/ClipboardIcon.js +1 -1
  21. package/dist/editor/components/CollapsedCompositionSelector.d.ts +4 -0
  22. package/dist/editor/components/CollapsedCompositionSelector.js +39 -0
  23. package/dist/editor/components/CompositionManager.d.ts +4 -0
  24. package/dist/editor/components/CompositionManager.js +60 -0
  25. package/dist/editor/components/CompositionSelector.js +5 -45
  26. package/dist/editor/components/CompositionSelectorItem.d.ts +1 -1
  27. package/dist/editor/components/CompositionSelectorItem.js +3 -3
  28. package/dist/editor/components/ControlButton.js +1 -1
  29. package/dist/editor/components/CopyButton.js +2 -2
  30. package/dist/editor/components/CurrentComposition.js +2 -2
  31. package/dist/editor/components/Editor.js +24 -8
  32. package/dist/editor/components/EditorContent.js +3 -2
  33. package/dist/editor/components/FpsCounter.js +1 -1
  34. package/dist/editor/components/FramePersistor.d.ts +1 -1
  35. package/dist/editor/components/GlobalKeybindings.d.ts +1 -1
  36. package/dist/editor/components/InitialCompositionLoader.d.ts +4 -0
  37. package/dist/editor/components/InitialCompositionLoader.js +60 -0
  38. package/dist/editor/components/KeyboardShortcutsModal.js +1 -1
  39. package/dist/editor/components/LoadingIndicator.js +1 -1
  40. package/dist/editor/components/LoopToggle.js +1 -1
  41. package/dist/editor/components/Menu/MenuDivider.js +1 -1
  42. package/dist/editor/components/Menu/MenuItem.d.ts +1 -1
  43. package/dist/editor/components/Menu/MenuItem.js +3 -3
  44. package/dist/editor/components/Menu/MenuSubItem.d.ts +1 -1
  45. package/dist/editor/components/Menu/MenuSubItem.js +3 -3
  46. package/dist/editor/components/Menu/SubMenu.d.ts +2 -2
  47. package/dist/editor/components/Menu/SubMenu.js +1 -1
  48. package/dist/editor/components/MenuBuildIndicator.d.ts +2 -0
  49. package/dist/editor/components/MenuBuildIndicator.js +26 -0
  50. package/dist/editor/components/MenuToolbar.js +69 -9
  51. package/dist/editor/components/ModalContainer.js +1 -1
  52. package/dist/editor/components/ModalHeader.js +1 -1
  53. package/dist/editor/components/MuteToggle.js +1 -1
  54. package/dist/editor/components/NewComposition/CancelButton.d.ts +2 -1
  55. package/dist/editor/components/NewComposition/CancelButton.js +1 -1
  56. package/dist/editor/components/NewComposition/ComboBox.js +3 -3
  57. package/dist/editor/components/NewComposition/CopyHint.js +1 -1
  58. package/dist/editor/components/NewComposition/InputDragger.d.ts +2 -1
  59. package/dist/editor/components/NewComposition/InputDragger.js +2 -2
  60. package/dist/editor/components/NewComposition/MenuContent.d.ts +1 -1
  61. package/dist/editor/components/NewComposition/MenuContent.js +1 -1
  62. package/dist/editor/components/NewComposition/NewCompAspectRatio.js +1 -1
  63. package/dist/editor/components/NewComposition/NewCompDuration.js +1 -1
  64. package/dist/editor/components/NewComposition/NewComposition.d.ts +1 -1
  65. package/dist/editor/components/NewComposition/NewComposition.js +4 -4
  66. package/dist/editor/components/NewComposition/RemInput.js +1 -1
  67. package/dist/editor/components/NewComposition/ToggleAspectRatio.js +1 -1
  68. package/dist/editor/components/NewComposition/ValidationMessage.js +2 -2
  69. package/dist/editor/components/NewComposition/new-comp-layout.d.ts +1 -1
  70. package/dist/editor/components/NoRegisterRoot.d.ts +2 -0
  71. package/dist/editor/components/NoRegisterRoot.js +41 -0
  72. package/dist/editor/components/PlayPause.js +40 -11
  73. package/dist/editor/components/PlaybackKeyboardShortcutsManager.d.ts +1 -1
  74. package/dist/editor/components/PlaybackRatePersistor.d.ts +1 -1
  75. package/dist/editor/components/PlaybackRateSelector.js +2 -2
  76. package/dist/editor/components/Preview.d.ts +1 -1
  77. package/dist/editor/components/Preview.js +10 -7
  78. package/dist/editor/components/PreviewToolbar.js +1 -1
  79. package/dist/editor/components/RichTimelineToggle.js +1 -1
  80. package/dist/editor/components/SizeSelector.d.ts +1 -1
  81. package/dist/editor/components/SizeSelector.js +2 -2
  82. package/dist/editor/components/Splitter/SplitterContainer.d.ts +1 -1
  83. package/dist/editor/components/Splitter/SplitterContainer.js +1 -1
  84. package/dist/editor/components/Splitter/SplitterElement.js +4 -2
  85. package/dist/editor/components/Splitter/SplitterHandle.d.ts +4 -1
  86. package/dist/editor/components/Splitter/SplitterHandle.js +28 -7
  87. package/dist/editor/components/Thumbnail.d.ts +1 -1
  88. package/dist/editor/components/Thumbnail.js +1 -1
  89. package/dist/editor/components/TimeValue.js +1 -1
  90. package/dist/editor/components/Timeline/LoopedIndicator.js +2 -2
  91. package/dist/editor/components/Timeline/LoopedTimelineIndicators.js +3 -3
  92. package/dist/editor/components/Timeline/MaxTimelineTracks.js +1 -1
  93. package/dist/editor/components/Timeline/Timeline.js +2 -1
  94. package/dist/editor/components/Timeline/TimelineCollapseToggle.js +2 -2
  95. package/dist/editor/components/Timeline/TimelineDragHandler.js +1 -1
  96. package/dist/editor/components/Timeline/TimelineInOutPointer.js +2 -2
  97. package/dist/editor/components/Timeline/TimelineInOutPointerHandle.js +1 -1
  98. package/dist/editor/components/Timeline/TimelineList.d.ts +2 -2
  99. package/dist/editor/components/Timeline/TimelineList.js +1 -1
  100. package/dist/editor/components/Timeline/TimelineListItem.d.ts +2 -2
  101. package/dist/editor/components/Timeline/TimelineListItem.js +1 -1
  102. package/dist/editor/components/Timeline/TimelineSequence.d.ts +1 -1
  103. package/dist/editor/components/Timeline/TimelineSequence.js +1 -1
  104. package/dist/editor/components/Timeline/TimelineSequenceFrame.js +1 -1
  105. package/dist/editor/components/Timeline/TimelineSlider.js +1 -1
  106. package/dist/editor/components/Timeline/TimelineSliderHandle.js +1 -1
  107. package/dist/editor/components/Timeline/TimelineTracks.d.ts +2 -2
  108. package/dist/editor/components/Timeline/TimelineTracks.js +2 -2
  109. package/dist/editor/components/Timeline/TimelineVideoInfo.js +1 -1
  110. package/dist/editor/components/Timeline/is-collapsed.d.ts +2 -2
  111. package/dist/editor/components/TimelineInOutToggle.js +1 -1
  112. package/dist/editor/components/TopPanel.js +24 -1
  113. package/dist/editor/components/UpdateCheck.d.ts +1 -1
  114. package/dist/editor/components/UpdateCheck.js +1 -1
  115. package/dist/editor/components/UpdateModal/UpdateModal.d.ts +1 -1
  116. package/dist/editor/components/UpdateModal/UpdateModal.js +1 -1
  117. package/dist/editor/components/layout.js +4 -4
  118. package/dist/editor/helpers/calculate-timeline.d.ts +2 -2
  119. package/dist/editor/helpers/create-folder-tree.d.ts +2 -2
  120. package/dist/editor/helpers/get-sequence-visible-range.d.ts +1 -1
  121. package/dist/editor/helpers/get-timeline-nestedness.d.ts +1 -1
  122. package/dist/editor/helpers/get-timeline-sequence-hash.d.ts +1 -1
  123. package/dist/editor/helpers/get-timeline-sequence-layout.d.ts +1 -1
  124. package/dist/editor/helpers/get-timeline-sequence-sort-key.d.ts +1 -1
  125. package/dist/editor/helpers/is-composition-still.d.ts +1 -1
  126. package/dist/editor/helpers/use-compact-ui.d.ts +1 -0
  127. package/dist/editor/helpers/use-compact-ui.js +18 -0
  128. package/dist/editor/helpers/use-keybinding.d.ts +1 -1
  129. package/dist/editor/helpers/validate-new-comp-data.d.ts +1 -1
  130. package/dist/editor/icons/Checkmark.js +1 -1
  131. package/dist/editor/icons/caret.d.ts +1 -1
  132. package/dist/editor/icons/caret.js +4 -4
  133. package/dist/editor/icons/film.d.ts +2 -1
  134. package/dist/editor/icons/film.js +1 -1
  135. package/dist/editor/icons/folder.d.ts +2 -1
  136. package/dist/editor/icons/folder.js +2 -2
  137. package/dist/editor/icons/jump-to-start.d.ts +2 -0
  138. package/dist/editor/icons/jump-to-start.js +8 -0
  139. package/dist/editor/icons/keys.js +3 -3
  140. package/dist/editor/icons/lock.d.ts +2 -1
  141. package/dist/editor/icons/lock.js +2 -2
  142. package/dist/editor/icons/media-volume.js +2 -2
  143. package/dist/editor/icons/pause.d.ts +2 -1
  144. package/dist/editor/icons/pause.js +1 -1
  145. package/dist/editor/icons/play.d.ts +2 -1
  146. package/dist/editor/icons/play.js +1 -1
  147. package/dist/editor/icons/step-back.d.ts +2 -1
  148. package/dist/editor/icons/step-back.js +1 -1
  149. package/dist/editor/icons/step-forward.d.ts +2 -1
  150. package/dist/editor/icons/step-forward.js +1 -1
  151. package/dist/editor/icons/still.d.ts +2 -1
  152. package/dist/editor/icons/still.js +1 -1
  153. package/dist/editor/icons/timeline.d.ts +2 -1
  154. package/dist/editor/icons/timeline.js +1 -1
  155. package/dist/editor/icons/timelineInOutPointer.d.ts +2 -1
  156. package/dist/editor/icons/timelineInOutPointer.js +2 -2
  157. package/dist/editor/state/folders.d.ts +11 -0
  158. package/dist/editor/state/folders.js +23 -0
  159. package/dist/editor/state/highest-z-index.js +2 -2
  160. package/dist/editor/state/keybindings.js +1 -1
  161. package/dist/editor/state/modals.d.ts +2 -2
  162. package/dist/editor/state/preview-size.d.ts +1 -1
  163. package/dist/editor/state/sidebar.d.ts +12 -0
  164. package/dist/editor/state/sidebar.js +40 -0
  165. package/dist/editor/state/z-index.js +1 -1
  166. package/dist/format-bytes.d.ts +6 -0
  167. package/dist/format-bytes.js +103 -0
  168. package/dist/get-cli-options.d.ts +5 -3
  169. package/dist/get-cli-options.js +8 -2
  170. package/dist/get-composition-id.d.ts +1 -1
  171. package/dist/get-filename.d.ts +1 -1
  172. package/dist/get-latest-remotion-version.d.ts +1 -0
  173. package/dist/get-latest-remotion-version.js +31 -0
  174. package/dist/image-formats.d.ts +2 -1
  175. package/dist/index.d.ts +62 -12
  176. package/dist/index.js +16 -6
  177. package/dist/lambda-command.js +5 -1
  178. package/dist/log.js +4 -7
  179. package/dist/parse-command-line.d.ts +2 -1
  180. package/dist/parse-command-line.js +6 -0
  181. package/dist/prepare-entry-point.d.ts +11 -0
  182. package/dist/prepare-entry-point.js +36 -0
  183. package/dist/preview-server/dev-middleware/compatible-api.d.ts +7 -0
  184. package/dist/preview-server/dev-middleware/compatible-api.js +20 -0
  185. package/dist/preview-server/dev-middleware/get-paths.d.ts +7 -0
  186. package/dist/preview-server/dev-middleware/get-paths.js +19 -0
  187. package/dist/preview-server/dev-middleware/index.d.ts +3 -0
  188. package/dist/preview-server/dev-middleware/index.js +27 -0
  189. package/dist/preview-server/dev-middleware/is-color-supported.d.ts +1 -0
  190. package/dist/preview-server/dev-middleware/is-color-supported.js +37 -0
  191. package/dist/preview-server/dev-middleware/middleware.d.ts +10 -0
  192. package/dist/preview-server/dev-middleware/middleware.js +224 -0
  193. package/dist/preview-server/dev-middleware/range-parser.d.ts +15 -0
  194. package/dist/preview-server/dev-middleware/range-parser.js +96 -0
  195. package/dist/preview-server/dev-middleware/ready.d.ts +3 -0
  196. package/dist/preview-server/dev-middleware/ready.js +11 -0
  197. package/dist/preview-server/dev-middleware/setup-hooks.d.ts +2 -0
  198. package/dist/preview-server/dev-middleware/setup-hooks.js +42 -0
  199. package/dist/preview-server/dev-middleware/setup-output-filesystem.d.ts +2 -0
  200. package/dist/preview-server/dev-middleware/setup-output-filesystem.js +13 -0
  201. package/dist/preview-server/dev-middleware/types.d.ts +10 -0
  202. package/dist/preview-server/dev-middleware/types.js +2 -0
  203. package/dist/preview-server/error-overlay/entry-basic.d.ts +1 -0
  204. package/dist/preview-server/error-overlay/entry-basic.js +21 -0
  205. package/dist/preview-server/error-overlay/react-overlay/effects/format-warning.d.ts +11 -0
  206. package/dist/preview-server/error-overlay/react-overlay/effects/format-warning.js +41 -0
  207. package/dist/preview-server/error-overlay/react-overlay/effects/map-error-to-react-stack.d.ts +7 -0
  208. package/dist/preview-server/error-overlay/react-overlay/effects/map-error-to-react-stack.js +46 -0
  209. package/dist/preview-server/error-overlay/react-overlay/effects/proxy-console.d.ts +24 -0
  210. package/dist/preview-server/error-overlay/react-overlay/effects/proxy-console.js +64 -0
  211. package/dist/preview-server/error-overlay/react-overlay/effects/resolve-file-source.d.ts +3 -0
  212. package/dist/preview-server/error-overlay/react-overlay/effects/resolve-file-source.js +31 -0
  213. package/dist/preview-server/error-overlay/react-overlay/effects/stack-trace-limit.d.ts +3 -0
  214. package/dist/preview-server/error-overlay/react-overlay/effects/stack-trace-limit.js +43 -0
  215. package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-error.d.ts +4 -0
  216. package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-error.js +45 -0
  217. package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-rejection.d.ts +4 -0
  218. package/dist/preview-server/error-overlay/react-overlay/effects/unhandled-rejection.js +41 -0
  219. package/dist/preview-server/error-overlay/react-overlay/index.d.ts +2 -0
  220. package/dist/preview-server/error-overlay/react-overlay/index.js +21 -0
  221. package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.d.ts +8 -0
  222. package/dist/preview-server/error-overlay/react-overlay/listen-to-runtime-errors.js +79 -0
  223. package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.d.ts +1 -0
  224. package/dist/preview-server/error-overlay/react-overlay/utils/get-file-source.js +21 -0
  225. package/dist/preview-server/error-overlay/react-overlay/utils/get-lines-around.d.ts +14 -0
  226. package/dist/preview-server/error-overlay/react-overlay/utils/get-lines-around.js +24 -0
  227. package/dist/preview-server/error-overlay/react-overlay/utils/get-source-map.d.ts +7 -0
  228. package/dist/preview-server/error-overlay/react-overlay/utils/get-source-map.js +50 -0
  229. package/dist/preview-server/error-overlay/react-overlay/utils/get-stack-frames.d.ts +2 -0
  230. package/dist/preview-server/error-overlay/react-overlay/utils/get-stack-frames.js +27 -0
  231. package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.d.ts +12 -0
  232. package/dist/preview-server/error-overlay/react-overlay/utils/open-in-editor.js +451 -0
  233. package/dist/preview-server/error-overlay/react-overlay/utils/parser.d.ts +2 -0
  234. package/dist/preview-server/error-overlay/react-overlay/utils/parser.js +117 -0
  235. package/dist/preview-server/error-overlay/react-overlay/utils/stack-frame.d.ts +40 -0
  236. package/dist/preview-server/error-overlay/react-overlay/utils/stack-frame.js +31 -0
  237. package/dist/preview-server/error-overlay/react-overlay/utils/unmapper.d.ts +2 -0
  238. package/dist/preview-server/error-overlay/react-overlay/utils/unmapper.js +64 -0
  239. package/dist/preview-server/error-overlay/remotion-overlay/AskOnDiscord.d.ts +2 -0
  240. package/dist/preview-server/error-overlay/remotion-overlay/AskOnDiscord.js +14 -0
  241. package/dist/preview-server/error-overlay/remotion-overlay/Button.d.ts +6 -0
  242. package/dist/preview-server/error-overlay/remotion-overlay/Button.js +24 -0
  243. package/dist/preview-server/error-overlay/remotion-overlay/CodeFrame.d.ts +6 -0
  244. package/dist/preview-server/error-overlay/remotion-overlay/CodeFrame.js +28 -0
  245. package/dist/preview-server/error-overlay/remotion-overlay/DismissButton.d.ts +2 -0
  246. package/dist/preview-server/error-overlay/remotion-overlay/DismissButton.js +23 -0
  247. package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.d.ts +5 -0
  248. package/dist/preview-server/error-overlay/remotion-overlay/ErrorDisplay.js +45 -0
  249. package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.d.ts +4 -0
  250. package/dist/preview-server/error-overlay/remotion-overlay/ErrorLoader.js +61 -0
  251. package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.d.ts +6 -0
  252. package/dist/preview-server/error-overlay/remotion-overlay/ErrorTitle.js +41 -0
  253. package/dist/preview-server/error-overlay/remotion-overlay/OpenInEditor.d.ts +5 -0
  254. package/dist/preview-server/error-overlay/remotion-overlay/OpenInEditor.js +91 -0
  255. package/dist/preview-server/error-overlay/remotion-overlay/Overlay.d.ts +14 -0
  256. package/dist/preview-server/error-overlay/remotion-overlay/Overlay.js +49 -0
  257. package/dist/preview-server/error-overlay/remotion-overlay/SearchGitHubIssues.d.ts +4 -0
  258. package/dist/preview-server/error-overlay/remotion-overlay/SearchGitHubIssues.js +13 -0
  259. package/dist/preview-server/error-overlay/remotion-overlay/StackFrame.d.ts +8 -0
  260. package/dist/preview-server/error-overlay/remotion-overlay/StackFrame.js +48 -0
  261. package/dist/preview-server/error-overlay/remotion-overlay/Symbolicating.d.ts +2 -0
  262. package/dist/preview-server/error-overlay/remotion-overlay/Symbolicating.js +8 -0
  263. package/dist/preview-server/error-overlay/remotion-overlay/carets.d.ts +3 -0
  264. package/dist/preview-server/error-overlay/remotion-overlay/carets.js +12 -0
  265. package/dist/preview-server/error-overlay/remotion-overlay/format-location.d.ts +1 -0
  266. package/dist/preview-server/error-overlay/remotion-overlay/format-location.js +10 -0
  267. package/dist/preview-server/error-overlay/remotion-overlay/index.d.ts +1 -0
  268. package/dist/preview-server/error-overlay/remotion-overlay/index.js +18 -0
  269. package/dist/preview-server/fast-refresh/helpers.d.ts +39 -0
  270. package/dist/preview-server/fast-refresh/helpers.js +145 -0
  271. package/dist/preview-server/fast-refresh/index.d.ts +30 -0
  272. package/dist/preview-server/fast-refresh/index.js +86 -0
  273. package/dist/preview-server/fast-refresh/loader.d.ts +35 -0
  274. package/dist/preview-server/fast-refresh/loader.js +81 -0
  275. package/dist/preview-server/fast-refresh/runtime.d.ts +35 -0
  276. package/dist/preview-server/fast-refresh/runtime.js +32 -0
  277. package/dist/preview-server/get-package-manager.d.ts +9 -0
  278. package/dist/preview-server/get-package-manager.js +40 -0
  279. package/dist/preview-server/hot-middleware/client.d.ts +19 -0
  280. package/dist/preview-server/hot-middleware/client.js +177 -0
  281. package/dist/preview-server/hot-middleware/index.d.ts +8 -0
  282. package/dist/preview-server/hot-middleware/index.js +150 -0
  283. package/dist/preview-server/hot-middleware/process-update.d.ts +12 -0
  284. package/dist/preview-server/hot-middleware/process-update.js +144 -0
  285. package/dist/preview-server/hot-middleware/strip-ansi.d.ts +1 -0
  286. package/dist/preview-server/hot-middleware/strip-ansi.js +21 -0
  287. package/dist/preview-server/hot-middleware/types.d.ts +27 -0
  288. package/dist/preview-server/hot-middleware/types.js +10 -0
  289. package/dist/preview-server/project-info.d.ts +5 -0
  290. package/dist/preview-server/project-info.js +22 -0
  291. package/dist/preview-server/routes.d.ts +7 -0
  292. package/dist/preview-server/routes.js +128 -0
  293. package/dist/preview-server/serve-static.d.ts +9 -0
  294. package/dist/preview-server/serve-static.js +77 -0
  295. package/dist/preview-server/start-server.d.ts +8 -0
  296. package/dist/preview-server/start-server.js +69 -0
  297. package/dist/preview-server/static-preview.d.ts +1 -0
  298. package/dist/preview-server/static-preview.js +40 -0
  299. package/dist/preview-server/update-available.d.ts +11 -0
  300. package/dist/preview-server/update-available.js +44 -0
  301. package/dist/preview-server/webpack-cache.d.ts +12 -0
  302. package/dist/preview-server/webpack-cache.js +66 -0
  303. package/dist/preview.js +2 -2
  304. package/dist/previewEntry.js +2 -2
  305. package/dist/print-error.js +6 -8
  306. package/dist/print-help.js +11 -14
  307. package/dist/progress-bar.d.ts +5 -3
  308. package/dist/progress-bar.js +4 -7
  309. package/dist/render.js +39 -28
  310. package/dist/setup-cache.d.ts +1 -1
  311. package/dist/still.js +52 -18
  312. package/dist/upgrade.js +9 -7
  313. package/dist/versions.js +3 -0
  314. package/dist/warn-about-ffmpeg-version.d.ts +1 -1
  315. package/dist/webpack-cache.d.ts +12 -0
  316. package/dist/webpack-cache.js +66 -0
  317. package/package.json +13 -12
  318. package/web/favicon.png +0 -0
@@ -0,0 +1,451 @@
1
+ "use strict";
2
+ // Duplicated in create-video/src/open-in-editor.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.launchEditor = exports.guessEditor = exports.getDisplayNameForEditor = void 0;
31
+ const child_process_1 = __importStar(require("child_process"));
32
+ const fs_1 = __importDefault(require("fs"));
33
+ const os_1 = __importDefault(require("os"));
34
+ const path_1 = __importDefault(require("path"));
35
+ const util_1 = __importDefault(require("util"));
36
+ const log_1 = require("../../../../log");
37
+ const execProm = util_1.default.promisify(child_process_1.exec);
38
+ const isVsCodeDerivative = (editor) => {
39
+ return (editor === 'code' ||
40
+ editor === 'code-insiders' ||
41
+ editor === 'Code.exe' ||
42
+ editor === 'vscodium' ||
43
+ editor === 'VSCodium.exe' ||
44
+ editor === 'Code - Insiders.exe');
45
+ };
46
+ function isTerminalEditor(editor) {
47
+ switch (editor) {
48
+ case 'vim':
49
+ case 'emacs':
50
+ case 'nano':
51
+ return true;
52
+ default:
53
+ return false;
54
+ }
55
+ }
56
+ const editorNames = [
57
+ 'atom',
58
+ '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta',
59
+ 'brackets',
60
+ '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',
61
+ '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl',
62
+ '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl',
63
+ 'code',
64
+ 'code-insiders',
65
+ 'vscodium',
66
+ '/Applications/AppCode.app/Contents/MacOS/appcode',
67
+ '/Applications/CLion.app/Contents/MacOS/clion',
68
+ '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',
69
+ '/Applications/PhpStorm.app/Contents/MacOS/phpstorm',
70
+ '/Applications/PyCharm.app/Contents/MacOS/pycharm',
71
+ '/Applications/PyCharm CE.app/Contents/MacOS/pycharm',
72
+ '/Applications/RubyMine.app/Contents/MacOS/rubymine',
73
+ '/Applications/WebStorm.app/Contents/MacOS/webstorm',
74
+ '/Applications/GoLand.app/Contents/MacOS/goland',
75
+ '/Applications/Rider.app/Contents/MacOS/rider',
76
+ 'mvim',
77
+ 'emacs',
78
+ 'gvim',
79
+ 'idea',
80
+ 'phpstorm',
81
+ 'pycharm',
82
+ 'rubymine',
83
+ 'sublime_text',
84
+ 'vim',
85
+ 'webstorm',
86
+ 'goland',
87
+ 'rider',
88
+ 'Brackets.exe',
89
+ 'Code.exe',
90
+ 'Code - Insiders.exe',
91
+ 'VSCodium.exe',
92
+ 'atom.exe',
93
+ 'sublime_text.exe',
94
+ 'notepad++.exe',
95
+ 'clion.exe',
96
+ 'clion64.exe',
97
+ 'idea.exe',
98
+ 'idea64.exe',
99
+ 'phpstorm.exe',
100
+ 'phpstorm64.exe',
101
+ 'pycharm.exe',
102
+ 'pycharm64.exe',
103
+ 'rubymine.exe',
104
+ 'rubymine64.exe',
105
+ 'webstorm.exe',
106
+ 'webstorm64.exe',
107
+ 'goland.exe',
108
+ 'goland64.exe',
109
+ 'rider.exe',
110
+ 'rider64.exe',
111
+ 'nano',
112
+ ];
113
+ const displayNameForEditor = {
114
+ '/Applications/AppCode.app/Contents/MacOS/appcode': 'AppCode',
115
+ '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta': 'Atom Beta',
116
+ '/Applications/CLion.app/Contents/MacOS/clion': 'CLion',
117
+ '/Applications/GoLand.app/Contents/MacOS/goland': 'GoLand',
118
+ '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea': 'IDEA',
119
+ '/Applications/PhpStorm.app/Contents/MacOS/phpstorm': 'PHPStorm',
120
+ '/Applications/PyCharm CE.app/Contents/MacOS/pycharm': 'PyCharm',
121
+ '/Applications/PyCharm.app/Contents/MacOS/pycharm': 'PyCharm',
122
+ '/Applications/Rider.app/Contents/MacOS/rider': 'Rider',
123
+ '/Applications/RubyMine.app/Contents/MacOS/rubymine': 'RubyMine',
124
+ '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl': 'Sublime Text 2',
125
+ '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl': 'Sublime Text Dev',
126
+ '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl': 'Sublime Text',
127
+ '/Applications/WebStorm.app/Contents/MacOS/webstorm': 'WebStorm',
128
+ 'Brackets.exe': 'Brackets',
129
+ 'Code - Insiders.exe': 'VS Code Insiders',
130
+ 'Code.exe': 'VS Code',
131
+ 'VSCodium.exe': 'VS Codium',
132
+ 'atom.exe': 'Atom',
133
+ 'clion.exe': 'CLion',
134
+ 'clion64.exe': 'CLion',
135
+ 'code-insiders': 'VS Code Insiders',
136
+ 'goland.exe': 'GoLand',
137
+ 'goland64.exe': 'GoLand',
138
+ 'idea.exe': 'IDEA',
139
+ 'idea64.exe': 'IDEA',
140
+ 'notepad++.exe': 'Notepad++',
141
+ 'phpstorm.exe': 'PHPStorm',
142
+ 'phpstorm64.exe': 'PHPStorm',
143
+ 'pycharm.exe': 'PyCharm',
144
+ 'pycharm64.exe': 'PyCharm',
145
+ 'rider.exe': 'Rider',
146
+ 'rider64.exe': 'Rider',
147
+ 'rubymine.exe': 'RubyMine',
148
+ 'rubymine64.exe': 'RubyMine',
149
+ 'sublime_text.exe': 'Sublime Text',
150
+ 'webstorm.exe': 'WebStorm',
151
+ 'webstorm64.exe': 'WebStorm',
152
+ atom: 'Atom',
153
+ brackets: 'Brackets',
154
+ code: 'VS Code',
155
+ emacs: 'emacs',
156
+ goland: 'GoLand',
157
+ gvim: 'GVim',
158
+ idea: 'IDEA',
159
+ mvim: 'mvim',
160
+ phpstorm: 'PHPStorm',
161
+ pycharm: 'PyCharm',
162
+ rider: 'Rider',
163
+ rubymine: 'RubyMine',
164
+ sublime_text: 'Sublime Text',
165
+ vim: 'vim',
166
+ vscodium: 'VS Codium',
167
+ webstorm: 'WebStorm',
168
+ nano: 'nano',
169
+ };
170
+ const getDisplayNameForEditor = (editor) => {
171
+ var _a, _b;
172
+ if (!editor) {
173
+ return null;
174
+ }
175
+ const endsIn = Object.keys(displayNameForEditor).find((displayNameKey) => {
176
+ return editor.endsWith(displayNameKey);
177
+ });
178
+ return ((_b = (_a = displayNameForEditor[editor]) !== null && _a !== void 0 ? _a : displayNameForEditor[endsIn]) !== null && _b !== void 0 ? _b : editor);
179
+ };
180
+ exports.getDisplayNameForEditor = getDisplayNameForEditor;
181
+ // Map from full process name to binary that starts the process
182
+ // We can't just re-use full process name, because it will spawn a new instance
183
+ // of the app every time
184
+ const COMMON_EDITORS_OSX = {
185
+ '/Applications/Atom.app/Contents/MacOS/Atom': 'atom',
186
+ '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta': '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta',
187
+ '/Applications/Brackets.app/Contents/MacOS/Brackets': 'brackets',
188
+ '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',
189
+ '/Applications/Sublime Text Dev.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl',
190
+ '/Applications/Sublime Text 2.app/Contents/MacOS/Sublime Text 2': '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl',
191
+ '/Applications/Visual Studio Code.app/Contents/MacOS/Electron': 'code',
192
+ '/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron': 'code-insiders',
193
+ '/Applications/VSCodium.app/Contents/MacOS/Electron': 'vscodium',
194
+ '/Applications/AppCode.app/Contents/MacOS/appcode': '/Applications/AppCode.app/Contents/MacOS/appcode',
195
+ '/Applications/CLion.app/Contents/MacOS/clion': '/Applications/CLion.app/Contents/MacOS/clion',
196
+ '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea': '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',
197
+ '/Applications/PhpStorm.app/Contents/MacOS/phpstorm': '/Applications/PhpStorm.app/Contents/MacOS/phpstorm',
198
+ '/Applications/PyCharm.app/Contents/MacOS/pycharm': '/Applications/PyCharm.app/Contents/MacOS/pycharm',
199
+ '/Applications/PyCharm CE.app/Contents/MacOS/pycharm': '/Applications/PyCharm CE.app/Contents/MacOS/pycharm',
200
+ '/Applications/RubyMine.app/Contents/MacOS/rubymine': '/Applications/RubyMine.app/Contents/MacOS/rubymine',
201
+ '/Applications/WebStorm.app/Contents/MacOS/webstorm': '/Applications/WebStorm.app/Contents/MacOS/webstorm',
202
+ '/Applications/MacVim.app/Contents/MacOS/MacVim': 'mvim',
203
+ '/Applications/GoLand.app/Contents/MacOS/goland': '/Applications/GoLand.app/Contents/MacOS/goland',
204
+ '/Applications/Rider.app/Contents/MacOS/rider': '/Applications/Rider.app/Contents/MacOS/rider',
205
+ };
206
+ const COMMON_EDITORS_LINUX = {
207
+ atom: 'atom',
208
+ Brackets: 'brackets',
209
+ code: 'code',
210
+ 'code-insiders': 'code-insiders',
211
+ vscodium: 'vscodium',
212
+ emacs: 'emacs',
213
+ gvim: 'gvim',
214
+ 'idea.sh': 'idea',
215
+ 'phpstorm.sh': 'phpstorm',
216
+ 'pycharm.sh': 'pycharm',
217
+ 'rubymine.sh': 'rubymine',
218
+ sublime_text: 'sublime_text',
219
+ vim: 'vim',
220
+ 'webstorm.sh': 'webstorm',
221
+ 'goland.sh': 'goland',
222
+ 'rider.sh': 'rider',
223
+ };
224
+ const COMMON_EDITORS_WIN = [
225
+ 'Brackets.exe',
226
+ 'Code.exe',
227
+ 'Code - Insiders.exe',
228
+ 'VSCodium.exe',
229
+ 'atom.exe',
230
+ 'sublime_text.exe',
231
+ 'notepad++.exe',
232
+ 'clion.exe',
233
+ 'clion64.exe',
234
+ 'idea.exe',
235
+ 'idea64.exe',
236
+ 'phpstorm.exe',
237
+ 'phpstorm64.exe',
238
+ 'pycharm.exe',
239
+ 'pycharm64.exe',
240
+ 'rubymine.exe',
241
+ 'rubymine64.exe',
242
+ 'webstorm.exe',
243
+ 'webstorm64.exe',
244
+ 'goland.exe',
245
+ 'goland64.exe',
246
+ 'rider.exe',
247
+ 'rider64.exe',
248
+ ];
249
+ // Transpiled version of: /^([A-Za-z]:[/\\])?[\p{L}0-9/.\-_\\]+$/u
250
+ // Non-transpiled version requires support for Unicode property regex. Allows
251
+ // alphanumeric characters, periods, dashes, slashes, and underscores.
252
+ 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
+ function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
254
+ const editorBasename = path_1.default.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
255
+ switch (editorBasename) {
256
+ case 'atom':
257
+ case 'Atom':
258
+ case 'Atom Beta':
259
+ case 'subl':
260
+ case 'sublime':
261
+ case 'sublime_text':
262
+ return [fileName + ':' + lineNumber + ':' + colNumber];
263
+ case 'wstorm':
264
+ case 'charm':
265
+ return [fileName + ':' + lineNumber];
266
+ case 'notepad++':
267
+ return ['-n' + lineNumber, '-c' + colNumber, fileName];
268
+ case 'vim':
269
+ case 'mvim':
270
+ case 'joe':
271
+ case 'gvim':
272
+ return ['+' + lineNumber, fileName];
273
+ case 'emacs':
274
+ case 'emacsclient':
275
+ return ['+' + lineNumber + ':' + colNumber, fileName];
276
+ case 'rmate':
277
+ case 'mate':
278
+ case 'mine':
279
+ return ['--line', lineNumber, fileName];
280
+ case 'code':
281
+ case 'Code':
282
+ case 'code-insiders':
283
+ case 'Code - Insiders':
284
+ case 'vscodium':
285
+ case 'VSCodium':
286
+ return ['-g', fileName + ':' + lineNumber + ':' + colNumber];
287
+ case 'appcode':
288
+ case 'clion':
289
+ case 'clion64':
290
+ case 'idea':
291
+ case 'idea64':
292
+ case 'phpstorm':
293
+ case 'phpstorm64':
294
+ case 'pycharm':
295
+ case 'pycharm64':
296
+ case 'rubymine':
297
+ case 'rubymine64':
298
+ case 'webstorm':
299
+ case 'webstorm64':
300
+ case 'goland':
301
+ case 'goland64':
302
+ case 'rider':
303
+ case 'rider64':
304
+ return ['--line', lineNumber, fileName];
305
+ default:
306
+ // For all others, drop the lineNumber until we have
307
+ // a mapping above, since providing the lineNumber incorrectly
308
+ // can result in errors or confusing behavior.
309
+ return [fileName];
310
+ }
311
+ }
312
+ async function guessEditor() {
313
+ // We can find out which editor is currently running by:
314
+ // `ps x` on macOS and Linux
315
+ // `Get-Process` on Windows
316
+ const availableEditors = [];
317
+ try {
318
+ if (process.platform === 'darwin') {
319
+ const output = (await execProm('ps x')).stdout.toString();
320
+ const processNames = Object.keys(COMMON_EDITORS_OSX);
321
+ for (let i = 0; i < processNames.length; i++) {
322
+ const processName = processNames[i];
323
+ if (output.indexOf(processName) !== -1) {
324
+ availableEditors.push(COMMON_EDITORS_OSX[processName]);
325
+ }
326
+ }
327
+ return availableEditors;
328
+ }
329
+ if (process.platform === 'win32') {
330
+ // Some processes need elevated rights to get its executable path.
331
+ // Just filter them out upfront. This also saves 10-20ms on the command.
332
+ const output = (await execProm('wmic process where "executablepath is not null" get executablepath')).stdout.toString();
333
+ const runningProcesses = output.split('\r\n');
334
+ for (let i = 0; i < runningProcesses.length; i++) {
335
+ const processPath = runningProcesses[i].trim();
336
+ const processName = path_1.default.basename(processPath);
337
+ if (COMMON_EDITORS_WIN.indexOf(processName) !== -1) {
338
+ availableEditors.push(processPath);
339
+ }
340
+ }
341
+ return availableEditors;
342
+ }
343
+ if (process.platform === 'linux') {
344
+ // --no-heading No header line
345
+ // x List all processes owned by you
346
+ // -o comm Need only names column
347
+ const output = (await execProm('ps x --no-heading -o comm --sort=comm')).stdout.toString();
348
+ const processNames = Object.keys(COMMON_EDITORS_LINUX);
349
+ for (let i = 0; i < processNames.length; i++) {
350
+ const processName = processNames[i];
351
+ if (output.indexOf(processName) !== -1) {
352
+ availableEditors.push(COMMON_EDITORS_LINUX[processName]);
353
+ }
354
+ }
355
+ return availableEditors;
356
+ }
357
+ }
358
+ catch (error) {
359
+ // Ignore...
360
+ }
361
+ // Last resort, use old skool env vars
362
+ if (process.env.VISUAL) {
363
+ return [process.env.VISUAL];
364
+ }
365
+ if (process.env.EDITOR) {
366
+ return [process.env.EDITOR];
367
+ }
368
+ return [];
369
+ }
370
+ exports.guessEditor = guessEditor;
371
+ let _childProcess = null;
372
+ function launchEditor({ colNumber, editor, fileName, lineNumber, vsCodeNewWindow, }) {
373
+ if (!fs_1.default.existsSync(fileName)) {
374
+ return Promise.resolve(false);
375
+ }
376
+ // Sanitize lineNumber to prevent malicious use on win32
377
+ // via: https://github.com/nodejs/node/blob/c3bb4b1aa5e907d489619fb43d233c3336bfc03d/lib/child_process.js#L333
378
+ // and it should be a positive integer
379
+ if (!(Number.isInteger(lineNumber) && lineNumber > 0)) {
380
+ return Promise.resolve(false);
381
+ }
382
+ // colNumber is optional, but should be a positive integer too
383
+ // default is 1
384
+ if (!(Number.isInteger(colNumber) && colNumber > 0)) {
385
+ colNumber = 1;
386
+ }
387
+ if (editor.toLowerCase() === 'none') {
388
+ return Promise.resolve(false);
389
+ }
390
+ if (process.platform === 'linux' &&
391
+ fileName.startsWith('/mnt/') &&
392
+ /Microsoft/i.test(os_1.default.release())) {
393
+ // Assume WSL / "Bash on Ubuntu on Windows" is being used, and
394
+ // that the file exists on the Windows file system.
395
+ // `os.release()` is "4.4.0-43-Microsoft" in the current release
396
+ // build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364
397
+ // When a Windows editor is specified, interop functionality can
398
+ // handle the path translation, but only if a relative path is used.
399
+ fileName = path_1.default.relative('', fileName);
400
+ }
401
+ // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the
402
+ // form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use a whitelist
403
+ // to validate user-provided file names. This doesn't cover the entire range
404
+ // of valid file names but should cover almost all of them in practice.
405
+ if (process.platform === 'win32' &&
406
+ !WINDOWS_FILE_NAME_WHITELIST.test(fileName.trim())) {
407
+ log_1.Log.error();
408
+ log_1.Log.error('Could not open ' + path_1.default.basename(fileName) + ' in the editor.');
409
+ log_1.Log.error();
410
+ log_1.Log.error('When running on Windows, file names are checked against a whitelist ' +
411
+ 'to protect against remote code execution attacks. File names may ' +
412
+ 'consist only of alphanumeric characters (all languages), periods, ' +
413
+ 'dashes, slashes, and underscores.');
414
+ log_1.Log.error();
415
+ return Promise.resolve(false);
416
+ }
417
+ const shouldOpenVsCodeNewWindow = isVsCodeDerivative(editor) && vsCodeNewWindow;
418
+ const args = shouldOpenVsCodeNewWindow
419
+ ? ['--new-window', fileName]
420
+ : lineNumber
421
+ ? getArgumentsForLineNumber(editor, fileName, String(lineNumber), colNumber)
422
+ : [fileName];
423
+ if (_childProcess && isTerminalEditor(editor)) {
424
+ // There's an existing editor process already and it's attached
425
+ // to the terminal, so go kill it. Otherwise two separate editor
426
+ // instances attach to the stdin/stdout which gets confusing.
427
+ _childProcess.kill('SIGKILL');
428
+ }
429
+ if (process.platform === 'win32') {
430
+ // On Windows, launch the editor in a shell because spawn can only
431
+ // launch .exe files.
432
+ _childProcess = child_process_1.default.spawn('cmd.exe', ['/C', editor].concat(args), { stdio: 'inherit' });
433
+ }
434
+ else {
435
+ _childProcess = child_process_1.default.spawn(editor, args, {
436
+ stdio: 'inherit',
437
+ detached: true,
438
+ });
439
+ }
440
+ _childProcess.on('exit', (errorCode) => {
441
+ _childProcess = null;
442
+ if (errorCode) {
443
+ log_1.Log.error(`Process exited with code ${errorCode}`);
444
+ }
445
+ });
446
+ _childProcess.on('error', (error) => {
447
+ log_1.Log.error('Error opening file in editor', fileName, error.message);
448
+ });
449
+ return Promise.resolve(true);
450
+ }
451
+ exports.launchEditor = launchEditor;
@@ -0,0 +1,2 @@
1
+ import type { SomeStackFrame } from './stack-frame';
2
+ export declare const parseError: (error: Error | string | string[], contextLines: number) => Promise<SomeStackFrame[]>;
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ /*
3
+ Source code adapted from https://github.com/facebook/create-react-app/tree/main/packages/react-error-overlay and refactored in Typescript. This file is MIT-licensed.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseError = void 0;
7
+ /**
8
+ * Copyright (c) 2015-present, Facebook, Inc.
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ */
13
+ const map_error_to_react_stack_1 = require("../effects/map-error-to-react-stack");
14
+ const resolve_file_source_1 = require("../effects/resolve-file-source");
15
+ const stack_frame_1 = require("./stack-frame");
16
+ const regexExtractLocation = /\(?(.+?)(?::(\d+))?(?::(\d+))?\)?$/;
17
+ function extractLocation(token) {
18
+ const execed = regexExtractLocation.exec(token);
19
+ if (!execed) {
20
+ throw new Error('Could not match in extractLocation');
21
+ }
22
+ return execed.slice(1).map((v) => {
23
+ const p = Number(v);
24
+ if (!isNaN(p)) {
25
+ return p;
26
+ }
27
+ return v;
28
+ });
29
+ }
30
+ const regexValidFrame_Chrome = /^\s*(at|in)\s.+(:\d+)/;
31
+ const regexValidFrame_FireFox = /(^|@)\S+:\d+|.+line\s+\d+\s+>\s+(eval|Function).+/;
32
+ function parseStack(stack) {
33
+ const frames = stack
34
+ .filter((e) => regexValidFrame_Chrome.test(e) || regexValidFrame_FireFox.test(e))
35
+ .map((e) => {
36
+ if (regexValidFrame_FireFox.test(e)) {
37
+ // Strip eval, we don't care about it
38
+ let isEval = false;
39
+ if (/ > (eval|Function)/.test(e)) {
40
+ e = e.replace(/ line (\d+)(?: > eval line \d+)* > (eval|Function):\d+:\d+/g, ':$1');
41
+ isEval = true;
42
+ }
43
+ const _data = e.split(/[@]/g);
44
+ const _last = _data.pop();
45
+ if (!_last) {
46
+ throw new Error('could not get last');
47
+ }
48
+ const [_fileName, _lineNumber, _columnNumber] = extractLocation(_last);
49
+ return (0, stack_frame_1.makeStackFrame)({
50
+ functionName: _data.join('@') || (isEval ? 'eval' : null),
51
+ fileName: _fileName,
52
+ lineNumber: _lineNumber,
53
+ columnNumber: _columnNumber,
54
+ });
55
+ }
56
+ // Strip eval, we don't care about it
57
+ if (e.indexOf('(eval ') !== -1) {
58
+ e = e.replace(/(\(eval at [^()]*)|(\),.*$)/g, '');
59
+ }
60
+ if (e.indexOf('(at ') !== -1) {
61
+ e = e.replace(/\(at /, '(');
62
+ }
63
+ const data = e.trim().split(/\s+/g).slice(1);
64
+ const last = data.pop();
65
+ if (!last) {
66
+ throw new Error('could not get last');
67
+ }
68
+ const [fileName, lineNumber, columnNumber] = extractLocation(last);
69
+ return (0, stack_frame_1.makeStackFrame)({
70
+ functionName: data.join(' ') || null,
71
+ fileName,
72
+ lineNumber,
73
+ columnNumber,
74
+ });
75
+ });
76
+ return frames;
77
+ }
78
+ const parseError = async (error, contextLines) => {
79
+ if (error === null) {
80
+ throw new Error('You cannot pass a null object.');
81
+ }
82
+ if (typeof error === 'string') {
83
+ return parseStack(error.split('\n')).map((frame) => {
84
+ return {
85
+ type: 'transpiled',
86
+ frame,
87
+ };
88
+ });
89
+ }
90
+ if (Array.isArray(error)) {
91
+ return parseStack(error).map((frame) => {
92
+ return {
93
+ type: 'transpiled',
94
+ frame,
95
+ };
96
+ });
97
+ }
98
+ const errorLocation = (0, map_error_to_react_stack_1.getLocationFromBuildError)(error);
99
+ if (errorLocation) {
100
+ return [
101
+ {
102
+ type: 'symbolicated',
103
+ frame: await (0, resolve_file_source_1.resolveFileSource)(errorLocation, contextLines),
104
+ },
105
+ ];
106
+ }
107
+ if (typeof error.stack === 'string') {
108
+ return parseStack(error.stack.split('\n')).map((frame) => {
109
+ return {
110
+ type: 'transpiled',
111
+ frame,
112
+ };
113
+ });
114
+ }
115
+ return [];
116
+ };
117
+ exports.parseError = parseError;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Copyright (c) 2015-present, Facebook, Inc.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export declare type ScriptLine = {
8
+ lineNumber: number;
9
+ content: string;
10
+ highlight: boolean;
11
+ };
12
+ export declare type SymbolicatedStackFrame = {
13
+ originalFunctionName: string | null;
14
+ originalFileName: string | null;
15
+ originalLineNumber: number | null;
16
+ originalColumnNumber: number | null;
17
+ originalScriptCode: ScriptLine[] | null;
18
+ };
19
+ export declare type StackFrame = {
20
+ functionName: string | null;
21
+ fileName: string;
22
+ lineNumber: number;
23
+ columnNumber: number;
24
+ };
25
+ export declare type SomeStackFrame = {
26
+ type: 'symbolicated';
27
+ frame: SymbolicatedStackFrame;
28
+ } | {
29
+ type: 'transpiled';
30
+ frame: StackFrame;
31
+ };
32
+ /**
33
+ * A representation of a stack frame.
34
+ */
35
+ export declare const makeStackFrame: ({ functionName, fileName, lineNumber, columnNumber, }: {
36
+ functionName: string | null;
37
+ fileName: string;
38
+ lineNumber: number;
39
+ columnNumber: number;
40
+ }) => StackFrame;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /*
3
+ Source code adapted from https://github.com/facebook/create-react-app/tree/main/packages/react-error-overlay and refactored in Typescript. This file is MIT-licensed.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.makeStackFrame = void 0;
7
+ /**
8
+ * A representation of a stack frame.
9
+ */
10
+ const makeStackFrame = ({ functionName, fileName, lineNumber, columnNumber, }) => {
11
+ if (functionName && functionName.indexOf('Object.') === 0) {
12
+ functionName = functionName.slice('Object.'.length);
13
+ }
14
+ if (
15
+ // Chrome has a bug with inferring function.name:
16
+ // https://github.com/facebook/create-react-app/issues/2097
17
+ // Let's ignore a meaningless name we get for top-level modules.
18
+ functionName === 'friendlySyntaxErrorLabel' ||
19
+ functionName === 'exports.__esModule' ||
20
+ functionName === '<anonymous>' ||
21
+ !functionName) {
22
+ functionName = null;
23
+ }
24
+ return {
25
+ columnNumber,
26
+ fileName,
27
+ functionName,
28
+ lineNumber,
29
+ };
30
+ };
31
+ exports.makeStackFrame = makeStackFrame;
@@ -0,0 +1,2 @@
1
+ import type { SomeStackFrame, SymbolicatedStackFrame } from './stack-frame';
2
+ export declare const unmap: (frames: SomeStackFrame[], contextLines: number) => Promise<SymbolicatedStackFrame[]>;