@callstack/react-native-brownfield 5.1.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/gradle-plugin/brownfield/build.gradle.kts +67 -2
  3. package/gradle-plugin/brownfield/gradle/libs.versions.toml +5 -2
  4. package/gradle-plugin/brownfield/gradle/wrapper/gradle-wrapper.properties +1 -1
  5. package/gradle-plugin/brownfield/gradle.properties +1 -1
  6. package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt +35 -4
  7. package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNSourceSets.kt +6 -1
  8. package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/MergeClassesTask.kt +2 -0
  9. package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/Extension.kt +2 -2
  10. package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/plugin/AgpCompatibilityMatrixTest.kt +155 -0
  11. package/lib/commonjs/expo-config-plugin/android/utils/constants.js +1 -1
  12. package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
  13. package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
  14. package/lib/commonjs/expo-config-plugin/ios/podfileHelpers.js +1 -1
  15. package/lib/commonjs/expo-config-plugin/ios/podfileHelpers.js.map +1 -1
  16. package/lib/commonjs/expo-config-plugin/ios/withBrownfieldIos.js +1 -1
  17. package/lib/commonjs/expo-config-plugin/ios/withBrownfieldIos.js.map +1 -1
  18. package/lib/commonjs/expo-config-plugin/ios/withIosFrameworkFiles.js +1 -1
  19. package/lib/commonjs/expo-config-plugin/ios/withIosFrameworkFiles.js.map +1 -1
  20. package/lib/commonjs/expo-config-plugin/ios/xcodeHelpers.js +2 -2
  21. package/lib/commonjs/expo-config-plugin/ios/xcodeHelpers.js.map +1 -1
  22. package/lib/commonjs/expo-config-plugin/template/android/ReactNativeHostManager.vanilla.kt +35 -0
  23. package/lib/commonjs/expo-config-plugin/template/android/build.gradle.kts +1 -2
  24. package/lib/commonjs/expo-config-plugin/template/android/proguard-rules.pro +1 -1
  25. package/lib/commonjs/expo-config-plugin/template/ios/FrameworkInterface.vanilla.swift +12 -0
  26. package/lib/commonjs/expo-config-plugin/template/ios/PodfileTargetBlock.vanilla.rb +5 -0
  27. package/lib/commonjs/index.js.map +1 -1
  28. package/lib/commonjs/scaffold/index.js +2 -0
  29. package/lib/commonjs/scaffold/index.js.map +1 -0
  30. package/lib/commonjs/scaffold/projectFiles.js +2 -0
  31. package/lib/commonjs/scaffold/projectFiles.js.map +1 -0
  32. package/lib/commonjs/scaffold/xcode.d.js +2 -0
  33. package/lib/commonjs/scaffold/xcode.d.js.map +1 -0
  34. package/lib/module/expo-config-plugin/android/utils/constants.js +1 -1
  35. package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
  36. package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
  37. package/lib/module/expo-config-plugin/ios/podfileHelpers.js +1 -1
  38. package/lib/module/expo-config-plugin/ios/podfileHelpers.js.map +1 -1
  39. package/lib/module/expo-config-plugin/ios/withBrownfieldIos.js +1 -1
  40. package/lib/module/expo-config-plugin/ios/withBrownfieldIos.js.map +1 -1
  41. package/lib/module/expo-config-plugin/ios/withIosFrameworkFiles.js +1 -1
  42. package/lib/module/expo-config-plugin/ios/withIosFrameworkFiles.js.map +1 -1
  43. package/lib/module/expo-config-plugin/ios/xcodeHelpers.js +2 -2
  44. package/lib/module/expo-config-plugin/ios/xcodeHelpers.js.map +1 -1
  45. package/lib/module/expo-config-plugin/template/android/ReactNativeHostManager.vanilla.kt +35 -0
  46. package/lib/module/expo-config-plugin/template/android/build.gradle.kts +1 -2
  47. package/lib/module/expo-config-plugin/template/android/proguard-rules.pro +1 -1
  48. package/lib/module/expo-config-plugin/template/ios/FrameworkInterface.vanilla.swift +12 -0
  49. package/lib/module/expo-config-plugin/template/ios/PodfileTargetBlock.vanilla.rb +5 -0
  50. package/lib/module/index.js.map +1 -1
  51. package/lib/module/scaffold/index.js +2 -0
  52. package/lib/module/scaffold/index.js.map +1 -0
  53. package/lib/module/scaffold/projectFiles.js +2 -0
  54. package/lib/module/scaffold/projectFiles.js.map +1 -0
  55. package/lib/module/scaffold/xcode.d.js +2 -0
  56. package/lib/module/scaffold/xcode.d.js.map +1 -0
  57. package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
  58. package/lib/typescript/commonjs/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts +19 -1
  59. package/lib/typescript/commonjs/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/src/expo-config-plugin/ios/podfileHelpers.d.ts +4 -2
  61. package/lib/typescript/commonjs/src/expo-config-plugin/ios/podfileHelpers.d.ts.map +1 -1
  62. package/lib/typescript/commonjs/src/expo-config-plugin/ios/withBrownfieldIos.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/src/expo-config-plugin/ios/withIosFrameworkFiles.d.ts +11 -2
  64. package/lib/typescript/commonjs/src/expo-config-plugin/ios/withIosFrameworkFiles.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/src/expo-config-plugin/ios/xcodeHelpers.d.ts +6 -2
  66. package/lib/typescript/commonjs/src/expo-config-plugin/ios/xcodeHelpers.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +3 -2
  68. package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  70. package/lib/typescript/commonjs/src/scaffold/index.d.ts +23 -0
  71. package/lib/typescript/commonjs/src/scaffold/index.d.ts.map +1 -0
  72. package/lib/typescript/commonjs/src/scaffold/projectFiles.d.ts +63 -0
  73. package/lib/typescript/commonjs/src/scaffold/projectFiles.d.ts.map +1 -0
  74. package/lib/typescript/module/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
  75. package/lib/typescript/module/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts +19 -1
  76. package/lib/typescript/module/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
  77. package/lib/typescript/module/src/expo-config-plugin/ios/podfileHelpers.d.ts +4 -2
  78. package/lib/typescript/module/src/expo-config-plugin/ios/podfileHelpers.d.ts.map +1 -1
  79. package/lib/typescript/module/src/expo-config-plugin/ios/withBrownfieldIos.d.ts.map +1 -1
  80. package/lib/typescript/module/src/expo-config-plugin/ios/withIosFrameworkFiles.d.ts +11 -2
  81. package/lib/typescript/module/src/expo-config-plugin/ios/withIosFrameworkFiles.d.ts.map +1 -1
  82. package/lib/typescript/module/src/expo-config-plugin/ios/xcodeHelpers.d.ts +6 -2
  83. package/lib/typescript/module/src/expo-config-plugin/ios/xcodeHelpers.d.ts.map +1 -1
  84. package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +3 -2
  85. package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
  86. package/lib/typescript/module/src/index.d.ts.map +1 -1
  87. package/lib/typescript/module/src/scaffold/index.d.ts +23 -0
  88. package/lib/typescript/module/src/scaffold/index.d.ts.map +1 -0
  89. package/lib/typescript/module/src/scaffold/projectFiles.d.ts +63 -0
  90. package/lib/typescript/module/src/scaffold/projectFiles.d.ts.map +1 -0
  91. package/package.json +16 -2
  92. package/src/expo-config-plugin/android/utils/constants.ts +1 -1
  93. package/src/expo-config-plugin/android/withAndroidModuleFiles.ts +62 -5
  94. package/src/expo-config-plugin/ios/podfileHelpers.ts +24 -6
  95. package/src/expo-config-plugin/ios/withBrownfieldIos.ts +5 -2
  96. package/src/expo-config-plugin/ios/withIosFrameworkFiles.ts +21 -6
  97. package/src/expo-config-plugin/ios/xcodeHelpers.ts +77 -5
  98. package/src/expo-config-plugin/template/android/ReactNativeHostManager.vanilla.kt +35 -0
  99. package/src/expo-config-plugin/template/android/build.gradle.kts +1 -2
  100. package/src/expo-config-plugin/template/android/proguard-rules.pro +1 -1
  101. package/src/expo-config-plugin/template/ios/FrameworkInterface.vanilla.swift +12 -0
  102. package/src/expo-config-plugin/template/ios/PodfileTargetBlock.vanilla.rb +5 -0
  103. package/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.ts +3 -2
  104. package/src/index.ts +7 -0
  105. package/src/scaffold/index.ts +395 -0
  106. package/src/scaffold/projectFiles.ts +243 -0
  107. package/src/scaffold/xcode.d.ts +4 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # @callstack/react-native-brownfield
2
2
 
3
+ ## 5.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#480](https://github.com/callstack/react-native-brownfield/pull/480) [`f17f556`](https://github.com/callstack/react-native-brownfield/commit/f17f55616615a2bcb82d90f358efd838f56f5e67) Thanks [@gedu](https://github.com/gedu)! - add @callstack/create-react-native-brownfield: scaffold Brownfield packaging targets in an existing React Native CLI project (`npm create @callstack/react-native-brownfield`), plus the `@callstack/react-native-brownfield/scaffold` subpath export it uses
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies []:
12
+ - @callstack/brownfield-cli@5.3.0
13
+
14
+ ## 5.2.0
15
+
16
+ ### Minor Changes
17
+
18
+ - [#467](https://github.com/callstack/react-native-brownfield/pull/467) [`31c3939`](https://github.com/callstack/react-native-brownfield/commit/31c39399aad0efb098876d35a4fbbe80835d5dba) Thanks [@hurali97](https://github.com/hurali97)! - agp v9 compliance
19
+
20
+ - [#467](https://github.com/callstack/react-native-brownfield/pull/467) [`31c3939`](https://github.com/callstack/react-native-brownfield/commit/31c39399aad0efb098876d35a4fbbe80835d5dba) Thanks [@hurali97](https://github.com/hurali97)! - add expo sdk 58
21
+
22
+ ### Patch Changes
23
+
24
+ - [#477](https://github.com/callstack/react-native-brownfield/pull/477) [`9e57d43`](https://github.com/callstack/react-native-brownfield/commit/9e57d4384f93459526a41084ee82355dd43f4ed9) Thanks [@KisaneNeko](https://github.com/KisaneNeko)! - fix: publish dependencies of community libraries (e.g. react-native-screens, lottie-react-native) embedded in Expo brownfield AARs; the published POM now lists them, previously host apps could crash with NoClassDefFoundError
25
+ - Updated dependencies [[`31c3939`](https://github.com/callstack/react-native-brownfield/commit/31c39399aad0efb098876d35a4fbbe80835d5dba)]:
26
+ - @callstack/brownfield-cli@5.2.0
27
+
3
28
  ## 5.1.1
4
29
 
5
30
  ### Patch Changes
@@ -103,18 +103,83 @@ repositories {
103
103
  google()
104
104
  }
105
105
 
106
+ // AGP for GradleRunner.withPluginClasspath(), which only sees runtime dependencies, so TestKit
107
+ // projects can still apply com.android.library
108
+ val testKitPluginClasspath: Configuration by configurations.creating
109
+
106
110
  dependencies {
107
- implementation(libs.agp)
108
- implementation(libs.common)
111
+ // AGP is provided by the consuming build's buildscript classpath. Keeping it
112
+ // compileOnly stops the published module from pinning AGP (and therefore the
113
+ // minimum Gradle version) for every app that applies this plugin.
114
+ compileOnly(libs.agp)
115
+ compileOnly(libs.common)
109
116
  implementation(libs.asm.commons)
110
117
  implementation(libs.versioncompare)
118
+ testImplementation(libs.agp)
119
+ testImplementation(libs.common)
111
120
  testImplementation(libs.junit.jupiter)
112
121
  testImplementation(gradleTestKit())
113
122
  testImplementation(kotlin("test"))
123
+ testKitPluginClasspath(libs.agp)
124
+ }
125
+
126
+ tasks.pluginUnderTestMetadata {
127
+ pluginClasspath.from(testKitPluginClasspath)
128
+ }
129
+
130
+ /**
131
+ * AGP versions the plugin is tested against, oldest first.
132
+ *
133
+ * The first entry is the floor, and it is the same number as `agp` in `gradle/libs.versions.toml`
134
+ * (what the plugin compiles against) and `RNBrownfieldPlugin.MIN_AGP` (what the apply-time gate
135
+ * enforces). The compiler covers "we accidentally used an API newer than the floor"; this matrix
136
+ * covers the other direction — "we used something a newer AGP has since removed or changed".
137
+ */
138
+ val agpMatrix = listOf(libs.versions.agp.get(), "9.2.1")
139
+
140
+ /**
141
+ * An AGP below the matrix floor. Not supported, and not built against — it exists only so a test can
142
+ * prove `RNBrownfieldPlugin.MIN_AGP` actually rejects it instead of letting the consumer fail later
143
+ * with an unattributable `NoSuchMethodError`.
144
+ */
145
+ val belowFloorAgp = "8.9.0"
146
+
147
+ // A TestKit-ready AGP classpath per version above, keyed by version.
148
+ val agpClasspaths =
149
+ (agpMatrix + belowFloorAgp).associateWith { agpVersion ->
150
+ val suffix = agpVersion.replace('.', '_')
151
+ val scope = configurations.dependencyScope("testkitAgp$suffix")
152
+ dependencies.add(scope.name, "com.android.tools.build:gradle:$agpVersion")
153
+ configurations.resolvable("testkitAgp${suffix}Classpath") {
154
+ extendsFrom(scope.get())
155
+ }
156
+ }
157
+
158
+ // `withPluginClasspath()` builds the TestKit fixture classpath from the plugin's runtime
159
+ // classpath, which no longer carries AGP now that it is compileOnly. The fixtures apply
160
+ // `com.android.library`, so hand the floor AGP back to them here — test-only, so nothing
161
+ // reaches the published module.
162
+ tasks.named<PluginUnderTestMetadata>("pluginUnderTestMetadata") {
163
+ pluginClasspath.from(agpClasspaths.getValue(agpMatrix.first()))
114
164
  }
115
165
 
116
166
  tasks.test {
117
167
  useJUnitPlatform()
168
+
169
+ // Tests that want a specific AGP build their own TestKit classpath from these, via
170
+ // `withPluginClasspath(files)` instead of the no-arg `withPluginClasspath()`.
171
+ val mainSourceSet = sourceSets.main.get()
172
+ systemProperty("agp.matrix.versions", agpMatrix.joinToString(","))
173
+ systemProperty("agp.belowFloor.version", belowFloorAgp)
174
+ agpClasspaths.forEach { (agpVersion, agpClasspath) ->
175
+ val pluginClasspath = files(mainSourceSet.output, mainSourceSet.runtimeClasspath, agpClasspath)
176
+ inputs.files(pluginClasspath).withPropertyName("agpMatrix-$agpVersion").withNormalizer(ClasspathNormalizer::class)
177
+ jvmArgumentProviders.add(
178
+ CommandLineArgumentProvider {
179
+ listOf("-Dagp.classpath.$agpVersion=${pluginClasspath.joinToString(File.pathSeparator)}")
180
+ },
181
+ )
182
+ }
118
183
  }
119
184
 
120
185
  tasks.named("detekt").configure {
@@ -2,8 +2,11 @@
2
2
  kotlinJvm = "2.2.21"
3
3
  ktlint = "12.1.1"
4
4
  detekt = "1.23.7"
5
- agp = "8.5.2"
6
- common = "31.2.2" # do not bump it for now, as it throws an error for incompatible AGP used
5
+ # The AGP the plugin compiles against: deliberately the OLDEST supported version, so the
6
+ # compiler rejects any accidental use of a newer AGP API. Newer AGP is covered by the
7
+ # TestKit matrix in build.gradle.kts. Keep in sync with MIN_AGP in RNBrownfieldPlugin.kt.
8
+ agp = "8.12.0"
9
+ common = "31.12.0"
7
10
  asm-commons = "9.7"
8
11
  versioncompare = "1.5.0"
9
12
  junit = "5.11.4"
@@ -1,6 +1,6 @@
1
1
  distributionBase=GRADLE_USER_HOME
2
2
  distributionPath=wrapper/dists
3
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
4
4
  networkTimeout=10000
5
5
  validateDistributionUrl=true
6
6
  zipStoreBase=GRADLE_USER_HOME
@@ -1,6 +1,6 @@
1
1
  PROJECT_ID=com.callstack.react.brownfield
2
2
  ARTIFACT_ID=brownfield-gradle-plugin
3
- VERSION=2.0.0-alpha09
3
+ VERSION=2.0.0-alpha10
4
4
  GROUP=com.callstack.react
5
5
  IMPLEMENTATION_CLASS=com.callstack.react.brownfield.plugin.RNBrownfieldPlugin
6
6
 
@@ -1,5 +1,6 @@
1
1
  package com.callstack.react.brownfield.plugin
2
2
 
3
+ import com.android.build.api.AndroidPluginVersion
3
4
  import com.android.build.api.variant.LibraryAndroidComponentsExtension
4
5
  import com.android.build.api.variant.LibraryVariant
5
6
  import com.callstack.react.brownfield.artifacts.ArtifactsResolver
@@ -41,6 +42,7 @@ class RNBrownfieldPlugin : Plugin<Project> {
41
42
 
42
43
  override fun apply(project: Project) {
43
44
  verifyAndroidPluginApplied(project)
45
+ verifyAgpVersion(project)
44
46
 
45
47
  this.project = project
46
48
  initializers()
@@ -92,6 +94,13 @@ class RNBrownfieldPlugin : Plugin<Project> {
92
94
  }
93
95
 
94
96
  companion object {
97
+ /**
98
+ * Oldest AGP the plugin supports. This is one number that must hold in three places: the
99
+ * `agp` version the plugin compiles against in `gradle/libs.versions.toml`, the floor of the
100
+ * TestKit AGP matrix in `build.gradle.kts`, and this gate. Raise all three together.
101
+ */
102
+ val MIN_AGP = AndroidPluginVersion(8, 12)
103
+
95
104
  const val EXPO_PROJECT_LOCATOR = ":expo"
96
105
  }
97
106
 
@@ -117,9 +126,8 @@ class RNBrownfieldPlugin : Plugin<Project> {
117
126
  }
118
127
  transitiveDeps.addAll(expoTransitiveDeps)
119
128
  }
120
- // Never on Expo: the path above already covers every embedded module there, and the RNC
121
- // discoverer doesn't filter by the Expo blacklist, so running both leaks Expo coordinates.
122
- if (!isExpoProject && extension.experimentalIncludeTransitiveDependencies) {
129
+ // Also on Expo: the path above only covers Expo modules, not community libraries.
130
+ if (extension.experimentalIncludeTransitiveDependencies) {
123
131
  val rncDiscovery = RncTransitiveDependencyDiscoverer(project).discover(artifacts)
124
132
  Logging.log(
125
133
  "Merged ${rncDiscovery.dependencies.size} transitive dependencies discovered by the RNC discoverer",
@@ -134,7 +142,8 @@ class RNBrownfieldPlugin : Plugin<Project> {
134
142
  // (replacing a stale entry) and so must not be dropped here.
135
143
  val hardExcludePredicate: (String, String) -> Boolean = { groupId, artifactId ->
136
144
  (expoPublishingHelper?.shouldExcludeDependency(groupId, artifactId) ?: (groupId == project.rootProject.name)) ||
137
- artifacts.any { it.moduleGroup == groupId && it.moduleName == artifactId }
145
+ artifacts.any { it.moduleGroup == groupId && it.moduleName == artifactId } ||
146
+ expoProjects.any { it.publication?.groupId == groupId && it.publication?.artifactId == artifactId }
138
147
  }
139
148
  dropHardExcludedDependencies(transitiveDeps, hardExcludePredicate)
140
149
 
@@ -191,6 +200,28 @@ class RNBrownfieldPlugin : Plugin<Project> {
191
200
  }
192
201
  }
193
202
 
203
+ /**
204
+ * Fails fast on AGP versions older than the plugin supports.
205
+ *
206
+ * The plugin compiles against [MIN_AGP] (see `agp` in `gradle/libs.versions.toml`), so anything
207
+ * at or above it is guaranteed to have every AGP symbol the plugin references. Below it, the
208
+ * consumer would instead hit a `NoClassDefFoundError`/`NoSuchMethodError` somewhere deep in
209
+ * configuration, with nothing pointing back at this plugin.
210
+ */
211
+ private fun verifyAgpVersion(project: Project) {
212
+ val current =
213
+ project.extensions
214
+ .getByType(LibraryAndroidComponentsExtension::class.java)
215
+ .pluginVersion
216
+ if (current < MIN_AGP) {
217
+ throw ProjectConfigurationException(
218
+ "$PROJECT_ID requires Android Gradle Plugin $MIN_AGP or newer, " +
219
+ "but this project resolved AGP $current",
220
+ Throwable("Upgrade the Android Gradle Plugin to $MIN_AGP or newer"),
221
+ )
222
+ }
223
+ }
224
+
194
225
  private fun getAarLibraries(
195
226
  artifacts: List<UnresolvedArtifactInfo>,
196
227
  variantName: String,
@@ -1,5 +1,6 @@
1
1
  package com.callstack.react.brownfield.plugin
2
2
 
3
+ import com.android.build.api.dsl.AndroidSourceSet
3
4
  import com.android.build.api.dsl.LibraryExtension
4
5
  import com.android.build.api.variant.LibraryAndroidComponentsExtension
5
6
  import com.callstack.react.brownfield.exceptions.NameSpaceNotFound
@@ -41,7 +42,11 @@ object RNSourceSets {
41
42
  val componentsExtension = project.extensions.getByType(LibraryAndroidComponentsExtension::class.java)
42
43
 
43
44
  // Move the non-variant-specific configuration out of the loop
44
- androidExtension.sourceSets.named("main") { sourceSet ->
45
+ // The parameter is typed as the `AndroidSourceSet` supertype on purpose. AGP 9 narrows
46
+ // this container to `AndroidLibrarySourceSet`, and letting Kotlin infer that bakes the
47
+ // AGP 9-only type into the lambda's `execute` signature, which blows up with
48
+ // NoClassDefFoundError on AGP 8 consumers. `AndroidSourceSet` is identical in both.
49
+ androidExtension.sourceSets.named("main") { sourceSet: AndroidSourceSet ->
45
50
  // This path is not variant-specific, so it's added once here.
46
51
  sourceSet.java.directories.add("${getModuleBuildDir()}/generated/autolinking/src/main/java")
47
52
  }
@@ -11,11 +11,13 @@ import org.gradle.api.tasks.Classpath
11
11
  import org.gradle.api.tasks.Input
12
12
  import org.gradle.api.tasks.OutputDirectory
13
13
  import org.gradle.api.tasks.TaskAction
14
+ import org.gradle.api.tasks.UntrackedTask
14
15
  import java.io.File
15
16
  import java.nio.file.Files
16
17
  import java.nio.file.Path
17
18
  import java.nio.file.Paths
18
19
 
20
+ @UntrackedTask(because = "Copies classes into Java and Kotlin compilation directories owned by other tasks")
19
21
  abstract class MergeClassesTask : DefaultTask() {
20
22
  @get:Classpath
21
23
  abstract val inputClassesJars: ConfigurableFileCollection
@@ -58,8 +58,8 @@ open class Extension {
58
58
  * Whether to publish embedded native modules' third-party dependencies into the generated POM
59
59
  * and Gradle Module Metadata, so consuming apps resolve them instead of declaring them by hand.
60
60
  *
61
- * Experimental; behavior may still change. Applies to non-Expo (RNC CLI) projects only — Expo
62
- * gets this unconditionally. Set to `false` to hand-declare them instead.
61
+ * Experimental; behavior may still change. On Expo projects, Expo modules' dependencies are
62
+ * published regardless; this covers the other native modules. Set to `false` to hand-declare them instead.
63
63
  *
64
64
  * Default is `true`.
65
65
  */
@@ -0,0 +1,155 @@
1
+ package com.callstack.react.brownfield.plugin
2
+
3
+ import org.gradle.testkit.runner.GradleRunner
4
+ import org.junit.jupiter.api.Assumptions.assumeTrue
5
+ import org.junit.jupiter.api.Test
6
+ import org.junit.jupiter.api.io.TempDir
7
+ import org.junit.jupiter.params.ParameterizedTest
8
+ import org.junit.jupiter.params.provider.MethodSource
9
+ import java.io.File
10
+ import kotlin.test.assertTrue
11
+
12
+ /**
13
+ * Configures a minimal android library against every AGP version in the matrix declared in
14
+ * `build.gradle.kts`.
15
+ *
16
+ * The plugin compiles against the OLDEST supported AGP, which is what stops it from reaching for an
17
+ * API newer AGP added. That leaves the opposite direction uncovered: an API the floor has but a
18
+ * newer AGP removed, renamed or narrowed compiles cleanly and only breaks at the consumer. This
19
+ * test is the coverage for that direction, so the newest entry in the matrix is the one earning its
20
+ * keep here.
21
+ *
22
+ * Skipped without an Android SDK, since the plugin requires `com.android.library`.
23
+ */
24
+ class AgpCompatibilityMatrixTest {
25
+ @ParameterizedTest(name = "configures cleanly on AGP {0}")
26
+ @MethodSource("agpVersions")
27
+ fun `the plugin configures an android library on every supported AGP`(
28
+ agpVersion: String,
29
+ @TempDir projectDir: File,
30
+ ) {
31
+ val androidSdk = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT")
32
+ assumeTrue(
33
+ androidSdk != null && File(androidSdk).isDirectory,
34
+ "no Android SDK available (ANDROID_HOME/ANDROID_SDK_ROOT); skipping AGP-dependent test",
35
+ )
36
+
37
+ writeFixture(projectDir, androidSdk!!)
38
+
39
+ // `--dry-run` still runs configuration in full — variant callbacks, source set wiring, task
40
+ // graph construction — which is where every AGP API the plugin touches is exercised. It just
41
+ // skips the task actions, which would need a real RN app to produce anything meaningful.
42
+ GradleRunner.create()
43
+ .withProjectDir(projectDir)
44
+ .withPluginClasspath(pluginClasspathFor(agpVersion))
45
+ .withArguments("assembleDebug", "--dry-run", "--stacktrace")
46
+ .forwardOutput()
47
+ .build()
48
+ }
49
+
50
+ @Test
51
+ fun `the apply-time gate rejects AGP older than the floor`(
52
+ @TempDir projectDir: File,
53
+ ) {
54
+ val androidSdk = System.getenv("ANDROID_HOME") ?: System.getenv("ANDROID_SDK_ROOT")
55
+ assumeTrue(
56
+ androidSdk != null && File(androidSdk).isDirectory,
57
+ "no Android SDK available (ANDROID_HOME/ANDROID_SDK_ROOT); skipping AGP-dependent test",
58
+ )
59
+
60
+ writeFixture(projectDir, androidSdk!!)
61
+
62
+ val belowFloor = requireNotNull(System.getProperty("agp.belowFloor.version"))
63
+ val result =
64
+ GradleRunner.create()
65
+ .withProjectDir(projectDir)
66
+ .withPluginClasspath(pluginClasspathFor(belowFloor))
67
+ .withArguments("tasks")
68
+ .buildAndFail()
69
+
70
+ assertTrue(
71
+ result.output.contains("requires Android Gradle Plugin"),
72
+ "expected the plugin's own AGP gate to reject AGP $belowFloor, but the build failed " +
73
+ "for some other reason:\n${result.output}",
74
+ )
75
+ }
76
+
77
+ private fun pluginClasspathFor(agpVersion: String): List<File> {
78
+ val raw =
79
+ requireNotNull(System.getProperty("agp.classpath.$agpVersion")) {
80
+ "no TestKit classpath was injected for AGP $agpVersion; check the agpMatrix wiring in build.gradle.kts"
81
+ }
82
+ return raw.split(File.pathSeparator).filter { it.isNotBlank() }.map(::File)
83
+ }
84
+
85
+ private fun writeFixture(
86
+ projectDir: File,
87
+ androidSdk: String,
88
+ ) {
89
+ File(projectDir, "settings.gradle.kts").writeText(
90
+ """
91
+ dependencyResolutionManagement {
92
+ repositories {
93
+ google()
94
+ mavenCentral()
95
+ }
96
+ }
97
+ rootProject.name = "agp-matrix-consumer"
98
+ include(":app")
99
+ include(":brownfieldlib")
100
+ """.trimIndent(),
101
+ )
102
+ File(projectDir, "local.properties").writeText("sdk.dir=$androidSdk\n")
103
+ // Stands in for the RN app project. It has to be a real `com.android.application` because
104
+ // the brownfield plugin wires into AGP's own app-side tasks; the extra registrations cover
105
+ // the tasks the React Native Gradle plugin would otherwise contribute. Empty registrations
106
+ // are enough: this test is about AGP API compatibility, not about what those tasks produce.
107
+ File(projectDir, "app").mkdirs()
108
+ File(projectDir, "app/build.gradle.kts").writeText(
109
+ """
110
+ plugins {
111
+ id("com.android.application")
112
+ }
113
+
114
+ android {
115
+ namespace = "com.example.agpmatrix.app"
116
+ compileSdk = 34
117
+ }
118
+
119
+ listOf(
120
+ "generateAutolinkingPackageList",
121
+ "createBundleDebugJsAndAssets",
122
+ "createBundleReleaseJsAndAssets",
123
+ ).forEach { name -> tasks.register(name) }
124
+ """.trimIndent(),
125
+ )
126
+
127
+ File(projectDir, "brownfieldlib").mkdirs()
128
+ File(projectDir, "brownfieldlib/build.gradle.kts").writeText(
129
+ """
130
+ plugins {
131
+ id("com.android.library")
132
+ id("com.callstack.react.brownfield")
133
+ `maven-publish`
134
+ }
135
+
136
+ android {
137
+ namespace = "com.example.agpmatrix"
138
+ compileSdk = 34
139
+ }
140
+
141
+ // Contributed by the React Native Gradle plugin in a real consumer; stubbed here for the
142
+ // same reason as the app-side tasks above.
143
+ tasks.register("generateCodegenSchemaFromJavaScript")
144
+ """.trimIndent(),
145
+ )
146
+ }
147
+
148
+ private companion object {
149
+ @JvmStatic
150
+ fun agpVersions(): List<String> =
151
+ requireNotNull(System.getProperty("agp.matrix.versions")) {
152
+ "agp.matrix.versions was not injected; check the agpMatrix wiring in build.gradle.kts"
153
+ }.split(",").filter { it.isNotBlank() }
154
+ }
155
+ }
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.brownfieldGradlePluginDependency=exports.BROWNFIELD_PLUGIN_VERSION=void 0;var BROWNFIELD_PLUGIN_VERSION=exports.BROWNFIELD_PLUGIN_VERSION='2.0.0-alpha09';var brownfieldGradlePluginDependency=exports.brownfieldGradlePluginDependency=`classpath("com.callstack.react:brownfield-gradle-plugin:${BROWNFIELD_PLUGIN_VERSION}")`;
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.brownfieldGradlePluginDependency=exports.BROWNFIELD_PLUGIN_VERSION=void 0;var BROWNFIELD_PLUGIN_VERSION=exports.BROWNFIELD_PLUGIN_VERSION='2.0.0-alpha10';var brownfieldGradlePluginDependency=exports.brownfieldGradlePluginDependency=`classpath("com.callstack.react:brownfield-gradle-plugin:${BROWNFIELD_PLUGIN_VERSION}")`;
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.createAndroidModule=createAndroidModule;exports.resolveCompileSdkVersionExpression=resolveCompileSdkVersionExpression;exports.resolveTargetSdkVersionExpression=resolveTargetSdkVersionExpression;exports.syncAndroidModuleExpoUpdatesFromAppFiles=syncAndroidModuleExpoUpdatesFromAppFiles;exports.syncAndroidModuleManifest=syncAndroidModuleManifest;exports.syncAndroidModuleStringResources=syncAndroidModuleStringResources;exports.withAndroidModuleFiles=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var fs=_interopRequireWildcard(require("node:fs"));var path=_interopRequireWildcard(require("node:path"));var _configPlugins=require("@expo/config-plugins");var _logging=require("../logging");var _engine=require("../template/engine");var _androidManifest=require("./utils/androidManifest");var _expoUpdates=require("./utils/expo-updates");var _hermes=require("./utils/hermes");var _formatHelpers=require("./utils/formatHelpers");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}function renderMissingDimensionStrategyBlock(missingDimensionStrategies){if(missingDimensionStrategies.length<2){return'';}var args=(0,_formatHelpers.formatMissingDimensionStrategies)(missingDimensionStrategies);return` missingDimensionStrategy(${args})`;}function resolveCompileSdkVersionExpression(config){if(config.android.compileSdkVersion!=null){return config.android.compileSdkVersion.toString();}return'resolveRootProjectInt("compileSdkVersion")';}function resolveTargetSdkVersionExpression(config){if(config.android.targetSdkVersion!=null){return config.android.targetSdkVersion.toString();}return'resolveRootProjectInt("targetSdkVersion")';}function createAndroidModule(_ref){var _minifyEnabled,_extraProguardRules;var androidDir=_ref.androidDir,config=_ref.config,rnVersion=_ref.rnVersion,projectRoot=_ref.projectRoot;var android=config.android;var moduleDir=path.join(androidDir,android.moduleName);_logging.Logger.logDebug(`Creating Android module in: ${androidDir}`);var hermesArtifact=(0,_hermes.getHermesArtifact)(rnVersion,projectRoot);var compileSdkVersionExpression=resolveCompileSdkVersionExpression(config);var targetSdkVersionExpression=resolveTargetSdkVersionExpression(config);var minifyEnabled=(_minifyEnabled=android.minifyEnabled)!=null?_minifyEnabled:false;var extraProguardRules=(_extraProguardRules=android.extraProguardRules)!=null?_extraProguardRules:[];var extraProguardRulesText=extraProguardRules.join('\n');_logging.Logger.logDebug(`Resolved Hermes artifact: ${hermesArtifact.groupId}:${hermesArtifact.artifactId}:${hermesArtifact.version}`);var missingDimensionStrategiesList=(0,_formatHelpers.formatMissingDimensionStrategies)(android.missingDimensionStrategies);var missingDimensionStrategyBlock=renderMissingDimensionStrategyBlock(android.missingDimensionStrategies);var files=[{relativePath:'build.gradle.kts',content:(0,_engine.renderTemplate)('android','build.gradle.kts',{'{{PACKAGE_NAME}}':android.packageName,'{{MIN_SDK_VERSION}}':android.minSdkVersion.toString(),'{{TARGET_SDK_VERSION}}':targetSdkVersionExpression,'{{COMPILE_SDK_VERSION}}':compileSdkVersionExpression,'{{GROUP_ID}}':android.groupId,'{{ARTIFACT_ID}}':android.artifactId,'{{ARTIFACT_VERSION}}':android.version,'{{RN_VERSION}}':rnVersion,'{{HERMES_ARTIFACT}}':`${hermesArtifact.groupId}:${hermesArtifact.artifactId}:${hermesArtifact.version}`,'{{IS_MINIFY_ENABLED}}':minifyEnabled.toString(),'{{MISSING_DIMENSION_STRATEGIES}}':missingDimensionStrategiesList,'{{MISSING_DIMENSION_STRATEGY_BLOCK}}':missingDimensionStrategyBlock})},{relativePath:'gradle.properties',content:(0,_engine.renderTemplate)('android','gradle.properties',{})},{relativePath:`src/main/java/${config.android.packageName.replace(/\./g,'/')}/ReactNativeHostManager.kt`,content:(0,_engine.renderTemplate)('android','ReactNativeHostManager.post55.kt',{'{{PACKAGE_NAME}}':android.packageName})},{relativePath:'consumer-rules.pro',content:(0,_engine.renderTemplate)('android','consumer-rules.pro',{})},{relativePath:'proguard-rules.pro',content:(0,_engine.renderTemplate)('android','proguard-rules.pro',{'{{EXTRA_PROGUARD_RULES}}':extraProguardRulesText})}];for(var file of files){var filePath=path.join(moduleDir,file.relativePath);var fileDir=path.dirname(filePath);if(!fs.existsSync(fileDir)){fs.mkdirSync(fileDir,{recursive:true});}fs.writeFileSync(filePath,file.content,'utf8');_logging.Logger.logDebug(`Created file: ${filePath}`);}syncAndroidModuleExpoUpdatesFromAppFiles({androidDir:androidDir,config:config});_logging.Logger.logDebug(`Android module "${android.moduleName}" created at ${moduleDir}`);}function syncAndroidModuleManifest(_ref2){var androidDir=_ref2.androidDir,config=_ref2.config,expoUpdatesMetaData=_ref2.expoUpdatesMetaData;writeAndroidModuleFile(path.join(androidDir,config.android.moduleName),'src/main/AndroidManifest.xml',(0,_engine.renderTemplate)('android','AndroidManifest.xml',{'{{APPLICATION_BLOCK}}':(0,_androidManifest.renderLibraryManifestApplication)(expoUpdatesMetaData)}));}function syncAndroidModuleStringResources(_ref3){var androidDir=_ref3.androidDir,config=_ref3.config,expoUpdatesStringResources=_ref3.expoUpdatesStringResources;writeAndroidModuleFile(path.join(androidDir,config.android.moduleName),'src/main/res/values/strings.xml',(0,_engine.renderTemplate)('android','strings.xml',{'{{STRING_RESOURCES}}':(0,_androidManifest.renderLibraryStringResources)(expoUpdatesStringResources)}));}function writeAndroidModuleFile(moduleDir,relativePath,content){var filePath=path.join(moduleDir,relativePath);var fileDir=path.dirname(filePath);if(!fs.existsSync(fileDir)){fs.mkdirSync(fileDir,{recursive:true});}fs.writeFileSync(filePath,content,'utf8');_logging.Logger.logDebug(`Created file: ${filePath}`);}function syncAndroidModuleExpoUpdatesFromAppFiles(_ref4){var androidDir=_ref4.androidDir,config=_ref4.config;var appModuleName='app';var expoUpdatesMetaData=(0,_expoUpdates.readExpoUpdatesApplicationMetaData)(androidDir,appModuleName);var expoUpdatesStringResources=(0,_expoUpdates.readExpoUpdatesStringResources)(androidDir,appModuleName,expoUpdatesMetaData);syncAndroidModuleManifest({androidDir:androidDir,config:config,expoUpdatesMetaData:expoUpdatesMetaData});syncAndroidModuleStringResources({androidDir:androidDir,config:config,expoUpdatesStringResources:expoUpdatesStringResources});}var withAndroidModuleFiles=exports.withAndroidModuleFiles=function withAndroidModuleFiles(config,props){return(0,_configPlugins.withDangerousMod)(config,['android',(function(){var _ref5=(0,_asyncToGenerator2.default)(function*(dangerousConfig){var androidDir=path.join(dangerousConfig.modRequest.projectRoot,'android');var rnVersion;try{var rnPkgPath=require.resolve('react-native/package.json',{paths:[dangerousConfig.modRequest.projectRoot]});var rnPkg=require(rnPkgPath);rnVersion=rnPkg.version;_logging.Logger.logDebug(`Resolved react-native version: ${rnVersion}`);}catch(_unused){throw new Error('Could not resolve react-native package version. Please ensure you have installed dependencies.');}createAndroidModule({androidDir:androidDir,config:props,rnVersion:rnVersion,projectRoot:dangerousConfig.modRequest.projectRoot});return dangerousConfig;});return function(_x){return _ref5.apply(this,arguments);};}())]);};
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.EXPO_SDK_OMIT_TARGET_SDK_FROM_MAJOR=void 0;exports.createAndroidModule=createAndroidModule;exports.renderTargetSdkBlock=renderTargetSdkBlock;exports.resolveCompileSdkVersionExpression=resolveCompileSdkVersionExpression;exports.resolveTargetSdkVersionExpression=resolveTargetSdkVersionExpression;exports.syncAndroidModuleExpoUpdatesFromAppFiles=syncAndroidModuleExpoUpdatesFromAppFiles;exports.syncAndroidModuleManifest=syncAndroidModuleManifest;exports.syncAndroidModuleStringResources=syncAndroidModuleStringResources;exports.withAndroidModuleFiles=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var fs=_interopRequireWildcard(require("node:fs"));var path=_interopRequireWildcard(require("node:path"));var _configPlugins=require("@expo/config-plugins");var _logging=require("../logging");var _engine=require("../template/engine");var _expoUtils=require("../expoUtils");var _androidManifest=require("./utils/androidManifest");var _expoUpdates=require("./utils/expo-updates");var _hermes=require("./utils/hermes");var _formatHelpers=require("./utils/formatHelpers");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var EXPO_SDK_OMIT_TARGET_SDK_FROM_MAJOR=exports.EXPO_SDK_OMIT_TARGET_SDK_FROM_MAJOR=58;function renderMissingDimensionStrategyBlock(missingDimensionStrategies){if(missingDimensionStrategies.length<2){return'';}var args=(0,_formatHelpers.formatMissingDimensionStrategies)(missingDimensionStrategies);return` missingDimensionStrategy(${args})`;}function resolveCompileSdkVersionExpression(config){if(config.android.compileSdkVersion!=null){return config.android.compileSdkVersion.toString();}return'resolveRootProjectInt("compileSdkVersion")';}function resolveTargetSdkVersionExpression(config){if(config.android.targetSdkVersion!=null){return config.android.targetSdkVersion.toString();}return'resolveRootProjectInt("targetSdkVersion")';}function renderTargetSdkBlock(config,expoMajor){var templateVariant=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'expo';if(templateVariant==='vanilla'){return'';}if(expoMajor!==undefined&&expoMajor>=EXPO_SDK_OMIT_TARGET_SDK_FROM_MAJOR){return'';}return`\n targetSdk = ${resolveTargetSdkVersionExpression(config)}`;}function createAndroidModule(_ref){var _minifyEnabled,_extraProguardRules;var androidDir=_ref.androidDir,config=_ref.config,rnVersion=_ref.rnVersion,projectRoot=_ref.projectRoot,expoMajor=_ref.expoMajor,_ref$templateVariant=_ref.templateVariant,templateVariant=_ref$templateVariant===void 0?'expo':_ref$templateVariant;var android=config.android;var moduleDir=path.join(androidDir,android.moduleName);_logging.Logger.logDebug(`Creating Android module in: ${androidDir}`);var hermesArtifact=(0,_hermes.getHermesArtifact)(rnVersion,projectRoot);var compileSdkVersionExpression=resolveCompileSdkVersionExpression(config);var targetSdkBlock=renderTargetSdkBlock(config,expoMajor,templateVariant);var minifyEnabled=(_minifyEnabled=android.minifyEnabled)!=null?_minifyEnabled:false;var extraProguardRules=(_extraProguardRules=android.extraProguardRules)!=null?_extraProguardRules:[];var extraProguardRulesText=extraProguardRules.join('\n');_logging.Logger.logDebug(`Resolved Hermes artifact: ${hermesArtifact.groupId}:${hermesArtifact.artifactId}:${hermesArtifact.version}`);var missingDimensionStrategiesList=(0,_formatHelpers.formatMissingDimensionStrategies)(android.missingDimensionStrategies);var missingDimensionStrategyBlock=renderMissingDimensionStrategyBlock(android.missingDimensionStrategies);var files=[{relativePath:'build.gradle.kts',content:(0,_engine.renderTemplate)('android','build.gradle.kts',{'{{PACKAGE_NAME}}':android.packageName,'{{MIN_SDK_VERSION}}':android.minSdkVersion.toString(),'{{TARGET_SDK_BLOCK}}':targetSdkBlock,'{{COMPILE_SDK_VERSION}}':compileSdkVersionExpression,'{{GROUP_ID}}':android.groupId,'{{ARTIFACT_ID}}':android.artifactId,'{{ARTIFACT_VERSION}}':android.version,'{{RN_VERSION}}':rnVersion,'{{HERMES_ARTIFACT}}':`${hermesArtifact.groupId}:${hermesArtifact.artifactId}:${hermesArtifact.version}`,'{{IS_MINIFY_ENABLED}}':minifyEnabled.toString(),'{{MISSING_DIMENSION_STRATEGIES}}':missingDimensionStrategiesList,'{{MISSING_DIMENSION_STRATEGY_BLOCK}}':missingDimensionStrategyBlock})},{relativePath:'gradle.properties',content:(0,_engine.renderTemplate)('android','gradle.properties',{})},{relativePath:`src/main/java/${config.android.packageName.replace(/\./g,'/')}/ReactNativeHostManager.kt`,content:(0,_engine.renderTemplate)('android',templateVariant==='vanilla'?'ReactNativeHostManager.vanilla.kt':'ReactNativeHostManager.post55.kt',{'{{PACKAGE_NAME}}':android.packageName})},{relativePath:'consumer-rules.pro',content:(0,_engine.renderTemplate)('android','consumer-rules.pro',{})},{relativePath:'proguard-rules.pro',content:(0,_engine.renderTemplate)('android','proguard-rules.pro',{'{{PACKAGE_NAME}}':android.packageName,'{{EXTRA_PROGUARD_RULES}}':extraProguardRulesText})}];for(var file of files){var filePath=path.join(moduleDir,file.relativePath);var fileDir=path.dirname(filePath);if(!fs.existsSync(fileDir)){fs.mkdirSync(fileDir,{recursive:true});}fs.writeFileSync(filePath,file.content,'utf8');_logging.Logger.logDebug(`Created file: ${filePath}`);}syncAndroidModuleExpoUpdatesFromAppFiles({androidDir:androidDir,config:config});_logging.Logger.logDebug(`Android module "${android.moduleName}" created at ${moduleDir}`);}function syncAndroidModuleManifest(_ref2){var androidDir=_ref2.androidDir,config=_ref2.config,expoUpdatesMetaData=_ref2.expoUpdatesMetaData;writeAndroidModuleFile(path.join(androidDir,config.android.moduleName),'src/main/AndroidManifest.xml',(0,_engine.renderTemplate)('android','AndroidManifest.xml',{'{{APPLICATION_BLOCK}}':(0,_androidManifest.renderLibraryManifestApplication)(expoUpdatesMetaData)}));}function syncAndroidModuleStringResources(_ref3){var androidDir=_ref3.androidDir,config=_ref3.config,expoUpdatesStringResources=_ref3.expoUpdatesStringResources;writeAndroidModuleFile(path.join(androidDir,config.android.moduleName),'src/main/res/values/strings.xml',(0,_engine.renderTemplate)('android','strings.xml',{'{{STRING_RESOURCES}}':(0,_androidManifest.renderLibraryStringResources)(expoUpdatesStringResources)}));}function writeAndroidModuleFile(moduleDir,relativePath,content){var filePath=path.join(moduleDir,relativePath);var fileDir=path.dirname(filePath);if(!fs.existsSync(fileDir)){fs.mkdirSync(fileDir,{recursive:true});}fs.writeFileSync(filePath,content,'utf8');_logging.Logger.logDebug(`Created file: ${filePath}`);}function syncAndroidModuleExpoUpdatesFromAppFiles(_ref4){var androidDir=_ref4.androidDir,config=_ref4.config;var appModuleName='app';var expoUpdatesMetaData=(0,_expoUpdates.readExpoUpdatesApplicationMetaData)(androidDir,appModuleName);var expoUpdatesStringResources=(0,_expoUpdates.readExpoUpdatesStringResources)(androidDir,appModuleName,expoUpdatesMetaData);syncAndroidModuleManifest({androidDir:androidDir,config:config,expoUpdatesMetaData:expoUpdatesMetaData});syncAndroidModuleStringResources({androidDir:androidDir,config:config,expoUpdatesStringResources:expoUpdatesStringResources});}var withAndroidModuleFiles=exports.withAndroidModuleFiles=function withAndroidModuleFiles(config,props){return(0,_configPlugins.withDangerousMod)(config,['android',(function(){var _ref5=(0,_asyncToGenerator2.default)(function*(dangerousConfig){var androidDir=path.join(dangerousConfig.modRequest.projectRoot,'android');var rnVersion;try{var rnPkgPath=require.resolve('react-native/package.json',{paths:[dangerousConfig.modRequest.projectRoot]});var rnPkg=require(rnPkgPath);rnVersion=rnPkg.version;_logging.Logger.logDebug(`Resolved react-native version: ${rnVersion}`);}catch(_unused){throw new Error('Could not resolve react-native package version. Please ensure you have installed dependencies.');}createAndroidModule({androidDir:androidDir,config:props,rnVersion:rnVersion,projectRoot:dangerousConfig.modRequest.projectRoot,expoMajor:(0,_expoUtils.getExpoInfo)(dangerousConfig).expoMajor});return dangerousConfig;});return function(_x){return _ref5.apply(this,arguments);};}())]);};
2
2
  //# sourceMappingURL=withAndroidModuleFiles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fs","_interopRequireWildcard","require","path","_configPlugins","_logging","_engine","_androidManifest","_expoUpdates","_hermes","_formatHelpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","renderMissingDimensionStrategyBlock","missingDimensionStrategies","length","args","formatMissingDimensionStrategies","resolveCompileSdkVersionExpression","config","android","compileSdkVersion","toString","resolveTargetSdkVersionExpression","targetSdkVersion","createAndroidModule","_ref","_minifyEnabled","_extraProguardRules","androidDir","rnVersion","projectRoot","moduleDir","join","moduleName","Logger","logDebug","hermesArtifact","getHermesArtifact","compileSdkVersionExpression","targetSdkVersionExpression","minifyEnabled","extraProguardRules","extraProguardRulesText","groupId","artifactId","version","missingDimensionStrategiesList","missingDimensionStrategyBlock","files","relativePath","content","renderTemplate","packageName","minSdkVersion","replace","file","filePath","fileDir","dirname","existsSync","mkdirSync","recursive","writeFileSync","syncAndroidModuleExpoUpdatesFromAppFiles","syncAndroidModuleManifest","_ref2","expoUpdatesMetaData","writeAndroidModuleFile","renderLibraryManifestApplication","syncAndroidModuleStringResources","_ref3","expoUpdatesStringResources","renderLibraryStringResources","_ref4","appModuleName","readExpoUpdatesApplicationMetaData","readExpoUpdatesStringResources","withAndroidModuleFiles","exports","props","withDangerousMod","_ref5","_asyncToGenerator2","dangerousConfig","modRequest","rnPkgPath","resolve","paths","rnPkg","_unused","Error","_x","apply","arguments"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/android/withAndroidModuleFiles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fs","_interopRequireWildcard","require","path","_configPlugins","_logging","_engine","_expoUtils","_androidManifest","_expoUpdates","_hermes","_formatHelpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EXPO_SDK_OMIT_TARGET_SDK_FROM_MAJOR","exports","renderMissingDimensionStrategyBlock","missingDimensionStrategies","length","args","formatMissingDimensionStrategies","resolveCompileSdkVersionExpression","config","android","compileSdkVersion","toString","resolveTargetSdkVersionExpression","targetSdkVersion","renderTargetSdkBlock","expoMajor","templateVariant","arguments","undefined","createAndroidModule","_ref","_minifyEnabled","_extraProguardRules","androidDir","rnVersion","projectRoot","_ref$templateVariant","moduleDir","join","moduleName","Logger","logDebug","hermesArtifact","getHermesArtifact","compileSdkVersionExpression","targetSdkBlock","minifyEnabled","extraProguardRules","extraProguardRulesText","groupId","artifactId","version","missingDimensionStrategiesList","missingDimensionStrategyBlock","files","relativePath","content","renderTemplate","packageName","minSdkVersion","replace","file","filePath","fileDir","dirname","existsSync","mkdirSync","recursive","writeFileSync","syncAndroidModuleExpoUpdatesFromAppFiles","syncAndroidModuleManifest","_ref2","expoUpdatesMetaData","writeAndroidModuleFile","renderLibraryManifestApplication","syncAndroidModuleStringResources","_ref3","expoUpdatesStringResources","renderLibraryStringResources","_ref4","appModuleName","readExpoUpdatesApplicationMetaData","readExpoUpdatesStringResources","withAndroidModuleFiles","props","withDangerousMod","_ref5","_asyncToGenerator2","dangerousConfig","modRequest","rnPkgPath","resolve","paths","rnPkg","_unused","Error","getExpoInfo","_x","apply"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/android/withAndroidModuleFiles.ts"],"mappings":"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","ignoreList":[]}
@@ -14,5 +14,5 @@ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault
14
14
  end
15
15
  end
16
16
  ${BROWNFIELD_EXPO_GTE_55_SWIFT_DEFINES_MARKER_END}
17
- `;var postInstallMatch=podfile.match(/(post_install\s+do\s+\|installer\|\s*\n)((?:(?!^\s*end\s*$)[\s\S])*)(^\s*end\s*$)/m);if(postInstallMatch){var _postInstallMatch=(0,_slicedToArray2.default)(postInstallMatch,4),whole=_postInstallMatch[0],start=_postInstallMatch[1],content=_postInstallMatch[2],end=_postInstallMatch[3];var updated=`${start}${content.trimEnd()}\n${hook}\n${end}`;return podfile.replace(whole,updated);}return`${podfile.trimEnd()}\n\npost_install do |installer|\n${hook}\nend\n`;}function modifyPodfile(podfile,frameworkName,expoMajor){if(podfile.includes(`target '${frameworkName}'`)){_logging.Logger.logDebug(`Framework target "${frameworkName}" already in Podfile, skipping modification`);return podfile;}_logging.Logger.logDebug(`Modifying Podfile for framework: ${frameworkName}`);var frameworkTargetBlock=(0,_engine.renderTemplate)('ios','PodfileTargetBlock.rb',{'{{FRAMEWORK_NAME}}':frameworkName});var mainTargetMatch=podfile.match(/(target\s+['"][^'"]+['"]\s+do\s*\n)([\s\S]*?)(^end\s*$)/m);if(!mainTargetMatch){throw new _SourceModificationError.SourceModificationError('Could not find main target in Podfile. Please manually add the framework target.');}var _mainTargetMatch=(0,_slicedToArray2.default)(mainTargetMatch,3),targetStart=_mainTargetMatch[1],targetContent=_mainTargetMatch[2];var insertIndex=podfile.indexOf(mainTargetMatch[0])+targetStart.length+targetContent.length;var modifiedPodfile=podfile.slice(0,insertIndex)+frameworkTargetBlock+podfile.slice(insertIndex);_logging.Logger.logDebug(`Added framework target "${frameworkName}" to Podfile`);if(expoMajor<MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION){var versionLabel=expoMajor<0?'unknown':expoMajor.toString();throw new _SourceModificationError.SourceModificationError(`Expo SDK ${versionLabel} is not supported. Please use Expo SDK ${MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION} or newer. For older versions, please see the matrix of supported versions: https://oss.callstack.com/react-native-brownfield/docs/getting-started/introduction#expo-version-compatibility`);}modifiedPodfile=ensureExpoDefinesForSDK55AndAbove(modifiedPodfile,expoMajor);return modifiedPodfile;}
17
+ `;var postInstallMatch=podfile.match(/(post_install\s+do\s+\|installer\|\s*\n)((?:(?!^\s*end\s*$)[\s\S])*)(^\s*end\s*$)/m);if(postInstallMatch){var _postInstallMatch=(0,_slicedToArray2.default)(postInstallMatch,4),whole=_postInstallMatch[0],start=_postInstallMatch[1],content=_postInstallMatch[2],end=_postInstallMatch[3];var updated=`${start}${content.trimEnd()}\n${hook}\n${end}`;return podfile.replace(whole,updated);}return`${podfile.trimEnd()}\n\npost_install do |installer|\n${hook}\nend\n`;}function modifyPodfile(podfile,frameworkName,expoMajor){if(podfile.includes(`target '${frameworkName}'`)){_logging.Logger.logDebug(`Framework target "${frameworkName}" already in Podfile, skipping modification`);return podfile;}_logging.Logger.logDebug(`Modifying Podfile for framework: ${frameworkName}`);var frameworkTargetBlock=(0,_engine.renderTemplate)('ios',typeof expoMajor==='number'?'PodfileTargetBlock.rb':'PodfileTargetBlock.vanilla.rb',{'{{FRAMEWORK_NAME}}':frameworkName});var mainTargetMatch=podfile.match(/(target\s+['"][^'"]+['"]\s+do\s*\n)([\s\S]*?)(^end\s*$)/m);if(!mainTargetMatch){throw new _SourceModificationError.SourceModificationError('Could not find main target in Podfile. Please manually add the framework target.');}var _mainTargetMatch=(0,_slicedToArray2.default)(mainTargetMatch,3),targetStart=_mainTargetMatch[1],targetContent=_mainTargetMatch[2];var insertIndex=podfile.indexOf(mainTargetMatch[0])+targetStart.length+targetContent.length;var modifiedPodfile=podfile.slice(0,insertIndex)+frameworkTargetBlock+podfile.slice(insertIndex);_logging.Logger.logDebug(`Added framework target "${frameworkName}" to Podfile`);if(typeof expoMajor!=='number'){return modifiedPodfile;}if(expoMajor<MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION){var versionLabel=expoMajor<0?'unknown':String(expoMajor);throw new _SourceModificationError.SourceModificationError(`Expo SDK ${versionLabel} is not supported. Please use Expo SDK ${MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION} or newer. For older versions, please see the matrix of supported versions: https://oss.callstack.com/react-native-brownfield/docs/getting-started/introduction#expo-version-compatibility`);}modifiedPodfile=ensureExpoDefinesForSDK55AndAbove(modifiedPodfile,expoMajor);return modifiedPodfile;}
18
18
  //# sourceMappingURL=podfileHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_SourceModificationError","require","_logging","_engine","MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION","BROWNFIELD_EXPO_GTE_55_SWIFT_DEFINES_MARKER_START","BROWNFIELD_EXPO_GTE_55_SWIFT_DEFINES_MARKER_END","ensureExpoDefinesForSDK55AndAbove","podfile","expoMajor","includes","defaultDeploymentTarget","hook","postInstallMatch","match","_postInstallMatch","_slicedToArray2","default","whole","start","content","end","updated","trimEnd","replace","modifyPodfile","frameworkName","Logger","logDebug","frameworkTargetBlock","renderTemplate","mainTargetMatch","SourceModificationError","_mainTargetMatch","targetStart","targetContent","insertIndex","indexOf","length","modifiedPodfile","slice","versionLabel","toString"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/ios/podfileHelpers.ts"],"mappings":"4QAAA,IAAAA,wBAAA,CAAAC,OAAA,sCACA,IAAAC,QAAA,CAAAD,OAAA,eACA,IAAAE,OAAA,CAAAF,OAAA,uBAEA,GAAM,CAAAG,oCAAoC,CAAG,EAAE,CAE/C,GAAM,CAAAC,iDAAiD,CACrD,8DAA8D,CAChE,GAAM,CAAAC,+CAA+C,CACnD,8DAA8D,CAEhE,QAAS,CAAAC,iCAAiCA,CACxCC,OAAe,CACfC,SAAiB,CACT,CACR,GAAID,OAAO,CAACE,QAAQ,CAACL,iDAAiD,CAAC,CAAE,CACvE,MAAO,CAAAG,OAAO,CAChB,CAEA,GAAM,CAAAG,uBAAuB,CAAGF,SAAS,EAAI,EAAE,CAAG,MAAM,CAAG,MAAM,CACjE,GAAM,CAAAG,IAAI,CAAG;AACf,MAAMP,iDAAiD;AACvD,wFAAwFM,uBAAuB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAML,+CAA+C;AACrD,CAAC,CAEC,GAAM,CAAAO,gBAAgB,CAAGL,OAAO,CAACM,KAAK,CACpC,oFACF,CAAC,CAED,GAAID,gBAAgB,CAAE,CACpB,IAAAE,iBAAA,IAAAC,eAAA,CAAAC,OAAA,EAAqCJ,gBAAgB,IAA9CK,KAAK,CAAAH,iBAAA,IAAEI,KAAK,CAAAJ,iBAAA,IAAEK,OAAO,CAAAL,iBAAA,IAAEM,GAAG,CAAAN,iBAAA,IACjC,GAAM,CAAAO,OAAO,CAAG,GAAGH,KAAK,GAAGC,OAAO,CAACG,OAAO,CAAC,CAAC,KAAKX,IAAI,KAAKS,GAAG,EAAE,CAC/D,MAAO,CAAAb,OAAO,CAACgB,OAAO,CAACN,KAAK,CAAEI,OAAO,CAAC,CACxC,CAGA,MAAO,GAAGd,OAAO,CAACe,OAAO,CAAC,CAAC,oCAAoCX,IAAI,SAAS,CAC9E,CASO,QAAS,CAAAa,aAAaA,CAC3BjB,OAAe,CACfkB,aAAqB,CACrBjB,SAAiB,CACT,CAER,GAAID,OAAO,CAACE,QAAQ,CAAC,WAAWgB,aAAa,GAAG,CAAC,CAAE,CACjDC,eAAM,CAACC,QAAQ,CACb,qBAAqBF,aAAa,6CACpC,CAAC,CACD,MAAO,CAAAlB,OAAO,CAChB,CAEAmB,eAAM,CAACC,QAAQ,CAAC,oCAAoCF,aAAa,EAAE,CAAC,CAGpE,GAAM,CAAAG,oBAAoB,CAAG,GAAAC,sBAAc,EAAC,KAAK,CAAE,uBAAuB,CAAE,CAC1E,oBAAoB,CAAEJ,aACxB,CAAC,CAAC,CAGF,GAAM,CAAAK,eAAe,CAAGvB,OAAO,CAACM,KAAK,CACnC,0DACF,CAAC,CAED,GAAI,CAACiB,eAAe,CAAE,CACpB,KAAM,IAAI,CAAAC,gDAAuB,CAC/B,kFACF,CAAC,CACH,CAEA,IAAAC,gBAAA,IAAAjB,eAAA,CAAAC,OAAA,EAAuCc,eAAe,IAA7CG,WAAW,CAAAD,gBAAA,IAAEE,aAAa,CAAAF,gBAAA,IACnC,GAAM,CAAAG,WAAW,CACf5B,OAAO,CAAC6B,OAAO,CAACN,eAAe,CAAC,CAAC,CAAC,CAAC,CACnCG,WAAW,CAACI,MAAM,CAClBH,aAAa,CAACG,MAAM,CAEtB,GAAI,CAAAC,eAAe,CACjB/B,OAAO,CAACgC,KAAK,CAAC,CAAC,CAAEJ,WAAW,CAAC,CAC7BP,oBAAoB,CACpBrB,OAAO,CAACgC,KAAK,CAACJ,WAAW,CAAC,CAE5BT,eAAM,CAACC,QAAQ,CAAC,2BAA2BF,aAAa,cAAc,CAAC,CAEvE,GAAIjB,SAAS,CAAGL,oCAAoC,CAAE,CACpD,GAAM,CAAAqC,YAAY,CAAGhC,SAAS,CAAG,CAAC,CAAG,SAAS,CAAGA,SAAS,CAACiC,QAAQ,CAAC,CAAC,CACrE,KAAM,IAAI,CAAAV,gDAAuB,CAC/B,YAAYS,YAAY,0CAA0CrC,oCAAoC,4LACxG,CAAC,CACH,CAEAmC,eAAe,CAAGhC,iCAAiC,CACjDgC,eAAe,CACf9B,SACF,CAAC,CAED,MAAO,CAAA8B,eAAe,CACxB","ignoreList":[]}
1
+ {"version":3,"names":["_SourceModificationError","require","_logging","_engine","MIN_SUPPORTED_EXPO_SDK_MAJOR_VERSION","BROWNFIELD_EXPO_GTE_55_SWIFT_DEFINES_MARKER_START","BROWNFIELD_EXPO_GTE_55_SWIFT_DEFINES_MARKER_END","ensureExpoDefinesForSDK55AndAbove","podfile","expoMajor","includes","defaultDeploymentTarget","hook","postInstallMatch","match","_postInstallMatch","_slicedToArray2","default","whole","start","content","end","updated","trimEnd","replace","modifyPodfile","frameworkName","Logger","logDebug","frameworkTargetBlock","renderTemplate","mainTargetMatch","SourceModificationError","_mainTargetMatch","targetStart","targetContent","insertIndex","indexOf","length","modifiedPodfile","slice","versionLabel","String"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/ios/podfileHelpers.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.withBrownfieldIos=void 0;var _configPlugins=require("@expo/config-plugins");var _xcodeHelpers=require("./xcodeHelpers");var _podfileHelpers=require("./podfileHelpers");var _withFmtFix=require("./withFmtFix");var _expoUpdates=require("./utils/expo-updates");var _withIosFrameworkFiles=require("./withIosFrameworkFiles");var _logging=require("../logging");var _expoUtils=require("../expoUtils");var withBrownfieldIos=exports.withBrownfieldIos=function withBrownfieldIos(config,props){var _getExpoInfo=(0,_expoUtils.getExpoInfo)(config),expoMajor=_getExpoInfo.expoMajor;config=(0,_configPlugins.withXcodeProject)(config,function(xcodeConfig){var project=xcodeConfig.modResults,modRequest=xcodeConfig.modRequest;var hasExpoUpdates=(0,_expoUtils.hasExpoUpdatesInstalled)(modRequest.projectRoot);var iosProps=Object.assign({},props.ios,{deploymentTarget:(0,_xcodeHelpers.resolveFrameworkDeploymentTarget)(project,modRequest,{fallbackDeploymentTarget:props.ios.deploymentTarget})});var _addFrameworkTarget=(0,_xcodeHelpers.addFrameworkTarget)(project,modRequest,iosProps),frameworkTargetUUID=_addFrameworkTarget.frameworkTargetUUID,targetAlreadyExists=_addFrameworkTarget.targetAlreadyExists;if(hasExpoUpdates){(0,_expoUpdates.ensureFrameworkHasExpoPlistResource)(project,frameworkTargetUUID);}else{_logging.Logger.logDebug('Skipping Expo.plist framework resource wiring because expo-updates is not installed');}if(targetAlreadyExists){_logging.Logger.logDebug(`Framework target already present, syncing Brownfield build phases`);(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);return xcodeConfig;}(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);(0,_xcodeHelpers.addSourceFilesBuildPhase)(project,frameworkTargetUUID,iosProps);return xcodeConfig;});config=(0,_configPlugins.withPodfile)(config,function(podfileConfig){var frameworkName=props.ios.frameworkName;var modifiedPodfile=(0,_podfileHelpers.modifyPodfile)(podfileConfig.modResults.contents,frameworkName,expoMajor);podfileConfig.modResults.contents=(0,_withFmtFix.injectFmtFixIntoPodfile)(modifiedPodfile);return podfileConfig;});config=(0,_withIosFrameworkFiles.withIosFrameworkFiles)(config,props);return config;};
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.withBrownfieldIos=void 0;var _configPlugins=require("@expo/config-plugins");var _xcodeHelpers=require("./xcodeHelpers");var _podfileHelpers=require("./podfileHelpers");var _withFmtFix=require("./withFmtFix");var _expoUpdates=require("./utils/expo-updates");var _withIosFrameworkFiles=require("./withIosFrameworkFiles");var _logging=require("../logging");var _expoUtils=require("../expoUtils");var withBrownfieldIos=exports.withBrownfieldIos=function withBrownfieldIos(config,props){var _getExpoInfo=(0,_expoUtils.getExpoInfo)(config),expoMajor=_getExpoInfo.expoMajor;config=(0,_configPlugins.withXcodeProject)(config,function(xcodeConfig){var project=xcodeConfig.modResults,modRequest=xcodeConfig.modRequest;var hasExpoUpdates=(0,_expoUtils.hasExpoUpdatesInstalled)(modRequest.projectRoot);var iosProps=Object.assign({},props.ios,{deploymentTarget:(0,_xcodeHelpers.resolveFrameworkDeploymentTarget)(project,modRequest,{fallbackDeploymentTarget:props.ios.deploymentTarget})});var _addFrameworkTarget=(0,_xcodeHelpers.addFrameworkTarget)(project,modRequest,iosProps,{useExpoHost:true}),frameworkTargetUUID=_addFrameworkTarget.frameworkTargetUUID,targetAlreadyExists=_addFrameworkTarget.targetAlreadyExists;if(hasExpoUpdates){(0,_expoUpdates.ensureFrameworkHasExpoPlistResource)(project,frameworkTargetUUID);}else{_logging.Logger.logDebug('Skipping Expo.plist framework resource wiring because expo-updates is not installed');}if(targetAlreadyExists){_logging.Logger.logDebug(`Framework target already present, syncing Brownfield build phases`);(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);return xcodeConfig;}(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);(0,_xcodeHelpers.addSourceFilesBuildPhase)(project,frameworkTargetUUID,iosProps,{useExpoHost:true});return xcodeConfig;});config=(0,_configPlugins.withPodfile)(config,function(podfileConfig){var frameworkName=props.ios.frameworkName;var modifiedPodfile=(0,_podfileHelpers.modifyPodfile)(podfileConfig.modResults.contents,frameworkName,expoMajor);podfileConfig.modResults.contents=(0,_withFmtFix.injectFmtFixIntoPodfile)(modifiedPodfile);return podfileConfig;});config=(0,_withIosFrameworkFiles.withIosFrameworkFiles)(config,props);return config;};
2
2
  //# sourceMappingURL=withBrownfieldIos.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_configPlugins","require","_xcodeHelpers","_podfileHelpers","_withFmtFix","_expoUpdates","_withIosFrameworkFiles","_logging","_expoUtils","withBrownfieldIos","exports","config","props","_getExpoInfo","getExpoInfo","expoMajor","withXcodeProject","xcodeConfig","project","modResults","modRequest","hasExpoUpdates","hasExpoUpdatesInstalled","projectRoot","iosProps","Object","assign","ios","deploymentTarget","resolveFrameworkDeploymentTarget","fallbackDeploymentTarget","_addFrameworkTarget","addFrameworkTarget","frameworkTargetUUID","targetAlreadyExists","ensureFrameworkHasExpoPlistResource","Logger","logDebug","copyBundleReactNativePhase","addSourceFilesBuildPhase","withPodfile","podfileConfig","frameworkName","modifiedPodfile","modifyPodfile","contents","injectFmtFixIntoPodfile","withIosFrameworkFiles"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/ios/withBrownfieldIos.ts"],"mappings":"0FAAA,IAAAA,cAAA,CAAAC,OAAA,yBAMA,IAAAC,aAAA,CAAAD,OAAA,mBAMA,IAAAE,eAAA,CAAAF,OAAA,qBACA,IAAAG,WAAA,CAAAH,OAAA,iBACA,IAAAI,YAAA,CAAAJ,OAAA,yBACA,IAAAK,sBAAA,CAAAL,OAAA,4BAEA,IAAAM,QAAA,CAAAN,OAAA,eACA,IAAAO,UAAA,CAAAP,OAAA,iBAYO,GAAM,CAAAQ,iBAEZ,CAAAC,OAAA,CAAAD,iBAAA,CAAG,QAFS,CAAAA,iBAEZA,CAAIE,MAAM,CAAEC,KAAK,CAAK,CACrB,IAAAC,YAAA,CAAsB,GAAAC,sBAAW,EAACH,MAAM,CAAC,CAAjCI,SAAS,CAAAF,YAAA,CAATE,SAAS,CAGjBJ,MAAM,CAAG,GAAAK,+BAAgB,EAACL,MAAM,CAAE,SAACM,WAAW,CAAK,CACjD,GAAoB,CAAAC,OAAO,CAAiBD,WAAW,CAA/CE,UAAU,CAAWC,UAAU,CAAKH,WAAW,CAA1BG,UAAU,CACvC,GAAM,CAAAC,cAAc,CAAG,GAAAC,kCAAuB,EAACF,UAAU,CAACG,WAAW,CAAC,CACtE,GAAM,CAAAC,QAAQ,CAAAC,MAAA,CAAAC,MAAA,IACTd,KAAK,CAACe,GAAG,EACZC,gBAAgB,CAAE,GAAAC,8CAAgC,EAACX,OAAO,CAAEE,UAAU,CAAE,CACtEU,wBAAwB,CAAElB,KAAK,CAACe,GAAG,CAACC,gBACtC,CAAC,CAAC,EACH,CAED,IAAAG,mBAAA,CAAqD,GAAAC,gCAAkB,EACrEd,OAAO,CACPE,UAAU,CACVI,QACF,CAAC,CAJOS,mBAAmB,CAAAF,mBAAA,CAAnBE,mBAAmB,CAAEC,mBAAmB,CAAAH,mBAAA,CAAnBG,mBAAmB,CAQhD,GAAIb,cAAc,CAAE,CAClB,GAAAc,gDAAmC,EAACjB,OAAO,CAAEe,mBAAmB,CAAC,CACnE,CAAC,IAAM,CACLG,eAAM,CAACC,QAAQ,CACb,qFACF,CAAC,CACH,CAEA,GAAIH,mBAAmB,CAAE,CACvBE,eAAM,CAACC,QAAQ,CACb,mEACF,CAAC,CAED,GAAAC,wCAA0B,EAACpB,OAAO,CAAEe,mBAAmB,CAAC,CAExD,MAAO,CAAAhB,WAAW,CACpB,CAGA,GAAAqB,wCAA0B,EAACpB,OAAO,CAAEe,mBAAmB,CAAC,CAExD,GAAAM,sCAAwB,EAACrB,OAAO,CAAEe,mBAAmB,CAAET,QAAQ,CAAC,CAEhE,MAAO,CAAAP,WAAW,CACpB,CAAC,CAAC,CAGFN,MAAM,CAAG,GAAA6B,0BAAW,EAAC7B,MAAM,CAAE,SAAC8B,aAAa,CAAK,CAC9C,GAAQ,CAAAC,aAAa,CAAK9B,KAAK,CAACe,GAAG,CAA3Be,aAAa,CAErB,GAAM,CAAAC,eAAe,CAAG,GAAAC,6BAAa,EACnCH,aAAa,CAACtB,UAAU,CAAC0B,QAAQ,CACjCH,aAAa,CACb3B,SACF,CAAC,CACD0B,aAAa,CAACtB,UAAU,CAAC0B,QAAQ,CAC/B,GAAAC,mCAAuB,EAACH,eAAe,CAAC,CAE1C,MAAO,CAAAF,aAAa,CACtB,CAAC,CAAC,CAGF9B,MAAM,CAAG,GAAAoC,4CAAqB,EAACpC,MAAM,CAAEC,KAAK,CAAC,CAE7C,MAAO,CAAAD,MAAM,CACf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_configPlugins","require","_xcodeHelpers","_podfileHelpers","_withFmtFix","_expoUpdates","_withIosFrameworkFiles","_logging","_expoUtils","withBrownfieldIos","exports","config","props","_getExpoInfo","getExpoInfo","expoMajor","withXcodeProject","xcodeConfig","project","modResults","modRequest","hasExpoUpdates","hasExpoUpdatesInstalled","projectRoot","iosProps","Object","assign","ios","deploymentTarget","resolveFrameworkDeploymentTarget","fallbackDeploymentTarget","_addFrameworkTarget","addFrameworkTarget","useExpoHost","frameworkTargetUUID","targetAlreadyExists","ensureFrameworkHasExpoPlistResource","Logger","logDebug","copyBundleReactNativePhase","addSourceFilesBuildPhase","withPodfile","podfileConfig","frameworkName","modifiedPodfile","modifyPodfile","contents","injectFmtFixIntoPodfile","withIosFrameworkFiles"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/ios/withBrownfieldIos.ts"],"mappings":"0FAAA,IAAAA,cAAA,CAAAC,OAAA,yBAMA,IAAAC,aAAA,CAAAD,OAAA,mBAMA,IAAAE,eAAA,CAAAF,OAAA,qBACA,IAAAG,WAAA,CAAAH,OAAA,iBACA,IAAAI,YAAA,CAAAJ,OAAA,yBACA,IAAAK,sBAAA,CAAAL,OAAA,4BAEA,IAAAM,QAAA,CAAAN,OAAA,eACA,IAAAO,UAAA,CAAAP,OAAA,iBAYO,GAAM,CAAAQ,iBAEZ,CAAAC,OAAA,CAAAD,iBAAA,CAAG,QAFS,CAAAA,iBAEZA,CAAIE,MAAM,CAAEC,KAAK,CAAK,CACrB,IAAAC,YAAA,CAAsB,GAAAC,sBAAW,EAACH,MAAM,CAAC,CAAjCI,SAAS,CAAAF,YAAA,CAATE,SAAS,CAGjBJ,MAAM,CAAG,GAAAK,+BAAgB,EAACL,MAAM,CAAE,SAACM,WAAW,CAAK,CACjD,GAAoB,CAAAC,OAAO,CAAiBD,WAAW,CAA/CE,UAAU,CAAWC,UAAU,CAAKH,WAAW,CAA1BG,UAAU,CACvC,GAAM,CAAAC,cAAc,CAAG,GAAAC,kCAAuB,EAACF,UAAU,CAACG,WAAW,CAAC,CACtE,GAAM,CAAAC,QAAQ,CAAAC,MAAA,CAAAC,MAAA,IACTd,KAAK,CAACe,GAAG,EACZC,gBAAgB,CAAE,GAAAC,8CAAgC,EAACX,OAAO,CAAEE,UAAU,CAAE,CACtEU,wBAAwB,CAAElB,KAAK,CAACe,GAAG,CAACC,gBACtC,CAAC,CAAC,EACH,CAED,IAAAG,mBAAA,CAAqD,GAAAC,gCAAkB,EACrEd,OAAO,CACPE,UAAU,CACVI,QAAQ,CACR,CAAES,WAAW,CAAE,IAAK,CACtB,CAAC,CALOC,mBAAmB,CAAAH,mBAAA,CAAnBG,mBAAmB,CAAEC,mBAAmB,CAAAJ,mBAAA,CAAnBI,mBAAmB,CAShD,GAAId,cAAc,CAAE,CAClB,GAAAe,gDAAmC,EAAClB,OAAO,CAAEgB,mBAAmB,CAAC,CACnE,CAAC,IAAM,CACLG,eAAM,CAACC,QAAQ,CACb,qFACF,CAAC,CACH,CAEA,GAAIH,mBAAmB,CAAE,CACvBE,eAAM,CAACC,QAAQ,CACb,mEACF,CAAC,CAED,GAAAC,wCAA0B,EAACrB,OAAO,CAAEgB,mBAAmB,CAAC,CAExD,MAAO,CAAAjB,WAAW,CACpB,CAGA,GAAAsB,wCAA0B,EAACrB,OAAO,CAAEgB,mBAAmB,CAAC,CAExD,GAAAM,sCAAwB,EAACtB,OAAO,CAAEgB,mBAAmB,CAAEV,QAAQ,CAAE,CAC/DS,WAAW,CAAE,IACf,CAAC,CAAC,CAEF,MAAO,CAAAhB,WAAW,CACpB,CAAC,CAAC,CAGFN,MAAM,CAAG,GAAA8B,0BAAW,EAAC9B,MAAM,CAAE,SAAC+B,aAAa,CAAK,CAC9C,GAAQ,CAAAC,aAAa,CAAK/B,KAAK,CAACe,GAAG,CAA3BgB,aAAa,CAErB,GAAM,CAAAC,eAAe,CAAG,GAAAC,6BAAa,EACnCH,aAAa,CAACvB,UAAU,CAAC2B,QAAQ,CACjCH,aAAa,CACb5B,SACF,CAAC,CACD2B,aAAa,CAACvB,UAAU,CAAC2B,QAAQ,CAC/B,GAAAC,mCAAuB,EAACH,eAAe,CAAC,CAE1C,MAAO,CAAAF,aAAa,CACtB,CAAC,CAAC,CAGF/B,MAAM,CAAG,GAAAqC,4CAAqB,EAACrC,MAAM,CAAEC,KAAK,CAAC,CAE7C,MAAO,CAAAD,MAAM,CACf,CAAC","ignoreList":[]}