const { withDangerousMod } = require('@expo/config-plugins'); const fs = require('fs'); const path = require('path'); // Patch jcore-react-native's build.gradle to remove the legacy flatDir block // and jniLibs.srcDirs. The 'libs' directory no longer exists in the package — // dependencies are fetched from Maven — but the stale config causes Gradle // warnings and can stall dependency resolution on newer Gradle versions. const withJcorePatch = (config) => withDangerousMod(config, [ 'android', async (config) => { const root = config.modRequest.projectRoot; const gradlePath = path.join( root, 'node_modules', 'jcore-react-native', 'android', 'build.gradle', ); if (!fs.existsSync(gradlePath)) return config; let content = fs.readFileSync(gradlePath, 'utf-8'); // Remove flatDir block content = content.replace( /repositories\s*\{\s*flatDir\s*\{\s*dirs\s+['"]libs['"]\s*\}\s*\}/, '', ); // Remove jniLibs.srcDirs line and its enclosing sourceSets block if it becomes empty content = content.replace( /\s*sourceSets\s*\{\s*main\s*\{\s*jniLibs\.srcDirs\s*=\s*\['libs'\]\s*\}\s*\}/, '', ); fs.writeFileSync(gradlePath, content); return config; }, ]); module.exports = withJcorePatch;