@callstack/react-native-brownfield 6.0.1 → 6.1.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.
- package/CHANGELOG.md +20 -0
- package/gradle-plugin/brownfield/build.gradle.kts +4 -0
- package/gradle-plugin/brownfield/gradle/libs.versions.toml +2 -0
- package/gradle-plugin/brownfield/gradle.properties +1 -1
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNBrownfieldPlugin.kt +24 -7
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/plugin/RNSourceSets.kt +4 -37
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/JNILibsProcessor.kt +206 -104
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/ResourceTaskProcessor.kt +201 -4
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantHelper.kt +7 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/processors/VariantTaskProvider.kt +4 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/GradleExclude.kt +31 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/MergeClassesTask.kt +2 -0
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/shared/PublishingMetadataInjector.kt +28 -3
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/Extension.kt +14 -1
- package/gradle-plugin/brownfield/src/main/kotlin/com/callstack/react/brownfield/utils/TaskOutputs.kt +40 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/plugin/AgpCompatibilityMatrixTest.kt +14 -6
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/plugin/HardExcludePredicateTest.kt +28 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/ConfigureProcessJniTaskTest.kt +60 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/CopyExplodedResTaskTest.kt +368 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/JniLibsPlanTest.kt +252 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/MergeClassesLocalJarsTest.kt +73 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/MetroResDirWiringTest.kt +39 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/processors/ProcessAndCopyJniLibsTaskTest.kt +136 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/shared/GradleExcludesTest.kt +81 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/shared/PublishingMetadataInjectorTest.kt +56 -0
- package/gradle-plugin/brownfield/src/test/kotlin/com/callstack/react/brownfield/utils/ExtensionTest.kt +5 -0
- package/lib/commonjs/expo-config-plugin/android/utils/constants.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
- package/lib/commonjs/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
- package/lib/commonjs/expo-config-plugin/template/android/build.gradle.kts +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/scaffold/index.js +1 -1
- package/lib/commonjs/scaffold/index.js.map +1 -1
- package/lib/module/expo-config-plugin/android/utils/constants.js +1 -1
- package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js +1 -1
- package/lib/module/expo-config-plugin/android/withAndroidModuleFiles.js.map +1 -1
- package/lib/module/expo-config-plugin/template/android/build.gradle.kts +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/scaffold/index.js +1 -1
- package/lib/module/scaffold/index.js.map +1 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
- package/lib/typescript/commonjs/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +6 -0
- package/lib/typescript/commonjs/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/scaffold/index.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/android/utils/constants.d.ts +2 -2
- package/lib/typescript/module/src/expo-config-plugin/android/withAndroidModuleFiles.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts +6 -0
- package/lib/typescript/module/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/scaffold/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/expo-config-plugin/android/utils/constants.ts +1 -1
- package/src/expo-config-plugin/android/withAndroidModuleFiles.ts +42 -0
- package/src/expo-config-plugin/template/android/build.gradle.kts +1 -1
- package/src/expo-config-plugin/types/android/BrownfieldPluginAndroidConfig.ts +7 -0
- package/src/index.ts +4 -2
- package/src/scaffold/index.ts +1 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
package com.callstack.react.brownfield.processors
|
|
2
|
+
|
|
3
|
+
import com.callstack.react.brownfield.shared.ExplodeAarTask
|
|
4
|
+
import com.callstack.react.brownfield.shared.UnresolvedArtifactInfo
|
|
5
|
+
import com.callstack.react.brownfield.utils.AndroidArchiveLibrary
|
|
6
|
+
import com.callstack.react.brownfield.utils.DirectoryManager
|
|
7
|
+
import org.gradle.testfixtures.ProjectBuilder
|
|
8
|
+
import org.junit.jupiter.api.Test
|
|
9
|
+
import org.junit.jupiter.api.io.TempDir
|
|
10
|
+
import java.io.File
|
|
11
|
+
import java.util.zip.ZipEntry
|
|
12
|
+
import java.util.zip.ZipOutputStream
|
|
13
|
+
import kotlin.test.assertTrue
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* A library that ships `implementation files("libs/some.jar")` has that jar in its exploded AAR's
|
|
17
|
+
* `libs/`. Its classes must be merged with the library's own `classes.jar` (#489).
|
|
18
|
+
*/
|
|
19
|
+
class MergeClassesLocalJarsTest {
|
|
20
|
+
@TempDir
|
|
21
|
+
lateinit var tempDir: File
|
|
22
|
+
|
|
23
|
+
@Test
|
|
24
|
+
fun `merges classes from a library's local jars`() {
|
|
25
|
+
val project = ProjectBuilder.builder().withProjectDir(tempDir).build()
|
|
26
|
+
DirectoryManager.project = project
|
|
27
|
+
|
|
28
|
+
val variantName = "release"
|
|
29
|
+
val library =
|
|
30
|
+
AndroidArchiveLibrary(
|
|
31
|
+
project,
|
|
32
|
+
UnresolvedArtifactInfo("RNApp", "react-native-aar-repro", "unspecified", null, false),
|
|
33
|
+
variantName,
|
|
34
|
+
)
|
|
35
|
+
val explodeTask = project.tasks.register("explodeTest", ExplodeAarTask::class.java)
|
|
36
|
+
val mergeTask = VariantTaskProvider(project).mergeClasses(listOf(library), explodeTask, variantName).get()
|
|
37
|
+
|
|
38
|
+
// Exploded after the task is configured, as on a clean build.
|
|
39
|
+
library.getExplodedAarRootDir().mkdirs()
|
|
40
|
+
writeJar(library.getClassesJarFile(), "com/aarrepro/AarReproPackage.class")
|
|
41
|
+
writeJar(
|
|
42
|
+
File(library.getLibsDir(), "aar-repro.jar"),
|
|
43
|
+
"com/aarrepro/jar/AarReproJarClass.class",
|
|
44
|
+
"module-info.class",
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
mergeTask.run()
|
|
48
|
+
|
|
49
|
+
val merged = mergeTask.outputDir.get().asFile
|
|
50
|
+
assertTrue(File(merged, "com/aarrepro/AarReproPackage.class").exists(), "classes.jar was not merged")
|
|
51
|
+
assertTrue(
|
|
52
|
+
File(merged, "com/aarrepro/jar/AarReproJarClass.class").exists(),
|
|
53
|
+
"classes from libs/aar-repro.jar were not merged",
|
|
54
|
+
)
|
|
55
|
+
val javacDir = File(tempDir, "build/intermediates/javac/release/compileReleaseJavaWithJavac/classes")
|
|
56
|
+
assertTrue(File(javacDir, "com/aarrepro/jar/AarReproJarClass.class").exists(), "jar classes are not compiled into the AAR")
|
|
57
|
+
assertTrue(!File(javacDir, "module-info.class").exists(), "a jar's module-info.class ended up in the AAR")
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private fun writeJar(
|
|
61
|
+
jar: File,
|
|
62
|
+
vararg entries: String,
|
|
63
|
+
) {
|
|
64
|
+
jar.parentFile.mkdirs()
|
|
65
|
+
ZipOutputStream(jar.outputStream()).use { zip ->
|
|
66
|
+
entries.forEach { entry ->
|
|
67
|
+
zip.putNextEntry(ZipEntry(entry))
|
|
68
|
+
zip.write(byteArrayOf(0xCA.toByte(), 0xFE.toByte(), 0xBA.toByte(), 0xBE.toByte()))
|
|
69
|
+
zip.closeEntry()
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
package com.callstack.react.brownfield.processors
|
|
2
|
+
|
|
3
|
+
import org.gradle.api.DefaultTask
|
|
4
|
+
import org.gradle.api.file.DirectoryProperty
|
|
5
|
+
import org.gradle.api.tasks.OutputDirectory
|
|
6
|
+
import org.gradle.testfixtures.ProjectBuilder
|
|
7
|
+
import org.junit.jupiter.api.Test
|
|
8
|
+
import org.junit.jupiter.api.io.TempDir
|
|
9
|
+
import java.io.File
|
|
10
|
+
import kotlin.test.assertEquals
|
|
11
|
+
import kotlin.test.assertTrue
|
|
12
|
+
|
|
13
|
+
abstract class FakeBundleTask : DefaultTask() {
|
|
14
|
+
@get:OutputDirectory
|
|
15
|
+
abstract val resourcesDir: DirectoryProperty
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
class MetroResDirWiringTest {
|
|
19
|
+
@TempDir
|
|
20
|
+
lateinit var tempDir: File
|
|
21
|
+
|
|
22
|
+
@Test
|
|
23
|
+
fun `treats Metro's res output as the module's own and runs after the bundle`() {
|
|
24
|
+
val root = ProjectBuilder.builder().withProjectDir(tempDir).build()
|
|
25
|
+
val app = ProjectBuilder.builder().withName("app").withParent(root).build()
|
|
26
|
+
val lib = ProjectBuilder.builder().withName("BrownfieldLib").withParent(root).build()
|
|
27
|
+
val metroDir = File(tempDir, "app/build/generated/res/react/release")
|
|
28
|
+
val bundle =
|
|
29
|
+
app.tasks.register("createBundleReleaseJsAndAssets", FakeBundleTask::class.java) {
|
|
30
|
+
it.resourcesDir.set(metroDir)
|
|
31
|
+
}
|
|
32
|
+
val copy = lib.tasks.register("copyExplodedResForRelease", CopyExplodedResTask::class.java).get()
|
|
33
|
+
|
|
34
|
+
wireMetroResDir(copy, app, "createBundleReleaseJsAndAssets")
|
|
35
|
+
|
|
36
|
+
assertEquals(setOf(metroDir), copy.moduleResDirs.files)
|
|
37
|
+
assertTrue(bundle.get() in copy.taskDependencies.getDependencies(copy))
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
package com.callstack.react.brownfield.processors
|
|
2
|
+
|
|
3
|
+
import org.gradle.api.tasks.InputDirectory
|
|
4
|
+
import org.gradle.api.tasks.InputFiles
|
|
5
|
+
import org.gradle.api.tasks.Optional
|
|
6
|
+
import org.gradle.testfixtures.ProjectBuilder
|
|
7
|
+
import org.junit.jupiter.api.Test
|
|
8
|
+
import org.junit.jupiter.api.io.TempDir
|
|
9
|
+
import java.io.File
|
|
10
|
+
import kotlin.test.assertEquals
|
|
11
|
+
import kotlin.test.assertFalse
|
|
12
|
+
import kotlin.test.assertTrue
|
|
13
|
+
|
|
14
|
+
class ProcessAndCopyJniLibsTaskTest {
|
|
15
|
+
@TempDir
|
|
16
|
+
lateinit var tempDir: File
|
|
17
|
+
|
|
18
|
+
private val out by lazy { File(tempDir, "out") }
|
|
19
|
+
private val report by lazy { File(tempDir, "reports/skipped-so.txt") }
|
|
20
|
+
|
|
21
|
+
private fun so(
|
|
22
|
+
root: File,
|
|
23
|
+
abi: String,
|
|
24
|
+
name: String,
|
|
25
|
+
content: String = name,
|
|
26
|
+
): File =
|
|
27
|
+
File(root, "$abi/$name").apply {
|
|
28
|
+
parentFile.mkdirs()
|
|
29
|
+
writeText(content)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
private fun runTask(
|
|
33
|
+
aars: List<File>,
|
|
34
|
+
appDir: File,
|
|
35
|
+
extraIgnored: List<String> = emptyList(),
|
|
36
|
+
dynamic: List<String> = emptyList(),
|
|
37
|
+
) {
|
|
38
|
+
val project = ProjectBuilder.builder().withProjectDir(File(tempDir, "project")).build()
|
|
39
|
+
val task = project.tasks.register("processJniForTest", ProcessAndCopyJniLibsTask::class.java).get()
|
|
40
|
+
task.aarJniDirs.setFrom(aars)
|
|
41
|
+
task.appNativeLibsDir.set(appDir)
|
|
42
|
+
task.extraIgnoredLibs.set(extraIgnored)
|
|
43
|
+
task.dynamicLibs.set(dynamic)
|
|
44
|
+
task.outputDirectory.set(out)
|
|
45
|
+
task.skippedReportFile.set(report)
|
|
46
|
+
task.execute()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private fun outFiles(): Set<String> = out.walkTopDown().filter { it.isFile }.map { it.relativeTo(out).invariantSeparatorsPath }.toSet()
|
|
50
|
+
|
|
51
|
+
@Test
|
|
52
|
+
fun `copies the plan and clears stale output`() {
|
|
53
|
+
so(out, "arm64-v8a", "libold.so")
|
|
54
|
+
val app = File(tempDir, "app")
|
|
55
|
+
val aar = File(tempDir, "aar")
|
|
56
|
+
so(app, "arm64-v8a", "libappmodules.so", "app-bytes")
|
|
57
|
+
val aarLib = so(aar, "arm64-v8a", "libfoo.so", "aar-bytes")
|
|
58
|
+
|
|
59
|
+
runTask(listOf(aar), app)
|
|
60
|
+
|
|
61
|
+
assertEquals(setOf("arm64-v8a/libappmodules.so", "arm64-v8a/libfoo.so"), outFiles())
|
|
62
|
+
assertEquals("app-bytes", File(out, "arm64-v8a/libappmodules.so").readText())
|
|
63
|
+
assertEquals("aar-bytes", File(out, "arm64-v8a/libfoo.so").readText())
|
|
64
|
+
assertTrue(aarLib.exists(), "inputs must not be modified")
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@Test
|
|
68
|
+
fun `works when the app dir does not exist`() {
|
|
69
|
+
val aar = File(tempDir, "aar")
|
|
70
|
+
so(aar, "arm64-v8a", "libfoo.so")
|
|
71
|
+
|
|
72
|
+
runTask(listOf(aar), File(tempDir, "missing"))
|
|
73
|
+
|
|
74
|
+
assertEquals(setOf("arm64-v8a/libfoo.so"), outFiles())
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@Test
|
|
78
|
+
fun `writes the skipped report`() {
|
|
79
|
+
val app = File(tempDir, "app")
|
|
80
|
+
val aar = File(tempDir, "aar")
|
|
81
|
+
so(app, "arm64-v8a", "libQmBlur.so")
|
|
82
|
+
so(aar, "arm64-v8a", "libreactnative.so")
|
|
83
|
+
|
|
84
|
+
runTask(listOf(aar), app)
|
|
85
|
+
|
|
86
|
+
val lines = report.readLines()
|
|
87
|
+
val expectedFirst = skippedSummary(planJniLibs(listOf(aar), app, IGNORE_EMBEDDED_LIBS, emptyList()), null)
|
|
88
|
+
assertEquals(expectedFirst, lines.first())
|
|
89
|
+
assertTrue("libQmBlur.so: NOT_EMBEDDED" in lines, lines.toString())
|
|
90
|
+
assertTrue("libreactnative.so: IGNORED" in lines, lines.toString())
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@Test
|
|
94
|
+
fun `writes the skipped report when nothing is skipped`() {
|
|
95
|
+
val app = File(tempDir, "app")
|
|
96
|
+
so(app, "arm64-v8a", "libappmodules.so")
|
|
97
|
+
|
|
98
|
+
runTask(emptyList(), app)
|
|
99
|
+
|
|
100
|
+
assertEquals(listOf("No .so files were left out."), report.readLines())
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@Test
|
|
104
|
+
fun `applies ignoreEmbeddedLibs and dynamicLibs`() {
|
|
105
|
+
val app = File(tempDir, "app")
|
|
106
|
+
val aar = File(tempDir, "aar")
|
|
107
|
+
so(app, "arm64-v8a", "libmmkv.so")
|
|
108
|
+
so(aar, "arm64-v8a", "libdatadog-ndk.so")
|
|
109
|
+
so(aar, "arm64-v8a", "libfoo.so")
|
|
110
|
+
|
|
111
|
+
runTask(listOf(aar), app, extraIgnored = listOf("libdatadog"), dynamic = listOf("libmmkv.so"))
|
|
112
|
+
|
|
113
|
+
assertEquals(setOf("arm64-v8a/libmmkv.so", "arm64-v8a/libfoo.so"), outFiles())
|
|
114
|
+
assertTrue("libdatadog-ndk.so: IGNORED" in report.readLines())
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
@Test
|
|
118
|
+
fun `app dir is not declared as an InputDirectory`() {
|
|
119
|
+
val getter = ProcessAndCopyJniLibsTask::class.java.getMethod("getAppNativeLibsDir")
|
|
120
|
+
|
|
121
|
+
assertTrue(getter.isAnnotationPresent(InputFiles::class.java))
|
|
122
|
+
assertTrue(getter.isAnnotationPresent(Optional::class.java))
|
|
123
|
+
assertFalse(getter.isAnnotationPresent(InputDirectory::class.java))
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
@Test
|
|
127
|
+
fun `runs after the task that unpacks the embedded AARs`() {
|
|
128
|
+
val project = ProjectBuilder.builder().withProjectDir(File(tempDir, "project")).build()
|
|
129
|
+
val explode = project.tasks.register("explodeDebugAar")
|
|
130
|
+
val task = project.tasks.register("processJniForTest", ProcessAndCopyJniLibsTask::class.java).get()
|
|
131
|
+
|
|
132
|
+
wireAarJniDirs(task, listOf(File(tempDir, "exploded/jni")), explode)
|
|
133
|
+
|
|
134
|
+
assertTrue(explode.get() in task.taskDependencies.getDependencies(task))
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
package com.callstack.react.brownfield.shared
|
|
2
|
+
|
|
3
|
+
import org.gradle.api.Project
|
|
4
|
+
import org.gradle.testfixtures.ProjectBuilder
|
|
5
|
+
import org.junit.jupiter.api.Test
|
|
6
|
+
import org.junit.jupiter.api.io.TempDir
|
|
7
|
+
import java.io.File
|
|
8
|
+
import kotlin.test.assertFalse
|
|
9
|
+
import kotlin.test.assertTrue
|
|
10
|
+
|
|
11
|
+
class GradleExcludesTest {
|
|
12
|
+
@TempDir
|
|
13
|
+
lateinit var tempDir: File
|
|
14
|
+
|
|
15
|
+
private fun project(
|
|
16
|
+
name: String,
|
|
17
|
+
vararg configNames: String,
|
|
18
|
+
): Project =
|
|
19
|
+
ProjectBuilder.builder().withName(name).withProjectDir(File(tempDir, name)).build().also { project ->
|
|
20
|
+
configNames.forEach { project.configurations.create(it) }
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
private fun Project.excludeEverywhere(
|
|
24
|
+
group: String,
|
|
25
|
+
module: String? = null,
|
|
26
|
+
) = configurations.all { config ->
|
|
27
|
+
config.exclude(listOfNotNull("group" to group, module?.let { "module" to it }).toMap())
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private fun excluded(
|
|
31
|
+
project: Project,
|
|
32
|
+
groupId: String,
|
|
33
|
+
artifactId: String,
|
|
34
|
+
) = gradleExcludes(project).any { it.matches(groupId, artifactId) }
|
|
35
|
+
|
|
36
|
+
@Test
|
|
37
|
+
fun `honors an exclude declared on every configuration`() {
|
|
38
|
+
val lib = project("lib", "implementation", "releaseRuntimeClasspath")
|
|
39
|
+
lib.excludeEverywhere("com.caverock", "androidsvg")
|
|
40
|
+
|
|
41
|
+
assertTrue(excluded(lib, "com.caverock", "androidsvg"))
|
|
42
|
+
assertFalse(excluded(lib, "com.caverock", "androidsvg-aar"))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Test
|
|
46
|
+
fun `a group-only exclude matches every module of the group`() {
|
|
47
|
+
val lib = project("lib", "api")
|
|
48
|
+
lib.excludeEverywhere("com.caverock")
|
|
49
|
+
|
|
50
|
+
assertTrue(excluded(lib, "com.caverock", "androidsvg-aar"))
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@Test
|
|
54
|
+
fun `ignores a variant-specific exclude`() {
|
|
55
|
+
val lib = project("lib", "implementation", "debugRuntimeClasspath")
|
|
56
|
+
lib.configurations.getByName("debugRuntimeClasspath").exclude(mapOf("group" to "com.caverock"))
|
|
57
|
+
|
|
58
|
+
assertFalse(excluded(lib, "com.caverock", "androidsvg"))
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@Test
|
|
62
|
+
fun `honors an exclude on a single runtime configuration`() {
|
|
63
|
+
val lib = project("lib", "embed")
|
|
64
|
+
lib.configurations.getByName("embed").exclude(mapOf("group" to "com.caverock", "module" to "androidsvg"))
|
|
65
|
+
|
|
66
|
+
assertTrue(excluded(lib, "com.caverock", "androidsvg"))
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@Test
|
|
70
|
+
fun `ignores configurations that do not feed the runtime`() {
|
|
71
|
+
val lib = project("lib", "implementation", "detekt")
|
|
72
|
+
lib.configurations.getByName("detekt").exclude(mapOf("group" to "org.jetbrains.kotlin"))
|
|
73
|
+
|
|
74
|
+
assertFalse(excluded(lib, "org.jetbrains.kotlin", "kotlin-stdlib"))
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@Test
|
|
78
|
+
fun `matches nothing without excludes`() {
|
|
79
|
+
assertFalse(excluded(project("lib", "implementation"), "com.caverock", "androidsvg"))
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -163,6 +163,36 @@ class MutatePomDependenciesNodeTest {
|
|
|
163
163
|
|
|
164
164
|
assertEquals(listOf("1.7.1"), versionsFor(dependenciesNode, "androidx.appcompat", "appcompat"))
|
|
165
165
|
}
|
|
166
|
+
|
|
167
|
+
@Test
|
|
168
|
+
fun `writes the brownfield module's excludes onto every injected dependency`() {
|
|
169
|
+
val dependenciesNode = dependenciesNodeFrom("<project><dependencies/></project>")
|
|
170
|
+
val toInject = VersionMediatingDependencySet()
|
|
171
|
+
toInject.add(DependencyInfo("com.foo", "charts", "1.0", "compile", false))
|
|
172
|
+
val excludes = listOf(GradleExclude("com.caverock", "androidsvg"), GradleExclude("com.legacy", null))
|
|
173
|
+
|
|
174
|
+
mutatePomDependenciesNode(dependenciesNode, toInject, excludes) { _, _ -> false }
|
|
175
|
+
|
|
176
|
+
val dependency = dependenciesNode.children().filterIsInstance<groovy.util.Node>().single()
|
|
177
|
+
val exclusions =
|
|
178
|
+
((dependency["exclusions"] as NodeList).single() as groovy.util.Node).children().filterIsInstance<groovy.util.Node>()
|
|
179
|
+
assertEquals(
|
|
180
|
+
listOf("com.caverock" to "androidsvg", "com.legacy" to "*"),
|
|
181
|
+
exclusions.map { (it["groupId"] as NodeList).text() to (it["artifactId"] as NodeList).text() },
|
|
182
|
+
)
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@Test
|
|
186
|
+
fun `writes no exclusions element without excludes`() {
|
|
187
|
+
val dependenciesNode = dependenciesNodeFrom("<project><dependencies/></project>")
|
|
188
|
+
val toInject = VersionMediatingDependencySet()
|
|
189
|
+
toInject.add(DependencyInfo("com.foo", "charts", "1.0", "compile", false))
|
|
190
|
+
|
|
191
|
+
mutatePomDependenciesNode(dependenciesNode, toInject) { _, _ -> false }
|
|
192
|
+
|
|
193
|
+
val dependency = dependenciesNode.children().filterIsInstance<groovy.util.Node>().single()
|
|
194
|
+
assertTrue((dependency["exclusions"] as NodeList).isEmpty())
|
|
195
|
+
}
|
|
166
196
|
}
|
|
167
197
|
|
|
168
198
|
class MutateModuleJsonVariantsTest {
|
|
@@ -219,4 +249,30 @@ class MutateModuleJsonVariantsTest {
|
|
|
219
249
|
val version = (deps.first()["version"] as? Map<String, Any>)?.get("requires")
|
|
220
250
|
assertEquals("1.7.1", version)
|
|
221
251
|
}
|
|
252
|
+
|
|
253
|
+
@Test
|
|
254
|
+
fun `writes the brownfield module's excludes onto every injected dependency`() {
|
|
255
|
+
val json = jsonWithVariant(mutableListOf())
|
|
256
|
+
val toInject = VersionMediatingDependencySet()
|
|
257
|
+
toInject.add(DependencyInfo("com.foo", "charts", "1.0", "compile", false))
|
|
258
|
+
val excludes = listOf(GradleExclude("com.caverock", "androidsvg"), GradleExclude("com.legacy", null))
|
|
259
|
+
|
|
260
|
+
mutateModuleJsonVariants(json, toInject, excludes) { _, _ -> false }
|
|
261
|
+
|
|
262
|
+
assertEquals(
|
|
263
|
+
listOf(mapOf("group" to "com.caverock", "module" to "androidsvg"), mapOf("group" to "com.legacy", "module" to "*")),
|
|
264
|
+
dependenciesOf(json).single()["excludes"],
|
|
265
|
+
)
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@Test
|
|
269
|
+
fun `writes no excludes field without excludes`() {
|
|
270
|
+
val json = jsonWithVariant(mutableListOf())
|
|
271
|
+
val toInject = VersionMediatingDependencySet()
|
|
272
|
+
toInject.add(DependencyInfo("com.foo", "charts", "1.0", "compile", false))
|
|
273
|
+
|
|
274
|
+
mutateModuleJsonVariants(json, toInject) { _, _ -> false }
|
|
275
|
+
|
|
276
|
+
assertNull(dependenciesOf(json).single()["excludes"])
|
|
277
|
+
}
|
|
222
278
|
}
|
|
@@ -8,4 +8,9 @@ class ExtensionTest {
|
|
|
8
8
|
fun `experimentalIncludeTransitiveDependencies defaults to true`() {
|
|
9
9
|
assertTrue(Extension().experimentalIncludeTransitiveDependencies)
|
|
10
10
|
}
|
|
11
|
+
|
|
12
|
+
@Test
|
|
13
|
+
fun `dynamicLibs defaults to an empty list`() {
|
|
14
|
+
assertTrue(Extension().dynamicLibs.isEmpty())
|
|
15
|
+
}
|
|
11
16
|
}
|
|
@@ -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-
|
|
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-alpha14';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.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);};}())]);};
|
|
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 _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));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})`;}var COORDINATE_PART=/^[A-Za-z0-9._-]+$/;function renderExcludeDependenciesBlock(excludeDependencies){if(!Array.isArray(excludeDependencies)){throw new Error('android.excludeDependencies must be a list of "group:module" or "group" strings.');}if(excludeDependencies.length===0){return'';}var lines=excludeDependencies.map(function(entry){var parts=entry.split(':');if(parts.length>2||!parts.every(function(part){return COORDINATE_PART.test(part);})){throw new Error(`android.excludeDependencies: '${entry}' is not in the form "group:module" or "group".`);}var _parts=(0,_slicedToArray2.default)(parts,2),group=_parts[0],module=_parts[1];return module?` exclude(group = "${group}", module = "${module}")`:` exclude(group = "${group}")`;});return`configurations.all {\n${lines.join('\n')}\n}\n\n`;}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 excludeDependenciesBlock=renderExcludeDependenciesBlock(android.excludeDependencies);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,'{{EXCLUDE_DEPENDENCIES_BLOCK}}':excludeDependenciesBlock})},{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","_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":[]}
|
|
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","COORDINATE_PART","renderExcludeDependenciesBlock","excludeDependencies","Array","isArray","Error","lines","map","entry","parts","split","every","part","test","_parts","_slicedToArray2","group","module","join","resolveCompileSdkVersionExpression","config","android","compileSdkVersion","toString","resolveTargetSdkVersionExpression","targetSdkVersion","renderTargetSdkBlock","expoMajor","templateVariant","arguments","undefined","createAndroidModule","_ref","_minifyEnabled","_extraProguardRules","androidDir","rnVersion","projectRoot","_ref$templateVariant","moduleDir","moduleName","Logger","logDebug","hermesArtifact","getHermesArtifact","compileSdkVersionExpression","targetSdkBlock","minifyEnabled","extraProguardRules","extraProguardRulesText","groupId","artifactId","version","missingDimensionStrategiesList","missingDimensionStrategyBlock","excludeDependenciesBlock","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","getExpoInfo","_x","apply"],"sourceRoot":"../../../../src","sources":["expo-config-plugin/android/withAndroidModuleFiles.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _reactNative=require("react-native");var _NativeReactNativeBrownfieldModule=_interopRequireDefault(require("./NativeReactNativeBrownfieldModule"));var ReactNativeBrownfield={markFullyDisplayed:function markFullyDisplayed(presentationID){if(_reactNative.Platform.OS==='ios'||_reactNative.Platform.OS==='android'){_reactNative.NativeModules.BrownfieldPerformance.markFullyDisplayed(presentationID);}},popToNative:function popToNative(animated){if(_reactNative.Platform.OS==='ios'){_NativeReactNativeBrownfieldModule.default.popToNative(!!animated);}else if(_reactNative.Platform.OS==='android'){_NativeReactNativeBrownfieldModule.default.popToNative(false);}else{console.warn('Not implemented: popToNative');}},setNativeBackGestureAndButtonEnabled:function setNativeBackGestureAndButtonEnabled(enabled){if(_reactNative.Platform.OS==='ios'){_NativeReactNativeBrownfieldModule.default.setPopGestureRecognizerEnabled(enabled);}else if(_reactNative.Platform.OS==='android'){_NativeReactNativeBrownfieldModule.default.setHardwareBackButtonEnabled(enabled);}else{console.warn('Not implemented: setNativeGesturesAndButtonsEnabled');}},postMessage:function postMessage(data){var serialized=JSON.stringify(data);_NativeReactNativeBrownfieldModule.default.postMessage(serialized);},onMessage:function onMessage(callback){var subscription=_NativeReactNativeBrownfieldModule.default.onBrownfieldMessage(function(payload){try{
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _reactNative=require("react-native");var _NativeReactNativeBrownfieldModule=_interopRequireDefault(require("./NativeReactNativeBrownfieldModule"));var ReactNativeBrownfield={markFullyDisplayed:function markFullyDisplayed(presentationID){if(_reactNative.Platform.OS==='ios'||_reactNative.Platform.OS==='android'){_reactNative.NativeModules.BrownfieldPerformance.markFullyDisplayed(presentationID);}},popToNative:function popToNative(animated){if(_reactNative.Platform.OS==='ios'){_NativeReactNativeBrownfieldModule.default.popToNative(!!animated);}else if(_reactNative.Platform.OS==='android'){_NativeReactNativeBrownfieldModule.default.popToNative(false);}else{console.warn('Not implemented: popToNative');}},setNativeBackGestureAndButtonEnabled:function setNativeBackGestureAndButtonEnabled(enabled){if(_reactNative.Platform.OS==='ios'){_NativeReactNativeBrownfieldModule.default.setPopGestureRecognizerEnabled(enabled);}else if(_reactNative.Platform.OS==='android'){_NativeReactNativeBrownfieldModule.default.setHardwareBackButtonEnabled(enabled);}else{console.warn('Not implemented: setNativeGesturesAndButtonsEnabled');}},postMessage:function postMessage(data){var serialized=JSON.stringify(data);_NativeReactNativeBrownfieldModule.default.postMessage(serialized);},onMessage:function onMessage(callback){var subscription=_NativeReactNativeBrownfieldModule.default.onBrownfieldMessage(function(payload){var data;try{data=JSON.parse(payload.text);}catch(_unused){data=payload.text;}callback({data:data});});return{remove:function remove(){return subscription.remove();}};}};var _default=exports.default=ReactNativeBrownfield;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeReactNativeBrownfieldModule","_interopRequireDefault","ReactNativeBrownfield","markFullyDisplayed","presentationID","Platform","OS","NativeModules","BrownfieldPerformance","popToNative","animated","ReactNativeBrownfieldModule","console","warn","setNativeBackGestureAndButtonEnabled","enabled","setPopGestureRecognizerEnabled","setHardwareBackButtonEnabled","postMessage","data","serialized","JSON","stringify","onMessage","callback","subscription","onBrownfieldMessage","payload","parse","text","_unused","remove","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"mKAAA,IAAAA,YAAA,CAAAC,OAAA,iBAEA,IAAAC,kCAAA,CAAAC,sBAAA,CAAAF,OAAA,yCAeA,GAAM,CAAAG,qBAAqB,CAAG,CAO5BC,kBAAkB,CAAE,QAApB,CAAAA,kBAAkBA,CAAGC,cAAsB,CAAW,CACpD,GAAIC,qBAAQ,CAACC,EAAE,GAAK,KAAK,EAAID,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACtDC,0BAAa,CAACC,qBAAqB,CAACL,kBAAkB,CAACC,cAAc,CAAC,CACxE,CACF,CAAC,CASDK,WAAW,CAAE,QAAb,CAAAA,WAAWA,CAAGC,QAAkB,CAAW,CACzC,GAAIL,qBAAQ,CAACC,EAAE,GAAK,KAAK,CAAE,CACzBK,0CAA2B,CAACF,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,CACrD,CAAC,IAAM,IAAIL,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACpCK,0CAA2B,CAACF,WAAW,CAAC,KAAK,CAAC,CAChD,CAAC,IAAM,CACLG,OAAO,CAACC,IAAI,CAAC,8BAA8B,CAAC,CAC9C,CACF,CAAC,CAUDC,oCAAoC,CAAE,QAAtC,CAAAA,oCAAoCA,CAAGC,OAAgB,CAAW,CAChE,GAAIV,qBAAQ,CAACC,EAAE,GAAK,KAAK,CAAE,CACzBK,0CAA2B,CAACK,8BAA8B,CAACD,OAAO,CAAC,CACrE,CAAC,IAAM,IAAIV,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACpCK,0CAA2B,CAACM,4BAA4B,CAACF,OAAO,CAAC,CACnE,CAAC,IAAM,CACLH,OAAO,CAACC,IAAI,CAAC,qDAAqD,CAAC,CACrE,CACF,CAAC,CAYDK,WAAW,CAAE,QAAb,CAAAA,WAAWA,CAAGC,IAAa,CAAW,CACpC,GAAM,CAAAC,UAAU,CAAGC,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CACvCR,0CAA2B,CAACO,WAAW,CAACE,UAAU,CAAC,CACrD,CAAC,CAeDG,SAAS,CAAE,QAAX,CAAAA,SAASA,CACPC,QAAuC,CACZ,CAC3B,GAAM,CAAAC,YAAY,CAAGd,0CAA2B,CAACe,mBAAmB,CAClE,SAACC,OAAO,CAAK,CACX,GAAI,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeReactNativeBrownfieldModule","_interopRequireDefault","ReactNativeBrownfield","markFullyDisplayed","presentationID","Platform","OS","NativeModules","BrownfieldPerformance","popToNative","animated","ReactNativeBrownfieldModule","console","warn","setNativeBackGestureAndButtonEnabled","enabled","setPopGestureRecognizerEnabled","setHardwareBackButtonEnabled","postMessage","data","serialized","JSON","stringify","onMessage","callback","subscription","onBrownfieldMessage","payload","parse","text","_unused","remove","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"mKAAA,IAAAA,YAAA,CAAAC,OAAA,iBAEA,IAAAC,kCAAA,CAAAC,sBAAA,CAAAF,OAAA,yCAeA,GAAM,CAAAG,qBAAqB,CAAG,CAO5BC,kBAAkB,CAAE,QAApB,CAAAA,kBAAkBA,CAAGC,cAAsB,CAAW,CACpD,GAAIC,qBAAQ,CAACC,EAAE,GAAK,KAAK,EAAID,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACtDC,0BAAa,CAACC,qBAAqB,CAACL,kBAAkB,CAACC,cAAc,CAAC,CACxE,CACF,CAAC,CASDK,WAAW,CAAE,QAAb,CAAAA,WAAWA,CAAGC,QAAkB,CAAW,CACzC,GAAIL,qBAAQ,CAACC,EAAE,GAAK,KAAK,CAAE,CACzBK,0CAA2B,CAACF,WAAW,CAAC,CAAC,CAACC,QAAQ,CAAC,CACrD,CAAC,IAAM,IAAIL,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACpCK,0CAA2B,CAACF,WAAW,CAAC,KAAK,CAAC,CAChD,CAAC,IAAM,CACLG,OAAO,CAACC,IAAI,CAAC,8BAA8B,CAAC,CAC9C,CACF,CAAC,CAUDC,oCAAoC,CAAE,QAAtC,CAAAA,oCAAoCA,CAAGC,OAAgB,CAAW,CAChE,GAAIV,qBAAQ,CAACC,EAAE,GAAK,KAAK,CAAE,CACzBK,0CAA2B,CAACK,8BAA8B,CAACD,OAAO,CAAC,CACrE,CAAC,IAAM,IAAIV,qBAAQ,CAACC,EAAE,GAAK,SAAS,CAAE,CACpCK,0CAA2B,CAACM,4BAA4B,CAACF,OAAO,CAAC,CACnE,CAAC,IAAM,CACLH,OAAO,CAACC,IAAI,CAAC,qDAAqD,CAAC,CACrE,CACF,CAAC,CAYDK,WAAW,CAAE,QAAb,CAAAA,WAAWA,CAAGC,IAAa,CAAW,CACpC,GAAM,CAAAC,UAAU,CAAGC,IAAI,CAACC,SAAS,CAACH,IAAI,CAAC,CACvCR,0CAA2B,CAACO,WAAW,CAACE,UAAU,CAAC,CACrD,CAAC,CAeDG,SAAS,CAAE,QAAX,CAAAA,SAASA,CACPC,QAAuC,CACZ,CAC3B,GAAM,CAAAC,YAAY,CAAGd,0CAA2B,CAACe,mBAAmB,CAClE,SAACC,OAAO,CAAK,CACX,GAAI,CAAAR,IAAa,CACjB,GAAI,CACFA,IAAI,CAAGE,IAAI,CAACO,KAAK,CAACD,OAAO,CAACE,IAAI,CAAC,CACjC,CAAE,MAAAC,OAAA,CAAM,CACNX,IAAI,CAAGQ,OAAO,CAACE,IAAI,CACrB,CACAL,QAAQ,CAAC,CAAEL,IAAI,CAAJA,IAAK,CAAC,CAAC,CACpB,CACF,CAAC,CACD,MAAO,CAAEY,MAAM,CAAE,QAAR,CAAAA,MAAMA,CAAA,QAAQ,CAAAN,YAAY,CAACM,MAAM,CAAC,CAAC,EAAC,CAAC,CAChD,CACF,CAAC,CAAC,IAAAC,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAEahC,qBAAqB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.scaffoldBrownfieldInRncCliProject=scaffoldBrownfieldInRncCliProject;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _nodeFs=_interopRequireDefault(require("node:fs"));var _nodeModule=require("node:module");var _nodePath=_interopRequireDefault(require("node:path"));var _cliConfig=_interopRequireDefault(require("@react-native-community/cli-config"));var _xcode=_interopRequireDefault(require("xcode"));var _logging=require("../expo-config-plugin/logging");var _gradleHelpers=require("../expo-config-plugin/android/utils/gradleHelpers");var _withAndroidModuleFiles=require("../expo-config-plugin/android/withAndroidModuleFiles");var _podfileHelpers=require("../expo-config-plugin/ios/podfileHelpers");var _xcodeHelpers=require("../expo-config-plugin/ios/xcodeHelpers");var _withIosFrameworkFiles=require("../expo-config-plugin/ios/withIosFrameworkFiles");var _projectFiles=require("./projectFiles");var cliConfig=typeof _cliConfig.default==='function'?_cliConfig.default:_cliConfig.default.default;function findProjectRoot(startDir){var currentDir=startDir;while(true){if(_nodeFs.default.existsSync(_nodePath.default.join(currentDir,'package.json'))){return currentDir;}var parent=_nodePath.default.dirname(currentDir);if(parent===currentDir)break;currentDir=parent;}throw new Error('Could not find project root (no package.json found)');}function resolveUserConfig(projectRoot){return cliConfig({projectRoot:projectRoot});}function readFileIfExists(filePath){return _nodeFs.default.existsSync(filePath)?_nodeFs.default.readFileSync(filePath,'utf8'):null;}function writeFileIfChanged(filePath,next){var prev=readFileIfExists(filePath);if(prev===next)return;_nodeFs.default.writeFileSync(filePath,next,'utf8');}function firstXcodeprojPath(iosDir){var entries=_nodeFs.default.readdirSync(iosDir,{withFileTypes:true});var xcodeproj=entries.find(function(e){return e.isDirectory()&&e.name.endsWith('.xcodeproj');});if(!xcodeproj){throw new Error(`Could not find an .xcodeproj under ${iosDir}. Did you run iOS project generation?`);}return _nodePath.default.join(iosDir,xcodeproj.name);}function unquote(value){return value.replace(/^"+|"+$/g,'');}function resolveIosAppBundleId(pbxproj){var _pbxproj$pbxNativeTar,_pbxproj$pbxXCConfigu,_pbxproj$pbxXCBuildCo;var nativeTargets=(_pbxproj$pbxNativeTar=pbxproj.pbxNativeTargetSection==null?void 0:pbxproj.pbxNativeTargetSection())!=null?_pbxproj$pbxNativeTar:{};var configLists=(_pbxproj$pbxXCConfigu=pbxproj.pbxXCConfigurationList==null?void 0:pbxproj.pbxXCConfigurationList())!=null?_pbxproj$pbxXCConfigu:{};var buildConfigs=(_pbxproj$pbxXCBuildCo=pbxproj.pbxXCBuildConfigurationSection==null?void 0:pbxproj.pbxXCBuildConfigurationSection())!=null?_pbxproj$pbxXCBuildCo:{};for(var _ref of Object.entries(nativeTargets)){var _configList$buildConf,_debugConfig$buildSet;var _ref2=(0,_slicedToArray2.default)(_ref,2);var key=_ref2[0];var target=_ref2[1];if(key.endsWith('_comment'))continue;if(typeof(target==null?void 0:target.productType)==='string'&&!target.productType.includes('application')){continue;}var configListId=target==null?void 0:target.buildConfigurationList;var configList=configLists==null?void 0:configLists[configListId];var debugConfigId=configList==null||(_configList$buildConf=configList.buildConfigurations)==null||_configList$buildConf.find==null||(_configList$buildConf=_configList$buildConf.find(function(c){return(c==null?void 0:c.comment)==='Debug';}))==null?void 0:_configList$buildConf.value;var debugConfig=debugConfigId?buildConfigs==null?void 0:buildConfigs[debugConfigId]:null;var bundleId=debugConfig==null||(_debugConfig$buildSet=debugConfig.buildSettings)==null?void 0:_debugConfig$buildSet.PRODUCT_BUNDLE_IDENTIFIER;if(typeof bundleId==='string'&&bundleId.length>0){return unquote(bundleId);}}return null;}function resolveReactNativeVersion(projectRoot){var localRequire=typeof require==='undefined'?(0,_nodeModule.createRequire)(_nodePath.default.join(process.cwd(),'noop.js')):require;var rnPkgPath=localRequire.resolve('react-native/package.json',{paths:[projectRoot]});var rnPkg=localRequire(rnPkgPath);if(!(rnPkg!=null&&rnPkg.version)){throw new Error('Could not resolve react-native version from package.json');}return rnPkg.version;}function resolveExpoMajor(projectRoot){var _pkg$dependencies,_pkg$devDependencies;var pkg=JSON.parse(_nodeFs.default.readFileSync(_nodePath.default.join(projectRoot,'package.json'),'utf8'));if(!((_pkg$dependencies=pkg.dependencies)!=null&&_pkg$dependencies.expo)&&!((_pkg$devDependencies=pkg.devDependencies)!=null&&_pkg$devDependencies.expo)){return undefined;}var localRequire=typeof require==='undefined'?(0,_nodeModule.createRequire)(_nodePath.default.join(process.cwd(),'noop.js')):require;try{var _String$split$;var expoPkg=localRequire(localRequire.resolve('expo/package.json',{paths:[projectRoot]}));return Number.parseInt((_String$split$=String(expoPkg.version).split('.')[0])!=null?_String$split$:'',10);}catch(_unused){return-1;}}function scaffoldBrownfieldInRncCliProject(){return _scaffoldBrownfieldInRncCliProject.apply(this,arguments);}function _scaffoldBrownfieldInRncCliProject(){_scaffoldBrownfieldInRncCliProject=(0,_asyncToGenerator2.default)(function*(){var _options$projectRoot,_options$debug,_options$iosFramework,_options$androidModul,_android$packageName;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var projectRoot=findProjectRoot(_nodePath.default.resolve((_options$projectRoot=options.projectRoot)!=null?_options$projectRoot:process.cwd()));_logging.Logger.setIsDebug((_options$debug=options.debug)!=null?_options$debug:false);var userConfig=resolveUserConfig(projectRoot);var android=userConfig.project.android;var ios=userConfig.project.ios;if(!android){throw new Error('Android project not found.');}if(!ios){throw new Error('iOS project not found.');}var androidDir=_nodePath.default.isAbsolute(android.sourceDir)?android.sourceDir:_nodePath.default.join(projectRoot,android.sourceDir||'android');var iosSourceDir=ios.sourceDir;var iosDir=_nodePath.default.isAbsolute(iosSourceDir)?iosSourceDir:_nodePath.default.join(projectRoot,iosSourceDir||'ios');var rnVersion=resolveReactNativeVersion(projectRoot);var expoMajor=resolveExpoMajor(projectRoot);if(expoMajor!==undefined){_logging.Logger.logInfo('Expo modules detected. The iOS framework will start React Native through the Expo host.');}var iosFrameworkName=(_options$iosFramework=options.iosFrameworkName)!=null?_options$iosFramework:'BrownfieldLib';var androidModuleName=(_options$androidModul=options.androidModuleName)!=null?_options$androidModul:'brownfieldlib';var androidPackageName=(_android$packageName=android.packageName)!=null?_android$packageName:android.applicationId;if(!androidPackageName){throw new Error('Could not resolve Android package name from React Native CLI config.');}var currentStep='preconditions';try{var _options$debug2,_options$debug3;currentStep='android-gradle';var rootBuildGradlePath=_nodePath.default.join(androidDir,'build.gradle');var rootBuildGradle=readFileIfExists(rootBuildGradlePath);if(!rootBuildGradle){throw new Error(`Missing ${rootBuildGradlePath}`);}writeFileIfChanged(rootBuildGradlePath,(0,_gradleHelpers.modifyRootBuildGradle)(rootBuildGradle));var settingsGradlePath=_nodePath.default.join(androidDir,'settings.gradle');var settingsGradle=readFileIfExists(settingsGradlePath);if(!settingsGradle){throw new Error(`Missing ${settingsGradlePath}`);}writeFileIfChanged(settingsGradlePath,(0,_gradleHelpers.modifySettingsGradle)(settingsGradle,androidModuleName));var resolvedAndroidConfig={android:{moduleName:androidModuleName,packageName:androidPackageName,minSdkVersion:24,targetSdkVersion:undefined,compileSdkVersion:undefined,groupId:androidPackageName,artifactId:androidModuleName,version:'0.0.1-SNAPSHOT',useLocalGradlePlugin:false,useLocalMaven:false,missingDimensionStrategies:[]},ios:null,debug:(_options$debug2=options.debug)!=null?_options$debug2:false};currentStep='android-module';(0,_withAndroidModuleFiles.createAndroidModule)({androidDir:androidDir,config:resolvedAndroidConfig,rnVersion:rnVersion,templateVariant:'vanilla'});currentStep='ios-project';var xcodeprojPath=firstXcodeprojPath(iosDir);var pbxprojPath=_nodePath.default.join(xcodeprojPath,'project.pbxproj');if(!_nodeFs.default.existsSync(pbxprojPath)){throw new Error(`Missing ${pbxprojPath}`);}var project=_xcode.default.project(pbxprojPath);project.parseSync();var appBundleId=resolveIosAppBundleId(project);var brownfieldBundleId=appBundleId?`${appBundleId}.brownfield`:`com.brownfield.${iosFrameworkName.toLowerCase()}`;var resolvedIosConfig={ios:{frameworkName:iosFrameworkName,bundleIdentifier:brownfieldBundleId,buildSettings:{},deploymentTarget:expoMajor!==undefined&&expoMajor>=56?'16.4':'15.0',frameworkVersion:'1'},android:null,debug:(_options$debug3=options.debug)!=null?_options$debug3:false};var modRequest={projectRoot:projectRoot,platformProjectRoot:iosDir,modName:'react-native-brownfield-scaffold',platform:'ios',introspect:false,projectName:_nodePath.default.basename(xcodeprojPath,'.xcodeproj')};var _addFrameworkTarget=(0,_xcodeHelpers.addFrameworkTarget)(project,modRequest,resolvedIosConfig.ios,{useExpoHost:false}),frameworkTargetUUID=_addFrameworkTarget.frameworkTargetUUID,targetAlreadyExists=_addFrameworkTarget.targetAlreadyExists;if(targetAlreadyExists&&expoMajor!==undefined&&expoMajor>=56&&(0,_xcodeHelpers.raiseFrameworkDeploymentTarget)(project,frameworkTargetUUID,'16.4')){_logging.Logger.logInfo(`Raised the ${iosFrameworkName} deployment target to iOS 16.4, which Expo SDK 56 and newer require.`);}(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);(0,_xcodeHelpers.addSourceFilesBuildPhase)(project,frameworkTargetUUID,resolvedIosConfig.ios,{useExpoHost:false});_nodeFs.default.writeFileSync(pbxprojPath,project.writeSync());currentStep='ios-podfile';var podfilePath=_nodePath.default.join(iosDir,'Podfile');var podfile=readFileIfExists(podfilePath);if(!podfile){throw new Error(`Missing ${podfilePath}`);}writeFileIfChanged(podfilePath,(0,_podfileHelpers.modifyPodfile)(podfile,iosFrameworkName,expoMajor));currentStep='ios-sources';(0,_withIosFrameworkFiles.createIosFramework)(iosDir,resolvedIosConfig,{useExpoHost:false,withExpoModules:expoMajor!==undefined});currentStep='package-dependencies';(0,_projectFiles.addBrownfieldDependencies)(projectRoot);currentStep='package-scripts';(0,_projectFiles.addBrownfieldPackageScripts)(projectRoot);currentStep='brownfield-config';(0,_projectFiles.writeBrownfieldFileConfig)(projectRoot,{iosFrameworkName:iosFrameworkName,androidModuleName:androidModuleName});}catch(error){var message=error instanceof Error?error.message:String(error);_logging.Logger.logInfo('Scaffolding failed mid-way; fix-forward: re-running the CLI is idempotent for completed steps (gradle settings, Podfile, xcodeproj target detection, package.json deps/scripts, brownfield.config.json) — inspect partial changes with git diff.');throw new Error(`Brownfield scaffolding failed during step "${currentStep}": ${message}`,{cause:error});}_logging.Logger.logInfo('Brownfield scaffolding complete.');});return _scaffoldBrownfieldInRncCliProject.apply(this,arguments);}
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.scaffoldBrownfieldInRncCliProject=scaffoldBrownfieldInRncCliProject;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _nodeFs=_interopRequireDefault(require("node:fs"));var _nodeModule=require("node:module");var _nodePath=_interopRequireDefault(require("node:path"));var _cliConfig=_interopRequireDefault(require("@react-native-community/cli-config"));var _xcode=_interopRequireDefault(require("xcode"));var _logging=require("../expo-config-plugin/logging");var _gradleHelpers=require("../expo-config-plugin/android/utils/gradleHelpers");var _withAndroidModuleFiles=require("../expo-config-plugin/android/withAndroidModuleFiles");var _podfileHelpers=require("../expo-config-plugin/ios/podfileHelpers");var _xcodeHelpers=require("../expo-config-plugin/ios/xcodeHelpers");var _withIosFrameworkFiles=require("../expo-config-plugin/ios/withIosFrameworkFiles");var _projectFiles=require("./projectFiles");var cliConfig=typeof _cliConfig.default==='function'?_cliConfig.default:_cliConfig.default.default;function findProjectRoot(startDir){var currentDir=startDir;while(true){if(_nodeFs.default.existsSync(_nodePath.default.join(currentDir,'package.json'))){return currentDir;}var parent=_nodePath.default.dirname(currentDir);if(parent===currentDir)break;currentDir=parent;}throw new Error('Could not find project root (no package.json found)');}function resolveUserConfig(projectRoot){return cliConfig({projectRoot:projectRoot});}function readFileIfExists(filePath){return _nodeFs.default.existsSync(filePath)?_nodeFs.default.readFileSync(filePath,'utf8'):null;}function writeFileIfChanged(filePath,next){var prev=readFileIfExists(filePath);if(prev===next)return;_nodeFs.default.writeFileSync(filePath,next,'utf8');}function firstXcodeprojPath(iosDir){var entries=_nodeFs.default.readdirSync(iosDir,{withFileTypes:true});var xcodeproj=entries.find(function(e){return e.isDirectory()&&e.name.endsWith('.xcodeproj');});if(!xcodeproj){throw new Error(`Could not find an .xcodeproj under ${iosDir}. Did you run iOS project generation?`);}return _nodePath.default.join(iosDir,xcodeproj.name);}function unquote(value){return value.replace(/^"+|"+$/g,'');}function resolveIosAppBundleId(pbxproj){var _pbxproj$pbxNativeTar,_pbxproj$pbxXCConfigu,_pbxproj$pbxXCBuildCo;var nativeTargets=(_pbxproj$pbxNativeTar=pbxproj.pbxNativeTargetSection==null?void 0:pbxproj.pbxNativeTargetSection())!=null?_pbxproj$pbxNativeTar:{};var configLists=(_pbxproj$pbxXCConfigu=pbxproj.pbxXCConfigurationList==null?void 0:pbxproj.pbxXCConfigurationList())!=null?_pbxproj$pbxXCConfigu:{};var buildConfigs=(_pbxproj$pbxXCBuildCo=pbxproj.pbxXCBuildConfigurationSection==null?void 0:pbxproj.pbxXCBuildConfigurationSection())!=null?_pbxproj$pbxXCBuildCo:{};for(var _ref of Object.entries(nativeTargets)){var _configList$buildConf,_debugConfig$buildSet;var _ref2=(0,_slicedToArray2.default)(_ref,2);var key=_ref2[0];var target=_ref2[1];if(key.endsWith('_comment'))continue;if(typeof(target==null?void 0:target.productType)==='string'&&!target.productType.includes('application')){continue;}var configListId=target==null?void 0:target.buildConfigurationList;var configList=configLists==null?void 0:configLists[configListId];var debugConfigId=configList==null||(_configList$buildConf=configList.buildConfigurations)==null||_configList$buildConf.find==null||(_configList$buildConf=_configList$buildConf.find(function(c){return(c==null?void 0:c.comment)==='Debug';}))==null?void 0:_configList$buildConf.value;var debugConfig=debugConfigId?buildConfigs==null?void 0:buildConfigs[debugConfigId]:null;var bundleId=debugConfig==null||(_debugConfig$buildSet=debugConfig.buildSettings)==null?void 0:_debugConfig$buildSet.PRODUCT_BUNDLE_IDENTIFIER;if(typeof bundleId==='string'&&bundleId.length>0){return unquote(bundleId);}}return null;}function resolveReactNativeVersion(projectRoot){var localRequire=typeof require==='undefined'?(0,_nodeModule.createRequire)(_nodePath.default.join(process.cwd(),'noop.js')):require;var rnPkgPath=localRequire.resolve('react-native/package.json',{paths:[projectRoot]});var rnPkg=localRequire(rnPkgPath);if(!(rnPkg!=null&&rnPkg.version)){throw new Error('Could not resolve react-native version from package.json');}return rnPkg.version;}function resolveExpoMajor(projectRoot){var _pkg$dependencies,_pkg$devDependencies;var pkg=JSON.parse(_nodeFs.default.readFileSync(_nodePath.default.join(projectRoot,'package.json'),'utf8'));if(!((_pkg$dependencies=pkg.dependencies)!=null&&_pkg$dependencies.expo)&&!((_pkg$devDependencies=pkg.devDependencies)!=null&&_pkg$devDependencies.expo)){return undefined;}var localRequire=typeof require==='undefined'?(0,_nodeModule.createRequire)(_nodePath.default.join(process.cwd(),'noop.js')):require;try{var _String$split$;var expoPkg=localRequire(localRequire.resolve('expo/package.json',{paths:[projectRoot]}));return Number.parseInt((_String$split$=String(expoPkg.version).split('.')[0])!=null?_String$split$:'',10);}catch(_unused){return-1;}}function scaffoldBrownfieldInRncCliProject(){return _scaffoldBrownfieldInRncCliProject.apply(this,arguments);}function _scaffoldBrownfieldInRncCliProject(){_scaffoldBrownfieldInRncCliProject=(0,_asyncToGenerator2.default)(function*(){var _options$projectRoot,_options$debug,_options$iosFramework,_options$androidModul,_android$packageName;var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var projectRoot=findProjectRoot(_nodePath.default.resolve((_options$projectRoot=options.projectRoot)!=null?_options$projectRoot:process.cwd()));_logging.Logger.setIsDebug((_options$debug=options.debug)!=null?_options$debug:false);var userConfig=resolveUserConfig(projectRoot);var android=userConfig.project.android;var ios=userConfig.project.ios;if(!android){throw new Error('Android project not found.');}if(!ios){throw new Error('iOS project not found.');}var androidDir=_nodePath.default.isAbsolute(android.sourceDir)?android.sourceDir:_nodePath.default.join(projectRoot,android.sourceDir||'android');var iosSourceDir=ios.sourceDir;var iosDir=_nodePath.default.isAbsolute(iosSourceDir)?iosSourceDir:_nodePath.default.join(projectRoot,iosSourceDir||'ios');var rnVersion=resolveReactNativeVersion(projectRoot);var expoMajor=resolveExpoMajor(projectRoot);if(expoMajor!==undefined){_logging.Logger.logInfo('Expo modules detected. The iOS framework will start React Native through the Expo host.');}var iosFrameworkName=(_options$iosFramework=options.iosFrameworkName)!=null?_options$iosFramework:'BrownfieldLib';var androidModuleName=(_options$androidModul=options.androidModuleName)!=null?_options$androidModul:'brownfieldlib';var androidPackageName=(_android$packageName=android.packageName)!=null?_android$packageName:android.applicationId;if(!androidPackageName){throw new Error('Could not resolve Android package name from React Native CLI config.');}var currentStep='preconditions';try{var _options$debug2,_options$debug3;currentStep='android-gradle';var rootBuildGradlePath=_nodePath.default.join(androidDir,'build.gradle');var rootBuildGradle=readFileIfExists(rootBuildGradlePath);if(!rootBuildGradle){throw new Error(`Missing ${rootBuildGradlePath}`);}writeFileIfChanged(rootBuildGradlePath,(0,_gradleHelpers.modifyRootBuildGradle)(rootBuildGradle));var settingsGradlePath=_nodePath.default.join(androidDir,'settings.gradle');var settingsGradle=readFileIfExists(settingsGradlePath);if(!settingsGradle){throw new Error(`Missing ${settingsGradlePath}`);}writeFileIfChanged(settingsGradlePath,(0,_gradleHelpers.modifySettingsGradle)(settingsGradle,androidModuleName));var resolvedAndroidConfig={android:{moduleName:androidModuleName,packageName:androidPackageName,minSdkVersion:24,targetSdkVersion:undefined,compileSdkVersion:undefined,groupId:androidPackageName,artifactId:androidModuleName,version:'0.0.1-SNAPSHOT',useLocalGradlePlugin:false,useLocalMaven:false,missingDimensionStrategies:[],excludeDependencies:[]},ios:null,debug:(_options$debug2=options.debug)!=null?_options$debug2:false};currentStep='android-module';(0,_withAndroidModuleFiles.createAndroidModule)({androidDir:androidDir,config:resolvedAndroidConfig,rnVersion:rnVersion,templateVariant:'vanilla'});currentStep='ios-project';var xcodeprojPath=firstXcodeprojPath(iosDir);var pbxprojPath=_nodePath.default.join(xcodeprojPath,'project.pbxproj');if(!_nodeFs.default.existsSync(pbxprojPath)){throw new Error(`Missing ${pbxprojPath}`);}var project=_xcode.default.project(pbxprojPath);project.parseSync();var appBundleId=resolveIosAppBundleId(project);var brownfieldBundleId=appBundleId?`${appBundleId}.brownfield`:`com.brownfield.${iosFrameworkName.toLowerCase()}`;var resolvedIosConfig={ios:{frameworkName:iosFrameworkName,bundleIdentifier:brownfieldBundleId,buildSettings:{},deploymentTarget:expoMajor!==undefined&&expoMajor>=56?'16.4':'15.0',frameworkVersion:'1'},android:null,debug:(_options$debug3=options.debug)!=null?_options$debug3:false};var modRequest={projectRoot:projectRoot,platformProjectRoot:iosDir,modName:'react-native-brownfield-scaffold',platform:'ios',introspect:false,projectName:_nodePath.default.basename(xcodeprojPath,'.xcodeproj')};var _addFrameworkTarget=(0,_xcodeHelpers.addFrameworkTarget)(project,modRequest,resolvedIosConfig.ios,{useExpoHost:false}),frameworkTargetUUID=_addFrameworkTarget.frameworkTargetUUID,targetAlreadyExists=_addFrameworkTarget.targetAlreadyExists;if(targetAlreadyExists&&expoMajor!==undefined&&expoMajor>=56&&(0,_xcodeHelpers.raiseFrameworkDeploymentTarget)(project,frameworkTargetUUID,'16.4')){_logging.Logger.logInfo(`Raised the ${iosFrameworkName} deployment target to iOS 16.4, which Expo SDK 56 and newer require.`);}(0,_xcodeHelpers.copyBundleReactNativePhase)(project,frameworkTargetUUID);(0,_xcodeHelpers.addSourceFilesBuildPhase)(project,frameworkTargetUUID,resolvedIosConfig.ios,{useExpoHost:false});_nodeFs.default.writeFileSync(pbxprojPath,project.writeSync());currentStep='ios-podfile';var podfilePath=_nodePath.default.join(iosDir,'Podfile');var podfile=readFileIfExists(podfilePath);if(!podfile){throw new Error(`Missing ${podfilePath}`);}writeFileIfChanged(podfilePath,(0,_podfileHelpers.modifyPodfile)(podfile,iosFrameworkName,expoMajor));currentStep='ios-sources';(0,_withIosFrameworkFiles.createIosFramework)(iosDir,resolvedIosConfig,{useExpoHost:false,withExpoModules:expoMajor!==undefined});currentStep='package-dependencies';(0,_projectFiles.addBrownfieldDependencies)(projectRoot);currentStep='package-scripts';(0,_projectFiles.addBrownfieldPackageScripts)(projectRoot);currentStep='brownfield-config';(0,_projectFiles.writeBrownfieldFileConfig)(projectRoot,{iosFrameworkName:iosFrameworkName,androidModuleName:androidModuleName});}catch(error){var message=error instanceof Error?error.message:String(error);_logging.Logger.logInfo('Scaffolding failed mid-way; fix-forward: re-running the CLI is idempotent for completed steps (gradle settings, Podfile, xcodeproj target detection, package.json deps/scripts, brownfield.config.json) — inspect partial changes with git diff.');throw new Error(`Brownfield scaffolding failed during step "${currentStep}": ${message}`,{cause:error});}_logging.Logger.logInfo('Brownfield scaffolding complete.');});return _scaffoldBrownfieldInRncCliProject.apply(this,arguments);}
|
|
2
2
|
//# sourceMappingURL=index.js.map
|