next 15.1.1-canary.11 → 15.1.1-canary.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of next might be problematic. Click here for more details.

Files changed (401) hide show
  1. package/dist/bin/next +1 -1
  2. package/dist/build/index.d.ts +5 -0
  3. package/dist/build/index.js +5 -2
  4. package/dist/build/index.js.map +1 -1
  5. package/dist/build/swc/index.js +1 -1
  6. package/dist/build/webpack-config.js +2 -2
  7. package/dist/client/app-bootstrap.js +1 -1
  8. package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.d.ts +18 -0
  9. package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js +92 -0
  10. package/dist/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js.map +1 -0
  11. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.d.ts +7 -0
  12. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js +120 -0
  13. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js.map +1 -0
  14. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.d.ts +1 -0
  15. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js +19 -0
  16. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js.map +1 -0
  17. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.d.ts +2 -0
  18. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js +30 -0
  19. package/dist/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js.map +1 -0
  20. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.d.ts +10 -0
  21. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js +86 -0
  22. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js.map +1 -0
  23. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.d.ts +7 -0
  24. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js +29 -0
  25. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js.map +1 -0
  26. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.d.ts +7 -0
  27. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js +29 -0
  28. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js.map +1 -0
  29. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.d.ts +7 -0
  30. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js +29 -0
  31. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js.map +1 -0
  32. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.d.ts +5 -0
  33. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js +47 -0
  34. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js.map +1 -0
  35. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.d.ts +2 -0
  36. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js +30 -0
  37. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js.map +1 -0
  38. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.d.ts +10 -0
  39. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js +178 -0
  40. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js.map +1 -0
  41. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.d.ts +2 -0
  42. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js +32 -0
  43. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js.map +1 -0
  44. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.d.ts +2 -0
  45. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js +30 -0
  46. package/dist/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js.map +1 -0
  47. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.d.ts +8 -0
  48. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js +62 -0
  49. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js.map +1 -0
  50. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.d.ts +2 -0
  51. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js +62 -0
  52. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js.map +1 -0
  53. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.d.ts +1 -0
  54. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js +19 -0
  55. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js.map +1 -0
  56. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.d.ts +3 -0
  57. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js +2749 -0
  58. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js.map +1 -0
  59. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.d.ts +2 -0
  60. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js +30 -0
  61. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js.map +1 -0
  62. package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.d.ts +4 -0
  63. package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js +42 -0
  64. package/dist/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js.map +1 -0
  65. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.d.ts +10 -0
  66. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js +67 -0
  67. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js.map +1 -0
  68. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.d.ts +5 -0
  69. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js +108 -0
  70. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js.map +1 -0
  71. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.d.ts +1 -0
  72. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js +19 -0
  73. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js.map +1 -0
  74. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.d.ts +2 -0
  75. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js +30 -0
  76. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js.map +1 -0
  77. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.d.ts +7 -0
  78. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js +36 -0
  79. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js.map +1 -0
  80. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.d.ts +2 -0
  81. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js +32 -0
  82. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js.map +1 -0
  83. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.d.ts +2 -0
  84. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js +30 -0
  85. package/dist/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js.map +1 -0
  86. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.d.ts +9 -0
  87. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js +103 -0
  88. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js.map +1 -0
  89. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.d.ts +2 -0
  90. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js +32 -0
  91. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js.map +1 -0
  92. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.d.ts +2 -0
  93. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js +30 -0
  94. package/dist/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js.map +1 -0
  95. package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.d.ts +7 -0
  96. package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +230 -0
  97. package/dist/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -0
  98. package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.d.ts +5 -0
  99. package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js +74 -0
  100. package/dist/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js.map +1 -0
  101. package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.d.ts +3 -0
  102. package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js +119 -0
  103. package/dist/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js.map +1 -0
  104. package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.d.ts +8 -0
  105. package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js +100 -0
  106. package/dist/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js.map +1 -0
  107. package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.d.ts +19 -0
  108. package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.js +392 -0
  109. package/dist/client/components/react-dev-overlay/_experimental/internal/container/Errors.js.map +1 -0
  110. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.d.ts +4 -0
  111. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js +91 -0
  112. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js.map +1 -0
  113. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.d.ts +4 -0
  114. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js +116 -0
  115. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js.map +1 -0
  116. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.d.ts +56 -0
  117. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js +243 -0
  118. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js.map +1 -0
  119. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.d.ts +6 -0
  120. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js +92 -0
  121. package/dist/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js.map +1 -0
  122. package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.d.ts +4 -0
  123. package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js +56 -0
  124. package/dist/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js.map +1 -0
  125. package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.d.ts +8 -0
  126. package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js +59 -0
  127. package/dist/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js.map +1 -0
  128. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.d.ts +1 -0
  129. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js +51 -0
  130. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js.map +1 -0
  131. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.d.ts +10 -0
  132. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js +52 -0
  133. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js.map +1 -0
  134. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.d.ts +1 -0
  135. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js +35 -0
  136. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js.map +1 -0
  137. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.d.ts +1 -0
  138. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js +164 -0
  139. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js.map +1 -0
  140. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.d.ts +11 -0
  141. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js +50 -0
  142. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js.map +1 -0
  143. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.d.ts +1 -0
  144. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js +38 -0
  145. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js.map +1 -0
  146. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.d.ts +2 -0
  147. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js +83 -0
  148. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js.map +1 -0
  149. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.d.ts +1 -0
  150. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js +33 -0
  151. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js.map +1 -0
  152. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.d.ts +20 -0
  153. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js +104 -0
  154. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js.map +1 -0
  155. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.d.ts +2 -0
  156. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js +407 -0
  157. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js.map +1 -0
  158. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.d.ts +4 -0
  159. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js +88 -0
  160. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js.map +1 -0
  161. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.d.ts +1 -0
  162. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js +25 -0
  163. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js.map +1 -0
  164. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.d.ts +8 -0
  165. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js +99 -0
  166. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js.map +1 -0
  167. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.d.ts +2 -0
  168. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js +54 -0
  169. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js.map +1 -0
  170. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.d.ts +3 -0
  171. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js +21 -0
  172. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js.map +1 -0
  173. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.d.ts +11 -0
  174. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js +140 -0
  175. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js.map +1 -0
  176. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.d.ts +1 -0
  177. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js +57 -0
  178. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js.map +1 -0
  179. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.d.ts +4 -0
  180. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js +121 -0
  181. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js.map +1 -0
  182. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.d.ts +5 -0
  183. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js +37 -0
  184. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js.map +1 -0
  185. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.d.ts +5 -0
  186. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js +129 -0
  187. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js.map +1 -0
  188. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.d.ts +12 -0
  189. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js +50 -0
  190. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js.map +1 -0
  191. package/dist/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.test.d.ts +1 -0
  192. package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.d.ts +1 -0
  193. package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js +46 -0
  194. package/dist/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js.map +1 -0
  195. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.d.ts +2 -0
  196. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js +46 -0
  197. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js.map +1 -0
  198. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.d.ts +3 -0
  199. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js +43 -0
  200. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js.map +1 -0
  201. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.d.ts +1 -0
  202. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js +34 -0
  203. package/dist/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js.map +1 -0
  204. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.d.ts +1 -0
  205. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.js +37 -0
  206. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/Base.js.map +1 -0
  207. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.d.ts +1 -0
  208. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js +55 -0
  209. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js.map +1 -0
  210. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.d.ts +1 -0
  211. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js +37 -0
  212. package/dist/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js.map +1 -0
  213. package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.d.ts +9 -0
  214. package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js +59 -0
  215. package/dist/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js.map +1 -0
  216. package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.d.ts +18 -0
  217. package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.js +92 -0
  218. package/dist/client/components/react-dev-overlay/app/OldReactDevOverlay.js.map +1 -0
  219. package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.d.ts +3 -18
  220. package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js +4 -74
  221. package/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js.map +1 -1
  222. package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.d.ts +9 -0
  223. package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.js +59 -0
  224. package/dist/client/components/react-dev-overlay/pages/OldReactDevOverlay.js.map +1 -0
  225. package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.d.ts +3 -9
  226. package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js +5 -42
  227. package/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js.map +1 -1
  228. package/dist/client/components/react-dev-overlay/pages/hooks.d.ts +1 -1
  229. package/dist/client/components/react-dev-overlay/pages/hooks.js.map +1 -1
  230. package/dist/client/index.js +1 -1
  231. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js +2 -2
  232. package/dist/compiled/next-server/app-page-experimental.runtime.dev.js.map +1 -1
  233. package/dist/compiled/next-server/app-page.runtime.dev.js +2 -2
  234. package/dist/compiled/next-server/app-page.runtime.dev.js.map +1 -1
  235. package/dist/esm/build/index.js +5 -2
  236. package/dist/esm/build/index.js.map +1 -1
  237. package/dist/esm/build/swc/index.js +1 -1
  238. package/dist/esm/build/webpack-config.js +2 -2
  239. package/dist/esm/client/app-bootstrap.js +1 -1
  240. package/dist/esm/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js +76 -0
  241. package/dist/esm/client/components/react-dev-overlay/_experimental/app/ReactDevOverlay.js.map +1 -0
  242. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js +102 -0
  243. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/CodeFrame.js.map +1 -0
  244. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js +3 -0
  245. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/index.js.map +1 -0
  246. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js +15 -0
  247. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/CodeFrame/styles.js.map +1 -0
  248. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js +70 -0
  249. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/Dialog.js.map +1 -0
  250. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js +13 -0
  251. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogBody.js.map +1 -0
  252. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js +13 -0
  253. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogContent.js.map +1 -0
  254. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js +13 -0
  255. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/DialogHeader.js.map +1 -0
  256. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js +7 -0
  257. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/index.js.map +1 -0
  258. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js +15 -0
  259. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Dialog/styles.js.map +1 -0
  260. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js +162 -0
  261. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js.map +1 -0
  262. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js +4 -0
  263. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/index.js.map +1 -0
  264. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js +15 -0
  265. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/LeftRightDialogHeader/styles.js.map +1 -0
  266. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js +45 -0
  267. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/Overlay.js.map +1 -0
  268. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js +34 -0
  269. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/body-locker.js.map +1 -0
  270. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js +3 -0
  271. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/index.js.map +1 -0
  272. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js +2732 -0
  273. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/maintain--tab-focus.js.map +1 -0
  274. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js +15 -0
  275. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Overlay/styles.js.map +1 -0
  276. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js +25 -0
  277. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/ShadowPortal.js.map +1 -0
  278. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js +50 -0
  279. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/EditorLink.js.map +1 -0
  280. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js +90 -0
  281. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/Terminal.js.map +1 -0
  282. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js +3 -0
  283. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/index.js.map +1 -0
  284. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js +15 -0
  285. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Terminal/styles.js.map +1 -0
  286. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js +19 -0
  287. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/Toast.js.map +1 -0
  288. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js +4 -0
  289. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/index.js.map +1 -0
  290. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js +15 -0
  291. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/Toast/styles.js.map +1 -0
  292. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js +75 -0
  293. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/VersionStalenessInfo.js.map +1 -0
  294. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js +4 -0
  295. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/index.js.map +1 -0
  296. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js +15 -0
  297. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/VersionStalenessInfo/styles.js.map +1 -0
  298. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js +213 -0
  299. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/copy-button/index.js.map +1 -0
  300. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js +57 -0
  301. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/hot-linked-text/index.js.map +1 -0
  302. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js +103 -0
  303. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/components/nodejs-inspector.js.map +1 -0
  304. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js +71 -0
  305. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/BuildError.js.map +1 -0
  306. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/Errors.js +364 -0
  307. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/Errors.js.map +1 -0
  308. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js +75 -0
  309. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/CallStackFrame.js.map +1 -0
  310. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js +99 -0
  311. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/ComponentStackFrameRow.js.map +1 -0
  312. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js +275 -0
  313. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/component-stack-pseudo-html.js.map +1 -0
  314. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js +63 -0
  315. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/RuntimeError/index.js.map +1 -0
  316. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js +39 -0
  317. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/StaticIndicator.js.map +1 -0
  318. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js +42 -0
  319. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/container/root-layout-missing-tags-error.js.map +1 -0
  320. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js +35 -0
  321. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/attach-hydration-error-state.js.map +1 -0
  322. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js +20 -0
  323. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/console-error.js.map +1 -0
  324. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js +20 -0
  325. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/enqueue-client-error.js.map +1 -0
  326. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js +147 -0
  327. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/format-webpack-messages.js.map +1 -0
  328. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js +34 -0
  329. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-error-by-type.js.map +1 -0
  330. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js +22 -0
  331. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-socket-url.js.map +1 -0
  332. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js +66 -0
  333. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-from-file.js.map +1 -0
  334. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js +17 -0
  335. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/get-source-map-url.js.map +1 -0
  336. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js +73 -0
  337. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/hydration-error-info.js.map +1 -0
  338. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js +391 -0
  339. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.js.map +1 -0
  340. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js +60 -0
  341. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.js.map +1 -0
  342. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js +9 -0
  343. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.js.map +1 -0
  344. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js +83 -0
  345. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-component-stack.js.map +1 -0
  346. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js +38 -0
  347. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/parse-stack.js.map +1 -0
  348. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js +5 -0
  349. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/runtime-error-handler.js.map +1 -0
  350. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js +112 -0
  351. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stack-frame.js.map +1 -0
  352. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js +40 -0
  353. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/stitched-error.js.map +1 -0
  354. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js +88 -0
  355. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-error-handler.js.map +1 -0
  356. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js +21 -0
  357. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-open-in-editor.js.map +1 -0
  358. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js +93 -0
  359. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/use-websocket.js.map +1 -0
  360. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js +31 -0
  361. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/helpers/webpack-module-path.js.map +1 -0
  362. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js +29 -0
  363. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/hooks/use-on-click-outside.js.map +1 -0
  364. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js +30 -0
  365. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CloseIcon.js.map +1 -0
  366. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js +27 -0
  367. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/CollapseIcon.js.map +1 -0
  368. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js +18 -0
  369. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/icons/LightningBolt.js.map +1 -0
  370. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/Base.js +20 -0
  371. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/Base.js.map +1 -0
  372. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js +39 -0
  373. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/ComponentStyles.js.map +1 -0
  374. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js +20 -0
  375. package/dist/esm/client/components/react-dev-overlay/_experimental/internal/styles/CssReset.js.map +1 -0
  376. package/dist/esm/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js +42 -0
  377. package/dist/esm/client/components/react-dev-overlay/_experimental/pages/ReactDevOverlay.js.map +1 -0
  378. package/dist/esm/client/components/react-dev-overlay/app/OldReactDevOverlay.js +76 -0
  379. package/dist/esm/client/components/react-dev-overlay/app/OldReactDevOverlay.js.map +1 -0
  380. package/dist/esm/client/components/react-dev-overlay/app/ReactDevOverlay.js +3 -74
  381. package/dist/esm/client/components/react-dev-overlay/app/ReactDevOverlay.js.map +1 -1
  382. package/dist/esm/client/components/react-dev-overlay/pages/OldReactDevOverlay.js +42 -0
  383. package/dist/esm/client/components/react-dev-overlay/pages/OldReactDevOverlay.js.map +1 -0
  384. package/dist/esm/client/components/react-dev-overlay/pages/ReactDevOverlay.js +3 -40
  385. package/dist/esm/client/components/react-dev-overlay/pages/ReactDevOverlay.js.map +1 -1
  386. package/dist/esm/client/components/react-dev-overlay/pages/hooks.js.map +1 -1
  387. package/dist/esm/client/index.js +1 -1
  388. package/dist/esm/server/config.js +1 -1
  389. package/dist/esm/server/dev/hot-reloader-turbopack.js +1 -1
  390. package/dist/esm/server/dev/hot-reloader-webpack.js +1 -1
  391. package/dist/esm/server/lib/app-info-log.js +1 -1
  392. package/dist/esm/server/lib/start-server.js +1 -1
  393. package/dist/server/config.js +1 -1
  394. package/dist/server/dev/hot-reloader-turbopack.js +1 -1
  395. package/dist/server/dev/hot-reloader-webpack.js +1 -1
  396. package/dist/server/lib/app-info-log.js +1 -1
  397. package/dist/server/lib/start-server.js +1 -1
  398. package/dist/telemetry/anonymous-meta.js +1 -1
  399. package/dist/telemetry/events/session-stopped.js +2 -2
  400. package/dist/telemetry/events/version.js +2 -2
  401. package/package.json +15 -15
@@ -0,0 +1,391 @@
1
+ /**
2
+ * MIT License
3
+ *
4
+ * Copyright (c) 2015-present, Facebook, Inc.
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in all
14
+ * copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ * SOFTWARE.
23
+ */ import { cyan, green, red } from '../../../../../../lib/picocolors';
24
+ import child_process from 'child_process';
25
+ import fs from 'fs';
26
+ import os from 'os';
27
+ import path from 'path';
28
+ import shellQuote from 'next/dist/compiled/shell-quote';
29
+ function isTerminalEditor(editor) {
30
+ switch(editor){
31
+ case 'vi':
32
+ case 'vim':
33
+ case 'nvim':
34
+ case 'emacs':
35
+ case 'nano':
36
+ {
37
+ return true;
38
+ }
39
+ default:
40
+ {}
41
+ }
42
+ return false;
43
+ }
44
+ // Map from full process name to binary that starts the process
45
+ // We can't just re-use full process name, because it will spawn a new instance
46
+ // of the app every time
47
+ const COMMON_EDITORS_MACOS = {
48
+ '/Applications/Atom.app/Contents/MacOS/Atom': 'atom',
49
+ '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta': '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta',
50
+ '/Applications/Brackets.app/Contents/MacOS/Brackets': 'brackets',
51
+ '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',
52
+ '/Applications/Sublime Text Dev.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl',
53
+ '/Applications/Sublime Text 2.app/Contents/MacOS/Sublime Text 2': '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl',
54
+ '/Applications/Visual Studio Code.app/Contents/MacOS/Electron': '/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code',
55
+ '/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron': '/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code',
56
+ '/Applications/VSCodium.app/Contents/MacOS/Electron': '/Applications/VSCodium.app/Contents/Resources/app/bin/code',
57
+ '/Applications/AppCode.app/Contents/MacOS/appcode': '/Applications/AppCode.app/Contents/MacOS/appcode',
58
+ '/Applications/CLion.app/Contents/MacOS/clion': '/Applications/CLion.app/Contents/MacOS/clion',
59
+ '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea': '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',
60
+ '/Applications/PhpStorm.app/Contents/MacOS/phpstorm': '/Applications/PhpStorm.app/Contents/MacOS/phpstorm',
61
+ '/Applications/PyCharm.app/Contents/MacOS/pycharm': '/Applications/PyCharm.app/Contents/MacOS/pycharm',
62
+ '/Applications/PyCharm CE.app/Contents/MacOS/pycharm': '/Applications/PyCharm CE.app/Contents/MacOS/pycharm',
63
+ '/Applications/RubyMine.app/Contents/MacOS/rubymine': '/Applications/RubyMine.app/Contents/MacOS/rubymine',
64
+ '/Applications/WebStorm.app/Contents/MacOS/webstorm': '/Applications/WebStorm.app/Contents/MacOS/webstorm',
65
+ '/Applications/MacVim.app/Contents/MacOS/MacVim': 'mvim',
66
+ '/Applications/GoLand.app/Contents/MacOS/goland': '/Applications/GoLand.app/Contents/MacOS/goland',
67
+ '/Applications/Rider.app/Contents/MacOS/rider': '/Applications/Rider.app/Contents/MacOS/rider'
68
+ };
69
+ const COMMON_EDITORS_LINUX = {
70
+ atom: 'atom',
71
+ Brackets: 'brackets',
72
+ code: 'code',
73
+ 'code-insiders': 'code-insiders',
74
+ vscodium: 'vscodium',
75
+ emacs: 'emacs',
76
+ gvim: 'gvim',
77
+ 'idea.sh': 'idea',
78
+ 'phpstorm.sh': 'phpstorm',
79
+ 'pycharm.sh': 'pycharm',
80
+ 'rubymine.sh': 'rubymine',
81
+ sublime_text: 'sublime_text',
82
+ vim: 'vim',
83
+ nvim: 'nvim',
84
+ 'webstorm.sh': 'webstorm',
85
+ 'goland.sh': 'goland',
86
+ 'rider.sh': 'rider'
87
+ };
88
+ const COMMON_EDITORS_WIN = [
89
+ 'Brackets.exe',
90
+ 'Code.exe',
91
+ 'Code - Insiders.exe',
92
+ 'VSCodium.exe',
93
+ 'atom.exe',
94
+ 'sublime_text.exe',
95
+ 'notepad++.exe',
96
+ 'clion.exe',
97
+ 'clion64.exe',
98
+ 'idea.exe',
99
+ 'idea64.exe',
100
+ 'phpstorm.exe',
101
+ 'phpstorm64.exe',
102
+ 'pycharm.exe',
103
+ 'pycharm64.exe',
104
+ 'rubymine.exe',
105
+ 'rubymine64.exe',
106
+ 'webstorm.exe',
107
+ 'webstorm64.exe',
108
+ 'goland.exe',
109
+ 'goland64.exe',
110
+ 'rider.exe',
111
+ 'rider64.exe'
112
+ ];
113
+ // Transpiled version of: /^([A-Za-z]:[/\\])?[\p{L}0-9/.\-_\\]+$/u
114
+ // Non-transpiled version requires support for Unicode property regex. Allows
115
+ // alphanumeric characters, periods, dashes, slashes, and underscores.
116
+ const WINDOWS_FILE_NAME_ACCESS_LIST = /^([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])+$/;
117
+ function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber) {
118
+ const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, '');
119
+ switch(editorBasename){
120
+ case 'atom':
121
+ case 'Atom':
122
+ case 'Atom Beta':
123
+ case 'subl':
124
+ case 'sublime':
125
+ case 'sublime_text':
126
+ {
127
+ return [
128
+ fileName + ':' + lineNumber + ':' + colNumber
129
+ ];
130
+ }
131
+ case 'wstorm':
132
+ case 'charm':
133
+ {
134
+ return [
135
+ fileName + ':' + lineNumber
136
+ ];
137
+ }
138
+ case 'notepad++':
139
+ {
140
+ return [
141
+ '-n' + lineNumber,
142
+ '-c' + colNumber,
143
+ fileName
144
+ ];
145
+ }
146
+ case 'vim':
147
+ case 'nvim':
148
+ case 'mvim':
149
+ case 'joe':
150
+ case 'gvim':
151
+ {
152
+ return [
153
+ '+' + lineNumber,
154
+ fileName
155
+ ];
156
+ }
157
+ case 'emacs':
158
+ case 'emacsclient':
159
+ {
160
+ return [
161
+ '+' + lineNumber + ':' + colNumber,
162
+ fileName
163
+ ];
164
+ }
165
+ case 'rmate':
166
+ case 'mate':
167
+ case 'mine':
168
+ {
169
+ return [
170
+ '--line',
171
+ lineNumber.toString(),
172
+ fileName
173
+ ];
174
+ }
175
+ case 'code':
176
+ case 'Code':
177
+ case 'code-insiders':
178
+ case 'Code - Insiders':
179
+ case 'vscodium':
180
+ case 'VSCodium':
181
+ {
182
+ return [
183
+ '-g',
184
+ fileName + ':' + lineNumber + ':' + colNumber
185
+ ];
186
+ }
187
+ case 'appcode':
188
+ case 'clion':
189
+ case 'clion64':
190
+ case 'idea':
191
+ case 'idea64':
192
+ case 'phpstorm':
193
+ case 'phpstorm64':
194
+ case 'pycharm':
195
+ case 'pycharm64':
196
+ case 'rubymine':
197
+ case 'rubymine64':
198
+ case 'webstorm':
199
+ case 'webstorm64':
200
+ case 'goland':
201
+ case 'goland64':
202
+ case 'rider':
203
+ case 'rider64':
204
+ {
205
+ return [
206
+ '--line',
207
+ lineNumber.toString(),
208
+ fileName
209
+ ];
210
+ }
211
+ default:
212
+ {
213
+ // For all others, drop the lineNumber until we have
214
+ // a mapping above, since providing the lineNumber incorrectly
215
+ // can result in errors or confusing behavior.
216
+ return [
217
+ fileName
218
+ ];
219
+ }
220
+ }
221
+ }
222
+ function guessEditor() {
223
+ // Explicit config always wins
224
+ if (process.env.REACT_EDITOR) {
225
+ return shellQuote.parse(process.env.REACT_EDITOR);
226
+ }
227
+ // We can find out which editor is currently running by:
228
+ // `ps x` on macOS and Linux
229
+ // `Get-Process` on Windows
230
+ try {
231
+ if (process.platform === 'darwin') {
232
+ const output = child_process.execSync('ps x').toString();
233
+ const processNames = Object.keys(COMMON_EDITORS_MACOS);
234
+ for(let i = 0; i < processNames.length; i++){
235
+ const processName = processNames[i];
236
+ if (output.indexOf(processName) !== -1) {
237
+ return [
238
+ COMMON_EDITORS_MACOS[processName]
239
+ ];
240
+ }
241
+ }
242
+ } else if (process.platform === 'win32') {
243
+ // Some processes need elevated rights to get its executable path.
244
+ // Just filter them out upfront. This also saves 10-20ms on the command.
245
+ const output = child_process.execSync('wmic process where "executablepath is not null" get executablepath').toString();
246
+ const runningProcesses = output.split('\r\n');
247
+ for(let i = 0; i < runningProcesses.length; i++){
248
+ const processPath = runningProcesses[i].trim();
249
+ const processName = path.basename(processPath);
250
+ if (COMMON_EDITORS_WIN.indexOf(processName) !== -1) {
251
+ return [
252
+ processPath
253
+ ];
254
+ }
255
+ }
256
+ } else if (process.platform === 'linux') {
257
+ // --no-heading No header line
258
+ // x List all processes owned by you
259
+ // -o comm Need only names column
260
+ const output = child_process.execSync('ps x --no-heading -o comm --sort=comm').toString();
261
+ const processNames = Object.keys(COMMON_EDITORS_LINUX);
262
+ for(let i = 0; i < processNames.length; i++){
263
+ const processName = processNames[i];
264
+ if (output.indexOf(processName) !== -1) {
265
+ return [
266
+ COMMON_EDITORS_LINUX[processName]
267
+ ];
268
+ }
269
+ }
270
+ }
271
+ } catch (error) {
272
+ // Ignore...
273
+ }
274
+ // Last resort, use old skool env vars
275
+ if (process.env.VISUAL) {
276
+ return [
277
+ process.env.VISUAL
278
+ ];
279
+ } else if (process.env.EDITOR) {
280
+ return [
281
+ process.env.EDITOR
282
+ ];
283
+ }
284
+ return [];
285
+ }
286
+ function printInstructions(fileName, errorMessage) {
287
+ console.log();
288
+ console.log(red('Could not open ' + path.basename(fileName) + ' in the editor.'));
289
+ if (errorMessage) {
290
+ if (errorMessage[errorMessage.length - 1] !== '.') {
291
+ errorMessage += '.';
292
+ }
293
+ console.log(red('The editor process exited with an error: ' + errorMessage));
294
+ }
295
+ console.log();
296
+ console.log('To set up the editor integration, add something like ' + cyan('REACT_EDITOR=atom') + ' to the ' + green('.env.local') + ' file in your project folder ' + 'and restart the development server.');
297
+ console.log();
298
+ }
299
+ function launchEditor(fileName, lineNumber, colNumber) {
300
+ if (!fs.existsSync(fileName)) {
301
+ return;
302
+ }
303
+ // Sanitize lineNumber to prevent malicious use on win32
304
+ // via: https://github.com/nodejs/node/blob/c3bb4b1aa5e907d489619fb43d233c3336bfc03d/lib/child_process.js#L333
305
+ // and it should be a positive integer
306
+ if (!(Number.isInteger(lineNumber) && lineNumber > 0)) {
307
+ return;
308
+ }
309
+ // colNumber is optional, but should be a positive integer too
310
+ // default is 1
311
+ if (!(Number.isInteger(colNumber) && colNumber > 0)) {
312
+ colNumber = 1;
313
+ }
314
+ let [editor, ...args] = guessEditor();
315
+ if (!editor) {
316
+ printInstructions(fileName, null);
317
+ return;
318
+ }
319
+ if (editor.toLowerCase() === 'none') {
320
+ return;
321
+ }
322
+ if (process.platform === 'linux' && fileName.startsWith('/mnt/') && /Microsoft/i.test(os.release())) {
323
+ // Assume WSL / "Bash on Ubuntu on Windows" is being used, and
324
+ // that the file exists on the Windows file system.
325
+ // `os.release()` is "4.4.0-43-Microsoft" in the current release
326
+ // build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364
327
+ // When a Windows editor is specified, interop functionality can
328
+ // handle the path translation, but only if a relative path is used.
329
+ fileName = path.relative('', fileName);
330
+ }
331
+ // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the
332
+ // form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use an access list
333
+ // to validate user-provided file names. This doesn't cover the entire range
334
+ // of valid file names but should cover almost all of them in practice.
335
+ if (process.platform === 'win32' && !WINDOWS_FILE_NAME_ACCESS_LIST.test(fileName.trim())) {
336
+ console.log();
337
+ console.log(red('Could not open ' + path.basename(fileName) + ' in the editor.'));
338
+ console.log();
339
+ console.log('When running on Windows, file names are checked against an access list ' + 'to protect against remote code execution attacks. File names may ' + 'consist only of alphanumeric characters (all languages), periods, ' + 'dashes, slashes, and underscores.');
340
+ console.log();
341
+ return;
342
+ }
343
+ if (lineNumber) {
344
+ args = args.concat(getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber));
345
+ } else {
346
+ args.push(fileName);
347
+ }
348
+ let p = undefined;
349
+ if (process.platform === 'win32') {
350
+ // On Windows, launch the editor in a shell because spawn can only
351
+ // launch .exe files.
352
+ p = child_process.spawn('cmd.exe', [
353
+ '/C',
354
+ editor
355
+ ].concat(args), {
356
+ stdio: 'inherit',
357
+ detached: true
358
+ });
359
+ } else if (isTerminalEditor(editor)) {
360
+ if (process.platform === 'darwin') {
361
+ p = child_process.spawn('osascript', [
362
+ '-e',
363
+ 'tell application "Terminal" to do script "' + shellQuote.quote([
364
+ editor,
365
+ ...args
366
+ ]) + '"'
367
+ ], {
368
+ stdio: 'ignore'
369
+ });
370
+ } else {
371
+ printInstructions(fileName, 'Terminal editors can only be used on macOS.');
372
+ }
373
+ } else {
374
+ p = child_process.spawn(editor, args, {
375
+ stdio: 'inherit'
376
+ });
377
+ }
378
+ if (p) {
379
+ p.on('exit', function(errorCode) {
380
+ if (errorCode) {
381
+ printInstructions(fileName, '(code ' + errorCode + ')');
382
+ }
383
+ });
384
+ p.on('error', function(error) {
385
+ printInstructions(fileName, error.message);
386
+ });
387
+ }
388
+ }
389
+ export { launchEditor };
390
+
391
+ //# sourceMappingURL=launchEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/helpers/launchEditor.ts"],"sourcesContent":["/**\n * MIT License\n *\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nimport { cyan, green, red } from '../../../../../../lib/picocolors'\nimport child_process from 'child_process'\nimport fs from 'fs'\nimport os from 'os'\nimport path from 'path'\nimport shellQuote from 'next/dist/compiled/shell-quote'\n\nfunction isTerminalEditor(editor: string) {\n switch (editor) {\n case 'vi':\n case 'vim':\n case 'nvim':\n case 'emacs':\n case 'nano': {\n return true\n }\n default: {\n }\n }\n return false\n}\n\n// Map from full process name to binary that starts the process\n// We can't just re-use full process name, because it will spawn a new instance\n// of the app every time\nconst COMMON_EDITORS_MACOS = {\n '/Applications/Atom.app/Contents/MacOS/Atom': 'atom',\n '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta':\n '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta',\n '/Applications/Brackets.app/Contents/MacOS/Brackets': 'brackets',\n '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text':\n '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl',\n '/Applications/Sublime Text Dev.app/Contents/MacOS/Sublime Text':\n '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl',\n '/Applications/Sublime Text 2.app/Contents/MacOS/Sublime Text 2':\n '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl',\n '/Applications/Visual Studio Code.app/Contents/MacOS/Electron':\n '/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code',\n '/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron':\n '/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code',\n '/Applications/VSCodium.app/Contents/MacOS/Electron':\n '/Applications/VSCodium.app/Contents/Resources/app/bin/code',\n '/Applications/AppCode.app/Contents/MacOS/appcode':\n '/Applications/AppCode.app/Contents/MacOS/appcode',\n '/Applications/CLion.app/Contents/MacOS/clion':\n '/Applications/CLion.app/Contents/MacOS/clion',\n '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea':\n '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea',\n '/Applications/PhpStorm.app/Contents/MacOS/phpstorm':\n '/Applications/PhpStorm.app/Contents/MacOS/phpstorm',\n '/Applications/PyCharm.app/Contents/MacOS/pycharm':\n '/Applications/PyCharm.app/Contents/MacOS/pycharm',\n '/Applications/PyCharm CE.app/Contents/MacOS/pycharm':\n '/Applications/PyCharm CE.app/Contents/MacOS/pycharm',\n '/Applications/RubyMine.app/Contents/MacOS/rubymine':\n '/Applications/RubyMine.app/Contents/MacOS/rubymine',\n '/Applications/WebStorm.app/Contents/MacOS/webstorm':\n '/Applications/WebStorm.app/Contents/MacOS/webstorm',\n '/Applications/MacVim.app/Contents/MacOS/MacVim': 'mvim',\n '/Applications/GoLand.app/Contents/MacOS/goland':\n '/Applications/GoLand.app/Contents/MacOS/goland',\n '/Applications/Rider.app/Contents/MacOS/rider':\n '/Applications/Rider.app/Contents/MacOS/rider',\n}\n\nconst COMMON_EDITORS_LINUX = {\n atom: 'atom',\n Brackets: 'brackets',\n code: 'code',\n 'code-insiders': 'code-insiders',\n vscodium: 'vscodium',\n emacs: 'emacs',\n gvim: 'gvim',\n 'idea.sh': 'idea',\n 'phpstorm.sh': 'phpstorm',\n 'pycharm.sh': 'pycharm',\n 'rubymine.sh': 'rubymine',\n sublime_text: 'sublime_text',\n vim: 'vim',\n nvim: 'nvim',\n 'webstorm.sh': 'webstorm',\n 'goland.sh': 'goland',\n 'rider.sh': 'rider',\n}\n\nconst COMMON_EDITORS_WIN = [\n 'Brackets.exe',\n 'Code.exe',\n 'Code - Insiders.exe',\n 'VSCodium.exe',\n 'atom.exe',\n 'sublime_text.exe',\n 'notepad++.exe',\n 'clion.exe',\n 'clion64.exe',\n 'idea.exe',\n 'idea64.exe',\n 'phpstorm.exe',\n 'phpstorm64.exe',\n 'pycharm.exe',\n 'pycharm64.exe',\n 'rubymine.exe',\n 'rubymine64.exe',\n 'webstorm.exe',\n 'webstorm64.exe',\n 'goland.exe',\n 'goland64.exe',\n 'rider.exe',\n 'rider64.exe',\n]\n\n// Transpiled version of: /^([A-Za-z]:[/\\\\])?[\\p{L}0-9/.\\-_\\\\]+$/u\n// Non-transpiled version requires support for Unicode property regex. Allows\n// alphanumeric characters, periods, dashes, slashes, and underscores.\nconst WINDOWS_FILE_NAME_ACCESS_LIST =\n /^([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])+$/\n\nfunction getArgumentsForLineNumber(\n editor: string,\n fileName: string,\n lineNumber: number,\n colNumber: number\n): string[] {\n const editorBasename = path.basename(editor).replace(/\\.(exe|cmd|bat)$/i, '')\n switch (editorBasename) {\n case 'atom':\n case 'Atom':\n case 'Atom Beta':\n case 'subl':\n case 'sublime':\n case 'sublime_text': {\n return [fileName + ':' + lineNumber + ':' + colNumber]\n }\n case 'wstorm':\n case 'charm': {\n return [fileName + ':' + lineNumber]\n }\n case 'notepad++': {\n return ['-n' + lineNumber, '-c' + colNumber, fileName]\n }\n case 'vim':\n case 'nvim':\n case 'mvim':\n case 'joe':\n case 'gvim': {\n return ['+' + lineNumber, fileName]\n }\n case 'emacs':\n case 'emacsclient': {\n return ['+' + lineNumber + ':' + colNumber, fileName]\n }\n case 'rmate':\n case 'mate':\n case 'mine': {\n return ['--line', lineNumber.toString(), fileName]\n }\n case 'code':\n case 'Code':\n case 'code-insiders':\n case 'Code - Insiders':\n case 'vscodium':\n case 'VSCodium': {\n return ['-g', fileName + ':' + lineNumber + ':' + colNumber]\n }\n case 'appcode':\n case 'clion':\n case 'clion64':\n case 'idea':\n case 'idea64':\n case 'phpstorm':\n case 'phpstorm64':\n case 'pycharm':\n case 'pycharm64':\n case 'rubymine':\n case 'rubymine64':\n case 'webstorm':\n case 'webstorm64':\n case 'goland':\n case 'goland64':\n case 'rider':\n case 'rider64': {\n return ['--line', lineNumber.toString(), fileName]\n }\n default: {\n // For all others, drop the lineNumber until we have\n // a mapping above, since providing the lineNumber incorrectly\n // can result in errors or confusing behavior.\n return [fileName]\n }\n }\n}\n\nfunction guessEditor(): string[] {\n // Explicit config always wins\n if (process.env.REACT_EDITOR) {\n return shellQuote.parse(process.env.REACT_EDITOR) as any\n }\n\n // We can find out which editor is currently running by:\n // `ps x` on macOS and Linux\n // `Get-Process` on Windows\n try {\n if (process.platform === 'darwin') {\n const output = child_process.execSync('ps x').toString()\n const processNames = Object.keys(COMMON_EDITORS_MACOS)\n for (let i = 0; i < processNames.length; i++) {\n const processName = processNames[i]\n if (output.indexOf(processName) !== -1) {\n return [(COMMON_EDITORS_MACOS as any)[processName]]\n }\n }\n } else if (process.platform === 'win32') {\n // Some processes need elevated rights to get its executable path.\n // Just filter them out upfront. This also saves 10-20ms on the command.\n const output = child_process\n .execSync(\n 'wmic process where \"executablepath is not null\" get executablepath'\n )\n .toString()\n const runningProcesses = output.split('\\r\\n')\n for (let i = 0; i < runningProcesses.length; i++) {\n const processPath = runningProcesses[i].trim()\n const processName = path.basename(processPath)\n if (COMMON_EDITORS_WIN.indexOf(processName) !== -1) {\n return [processPath]\n }\n }\n } else if (process.platform === 'linux') {\n // --no-heading No header line\n // x List all processes owned by you\n // -o comm Need only names column\n const output = child_process\n .execSync('ps x --no-heading -o comm --sort=comm')\n .toString()\n const processNames = Object.keys(COMMON_EDITORS_LINUX)\n for (let i = 0; i < processNames.length; i++) {\n const processName = processNames[i]\n if (output.indexOf(processName) !== -1) {\n return [(COMMON_EDITORS_LINUX as any)[processName] as string]\n }\n }\n }\n } catch (error) {\n // Ignore...\n }\n\n // Last resort, use old skool env vars\n if (process.env.VISUAL) {\n return [process.env.VISUAL]\n } else if (process.env.EDITOR) {\n return [process.env.EDITOR]\n }\n\n return []\n}\n\nfunction printInstructions(fileName: string, errorMessage: string | null) {\n console.log()\n console.log(\n red('Could not open ' + path.basename(fileName) + ' in the editor.')\n )\n if (errorMessage) {\n if (errorMessage[errorMessage.length - 1] !== '.') {\n errorMessage += '.'\n }\n console.log(red('The editor process exited with an error: ' + errorMessage))\n }\n console.log()\n console.log(\n 'To set up the editor integration, add something like ' +\n cyan('REACT_EDITOR=atom') +\n ' to the ' +\n green('.env.local') +\n ' file in your project folder ' +\n 'and restart the development server.'\n )\n console.log()\n}\n\nfunction launchEditor(fileName: string, lineNumber: number, colNumber: number) {\n if (!fs.existsSync(fileName)) {\n return\n }\n\n // Sanitize lineNumber to prevent malicious use on win32\n // via: https://github.com/nodejs/node/blob/c3bb4b1aa5e907d489619fb43d233c3336bfc03d/lib/child_process.js#L333\n // and it should be a positive integer\n if (!(Number.isInteger(lineNumber) && lineNumber > 0)) {\n return\n }\n\n // colNumber is optional, but should be a positive integer too\n // default is 1\n if (!(Number.isInteger(colNumber) && colNumber > 0)) {\n colNumber = 1\n }\n\n let [editor, ...args] = guessEditor()\n\n if (!editor) {\n printInstructions(fileName, null)\n return\n }\n\n if (editor.toLowerCase() === 'none') {\n return\n }\n\n if (\n process.platform === 'linux' &&\n fileName.startsWith('/mnt/') &&\n /Microsoft/i.test(os.release())\n ) {\n // Assume WSL / \"Bash on Ubuntu on Windows\" is being used, and\n // that the file exists on the Windows file system.\n // `os.release()` is \"4.4.0-43-Microsoft\" in the current release\n // build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364\n // When a Windows editor is specified, interop functionality can\n // handle the path translation, but only if a relative path is used.\n fileName = path.relative('', fileName)\n }\n\n // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the\n // form \"C:\\Users\\myusername\\Downloads\\& curl 172.21.93.52\". Use an access list\n // to validate user-provided file names. This doesn't cover the entire range\n // of valid file names but should cover almost all of them in practice.\n if (\n process.platform === 'win32' &&\n !WINDOWS_FILE_NAME_ACCESS_LIST.test(fileName.trim())\n ) {\n console.log()\n console.log(\n red('Could not open ' + path.basename(fileName) + ' in the editor.')\n )\n console.log()\n console.log(\n 'When running on Windows, file names are checked against an access list ' +\n 'to protect against remote code execution attacks. File names may ' +\n 'consist only of alphanumeric characters (all languages), periods, ' +\n 'dashes, slashes, and underscores.'\n )\n console.log()\n return\n }\n\n if (lineNumber) {\n args = args.concat(\n getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber)\n )\n } else {\n args.push(fileName)\n }\n\n let p: child_process.ChildProcess | undefined = undefined\n if (process.platform === 'win32') {\n // On Windows, launch the editor in a shell because spawn can only\n // launch .exe files.\n p = child_process.spawn('cmd.exe', ['/C', editor].concat(args), {\n stdio: 'inherit',\n detached: true,\n })\n } else if (isTerminalEditor(editor)) {\n if (process.platform === 'darwin') {\n p = child_process.spawn(\n 'osascript',\n [\n '-e',\n `tell application \"Terminal\" to do script \"${shellQuote.quote([\n editor,\n ...args,\n ])}\"`,\n ],\n { stdio: 'ignore' }\n )\n } else {\n printInstructions(fileName, 'Terminal editors can only be used on macOS.')\n }\n } else {\n p = child_process.spawn(editor, args, { stdio: 'inherit' })\n }\n\n if (p) {\n p.on('exit', function (errorCode) {\n if (errorCode) {\n printInstructions(fileName, '(code ' + errorCode + ')')\n }\n })\n p.on('error', function (error) {\n printInstructions(fileName, error.message)\n })\n }\n}\n\nexport { launchEditor }\n"],"names":["cyan","green","red","child_process","fs","os","path","shellQuote","isTerminalEditor","editor","COMMON_EDITORS_MACOS","COMMON_EDITORS_LINUX","atom","Brackets","code","vscodium","emacs","gvim","sublime_text","vim","nvim","COMMON_EDITORS_WIN","WINDOWS_FILE_NAME_ACCESS_LIST","getArgumentsForLineNumber","fileName","lineNumber","colNumber","editorBasename","basename","replace","toString","guessEditor","process","env","REACT_EDITOR","parse","platform","output","execSync","processNames","Object","keys","i","length","processName","indexOf","runningProcesses","split","processPath","trim","error","VISUAL","EDITOR","printInstructions","errorMessage","console","log","launchEditor","existsSync","Number","isInteger","args","toLowerCase","startsWith","test","release","relative","concat","push","p","undefined","spawn","stdio","detached","quote","on","errorCode","message"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { parse } from 'next/dist/compiled/stacktrace-parser';
2
+ import { decorateServerError } from '../../../../../../shared/lib/error-source';
3
+ export function getFilesystemFrame(frame) {
4
+ const f = {
5
+ ...frame
6
+ };
7
+ if (typeof f.file === 'string') {
8
+ if (// Posix:
9
+ f.file.startsWith('/') || // Win32:
10
+ /^[a-z]:\\/i.test(f.file) || // Win32 UNC:
11
+ f.file.startsWith('\\\\')) {
12
+ f.file = "file://" + f.file;
13
+ }
14
+ }
15
+ return f;
16
+ }
17
+ export function getServerError(error, type) {
18
+ if (error.name === 'TurbopackInternalError') {
19
+ // If this is an internal Turbopack error we shouldn't show internal details
20
+ // to the user. These are written to a log file instead.
21
+ const turbopackInternalError = Object.defineProperty(new Error('An unexpected Turbopack error occurred. Please see the output of `next dev` for more details.'), "__NEXT_ERROR_CODE", {
22
+ value: "E167",
23
+ enumerable: false
24
+ });
25
+ decorateServerError(turbopackInternalError, type);
26
+ return turbopackInternalError;
27
+ }
28
+ let n;
29
+ try {
30
+ throw Object.defineProperty(new Error(error.message), "__NEXT_ERROR_CODE", {
31
+ value: "E394",
32
+ enumerable: false
33
+ });
34
+ } catch (e) {
35
+ n = e;
36
+ }
37
+ n.name = error.name;
38
+ try {
39
+ n.stack = n.toString() + "\n" + parse(error.stack).map(getFilesystemFrame).map((f)=>{
40
+ let str = " at " + f.methodName;
41
+ if (f.file) {
42
+ let loc = f.file;
43
+ if (f.lineNumber) {
44
+ loc += ":" + f.lineNumber;
45
+ if (f.column) {
46
+ loc += ":" + f.column;
47
+ }
48
+ }
49
+ str += " (" + loc + ")";
50
+ }
51
+ return str;
52
+ }).join('\n');
53
+ } catch (e) {
54
+ n.stack = error.stack;
55
+ }
56
+ decorateServerError(n, type);
57
+ return n;
58
+ }
59
+
60
+ //# sourceMappingURL=node-stack-frames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/helpers/node-stack-frames.ts"],"sourcesContent":["import { parse } from 'next/dist/compiled/stacktrace-parser'\nimport type { StackFrame } from 'next/dist/compiled/stacktrace-parser'\nimport {\n decorateServerError,\n type ErrorSourceType,\n} from '../../../../../../shared/lib/error-source'\n\nexport function getFilesystemFrame(frame: StackFrame): StackFrame {\n const f: StackFrame = { ...frame }\n\n if (typeof f.file === 'string') {\n if (\n // Posix:\n f.file.startsWith('/') ||\n // Win32:\n /^[a-z]:\\\\/i.test(f.file) ||\n // Win32 UNC:\n f.file.startsWith('\\\\\\\\')\n ) {\n f.file = `file://${f.file}`\n }\n }\n\n return f\n}\n\nexport function getServerError(error: Error, type: ErrorSourceType): Error {\n if (error.name === 'TurbopackInternalError') {\n // If this is an internal Turbopack error we shouldn't show internal details\n // to the user. These are written to a log file instead.\n const turbopackInternalError = new Error(\n 'An unexpected Turbopack error occurred. Please see the output of `next dev` for more details.'\n )\n decorateServerError(turbopackInternalError, type)\n return turbopackInternalError\n }\n\n let n: Error\n try {\n throw new Error(error.message)\n } catch (e) {\n n = e as Error\n }\n\n n.name = error.name\n try {\n n.stack = `${n.toString()}\\n${parse(error.stack!)\n .map(getFilesystemFrame)\n .map((f) => {\n let str = ` at ${f.methodName}`\n if (f.file) {\n let loc = f.file\n if (f.lineNumber) {\n loc += `:${f.lineNumber}`\n if (f.column) {\n loc += `:${f.column}`\n }\n }\n str += ` (${loc})`\n }\n return str\n })\n .join('\\n')}`\n } catch {\n n.stack = error.stack\n }\n\n decorateServerError(n, type)\n return n\n}\n"],"names":["parse","decorateServerError","getFilesystemFrame","frame","f","file","startsWith","test","getServerError","error","type","name","turbopackInternalError","Error","n","message","e","stack","toString","map","str","methodName","loc","lineNumber","column","join"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uCAAsC;AAE5D,SACEC,mBAAmB,QAEd,4CAA2C;AAElD,OAAO,SAASC,mBAAmBC,KAAiB;IAClD,MAAMC,IAAgB;QAAE,GAAGD,KAAK;IAAC;IAEjC,IAAI,OAAOC,EAAEC,IAAI,KAAK,UAAU;QAC9B,IACE,SAAS;QACTD,EAAEC,IAAI,CAACC,UAAU,CAAC,QAClB,SAAS;QACT,aAAaC,IAAI,CAACH,EAAEC,IAAI,KACxB,aAAa;QACbD,EAAEC,IAAI,CAACC,UAAU,CAAC,SAClB;YACAF,EAAEC,IAAI,GAAG,AAAC,YAASD,EAAEC,IAAI;QAC3B;IACF;IAEA,OAAOD;AACT;AAEA,OAAO,SAASI,eAAeC,KAAY,EAAEC,IAAqB;IAChE,IAAID,MAAME,IAAI,KAAK,0BAA0B;QAC3C,4EAA4E;QAC5E,wDAAwD;QACxD,MAAMC,yBAAyB,qBAE9B,CAF8B,IAAIC,MACjC,kGAD6B,qBAAA;mBAAA;wBAAA;QAE/B;QACAZ,oBAAoBW,wBAAwBF;QAC5C,OAAOE;IACT;IAEA,IAAIE;IACJ,IAAI;QACF,MAAM,qBAAwB,CAAxB,IAAID,MAAMJ,MAAMM,OAAO,GAAvB,qBAAA;mBAAA;wBAAA;QAAuB;IAC/B,EAAE,OAAOC,GAAG;QACVF,IAAIE;IACN;IAEAF,EAAEH,IAAI,GAAGF,MAAME,IAAI;IACnB,IAAI;QACFG,EAAEG,KAAK,GAAG,AAAGH,EAAEI,QAAQ,KAAG,OAAIlB,MAAMS,MAAMQ,KAAK,EAC5CE,GAAG,CAACjB,oBACJiB,GAAG,CAAC,CAACf;YACJ,IAAIgB,MAAM,AAAC,YAAShB,EAAEiB,UAAU;YAChC,IAAIjB,EAAEC,IAAI,EAAE;gBACV,IAAIiB,MAAMlB,EAAEC,IAAI;gBAChB,IAAID,EAAEmB,UAAU,EAAE;oBAChBD,OAAO,AAAC,MAAGlB,EAAEmB,UAAU;oBACvB,IAAInB,EAAEoB,MAAM,EAAE;wBACZF,OAAO,AAAC,MAAGlB,EAAEoB,MAAM;oBACrB;gBACF;gBACAJ,OAAO,AAAC,OAAIE,MAAI;YAClB;YACA,OAAOF;QACT,GACCK,IAAI,CAAC;IACV,EAAE,UAAM;QACNX,EAAEG,KAAK,GAAGR,MAAMQ,KAAK;IACvB;IAEAhB,oBAAoBa,GAAGJ;IACvB,OAAOI;AACT"}
@@ -0,0 +1,9 @@
1
+ export function noop(strings) {
2
+ for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
3
+ keys[_key - 1] = arguments[_key];
4
+ }
5
+ const lastIndex = strings.length - 1;
6
+ return strings.slice(0, lastIndex).reduce((p, s, i)=>p + s + keys[i], '') + strings[lastIndex];
7
+ }
8
+
9
+ //# sourceMappingURL=noop-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/client/components/react-dev-overlay/_experimental/internal/helpers/noop-template.ts"],"sourcesContent":["export function noop(\n strings: TemplateStringsArray,\n ...keys: readonly string[]\n) {\n const lastIndex = strings.length - 1\n return (\n strings.slice(0, lastIndex).reduce((p, s, i) => p + s + keys[i], '') +\n strings[lastIndex]\n )\n}\n"],"names":["noop","strings","keys","lastIndex","length","slice","reduce","p","s","i"],"mappings":"AAAA,OAAO,SAASA,KACdC,OAA6B;IAC7B,IAAA,IAAA,OAAA,UAAA,QAAA,AAAGC,OAAH,UAAA,OAAA,IAAA,OAAA,QAAA,OAAA,GAAA,OAAA,MAAA;QAAGA,KAAH,OAAA,KAAA,SAAA,CAAA,KAA0B;;IAE1B,MAAMC,YAAYF,QAAQG,MAAM,GAAG;IACnC,OACEH,QAAQI,KAAK,CAAC,GAAGF,WAAWG,MAAM,CAAC,CAACC,GAAGC,GAAGC,IAAMF,IAAIC,IAAIN,IAAI,CAACO,EAAE,EAAE,MACjER,OAAO,CAACE,UAAU;AAEtB"}
@@ -0,0 +1,83 @@
1
+ var LocationType = /*#__PURE__*/ function(LocationType) {
2
+ LocationType["FILE"] = "file";
3
+ LocationType["WEBPACK_INTERNAL"] = "webpack-internal";
4
+ LocationType["HTTP"] = "http";
5
+ LocationType["PROTOCOL_RELATIVE"] = "protocol-relative";
6
+ LocationType["UNKNOWN"] = "unknown";
7
+ return LocationType;
8
+ }(LocationType || {});
9
+ /**
10
+ * Get the type of frame line based on the location
11
+ */ function getLocationType(location) {
12
+ if (location.startsWith('file://')) {
13
+ return "file";
14
+ }
15
+ if (location.includes('webpack-internal://')) {
16
+ return "webpack-internal";
17
+ }
18
+ if (location.startsWith('http://') || location.startsWith('https://')) {
19
+ return "http";
20
+ }
21
+ if (location.startsWith('//')) {
22
+ return "protocol-relative";
23
+ }
24
+ return "unknown";
25
+ }
26
+ function parseStackFrameLocation(location) {
27
+ const locationType = getLocationType(location);
28
+ const modulePath = location == null ? void 0 : location.replace(/^(webpack-internal:\/\/\/|file:\/\/)(\(.*\)\/)?/, '');
29
+ var _modulePath_match;
30
+ const [, file, lineNumber, column] = (_modulePath_match = modulePath == null ? void 0 : modulePath.match(/^(.+):(\d+):(\d+)/)) != null ? _modulePath_match : [];
31
+ switch(locationType){
32
+ case "file":
33
+ case "webpack-internal":
34
+ return {
35
+ canOpenInEditor: true,
36
+ file,
37
+ lineNumber: lineNumber ? Number(lineNumber) : undefined,
38
+ column: column ? Number(column) : undefined
39
+ };
40
+ // When the location is a URL we only show the file
41
+ // TODO: Resolve http(s) URLs through sourcemaps
42
+ case "http":
43
+ case "protocol-relative":
44
+ case "unknown":
45
+ default:
46
+ {
47
+ return {
48
+ canOpenInEditor: false
49
+ };
50
+ }
51
+ }
52
+ }
53
+ export function parseComponentStack(componentStack) {
54
+ const componentStackFrames = [];
55
+ for (const line of componentStack.trim().split('\n')){
56
+ // TODO: support safari stack trace
57
+ // Get component and file from the component stack line
58
+ const match = /at ([^ ]+)( \((.*)\))?/.exec(line);
59
+ if (match == null ? void 0 : match[1]) {
60
+ const component = match[1];
61
+ const location = match[3];
62
+ if (!location) {
63
+ componentStackFrames.push({
64
+ canOpenInEditor: false,
65
+ component
66
+ });
67
+ continue;
68
+ }
69
+ // Stop parsing the component stack if we reach a Next.js component
70
+ if (location == null ? void 0 : location.includes('next/dist')) {
71
+ break;
72
+ }
73
+ const frameLocation = parseStackFrameLocation(location);
74
+ componentStackFrames.push({
75
+ component,
76
+ ...frameLocation
77
+ });
78
+ }
79
+ }
80
+ return componentStackFrames;
81
+ }
82
+
83
+ //# sourceMappingURL=parse-component-stack.js.map