@sentry/wizard 3.42.1 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/bin.js +44 -35
- package/dist/bin.js.map +1 -1
- package/dist/e2e-tests/jest.config.js +1 -1
- package/dist/e2e-tests/jest.config.js.map +1 -1
- package/dist/e2e-tests/tests/flutter.test.js +62 -147
- package/dist/e2e-tests/tests/flutter.test.js.map +1 -1
- package/dist/e2e-tests/tests/nextjs.test.js +77 -175
- package/dist/e2e-tests/tests/nextjs.test.js.map +1 -1
- package/dist/e2e-tests/tests/nuxt-3.test.js +61 -162
- package/dist/e2e-tests/tests/nuxt-3.test.js.map +1 -1
- package/dist/e2e-tests/tests/nuxt-4.test.js +62 -163
- package/dist/e2e-tests/tests/nuxt-4.test.js.map +1 -1
- package/dist/e2e-tests/tests/remix.test.js +147 -189
- package/dist/e2e-tests/tests/remix.test.js.map +1 -1
- package/dist/e2e-tests/tests/sveltekit.test.js +133 -187
- package/dist/e2e-tests/tests/sveltekit.test.js.map +1 -1
- package/dist/e2e-tests/utils/index.d.ts +1 -1
- package/dist/e2e-tests/utils/index.js +113 -195
- package/dist/e2e-tests/utils/index.js.map +1 -1
- package/dist/lib/Constants.js +5 -5
- package/dist/lib/Constants.js.map +1 -1
- package/dist/lib/Helper/BottomBar.d.ts +1 -1
- package/dist/lib/Helper/BottomBar.js +14 -15
- package/dist/lib/Helper/BottomBar.js.map +1 -1
- package/dist/lib/Helper/Env.js +5 -2
- package/dist/lib/Helper/Env.js.map +1 -1
- package/dist/lib/Helper/File.js +14 -27
- package/dist/lib/Helper/File.js.map +1 -1
- package/dist/lib/Helper/Git.js +24 -59
- package/dist/lib/Helper/Git.js.map +1 -1
- package/dist/lib/Helper/Logging.js +2 -2
- package/dist/lib/Helper/Logging.js.map +1 -1
- package/dist/lib/Helper/MergeConfig.js +4 -4
- package/dist/lib/Helper/MergeConfig.js.map +1 -1
- package/dist/lib/Helper/Package.d.ts +4 -1
- package/dist/lib/Helper/Package.js +12 -38
- package/dist/lib/Helper/Package.js.map +1 -1
- package/dist/lib/Helper/SentryCli.js +77 -149
- package/dist/lib/Helper/SentryCli.js.map +1 -1
- package/dist/lib/Helper/Wizard.js +29 -124
- package/dist/lib/Helper/Wizard.js.map +1 -1
- package/dist/lib/Helper/__tests__/File.js +4 -4
- package/dist/lib/Helper/__tests__/File.js.map +1 -1
- package/dist/lib/Helper/__tests__/MergeConfig.js +24 -24
- package/dist/lib/Helper/__tests__/MergeConfig.js.map +1 -1
- package/dist/lib/Helper/__tests__/SentryCli.js +33 -23
- package/dist/lib/Helper/__tests__/SentryCli.js.map +1 -1
- package/dist/lib/Setup.js +23 -85
- package/dist/lib/Setup.js.map +1 -1
- package/dist/lib/Steps/BaseStep.js +8 -8
- package/dist/lib/Steps/BaseStep.js.map +1 -1
- package/dist/lib/Steps/ChooseIntegration.js +80 -125
- package/dist/lib/Steps/ChooseIntegration.js.map +1 -1
- package/dist/lib/Steps/ConfigureProject.js +6 -66
- package/dist/lib/Steps/ConfigureProject.js.map +1 -1
- package/dist/lib/Steps/Initial.js +16 -104
- package/dist/lib/Steps/Initial.js.map +1 -1
- package/dist/lib/Steps/Integrations/BaseIntegration.js +24 -118
- package/dist/lib/Steps/Integrations/BaseIntegration.js.map +1 -1
- package/dist/lib/Steps/Integrations/Cordova.js +95 -183
- package/dist/lib/Steps/Integrations/Cordova.js.map +1 -1
- package/dist/lib/Steps/Integrations/Electron.js +87 -145
- package/dist/lib/Steps/Integrations/Electron.js.map +1 -1
- package/dist/lib/Steps/Integrations/MobileProject.js +40 -148
- package/dist/lib/Steps/Integrations/MobileProject.js.map +1 -1
- package/dist/lib/Steps/OpenSentry.js +63 -126
- package/dist/lib/Steps/OpenSentry.js.map +1 -1
- package/dist/lib/Steps/PromptForParameters.js +110 -206
- package/dist/lib/Steps/PromptForParameters.js.map +1 -1
- package/dist/lib/Steps/Result.js +19 -79
- package/dist/lib/Steps/Result.js.map +1 -1
- package/dist/lib/Steps/SentryProjectSelector.js +57 -148
- package/dist/lib/Steps/SentryProjectSelector.js.map +1 -1
- package/dist/lib/Steps/ShouldConfigure.js +6 -66
- package/dist/lib/Steps/ShouldConfigure.js.map +1 -1
- package/dist/lib/Steps/WaitForSentry.js +43 -120
- package/dist/lib/Steps/WaitForSentry.js.map +1 -1
- package/dist/lib/Steps/Welcome.js +17 -76
- package/dist/lib/Steps/Welcome.js.map +1 -1
- package/dist/lib/__tests__/Env.js +3 -3
- package/dist/lib/__tests__/Env.js.map +1 -1
- package/dist/src/android/android-wizard.js +100 -176
- package/dist/src/android/android-wizard.js.map +1 -1
- package/dist/src/android/code-tools.js +24 -33
- package/dist/src/android/code-tools.js.map +1 -1
- package/dist/src/android/gradle.js +106 -165
- package/dist/src/android/gradle.js.map +1 -1
- package/dist/src/android/manifest.js +26 -27
- package/dist/src/android/manifest.js.map +1 -1
- package/dist/src/android/templates.js +76 -23
- package/dist/src/android/templates.js.map +1 -1
- package/dist/src/apple/apple-wizard.js +129 -225
- package/dist/src/apple/apple-wizard.js.map +1 -1
- package/dist/src/apple/cocoapod.js +47 -109
- package/dist/src/apple/cocoapod.js.map +1 -1
- package/dist/src/apple/code-tools.js +32 -35
- package/dist/src/apple/code-tools.js.map +1 -1
- package/dist/src/apple/fastlane.js +51 -97
- package/dist/src/apple/fastlane.js.map +1 -1
- package/dist/src/apple/templates.js +41 -5
- package/dist/src/apple/templates.js.map +1 -1
- package/dist/src/apple/xcode-manager.d.ts +2 -2
- package/dist/src/apple/xcode-manager.js +93 -108
- package/dist/src/apple/xcode-manager.js.map +1 -1
- package/dist/src/flutter/code-tools.js +79 -127
- package/dist/src/flutter/code-tools.js.map +1 -1
- package/dist/src/flutter/flutter-wizard.js +75 -136
- package/dist/src/flutter/flutter-wizard.js.map +1 -1
- package/dist/src/flutter/templates.js +48 -12
- package/dist/src/flutter/templates.js.map +1 -1
- package/dist/src/nextjs/nextjs-wizard.js +527 -805
- package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
- package/dist/src/nextjs/templates.js +380 -40
- package/dist/src/nextjs/templates.js.map +1 -1
- package/dist/src/nextjs/utils.js +5 -5
- package/dist/src/nextjs/utils.js.map +1 -1
- package/dist/src/nuxt/nuxt-wizard.js +91 -188
- package/dist/src/nuxt/nuxt-wizard.js.map +1 -1
- package/dist/src/nuxt/sdk-example.js +68 -137
- package/dist/src/nuxt/sdk-example.js.map +1 -1
- package/dist/src/nuxt/sdk-setup.d.ts +4 -4
- package/dist/src/nuxt/sdk-setup.js +180 -336
- package/dist/src/nuxt/sdk-setup.js.map +1 -1
- package/dist/src/nuxt/templates.js +195 -18
- package/dist/src/nuxt/templates.js.map +1 -1
- package/dist/src/nuxt/utils.js +29 -76
- package/dist/src/nuxt/utils.js.map +1 -1
- package/dist/src/react-native/expo-env-file.js +41 -94
- package/dist/src/react-native/expo-env-file.js.map +1 -1
- package/dist/src/react-native/expo-metro.d.ts +1 -1
- package/dist/src/react-native/expo-metro.js +75 -130
- package/dist/src/react-native/expo-metro.js.map +1 -1
- package/dist/src/react-native/expo.js +61 -114
- package/dist/src/react-native/expo.js.map +1 -1
- package/dist/src/react-native/git.js +23 -56
- package/dist/src/react-native/git.js.map +1 -1
- package/dist/src/react-native/glob.js +3 -3
- package/dist/src/react-native/glob.js.map +1 -1
- package/dist/src/react-native/gradle.js +4 -4
- package/dist/src/react-native/gradle.js.map +1 -1
- package/dist/src/react-native/javascript.js +51 -95
- package/dist/src/react-native/javascript.js.map +1 -1
- package/dist/src/react-native/metro.js +176 -296
- package/dist/src/react-native/metro.js.map +1 -1
- package/dist/src/react-native/react-native-wizard.js +267 -418
- package/dist/src/react-native/react-native-wizard.js.map +1 -1
- package/dist/src/react-native/uninstall.js +37 -80
- package/dist/src/react-native/uninstall.js.map +1 -1
- package/dist/src/react-native/xcode.js +57 -55
- package/dist/src/react-native/xcode.js.map +1 -1
- package/dist/src/remix/codemods/express-server.js +27 -82
- package/dist/src/remix/codemods/express-server.js.map +1 -1
- package/dist/src/remix/codemods/handle-error.js +28 -31
- package/dist/src/remix/codemods/handle-error.js.map +1 -1
- package/dist/src/remix/codemods/root-common.js +11 -11
- package/dist/src/remix/codemods/root-common.js.map +1 -1
- package/dist/src/remix/codemods/root-v1.js +17 -67
- package/dist/src/remix/codemods/root-v1.js.map +1 -1
- package/dist/src/remix/codemods/root-v2.js +89 -140
- package/dist/src/remix/codemods/root-v2.js.map +1 -1
- package/dist/src/remix/remix-wizard.js +181 -343
- package/dist/src/remix/remix-wizard.js.map +1 -1
- package/dist/src/remix/sdk-example.js +84 -66
- package/dist/src/remix/sdk-example.js.map +1 -1
- package/dist/src/remix/sdk-setup.js +161 -293
- package/dist/src/remix/sdk-setup.js.map +1 -1
- package/dist/src/remix/templates.js +10 -2
- package/dist/src/remix/templates.js.map +1 -1
- package/dist/src/remix/utils.js +13 -14
- package/dist/src/remix/utils.js.map +1 -1
- package/dist/src/run.js +106 -178
- package/dist/src/run.js.map +1 -1
- package/dist/src/sourcemaps/sourcemaps-wizard.js +248 -372
- package/dist/src/sourcemaps/sourcemaps-wizard.js.map +1 -1
- package/dist/src/sourcemaps/tools/angular.js +32 -66
- package/dist/src/sourcemaps/tools/angular.js.map +1 -1
- package/dist/src/sourcemaps/tools/create-react-app.js +14 -59
- package/dist/src/sourcemaps/tools/create-react-app.js.map +1 -1
- package/dist/src/sourcemaps/tools/esbuild.js +34 -77
- package/dist/src/sourcemaps/tools/esbuild.js.map +1 -1
- package/dist/src/sourcemaps/tools/nextjs.d.ts +2 -2
- package/dist/src/sourcemaps/tools/nextjs.js +75 -102
- package/dist/src/sourcemaps/tools/nextjs.js.map +1 -1
- package/dist/src/sourcemaps/tools/remix.js +53 -93
- package/dist/src/sourcemaps/tools/remix.js.map +1 -1
- package/dist/src/sourcemaps/tools/rollup.js +35 -76
- package/dist/src/sourcemaps/tools/rollup.js.map +1 -1
- package/dist/src/sourcemaps/tools/sentry-cli.js +157 -289
- package/dist/src/sourcemaps/tools/sentry-cli.js.map +1 -1
- package/dist/src/sourcemaps/tools/tsc.js +68 -134
- package/dist/src/sourcemaps/tools/tsc.js.map +1 -1
- package/dist/src/sourcemaps/tools/vite.js +111 -196
- package/dist/src/sourcemaps/tools/vite.js.map +1 -1
- package/dist/src/sourcemaps/tools/webpack.d.ts +1 -1
- package/dist/src/sourcemaps/tools/webpack.js +158 -260
- package/dist/src/sourcemaps/tools/webpack.js.map +1 -1
- package/dist/src/sourcemaps/utils/detect-tool.js +9 -54
- package/dist/src/sourcemaps/utils/detect-tool.js.map +1 -1
- package/dist/src/sourcemaps/utils/other-wizards.js +77 -144
- package/dist/src/sourcemaps/utils/other-wizards.js.map +1 -1
- package/dist/src/sourcemaps/utils/sdk-version.js +112 -191
- package/dist/src/sourcemaps/utils/sdk-version.js.map +1 -1
- package/dist/src/sveltekit/sdk-example.js +20 -70
- package/dist/src/sveltekit/sdk-example.js.map +1 -1
- package/dist/src/sveltekit/sdk-setup.js +250 -411
- package/dist/src/sveltekit/sdk-setup.js.map +1 -1
- package/dist/src/sveltekit/sveltekit-wizard.js +107 -191
- package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
- package/dist/src/sveltekit/templates.js +147 -13
- package/dist/src/sveltekit/templates.js.map +1 -1
- package/dist/src/sveltekit/utils.js +3 -3
- package/dist/src/sveltekit/utils.js.map +1 -1
- package/dist/src/telemetry.d.ts +2 -2
- package/dist/src/telemetry.js +58 -108
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/utils/ast-utils.js +39 -54
- package/dist/src/utils/ast-utils.js.map +1 -1
- package/dist/src/utils/bash.js +28 -75
- package/dist/src/utils/bash.js.map +1 -1
- package/dist/src/utils/clack-utils.d.ts +3 -7
- package/dist/src/utils/clack-utils.js +688 -1083
- package/dist/src/utils/clack-utils.js.map +1 -1
- package/dist/src/utils/debug.js +6 -10
- package/dist/src/utils/debug.js.map +1 -1
- package/dist/src/utils/package-json.js +5 -6
- package/dist/src/utils/package-json.js.map +1 -1
- package/dist/src/utils/package-manager.js +65 -139
- package/dist/src/utils/package-manager.js.map +1 -1
- package/dist/src/utils/release-registry.js +12 -59
- package/dist/src/utils/release-registry.js.map +1 -1
- package/dist/src/utils/semver.js +3 -4
- package/dist/src/utils/semver.js.map +1 -1
- package/dist/src/utils/sentrycli-utils.js +4 -4
- package/dist/src/utils/sentrycli-utils.js.map +1 -1
- package/dist/src/utils/url.js +5 -6
- package/dist/src/utils/url.js.map +1 -1
- package/dist/test/android/code-tools.test.js +18 -18
- package/dist/test/android/code-tools.test.js.map +1 -1
- package/dist/test/apple/cocoapod.test.js +154 -299
- package/dist/test/apple/cocoapod.test.js.map +1 -1
- package/dist/test/apple/code-tools.test.js +375 -263
- package/dist/test/apple/code-tools.test.js.map +1 -1
- package/dist/test/apple/fastfile.test.js +319 -271
- package/dist/test/apple/fastfile.test.js.map +1 -1
- package/dist/test/apple/templates.test.js +114 -30
- package/dist/test/apple/templates.test.js.map +1 -1
- package/dist/test/apple/xcode-manager.test.js +230 -234
- package/dist/test/apple/xcode-manager.test.js.map +1 -1
- package/dist/test/flutter/code-tools.test.js +119 -48
- package/dist/test/flutter/code-tools.test.js.map +1 -1
- package/dist/test/flutter/templates.test.js +63 -20
- package/dist/test/flutter/templates.test.js.map +1 -1
- package/dist/test/nextjs/templates.test.js +332 -43
- package/dist/test/nextjs/templates.test.js.map +1 -1
- package/dist/test/nuxt/templates.test.js +161 -33
- package/dist/test/nuxt/templates.test.js.map +1 -1
- package/dist/test/react-native/expo-metro.test.js +61 -15
- package/dist/test/react-native/expo-metro.test.js.map +1 -1
- package/dist/test/react-native/expo.test.js +37 -17
- package/dist/test/react-native/expo.test.js.map +1 -1
- package/dist/test/react-native/gradle.test.js +260 -28
- package/dist/test/react-native/gradle.test.js.map +1 -1
- package/dist/test/react-native/javascript.test.js +85 -19
- package/dist/test/react-native/javascript.test.js.map +1 -1
- package/dist/test/react-native/metro.test.js +261 -187
- package/dist/test/react-native/metro.test.js.map +1 -1
- package/dist/test/react-native/xcode.test.js +243 -62
- package/dist/test/react-native/xcode.test.js.map +1 -1
- package/dist/test/remix/client-entry.test.js +81 -21
- package/dist/test/remix/client-entry.test.js.map +1 -1
- package/dist/test/remix/server-instrumentation.test.js +21 -8
- package/dist/test/remix/server-instrumentation.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/sentry-cli.test.js +20 -72
- package/dist/test/sourcemaps/tools/sentry-cli.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/tsc.test.js +142 -68
- package/dist/test/sourcemaps/tools/tsc.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/vite.test.js +106 -75
- package/dist/test/sourcemaps/tools/vite.test.js.map +1 -1
- package/dist/test/sourcemaps/tools/webpack.test.js +226 -102
- package/dist/test/sourcemaps/tools/webpack.test.js.map +1 -1
- package/dist/test/sveltekit/templates.test.js +117 -18
- package/dist/test/sveltekit/templates.test.js.map +1 -1
- package/dist/test/utils/ast-utils.test.js +99 -58
- package/dist/test/utils/ast-utils.test.js.map +1 -1
- package/dist/test/utils/clack-utils.test.js +142 -247
- package/dist/test/utils/clack-utils.test.js.map +1 -1
- package/package.json +16 -9
- package/bin.ts +0 -138
- package/codecov.yml +0 -15
- package/dist/package.json +0 -128
- package/e2e-tests/.env.example +0 -11
- package/e2e-tests/README.md +0 -63
- package/e2e-tests/jest.config.ts +0 -22
- package/e2e-tests/package.json +0 -14
- package/e2e-tests/run.sh +0 -15
- package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/project.pbxproj +0 -52
- package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +0 -78
- package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/project.pbxproj +0 -62
- package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +0 -78
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/project.pbxproj +0 -470
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +0 -78
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/ContentView.swift +0 -7
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/Project1App.swift +0 -10
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/ContentView.swift +0 -7
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/Project2App.swift +0 -10
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/project.pbxproj +0 -382
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/xcshareddata/xcschemes/Project.xcscheme +0 -78
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/ContentView.swift +0 -7
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/MainApp.swift +0 -10
- package/e2e-tests/test-applications/flutter-test-app/.metadata +0 -45
- package/e2e-tests/test-applications/flutter-test-app/README.md +0 -16
- package/e2e-tests/test-applications/flutter-test-app/analysis_options.yaml +0 -28
- package/e2e-tests/test-applications/flutter-test-app/android/app/build.gradle +0 -44
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/debug/AndroidManifest.xml +0 -7
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/AndroidManifest.xml +0 -45
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/kotlin/com/example/flutter_magic/MainActivity.kt +0 -5
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/drawable/launch_background.xml +0 -12
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/drawable-v21/launch_background.xml +0 -12
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/values/styles.xml +0 -18
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/main/res/values-night/styles.xml +0 -18
- package/e2e-tests/test-applications/flutter-test-app/android/app/src/profile/AndroidManifest.xml +0 -7
- package/e2e-tests/test-applications/flutter-test-app/android/build.gradle +0 -18
- package/e2e-tests/test-applications/flutter-test-app/android/gradle/wrapper/gradle-wrapper.properties +0 -5
- package/e2e-tests/test-applications/flutter-test-app/android/gradle.properties +0 -3
- package/e2e-tests/test-applications/flutter-test-app/android/settings.gradle +0 -25
- package/e2e-tests/test-applications/flutter-test-app/lib/main.dart +0 -125
- package/e2e-tests/test-applications/flutter-test-app/linux/CMakeLists.txt +0 -145
- package/e2e-tests/test-applications/flutter-test-app/linux/flutter/CMakeLists.txt +0 -88
- package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugin_registrant.cc +0 -11
- package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugin_registrant.h +0 -15
- package/e2e-tests/test-applications/flutter-test-app/linux/flutter/generated_plugins.cmake +0 -23
- package/e2e-tests/test-applications/flutter-test-app/linux/main.cc +0 -6
- package/e2e-tests/test-applications/flutter-test-app/linux/my_application.cc +0 -124
- package/e2e-tests/test-applications/flutter-test-app/linux/my_application.h +0 -18
- package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/Flutter-Debug.xcconfig +0 -2
- package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/Flutter-Release.xcconfig +0 -2
- package/e2e-tests/test-applications/flutter-test-app/macos/Flutter/GeneratedPluginRegistrant.swift +0 -10
- package/e2e-tests/test-applications/flutter-test-app/macos/Podfile +0 -43
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/AppDelegate.swift +0 -9
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -68
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Base.lproj/MainMenu.xib +0 -343
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/AppInfo.xcconfig +0 -14
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Debug.xcconfig +0 -2
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Release.xcconfig +0 -2
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Configs/Warnings.xcconfig +0 -13
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/DebugProfile.entitlements +0 -12
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Info.plist +0 -32
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/MainFlutterWindow.swift +0 -15
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner/Release.entitlements +0 -8
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/project.pbxproj +0 -705
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +0 -98
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcworkspace/contents.xcworkspacedata +0 -7
- package/e2e-tests/test-applications/flutter-test-app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/e2e-tests/test-applications/flutter-test-app/macos/RunnerTests/RunnerTests.swift +0 -12
- package/e2e-tests/test-applications/flutter-test-app/pubspec.lock +0 -213
- package/e2e-tests/test-applications/flutter-test-app/pubspec.yaml +0 -89
- package/e2e-tests/test-applications/flutter-test-app/test/widget_test.dart +0 -30
- package/e2e-tests/test-applications/flutter-test-app/web/favicon.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-192.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-512.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-maskable-192.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/web/icons/Icon-maskable-512.png +0 -0
- package/e2e-tests/test-applications/flutter-test-app/web/index.html +0 -38
- package/e2e-tests/test-applications/flutter-test-app/web/manifest.json +0 -35
- package/e2e-tests/test-applications/flutter-test-app/windows/CMakeLists.txt +0 -108
- package/e2e-tests/test-applications/flutter-test-app/windows/flutter/CMakeLists.txt +0 -109
- package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugin_registrant.cc +0 -11
- package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugin_registrant.h +0 -15
- package/e2e-tests/test-applications/flutter-test-app/windows/flutter/generated_plugins.cmake +0 -23
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/CMakeLists.txt +0 -40
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/Runner.rc +0 -121
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/flutter_window.cpp +0 -71
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/flutter_window.h +0 -33
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/main.cpp +0 -43
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/resource.h +0 -16
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/resources/app_icon.ico +0 -0
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/runner.exe.manifest +0 -14
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/utils.cpp +0 -65
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/utils.h +0 -19
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/win32_window.cpp +0 -288
- package/e2e-tests/test-applications/flutter-test-app/windows/runner/win32_window.h +0 -102
- package/e2e-tests/test-applications/nextjs-test-app/next.config.mjs +0 -4
- package/e2e-tests/test-applications/nextjs-test-app/package.json +0 -22
- package/e2e-tests/test-applications/nextjs-test-app/src/app/layout.tsx +0 -20
- package/e2e-tests/test-applications/nextjs-test-app/src/app/page.tsx +0 -90
- package/e2e-tests/test-applications/nuxt-3-test-app/README.md +0 -75
- package/e2e-tests/test-applications/nuxt-3-test-app/nuxt.config.ts +0 -5
- package/e2e-tests/test-applications/nuxt-3-test-app/package.json +0 -18
- package/e2e-tests/test-applications/nuxt-3-test-app/public/favicon.ico +0 -0
- package/e2e-tests/test-applications/nuxt-3-test-app/public/robots.txt +0 -1
- package/e2e-tests/test-applications/nuxt-4-test-app/README.md +0 -75
- package/e2e-tests/test-applications/nuxt-4-test-app/nuxt.config.ts +0 -6
- package/e2e-tests/test-applications/nuxt-4-test-app/package.json +0 -18
- package/e2e-tests/test-applications/nuxt-4-test-app/public/favicon.ico +0 -0
- package/e2e-tests/test-applications/nuxt-4-test-app/public/robots.txt +0 -1
- package/e2e-tests/test-applications/remix-test-app/app/entry.client.tsx +0 -18
- package/e2e-tests/test-applications/remix-test-app/app/entry.server.tsx +0 -140
- package/e2e-tests/test-applications/remix-test-app/app/root.tsx +0 -30
- package/e2e-tests/test-applications/remix-test-app/app/routes/_index.tsx +0 -48
- package/e2e-tests/test-applications/remix-test-app/app/tailwind.css +0 -3
- package/e2e-tests/test-applications/remix-test-app/package.json +0 -37
- package/e2e-tests/test-applications/remix-test-app/postcss.config.js +0 -6
- package/e2e-tests/test-applications/remix-test-app/tailwind.config.ts +0 -9
- package/e2e-tests/test-applications/remix-test-app/vite.config.ts +0 -16
- package/e2e-tests/test-applications/sveltekit-test-app/package.json +0 -21
- package/e2e-tests/test-applications/sveltekit-test-app/src/app.d.ts +0 -13
- package/e2e-tests/test-applications/sveltekit-test-app/src/app.html +0 -11
- package/e2e-tests/test-applications/sveltekit-test-app/src/lib/index.ts +0 -1
- package/e2e-tests/test-applications/sveltekit-test-app/src/routes/+page.svelte +0 -2
- package/e2e-tests/test-applications/sveltekit-test-app/svelte.config.js +0 -18
- package/e2e-tests/test-applications/sveltekit-test-app/vite.config.ts +0 -6
- package/e2e-tests/tests/flutter.test.ts +0 -127
- package/e2e-tests/tests/nextjs.test.ts +0 -161
- package/e2e-tests/tests/nuxt-3.test.ts +0 -189
- package/e2e-tests/tests/nuxt-4.test.ts +0 -188
- package/e2e-tests/tests/remix.test.ts +0 -277
- package/e2e-tests/tests/sveltekit.test.ts +0 -284
- package/e2e-tests/utils/index.ts +0 -438
- package/index.ts +0 -2
- package/lib/Constants.ts +0 -118
- package/lib/Helper/BottomBar.ts +0 -28
- package/lib/Helper/Env.ts +0 -7
- package/lib/Helper/File.ts +0 -65
- package/lib/Helper/Git.ts +0 -39
- package/lib/Helper/Logging.ts +0 -44
- package/lib/Helper/MergeConfig.ts +0 -19
- package/lib/Helper/Package.ts +0 -78
- package/lib/Helper/SentryCli.ts +0 -148
- package/lib/Helper/Wizard.ts +0 -59
- package/lib/Helper/__tests__/File.ts +0 -15
- package/lib/Helper/__tests__/MergeConfig.ts +0 -98
- package/lib/Helper/__tests__/SentryCli.ts +0 -86
- package/lib/Helper/test-fixtures/next.config.1-merged.js +0 -18
- package/lib/Helper/test-fixtures/next.config.1.js +0 -6
- package/lib/Helper/test-fixtures/next.config.2.js +0 -8
- package/lib/Helper/test-fixtures/next.config.3-merged.js +0 -21
- package/lib/Helper/test-fixtures/next.config.3.js +0 -9
- package/lib/Helper/test-fixtures/next.config.4-merged.js +0 -21
- package/lib/Helper/test-fixtures/next.config.4.js +0 -9
- package/lib/Setup.ts +0 -41
- package/lib/Steps/BaseStep.ts +0 -25
- package/lib/Steps/ChooseIntegration.ts +0 -112
- package/lib/Steps/ConfigureProject.ts +0 -10
- package/lib/Steps/Initial.ts +0 -44
- package/lib/Steps/Integrations/BaseIntegration.ts +0 -48
- package/lib/Steps/Integrations/Cordova.ts +0 -289
- package/lib/Steps/Integrations/Electron.ts +0 -161
- package/lib/Steps/Integrations/MobileProject.ts +0 -69
- package/lib/Steps/OpenSentry.ts +0 -75
- package/lib/Steps/PromptForParameters.ts +0 -207
- package/lib/Steps/Result.ts +0 -22
- package/lib/Steps/SentryProjectSelector.ts +0 -82
- package/lib/Steps/ShouldConfigure.ts +0 -10
- package/lib/Steps/WaitForSentry.ts +0 -50
- package/lib/Steps/Welcome.ts +0 -21
- package/lib/Steps/index.ts +0 -10
- package/lib/__tests__/Env.ts +0 -29
- package/scripts/NextJs/configs/_error.js +0 -39
- package/scripts/NextJs/configs/next.config.js +0 -36
- package/scripts/NextJs/configs/next.config.template.js +0 -12
- package/scripts/NextJs/configs/sentry.client.config.js +0 -17
- package/scripts/NextJs/configs/sentry.edge.config.js +0 -17
- package/scripts/NextJs/configs/sentry.server.config.js +0 -17
- package/scripts/NextJs/sentry_sample_error.js +0 -47
- package/scripts/craft-pre-release.sh +0 -10
- package/src/android/android-wizard.ts +0 -192
- package/src/android/code-tools.ts +0 -170
- package/src/android/gradle.ts +0 -250
- package/src/android/manifest.ts +0 -180
- package/src/android/templates.ts +0 -86
- package/src/apple/apple-wizard.ts +0 -269
- package/src/apple/cocoapod.ts +0 -73
- package/src/apple/code-tools.ts +0 -147
- package/src/apple/fastlane.ts +0 -170
- package/src/apple/templates.ts +0 -65
- package/src/apple/xcode-manager.ts +0 -404
- package/src/flutter/code-tools.ts +0 -284
- package/src/flutter/flutter-wizard.ts +0 -164
- package/src/flutter/templates.ts +0 -90
- package/src/nextjs/nextjs-wizard.ts +0 -1007
- package/src/nextjs/templates.ts +0 -526
- package/src/nextjs/utils.ts +0 -21
- package/src/nuxt/nuxt-wizard.ts +0 -188
- package/src/nuxt/sdk-example.ts +0 -135
- package/src/nuxt/sdk-setup.ts +0 -349
- package/src/nuxt/templates.ts +0 -303
- package/src/nuxt/types.ts +0 -8
- package/src/nuxt/utils.ts +0 -42
- package/src/react-native/expo-env-file.ts +0 -55
- package/src/react-native/expo-metro.ts +0 -212
- package/src/react-native/expo.ts +0 -175
- package/src/react-native/git.ts +0 -25
- package/src/react-native/glob.ts +0 -13
- package/src/react-native/gradle.ts +0 -26
- package/src/react-native/javascript.ts +0 -103
- package/src/react-native/metro.ts +0 -599
- package/src/react-native/options.ts +0 -5
- package/src/react-native/react-native-wizard.ts +0 -513
- package/src/react-native/uninstall.ts +0 -110
- package/src/react-native/xcode.ts +0 -302
- package/src/remix/codemods/express-server.ts +0 -44
- package/src/remix/codemods/handle-error.ts +0 -118
- package/src/remix/codemods/root-common.ts +0 -63
- package/src/remix/codemods/root-v1.ts +0 -41
- package/src/remix/codemods/root-v2.ts +0 -153
- package/src/remix/remix-wizard.ts +0 -261
- package/src/remix/sdk-example.ts +0 -120
- package/src/remix/sdk-setup.ts +0 -546
- package/src/remix/templates.ts +0 -11
- package/src/remix/utils.ts +0 -96
- package/src/run.ts +0 -204
- package/src/sourcemaps/sourcemaps-wizard.ts +0 -364
- package/src/sourcemaps/tools/angular.ts +0 -42
- package/src/sourcemaps/tools/create-react-app.ts +0 -19
- package/src/sourcemaps/tools/esbuild.ts +0 -65
- package/src/sourcemaps/tools/nextjs.ts +0 -114
- package/src/sourcemaps/tools/remix.ts +0 -90
- package/src/sourcemaps/tools/rollup.ts +0 -67
- package/src/sourcemaps/tools/sentry-cli.ts +0 -287
- package/src/sourcemaps/tools/tsc.ts +0 -144
- package/src/sourcemaps/tools/types.ts +0 -11
- package/src/sourcemaps/tools/vite.ts +0 -300
- package/src/sourcemaps/tools/webpack.ts +0 -383
- package/src/sourcemaps/utils/detect-tool.ts +0 -46
- package/src/sourcemaps/utils/other-wizards.ts +0 -167
- package/src/sourcemaps/utils/sdk-version.ts +0 -266
- package/src/sveltekit/sdk-example.ts +0 -56
- package/src/sveltekit/sdk-setup.ts +0 -667
- package/src/sveltekit/sveltekit-wizard.ts +0 -192
- package/src/sveltekit/templates.ts +0 -185
- package/src/sveltekit/utils.ts +0 -50
- package/src/telemetry.ts +0 -124
- package/src/utils/ast-utils.ts +0 -270
- package/src/utils/bash.ts +0 -57
- package/src/utils/clack-utils.ts +0 -1533
- package/src/utils/debug.ts +0 -20
- package/src/utils/package-json.ts +0 -51
- package/src/utils/package-manager.ts +0 -172
- package/src/utils/release-registry.ts +0 -19
- package/src/utils/semver.ts +0 -33
- package/src/utils/sentrycli-utils.ts +0 -24
- package/src/utils/string.ts +0 -7
- package/src/utils/types.ts +0 -77
- package/src/utils/url.ts +0 -27
- package/src/utils/vendor/is-unicorn-supported.ts +0 -29
- package/test/android/code-tools.test.ts +0 -49
- package/test/apple/cocoapod.test.ts +0 -306
- package/test/apple/code-tools.test.ts +0 -1042
- package/test/apple/fastfile.test.ts +0 -550
- package/test/apple/templates.test.ts +0 -191
- package/test/apple/xcode-manager.test.ts +0 -1066
- package/test/flutter/code-tools.test.ts +0 -212
- package/test/flutter/templates.test.ts +0 -100
- package/test/nextjs/templates.test.ts +0 -429
- package/test/nuxt/templates.test.ts +0 -255
- package/test/react-native/expo-metro.test.ts +0 -81
- package/test/react-native/expo.test.ts +0 -86
- package/test/react-native/gradle.test.ts +0 -310
- package/test/react-native/javascript.test.ts +0 -134
- package/test/react-native/metro.test.ts +0 -396
- package/test/react-native/xcode.test.ts +0 -401
- package/test/remix/client-entry.test.ts +0 -122
- package/test/remix/server-instrumentation.test.ts +0 -36
- package/test/sourcemaps/tools/sentry-cli.test.ts +0 -57
- package/test/sourcemaps/tools/tsc.test.ts +0 -181
- package/test/sourcemaps/tools/vite.test.ts +0 -149
- package/test/sourcemaps/tools/webpack.test.ts +0 -303
- package/test/sveltekit/templates.test.ts +0 -152
- package/test/utils/ast-utils.test.ts +0 -264
- package/test/utils/clack-utils.test.ts +0 -234
- package/types/xcode.d.ts +0 -526
|
@@ -22,268 +22,163 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
-
function step(op) {
|
|
39
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
41
|
-
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;
|
|
42
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
-
switch (op[0]) {
|
|
44
|
-
case 0: case 1: t = op; break;
|
|
45
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
-
default:
|
|
49
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
-
if (t[2]) _.ops.pop();
|
|
54
|
-
_.trys.pop(); continue;
|
|
55
|
-
}
|
|
56
|
-
op = body.call(thisArg, _);
|
|
57
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
26
|
+
const clack_utils_1 = require("../../src/utils/clack-utils");
|
|
27
|
+
const fs = __importStar(require("node:fs"));
|
|
28
|
+
const ChildProcess = __importStar(require("node:child_process"));
|
|
29
|
+
// @ts-ignore - clack is ESM and TS complains about that. It works though
|
|
30
|
+
const clack = __importStar(require("@clack/prompts"));
|
|
31
|
+
jest.mock('node:child_process', () => ({
|
|
32
|
+
__esModule: true,
|
|
33
|
+
...jest.requireActual('node:child_process'),
|
|
34
|
+
}));
|
|
35
|
+
jest.mock('@clack/prompts', () => ({
|
|
36
|
+
log: {
|
|
37
|
+
info: jest.fn(),
|
|
38
|
+
success: jest.fn(),
|
|
39
|
+
warn: jest.fn(),
|
|
40
|
+
},
|
|
41
|
+
text: jest.fn(),
|
|
42
|
+
confirm: jest.fn(),
|
|
43
|
+
cancel: jest.fn(),
|
|
44
|
+
// passthrough for abortIfCancelled
|
|
45
|
+
isCancel: jest.fn().mockReturnValue(false),
|
|
46
|
+
spinner: jest
|
|
47
|
+
.fn()
|
|
48
|
+
.mockImplementation(() => ({ start: jest.fn(), stop: jest.fn() })),
|
|
49
|
+
}));
|
|
84
50
|
function mockUserResponse(fn, response) {
|
|
85
51
|
fn.mockReturnValueOnce(response);
|
|
86
52
|
}
|
|
87
|
-
describe('askForToolConfigPath',
|
|
88
|
-
afterEach(
|
|
53
|
+
describe('askForToolConfigPath', () => {
|
|
54
|
+
afterEach(() => {
|
|
89
55
|
jest.clearAllMocks();
|
|
90
56
|
});
|
|
91
|
-
it('returns undefined if users have no config file',
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
switch (_a.label) {
|
|
112
|
-
case 0:
|
|
113
|
-
mockUserResponse(clackMock.confirm, true);
|
|
114
|
-
mockUserResponse(clackMock.text, 'my.webpack.config.js');
|
|
115
|
-
return [4 /*yield*/, (0, clack_utils_1.askForToolConfigPath)('Webpack', 'webpack.config.js')];
|
|
116
|
-
case 1:
|
|
117
|
-
result = _a.sent();
|
|
118
|
-
expect(clackMock.confirm).toHaveBeenCalledWith(expect.objectContaining({
|
|
119
|
-
message: expect.stringContaining('have a Webpack config file'),
|
|
120
|
-
}));
|
|
121
|
-
expect(clackMock.text).toHaveBeenCalledWith(expect.objectContaining({
|
|
122
|
-
message: expect.stringContaining('enter the path to your Webpack config file'),
|
|
123
|
-
}));
|
|
124
|
-
expect(result).toBe('my.webpack.config.js');
|
|
125
|
-
return [2 /*return*/];
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}); });
|
|
57
|
+
it('returns undefined if users have no config file', async () => {
|
|
58
|
+
mockUserResponse(clack.confirm, false);
|
|
59
|
+
const result = await (0, clack_utils_1.askForToolConfigPath)('Webpack', 'webpack.config.js');
|
|
60
|
+
expect(clack.confirm).toHaveBeenCalledWith(expect.objectContaining({
|
|
61
|
+
message: expect.stringContaining('have a Webpack config file'),
|
|
62
|
+
}));
|
|
63
|
+
expect(result).toBeUndefined();
|
|
64
|
+
});
|
|
65
|
+
it('returns the path if users have a config file and the entered path is valid', async () => {
|
|
66
|
+
mockUserResponse(clack.confirm, true);
|
|
67
|
+
mockUserResponse(clack.text, 'my.webpack.config.js');
|
|
68
|
+
const result = await (0, clack_utils_1.askForToolConfigPath)('Webpack', 'webpack.config.js');
|
|
69
|
+
expect(clack.confirm).toHaveBeenCalledWith(expect.objectContaining({
|
|
70
|
+
message: expect.stringContaining('have a Webpack config file'),
|
|
71
|
+
}));
|
|
72
|
+
expect(clack.text).toHaveBeenCalledWith(expect.objectContaining({
|
|
73
|
+
message: expect.stringContaining('enter the path to your Webpack config file'),
|
|
74
|
+
}));
|
|
75
|
+
expect(result).toBe('my.webpack.config.js');
|
|
76
|
+
});
|
|
129
77
|
});
|
|
130
|
-
describe('createNewConfigFile',
|
|
131
|
-
afterEach(
|
|
78
|
+
describe('createNewConfigFile', () => {
|
|
79
|
+
afterEach(() => {
|
|
132
80
|
jest.clearAllMocks();
|
|
133
81
|
});
|
|
134
|
-
it('writes the file to disk and returns true if the file was created successfully',
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
});
|
|
153
|
-
it('
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}); });
|
|
171
|
-
it('returns false and logs a warning if the file could not be created', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
172
|
-
var writeFileSpy, filename, code, result;
|
|
173
|
-
return __generator(this, function (_a) {
|
|
174
|
-
switch (_a.label) {
|
|
175
|
-
case 0:
|
|
176
|
-
writeFileSpy = jest
|
|
177
|
-
.spyOn(fs.promises, 'writeFile')
|
|
178
|
-
.mockImplementation(function () { return Promise.reject(new Error('Could not write')); });
|
|
179
|
-
filename = '/webpack.config.js';
|
|
180
|
-
code = "module.exports = {/*config...*/}";
|
|
181
|
-
return [4 /*yield*/, (0, clack_utils_1.createNewConfigFile)(filename, code)];
|
|
182
|
-
case 1:
|
|
183
|
-
result = _a.sent();
|
|
184
|
-
expect(result).toBe(false);
|
|
185
|
-
expect(writeFileSpy).toHaveBeenCalledWith(filename, code);
|
|
186
|
-
expect(clackMock.log.warn).toHaveBeenCalledTimes(1);
|
|
187
|
-
return [2 /*return*/];
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
}); });
|
|
191
|
-
it('returns false if the passed path is not absolute', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
192
|
-
var result;
|
|
193
|
-
return __generator(this, function (_a) {
|
|
194
|
-
switch (_a.label) {
|
|
195
|
-
case 0: return [4 /*yield*/, (0, clack_utils_1.createNewConfigFile)('./relative/webpack.config.js', '')];
|
|
196
|
-
case 1:
|
|
197
|
-
result = _a.sent();
|
|
198
|
-
expect(result).toBe(false);
|
|
199
|
-
return [2 /*return*/];
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
}); });
|
|
82
|
+
it('writes the file to disk and returns true if the file was created successfully', async () => {
|
|
83
|
+
const writeFileSpy = jest
|
|
84
|
+
.spyOn(fs.promises, 'writeFile')
|
|
85
|
+
.mockImplementation(jest.fn());
|
|
86
|
+
const filename = '/webpack.config.js';
|
|
87
|
+
const code = 'module.exports = {/*config...*/}';
|
|
88
|
+
const result = await (0, clack_utils_1.createNewConfigFile)(filename, code);
|
|
89
|
+
expect(result).toBe(true);
|
|
90
|
+
expect(writeFileSpy).toHaveBeenCalledWith(filename, code);
|
|
91
|
+
});
|
|
92
|
+
it('logs more information if provided as an argument', async () => {
|
|
93
|
+
jest.spyOn(fs.promises, 'writeFile').mockImplementation(jest.fn());
|
|
94
|
+
const filename = '/webpack.config.js';
|
|
95
|
+
const code = 'module.exports = {/*config...*/}';
|
|
96
|
+
const moreInfo = 'More information...';
|
|
97
|
+
await (0, clack_utils_1.createNewConfigFile)(filename, code, moreInfo);
|
|
98
|
+
expect(clack.log.info).toHaveBeenCalledTimes(1);
|
|
99
|
+
expect(clack.log.info).toHaveBeenCalledWith(expect.stringContaining(moreInfo));
|
|
100
|
+
});
|
|
101
|
+
it('returns false and logs a warning if the file could not be created', async () => {
|
|
102
|
+
const writeFileSpy = jest
|
|
103
|
+
.spyOn(fs.promises, 'writeFile')
|
|
104
|
+
.mockImplementation(() => Promise.reject(new Error('Could not write')));
|
|
105
|
+
const filename = '/webpack.config.js';
|
|
106
|
+
const code = 'module.exports = {/*config...*/}';
|
|
107
|
+
const result = await (0, clack_utils_1.createNewConfigFile)(filename, code);
|
|
108
|
+
expect(result).toBe(false);
|
|
109
|
+
expect(writeFileSpy).toHaveBeenCalledWith(filename, code);
|
|
110
|
+
expect(clack.log.warn).toHaveBeenCalledTimes(1);
|
|
111
|
+
});
|
|
112
|
+
it('returns false if the passed path is not absolute', async () => {
|
|
113
|
+
const result = await (0, clack_utils_1.createNewConfigFile)('./relative/webpack.config.js', '');
|
|
114
|
+
expect(result).toBe(false);
|
|
115
|
+
});
|
|
203
116
|
});
|
|
204
|
-
describe('installPackage',
|
|
205
|
-
afterEach(
|
|
117
|
+
describe('installPackage', () => {
|
|
118
|
+
afterEach(() => {
|
|
206
119
|
jest.clearAllMocks();
|
|
207
120
|
});
|
|
208
|
-
it('force-installs a package if the forceInstall flag is set',
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
.mockImplementationOnce(function (cmd, cb) {
|
|
228
|
-
if (cb) {
|
|
229
|
-
// @ts-expect-error - don't care about the options value
|
|
230
|
-
cb(null, '', '');
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
return [4 /*yield*/, (0, clack_utils_1.installPackage)({
|
|
234
|
-
alreadyInstalled: false,
|
|
235
|
-
packageName: '@sentry/sveltekit',
|
|
236
|
-
packageNameDisplayLabel: '@sentry/sveltekit',
|
|
237
|
-
forceInstall: true,
|
|
238
|
-
askBeforeUpdating: false,
|
|
239
|
-
packageManager: packageManagerMock,
|
|
240
|
-
})];
|
|
241
|
-
case 1:
|
|
242
|
-
_a.sent();
|
|
243
|
-
expect(execSpy).toHaveBeenCalledWith('npm install @sentry/sveltekit --force', expect.any(Function));
|
|
244
|
-
return [2 /*return*/];
|
|
121
|
+
it('force-installs a package if the forceInstall flag is set', async () => {
|
|
122
|
+
const packageManagerMock = {
|
|
123
|
+
name: 'npm',
|
|
124
|
+
label: 'NPM',
|
|
125
|
+
installCommand: 'npm install',
|
|
126
|
+
buildCommand: 'npm run build',
|
|
127
|
+
runScriptCommand: 'npm run',
|
|
128
|
+
flags: '',
|
|
129
|
+
forceInstallFlag: '--force',
|
|
130
|
+
detect: jest.fn(),
|
|
131
|
+
addOverride: jest.fn(),
|
|
132
|
+
};
|
|
133
|
+
const execSpy = jest
|
|
134
|
+
.spyOn(ChildProcess, 'exec')
|
|
135
|
+
// @ts-expect-error - don't care about the return value
|
|
136
|
+
.mockImplementationOnce((cmd, cb) => {
|
|
137
|
+
if (cb) {
|
|
138
|
+
// @ts-expect-error - don't care about the options value
|
|
139
|
+
cb(null, '', '');
|
|
245
140
|
}
|
|
246
141
|
});
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
packageNameDisplayLabel: '@sentry/sveltekit',
|
|
277
|
-
forceInstall: flag,
|
|
278
|
-
askBeforeUpdating: false,
|
|
279
|
-
packageManager: packageManagerMock,
|
|
280
|
-
})];
|
|
281
|
-
case 1:
|
|
282
|
-
_a.sent();
|
|
283
|
-
expect(execSpy).toHaveBeenCalledWith('npm install @sentry/sveltekit ', expect.any(Function));
|
|
284
|
-
return [2 /*return*/];
|
|
142
|
+
await (0, clack_utils_1.installPackage)({
|
|
143
|
+
alreadyInstalled: false,
|
|
144
|
+
packageName: '@sentry/sveltekit',
|
|
145
|
+
packageNameDisplayLabel: '@sentry/sveltekit',
|
|
146
|
+
forceInstall: true,
|
|
147
|
+
askBeforeUpdating: false,
|
|
148
|
+
packageManager: packageManagerMock,
|
|
149
|
+
});
|
|
150
|
+
expect(execSpy).toHaveBeenCalledWith('npm install @sentry/sveltekit --force', expect.any(Function));
|
|
151
|
+
});
|
|
152
|
+
it.each([false, undefined])("doesn't force-install a package if the forceInstall flag is %s", async (flag) => {
|
|
153
|
+
const packageManagerMock = {
|
|
154
|
+
name: 'npm',
|
|
155
|
+
label: 'NPM',
|
|
156
|
+
installCommand: 'npm install',
|
|
157
|
+
buildCommand: 'npm run build',
|
|
158
|
+
runScriptCommand: 'npm run',
|
|
159
|
+
flags: '',
|
|
160
|
+
forceInstallFlag: '--force',
|
|
161
|
+
detect: jest.fn(),
|
|
162
|
+
addOverride: jest.fn(),
|
|
163
|
+
};
|
|
164
|
+
const execSpy = jest
|
|
165
|
+
.spyOn(ChildProcess, 'exec')
|
|
166
|
+
// @ts-expect-error - don't care about the return value
|
|
167
|
+
.mockImplementationOnce((cmd, cb) => {
|
|
168
|
+
if (cb) {
|
|
169
|
+
// @ts-expect-error - don't care about the options value
|
|
170
|
+
cb(null, '', '');
|
|
285
171
|
}
|
|
286
172
|
});
|
|
287
|
-
|
|
173
|
+
await (0, clack_utils_1.installPackage)({
|
|
174
|
+
alreadyInstalled: false,
|
|
175
|
+
packageName: '@sentry/sveltekit',
|
|
176
|
+
packageNameDisplayLabel: '@sentry/sveltekit',
|
|
177
|
+
forceInstall: flag,
|
|
178
|
+
askBeforeUpdating: false,
|
|
179
|
+
packageManager: packageManagerMock,
|
|
180
|
+
});
|
|
181
|
+
expect(execSpy).toHaveBeenCalledWith('npm install @sentry/sveltekit ', expect.any(Function));
|
|
182
|
+
});
|
|
288
183
|
});
|
|
289
184
|
//# sourceMappingURL=clack-utils.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clack-utils.test.js","sourceRoot":"","sources":["../../../test/utils/clack-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n askForToolConfigPath,\n createNewConfigFile,\n installPackage,\n} from '../../src/utils/clack-utils';\n\nimport * as fs from 'fs';\nimport * as ChildProcess from 'child_process';\nimport { PackageManager } from '../../src/utils/package-manager';\n\ntype ClackMock = {\n confirm: jest.Mock;\n text: jest.Mock;\n isCancel: jest.Mock;\n cancel: jest.Mock;\n log: {\n info: jest.Mock;\n success: jest.Mock;\n warn: jest.Mock;\n };\n spinner: () => { start: jest.Mock; stop: jest.Mock };\n};\n\nlet clackMock: ClackMock;\n\njest.mock('@clack/prompts', () => {\n clackMock = {\n log: {\n info: jest.fn(),\n success: jest.fn(),\n warn: jest.fn(),\n },\n text: jest.fn(),\n confirm: jest.fn(),\n cancel: jest.fn(),\n // passthrough for abortIfCancelled\n isCancel: jest.fn().mockReturnValue(false),\n spinner: jest\n .fn()\n .mockImplementation(() => ({ start: jest.fn(), stop: jest.fn() })),\n };\n return clackMock;\n});\n\nfunction mockUserResponse(fn: jest.Mock, response: any) {\n fn.mockReturnValueOnce(response);\n}\n\ndescribe('askForToolConfigPath', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('returns undefined if users have no config file', async () => {\n mockUserResponse(clackMock.confirm, false);\n\n const result = await askForToolConfigPath('Webpack', 'webpack.config.js');\n\n expect(clackMock.confirm).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining('have a Webpack config file'),\n }),\n );\n\n expect(result).toBeUndefined();\n });\n\n it('returns the path if users have a config file and the entered path is valid', async () => {\n mockUserResponse(clackMock.confirm, true);\n mockUserResponse(clackMock.text, 'my.webpack.config.js');\n\n const result = await askForToolConfigPath('Webpack', 'webpack.config.js');\n\n expect(clackMock.confirm).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining('have a Webpack config file'),\n }),\n );\n\n expect(clackMock.text).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining(\n 'enter the path to your Webpack config file',\n ),\n }),\n );\n\n expect(result).toBe('my.webpack.config.js');\n });\n});\n\ndescribe('createNewConfigFile', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('writes the file to disk and returns true if the file was created successfully', async () => {\n const writeFileSpy = jest\n .spyOn(fs.promises, 'writeFile')\n .mockImplementation(jest.fn());\n\n const filename = '/weboack.config.js';\n const code = `module.exports = {/*config...*/}`;\n\n const result = await createNewConfigFile(filename, code);\n\n expect(result).toBe(true);\n expect(writeFileSpy).toHaveBeenCalledWith(filename, code);\n });\n\n it('logs more information if provided as an argument', async () => {\n jest.spyOn(fs.promises, 'writeFile').mockImplementation(jest.fn());\n\n const filename = '/weboack.config.js';\n const code = `module.exports = {/*config...*/}`;\n const moreInfo = 'More information...';\n\n await createNewConfigFile(filename, code, moreInfo);\n\n expect(clackMock.log.info).toHaveBeenCalledTimes(1);\n expect(clackMock.log.info).toHaveBeenCalledWith(\n expect.stringContaining(moreInfo),\n );\n });\n\n it('returns false and logs a warning if the file could not be created', async () => {\n const writeFileSpy = jest\n .spyOn(fs.promises, 'writeFile')\n .mockImplementation(() => Promise.reject(new Error('Could not write')));\n\n const filename = '/webpack.config.js';\n const code = `module.exports = {/*config...*/}`;\n\n const result = await createNewConfigFile(filename, code);\n\n expect(result).toBe(false);\n expect(writeFileSpy).toHaveBeenCalledWith(filename, code);\n expect(clackMock.log.warn).toHaveBeenCalledTimes(1);\n });\n\n it('returns false if the passed path is not absolute', async () => {\n const result = await createNewConfigFile(\n './relative/webpack.config.js',\n '',\n );\n\n expect(result).toBe(false);\n });\n});\n\ndescribe('installPackage', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('force-installs a package if the forceInstall flag is set', async () => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: '@sentry/sveltekit',\n packageNameDisplayLabel: '@sentry/sveltekit',\n forceInstall: true,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install @sentry/sveltekit --force',\n expect.any(Function),\n );\n });\n\n it.each([false, undefined])(\n \"doesn't force-install a package if the forceInstall flag is %s\",\n async (flag) => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: '@sentry/sveltekit',\n packageNameDisplayLabel: '@sentry/sveltekit',\n forceInstall: flag,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install @sentry/sveltekit ',\n expect.any(Function),\n );\n },\n );\n});\n"]}
|
|
1
|
+
{"version":3,"file":"clack-utils.test.js","sourceRoot":"","sources":["../../../test/utils/clack-utils.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n askForToolConfigPath,\n createNewConfigFile,\n installPackage,\n} from '../../src/utils/clack-utils';\n\nimport * as fs from 'node:fs';\nimport * as ChildProcess from 'node:child_process';\nimport type { PackageManager } from '../../src/utils/package-manager';\n\n// @ts-ignore - clack is ESM and TS complains about that. It works though\nimport * as clack from '@clack/prompts';\n\njest.mock('node:child_process', () => ({\n __esModule: true,\n ...jest.requireActual('node:child_process'),\n}));\n\njest.mock('@clack/prompts', () => ({\n log: {\n info: jest.fn(),\n success: jest.fn(),\n warn: jest.fn(),\n },\n text: jest.fn(),\n confirm: jest.fn(),\n cancel: jest.fn(),\n // passthrough for abortIfCancelled\n isCancel: jest.fn().mockReturnValue(false),\n spinner: jest\n .fn()\n .mockImplementation(() => ({ start: jest.fn(), stop: jest.fn() })),\n}));\n\nfunction mockUserResponse(fn: jest.Mock, response: any) {\n fn.mockReturnValueOnce(response);\n}\n\ndescribe('askForToolConfigPath', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('returns undefined if users have no config file', async () => {\n mockUserResponse(clack.confirm as jest.Mock, false);\n\n const result = await askForToolConfigPath('Webpack', 'webpack.config.js');\n\n expect(clack.confirm).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining('have a Webpack config file'),\n }),\n );\n\n expect(result).toBeUndefined();\n });\n\n it('returns the path if users have a config file and the entered path is valid', async () => {\n mockUserResponse(clack.confirm as jest.Mock, true);\n mockUserResponse(clack.text as jest.Mock, 'my.webpack.config.js');\n\n const result = await askForToolConfigPath('Webpack', 'webpack.config.js');\n\n expect(clack.confirm).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining('have a Webpack config file'),\n }),\n );\n\n expect(clack.text).toHaveBeenCalledWith(\n expect.objectContaining({\n message: expect.stringContaining(\n 'enter the path to your Webpack config file',\n ),\n }),\n );\n\n expect(result).toBe('my.webpack.config.js');\n });\n});\n\ndescribe('createNewConfigFile', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('writes the file to disk and returns true if the file was created successfully', async () => {\n const writeFileSpy = jest\n .spyOn(fs.promises, 'writeFile')\n .mockImplementation(jest.fn());\n\n const filename = '/webpack.config.js';\n const code = 'module.exports = {/*config...*/}';\n\n const result = await createNewConfigFile(filename, code);\n\n expect(result).toBe(true);\n expect(writeFileSpy).toHaveBeenCalledWith(filename, code);\n });\n\n it('logs more information if provided as an argument', async () => {\n jest.spyOn(fs.promises, 'writeFile').mockImplementation(jest.fn());\n\n const filename = '/webpack.config.js';\n const code = 'module.exports = {/*config...*/}';\n const moreInfo = 'More information...';\n\n await createNewConfigFile(filename, code, moreInfo);\n\n expect(clack.log.info).toHaveBeenCalledTimes(1);\n expect(clack.log.info).toHaveBeenCalledWith(\n expect.stringContaining(moreInfo),\n );\n });\n\n it('returns false and logs a warning if the file could not be created', async () => {\n const writeFileSpy = jest\n .spyOn(fs.promises, 'writeFile')\n .mockImplementation(() => Promise.reject(new Error('Could not write')));\n\n const filename = '/webpack.config.js';\n const code = 'module.exports = {/*config...*/}';\n\n const result = await createNewConfigFile(filename, code);\n\n expect(result).toBe(false);\n expect(writeFileSpy).toHaveBeenCalledWith(filename, code);\n expect(clack.log.warn).toHaveBeenCalledTimes(1);\n });\n\n it('returns false if the passed path is not absolute', async () => {\n const result = await createNewConfigFile(\n './relative/webpack.config.js',\n '',\n );\n\n expect(result).toBe(false);\n });\n});\n\ndescribe('installPackage', () => {\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n it('force-installs a package if the forceInstall flag is set', async () => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: '@sentry/sveltekit',\n packageNameDisplayLabel: '@sentry/sveltekit',\n forceInstall: true,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install @sentry/sveltekit --force',\n expect.any(Function),\n );\n });\n\n it.each([false, undefined])(\n \"doesn't force-install a package if the forceInstall flag is %s\",\n async (flag) => {\n const packageManagerMock: PackageManager = {\n name: 'npm',\n label: 'NPM',\n installCommand: 'npm install',\n buildCommand: 'npm run build',\n runScriptCommand: 'npm run',\n flags: '',\n forceInstallFlag: '--force',\n detect: jest.fn(),\n addOverride: jest.fn(),\n };\n\n const execSpy = jest\n .spyOn(ChildProcess, 'exec')\n // @ts-expect-error - don't care about the return value\n .mockImplementationOnce((cmd, cb) => {\n if (cb) {\n // @ts-expect-error - don't care about the options value\n cb(null, '', '');\n }\n });\n\n await installPackage({\n alreadyInstalled: false,\n packageName: '@sentry/sveltekit',\n packageNameDisplayLabel: '@sentry/sveltekit',\n forceInstall: flag,\n askBeforeUpdating: false,\n packageManager: packageManagerMock,\n });\n\n expect(execSpy).toHaveBeenCalledWith(\n 'npm install @sentry/sveltekit ',\n expect.any(Function),\n );\n },\n );\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentry/wizard",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"homepage": "https://github.com/getsentry/sentry-wizard",
|
|
5
5
|
"repository": "https://github.com/getsentry/sentry-wizard",
|
|
6
6
|
"description": "Sentry wizard helping you to configure your project",
|
|
@@ -22,19 +22,19 @@
|
|
|
22
22
|
"typescript": {
|
|
23
23
|
"definition": "dist/index.d.ts"
|
|
24
24
|
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
25
28
|
"dependencies": {
|
|
26
29
|
"@clack/core": "^0.3.4",
|
|
27
30
|
"@clack/prompts": "0.7.0",
|
|
28
|
-
"@sentry/cli": "^1.77.3",
|
|
29
31
|
"@sentry/node": "^7.119.2",
|
|
30
32
|
"axios": "1.7.4",
|
|
31
33
|
"chalk": "^2.4.1",
|
|
32
34
|
"glob": "9.3.5",
|
|
33
35
|
"inquirer": "^6.2.0",
|
|
34
|
-
"lodash": "^4.17.15",
|
|
35
36
|
"magicast": "^0.2.10",
|
|
36
37
|
"opn": "^5.4.0",
|
|
37
|
-
"r2": "^2.0.1",
|
|
38
38
|
"read-env": "^1.3.0",
|
|
39
39
|
"recast": "^0.23.3",
|
|
40
40
|
"semver": "^7.5.3",
|
|
@@ -43,13 +43,15 @@
|
|
|
43
43
|
"yargs": "^16.2.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
+
"@babel/types": "~7.21.4",
|
|
46
47
|
"@sentry-internal/eslint-config-sdk": "^7.48.0",
|
|
47
48
|
"@types/chai": "^4.3.17",
|
|
48
49
|
"@types/glob": "^7.2.0",
|
|
49
50
|
"@types/inquirer": "^0.0.43",
|
|
50
51
|
"@types/jest": "^29.5.0",
|
|
51
52
|
"@types/lodash": "^4.14.144",
|
|
52
|
-
"@types/node": "^
|
|
53
|
+
"@types/node": "^18.19.76",
|
|
54
|
+
"@types/opn": "5.1.0",
|
|
53
55
|
"@types/rimraf": "^3.0.2",
|
|
54
56
|
"@types/semver": "^7.3.7",
|
|
55
57
|
"@types/yargs": "^16.0.9",
|
|
@@ -59,6 +61,7 @@
|
|
|
59
61
|
"eslint": "^8.18.0",
|
|
60
62
|
"eslint-config-prettier": "^8.3.0",
|
|
61
63
|
"eslint-plugin-jest": "^25.3.0",
|
|
64
|
+
"fossilize": "^0.3.1",
|
|
62
65
|
"jest": "^29.5.0",
|
|
63
66
|
"prettier": "^2.8.7",
|
|
64
67
|
"rimraf": "^3.0.2",
|
|
@@ -67,8 +70,11 @@
|
|
|
67
70
|
"tsx": "^3.14.0",
|
|
68
71
|
"typescript": "^5.0.4"
|
|
69
72
|
},
|
|
73
|
+
"resolutions": {
|
|
74
|
+
"simple-plist": "1.4.0-0"
|
|
75
|
+
},
|
|
70
76
|
"engines": {
|
|
71
|
-
"node": ">=
|
|
77
|
+
"node": ">=18.20.6",
|
|
72
78
|
"npm": ">=3.10.7",
|
|
73
79
|
"yarn": ">=1.0.2"
|
|
74
80
|
},
|
|
@@ -84,8 +90,9 @@
|
|
|
84
90
|
"fix": "yarn fix:eslint && yarn fix:prettier",
|
|
85
91
|
"fix:prettier": "prettier --write \"{lib,src,test}/**/*.ts\"",
|
|
86
92
|
"fix:eslint": "eslint . --format stylish --fix",
|
|
87
|
-
"test": "
|
|
93
|
+
"test": "jest",
|
|
88
94
|
"test:e2e": "yarn build && ./e2e-tests/run.sh",
|
|
95
|
+
"test:e2e:bin": "chmod +x ./dist-bin/* && SENTRY_WIZARD_E2E_TEST_BIN=1 ./e2e-tests/run.sh",
|
|
89
96
|
"try": "ts-node bin.ts",
|
|
90
97
|
"try:uninstall": "ts-node bin.ts --uninstall",
|
|
91
98
|
"test:watch": "jest --watch"
|
|
@@ -107,7 +114,7 @@
|
|
|
107
114
|
"json"
|
|
108
115
|
],
|
|
109
116
|
"modulePathIgnorePatterns": [
|
|
110
|
-
"<rootDir>/dist/
|
|
117
|
+
"<rootDir>/dist/"
|
|
111
118
|
],
|
|
112
119
|
"testPathIgnorePatterns": [
|
|
113
120
|
"/dist/",
|
|
@@ -121,7 +128,7 @@
|
|
|
121
128
|
"author": "Sentry",
|
|
122
129
|
"license": "MIT",
|
|
123
130
|
"volta": {
|
|
124
|
-
"node": "
|
|
131
|
+
"node": "18.20.6",
|
|
125
132
|
"yarn": "1.22.19"
|
|
126
133
|
},
|
|
127
134
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|