@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
|
@@ -23,26 +23,28 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
jest.mock('
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
const fs = __importStar(require("node:fs"));
|
|
27
|
+
const os = __importStar(require("node:os"));
|
|
28
|
+
const path = __importStar(require("node:path"));
|
|
29
|
+
const templates_1 = require("../../src/apple/templates");
|
|
30
|
+
const xcode_manager_1 = require("../../src/apple/xcode-manager");
|
|
31
|
+
jest.mock('node:fs', () => ({
|
|
32
|
+
__esModule: true,
|
|
33
|
+
...jest.requireActual('node:fs'),
|
|
34
|
+
}));
|
|
35
|
+
jest.mock('@clack/prompts', () => ({
|
|
36
|
+
log: {
|
|
37
|
+
info: jest.fn(),
|
|
38
|
+
success: jest.fn(),
|
|
39
|
+
step: jest.fn(),
|
|
38
40
|
},
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
}));
|
|
42
|
+
const appleProjectsPath = path.resolve(__dirname, '../../e2e-tests/test-applications/apple');
|
|
43
|
+
const damagedProjectPath = path.join(appleProjectsPath, 'damaged-missing-configuration-list/Project.xcodeproj/project.pbxproj');
|
|
44
|
+
const noTargetsProjectPath = path.join(appleProjectsPath, 'no-targets/Project.xcodeproj/project.pbxproj');
|
|
45
|
+
const singleTargetProjectPath = path.join(appleProjectsPath, 'spm-swiftui-single-target/Project.xcodeproj/project.pbxproj');
|
|
46
|
+
const multiTargetProjectPath = path.join(appleProjectsPath, 'spm-swiftui-multi-targets/Project.xcodeproj/project.pbxproj');
|
|
47
|
+
const projectData = {
|
|
46
48
|
id: '1234567890',
|
|
47
49
|
slug: 'project',
|
|
48
50
|
organization: {
|
|
@@ -52,68 +54,67 @@ var projectData = {
|
|
|
52
54
|
},
|
|
53
55
|
keys: [{ dsn: { public: 'https://sentry.io/1234567890' } }],
|
|
54
56
|
};
|
|
55
|
-
describe('XcodeManager',
|
|
56
|
-
afterEach(
|
|
57
|
+
describe('XcodeManager', () => {
|
|
58
|
+
afterEach(() => {
|
|
57
59
|
jest.clearAllMocks();
|
|
58
60
|
});
|
|
59
|
-
describe('XcodeProject',
|
|
60
|
-
describe('getAllTargets',
|
|
61
|
-
describe('single target',
|
|
62
|
-
it('should return all targets',
|
|
61
|
+
describe('XcodeProject', () => {
|
|
62
|
+
describe('getAllTargets', () => {
|
|
63
|
+
describe('single target', () => {
|
|
64
|
+
it('should return all targets', () => {
|
|
63
65
|
// -- Arrange --
|
|
64
|
-
|
|
66
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
65
67
|
// -- Act --
|
|
66
|
-
|
|
68
|
+
const targets = xcodeProject.getAllTargets();
|
|
67
69
|
// -- Assert --
|
|
68
70
|
expect(targets).toEqual(['Project']);
|
|
69
71
|
});
|
|
70
72
|
});
|
|
71
|
-
describe('multiple targets',
|
|
72
|
-
it('should return all targets',
|
|
73
|
+
describe('multiple targets', () => {
|
|
74
|
+
it('should return all targets', () => {
|
|
73
75
|
// -- Arrange --
|
|
74
|
-
|
|
76
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(multiTargetProjectPath);
|
|
75
77
|
// -- Act --
|
|
76
|
-
|
|
78
|
+
const targets = xcodeProject.getAllTargets();
|
|
77
79
|
// -- Assert --
|
|
78
80
|
expect(targets).toEqual(['Project1', 'Project2']);
|
|
79
81
|
});
|
|
80
82
|
});
|
|
81
|
-
describe('no targets',
|
|
82
|
-
it('should return an empty array',
|
|
83
|
+
describe('no targets', () => {
|
|
84
|
+
it('should return an empty array', () => {
|
|
83
85
|
// -- Arrange --
|
|
84
|
-
|
|
86
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(noTargetsProjectPath);
|
|
85
87
|
// -- Act --
|
|
86
|
-
|
|
88
|
+
const targets = xcodeProject.getAllTargets();
|
|
87
89
|
// -- Assert --
|
|
88
90
|
expect(targets).toEqual([]);
|
|
89
91
|
});
|
|
90
92
|
});
|
|
91
|
-
describe('project with missing configuration list',
|
|
92
|
-
it('should return an empty array',
|
|
93
|
+
describe('project with missing configuration list', () => {
|
|
94
|
+
it('should return an empty array', () => {
|
|
93
95
|
// -- Arrange --
|
|
94
|
-
|
|
96
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(damagedProjectPath);
|
|
95
97
|
// -- Act --
|
|
96
|
-
|
|
98
|
+
const targets = xcodeProject.getAllTargets();
|
|
97
99
|
// -- Assert --
|
|
98
100
|
expect(targets).toEqual([]);
|
|
99
101
|
});
|
|
100
102
|
});
|
|
101
103
|
});
|
|
102
|
-
describe('updateXcodeProject',
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
beforeEach(
|
|
107
|
-
|
|
104
|
+
describe('updateXcodeProject', () => {
|
|
105
|
+
let sourceProjectPath;
|
|
106
|
+
let tempProjectPath;
|
|
107
|
+
let xcodeProject;
|
|
108
|
+
beforeEach(() => {
|
|
109
|
+
const tempDir = path.join(os.tmpdir(), fs.mkdtempSync('update-xcode-project'));
|
|
108
110
|
fs.mkdirSync(tempDir);
|
|
109
111
|
sourceProjectPath = singleTargetProjectPath;
|
|
110
112
|
tempProjectPath = path.resolve(tempDir, 'project.pbxproj');
|
|
111
113
|
fs.copyFileSync(sourceProjectPath, tempProjectPath);
|
|
112
114
|
xcodeProject = new xcode_manager_1.XcodeProject(tempProjectPath);
|
|
113
115
|
});
|
|
114
|
-
describe('upload symbols script',
|
|
115
|
-
|
|
116
|
-
var scriptVariants = [
|
|
116
|
+
describe('upload symbols script', () => {
|
|
117
|
+
const scriptVariants = [
|
|
117
118
|
{
|
|
118
119
|
uploadSource: true,
|
|
119
120
|
includeHomebrewPath: true,
|
|
@@ -131,42 +132,42 @@ describe('XcodeManager', function () {
|
|
|
131
132
|
includeHomebrewPath: false,
|
|
132
133
|
},
|
|
133
134
|
];
|
|
134
|
-
|
|
135
|
-
describe(
|
|
136
|
-
beforeEach(
|
|
135
|
+
for (const variant of scriptVariants) {
|
|
136
|
+
describe(`upload source = ${variant.uploadSource?.toString()} and include homebrew path = ${variant.includeHomebrewPath.toString()}`, () => {
|
|
137
|
+
beforeEach(() => {
|
|
137
138
|
jest
|
|
138
139
|
.spyOn(fs, 'existsSync')
|
|
139
140
|
.mockReturnValue(variant.includeHomebrewPath);
|
|
140
141
|
});
|
|
141
|
-
afterEach(
|
|
142
|
+
afterEach(() => {
|
|
142
143
|
jest.restoreAllMocks();
|
|
143
144
|
});
|
|
144
|
-
it('should add the upload symbols script to the target',
|
|
145
|
+
it('should add the upload symbols script to the target', () => {
|
|
145
146
|
// -- Arrange --
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
const generatedShellScript = (0, templates_1.getRunScriptTemplate)(projectData.organization.slug, projectData.slug, variant.uploadSource, variant.includeHomebrewPath);
|
|
148
|
+
const expectedShellScript = `"${generatedShellScript.replace(/"/g, '\\"')}"`;
|
|
148
149
|
// -- Act --
|
|
149
150
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
150
151
|
variant.uploadSource);
|
|
151
152
|
// -- Assert --
|
|
152
|
-
|
|
153
|
+
const updatedXcodeProject = new xcode_manager_1.XcodeProject(tempProjectPath);
|
|
153
154
|
// Expect the upload symbols script to be added
|
|
154
|
-
|
|
155
|
+
const scriptObjects = updatedXcodeProject.objects.PBXShellScriptBuildPhase;
|
|
155
156
|
expect(scriptObjects).toBeDefined();
|
|
156
157
|
if (!scriptObjects) {
|
|
157
158
|
throw new Error('Script objects not found');
|
|
158
159
|
}
|
|
159
|
-
|
|
160
|
+
const scriptKeys = Object.keys(scriptObjects);
|
|
160
161
|
expect(scriptKeys).toHaveLength(2);
|
|
161
162
|
// Find the script ID
|
|
162
|
-
|
|
163
|
+
const scriptId = scriptKeys.find((key) => !key.endsWith('_comment'));
|
|
163
164
|
expect(scriptId).toBeDefined();
|
|
164
165
|
if (!scriptId) {
|
|
165
166
|
throw new Error('Script ID not found');
|
|
166
167
|
}
|
|
167
168
|
expect(scriptId).toMatch(/^[A-F0-9]{24}$/i);
|
|
168
169
|
// Expect the script to be added
|
|
169
|
-
|
|
170
|
+
const script = scriptObjects[scriptId];
|
|
170
171
|
expect(script).toBeDefined();
|
|
171
172
|
expect(typeof script).not.toBe('string');
|
|
172
173
|
expect(script.inputPaths).toEqual([
|
|
@@ -175,53 +176,49 @@ describe('XcodeManager', function () {
|
|
|
175
176
|
expect(script.outputPaths).toEqual([]);
|
|
176
177
|
expect(script.shellPath).toBe('/bin/sh');
|
|
177
178
|
expect(script.shellScript).toEqual(expectedShellScript);
|
|
178
|
-
|
|
179
|
+
const commentKey = `${scriptId}_comment`;
|
|
179
180
|
expect(scriptKeys).toContain(commentKey);
|
|
180
181
|
expect(scriptObjects[commentKey]).toBe('Upload Debug Symbols to Sentry');
|
|
181
182
|
});
|
|
182
183
|
});
|
|
183
|
-
};
|
|
184
|
-
for (var _i = 0, scriptVariants_1 = scriptVariants; _i < scriptVariants_1.length; _i++) {
|
|
185
|
-
var variant = scriptVariants_1[_i];
|
|
186
|
-
_loop_1(variant);
|
|
187
184
|
}
|
|
188
185
|
});
|
|
189
|
-
describe('debug information format and sandbox',
|
|
190
|
-
describe('upload source is false',
|
|
191
|
-
it('should not update the Xcode project',
|
|
186
|
+
describe('debug information format and sandbox', () => {
|
|
187
|
+
describe('upload source is false', () => {
|
|
188
|
+
it('should not update the Xcode project', () => {
|
|
192
189
|
// -- Act --
|
|
193
190
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
194
191
|
false);
|
|
195
192
|
// -- Assert --
|
|
196
|
-
|
|
193
|
+
const expectedXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
197
194
|
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(expectedXcodeProject.objects.XCBuildConfiguration);
|
|
198
195
|
});
|
|
199
196
|
});
|
|
200
|
-
describe('upload source is true',
|
|
201
|
-
|
|
202
|
-
describe('named target not found',
|
|
203
|
-
it('should not update the flags in the Xcode project',
|
|
197
|
+
describe('upload source is true', () => {
|
|
198
|
+
const uploadSource = true;
|
|
199
|
+
describe('named target not found', () => {
|
|
200
|
+
it('should not update the flags in the Xcode project', () => {
|
|
204
201
|
// -- Act --
|
|
205
202
|
xcodeProject.updateXcodeProject(projectData, 'Invalid Target Name', false, // Ignore SPM reference
|
|
206
203
|
uploadSource);
|
|
207
204
|
// -- Assert --
|
|
208
|
-
|
|
205
|
+
const originalXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
209
206
|
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
210
207
|
});
|
|
211
208
|
});
|
|
212
|
-
describe('named target found',
|
|
213
|
-
describe('build configurations is undefined',
|
|
214
|
-
it('should not update the Xcode project',
|
|
209
|
+
describe('named target found', () => {
|
|
210
|
+
describe('build configurations is undefined', () => {
|
|
211
|
+
it('should not update the Xcode project', () => {
|
|
215
212
|
// -- Act --
|
|
216
213
|
xcodeProject.updateXcodeProject(projectData, 'Invalid Target Name', false, // Ignore SPM reference
|
|
217
214
|
uploadSource);
|
|
218
215
|
// -- Assert --
|
|
219
|
-
|
|
216
|
+
const originalXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
220
217
|
expect(xcodeProject.objects.XCBuildConfiguration).toEqual(originalXcodeProject.objects.XCBuildConfiguration);
|
|
221
218
|
});
|
|
222
219
|
});
|
|
223
|
-
describe('no build configurations found',
|
|
224
|
-
it('should not update the Xcode project',
|
|
220
|
+
describe('no build configurations found', () => {
|
|
221
|
+
it('should not update the Xcode project', () => {
|
|
225
222
|
// -- Arrange --
|
|
226
223
|
xcodeProject.objects.XCBuildConfiguration = {};
|
|
227
224
|
// -- Act --
|
|
@@ -231,64 +228,65 @@ describe('XcodeManager', function () {
|
|
|
231
228
|
expect(xcodeProject.objects.XCBuildConfiguration).toEqual({});
|
|
232
229
|
});
|
|
233
230
|
});
|
|
234
|
-
describe('build configurations found',
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
it('should update the target configuration lists',
|
|
240
|
-
var _a, _b;
|
|
231
|
+
describe('build configurations found', () => {
|
|
232
|
+
const debugProjectBuildConfigurationListId = 'D4E604DA2D50CEEE00CAB00F';
|
|
233
|
+
const releaseProjectBuildConfigurationListId = 'D4E604DB2D50CEEE00CAB00F';
|
|
234
|
+
const debugTargetBuildConfigurationListId = 'D4E604DD2D50CEEE00CAB00F';
|
|
235
|
+
const releaseTargetBuildConfigurationListId = 'D4E604DE2D50CEEE00CAB00F';
|
|
236
|
+
it('should update the target configuration lists', () => {
|
|
241
237
|
// -- Act --
|
|
242
238
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
243
239
|
uploadSource);
|
|
244
240
|
// -- Assert --
|
|
245
241
|
expect(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
246
242
|
// Both Debug and Release are configured equally
|
|
247
|
-
|
|
243
|
+
const expectedConfigKeys = [
|
|
248
244
|
debugTargetBuildConfigurationListId,
|
|
249
245
|
releaseTargetBuildConfigurationListId, // Release
|
|
250
246
|
];
|
|
251
|
-
for (
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
.XCBuildConfiguration) === null || _a === void 0 ? void 0 : _a[key];
|
|
247
|
+
for (const key of expectedConfigKeys) {
|
|
248
|
+
const buildConfiguration = xcodeProject.objects
|
|
249
|
+
.XCBuildConfiguration?.[key];
|
|
255
250
|
expect(buildConfiguration).toBeDefined();
|
|
256
251
|
expect(typeof buildConfiguration).not.toBe('string');
|
|
257
|
-
|
|
252
|
+
const buildSettings = buildConfiguration.buildSettings ?? {};
|
|
258
253
|
expect(buildSettings.DEBUG_INFORMATION_FORMAT).toBe('"dwarf-with-dsym"');
|
|
259
254
|
expect(buildSettings.ENABLE_USER_SCRIPT_SANDBOXING).toBe('"NO"');
|
|
260
255
|
}
|
|
261
256
|
});
|
|
262
|
-
it('should not update the project configuration lists',
|
|
263
|
-
var _a, _b, _c, _d, _e, _f;
|
|
257
|
+
it('should not update the project configuration lists', () => {
|
|
264
258
|
// -- Act --
|
|
265
259
|
xcodeProject.updateXcodeProject(projectData, 'Project', false, // Ignore SPM reference
|
|
266
260
|
uploadSource);
|
|
267
261
|
// -- Assert --
|
|
268
262
|
expect(xcodeProject.objects.XCBuildConfiguration).toBeDefined();
|
|
269
263
|
// Check project build configurations 'Debug'
|
|
270
|
-
|
|
271
|
-
.XCBuildConfiguration
|
|
264
|
+
const debugBuildConfiguration = xcodeProject.objects
|
|
265
|
+
.XCBuildConfiguration?.[debugProjectBuildConfigurationListId];
|
|
272
266
|
expect(debugBuildConfiguration).toBeDefined();
|
|
273
267
|
expect(typeof debugBuildConfiguration).not.toBe('string');
|
|
274
|
-
expect(
|
|
275
|
-
|
|
268
|
+
expect(debugBuildConfiguration.buildSettings
|
|
269
|
+
?.DEBUG_INFORMATION_FORMAT).toBe('dwarf');
|
|
270
|
+
expect(debugBuildConfiguration.buildSettings
|
|
271
|
+
?.ENABLE_USER_SCRIPT_SANDBOXING).toBe('YES');
|
|
276
272
|
// Check project build configurations 'Release'
|
|
277
|
-
|
|
278
|
-
.XCBuildConfiguration
|
|
273
|
+
const releaseBuildConfiguration = xcodeProject.objects
|
|
274
|
+
.XCBuildConfiguration?.[releaseProjectBuildConfigurationListId];
|
|
279
275
|
expect(releaseBuildConfiguration).toBeDefined();
|
|
280
276
|
expect(typeof releaseBuildConfiguration).not.toBe('string');
|
|
281
|
-
expect(
|
|
282
|
-
|
|
277
|
+
expect(releaseBuildConfiguration.buildSettings
|
|
278
|
+
?.DEBUG_INFORMATION_FORMAT).toBe('"dwarf-with-dsym"');
|
|
279
|
+
expect(releaseBuildConfiguration.buildSettings
|
|
280
|
+
?.ENABLE_USER_SCRIPT_SANDBOXING).toBe('YES');
|
|
283
281
|
});
|
|
284
282
|
});
|
|
285
283
|
});
|
|
286
284
|
});
|
|
287
285
|
});
|
|
288
|
-
describe('add SPM reference',
|
|
289
|
-
|
|
290
|
-
describe('framework build phase already contains Sentry',
|
|
291
|
-
it('should not update the Xcode project',
|
|
286
|
+
describe('add SPM reference', () => {
|
|
287
|
+
const addSPMReference = true;
|
|
288
|
+
describe('framework build phase already contains Sentry', () => {
|
|
289
|
+
it('should not update the Xcode project', () => {
|
|
292
290
|
// -- Arrange --
|
|
293
291
|
xcodeProject.objects.PBXFrameworksBuildPhase = {
|
|
294
292
|
'framework-id': {
|
|
@@ -303,7 +301,7 @@ describe('XcodeManager', function () {
|
|
|
303
301
|
// -- Act --
|
|
304
302
|
xcodeProject.updateXcodeProject(projectData, 'Project', addSPMReference);
|
|
305
303
|
// -- Assert --
|
|
306
|
-
|
|
304
|
+
const expectedXcodeProject = new xcode_manager_1.XcodeProject(sourceProjectPath);
|
|
307
305
|
expectedXcodeProject.objects.PBXFrameworksBuildPhase = {
|
|
308
306
|
'framework-id': {
|
|
309
307
|
files: [
|
|
@@ -319,13 +317,12 @@ describe('XcodeManager', function () {
|
|
|
319
317
|
expect(xcodeProject.objects.XCSwiftPackageProductDependency).toEqual(expectedXcodeProject.objects.XCSwiftPackageProductDependency);
|
|
320
318
|
});
|
|
321
319
|
});
|
|
322
|
-
it('should add the SPM reference to the target',
|
|
323
|
-
var _a;
|
|
320
|
+
it('should add the SPM reference to the target', () => {
|
|
324
321
|
// -- Act --
|
|
325
322
|
xcodeProject.updateXcodeProject(projectData, 'Project', addSPMReference);
|
|
326
323
|
// -- Assert --
|
|
327
324
|
// Get the target
|
|
328
|
-
|
|
325
|
+
const target = xcodeProject.objects.PBXNativeTarget?.['D4E604CC2D50CEEC00CAB00F'];
|
|
329
326
|
expect(target).toBeDefined();
|
|
330
327
|
if (!target) {
|
|
331
328
|
throw new Error('Target is undefined');
|
|
@@ -338,18 +335,18 @@ describe('XcodeManager', function () {
|
|
|
338
335
|
}),
|
|
339
336
|
]);
|
|
340
337
|
// Check the SPM package reference object is added to the project
|
|
341
|
-
|
|
338
|
+
const remoteSwiftPackageReferences = xcodeProject.objects.XCRemoteSwiftPackageReference;
|
|
342
339
|
expect(remoteSwiftPackageReferences).toBeDefined();
|
|
343
340
|
if (!remoteSwiftPackageReferences) {
|
|
344
341
|
throw new Error('XCRemoteSwiftPackageReference is undefined');
|
|
345
342
|
}
|
|
346
|
-
|
|
343
|
+
const rspRefKeys = Object.keys(remoteSwiftPackageReferences);
|
|
347
344
|
expect(rspRefKeys).toHaveLength(2);
|
|
348
345
|
// First key is expected to be the UUID of the SPM package reference
|
|
349
346
|
expect(rspRefKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
350
347
|
// Second key is expected to be the UUID of the SPM package reference with _comment suffix
|
|
351
348
|
expect(rspRefKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
352
|
-
expect(remoteSwiftPackageReferences
|
|
349
|
+
expect(remoteSwiftPackageReferences?.[rspRefKeys[0]]).toEqual({
|
|
353
350
|
isa: 'XCRemoteSwiftPackageReference',
|
|
354
351
|
repositoryURL: '"https://github.com/getsentry/sentry-cocoa/"',
|
|
355
352
|
requirement: {
|
|
@@ -357,20 +354,20 @@ describe('XcodeManager', function () {
|
|
|
357
354
|
minimumVersion: '8.0.0',
|
|
358
355
|
},
|
|
359
356
|
});
|
|
360
|
-
expect(remoteSwiftPackageReferences
|
|
357
|
+
expect(remoteSwiftPackageReferences?.[rspRefKeys[1]]).toBe('XCRemoteSwiftPackageReference "sentry-cocoa"');
|
|
361
358
|
// Check the SPM package is a dependency of the target
|
|
362
|
-
|
|
359
|
+
const packageProductDependencies = xcodeProject.objects.XCSwiftPackageProductDependency;
|
|
363
360
|
expect(packageProductDependencies).toBeDefined();
|
|
364
361
|
if (!packageProductDependencies) {
|
|
365
362
|
throw new Error('XCSwiftPackageProductDependency is undefined');
|
|
366
363
|
}
|
|
367
|
-
|
|
364
|
+
const ppDepKeys = Object.keys(packageProductDependencies);
|
|
368
365
|
expect(ppDepKeys).toHaveLength(2);
|
|
369
366
|
// First key is expected to be the UUID of the SPM package dependency
|
|
370
367
|
expect(ppDepKeys[0]).toMatch(/^[A-F0-9]{24}$/i);
|
|
371
368
|
// Second key is expected to be the UUID of the SPM package dependency with _comment suffix
|
|
372
369
|
expect(ppDepKeys[1]).toMatch(/^[A-F0-9]{24}_comment$/i);
|
|
373
|
-
expect(packageProductDependencies
|
|
370
|
+
expect(packageProductDependencies?.[ppDepKeys[0]]).toEqual({
|
|
374
371
|
isa: 'XCSwiftPackageProductDependency',
|
|
375
372
|
package: rspRefKeys[0],
|
|
376
373
|
package_comment: 'XCRemoteSwiftPackageReference "sentry-cocoa"',
|
|
@@ -380,32 +377,32 @@ describe('XcodeManager', function () {
|
|
|
380
377
|
});
|
|
381
378
|
});
|
|
382
379
|
});
|
|
383
|
-
describe('filesForTarget',
|
|
384
|
-
describe('targets are undefined',
|
|
385
|
-
it('should return undefined',
|
|
380
|
+
describe('filesForTarget', () => {
|
|
381
|
+
describe('targets are undefined', () => {
|
|
382
|
+
it('should return undefined', () => {
|
|
386
383
|
// -- Arrange --
|
|
387
|
-
|
|
384
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
388
385
|
xcodeProject.objects.PBXNativeTarget = undefined;
|
|
389
386
|
// -- Act --
|
|
390
|
-
|
|
387
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
391
388
|
// -- Assert --
|
|
392
389
|
expect(files).toBeUndefined();
|
|
393
390
|
});
|
|
394
391
|
});
|
|
395
|
-
describe('target not found',
|
|
396
|
-
it('should return undefined',
|
|
392
|
+
describe('target not found', () => {
|
|
393
|
+
it('should return undefined', () => {
|
|
397
394
|
// -- Arrange --
|
|
398
|
-
|
|
395
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
399
396
|
// -- Act --
|
|
400
|
-
|
|
397
|
+
const files = xcodeProject.filesForTarget('NonExistentTarget');
|
|
401
398
|
// -- Assert --
|
|
402
399
|
expect(files).toBeUndefined();
|
|
403
400
|
});
|
|
404
401
|
});
|
|
405
|
-
describe('target build phases are undefined',
|
|
406
|
-
it('should return undefined',
|
|
402
|
+
describe('target build phases are undefined', () => {
|
|
403
|
+
it('should return undefined', () => {
|
|
407
404
|
// -- Arrange --
|
|
408
|
-
|
|
405
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
409
406
|
xcodeProject.objects.PBXNativeTarget = {
|
|
410
407
|
Project: {
|
|
411
408
|
name: 'Project',
|
|
@@ -413,15 +410,15 @@ describe('XcodeManager', function () {
|
|
|
413
410
|
},
|
|
414
411
|
};
|
|
415
412
|
// -- Act --
|
|
416
|
-
|
|
413
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
417
414
|
// -- Assert --
|
|
418
415
|
expect(files).toBeUndefined();
|
|
419
416
|
});
|
|
420
417
|
});
|
|
421
|
-
describe('build phases are undefined',
|
|
422
|
-
it('should return undefined',
|
|
418
|
+
describe('build phases are undefined', () => {
|
|
419
|
+
it('should return undefined', () => {
|
|
423
420
|
// -- Arrange --
|
|
424
|
-
|
|
421
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
425
422
|
xcodeProject.objects.PBXNativeTarget = {
|
|
426
423
|
Project: {
|
|
427
424
|
name: 'Project',
|
|
@@ -430,15 +427,15 @@ describe('XcodeManager', function () {
|
|
|
430
427
|
};
|
|
431
428
|
xcodeProject.objects.PBXSourcesBuildPhase = undefined;
|
|
432
429
|
// -- Act --
|
|
433
|
-
|
|
430
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
434
431
|
// -- Assert --
|
|
435
432
|
expect(files).toBeUndefined();
|
|
436
433
|
});
|
|
437
434
|
});
|
|
438
|
-
describe('referenced build phase is undefined',
|
|
439
|
-
it('should return undefined',
|
|
435
|
+
describe('referenced build phase is undefined', () => {
|
|
436
|
+
it('should return undefined', () => {
|
|
440
437
|
// -- Arrange --
|
|
441
|
-
|
|
438
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
442
439
|
xcodeProject.objects.PBXNativeTarget = {
|
|
443
440
|
Project: {
|
|
444
441
|
name: 'Project',
|
|
@@ -450,15 +447,15 @@ describe('XcodeManager', function () {
|
|
|
450
447
|
},
|
|
451
448
|
};
|
|
452
449
|
// -- Act --
|
|
453
|
-
|
|
450
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
454
451
|
// -- Assert --
|
|
455
452
|
expect(files).toBeUndefined();
|
|
456
453
|
});
|
|
457
454
|
});
|
|
458
|
-
describe('build phase files are undefined',
|
|
459
|
-
it('should return empty array',
|
|
455
|
+
describe('build phase files are undefined', () => {
|
|
456
|
+
it('should return empty array', () => {
|
|
460
457
|
// -- Arrange --
|
|
461
|
-
|
|
458
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
462
459
|
xcodeProject.objects.PBXNativeTarget = {
|
|
463
460
|
Project: {
|
|
464
461
|
name: 'Project',
|
|
@@ -475,24 +472,24 @@ describe('XcodeManager', function () {
|
|
|
475
472
|
},
|
|
476
473
|
};
|
|
477
474
|
// -- Act --
|
|
478
|
-
|
|
475
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
479
476
|
// -- Assert --
|
|
480
477
|
expect(files).toEqual([]);
|
|
481
478
|
});
|
|
482
479
|
});
|
|
483
|
-
describe('build phase has no files',
|
|
484
|
-
it('should return empty array',
|
|
480
|
+
describe('build phase has no files', () => {
|
|
481
|
+
it('should return empty array', () => {
|
|
485
482
|
// -- Arrange --
|
|
486
|
-
|
|
483
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
487
484
|
// -- Act --
|
|
488
|
-
|
|
485
|
+
const files = xcodeProject.filesForTarget('Project');
|
|
489
486
|
// -- Assert --
|
|
490
487
|
expect(files).toEqual([]);
|
|
491
488
|
});
|
|
492
489
|
});
|
|
493
|
-
describe('build phase with files',
|
|
494
|
-
|
|
495
|
-
beforeEach(
|
|
490
|
+
describe('build phase with files', () => {
|
|
491
|
+
let xcodeProject;
|
|
492
|
+
beforeEach(() => {
|
|
496
493
|
xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
497
494
|
xcodeProject.objects.PBXNativeTarget = {
|
|
498
495
|
'some-target': {
|
|
@@ -526,40 +523,40 @@ describe('XcodeManager', function () {
|
|
|
526
523
|
},
|
|
527
524
|
];
|
|
528
525
|
});
|
|
529
|
-
describe('build file objects are not defined',
|
|
530
|
-
it('should return empty array',
|
|
526
|
+
describe('build file objects are not defined', () => {
|
|
527
|
+
it('should return empty array', () => {
|
|
531
528
|
// -- Arrange --
|
|
532
529
|
xcodeProject.objects.PBXBuildFile = undefined;
|
|
533
530
|
// -- Act --
|
|
534
|
-
|
|
531
|
+
const files = xcodeProject.filesForTarget('some-target');
|
|
535
532
|
// -- Assert --
|
|
536
533
|
expect(files).toEqual([]);
|
|
537
534
|
});
|
|
538
535
|
});
|
|
539
|
-
describe('build file object is not found',
|
|
540
|
-
it('should return empty array',
|
|
536
|
+
describe('build file object is not found', () => {
|
|
537
|
+
it('should return empty array', () => {
|
|
541
538
|
// -- Arrange --
|
|
542
539
|
xcodeProject.objects.PBXBuildFile = {};
|
|
543
540
|
// -- Act --
|
|
544
|
-
|
|
541
|
+
const files = xcodeProject.filesForTarget('some-target');
|
|
545
542
|
// -- Assert --
|
|
546
543
|
expect(files).toEqual([]);
|
|
547
544
|
});
|
|
548
545
|
});
|
|
549
|
-
describe('build file object exists',
|
|
550
|
-
describe('file reference is undefined',
|
|
551
|
-
it('should ignore the file',
|
|
546
|
+
describe('build file object exists', () => {
|
|
547
|
+
describe('file reference is undefined', () => {
|
|
548
|
+
it('should ignore the file', () => {
|
|
552
549
|
// -- Arrange --
|
|
553
550
|
xcodeProject.files = [];
|
|
554
551
|
// -- Act --
|
|
555
|
-
|
|
552
|
+
const files = xcodeProject.filesForTarget('some-target');
|
|
556
553
|
// -- Assert --
|
|
557
554
|
expect(files).toEqual([]);
|
|
558
555
|
});
|
|
559
556
|
});
|
|
560
|
-
it('should return array of file paths',
|
|
557
|
+
it('should return array of file paths', () => {
|
|
561
558
|
// -- Act --
|
|
562
|
-
|
|
559
|
+
const files = xcodeProject.filesForTarget('some-target');
|
|
563
560
|
// -- Assert --
|
|
564
561
|
expect(files).toEqual([
|
|
565
562
|
path.join(appleProjectsPath, 'spm-swiftui-single-target', 'file-path'),
|
|
@@ -568,39 +565,38 @@ describe('XcodeManager', function () {
|
|
|
568
565
|
});
|
|
569
566
|
});
|
|
570
567
|
});
|
|
571
|
-
describe('projectFiles',
|
|
572
|
-
describe('no groups in project',
|
|
573
|
-
it('should return empty array',
|
|
568
|
+
describe('projectFiles', () => {
|
|
569
|
+
describe('no groups in project', () => {
|
|
570
|
+
it('should return empty array', () => {
|
|
574
571
|
// -- Arrange --
|
|
575
|
-
|
|
572
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
576
573
|
xcodeProject.objects.PBXGroup = undefined;
|
|
577
574
|
// -- Act --
|
|
578
|
-
|
|
575
|
+
const files = xcodeProject.projectFiles();
|
|
579
576
|
// -- Assert --
|
|
580
577
|
expect(files).toEqual([]);
|
|
581
578
|
});
|
|
582
579
|
});
|
|
583
|
-
describe('main group not found',
|
|
584
|
-
it('should return empty array',
|
|
585
|
-
var _a;
|
|
580
|
+
describe('main group not found', () => {
|
|
581
|
+
it('should return empty array', () => {
|
|
586
582
|
// -- Arrange --
|
|
587
|
-
|
|
588
|
-
|
|
583
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
584
|
+
const project = xcodeProject.objects.PBXProject?.['D4E604C52D50CEEC00CAB00F'];
|
|
589
585
|
if (project) {
|
|
590
586
|
delete project.mainGroup;
|
|
591
587
|
}
|
|
592
588
|
// -- Act --
|
|
593
|
-
|
|
589
|
+
const files = xcodeProject.projectFiles();
|
|
594
590
|
// -- Assert --
|
|
595
591
|
expect(files).toEqual([]);
|
|
596
592
|
});
|
|
597
593
|
});
|
|
598
|
-
describe('main group found',
|
|
599
|
-
it('should return array of file paths',
|
|
594
|
+
describe('main group found', () => {
|
|
595
|
+
it('should return array of file paths', () => {
|
|
600
596
|
// -- Arrange --
|
|
601
|
-
|
|
597
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
602
598
|
// -- Act --
|
|
603
|
-
|
|
599
|
+
const files = xcodeProject.projectFiles();
|
|
604
600
|
// -- Assert --
|
|
605
601
|
expect(files).toEqual([
|
|
606
602
|
{
|
|
@@ -609,47 +605,47 @@ describe('XcodeManager', function () {
|
|
|
609
605
|
},
|
|
610
606
|
]);
|
|
611
607
|
});
|
|
612
|
-
it('should cache the result',
|
|
608
|
+
it('should cache the result', () => {
|
|
613
609
|
// -- Arrange --
|
|
614
|
-
|
|
610
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
615
611
|
// Smoke test
|
|
616
612
|
expect(xcodeProject.files).toBeUndefined();
|
|
617
613
|
// -- Act --
|
|
618
|
-
|
|
614
|
+
const files = xcodeProject.projectFiles();
|
|
619
615
|
// -- Assert --
|
|
620
616
|
expect(xcodeProject.files).toBeDefined();
|
|
621
617
|
expect(xcodeProject.files).toEqual(files);
|
|
622
618
|
});
|
|
623
619
|
});
|
|
624
620
|
});
|
|
625
|
-
describe('buildGroup',
|
|
626
|
-
describe('group has undefined children',
|
|
627
|
-
it('should return empty array',
|
|
621
|
+
describe('buildGroup', () => {
|
|
622
|
+
describe('group has undefined children', () => {
|
|
623
|
+
it('should return empty array', () => {
|
|
628
624
|
// -- Arrange --
|
|
629
|
-
|
|
630
|
-
|
|
625
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
626
|
+
const group = {
|
|
631
627
|
children: undefined,
|
|
632
628
|
path: '',
|
|
633
629
|
};
|
|
634
630
|
// -- Act --
|
|
635
|
-
|
|
631
|
+
const files = xcodeProject.buildGroup(group);
|
|
636
632
|
// -- Assert --
|
|
637
633
|
expect(files).toEqual([]);
|
|
638
634
|
});
|
|
639
635
|
});
|
|
640
|
-
describe('group has no children',
|
|
641
|
-
it('should return empty array',
|
|
636
|
+
describe('group has no children', () => {
|
|
637
|
+
it('should return empty array', () => {
|
|
642
638
|
// -- Arrange --
|
|
643
|
-
|
|
644
|
-
|
|
639
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
640
|
+
const group = {};
|
|
645
641
|
// -- Act --
|
|
646
|
-
|
|
642
|
+
const files = xcodeProject.buildGroup(group);
|
|
647
643
|
// -- Assert --
|
|
648
644
|
expect(files).toEqual([]);
|
|
649
645
|
});
|
|
650
646
|
});
|
|
651
|
-
describe('group child is file reference',
|
|
652
|
-
|
|
647
|
+
describe('group child is file reference', () => {
|
|
648
|
+
const group = {
|
|
653
649
|
children: [
|
|
654
650
|
{
|
|
655
651
|
value: 'D4E604CD2D50CEEC00CAB00F',
|
|
@@ -657,22 +653,22 @@ describe('XcodeManager', function () {
|
|
|
657
653
|
],
|
|
658
654
|
path: '',
|
|
659
655
|
};
|
|
660
|
-
describe('file references are undefined',
|
|
661
|
-
it('should return empty array',
|
|
656
|
+
describe('file references are undefined', () => {
|
|
657
|
+
it('should return empty array', () => {
|
|
662
658
|
// -- Arrange --
|
|
663
|
-
|
|
659
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
664
660
|
xcodeProject.objects.PBXFileReference = undefined;
|
|
665
661
|
// -- Act --
|
|
666
|
-
|
|
662
|
+
const files = xcodeProject.buildGroup(group);
|
|
667
663
|
// -- Assert --
|
|
668
664
|
expect(files).toEqual([]);
|
|
669
665
|
});
|
|
670
666
|
});
|
|
671
|
-
describe('file reference is string',
|
|
672
|
-
it('should be ignored',
|
|
667
|
+
describe('file reference is string', () => {
|
|
668
|
+
it('should be ignored', () => {
|
|
673
669
|
// -- Arrange --
|
|
674
|
-
|
|
675
|
-
|
|
670
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
671
|
+
const group = {
|
|
676
672
|
children: [
|
|
677
673
|
{
|
|
678
674
|
value: 'D4E604CD2D50CEEC00CAB00F_comment',
|
|
@@ -681,21 +677,21 @@ describe('XcodeManager', function () {
|
|
|
681
677
|
path: '',
|
|
682
678
|
};
|
|
683
679
|
// -- Act --
|
|
684
|
-
|
|
680
|
+
const files = xcodeProject.buildGroup(group);
|
|
685
681
|
// -- Assert --
|
|
686
682
|
expect(files).toEqual([]);
|
|
687
683
|
});
|
|
688
684
|
});
|
|
689
|
-
describe('file reference is valid',
|
|
690
|
-
it('should return array of escaped paths',
|
|
685
|
+
describe('file reference is valid', () => {
|
|
686
|
+
it('should return array of escaped paths', () => {
|
|
691
687
|
// -- Arrange --
|
|
692
|
-
|
|
688
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
693
689
|
xcodeProject.objects.PBXFileReference = {
|
|
694
690
|
D4E604CD2D50CEEC00CAB00F: {
|
|
695
691
|
path: '"some/path/to/file.swift"',
|
|
696
692
|
},
|
|
697
693
|
};
|
|
698
|
-
|
|
694
|
+
const group = {
|
|
699
695
|
children: [
|
|
700
696
|
{
|
|
701
697
|
value: 'D4E604CD2D50CEEC00CAB00F',
|
|
@@ -704,7 +700,7 @@ describe('XcodeManager', function () {
|
|
|
704
700
|
path: '',
|
|
705
701
|
};
|
|
706
702
|
// -- Act --
|
|
707
|
-
|
|
703
|
+
const files = xcodeProject.buildGroup(group);
|
|
708
704
|
// -- Assert --
|
|
709
705
|
expect(files).toEqual([
|
|
710
706
|
{
|
|
@@ -715,8 +711,8 @@ describe('XcodeManager', function () {
|
|
|
715
711
|
});
|
|
716
712
|
});
|
|
717
713
|
});
|
|
718
|
-
describe('group child is group reference',
|
|
719
|
-
|
|
714
|
+
describe('group child is group reference', () => {
|
|
715
|
+
const group = {
|
|
720
716
|
children: [
|
|
721
717
|
{
|
|
722
718
|
value: 'D4E604C42D50CEEC00CAB00F',
|
|
@@ -724,22 +720,22 @@ describe('XcodeManager', function () {
|
|
|
724
720
|
],
|
|
725
721
|
path: '',
|
|
726
722
|
};
|
|
727
|
-
describe('groups are undefined',
|
|
728
|
-
it('should return empty array',
|
|
723
|
+
describe('groups are undefined', () => {
|
|
724
|
+
it('should return empty array', () => {
|
|
729
725
|
// -- Arrange --
|
|
730
|
-
|
|
726
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
731
727
|
xcodeProject.objects.PBXGroup = undefined;
|
|
732
728
|
// -- Act --
|
|
733
|
-
|
|
729
|
+
const files = xcodeProject.buildGroup(group);
|
|
734
730
|
// -- Assert --
|
|
735
731
|
expect(files).toEqual([]);
|
|
736
732
|
});
|
|
737
733
|
});
|
|
738
|
-
describe('group reference is string',
|
|
739
|
-
it('should return array of file paths',
|
|
734
|
+
describe('group reference is string', () => {
|
|
735
|
+
it('should return array of file paths', () => {
|
|
740
736
|
// -- Arrange --
|
|
741
|
-
|
|
742
|
-
|
|
737
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
738
|
+
const group = {
|
|
743
739
|
children: [
|
|
744
740
|
{
|
|
745
741
|
value: 'D4E604CE2D50CEEC00CAB00F_comment',
|
|
@@ -748,17 +744,17 @@ describe('XcodeManager', function () {
|
|
|
748
744
|
path: '',
|
|
749
745
|
};
|
|
750
746
|
// -- Act --
|
|
751
|
-
|
|
747
|
+
const files = xcodeProject.buildGroup(group);
|
|
752
748
|
// -- Assert --
|
|
753
749
|
expect(files).toEqual([]);
|
|
754
750
|
});
|
|
755
751
|
});
|
|
756
|
-
describe('group reference is valid',
|
|
757
|
-
it('should return array of file paths',
|
|
752
|
+
describe('group reference is valid', () => {
|
|
753
|
+
it('should return array of file paths', () => {
|
|
758
754
|
// -- Arrange --
|
|
759
|
-
|
|
755
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
760
756
|
// -- Act --
|
|
761
|
-
|
|
757
|
+
const files = xcodeProject.buildGroup(group);
|
|
762
758
|
// -- Assert --
|
|
763
759
|
expect(files).toEqual([
|
|
764
760
|
{
|
|
@@ -768,11 +764,11 @@ describe('XcodeManager', function () {
|
|
|
768
764
|
]);
|
|
769
765
|
});
|
|
770
766
|
});
|
|
771
|
-
describe('group reference has path',
|
|
772
|
-
it('should append the path to the file paths',
|
|
767
|
+
describe('group reference has path', () => {
|
|
768
|
+
it('should append the path to the file paths', () => {
|
|
773
769
|
// -- Arrange --
|
|
774
|
-
|
|
775
|
-
|
|
770
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
771
|
+
const group = {
|
|
776
772
|
children: [
|
|
777
773
|
{
|
|
778
774
|
value: 'sub-group',
|
|
@@ -780,14 +776,14 @@ describe('XcodeManager', function () {
|
|
|
780
776
|
],
|
|
781
777
|
path: '"some/path/to/group"',
|
|
782
778
|
};
|
|
783
|
-
|
|
779
|
+
const subgroup = {
|
|
784
780
|
children: [
|
|
785
781
|
{
|
|
786
782
|
value: 'file-at-path',
|
|
787
783
|
},
|
|
788
784
|
],
|
|
789
785
|
};
|
|
790
|
-
|
|
786
|
+
const file = {
|
|
791
787
|
path: '"some/file/at/path.swift"',
|
|
792
788
|
};
|
|
793
789
|
xcodeProject.objects.PBXGroup = {
|
|
@@ -798,7 +794,7 @@ describe('XcodeManager', function () {
|
|
|
798
794
|
'file-at-path': file,
|
|
799
795
|
};
|
|
800
796
|
// -- Act --
|
|
801
|
-
|
|
797
|
+
const files = xcodeProject.buildGroup(group);
|
|
802
798
|
// -- Assert --
|
|
803
799
|
expect(files).toEqual([
|
|
804
800
|
{
|
|
@@ -809,13 +805,13 @@ describe('XcodeManager', function () {
|
|
|
809
805
|
});
|
|
810
806
|
});
|
|
811
807
|
});
|
|
812
|
-
describe('group child is not a file reference or group',
|
|
813
|
-
it('should be ignored',
|
|
808
|
+
describe('group child is not a file reference or group', () => {
|
|
809
|
+
it('should be ignored', () => {
|
|
814
810
|
// -- Arrange --
|
|
815
|
-
|
|
811
|
+
const xcodeProject = new xcode_manager_1.XcodeProject(singleTargetProjectPath);
|
|
816
812
|
xcodeProject.objects.PBXGroup = {};
|
|
817
813
|
xcodeProject.objects.PBXFileReference = {};
|
|
818
|
-
|
|
814
|
+
const group = {
|
|
819
815
|
children: [
|
|
820
816
|
{
|
|
821
817
|
value: 'random-key',
|
|
@@ -824,7 +820,7 @@ describe('XcodeManager', function () {
|
|
|
824
820
|
path: '',
|
|
825
821
|
};
|
|
826
822
|
// -- Act --
|
|
827
|
-
|
|
823
|
+
const files = xcodeProject.buildGroup(group);
|
|
828
824
|
// -- Assert --
|
|
829
825
|
expect(files).toEqual([]);
|
|
830
826
|
});
|