{"version":3,"names":["getPackageJson","root","require","path","join","CLIError","getIosDependencies","dependencies","Object","keys","filter","dependency","platforms","ios","map","version","sort","dependenciesToString","generateMd5Hash","text","createHash","update","digest","compareMd5Hashes","hash1","hash2","install","packageJson","cachedDependenciesHash","currentDependenciesHash","iosFolderPath","loader","getLoader","installPods","skipBundleInstall","cacheManager","set","name","succeed","fail","chalk","bold","resolvePods","nativeDependencies","options","podfilePath","findPodfilePath","slice","lastIndexOf","podsPath","arePodsInstalled","fs","existsSync","iosDependencies","dependenciesString","get","forceInstall","undefined","newArchEnabled"],"sources":["../../src/tools/pods.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport {createHash} from 'crypto';\nimport chalk from 'chalk';\nimport {\n CLIError,\n cacheManager,\n getLoader,\n} from '@react-native-community/cli-tools';\nimport installPods from './installPods';\nimport findPodfilePath from '../config/findPodfilePath';\nimport {\n DependencyConfig,\n IOSDependencyConfig,\n} from '@react-native-community/cli-types';\n\ninterface ResolvePodsOptions {\n forceInstall?: boolean;\n newArchEnabled?: boolean;\n}\n\ninterface NativeDependencies {\n [key: string]: DependencyConfig;\n}\n\nexport function getPackageJson(root: string) {\n try {\n return require(path.join(root, 'package.json'));\n } catch {\n throw new CLIError(\n 'No package.json found. Please make sure the file exists in the current folder.',\n );\n }\n}\n\nexport function getIosDependencies(dependencies: NativeDependencies) {\n return Object.keys(dependencies)\n .filter((dependency) => dependencies[dependency].platforms.ios)\n .map(\n (dependency) =>\n `${dependency}@${\n (dependencies[dependency].platforms.ios as IOSDependencyConfig)\n .version\n }`,\n )\n .sort();\n}\n\nexport function dependenciesToString(dependencies: string[]) {\n return dependencies.join('\\n');\n}\n\nexport function generateMd5Hash(text: string) {\n return createHash('md5').update(text).digest('hex');\n}\n\nexport function compareMd5Hashes(hash1: string, hash2: string) {\n return hash1 === hash2;\n}\n\nasync function install(\n packageJson: Record,\n cachedDependenciesHash: string | undefined,\n currentDependenciesHash: string,\n iosFolderPath: string,\n) {\n const loader = getLoader('Installing CocoaPods...');\n try {\n await installPods(loader, {\n skipBundleInstall: !!cachedDependenciesHash,\n iosFolderPath,\n });\n cacheManager.set(packageJson.name, 'dependencies', currentDependenciesHash);\n loader.succeed();\n } catch {\n loader.fail();\n throw new CLIError(\n `Something when wrong while installing CocoaPods. Please run ${chalk.bold(\n 'pod install',\n )} manually`,\n );\n }\n}\n\nexport default async function resolvePods(\n root: string,\n nativeDependencies: NativeDependencies,\n options?: ResolvePodsOptions,\n) {\n const packageJson = getPackageJson(root);\n const podfilePath = findPodfilePath(root);\n const iosFolderPath = podfilePath\n ? podfilePath.slice(0, podfilePath.lastIndexOf('/'))\n : path.join(root, 'ios');\n const podsPath = path.join(iosFolderPath, 'Pods');\n const arePodsInstalled = fs.existsSync(podsPath);\n const iosDependencies = getIosDependencies(nativeDependencies);\n const dependenciesString = dependenciesToString(iosDependencies);\n const currentDependenciesHash = generateMd5Hash(dependenciesString);\n const cachedDependenciesHash = cacheManager.get(\n packageJson.name,\n 'dependencies',\n );\n\n if (options?.forceInstall) {\n await install(\n packageJson,\n cachedDependenciesHash,\n currentDependenciesHash,\n iosFolderPath,\n );\n } else if (arePodsInstalled && cachedDependenciesHash === undefined) {\n cacheManager.set(packageJson.name, 'dependencies', currentDependenciesHash);\n } else if (\n !cachedDependenciesHash ||\n !compareMd5Hashes(currentDependenciesHash, cachedDependenciesHash) ||\n !arePodsInstalled\n ) {\n const loader = getLoader('Installing CocoaPods...');\n try {\n await installPods(loader, {\n skipBundleInstall: !!cachedDependenciesHash,\n newArchEnabled: options?.newArchEnabled,\n iosFolderPath,\n });\n cacheManager.set(\n packageJson.name,\n 'dependencies',\n currentDependenciesHash,\n );\n loader.succeed();\n } catch {\n loader.fail();\n throw new CLIError(\n `Something when wrong while installing CocoaPods. Please run ${chalk.bold(\n 'pod install',\n )} manually`,\n );\n }\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAKA;AACA;AAAwD;AAejD,SAASA,cAAc,CAACC,IAAY,EAAE;EAC3C,IAAI;IACF,OAAOC,OAAO,CAACC,eAAI,CAACC,IAAI,CAACH,IAAI,EAAE,cAAc,CAAC,CAAC;EACjD,CAAC,CAAC,MAAM;IACN,MAAM,KAAII,oBAAQ,EAChB,gFAAgF,CACjF;EACH;AACF;AAEO,SAASC,kBAAkB,CAACC,YAAgC,EAAE;EACnE,OAAOC,MAAM,CAACC,IAAI,CAACF,YAAY,CAAC,CAC7BG,MAAM,CAAEC,UAAU,IAAKJ,YAAY,CAACI,UAAU,CAAC,CAACC,SAAS,CAACC,GAAG,CAAC,CAC9DC,GAAG,CACDH,UAAU,IACR,GAAEA,UAAW,IACXJ,YAAY,CAACI,UAAU,CAAC,CAACC,SAAS,CAACC,GAAG,CACpCE,OACJ,EAAC,CACL,CACAC,IAAI,EAAE;AACX;AAEO,SAASC,oBAAoB,CAACV,YAAsB,EAAE;EAC3D,OAAOA,YAAY,CAACH,IAAI,CAAC,IAAI,CAAC;AAChC;AAEO,SAASc,eAAe,CAACC,IAAY,EAAE;EAC5C,OAAO,IAAAC,oBAAU,EAAC,KAAK,CAAC,CAACC,MAAM,CAACF,IAAI,CAAC,CAACG,MAAM,CAAC,KAAK,CAAC;AACrD;AAEO,SAASC,gBAAgB,CAACC,KAAa,EAAEC,KAAa,EAAE;EAC7D,OAAOD,KAAK,KAAKC,KAAK;AACxB;AAEA,eAAeC,OAAO,CACpBC,WAAgC,EAChCC,sBAA0C,EAC1CC,uBAA+B,EAC/BC,aAAqB,EACrB;EACA,MAAMC,MAAM,GAAG,IAAAC,qBAAS,EAAC,yBAAyB,CAAC;EACnD,IAAI;IACF,MAAM,IAAAC,oBAAW,EAACF,MAAM,EAAE;MACxBG,iBAAiB,EAAE,CAAC,CAACN,sBAAsB;MAC3CE;IACF,CAAC,CAAC;IACFK,wBAAY,CAACC,GAAG,CAACT,WAAW,CAACU,IAAI,EAAE,cAAc,EAAER,uBAAuB,CAAC;IAC3EE,MAAM,CAACO,OAAO,EAAE;EAClB,CAAC,CAAC,MAAM;IACNP,MAAM,CAACQ,IAAI,EAAE;IACb,MAAM,KAAIlC,oBAAQ,EACf,+DAA8DmC,gBAAK,CAACC,IAAI,CACvE,aAAa,CACb,WAAU,CACb;EACH;AACF;AAEe,eAAeC,WAAW,CACvCzC,IAAY,EACZ0C,kBAAsC,EACtCC,OAA4B,EAC5B;EACA,MAAMjB,WAAW,GAAG3B,cAAc,CAACC,IAAI,CAAC;EACxC,MAAM4C,WAAW,GAAG,IAAAC,wBAAe,EAAC7C,IAAI,CAAC;EACzC,MAAM6B,aAAa,GAAGe,WAAW,GAC7BA,WAAW,CAACE,KAAK,CAAC,CAAC,EAAEF,WAAW,CAACG,WAAW,CAAC,GAAG,CAAC,CAAC,GAClD7C,eAAI,CAACC,IAAI,CAACH,IAAI,EAAE,KAAK,CAAC;EAC1B,MAAMgD,QAAQ,GAAG9C,eAAI,CAACC,IAAI,CAAC0B,aAAa,EAAE,MAAM,CAAC;EACjD,MAAMoB,gBAAgB,GAAGC,kBAAE,CAACC,UAAU,CAACH,QAAQ,CAAC;EAChD,MAAMI,eAAe,GAAG/C,kBAAkB,CAACqC,kBAAkB,CAAC;EAC9D,MAAMW,kBAAkB,GAAGrC,oBAAoB,CAACoC,eAAe,CAAC;EAChE,MAAMxB,uBAAuB,GAAGX,eAAe,CAACoC,kBAAkB,CAAC;EACnE,MAAM1B,sBAAsB,GAAGO,wBAAY,CAACoB,GAAG,CAC7C5B,WAAW,CAACU,IAAI,EAChB,cAAc,CACf;EAED,IAAIO,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,YAAY,EAAE;IACzB,MAAM9B,OAAO,CACXC,WAAW,EACXC,sBAAsB,EACtBC,uBAAuB,EACvBC,aAAa,CACd;EACH,CAAC,MAAM,IAAIoB,gBAAgB,IAAItB,sBAAsB,KAAK6B,SAAS,EAAE;IACnEtB,wBAAY,CAACC,GAAG,CAACT,WAAW,CAACU,IAAI,EAAE,cAAc,EAAER,uBAAuB,CAAC;EAC7E,CAAC,MAAM,IACL,CAACD,sBAAsB,IACvB,CAACL,gBAAgB,CAACM,uBAAuB,EAAED,sBAAsB,CAAC,IAClE,CAACsB,gBAAgB,EACjB;IACA,MAAMnB,MAAM,GAAG,IAAAC,qBAAS,EAAC,yBAAyB,CAAC;IACnD,IAAI;MACF,MAAM,IAAAC,oBAAW,EAACF,MAAM,EAAE;QACxBG,iBAAiB,EAAE,CAAC,CAACN,sBAAsB;QAC3C8B,cAAc,EAAEd,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEc,cAAc;QACvC5B;MACF,CAAC,CAAC;MACFK,wBAAY,CAACC,GAAG,CACdT,WAAW,CAACU,IAAI,EAChB,cAAc,EACdR,uBAAuB,CACxB;MACDE,MAAM,CAACO,OAAO,EAAE;IAClB,CAAC,CAAC,MAAM;MACNP,MAAM,CAACQ,IAAI,EAAE;MACb,MAAM,KAAIlC,oBAAQ,EACf,+DAA8DmC,gBAAK,CAACC,IAAI,CACvE,aAAa,CACb,WAAU,CACb;IACH;EACF;AACF"}