{"version":3,"names":["DEFAULT_VERSION","doesDirectoryExist","dir","fs","existsSync","setProjectDirectory","directory","DirectoryAlreadyExistsError","mkdirSync","recursive","process","chdir","error","CLIError","cwd","getTemplateName","name","Object","keys","JSON","parse","readFileSync","path","join","dependencies","setEmptyHashForCachedDependencies","projectName","cacheManager","set","createHash","update","digest","createFromTemplate","templateUri","npm","pm","projectTitle","skipInstall","packageName","installCocoaPods","logger","debug","env","CI","log","banner","didInstallPods","String","packageManager","userAgentPM","userAgentPackageManager","warn","removeProjectCache","projectDirectory","loader","getLoader","text","templateSourceDir","mkdtempSync","os","tmpdir","start","installTemplatePackage","succeed","templateName","templateConfig","getTemplateConfig","copyTemplate","templateDir","changePlaceholderInTemplate","placeholderName","placeholderTitle","titlePlaceholder","postInitScript","info","executePostInitScript","installDependencies","root","platform","installPodsValue","installPods","installCocoapods","prompt","type","message","chalk","reset","dim","e","Error","fail","removeSync","underline","PackageManager","installAll","silent","checkPackageManagerAvailability","getBunVersionIfAvailable","getNpmVersionIfAvailable","getYarnVersionIfAvailable","createTemplateUri","options","version","isTypescriptTemplate","template","platformName","createProject","title","userAgent","npm_config_user_agent","startsWith","initialize","projName","validateProjectName","TemplateAndVersionError","directoryName","relative","projectFolder","skipGitInit","createGitRepository","printRunInstructions","showPodsInstructions"],"sources":["../../../src/commands/init/init.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport {validateProjectName} from './validate';\nimport chalk from 'chalk';\nimport DirectoryAlreadyExistsError from './errors/DirectoryAlreadyExistsError';\nimport printRunInstructions from './printRunInstructions';\nimport {\n CLIError,\n logger,\n getLoader,\n Loader,\n cacheManager,\n prompt,\n} from '@react-native-community/cli-tools';\nimport {installPods} from '@react-native-community/cli-platform-ios';\nimport {\n installTemplatePackage,\n getTemplateConfig,\n copyTemplate,\n executePostInitScript,\n} from './template';\nimport {changePlaceholderInTemplate} from './editTemplate';\nimport * as PackageManager from '../../tools/packageManager';\nimport banner from './banner';\nimport TemplateAndVersionError from './errors/TemplateAndVersionError';\nimport {getBunVersionIfAvailable} from '../../tools/bun';\nimport {getNpmVersionIfAvailable} from '../../tools/npm';\nimport {getYarnVersionIfAvailable} from '../../tools/yarn';\nimport {createHash} from 'crypto';\nimport createGitRepository from './createGitRepository';\n\nconst DEFAULT_VERSION = 'latest';\n\ntype Options = {\n template?: string;\n npm?: boolean;\n pm?: PackageManager.PackageManager;\n directory?: string;\n displayName?: string;\n title?: string;\n skipInstall?: boolean;\n version?: string;\n packageName?: string;\n installPods?: string | boolean;\n platformName?: string;\n skipGitInit?: boolean;\n};\n\ninterface TemplateOptions {\n projectName: string;\n templateUri: string;\n npm?: boolean;\n pm?: PackageManager.PackageManager;\n directory: string;\n projectTitle?: string;\n skipInstall?: boolean;\n packageName?: string;\n installCocoaPods?: string | boolean;\n version?: string;\n}\n\ninterface TemplateReturnType {\n didInstallPods?: boolean;\n}\n\nfunction doesDirectoryExist(dir: string) {\n return fs.existsSync(dir);\n}\n\nasync function setProjectDirectory(directory: string) {\n if (doesDirectoryExist(directory)) {\n throw new DirectoryAlreadyExistsError(directory);\n }\n\n try {\n fs.mkdirSync(directory, {recursive: true});\n process.chdir(directory);\n } catch (error) {\n throw new CLIError(\n 'Error occurred while trying to create project directory.',\n error as Error,\n );\n }\n\n return process.cwd();\n}\n\nfunction getTemplateName(cwd: string) {\n // We use package manager to infer the name of the template module for us.\n // That's why we get it from temporary package.json, where the name is the\n // first and only dependency (hence 0).\n const name = Object.keys(\n JSON.parse(fs.readFileSync(path.join(cwd, './package.json'), 'utf8'))\n .dependencies,\n )[0];\n return name;\n}\n\n//set cache to empty string to prevent installing cocoapods on freshly created project\nfunction setEmptyHashForCachedDependencies(projectName: string) {\n cacheManager.set(\n projectName,\n 'dependencies',\n createHash('md5').update('').digest('hex'),\n );\n}\n\nasync function createFromTemplate({\n projectName,\n templateUri,\n npm,\n pm,\n directory,\n projectTitle,\n skipInstall,\n packageName,\n installCocoaPods,\n}: TemplateOptions): Promise {\n logger.debug('Initializing new project');\n // Only print out the banner if we're not in a CI\n if (!process.env.CI) {\n logger.log(banner);\n }\n let didInstallPods = String(installCocoaPods) === 'true';\n let packageManager = pm;\n\n if (pm) {\n packageManager = pm;\n } else {\n const userAgentPM = userAgentPackageManager();\n // if possible, use the package manager from the user agent. Otherwise fallback to default (yarn)\n packageManager = userAgentPM || 'yarn';\n }\n\n if (npm) {\n logger.warn(\n 'Flag --npm is deprecated and will be removed soon. In the future, please use --pm npm instead.',\n );\n\n packageManager = 'npm';\n }\n\n // if the project with the name already has cache, remove the cache to avoid problems with pods installation\n cacheManager.removeProjectCache(projectName);\n\n const projectDirectory = await setProjectDirectory(directory);\n\n const loader = getLoader({text: 'Downloading template'});\n const templateSourceDir = fs.mkdtempSync(\n path.join(os.tmpdir(), 'rncli-init-template-'),\n );\n\n try {\n loader.start();\n\n await installTemplatePackage(\n templateUri,\n templateSourceDir,\n packageManager,\n );\n\n loader.succeed();\n loader.start('Copying template');\n\n const templateName = getTemplateName(templateSourceDir);\n const templateConfig = getTemplateConfig(templateName, templateSourceDir);\n await copyTemplate(\n templateName,\n templateConfig.templateDir,\n templateSourceDir,\n );\n\n loader.succeed();\n loader.start('Processing template');\n\n await changePlaceholderInTemplate({\n projectName,\n projectTitle,\n placeholderName: templateConfig.placeholderName,\n placeholderTitle: templateConfig.titlePlaceholder,\n packageName,\n });\n\n const {postInitScript} = templateConfig;\n if (postInitScript) {\n loader.info('Executing post init script ');\n await executePostInitScript(\n templateName,\n postInitScript,\n templateSourceDir,\n );\n }\n\n if (!skipInstall) {\n await installDependencies({\n packageManager,\n loader,\n root: projectDirectory,\n });\n\n if (process.platform === 'darwin') {\n const installPodsValue = String(installCocoaPods);\n\n if (installPodsValue === 'true') {\n didInstallPods = true;\n await installPods(loader);\n loader.succeed();\n setEmptyHashForCachedDependencies(projectName);\n } else if (installPodsValue === 'undefined') {\n const {installCocoapods} = await prompt({\n type: 'confirm',\n name: 'installCocoapods',\n message: `Do you want to install CocoaPods now? ${chalk.reset.dim(\n 'Only needed if you run your project in Xcode directly',\n )}`,\n });\n didInstallPods = installCocoapods;\n\n if (installCocoapods) {\n await installPods(loader);\n loader.succeed();\n setEmptyHashForCachedDependencies(projectName);\n }\n }\n }\n } else {\n didInstallPods = false;\n loader.succeed('Dependencies installation skipped');\n }\n } catch (e) {\n if (e instanceof Error) {\n logger.error(\n 'Installing pods failed. This doesn\\'t affect project initialization and you can safely proceed. \\nHowever, you will need to install pods manually when running iOS, follow additional steps in \"Run instructions for iOS\" section.\\n',\n );\n }\n loader.fail();\n didInstallPods = false;\n } finally {\n fs.removeSync(templateSourceDir);\n }\n\n if (process.platform === 'darwin') {\n logger.log('\\n');\n logger.info(\n `💡 To enable automatic CocoaPods installation when building for iOS you can create react-native.config.js with automaticPodsInstallation field. \\n${chalk.reset.dim(\n `For more details, see ${chalk.underline(\n 'https://github.com/react-native-community/cli/blob/main/docs/projects.md#projectiosautomaticpodsinstallation',\n )}`,\n )}\n `,\n );\n }\n\n return {didInstallPods};\n}\n\nasync function installDependencies({\n packageManager,\n loader,\n root,\n}: {\n packageManager: PackageManager.PackageManager;\n loader: Loader;\n root: string;\n}) {\n loader.start('Installing dependencies');\n\n await PackageManager.installAll({\n packageManager,\n silent: true,\n root,\n });\n\n loader.succeed();\n}\n\nfunction checkPackageManagerAvailability(\n packageManager: PackageManager.PackageManager,\n) {\n if (packageManager === 'bun') {\n return getBunVersionIfAvailable();\n } else if (packageManager === 'npm') {\n return getNpmVersionIfAvailable();\n } else if (packageManager === 'yarn') {\n return getYarnVersionIfAvailable();\n }\n\n return false;\n}\n\nfunction createTemplateUri(options: Options, version: string): string {\n const isTypescriptTemplate =\n options.template === 'react-native-template-typescript';\n\n // This allows to correctly retrieve template uri for out of tree platforms.\n const platform = options.platformName || 'react-native';\n\n if (isTypescriptTemplate) {\n logger.warn(\n \"Ignoring custom template: 'react-native-template-typescript'. Starting from React Native v0.71 TypeScript is used by default.\",\n );\n return platform;\n }\n\n return options.template || `${platform}@${version}`;\n}\n\nasync function createProject(\n projectName: string,\n directory: string,\n version: string,\n options: Options,\n): Promise {\n const templateUri = createTemplateUri(options, version);\n\n return createFromTemplate({\n projectName,\n templateUri,\n npm: options.npm,\n pm: options.pm,\n directory,\n projectTitle: options.title,\n skipInstall: options.skipInstall,\n packageName: options.packageName,\n installCocoaPods: options.installPods,\n version,\n });\n}\n\nfunction userAgentPackageManager() {\n const userAgent = process.env.npm_config_user_agent;\n\n if (userAgent && userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return null;\n}\n\nexport default (async function initialize(\n [projectName]: Array,\n options: Options,\n) {\n if (!projectName) {\n const {projName} = await prompt({\n type: 'text',\n name: 'projName',\n message: 'How would you like to name the app?',\n });\n projectName = projName;\n }\n\n validateProjectName(projectName);\n\n if (!!options.template && !!options.version) {\n throw new TemplateAndVersionError(options.template);\n }\n\n const root = process.cwd();\n const version = options.version || DEFAULT_VERSION;\n\n const directoryName = path.relative(root, options.directory || projectName);\n\n if (options.pm && !checkPackageManagerAvailability(options.pm)) {\n logger.error(\n 'Seems like the package manager you want to use is not installed. Please install it or choose another package manager.',\n );\n return;\n }\n\n const {didInstallPods} = await createProject(\n projectName,\n directoryName,\n version,\n options,\n );\n\n const projectFolder = path.join(root, directoryName);\n\n if (!options.skipGitInit) {\n await createGitRepository(projectFolder);\n }\n\n printRunInstructions(projectFolder, projectName, {\n showPodsInstructions: !didInstallPods,\n });\n});\n"],"mappings":"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"}