@sentry/wizard 3.42.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/.node-cache/node-v22.14.0-darwin-arm64 +0 -0
  2. package/.node-cache/node-v22.14.0-darwin-x64 +0 -0
  3. package/.node-cache/node-v22.14.0-linux-arm64 +0 -0
  4. package/.node-cache/node-v22.14.0-linux-x64 +0 -0
  5. package/.node-cache/node-v22.14.0-win-x64.exe +0 -0
  6. package/CHANGELOG.md +26 -0
  7. package/COPYING +3575 -0
  8. package/bin.ts +85 -80
  9. package/dist/bin.js +44 -35
  10. package/dist/bin.js.map +1 -1
  11. package/dist/e2e-tests/jest.config.js +1 -1
  12. package/dist/e2e-tests/jest.config.js.map +1 -1
  13. package/dist/e2e-tests/tests/flutter.test.js +62 -147
  14. package/dist/e2e-tests/tests/flutter.test.js.map +1 -1
  15. package/dist/e2e-tests/tests/nextjs.test.js +77 -175
  16. package/dist/e2e-tests/tests/nextjs.test.js.map +1 -1
  17. package/dist/e2e-tests/tests/nuxt-3.test.js +61 -162
  18. package/dist/e2e-tests/tests/nuxt-3.test.js.map +1 -1
  19. package/dist/e2e-tests/tests/nuxt-4.test.js +62 -163
  20. package/dist/e2e-tests/tests/nuxt-4.test.js.map +1 -1
  21. package/dist/e2e-tests/tests/remix.test.js +147 -189
  22. package/dist/e2e-tests/tests/remix.test.js.map +1 -1
  23. package/dist/e2e-tests/tests/sveltekit.test.js +133 -187
  24. package/dist/e2e-tests/tests/sveltekit.test.js.map +1 -1
  25. package/dist/e2e-tests/utils/index.d.ts +1 -1
  26. package/dist/e2e-tests/utils/index.js +113 -195
  27. package/dist/e2e-tests/utils/index.js.map +1 -1
  28. package/dist/lib/Constants.js +5 -5
  29. package/dist/lib/Constants.js.map +1 -1
  30. package/dist/lib/Helper/BottomBar.d.ts +1 -1
  31. package/dist/lib/Helper/BottomBar.js +14 -15
  32. package/dist/lib/Helper/BottomBar.js.map +1 -1
  33. package/dist/lib/Helper/Env.js +5 -2
  34. package/dist/lib/Helper/Env.js.map +1 -1
  35. package/dist/lib/Helper/File.js +14 -27
  36. package/dist/lib/Helper/File.js.map +1 -1
  37. package/dist/lib/Helper/Git.js +24 -59
  38. package/dist/lib/Helper/Git.js.map +1 -1
  39. package/dist/lib/Helper/Logging.js +2 -2
  40. package/dist/lib/Helper/Logging.js.map +1 -1
  41. package/dist/lib/Helper/MergeConfig.js +4 -4
  42. package/dist/lib/Helper/MergeConfig.js.map +1 -1
  43. package/dist/lib/Helper/Package.d.ts +4 -1
  44. package/dist/lib/Helper/Package.js +12 -38
  45. package/dist/lib/Helper/Package.js.map +1 -1
  46. package/dist/lib/Helper/SentryCli.js +77 -149
  47. package/dist/lib/Helper/SentryCli.js.map +1 -1
  48. package/dist/lib/Helper/Wizard.js +29 -124
  49. package/dist/lib/Helper/Wizard.js.map +1 -1
  50. package/dist/lib/Helper/__tests__/File.js +4 -4
  51. package/dist/lib/Helper/__tests__/File.js.map +1 -1
  52. package/dist/lib/Helper/__tests__/MergeConfig.js +24 -24
  53. package/dist/lib/Helper/__tests__/MergeConfig.js.map +1 -1
  54. package/dist/lib/Helper/__tests__/SentryCli.js +33 -23
  55. package/dist/lib/Helper/__tests__/SentryCli.js.map +1 -1
  56. package/dist/lib/Setup.js +23 -85
  57. package/dist/lib/Setup.js.map +1 -1
  58. package/dist/lib/Steps/BaseStep.js +8 -8
  59. package/dist/lib/Steps/BaseStep.js.map +1 -1
  60. package/dist/lib/Steps/ChooseIntegration.js +80 -125
  61. package/dist/lib/Steps/ChooseIntegration.js.map +1 -1
  62. package/dist/lib/Steps/ConfigureProject.js +6 -66
  63. package/dist/lib/Steps/ConfigureProject.js.map +1 -1
  64. package/dist/lib/Steps/Initial.js +16 -104
  65. package/dist/lib/Steps/Initial.js.map +1 -1
  66. package/dist/lib/Steps/Integrations/BaseIntegration.js +24 -118
  67. package/dist/lib/Steps/Integrations/BaseIntegration.js.map +1 -1
  68. package/dist/lib/Steps/Integrations/Cordova.js +95 -183
  69. package/dist/lib/Steps/Integrations/Cordova.js.map +1 -1
  70. package/dist/lib/Steps/Integrations/Electron.js +87 -145
  71. package/dist/lib/Steps/Integrations/Electron.js.map +1 -1
  72. package/dist/lib/Steps/Integrations/MobileProject.js +40 -148
  73. package/dist/lib/Steps/Integrations/MobileProject.js.map +1 -1
  74. package/dist/lib/Steps/OpenSentry.js +63 -126
  75. package/dist/lib/Steps/OpenSentry.js.map +1 -1
  76. package/dist/lib/Steps/PromptForParameters.js +110 -206
  77. package/dist/lib/Steps/PromptForParameters.js.map +1 -1
  78. package/dist/lib/Steps/Result.js +19 -79
  79. package/dist/lib/Steps/Result.js.map +1 -1
  80. package/dist/lib/Steps/SentryProjectSelector.js +57 -148
  81. package/dist/lib/Steps/SentryProjectSelector.js.map +1 -1
  82. package/dist/lib/Steps/ShouldConfigure.js +6 -66
  83. package/dist/lib/Steps/ShouldConfigure.js.map +1 -1
  84. package/dist/lib/Steps/WaitForSentry.js +43 -120
  85. package/dist/lib/Steps/WaitForSentry.js.map +1 -1
  86. package/dist/lib/Steps/Welcome.js +17 -76
  87. package/dist/lib/Steps/Welcome.js.map +1 -1
  88. package/dist/lib/__tests__/Env.js +3 -3
  89. package/dist/lib/__tests__/Env.js.map +1 -1
  90. package/dist/src/android/android-wizard.js +100 -176
  91. package/dist/src/android/android-wizard.js.map +1 -1
  92. package/dist/src/android/code-tools.js +24 -33
  93. package/dist/src/android/code-tools.js.map +1 -1
  94. package/dist/src/android/gradle.js +106 -165
  95. package/dist/src/android/gradle.js.map +1 -1
  96. package/dist/src/android/manifest.js +26 -27
  97. package/dist/src/android/manifest.js.map +1 -1
  98. package/dist/src/android/templates.js +76 -23
  99. package/dist/src/android/templates.js.map +1 -1
  100. package/dist/src/apple/apple-wizard.js +129 -225
  101. package/dist/src/apple/apple-wizard.js.map +1 -1
  102. package/dist/src/apple/cocoapod.js +47 -109
  103. package/dist/src/apple/cocoapod.js.map +1 -1
  104. package/dist/src/apple/code-tools.js +32 -35
  105. package/dist/src/apple/code-tools.js.map +1 -1
  106. package/dist/src/apple/fastlane.js +51 -97
  107. package/dist/src/apple/fastlane.js.map +1 -1
  108. package/dist/src/apple/templates.js +41 -5
  109. package/dist/src/apple/templates.js.map +1 -1
  110. package/dist/src/apple/xcode-manager.d.ts +2 -2
  111. package/dist/src/apple/xcode-manager.js +93 -108
  112. package/dist/src/apple/xcode-manager.js.map +1 -1
  113. package/dist/src/flutter/code-tools.js +79 -127
  114. package/dist/src/flutter/code-tools.js.map +1 -1
  115. package/dist/src/flutter/flutter-wizard.js +75 -136
  116. package/dist/src/flutter/flutter-wizard.js.map +1 -1
  117. package/dist/src/flutter/templates.js +48 -12
  118. package/dist/src/flutter/templates.js.map +1 -1
  119. package/dist/src/nextjs/nextjs-wizard.js +527 -805
  120. package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
  121. package/dist/src/nextjs/templates.js +380 -40
  122. package/dist/src/nextjs/templates.js.map +1 -1
  123. package/dist/src/nextjs/utils.js +5 -5
  124. package/dist/src/nextjs/utils.js.map +1 -1
  125. package/dist/src/nuxt/nuxt-wizard.js +91 -188
  126. package/dist/src/nuxt/nuxt-wizard.js.map +1 -1
  127. package/dist/src/nuxt/sdk-example.js +68 -137
  128. package/dist/src/nuxt/sdk-example.js.map +1 -1
  129. package/dist/src/nuxt/sdk-setup.d.ts +4 -4
  130. package/dist/src/nuxt/sdk-setup.js +180 -336
  131. package/dist/src/nuxt/sdk-setup.js.map +1 -1
  132. package/dist/src/nuxt/templates.js +195 -18
  133. package/dist/src/nuxt/templates.js.map +1 -1
  134. package/dist/src/nuxt/utils.js +29 -76
  135. package/dist/src/nuxt/utils.js.map +1 -1
  136. package/dist/src/react-native/expo-env-file.js +41 -94
  137. package/dist/src/react-native/expo-env-file.js.map +1 -1
  138. package/dist/src/react-native/expo-metro.d.ts +1 -1
  139. package/dist/src/react-native/expo-metro.js +75 -130
  140. package/dist/src/react-native/expo-metro.js.map +1 -1
  141. package/dist/src/react-native/expo.js +61 -114
  142. package/dist/src/react-native/expo.js.map +1 -1
  143. package/dist/src/react-native/git.js +23 -56
  144. package/dist/src/react-native/git.js.map +1 -1
  145. package/dist/src/react-native/glob.js +3 -3
  146. package/dist/src/react-native/glob.js.map +1 -1
  147. package/dist/src/react-native/gradle.js +4 -4
  148. package/dist/src/react-native/gradle.js.map +1 -1
  149. package/dist/src/react-native/javascript.js +51 -95
  150. package/dist/src/react-native/javascript.js.map +1 -1
  151. package/dist/src/react-native/metro.js +176 -296
  152. package/dist/src/react-native/metro.js.map +1 -1
  153. package/dist/src/react-native/react-native-wizard.js +267 -418
  154. package/dist/src/react-native/react-native-wizard.js.map +1 -1
  155. package/dist/src/react-native/uninstall.js +37 -80
  156. package/dist/src/react-native/uninstall.js.map +1 -1
  157. package/dist/src/react-native/xcode.js +57 -55
  158. package/dist/src/react-native/xcode.js.map +1 -1
  159. package/dist/src/remix/codemods/express-server.js +27 -82
  160. package/dist/src/remix/codemods/express-server.js.map +1 -1
  161. package/dist/src/remix/codemods/handle-error.js +28 -31
  162. package/dist/src/remix/codemods/handle-error.js.map +1 -1
  163. package/dist/src/remix/codemods/root-common.js +11 -11
  164. package/dist/src/remix/codemods/root-common.js.map +1 -1
  165. package/dist/src/remix/codemods/root-v1.js +17 -67
  166. package/dist/src/remix/codemods/root-v1.js.map +1 -1
  167. package/dist/src/remix/codemods/root-v2.js +89 -140
  168. package/dist/src/remix/codemods/root-v2.js.map +1 -1
  169. package/dist/src/remix/remix-wizard.js +181 -343
  170. package/dist/src/remix/remix-wizard.js.map +1 -1
  171. package/dist/src/remix/sdk-example.js +84 -66
  172. package/dist/src/remix/sdk-example.js.map +1 -1
  173. package/dist/src/remix/sdk-setup.js +161 -293
  174. package/dist/src/remix/sdk-setup.js.map +1 -1
  175. package/dist/src/remix/templates.js +10 -2
  176. package/dist/src/remix/templates.js.map +1 -1
  177. package/dist/src/remix/utils.js +13 -14
  178. package/dist/src/remix/utils.js.map +1 -1
  179. package/dist/src/run.js +106 -178
  180. package/dist/src/run.js.map +1 -1
  181. package/dist/src/sourcemaps/sourcemaps-wizard.js +248 -372
  182. package/dist/src/sourcemaps/sourcemaps-wizard.js.map +1 -1
  183. package/dist/src/sourcemaps/tools/angular.js +32 -66
  184. package/dist/src/sourcemaps/tools/angular.js.map +1 -1
  185. package/dist/src/sourcemaps/tools/create-react-app.js +14 -59
  186. package/dist/src/sourcemaps/tools/create-react-app.js.map +1 -1
  187. package/dist/src/sourcemaps/tools/esbuild.js +34 -77
  188. package/dist/src/sourcemaps/tools/esbuild.js.map +1 -1
  189. package/dist/src/sourcemaps/tools/nextjs.d.ts +2 -2
  190. package/dist/src/sourcemaps/tools/nextjs.js +75 -102
  191. package/dist/src/sourcemaps/tools/nextjs.js.map +1 -1
  192. package/dist/src/sourcemaps/tools/remix.js +53 -93
  193. package/dist/src/sourcemaps/tools/remix.js.map +1 -1
  194. package/dist/src/sourcemaps/tools/rollup.js +35 -76
  195. package/dist/src/sourcemaps/tools/rollup.js.map +1 -1
  196. package/dist/src/sourcemaps/tools/sentry-cli.js +157 -289
  197. package/dist/src/sourcemaps/tools/sentry-cli.js.map +1 -1
  198. package/dist/src/sourcemaps/tools/tsc.js +68 -134
  199. package/dist/src/sourcemaps/tools/tsc.js.map +1 -1
  200. package/dist/src/sourcemaps/tools/vite.js +111 -196
  201. package/dist/src/sourcemaps/tools/vite.js.map +1 -1
  202. package/dist/src/sourcemaps/tools/webpack.d.ts +1 -1
  203. package/dist/src/sourcemaps/tools/webpack.js +158 -260
  204. package/dist/src/sourcemaps/tools/webpack.js.map +1 -1
  205. package/dist/src/sourcemaps/utils/detect-tool.js +9 -54
  206. package/dist/src/sourcemaps/utils/detect-tool.js.map +1 -1
  207. package/dist/src/sourcemaps/utils/other-wizards.js +77 -144
  208. package/dist/src/sourcemaps/utils/other-wizards.js.map +1 -1
  209. package/dist/src/sourcemaps/utils/sdk-version.js +112 -191
  210. package/dist/src/sourcemaps/utils/sdk-version.js.map +1 -1
  211. package/dist/src/sveltekit/sdk-example.js +20 -70
  212. package/dist/src/sveltekit/sdk-example.js.map +1 -1
  213. package/dist/src/sveltekit/sdk-setup.js +250 -411
  214. package/dist/src/sveltekit/sdk-setup.js.map +1 -1
  215. package/dist/src/sveltekit/sveltekit-wizard.js +107 -191
  216. package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
  217. package/dist/src/sveltekit/templates.js +147 -13
  218. package/dist/src/sveltekit/templates.js.map +1 -1
  219. package/dist/src/sveltekit/utils.js +3 -3
  220. package/dist/src/sveltekit/utils.js.map +1 -1
  221. package/dist/src/telemetry.d.ts +2 -2
  222. package/dist/src/telemetry.js +58 -108
  223. package/dist/src/telemetry.js.map +1 -1
  224. package/dist/src/utils/ast-utils.js +39 -54
  225. package/dist/src/utils/ast-utils.js.map +1 -1
  226. package/dist/src/utils/bash.js +28 -75
  227. package/dist/src/utils/bash.js.map +1 -1
  228. package/dist/src/utils/clack-utils.d.ts +3 -7
  229. package/dist/src/utils/clack-utils.js +688 -1083
  230. package/dist/src/utils/clack-utils.js.map +1 -1
  231. package/dist/src/utils/debug.js +6 -10
  232. package/dist/src/utils/debug.js.map +1 -1
  233. package/dist/src/utils/package-json.js +5 -6
  234. package/dist/src/utils/package-json.js.map +1 -1
  235. package/dist/src/utils/package-manager.js +65 -139
  236. package/dist/src/utils/package-manager.js.map +1 -1
  237. package/dist/src/utils/release-registry.js +12 -59
  238. package/dist/src/utils/release-registry.js.map +1 -1
  239. package/dist/src/utils/semver.js +3 -4
  240. package/dist/src/utils/semver.js.map +1 -1
  241. package/dist/src/utils/sentrycli-utils.js +4 -4
  242. package/dist/src/utils/sentrycli-utils.js.map +1 -1
  243. package/dist/src/utils/url.js +5 -6
  244. package/dist/src/utils/url.js.map +1 -1
  245. package/dist/test/android/code-tools.test.js +18 -18
  246. package/dist/test/android/code-tools.test.js.map +1 -1
  247. package/dist/test/apple/cocoapod.test.js +154 -299
  248. package/dist/test/apple/cocoapod.test.js.map +1 -1
  249. package/dist/test/apple/code-tools.test.js +375 -263
  250. package/dist/test/apple/code-tools.test.js.map +1 -1
  251. package/dist/test/apple/fastfile.test.js +319 -271
  252. package/dist/test/apple/fastfile.test.js.map +1 -1
  253. package/dist/test/apple/templates.test.js +114 -30
  254. package/dist/test/apple/templates.test.js.map +1 -1
  255. package/dist/test/apple/xcode-manager.test.js +230 -234
  256. package/dist/test/apple/xcode-manager.test.js.map +1 -1
  257. package/dist/test/flutter/code-tools.test.js +119 -48
  258. package/dist/test/flutter/code-tools.test.js.map +1 -1
  259. package/dist/test/flutter/templates.test.js +63 -20
  260. package/dist/test/flutter/templates.test.js.map +1 -1
  261. package/dist/test/nextjs/templates.test.js +332 -43
  262. package/dist/test/nextjs/templates.test.js.map +1 -1
  263. package/dist/test/nuxt/templates.test.js +161 -33
  264. package/dist/test/nuxt/templates.test.js.map +1 -1
  265. package/dist/test/react-native/expo-metro.test.js +61 -15
  266. package/dist/test/react-native/expo-metro.test.js.map +1 -1
  267. package/dist/test/react-native/expo.test.js +37 -17
  268. package/dist/test/react-native/expo.test.js.map +1 -1
  269. package/dist/test/react-native/gradle.test.js +260 -28
  270. package/dist/test/react-native/gradle.test.js.map +1 -1
  271. package/dist/test/react-native/javascript.test.js +85 -19
  272. package/dist/test/react-native/javascript.test.js.map +1 -1
  273. package/dist/test/react-native/metro.test.js +261 -187
  274. package/dist/test/react-native/metro.test.js.map +1 -1
  275. package/dist/test/react-native/xcode.test.js +243 -62
  276. package/dist/test/react-native/xcode.test.js.map +1 -1
  277. package/dist/test/remix/client-entry.test.js +81 -21
  278. package/dist/test/remix/client-entry.test.js.map +1 -1
  279. package/dist/test/remix/server-instrumentation.test.js +21 -8
  280. package/dist/test/remix/server-instrumentation.test.js.map +1 -1
  281. package/dist/test/sourcemaps/tools/sentry-cli.test.js +20 -72
  282. package/dist/test/sourcemaps/tools/sentry-cli.test.js.map +1 -1
  283. package/dist/test/sourcemaps/tools/tsc.test.js +142 -68
  284. package/dist/test/sourcemaps/tools/tsc.test.js.map +1 -1
  285. package/dist/test/sourcemaps/tools/vite.test.js +106 -75
  286. package/dist/test/sourcemaps/tools/vite.test.js.map +1 -1
  287. package/dist/test/sourcemaps/tools/webpack.test.js +226 -102
  288. package/dist/test/sourcemaps/tools/webpack.test.js.map +1 -1
  289. package/dist/test/sveltekit/templates.test.js +117 -18
  290. package/dist/test/sveltekit/templates.test.js.map +1 -1
  291. package/dist/test/utils/ast-utils.test.js +99 -58
  292. package/dist/test/utils/ast-utils.test.js.map +1 -1
  293. package/dist/test/utils/clack-utils.test.js +142 -247
  294. package/dist/test/utils/clack-utils.test.js.map +1 -1
  295. package/e2e-tests/package.json +1 -1
  296. package/e2e-tests/tests/flutter.test.ts +20 -20
  297. package/e2e-tests/tests/nextjs.test.ts +2 -2
  298. package/e2e-tests/tests/nuxt-3.test.ts +4 -4
  299. package/e2e-tests/tests/nuxt-4.test.ts +3 -3
  300. package/e2e-tests/tests/remix.test.ts +3 -3
  301. package/e2e-tests/tests/sveltekit.test.ts +3 -3
  302. package/e2e-tests/utils/index.ts +33 -15
  303. package/lib/Helper/BottomBar.ts +1 -1
  304. package/lib/Helper/Env.ts +1 -1
  305. package/lib/Helper/Package.ts +12 -10
  306. package/lib/Helper/SentryCli.ts +18 -27
  307. package/lib/Helper/Wizard.ts +1 -2
  308. package/lib/Setup.ts +4 -5
  309. package/lib/Steps/ChooseIntegration.ts +40 -8
  310. package/lib/Steps/Initial.ts +17 -26
  311. package/lib/Steps/Integrations/BaseIntegration.ts +2 -8
  312. package/lib/Steps/Integrations/Cordova.ts +9 -15
  313. package/lib/Steps/Integrations/Electron.ts +23 -20
  314. package/lib/Steps/Integrations/MobileProject.ts +18 -15
  315. package/lib/Steps/OpenSentry.ts +12 -7
  316. package/lib/Steps/PromptForParameters.ts +12 -19
  317. package/lib/Steps/SentryProjectSelector.ts +30 -29
  318. package/lib/Steps/WaitForSentry.ts +29 -23
  319. package/package.json +12 -8
  320. package/src/apple/xcode-manager.ts +10 -10
  321. package/src/nextjs/templates.ts +2 -3
  322. package/src/nuxt/sdk-setup.ts +21 -18
  323. package/src/react-native/expo-metro.ts +2 -2
  324. package/src/react-native/react-native-wizard.ts +1 -2
  325. package/src/react-native/uninstall.ts +1 -2
  326. package/src/react-native/xcode.ts +1 -1
  327. package/src/run.ts +12 -5
  328. package/src/sourcemaps/tools/nextjs.ts +2 -2
  329. package/src/sourcemaps/tools/webpack.ts +3 -3
  330. package/src/telemetry.ts +27 -7
  331. package/src/utils/clack-utils.ts +50 -47
  332. package/test/apple/cocoapod.test.ts +4 -0
  333. package/test/apple/fastfile.test.ts +12 -7
  334. package/test/apple/xcode-manager.test.ts +13 -11
  335. package/test/utils/clack-utils.test.ts +40 -50
  336. package/types/read-env.d.ts +3 -0
  337. package/types/xcode.d.ts +1 -0
  338. package/dist/package.json +0 -128
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,74 +22,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
22
  __setModuleDefault(result, mod);
34
23
  return result;
35
24
  };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
- if (ar || !(i in from)) {
75
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
- ar[i] = from[i];
77
- }
78
- }
79
- return to.concat(ar || Array.prototype.slice.call(from));
80
- };
81
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
82
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
83
27
  };
84
28
  Object.defineProperty(exports, "__esModule", { value: true });
85
29
  exports.confirmReadImportDocs = exports.addNuxtOverrides = exports.createConfigFiles = exports.addSDKModule = exports.askDeploymentPlatform = exports.getNuxtConfig = void 0;
30
+ const node_fs_1 = __importDefault(require("node:fs"));
31
+ const node_path_1 = __importDefault(require("node:path"));
86
32
  // @ts-expect-error - clack is ESM and TS complains about that. It works though
87
- var clack = __importStar(require("@clack/prompts"));
88
- var Sentry = __importStar(require("@sentry/node"));
89
- var chalk_1 = __importDefault(require("chalk"));
90
- var fs_1 = __importDefault(require("fs"));
33
+ const clack = __importStar(require("@clack/prompts"));
34
+ const Sentry = __importStar(require("@sentry/node"));
35
+ const chalk_1 = __importDefault(require("chalk"));
91
36
  // @ts-expect-error - magicast is ESM and TS complains about that. It works though
92
- var magicast_1 = require("magicast");
37
+ const magicast_1 = require("magicast");
93
38
  // @ts-expect-error - magicast is ESM and TS complains about that. It works though
94
- var helpers_1 = require("magicast/helpers");
95
- var path_1 = __importDefault(require("path"));
96
- var templates_1 = require("./templates");
97
- var clack_utils_1 = require("../utils/clack-utils");
98
- var telemetry_1 = require("../telemetry");
99
- var semver_1 = require("semver");
100
- var package_manager_1 = require("../utils/package-manager");
101
- var package_json_1 = require("../utils/package-json");
102
- var types_1 = require("./types");
103
- var possibleNuxtConfig = [
39
+ const helpers_1 = require("magicast/helpers");
40
+ const opn_1 = __importDefault(require("opn"));
41
+ const semver_1 = require("semver");
42
+ const telemetry_1 = require("../telemetry");
43
+ const clack_utils_1 = require("../utils/clack-utils");
44
+ const package_json_1 = require("../utils/package-json");
45
+ const package_manager_1 = require("../utils/package-manager");
46
+ const templates_1 = require("./templates");
47
+ const types_1 = require("./types");
48
+ const possibleNuxtConfig = [
104
49
  'nuxt.config.js',
105
50
  'nuxt.config.mjs',
106
51
  'nuxt.config.cjs',
@@ -108,284 +53,183 @@ var possibleNuxtConfig = [
108
53
  'nuxt.config.mts',
109
54
  'nuxt.config.cts',
110
55
  ];
111
- function getNuxtConfig() {
112
- return __awaiter(this, void 0, void 0, function () {
113
- var configFile;
114
- return __generator(this, function (_a) {
115
- switch (_a.label) {
116
- case 0:
117
- configFile = possibleNuxtConfig.find(function (fileName) {
118
- return fs_1.default.existsSync(path_1.default.join(process.cwd(), fileName));
119
- });
120
- if (!!configFile) return [3 /*break*/, 2];
121
- clack.log.info('No Nuxt config file found, creating a new one.');
122
- Sentry.setTag('nuxt-config-strategy', 'create');
123
- // nuxt recommends its config to be .ts by default
124
- configFile = 'nuxt.config.ts';
125
- return [4 /*yield*/, fs_1.default.promises.writeFile(path_1.default.join(process.cwd(), configFile), (0, templates_1.getDefaultNuxtConfig)(), { encoding: 'utf-8', flag: 'w' })];
126
- case 1:
127
- _a.sent();
128
- clack.log.success("Created ".concat(chalk_1.default.cyan('nuxt.config.ts'), "."));
129
- _a.label = 2;
130
- case 2: return [2 /*return*/, path_1.default.join(process.cwd(), configFile)];
131
- }
132
- });
133
- });
56
+ async function getNuxtConfig() {
57
+ let configFile = possibleNuxtConfig.find((fileName) => node_fs_1.default.existsSync(node_path_1.default.join(process.cwd(), fileName)));
58
+ if (!configFile) {
59
+ clack.log.info('No Nuxt config file found, creating a new one.');
60
+ Sentry.setTag('nuxt-config-strategy', 'create');
61
+ // nuxt recommends its config to be .ts by default
62
+ configFile = 'nuxt.config.ts';
63
+ await node_fs_1.default.promises.writeFile(node_path_1.default.join(process.cwd(), configFile), (0, templates_1.getDefaultNuxtConfig)(), { encoding: 'utf-8', flag: 'w' });
64
+ clack.log.success(`Created ${chalk_1.default.cyan('nuxt.config.ts')}.`);
65
+ }
66
+ return node_path_1.default.join(process.cwd(), configFile);
134
67
  }
135
68
  exports.getNuxtConfig = getNuxtConfig;
136
- function askDeploymentPlatform() {
137
- return __awaiter(this, void 0, void 0, function () {
138
- return __generator(this, function (_a) {
139
- switch (_a.label) {
140
- case 0: return [4 /*yield*/, (0, clack_utils_1.abortIfCancelled)(clack.select({
141
- message: 'Please select your deployment platform.',
142
- options: types_1.deploymentPlatforms.map(function (platform) { return ({
143
- value: platform,
144
- label: "".concat(platform.charAt(0).toUpperCase()).concat(platform.slice(1)),
145
- }); }),
146
- }))];
147
- case 1: return [2 /*return*/, _a.sent()];
148
- }
149
- });
150
- });
69
+ async function askDeploymentPlatform() {
70
+ return await (0, clack_utils_1.abortIfCancelled)(clack.select({
71
+ message: 'Please select your deployment platform.',
72
+ options: types_1.deploymentPlatforms.map((platform) => ({
73
+ value: platform,
74
+ label: `${platform.charAt(0).toUpperCase()}${platform.slice(1)}`,
75
+ })),
76
+ }));
151
77
  }
152
78
  exports.askDeploymentPlatform = askDeploymentPlatform;
153
- function addSDKModule(config, options, deploymentPlatform) {
154
- return __awaiter(this, void 0, void 0, function () {
155
- var shouldTopLevelImport, mod, code, e_1;
156
- return __generator(this, function (_a) {
157
- switch (_a.label) {
158
- case 0:
159
- shouldTopLevelImport = deploymentPlatform === 'vercel' || deploymentPlatform === 'netlify';
160
- if (shouldTopLevelImport) {
161
- clack.log.warn("Sentry needs to be initialized before the application starts. ".concat(chalk_1.default.cyan("".concat(deploymentPlatform
162
- .charAt(0)
163
- .toUpperCase()).concat(deploymentPlatform.slice(1))), " does not support this yet.\n\nWe will inject the Sentry server-side config at the top of your Nuxt server entry file instead.\n\nThis comes with some restrictions, for more info see:\n\n").concat(chalk_1.default.underline('https://docs.sentry.io/platforms/javascript/guides/nuxt/install/top-level-import/'), " "));
164
- }
165
- _a.label = 1;
166
- case 1:
167
- _a.trys.push([1, 4, , 5]);
168
- return [4 /*yield*/, (0, magicast_1.loadFile)(config)];
169
- case 2:
170
- mod = _a.sent();
171
- (0, helpers_1.addNuxtModule)(mod, '@sentry/nuxt/module', 'sentry', __assign({ sourceMapsUploadOptions: __assign({ org: options.org, project: options.project }, (options.selfHosted && { url: options.url })) }, (shouldTopLevelImport && {
172
- autoInjectServerSentry: 'top-level-import',
173
- })));
174
- (0, helpers_1.addNuxtModule)(mod, '@sentry/nuxt/module', 'sourcemap', {
175
- client: 'hidden',
176
- });
177
- code = (0, magicast_1.generateCode)(mod).code;
178
- return [4 /*yield*/, fs_1.default.promises.writeFile(config, code, { encoding: 'utf-8', flag: 'w' })];
179
- case 3:
180
- _a.sent();
181
- clack.log.success("Added Sentry Nuxt Module to ".concat(chalk_1.default.cyan(path_1.default.basename(config)), "."));
182
- return [3 /*break*/, 5];
183
- case 4:
184
- e_1 = _a.sent();
185
- clack.log.error('Error while adding the Sentry Nuxt Module to the Nuxt config.');
186
- clack.log.info(chalk_1.default.dim(typeof e_1 === 'object' && e_1 != null && 'toString' in e_1
187
- ? e_1.toString()
188
- : typeof e_1 === 'string'
189
- ? e_1
190
- : 'Unknown error'));
191
- Sentry.captureException('Error while setting up the Nuxt Module in nuxt config');
192
- clack.log.warn("Please add the following settings to ".concat(chalk_1.default.cyan(path_1.default.basename(config)), ":"));
193
- // eslint-disable-next-line no-console
194
- console.log("\n\n".concat((0, templates_1.getNuxtModuleFallbackTemplate)(options, shouldTopLevelImport), "\n\n"));
195
- return [3 /*break*/, 5];
196
- case 5: return [2 /*return*/];
197
- }
79
+ async function addSDKModule(config, options, deploymentPlatform) {
80
+ const shouldTopLevelImport = deploymentPlatform === 'vercel' || deploymentPlatform === 'netlify';
81
+ if (shouldTopLevelImport) {
82
+ clack.log.warn(`Sentry needs to be initialized before the application starts. ${chalk_1.default.cyan(`${deploymentPlatform
83
+ .charAt(0)
84
+ .toUpperCase()}${deploymentPlatform.slice(1)}`)} does not support this yet.\n\nWe will inject the Sentry server-side config at the top of your Nuxt server entry file instead.\n\nThis comes with some restrictions, for more info see:\n\n${chalk_1.default.underline('https://docs.sentry.io/platforms/javascript/guides/nuxt/install/top-level-import/')} `);
85
+ }
86
+ try {
87
+ const mod = await (0, magicast_1.loadFile)(config);
88
+ (0, helpers_1.addNuxtModule)(mod, '@sentry/nuxt/module', 'sentry', {
89
+ sourceMapsUploadOptions: {
90
+ org: options.org,
91
+ project: options.project,
92
+ ...(options.selfHosted && { url: options.url }),
93
+ },
94
+ ...(shouldTopLevelImport && {
95
+ autoInjectServerSentry: 'top-level-import',
96
+ }),
198
97
  });
199
- });
98
+ (0, helpers_1.addNuxtModule)(mod, '@sentry/nuxt/module', 'sourcemap', {
99
+ client: 'hidden',
100
+ });
101
+ const { code } = (0, magicast_1.generateCode)(mod);
102
+ await node_fs_1.default.promises.writeFile(config, code, { encoding: 'utf-8', flag: 'w' });
103
+ clack.log.success(`Added Sentry Nuxt Module to ${chalk_1.default.cyan(node_path_1.default.basename(config))}.`);
104
+ }
105
+ catch (e) {
106
+ clack.log.error('Error while adding the Sentry Nuxt Module to the Nuxt config.');
107
+ clack.log.info(chalk_1.default.dim(typeof e === 'object' && e != null && 'toString' in e
108
+ ? e.toString()
109
+ : typeof e === 'string'
110
+ ? e
111
+ : 'Unknown error'));
112
+ Sentry.captureException('Error while setting up the Nuxt Module in nuxt config');
113
+ clack.log.warn(`Please add the following settings to ${chalk_1.default.cyan(node_path_1.default.basename(config))}:`);
114
+ // eslint-disable-next-line no-console
115
+ console.log(`\n\n${(0, templates_1.getNuxtModuleFallbackTemplate)(options, shouldTopLevelImport)}\n\n`);
116
+ }
200
117
  }
201
118
  exports.addSDKModule = addSDKModule;
202
- function createConfigFiles(dsn) {
203
- return __awaiter(this, void 0, void 0, function () {
204
- var selectedFeatures, typeScriptDetected, configVariants, _loop_1, _i, configVariants_1, configVariant;
205
- var _this = this;
206
- return __generator(this, function (_a) {
207
- switch (_a.label) {
208
- case 0: return [4 /*yield*/, (0, clack_utils_1.featureSelectionPrompt)([
209
- {
210
- id: 'performance',
211
- prompt: "Do you want to enable ".concat(chalk_1.default.bold('Tracing'), " to track the performance of your application?"),
212
- enabledHint: 'recommended',
213
- },
214
- {
215
- id: 'replay',
216
- prompt: "Do you want to enable ".concat(chalk_1.default.bold('Sentry Session Replay'), " to get a video-like reproduction of errors during a user session?"),
217
- enabledHint: 'recommended, but increases bundle size',
218
- },
219
- ])];
220
- case 1:
221
- selectedFeatures = _a.sent();
222
- typeScriptDetected = (0, clack_utils_1.isUsingTypeScript)();
223
- configVariants = ['server', 'client'];
224
- _loop_1 = function (configVariant) {
225
- return __generator(this, function (_b) {
226
- switch (_b.label) {
227
- case 0: return [4 /*yield*/, (0, telemetry_1.traceStep)("create-sentry-".concat(configVariant, "-config"), function () { return __awaiter(_this, void 0, void 0, function () {
228
- var jsConfig, tsConfig, jsConfigExists, tsConfigExists, shouldWriteFile, existingConfigs, overwriteExistingConfigs;
229
- return __generator(this, function (_a) {
230
- switch (_a.label) {
231
- case 0:
232
- jsConfig = "sentry.".concat(configVariant, ".config.js");
233
- tsConfig = "sentry.".concat(configVariant, ".config.ts");
234
- jsConfigExists = fs_1.default.existsSync(path_1.default.join(process.cwd(), jsConfig));
235
- tsConfigExists = fs_1.default.existsSync(path_1.default.join(process.cwd(), tsConfig));
236
- shouldWriteFile = true;
237
- if (!(jsConfigExists || tsConfigExists)) return [3 /*break*/, 2];
238
- existingConfigs = [];
239
- if (jsConfigExists) {
240
- existingConfigs.push(jsConfig);
241
- }
242
- if (tsConfigExists) {
243
- existingConfigs.push(tsConfig);
244
- }
245
- return [4 /*yield*/, (0, clack_utils_1.abortIfCancelled)(clack.confirm({
246
- message: "Found existing Sentry ".concat(configVariant, " config (").concat(existingConfigs.join(', '), "). Overwrite ").concat(existingConfigs.length > 1 ? 'them' : 'it', "?"),
247
- }))];
248
- case 1:
249
- overwriteExistingConfigs = _a.sent();
250
- Sentry.setTag("overwrite-".concat(configVariant, "-config"), overwriteExistingConfigs);
251
- shouldWriteFile = overwriteExistingConfigs;
252
- if (overwriteExistingConfigs) {
253
- if (jsConfigExists) {
254
- fs_1.default.unlinkSync(path_1.default.join(process.cwd(), jsConfig));
255
- clack.log.warn("Removed existing ".concat(chalk_1.default.cyan(jsConfig), "."));
256
- }
257
- if (tsConfigExists) {
258
- fs_1.default.unlinkSync(path_1.default.join(process.cwd(), tsConfig));
259
- clack.log.warn("Removed existing ".concat(chalk_1.default.cyan(tsConfig), "."));
260
- }
261
- }
262
- _a.label = 2;
263
- case 2:
264
- if (!shouldWriteFile) return [3 /*break*/, 4];
265
- return [4 /*yield*/, fs_1.default.promises.writeFile(path_1.default.join(process.cwd(), typeScriptDetected ? tsConfig : jsConfig), (0, templates_1.getSentryConfigContents)(dsn, configVariant, selectedFeatures), { encoding: 'utf8', flag: 'w' })];
266
- case 3:
267
- _a.sent();
268
- clack.log.success("Created new ".concat(chalk_1.default.cyan(typeScriptDetected ? tsConfig : jsConfig), "."));
269
- Sentry.setTag("created-".concat(configVariant, "-config"), true);
270
- return [3 /*break*/, 5];
271
- case 4:
272
- clack.log.info("Okay, here are the changes your ".concat(chalk_1.default.cyan(typeScriptDetected ? tsConfig : jsConfig), " should contain:"));
273
- // eslint-disable-next-line no-console
274
- console.log('\n\n ' +
275
- (0, templates_1.getConfigBody)(dsn, configVariant, selectedFeatures) +
276
- '\n\n');
277
- _a.label = 5;
278
- case 5: return [2 /*return*/];
279
- }
280
- });
281
- }); })];
282
- case 1:
283
- _b.sent();
284
- return [2 /*return*/];
285
- }
286
- });
287
- };
288
- _i = 0, configVariants_1 = configVariants;
289
- _a.label = 2;
290
- case 2:
291
- if (!(_i < configVariants_1.length)) return [3 /*break*/, 5];
292
- configVariant = configVariants_1[_i];
293
- return [5 /*yield**/, _loop_1(configVariant)];
294
- case 3:
295
- _a.sent();
296
- _a.label = 4;
297
- case 4:
298
- _i++;
299
- return [3 /*break*/, 2];
300
- case 5: return [2 /*return*/];
119
+ async function createConfigFiles(dsn) {
120
+ const selectedFeatures = await (0, clack_utils_1.featureSelectionPrompt)([
121
+ {
122
+ id: 'performance',
123
+ prompt: `Do you want to enable ${chalk_1.default.bold('Tracing')} to track the performance of your application?`,
124
+ enabledHint: 'recommended',
125
+ },
126
+ {
127
+ id: 'replay',
128
+ prompt: `Do you want to enable ${chalk_1.default.bold('Sentry Session Replay')} to get a video-like reproduction of errors during a user session?`,
129
+ enabledHint: 'recommended, but increases bundle size',
130
+ },
131
+ ]);
132
+ const typeScriptDetected = (0, clack_utils_1.isUsingTypeScript)();
133
+ const configVariants = ['server', 'client'];
134
+ for (const configVariant of configVariants) {
135
+ await (0, telemetry_1.traceStep)(`create-sentry-${configVariant}-config`, async () => {
136
+ const jsConfig = `sentry.${configVariant}.config.js`;
137
+ const tsConfig = `sentry.${configVariant}.config.ts`;
138
+ const jsConfigExists = node_fs_1.default.existsSync(node_path_1.default.join(process.cwd(), jsConfig));
139
+ const tsConfigExists = node_fs_1.default.existsSync(node_path_1.default.join(process.cwd(), tsConfig));
140
+ let shouldWriteFile = true;
141
+ if (jsConfigExists || tsConfigExists) {
142
+ const existingConfigs = [];
143
+ if (jsConfigExists) {
144
+ existingConfigs.push(jsConfig);
145
+ }
146
+ if (tsConfigExists) {
147
+ existingConfigs.push(tsConfig);
148
+ }
149
+ const overwriteExistingConfigs = await (0, clack_utils_1.abortIfCancelled)(clack.confirm({
150
+ message: `Found existing Sentry ${configVariant} config (${existingConfigs.join(', ')}). Overwrite ${existingConfigs.length > 1 ? 'them' : 'it'}?`,
151
+ }));
152
+ Sentry.setTag(`overwrite-${configVariant}-config`, overwriteExistingConfigs);
153
+ shouldWriteFile = overwriteExistingConfigs;
154
+ if (overwriteExistingConfigs) {
155
+ if (jsConfigExists) {
156
+ node_fs_1.default.unlinkSync(node_path_1.default.join(process.cwd(), jsConfig));
157
+ clack.log.warn(`Removed existing ${chalk_1.default.cyan(jsConfig)}.`);
158
+ }
159
+ if (tsConfigExists) {
160
+ node_fs_1.default.unlinkSync(node_path_1.default.join(process.cwd(), tsConfig));
161
+ clack.log.warn(`Removed existing ${chalk_1.default.cyan(tsConfig)}.`);
162
+ }
163
+ }
164
+ }
165
+ if (shouldWriteFile) {
166
+ await node_fs_1.default.promises.writeFile(node_path_1.default.join(process.cwd(), typeScriptDetected ? tsConfig : jsConfig), (0, templates_1.getSentryConfigContents)(dsn, configVariant, selectedFeatures), { encoding: 'utf8', flag: 'w' });
167
+ clack.log.success(`Created new ${chalk_1.default.cyan(typeScriptDetected ? tsConfig : jsConfig)}.`);
168
+ Sentry.setTag(`created-${configVariant}-config`, true);
169
+ }
170
+ else {
171
+ clack.log.info(`Okay, here are the changes your ${chalk_1.default.cyan(typeScriptDetected ? tsConfig : jsConfig)} should contain:`);
172
+ // eslint-disable-next-line no-console
173
+ console.log('\n\n ' +
174
+ (0, templates_1.getConfigBody)(dsn, configVariant, selectedFeatures) +
175
+ '\n\n');
301
176
  }
302
177
  });
303
- });
178
+ }
304
179
  }
305
180
  exports.createConfigFiles = createConfigFiles;
306
- function addNuxtOverrides(packageJson, packageManager, nuxtMinVer, forceInstall) {
307
- return __awaiter(this, void 0, void 0, function () {
308
- var isPNPM, overrides, _i, overrides_1, _a, pkgName, pkgVersion, shouldAddOverride, iitmAlreadyInstalled, shouldInstallIitm;
309
- return __generator(this, function (_b) {
310
- switch (_b.label) {
311
- case 0:
312
- isPNPM = package_manager_1.PNPM.detect();
313
- overrides = __spreadArray([
314
- {
315
- pkgName: '@vercel/nft',
316
- pkgVersion: '^0.27.4',
317
- }
318
- ], (nuxtMinVer && (0, semver_1.lt)(nuxtMinVer, '3.14.0')
319
- ? [{ pkgName: 'ofetch', pkgVersion: '^1.4.0' }]
320
- : []), true);
321
- clack.log.warn("To ensure Sentry can properly instrument your code it needs to add version overrides for some Nuxt dependencies".concat(isPNPM ? " and install ".concat(chalk_1.default.cyan('import-in-the-middle'), ".") : '.', "\n\nFor more info see: ").concat(chalk_1.default.underline('https://github.com/getsentry/sentry-javascript/issues/14514')).concat(isPNPM
322
- ? "\n\nand ".concat(chalk_1.default.underline('https://docs.sentry.io/platforms/javascript/guides/nuxt/troubleshooting/#pnpm-dev-cannot-find-package-import-in-the-middle'))
323
- : ''));
324
- _i = 0, overrides_1 = overrides;
325
- _b.label = 1;
326
- case 1:
327
- if (!(_i < overrides_1.length)) return [3 /*break*/, 5];
328
- _a = overrides_1[_i], pkgName = _a.pkgName, pkgVersion = _a.pkgVersion;
329
- return [4 /*yield*/, (0, clack_utils_1.askShouldAddPackageOverride)(pkgName, pkgVersion)];
330
- case 2:
331
- shouldAddOverride = _b.sent();
332
- if (!shouldAddOverride) return [3 /*break*/, 4];
333
- return [4 /*yield*/, packageManager.addOverride(pkgName, pkgVersion)];
334
- case 3:
335
- _b.sent();
336
- _b.label = 4;
337
- case 4:
338
- _i++;
339
- return [3 /*break*/, 1];
340
- case 5:
341
- if (!package_manager_1.PNPM.detect()) return [3 /*break*/, 8];
342
- iitmAlreadyInstalled = (0, package_json_1.hasPackageInstalled)('import-in-the-middle', packageJson);
343
- Sentry.setTag('iitm-already-installed', iitmAlreadyInstalled);
344
- return [4 /*yield*/, (0, clack_utils_1.askShouldInstallPackage)('import-in-the-middle')];
345
- case 6:
346
- shouldInstallIitm = _b.sent();
347
- if (!shouldInstallIitm) return [3 /*break*/, 8];
348
- return [4 /*yield*/, (0, clack_utils_1.installPackage)({
349
- packageName: 'import-in-the-middle',
350
- alreadyInstalled: iitmAlreadyInstalled,
351
- packageManager: packageManager,
352
- forceInstall: forceInstall,
353
- })];
354
- case 7:
355
- _b.sent();
356
- _b.label = 8;
357
- case 8: return [2 /*return*/];
358
- }
359
- });
360
- });
181
+ async function addNuxtOverrides(packageJson, packageManager, nuxtMinVer, forceInstall) {
182
+ const isPNPM = package_manager_1.PNPM.detect();
183
+ const overrides = [
184
+ {
185
+ pkgName: '@vercel/nft',
186
+ pkgVersion: '^0.27.4',
187
+ },
188
+ ...(nuxtMinVer && (0, semver_1.lt)(nuxtMinVer, '3.14.0')
189
+ ? [{ pkgName: 'ofetch', pkgVersion: '^1.4.0' }]
190
+ : []),
191
+ ];
192
+ clack.log.warn(`To ensure Sentry can properly instrument your code it needs to add version overrides for some Nuxt dependencies${isPNPM ? ` and install ${chalk_1.default.cyan('import-in-the-middle')}.` : '.'}\n\nFor more info see: ${chalk_1.default.underline('https://github.com/getsentry/sentry-javascript/issues/14514')}${isPNPM
193
+ ? `\n\nand ${chalk_1.default.underline('https://docs.sentry.io/platforms/javascript/guides/nuxt/troubleshooting/#pnpm-dev-cannot-find-package-import-in-the-middle')}`
194
+ : ''}`);
195
+ for (const { pkgName, pkgVersion } of overrides) {
196
+ const shouldAddOverride = await (0, clack_utils_1.askShouldAddPackageOverride)(pkgName, pkgVersion);
197
+ if (shouldAddOverride) {
198
+ await packageManager.addOverride(pkgName, pkgVersion);
199
+ }
200
+ }
201
+ if (package_manager_1.PNPM.detect()) {
202
+ // For pnpm, we want to install iitm
203
+ // See: https://docs.sentry.io/platforms/javascript/guides/nuxt/troubleshooting/#pnpm-dev-cannot-find-package-import-in-the-middle
204
+ const iitmAlreadyInstalled = (0, package_json_1.hasPackageInstalled)('import-in-the-middle', packageJson);
205
+ Sentry.setTag('iitm-already-installed', iitmAlreadyInstalled);
206
+ const shouldInstallIitm = await (0, clack_utils_1.askShouldInstallPackage)('import-in-the-middle');
207
+ if (shouldInstallIitm) {
208
+ await (0, clack_utils_1.installPackage)({
209
+ packageName: 'import-in-the-middle',
210
+ alreadyInstalled: iitmAlreadyInstalled,
211
+ packageManager,
212
+ forceInstall,
213
+ });
214
+ }
215
+ }
361
216
  }
362
217
  exports.addNuxtOverrides = addNuxtOverrides;
363
- function confirmReadImportDocs(deploymentPlatform) {
364
- return __awaiter(this, void 0, void 0, function () {
365
- var canImportSentryServerConfigFile, docsUrl, shouldOpenDocs;
366
- return __generator(this, function (_a) {
367
- switch (_a.label) {
368
- case 0:
369
- canImportSentryServerConfigFile = deploymentPlatform !== 'vercel' && deploymentPlatform !== 'netlify';
370
- if (!canImportSentryServerConfigFile) {
371
- // Nothing to do, users have been set up with automatic top-level-import instead
372
- return [2 /*return*/];
373
- }
374
- docsUrl = 'https://docs.sentry.io/platforms/javascript/guides/nuxt/install/cli-import/#initializing-sentry-with---import';
375
- clack.log.info("After building your Nuxt app, you need to ".concat(chalk_1.default.bold('--import'), " the Sentry server config file when running your app.\n\nFor more info, see:\n\n").concat(chalk_1.default.underline(docsUrl)));
376
- return [4 /*yield*/, (0, clack_utils_1.abortIfCancelled)(clack.confirm({ message: 'Do you want to open the docs?' }))];
377
- case 1:
378
- shouldOpenDocs = _a.sent();
379
- Sentry.setTag('init-with-import-docs-opened', shouldOpenDocs);
380
- if (shouldOpenDocs) {
381
- (0, clack_utils_1.opn)(docsUrl, { wait: false }).catch(function () {
382
- // opn throws in environments that don't have a browser (e.g. remote shells) so we just noop here
383
- });
384
- }
385
- return [2 /*return*/];
386
- }
387
- });
388
- });
218
+ async function confirmReadImportDocs(deploymentPlatform) {
219
+ const canImportSentryServerConfigFile = deploymentPlatform !== 'vercel' && deploymentPlatform !== 'netlify';
220
+ if (!canImportSentryServerConfigFile) {
221
+ // Nothing to do, users have been set up with automatic top-level-import instead
222
+ return;
223
+ }
224
+ const docsUrl = 'https://docs.sentry.io/platforms/javascript/guides/nuxt/install/cli-import/#initializing-sentry-with---import';
225
+ clack.log.info(`After building your Nuxt app, you need to ${chalk_1.default.bold('--import')} the Sentry server config file when running your app.\n\nFor more info, see:\n\n${chalk_1.default.underline(docsUrl)}`);
226
+ const shouldOpenDocs = await (0, clack_utils_1.abortIfCancelled)(clack.confirm({ message: 'Do you want to open the docs?' }));
227
+ Sentry.setTag('init-with-import-docs-opened', shouldOpenDocs);
228
+ if (shouldOpenDocs) {
229
+ // opn throws in environments that don't have a browser (e.g. remote shells) so we just noop here
230
+ const noop = () => { }; // eslint-disable-line @typescript-eslint/no-empty-function
231
+ (0, opn_1.default)(docsUrl, { wait: false }).then((cp) => cp.on('error', noop), noop);
232
+ }
389
233
  }
390
234
  exports.confirmReadImportDocs = confirmReadImportDocs;
391
235
  //# sourceMappingURL=sdk-setup.js.map