UNPKG

sprintcheck-expo

Version:

SprintCheck SDK for Expo - Identity verification (BVN, NIN, Facial) for React Native Expo projects

80 lines (79 loc) 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withSprintCheckAndroid = void 0; const config_plugins_1 = require("@expo/config-plugins"); /** * Android configuration for SprintCheck SDK */ const withSprintCheckAndroid = (config, props = {}) => { return (0, config_plugins_1.withPlugins)(config, [ // Add project-level build.gradle configuration for JitPack withSprintCheckProjectBuildGradle, // Add the native module to MainApplication withSprintCheckMainApplication, // Configure build.gradle files withSprintCheckBuildGradle, // Add settings.gradle configuration withSprintCheckSettingsGradle, ]); }; exports.withSprintCheckAndroid = withSprintCheckAndroid; /** * Add JitPack and Regula repositories to project-level build.gradle */ const withSprintCheckProjectBuildGradle = (config) => { return (0, config_plugins_1.withProjectBuildGradle)(config, (config) => { const { modResults } = config; if (!modResults.contents.includes('https://www.jitpack.io')) { modResults.contents = modResults.contents.replace(/allprojects\s*{\s*repositories\s*{/, `allprojects {\n repositories {\n maven { url 'https://www.jitpack.io' }`); } if (!modResults.contents.includes('https://maven.regulaforensics.com/RegulaDocumentReader')) { modResults.contents = modResults.contents.replace(/allprojects\s*{\s*repositories\s*{/, `allprojects {\n repositories {\n maven { url 'https://maven.regulaforensics.com/RegulaDocumentReader' }`); } return config; }); }; /** * Add SprintCheck package to MainApplication.kt */ const withSprintCheckMainApplication = (config) => { return (0, config_plugins_1.withMainApplication)(config, (config) => { const { modResults } = config; // Add import if not present if (!modResults.contents.includes('import com.sprintcheckrn.SprintCheckPackage')) { modResults.contents = modResults.contents.replace(/import android\.app\.Application;/, `import android.app.Application;\nimport com.sprintcheckrn.SprintCheckPackage;`); } // Add package to the getPackages() method if (!modResults.contents.includes('add(SprintCheckPackage())')) { modResults.contents = modResults.contents.replace(/PackageList\(this\)\.packages\.apply\s*{/, `PackageList(this).packages.apply { add(SprintCheckPackage())`); } return config; }); }; /** * Configure app/build.gradle */ const withSprintCheckBuildGradle = (config) => { return (0, config_plugins_1.withAppBuildGradle)(config, (config) => { const { modResults } = config; // Add dependency if (!modResults.contents.includes('implementation project(\':sprintcheckrn\')')) { modResults.contents = modResults.contents.replace(/dependencies\s*{/, `dependencies {\n implementation project(':sprintcheckrn')`); } return config; }); }; /** * Configure settings.gradle */ const withSprintCheckSettingsGradle = (config) => { return (0, config_plugins_1.withSettingsGradle)(config, (config) => { const { modResults } = config; // Add module inclusion if (!modResults.contents.includes("include ':sprintcheckrn'")) { modResults.contents += `\ninclude ':sprintcheckrn'\nproject(':sprintcheckrn').projectDir = new File(rootProject.projectDir, '../node_modules/sprintcheck-expo/android')\n`; } return config; }); };