New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@react-native-community/cli

Package Overview
Dependencies
Maintainers
4
Versions
332
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-native-community/cli - npm Package Compare versions

Comparing version
20.0.2
to
20.1.0
+5
-5
build/bin.js

@@ -12,5 +12,5 @@ #!/usr/bin/env node

}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;

@@ -34,5 +34,5 @@ };

} else {
console.error(`${_chalk().default.red(`React Native needs Node.js ${_cliDoctor().versionRanges.NODE_JS}. You're currently on version ${process.version}. Please upgrade Node.js to a supported version and try again.`)}`);
console.error(`${_picocolors().default.red(`React Native needs Node.js ${_cliDoctor().versionRanges.NODE_JS}. You're currently on version ${process.version}. Please upgrade Node.js to a supported version and try again.`)}`);
}
//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/bin.js.map
//# sourceMappingURL=bin.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["semver","satisfies","process","version","versionRanges","NODE_JS","run","require","console","error","chalk","red"],"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport './tools/gracefulifyFs';\nimport semver from 'semver';\nimport chalk from 'chalk';\nimport {versionRanges} from '@react-native-community/cli-doctor';\n\nif (semver.satisfies(process.version, versionRanges.NODE_JS)) {\n const {run} = require('./');\n run();\n} else {\n console.error(\n `${chalk.red(\n `React Native needs Node.js ${versionRanges.NODE_JS}. You're currently on version ${process.version}. Please upgrade Node.js to a supported version and try again.`,\n )}`,\n );\n}\n"],"mappings":"AAAA;AAAmB;;AAEnB;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAiE;AAEjE,IAAIA,iBAAM,CAACC,SAAS,CAACC,OAAO,CAACC,OAAO,EAAEC,0BAAa,CAACC,OAAO,CAAC,EAAE;EAC5D,MAAM;IAACC;EAAG,CAAC,GAAGC,OAAO,CAAC,IAAI,CAAC;EAC3BD,GAAG,EAAE;AACP,CAAC,MAAM;EACLE,OAAO,CAACC,KAAK,CACV,GAAEC,gBAAK,CAACC,GAAG,CACT,8BAA6BP,0BAAa,CAACC,OAAQ,iCAAgCH,OAAO,CAACC,OAAQ,gEAA+D,CACnK,EAAC,CACJ;AACH"}
{"version":3,"file":"bin.js","names":["semver","satisfies","process","version","versionRanges","NODE_JS","run","require","console","error","pico","red"],"sources":["../src/bin.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport './tools/gracefulifyFs';\nimport semver from 'semver';\nimport pico from 'picocolors';\nimport {versionRanges} from '@react-native-community/cli-doctor';\n\nif (semver.satisfies(process.version, versionRanges.NODE_JS)) {\n const {run} = require('./');\n run();\n} else {\n console.error(\n `${pico.red(\n `React Native needs Node.js ${versionRanges.NODE_JS}. You're currently on version ${process.version}. Please upgrade Node.js to a supported version and try again.`,\n )}`,\n );\n}\n"],"mappings":"AAAA;AAAmB;;AAEnB;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAiE;AAEjE,IAAIA,iBAAM,CAACC,SAAS,CAACC,OAAO,CAACC,OAAO,EAAEC,0BAAa,CAACC,OAAO,CAAC,EAAE;EAC5D,MAAM;IAACC;EAAG,CAAC,GAAGC,OAAO,CAAC,IAAI,CAAC;EAC3BD,GAAG,EAAE;AACP,CAAC,MAAM;EACLE,OAAO,CAACC,KAAK,CACV,GAAEC,qBAAI,CAACC,GAAG,CACR,8BAA6BP,0BAAa,CAACC,OAAQ,iCAAgCH,OAAO,CAACC,OAAQ,gEAA+D,CACnK,EAAC,CACJ;AACH"}

@@ -35,2 +35,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/index.js.map
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["projectCommands","configCommands","cleanCommands","clean","doctorCommands","info","detachedCommands","init","doctor"],"sources":["../../src/commands/index.ts"],"sourcesContent":["import {Command, DetachedCommand} from '@react-native-community/cli-types';\nimport {commands as cleanCommands} from '@react-native-community/cli-clean';\nimport {commands as doctorCommands} from '@react-native-community/cli-doctor';\nimport {commands as configCommands} from '@react-native-community/cli-config';\nimport init from './init';\n\nexport const projectCommands = [\n ...configCommands,\n cleanCommands.clean,\n doctorCommands.info,\n] as Command[];\n\nexport const detachedCommands = [\n init,\n doctorCommands.doctor,\n] as DetachedCommand[];\n"],"mappings":";;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAA0B;AAEnB,MAAMA,eAAe,GAAG,CAC7B,GAAGC,qBAAc,EACjBC,oBAAa,CAACC,KAAK,EACnBC,qBAAc,CAACC,IAAI,CACP;AAAC;AAER,MAAMC,gBAAgB,GAAG,CAC9BC,aAAI,EACJH,qBAAc,CAACI,MAAM,CACD;AAAC"}
{"version":3,"file":"index.js","names":["projectCommands","configCommands","cleanCommands","clean","doctorCommands","info","detachedCommands","init","doctor"],"sources":["../../src/commands/index.ts"],"sourcesContent":["import {Command, DetachedCommand} from '@react-native-community/cli-types';\nimport {commands as cleanCommands} from '@react-native-community/cli-clean';\nimport {commands as doctorCommands} from '@react-native-community/cli-doctor';\nimport {commands as configCommands} from '@react-native-community/cli-config';\nimport init from './init';\n\nexport const projectCommands = [\n ...configCommands,\n cleanCommands.clean,\n doctorCommands.info,\n] as Command[];\n\nexport const detachedCommands = [\n init,\n doctorCommands.doctor,\n] as DetachedCommand[];\n"],"mappings":";;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAA0B;AAEnB,MAAMA,eAAe,GAAG,CAC7B,GAAGC,qBAAc,EACjBC,oBAAa,CAACC,KAAK,EACnBC,qBAAc,CAACC,IAAI,CACP;AAAC;AAER,MAAMC,gBAAgB,GAAG,CAC9BC,aAAI,EACJH,qBAAc,CAACI,MAAM,CACD;AAAC"}

@@ -7,5 +7,5 @@ "use strict";

exports.default = banner;
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;

@@ -25,9 +25,9 @@ };

function banner(reactNativeVersion) {
return `${_chalk().default.cyan(reactLogoArray.join('\n'))}
return `${_picocolors().default.cyan(reactLogoArray.join('\n'))}
${_chalk().default.cyanBright.bold(getWelcomeMessage(reactNativeVersion))}
${_chalk().default.dim(learnOnceMessage)}
${_picocolors().default.cyanBright(_picocolors().default.bold(getWelcomeMessage(reactNativeVersion)))}
${_picocolors().default.dim(learnOnceMessage)}
`;
}
//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/banner.js.map
//# sourceMappingURL=banner.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["reactLogoArray","getWelcomeMessage","reactNativeVersion","learnOnceMessage","banner","chalk","cyan","join","cyanBright","bold","dim"],"sources":["../../../src/commands/init/banner.ts"],"sourcesContent":["import chalk from 'chalk';\n\nconst reactLogoArray = [\n ' ',\n ' ###### ###### ',\n ' ### #### #### ### ',\n ' ## ### ### ## ',\n ' ## #### ## ',\n ' ## #### ## ',\n ' ## ## ## ## ',\n ' ## ### ### ## ',\n ' ## ######################## ## ',\n ' ###### ### ### ###### ',\n ' ### ## ## ## ## ### ',\n ' ### ## ### #### ### ## ### ',\n ' ## #### ######## #### ## ',\n ' ## ### ########## ### ## ',\n ' ## #### ######## #### ## ',\n ' ### ## ### #### ### ## ### ',\n ' ### ## ## ## ## ### ',\n ' ###### ### ### ###### ',\n ' ## ######################## ## ',\n ' ## ### ### ## ',\n ' ## ## ## ## ',\n ' ## #### ## ',\n ' ## #### ## ',\n ' ## ### ### ## ',\n ' ### #### #### ### ',\n ' ###### ###### ',\n ' ',\n];\n\nconst getWelcomeMessage = (reactNativeVersion: string = '') => {\n if (reactNativeVersion) {\n return ` Welcome to React Native ${reactNativeVersion}! `;\n }\n return ' Welcome to React Native! ';\n};\nconst learnOnceMessage =\n ' Learn once, write anywhere ';\n\nexport default function banner(reactNativeVersion?: string) {\n return `${chalk.cyan(reactLogoArray.join('\\n'))}\n\n${chalk.cyanBright.bold(getWelcomeMessage(reactNativeVersion))}\n${chalk.dim(learnOnceMessage)}\n`;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA0B;AAE1B,MAAMA,cAAc,GAAG,CACrB,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,CAC7D;AAED,MAAMC,iBAAiB,GAAG,CAACC,kBAA0B,GAAG,EAAE,KAAK;EAC7D,IAAIA,kBAAkB,EAAE;IACtB,OAAQ,yCAAwCA,kBAAmB,mBAAkB;EACvF;EACA,OAAO,4DAA4D;AACrE,CAAC;AACD,MAAMC,gBAAgB,GACpB,4DAA4D;AAE/C,SAASC,MAAM,CAACF,kBAA2B,EAAE;EAC1D,OAAQ,GAAEG,gBAAK,CAACC,IAAI,CAACN,cAAc,CAACO,IAAI,CAAC,IAAI,CAAC,CAAE;AAClD;AACA,EAAEF,gBAAK,CAACG,UAAU,CAACC,IAAI,CAACR,iBAAiB,CAACC,kBAAkB,CAAC,CAAE;AAC/D,EAAEG,gBAAK,CAACK,GAAG,CAACP,gBAAgB,CAAE;AAC9B,CAAC;AACD"}
{"version":3,"file":"banner.js","names":["reactLogoArray","getWelcomeMessage","reactNativeVersion","learnOnceMessage","banner","pico","cyan","join","cyanBright","bold","dim"],"sources":["../../../src/commands/init/banner.ts"],"sourcesContent":["import pico from 'picocolors';\n\nconst reactLogoArray = [\n ' ',\n ' ###### ###### ',\n ' ### #### #### ### ',\n ' ## ### ### ## ',\n ' ## #### ## ',\n ' ## #### ## ',\n ' ## ## ## ## ',\n ' ## ### ### ## ',\n ' ## ######################## ## ',\n ' ###### ### ### ###### ',\n ' ### ## ## ## ## ### ',\n ' ### ## ### #### ### ## ### ',\n ' ## #### ######## #### ## ',\n ' ## ### ########## ### ## ',\n ' ## #### ######## #### ## ',\n ' ### ## ### #### ### ## ### ',\n ' ### ## ## ## ## ### ',\n ' ###### ### ### ###### ',\n ' ## ######################## ## ',\n ' ## ### ### ## ',\n ' ## ## ## ## ',\n ' ## #### ## ',\n ' ## #### ## ',\n ' ## ### ### ## ',\n ' ### #### #### ### ',\n ' ###### ###### ',\n ' ',\n];\n\nconst getWelcomeMessage = (reactNativeVersion: string = '') => {\n if (reactNativeVersion) {\n return ` Welcome to React Native ${reactNativeVersion}! `;\n }\n return ' Welcome to React Native! ';\n};\nconst learnOnceMessage =\n ' Learn once, write anywhere ';\n\nexport default function banner(reactNativeVersion?: string) {\n return `${pico.cyan(reactLogoArray.join('\\n'))}\n\n${pico.cyanBright(pico.bold(getWelcomeMessage(reactNativeVersion)))}\n${pico.dim(learnOnceMessage)}\n`;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA8B;AAE9B,MAAMA,cAAc,GAAG,CACrB,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,EAC5D,4DAA4D,CAC7D;AAED,MAAMC,iBAAiB,GAAG,CAACC,kBAA0B,GAAG,EAAE,KAAK;EAC7D,IAAIA,kBAAkB,EAAE;IACtB,OAAQ,yCAAwCA,kBAAmB,mBAAkB;EACvF;EACA,OAAO,4DAA4D;AACrE,CAAC;AACD,MAAMC,gBAAgB,GACpB,4DAA4D;AAE/C,SAASC,MAAM,CAACF,kBAA2B,EAAE;EAC1D,OAAQ,GAAEG,qBAAI,CAACC,IAAI,CAACN,cAAc,CAACO,IAAI,CAAC,IAAI,CAAC,CAAE;AACjD;AACA,EAAEF,qBAAI,CAACG,UAAU,CAACH,qBAAI,CAACI,IAAI,CAACR,iBAAiB,CAACC,kBAAkB,CAAC,CAAC,CAAE;AACpE,EAAEG,qBAAI,CAACK,GAAG,CAACP,gBAAgB,CAAE;AAC7B,CAAC;AACD"}

@@ -18,2 +18,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/constants.js.map
//# sourceMappingURL=constants.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["TEMPLATE_PACKAGE_COMMUNITY","TEMPLATE_PACKAGE_LEGACY","TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION"],"sources":["../../../src/commands/init/constants.ts"],"sourcesContent":["export const TEMPLATE_PACKAGE_COMMUNITY = '@react-native-community/template';\nexport const TEMPLATE_PACKAGE_LEGACY = 'react-native';\nexport const TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT =\n 'react-native-template-typescript';\n\n// This version moved from inlining the template to using @react-native-community/template\nexport const TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION = '0.75.0';\n"],"mappings":";;;;;;AAAO,MAAMA,0BAA0B,GAAG,kCAAkC;AAAC;AACtE,MAAMC,uBAAuB,GAAG,cAAc;AAAC;AAC/C,MAAMC,kCAAkC,GAC7C,kCAAkC;;AAEpC;AAAA;AACO,MAAMC,uCAAuC,GAAG,QAAQ;AAAC"}
{"version":3,"file":"constants.js","names":["TEMPLATE_PACKAGE_COMMUNITY","TEMPLATE_PACKAGE_LEGACY","TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION"],"sources":["../../../src/commands/init/constants.ts"],"sourcesContent":["export const TEMPLATE_PACKAGE_COMMUNITY = '@react-native-community/template';\nexport const TEMPLATE_PACKAGE_LEGACY = 'react-native';\nexport const TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT =\n 'react-native-template-typescript';\n\n// This version moved from inlining the template to using @react-native-community/template\nexport const TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION = '0.75.0';\n"],"mappings":";;;;;;AAAO,MAAMA,0BAA0B,GAAG,kCAAkC;AAAC;AACtE,MAAMC,uBAAuB,GAAG,cAAc;AAAC;AAC/C,MAAMC,kCAAkC,GAC7C,kCAAkC;;AAEpC;AAAA;AACO,MAAMC,uCAAuC,GAAG,QAAQ;AAAC"}

@@ -192,2 +192,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/editTemplate.js.map
//# sourceMappingURL=editTemplate.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["DEFAULT_TITLE_PLACEHOLDER","validatePackageName","packageName","packageNameParts","split","packageNameRegex","length","test","replaceNameInUTF8File","filePath","projectName","templateName","logger","debug","fileContent","fs","readFile","replacedFileContent","replace","RegExp","toLowerCase","writeFile","renameFile","oldName","newName","newFileName","path","join","dirname","basename","rename","shouldRenameFile","nameToReplace","includes","shouldIgnoreFile","match","isIosFile","UNDERSCORED_DOTFILES","processDotfiles","dotfile","find","e","undefined","createAndroidPackagePaths","pathParts","slice","pathToFolders","segmentsList","initialDir","process","cwd","chdir","rmdir","segment","mkdirSync","replacePlaceholderWithPackageName","placeholderName","placeholderTitle","cleanPackageName","walk","reverse","iosFile","stat","isDirectory","fileExtension","extname","fileName","error","CLIError","changePlaceholderInTemplate","projectTitle","message"],"sources":["../../../src/commands/init/editTemplate.ts"],"sourcesContent":["import path from 'path';\nimport {CLIError, logger} from '@react-native-community/cli-tools';\nimport walk from '../../tools/walk';\n\n// We need `graceful-fs` behavior around async file renames on Win32.\n// `gracefulify` does not support patching `fs.promises`. Use `fs-extra`, which\n// exposes its own promise-based interface over `graceful-fs`.\nimport fs from 'fs-extra';\n\ninterface PlaceholderConfig {\n projectName: string;\n placeholderName: string;\n placeholderTitle?: string;\n projectTitle?: string;\n packageName?: string;\n}\n\n/**\n TODO: This is a default placeholder for title in react-native template.\n We should get rid of this once custom templates adapt `placeholderTitle` in their configurations.\n*/\nconst DEFAULT_TITLE_PLACEHOLDER = 'Hello App Display Name';\n\nexport function validatePackageName(packageName: string) {\n const packageNameParts = packageName.split('.');\n const packageNameRegex =\n /^([a-zA-Z]([a-zA-Z0-9_])*\\.)+[a-zA-Z]([a-zA-Z0-9_])*$/u;\n\n if (packageNameParts.length < 2) {\n throw `The package name ${packageName} is invalid. It should contain at least two segments, e.g. com.app`;\n }\n\n if (!packageNameRegex.test(packageName)) {\n throw `The ${packageName} package name is not valid. It can contain only alphanumeric characters and dots.`;\n }\n}\n\nexport async function replaceNameInUTF8File(\n filePath: string,\n projectName: string,\n templateName: string,\n) {\n logger.debug(`Replacing in ${filePath}`);\n const fileContent = await fs.readFile(filePath, 'utf8');\n const replacedFileContent = fileContent\n .replace(new RegExp(templateName, 'g'), projectName)\n .replace(\n new RegExp(templateName.toLowerCase(), 'g'),\n projectName.toLowerCase(),\n );\n\n if (fileContent !== replacedFileContent) {\n await fs.writeFile(filePath, replacedFileContent, 'utf8');\n }\n}\n\nasync function renameFile(filePath: string, oldName: string, newName: string) {\n const newFileName = path.join(\n path.dirname(filePath),\n path.basename(filePath).replace(new RegExp(oldName, 'g'), newName),\n );\n\n logger.debug(`Renaming ${filePath} -> file:${newFileName}`);\n\n await fs.rename(filePath, newFileName);\n}\n\nfunction shouldRenameFile(filePath: string, nameToReplace: string) {\n return path.basename(filePath).includes(nameToReplace);\n}\n\nfunction shouldIgnoreFile(filePath: string) {\n return filePath.match(/node_modules|yarn.lock|package-lock.json/g);\n}\n\nfunction isIosFile(filePath: string) {\n return filePath.includes('ios');\n}\n\nconst UNDERSCORED_DOTFILES = [\n 'buckconfig',\n 'eslintrc.js',\n 'flowconfig',\n 'gitattributes',\n 'gitignore',\n 'prettierrc.js',\n 'watchmanconfig',\n 'editorconfig',\n 'bundle',\n 'ruby-version',\n 'node-version',\n 'xcode.env',\n];\n\nasync function processDotfiles(filePath: string) {\n const dotfile = UNDERSCORED_DOTFILES.find((e) => filePath.includes(`_${e}`));\n\n if (dotfile === undefined) {\n return;\n }\n\n await renameFile(filePath, `_${dotfile}`, `.${dotfile}`);\n}\n\nasync function createAndroidPackagePaths(\n filePath: string,\n packageName: string,\n) {\n const pathParts = filePath.split('/').slice(-2);\n\n if (pathParts[0] === 'java' && pathParts[1] === 'com') {\n const pathToFolders = filePath.split('/').slice(0, -2).join('/');\n const segmentsList = packageName.split('.');\n\n if (segmentsList.length > 1) {\n const initialDir = process.cwd();\n process.chdir(filePath.split('/').slice(0, -1).join('/'));\n\n try {\n await fs.rename(\n `${filePath}/${segmentsList.join('.')}`,\n `${pathToFolders}/${segmentsList[segmentsList.length - 1]}`,\n );\n await fs.rmdir(filePath);\n\n for (const segment of segmentsList) {\n fs.mkdirSync(segment);\n process.chdir(segment);\n }\n await fs.rename(\n `${pathToFolders}/${segmentsList[segmentsList.length - 1]}`,\n process.cwd(),\n );\n } catch {\n throw 'Failed to create correct paths for Android.';\n }\n\n process.chdir(initialDir);\n }\n }\n}\n\nexport async function replacePlaceholderWithPackageName({\n projectName,\n placeholderName,\n placeholderTitle,\n packageName,\n}: Omit<Required<PlaceholderConfig>, 'projectTitle'>) {\n validatePackageName(packageName);\n const cleanPackageName = packageName.replace(/[^\\p{L}\\p{N}.]+/gu, '');\n\n for (const filePath of walk(process.cwd()).reverse()) {\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n\n const iosFile = isIosFile(filePath);\n\n if (!(await fs.stat(filePath)).isDirectory()) {\n let newName = iosFile ? projectName : cleanPackageName;\n\n //replace bundleID for iOS\n await replaceNameInUTF8File(\n filePath,\n `PRODUCT_BUNDLE_IDENTIFIER = \"${cleanPackageName}\"`,\n 'PRODUCT_BUNDLE_IDENTIFIER = \"(.*)\"',\n );\n\n if (filePath.includes('app.json')) {\n await replaceNameInUTF8File(filePath, projectName, placeholderName);\n } else {\n const fileExtension = path.extname(filePath);\n\n if (fileExtension === '.java') {\n await replaceNameInUTF8File(\n filePath,\n `return \"${projectName}\"`,\n `return \"${placeholderName}\"`,\n );\n } else if (fileExtension === '.kt') {\n await replaceNameInUTF8File(\n filePath,\n `= \"${projectName}\"`,\n `= \"${placeholderName}\"`,\n );\n }\n\n await replaceNameInUTF8File(\n filePath,\n `<string name=\"app_name\">${projectName}</string>`,\n `<string name=\"app_name\">${placeholderTitle}</string>`,\n );\n\n await replaceNameInUTF8File(\n filePath,\n newName,\n `com.${placeholderName}`,\n );\n await replaceNameInUTF8File(filePath, newName, placeholderName);\n await replaceNameInUTF8File(filePath, newName, placeholderTitle);\n }\n }\n\n let fileName = cleanPackageName;\n\n if (shouldRenameFile(filePath, placeholderName)) {\n if (iosFile) {\n fileName = projectName;\n }\n\n await renameFile(filePath, placeholderName, fileName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(\n filePath,\n placeholderName.toLowerCase(),\n fileName.toLowerCase(),\n );\n }\n try {\n await createAndroidPackagePaths(filePath, cleanPackageName);\n } catch (error) {\n throw new CLIError('Failed to create correct paths for Android.');\n }\n\n await processDotfiles(filePath);\n }\n}\n\nexport async function changePlaceholderInTemplate({\n projectName,\n placeholderName,\n placeholderTitle = DEFAULT_TITLE_PLACEHOLDER,\n projectTitle = projectName,\n packageName,\n}: PlaceholderConfig) {\n logger.debug(`Changing ${placeholderName} for ${projectName} in template`);\n\n if (packageName) {\n try {\n await replacePlaceholderWithPackageName({\n projectName,\n placeholderName,\n placeholderTitle,\n packageName,\n });\n } catch (error) {\n throw new CLIError((error as Error).message);\n }\n } else {\n for (const filePath of walk(process.cwd()).reverse()) {\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n if (!(await fs.stat(filePath)).isDirectory()) {\n await replaceNameInUTF8File(filePath, projectName, placeholderName);\n await replaceNameInUTF8File(filePath, projectTitle, placeholderTitle);\n }\n if (shouldRenameFile(filePath, placeholderName)) {\n await renameFile(filePath, placeholderName, projectName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(\n filePath,\n placeholderName.toLowerCase(),\n projectName.toLowerCase(),\n );\n }\n\n await processDotfiles(filePath);\n }\n }\n}\n"],"mappings":"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"}
{"version":3,"file":"editTemplate.js","names":["DEFAULT_TITLE_PLACEHOLDER","validatePackageName","packageName","packageNameParts","split","packageNameRegex","length","test","replaceNameInUTF8File","filePath","projectName","templateName","logger","debug","fileContent","fs","readFile","replacedFileContent","replace","RegExp","toLowerCase","writeFile","renameFile","oldName","newName","newFileName","path","join","dirname","basename","rename","shouldRenameFile","nameToReplace","includes","shouldIgnoreFile","match","isIosFile","UNDERSCORED_DOTFILES","processDotfiles","dotfile","find","e","undefined","createAndroidPackagePaths","pathParts","slice","pathToFolders","segmentsList","initialDir","process","cwd","chdir","rmdir","segment","mkdirSync","replacePlaceholderWithPackageName","placeholderName","placeholderTitle","cleanPackageName","walk","reverse","iosFile","stat","isDirectory","fileExtension","extname","fileName","error","CLIError","changePlaceholderInTemplate","projectTitle","message"],"sources":["../../../src/commands/init/editTemplate.ts"],"sourcesContent":["import path from 'path';\nimport {CLIError, logger} from '@react-native-community/cli-tools';\nimport walk from '../../tools/walk';\n\n// We need `graceful-fs` behavior around async file renames on Win32.\n// `gracefulify` does not support patching `fs.promises`. Use `fs-extra`, which\n// exposes its own promise-based interface over `graceful-fs`.\nimport fs from 'fs-extra';\n\ninterface PlaceholderConfig {\n projectName: string;\n placeholderName: string;\n placeholderTitle?: string;\n projectTitle?: string;\n packageName?: string;\n}\n\n/**\n TODO: This is a default placeholder for title in react-native template.\n We should get rid of this once custom templates adapt `placeholderTitle` in their configurations.\n*/\nconst DEFAULT_TITLE_PLACEHOLDER = 'Hello App Display Name';\n\nexport function validatePackageName(packageName: string) {\n const packageNameParts = packageName.split('.');\n const packageNameRegex =\n /^([a-zA-Z]([a-zA-Z0-9_])*\\.)+[a-zA-Z]([a-zA-Z0-9_])*$/u;\n\n if (packageNameParts.length < 2) {\n throw `The package name ${packageName} is invalid. It should contain at least two segments, e.g. com.app`;\n }\n\n if (!packageNameRegex.test(packageName)) {\n throw `The ${packageName} package name is not valid. It can contain only alphanumeric characters and dots.`;\n }\n}\n\nexport async function replaceNameInUTF8File(\n filePath: string,\n projectName: string,\n templateName: string,\n) {\n logger.debug(`Replacing in ${filePath}`);\n const fileContent = await fs.readFile(filePath, 'utf8');\n const replacedFileContent = fileContent\n .replace(new RegExp(templateName, 'g'), projectName)\n .replace(\n new RegExp(templateName.toLowerCase(), 'g'),\n projectName.toLowerCase(),\n );\n\n if (fileContent !== replacedFileContent) {\n await fs.writeFile(filePath, replacedFileContent, 'utf8');\n }\n}\n\nasync function renameFile(filePath: string, oldName: string, newName: string) {\n const newFileName = path.join(\n path.dirname(filePath),\n path.basename(filePath).replace(new RegExp(oldName, 'g'), newName),\n );\n\n logger.debug(`Renaming ${filePath} -> file:${newFileName}`);\n\n await fs.rename(filePath, newFileName);\n}\n\nfunction shouldRenameFile(filePath: string, nameToReplace: string) {\n return path.basename(filePath).includes(nameToReplace);\n}\n\nfunction shouldIgnoreFile(filePath: string) {\n return filePath.match(/node_modules|yarn.lock|package-lock.json/g);\n}\n\nfunction isIosFile(filePath: string) {\n return filePath.includes('ios');\n}\n\nconst UNDERSCORED_DOTFILES = [\n 'buckconfig',\n 'eslintrc.js',\n 'flowconfig',\n 'gitattributes',\n 'gitignore',\n 'prettierrc.js',\n 'watchmanconfig',\n 'editorconfig',\n 'bundle',\n 'ruby-version',\n 'node-version',\n 'xcode.env',\n];\n\nasync function processDotfiles(filePath: string) {\n const dotfile = UNDERSCORED_DOTFILES.find((e) => filePath.includes(`_${e}`));\n\n if (dotfile === undefined) {\n return;\n }\n\n await renameFile(filePath, `_${dotfile}`, `.${dotfile}`);\n}\n\nasync function createAndroidPackagePaths(\n filePath: string,\n packageName: string,\n) {\n const pathParts = filePath.split('/').slice(-2);\n\n if (pathParts[0] === 'java' && pathParts[1] === 'com') {\n const pathToFolders = filePath.split('/').slice(0, -2).join('/');\n const segmentsList = packageName.split('.');\n\n if (segmentsList.length > 1) {\n const initialDir = process.cwd();\n process.chdir(filePath.split('/').slice(0, -1).join('/'));\n\n try {\n await fs.rename(\n `${filePath}/${segmentsList.join('.')}`,\n `${pathToFolders}/${segmentsList[segmentsList.length - 1]}`,\n );\n await fs.rmdir(filePath);\n\n for (const segment of segmentsList) {\n fs.mkdirSync(segment);\n process.chdir(segment);\n }\n await fs.rename(\n `${pathToFolders}/${segmentsList[segmentsList.length - 1]}`,\n process.cwd(),\n );\n } catch {\n throw 'Failed to create correct paths for Android.';\n }\n\n process.chdir(initialDir);\n }\n }\n}\n\nexport async function replacePlaceholderWithPackageName({\n projectName,\n placeholderName,\n placeholderTitle,\n packageName,\n}: Omit<Required<PlaceholderConfig>, 'projectTitle'>) {\n validatePackageName(packageName);\n const cleanPackageName = packageName.replace(/[^\\p{L}\\p{N}.]+/gu, '');\n\n for (const filePath of walk(process.cwd()).reverse()) {\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n\n const iosFile = isIosFile(filePath);\n\n if (!(await fs.stat(filePath)).isDirectory()) {\n let newName = iosFile ? projectName : cleanPackageName;\n\n //replace bundleID for iOS\n await replaceNameInUTF8File(\n filePath,\n `PRODUCT_BUNDLE_IDENTIFIER = \"${cleanPackageName}\"`,\n 'PRODUCT_BUNDLE_IDENTIFIER = \"(.*)\"',\n );\n\n if (filePath.includes('app.json')) {\n await replaceNameInUTF8File(filePath, projectName, placeholderName);\n } else {\n const fileExtension = path.extname(filePath);\n\n if (fileExtension === '.java') {\n await replaceNameInUTF8File(\n filePath,\n `return \"${projectName}\"`,\n `return \"${placeholderName}\"`,\n );\n } else if (fileExtension === '.kt') {\n await replaceNameInUTF8File(\n filePath,\n `= \"${projectName}\"`,\n `= \"${placeholderName}\"`,\n );\n }\n\n await replaceNameInUTF8File(\n filePath,\n `<string name=\"app_name\">${projectName}</string>`,\n `<string name=\"app_name\">${placeholderTitle}</string>`,\n );\n\n await replaceNameInUTF8File(\n filePath,\n newName,\n `com.${placeholderName}`,\n );\n await replaceNameInUTF8File(filePath, newName, placeholderName);\n await replaceNameInUTF8File(filePath, newName, placeholderTitle);\n }\n }\n\n let fileName = cleanPackageName;\n\n if (shouldRenameFile(filePath, placeholderName)) {\n if (iosFile) {\n fileName = projectName;\n }\n\n await renameFile(filePath, placeholderName, fileName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(\n filePath,\n placeholderName.toLowerCase(),\n fileName.toLowerCase(),\n );\n }\n try {\n await createAndroidPackagePaths(filePath, cleanPackageName);\n } catch (error) {\n throw new CLIError('Failed to create correct paths for Android.');\n }\n\n await processDotfiles(filePath);\n }\n}\n\nexport async function changePlaceholderInTemplate({\n projectName,\n placeholderName,\n placeholderTitle = DEFAULT_TITLE_PLACEHOLDER,\n projectTitle = projectName,\n packageName,\n}: PlaceholderConfig) {\n logger.debug(`Changing ${placeholderName} for ${projectName} in template`);\n\n if (packageName) {\n try {\n await replacePlaceholderWithPackageName({\n projectName,\n placeholderName,\n placeholderTitle,\n packageName,\n });\n } catch (error) {\n throw new CLIError((error as Error).message);\n }\n } else {\n for (const filePath of walk(process.cwd()).reverse()) {\n if (shouldIgnoreFile(filePath)) {\n continue;\n }\n if (!(await fs.stat(filePath)).isDirectory()) {\n await replaceNameInUTF8File(filePath, projectName, placeholderName);\n await replaceNameInUTF8File(filePath, projectTitle, placeholderTitle);\n }\n if (shouldRenameFile(filePath, placeholderName)) {\n await renameFile(filePath, placeholderName, projectName);\n } else if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {\n await renameFile(\n filePath,\n placeholderName.toLowerCase(),\n projectName.toLowerCase(),\n );\n }\n\n await processDotfiles(filePath);\n }\n }\n}\n"],"mappings":"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"}

@@ -21,2 +21,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/errors/DirectoryAlreadyExistsError.js.map
//# sourceMappingURL=DirectoryAlreadyExistsError.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["DirectoryAlreadyExistsError","CLIError","constructor","directory"],"sources":["../../../../src/commands/init/errors/DirectoryAlreadyExistsError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class DirectoryAlreadyExistsError extends CLIError {\n constructor(directory: string) {\n super(\n `Cannot initialize new project because directory \"${directory}\" already exists. Please remove or rename the directory and try again.`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,2BAA2B,SAASC,oBAAQ,CAAC;EAChEC,WAAW,CAACC,SAAiB,EAAE;IAC7B,KAAK,CACF,oDAAmDA,SAAU,wEAAuE,CACtI;EACH;AACF;AAAC"}
{"version":3,"file":"DirectoryAlreadyExistsError.js","names":["DirectoryAlreadyExistsError","CLIError","constructor","directory"],"sources":["../../../../src/commands/init/errors/DirectoryAlreadyExistsError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class DirectoryAlreadyExistsError extends CLIError {\n constructor(directory: string) {\n super(\n `Cannot initialize new project because directory \"${directory}\" already exists. Please remove or rename the directory and try again.`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,2BAA2B,SAASC,oBAAQ,CAAC;EAChEC,WAAW,CAACC,SAAiB,EAAE;IAC7B,KAAK,CACF,oDAAmDA,SAAU,wEAAuE,CACtI;EACH;AACF;AAAC"}

@@ -21,2 +21,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/errors/HelloWorldError.js.map
//# sourceMappingURL=HelloWorldError.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["HelloWorldError","CLIError","constructor"],"sources":["../../../../src/commands/init/errors/HelloWorldError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class HelloWorldError extends CLIError {\n constructor() {\n super(\n 'Project name shouldn\\'t contain \"HelloWorld\" name in it, because it is CLI\\'s default placeholder name.',\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,eAAe,SAASC,oBAAQ,CAAC;EACpDC,WAAW,GAAG;IACZ,KAAK,CACH,yGAAyG,CAC1G;EACH;AACF;AAAC"}
{"version":3,"file":"HelloWorldError.js","names":["HelloWorldError","CLIError","constructor"],"sources":["../../../../src/commands/init/errors/HelloWorldError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class HelloWorldError extends CLIError {\n constructor() {\n super(\n 'Project name shouldn\\'t contain \"HelloWorld\" name in it, because it is CLI\\'s default placeholder name.',\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,eAAe,SAASC,oBAAQ,CAAC;EACpDC,WAAW,GAAG;IACZ,KAAK,CACH,yGAAyG,CAC1G;EACH;AACF;AAAC"}

@@ -21,2 +21,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/errors/InvalidNameError.js.map
//# sourceMappingURL=InvalidNameError.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["InvalidNameError","CLIError","constructor","name"],"sources":["../../../../src/commands/init/errors/InvalidNameError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class InvalidNameError extends CLIError {\n constructor(name: string) {\n super(\n `\"${name}\" is not a valid name for a project. Please use a valid identifier name (alphanumeric).`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,gBAAgB,SAASC,oBAAQ,CAAC;EACrDC,WAAW,CAACC,IAAY,EAAE;IACxB,KAAK,CACF,IAAGA,IAAK,yFAAwF,CAClG;EACH;AACF;AAAC"}
{"version":3,"file":"InvalidNameError.js","names":["InvalidNameError","CLIError","constructor","name"],"sources":["../../../../src/commands/init/errors/InvalidNameError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class InvalidNameError extends CLIError {\n constructor(name: string) {\n super(\n `\"${name}\" is not a valid name for a project. Please use a valid identifier name (alphanumeric).`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,gBAAgB,SAASC,oBAAQ,CAAC;EACrDC,WAAW,CAACC,IAAY,EAAE;IACxB,KAAK,CACF,IAAGA,IAAK,yFAAwF,CAClG;EACH;AACF;AAAC"}

@@ -21,2 +21,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/errors/ReservedNameError.js.map
//# sourceMappingURL=ReservedNameError.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["ReservedNameError","CLIError","constructor","name"],"sources":["../../../../src/commands/init/errors/ReservedNameError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class ReservedNameError extends CLIError {\n constructor(name: string) {\n super(\n `Not a valid name for a project. Please do not use the reserved word \"${name}\".`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,iBAAiB,SAASC,oBAAQ,CAAC;EACtDC,WAAW,CAACC,IAAY,EAAE;IACxB,KAAK,CACF,wEAAuEA,IAAK,IAAG,CACjF;EACH;AACF;AAAC"}
{"version":3,"file":"ReservedNameError.js","names":["ReservedNameError","CLIError","constructor","name"],"sources":["../../../../src/commands/init/errors/ReservedNameError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class ReservedNameError extends CLIError {\n constructor(name: string) {\n super(\n `Not a valid name for a project. Please do not use the reserved word \"${name}\".`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,iBAAiB,SAASC,oBAAQ,CAAC;EACtDC,WAAW,CAACC,IAAY,EAAE;IACxB,KAAK,CACF,wEAAuEA,IAAK,IAAG,CACjF;EACH;AACF;AAAC"}

@@ -25,2 +25,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/errors/TemplateAndVersionError.js.map
//# sourceMappingURL=TemplateAndVersionError.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["TemplateAndVersionError","CLIError","constructor","template"],"sources":["../../../../src/commands/init/errors/TemplateAndVersionError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class TemplateAndVersionError extends CLIError {\n constructor(template: string) {\n super(\n `Passing both \"version\" and \"template\" is not supported. The template you select determines the version of react-native used. Please use only one of these options, for example:\n \n --template ${template}@x.y.z\n \n where x.y.z is the release of the template that contains the desired \"react-native\" version. Check the version tab of https://www.npmjs.com/package/${template} for available versions`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,uBAAuB,SAASC,oBAAQ,CAAC;EAC5DC,WAAW,CAACC,QAAgB,EAAE;IAC5B,KAAK,CACF;AACP;AACA,mBAAmBA,QAAS;AAC5B;AACA,4JAA4JA,QAAS,yBAAwB,CACxL;EACH;AACF;AAAC"}
{"version":3,"file":"TemplateAndVersionError.js","names":["TemplateAndVersionError","CLIError","constructor","template"],"sources":["../../../../src/commands/init/errors/TemplateAndVersionError.ts"],"sourcesContent":["import {CLIError} from '@react-native-community/cli-tools';\n\nexport default class TemplateAndVersionError extends CLIError {\n constructor(template: string) {\n super(\n `Passing both \"version\" and \"template\" is not supported. The template you select determines the version of react-native used. Please use only one of these options, for example:\n \n --template ${template}@x.y.z\n \n where x.y.z is the release of the template that contains the desired \"react-native\" version. Check the version tab of https://www.npmjs.com/package/${template} for available versions`,\n );\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEe,MAAMA,uBAAuB,SAASC,oBAAQ,CAAC;EAC5DC,WAAW,CAACC,QAAgB,EAAE;IAC5B,KAAK,CACF;AACP;AACA,mBAAmBA,QAAS;AAC5B;AACA,4JAA4JA,QAAS,yBAAwB,CACxL;EACH;AACF;AAAC"}

@@ -87,2 +87,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/git.js.map
//# sourceMappingURL=git.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["checkGitInstallation","execa","stdio","checkIfFolderIsGitRepo","folder","cwd","createGitRepository","loader","getLoader","start","version","JSON","parse","fs","readFileSync","path","join","succeed","e","stop","logger","debug"],"sources":["../../../src/commands/init/git.ts"],"sourcesContent":["import {getLoader, logger} from '@react-native-community/cli-tools';\nimport execa from 'execa';\nimport fs from 'fs';\nimport path from 'path';\n\nexport const checkGitInstallation = async (): Promise<boolean> => {\n try {\n await execa('git', ['--version'], {stdio: 'ignore'});\n return true;\n } catch {\n return false;\n }\n};\n\nexport const checkIfFolderIsGitRepo = async (\n folder: string,\n): Promise<boolean> => {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], {\n stdio: 'ignore',\n cwd: folder,\n });\n return true;\n } catch {\n return false;\n }\n};\n\nexport const createGitRepository = async (folder: string) => {\n const loader = getLoader();\n\n loader.start('Initializing Git repository');\n\n let version;\n\n try {\n version = JSON.parse(\n fs.readFileSync(\n path.join('node_modules/react-native/package.json'),\n 'utf8',\n ),\n ).version;\n } catch {}\n\n try {\n await execa('git', ['init'], {cwd: folder});\n await execa('git', ['branch', '-M', 'main'], {cwd: folder});\n await execa('git', ['add', '.'], {cwd: folder});\n await execa(\n 'git',\n [\n 'commit',\n '-m',\n `Initial commit\\n\\n${\n version ? 'Generated by react-native@' + version : ''\n }`,\n ],\n {\n cwd: folder,\n },\n );\n loader.succeed();\n } catch (e) {\n loader.stop();\n logger.debug(\n 'Could not create an empty Git repository, error: ',\n e as string,\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;AAAwB;AAEjB,MAAMA,oBAAoB,GAAG,YAA8B;EAChE,IAAI;IACF,MAAM,IAAAC,gBAAK,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE;MAACC,KAAK,EAAE;IAAQ,CAAC,CAAC;IACpD,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAAC;AAEK,MAAMC,sBAAsB,GAAG,MACpCC,MAAc,IACO;EACrB,IAAI;IACF,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;MACzDC,KAAK,EAAE,QAAQ;MACfG,GAAG,EAAED;IACP,CAAC,CAAC;IACF,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAAC;AAEK,MAAME,mBAAmB,GAAG,MAAOF,MAAc,IAAK;EAC3D,MAAMG,MAAM,GAAG,IAAAC,qBAAS,GAAE;EAE1BD,MAAM,CAACE,KAAK,CAAC,6BAA6B,CAAC;EAE3C,IAAIC,OAAO;EAEX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAClBC,aAAE,CAACC,YAAY,CACbC,eAAI,CAACC,IAAI,CAAC,wCAAwC,CAAC,EACnD,MAAM,CACP,CACF,CAACN,OAAO;EACX,CAAC,CAAC,MAAM,CAAC;EAET,IAAI;IACF,MAAM,IAAAT,gBAAK,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC3C,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC3D,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC/C,MAAM,IAAAH,gBAAK,EACT,KAAK,EACL,CACE,QAAQ,EACR,IAAI,EACH,qBACCS,OAAO,GAAG,4BAA4B,GAAGA,OAAO,GAAG,EACpD,EAAC,CACH,EACD;MACEL,GAAG,EAAED;IACP,CAAC,CACF;IACDG,MAAM,CAACU,OAAO,EAAE;EAClB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVX,MAAM,CAACY,IAAI,EAAE;IACbC,kBAAM,CAACC,KAAK,CACV,mDAAmD,EACnDH,CAAC,CACF;EACH;AACF,CAAC;AAAC"}
{"version":3,"file":"git.js","names":["checkGitInstallation","execa","stdio","checkIfFolderIsGitRepo","folder","cwd","createGitRepository","loader","getLoader","start","version","JSON","parse","fs","readFileSync","path","join","succeed","e","stop","logger","debug"],"sources":["../../../src/commands/init/git.ts"],"sourcesContent":["import {getLoader, logger} from '@react-native-community/cli-tools';\nimport execa from 'execa';\nimport fs from 'fs';\nimport path from 'path';\n\nexport const checkGitInstallation = async (): Promise<boolean> => {\n try {\n await execa('git', ['--version'], {stdio: 'ignore'});\n return true;\n } catch {\n return false;\n }\n};\n\nexport const checkIfFolderIsGitRepo = async (\n folder: string,\n): Promise<boolean> => {\n try {\n await execa('git', ['rev-parse', '--is-inside-work-tree'], {\n stdio: 'ignore',\n cwd: folder,\n });\n return true;\n } catch {\n return false;\n }\n};\n\nexport const createGitRepository = async (folder: string) => {\n const loader = getLoader();\n\n loader.start('Initializing Git repository');\n\n let version;\n\n try {\n version = JSON.parse(\n fs.readFileSync(\n path.join('node_modules/react-native/package.json'),\n 'utf8',\n ),\n ).version;\n } catch {}\n\n try {\n await execa('git', ['init'], {cwd: folder});\n await execa('git', ['branch', '-M', 'main'], {cwd: folder});\n await execa('git', ['add', '.'], {cwd: folder});\n await execa(\n 'git',\n [\n 'commit',\n '-m',\n `Initial commit\\n\\n${\n version ? 'Generated by react-native@' + version : ''\n }`,\n ],\n {\n cwd: folder,\n },\n );\n loader.succeed();\n } catch (e) {\n loader.stop();\n logger.debug(\n 'Could not create an empty Git repository, error: ',\n e as string,\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;AAAwB;AAEjB,MAAMA,oBAAoB,GAAG,YAA8B;EAChE,IAAI;IACF,MAAM,IAAAC,gBAAK,EAAC,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE;MAACC,KAAK,EAAE;IAAQ,CAAC,CAAC;IACpD,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAAC;AAEK,MAAMC,sBAAsB,GAAG,MACpCC,MAAc,IACO;EACrB,IAAI;IACF,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;MACzDC,KAAK,EAAE,QAAQ;MACfG,GAAG,EAAED;IACP,CAAC,CAAC;IACF,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC;AAAC;AAEK,MAAME,mBAAmB,GAAG,MAAOF,MAAc,IAAK;EAC3D,MAAMG,MAAM,GAAG,IAAAC,qBAAS,GAAE;EAE1BD,MAAM,CAACE,KAAK,CAAC,6BAA6B,CAAC;EAE3C,IAAIC,OAAO;EAEX,IAAI;IACFA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAClBC,aAAE,CAACC,YAAY,CACbC,eAAI,CAACC,IAAI,CAAC,wCAAwC,CAAC,EACnD,MAAM,CACP,CACF,CAACN,OAAO;EACX,CAAC,CAAC,MAAM,CAAC;EAET,IAAI;IACF,MAAM,IAAAT,gBAAK,EAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC3C,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC3D,MAAM,IAAAH,gBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;MAACI,GAAG,EAAED;IAAM,CAAC,CAAC;IAC/C,MAAM,IAAAH,gBAAK,EACT,KAAK,EACL,CACE,QAAQ,EACR,IAAI,EACH,qBACCS,OAAO,GAAG,4BAA4B,GAAGA,OAAO,GAAG,EACpD,EAAC,CACH,EACD;MACEL,GAAG,EAAED;IACP,CAAC,CACF;IACDG,MAAM,CAACU,OAAO,EAAE;EAClB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVX,MAAM,CAACY,IAAI,EAAE;IACbC,kBAAM,CAACC,KAAK,CACV,mDAAmD,EACnDH,CAAC,CACF;EACH;AACF,CAAC;AAAC"}

@@ -60,2 +60,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/index.js.map
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["func","init","detached","name","description","options","parse","val","Object","fromEntries","split","map","option","key","value"],"sources":["../../../src/commands/init/index.ts"],"sourcesContent":["import init from './init';\n\nexport default {\n func: init,\n detached: true,\n name: 'init [projectName]',\n description:\n 'New app will be initialized in the directory of the same name. Android and iOS projects will use this name for publishing setup.',\n options: [\n {\n name: '--version <string>',\n description: 'React Native version to install in the template',\n },\n {\n name: '--template <string>',\n description:\n 'Uses a custom template. Valid arguments are the ones supported by `npm install [package]` or `yarn add [package]`, if you are using `--pm yarn` option',\n },\n {\n name: '--pm <string>',\n description:\n 'Use specific package manager to initialize the project. Available options: `yarn`, `npm`, `bun`. Default: `npm`',\n },\n {\n name: '--directory <string>',\n description: 'Uses a custom directory instead of `<projectName>`.',\n },\n {\n name: '--title <string>',\n description: 'Uses a custom app title name for application',\n },\n {\n name: '--skip-install',\n description: 'Skips dependencies installation step',\n },\n {\n name: '--install-pods [boolean]',\n description:\n 'Determine if CocoaPods should be installed when initializing a project',\n },\n {\n name: '--package-name <string>',\n description:\n 'Inits a project with a custom package name (Android) and bundle ID (iOS), e.g. com.example.app',\n },\n {\n name: '--platform-name <string>',\n description:\n 'Name of out of tree platform to be used for ex. react-native-macos. This flag is optional as it should be passed automatically by out of tree platform. It needs to match the name of the platform declared in package.json',\n },\n {\n name: '--skip-git-init',\n description: 'Skip git repository initialization',\n },\n {\n name: '--replace-directory [boolean]',\n description: 'Replaces the directory if it already exists.',\n },\n {\n name: '--yarn-config-options <string>',\n description:\n 'Passes extra options that will be added to `.yarnrc.yml` file, format: key=value,key2=value2.',\n parse: (val: string): Record<string, string> => {\n return Object.fromEntries(\n val.split(',').map((option) => {\n const [key, value] = option.split('=');\n return [key, value];\n }),\n );\n },\n },\n ],\n};\n"],"mappings":";;;;;;AAAA;AAA0B;AAAA,eAEX;EACbA,IAAI,EAAEC,aAAI;EACVC,QAAQ,EAAE,IAAI;EACdC,IAAI,EAAE,oBAAoB;EAC1BC,WAAW,EACT,kIAAkI;EACpIC,OAAO,EAAE,CACP;IACEF,IAAI,EAAE,oBAAoB;IAC1BC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,qBAAqB;IAC3BC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,eAAe;IACrBC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,sBAAsB;IAC5BC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,kBAAkB;IACxBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,0BAA0B;IAChCC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,yBAAyB;IAC/BC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,0BAA0B;IAChCC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,iBAAiB;IACvBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,+BAA+B;IACrCC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,gCAAgC;IACtCC,WAAW,EACT,+FAA+F;IACjGE,KAAK,EAAGC,GAAW,IAA6B;MAC9C,OAAOC,MAAM,CAACC,WAAW,CACvBF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,MAAM,IAAK;QAC7B,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAGF,MAAM,CAACF,KAAK,CAAC,GAAG,CAAC;QACtC,OAAO,CAACG,GAAG,EAAEC,KAAK,CAAC;MACrB,CAAC,CAAC,CACH;IACH;EACF,CAAC;AAEL,CAAC;AAAA"}
{"version":3,"file":"index.js","names":["func","init","detached","name","description","options","parse","val","Object","fromEntries","split","map","option","key","value"],"sources":["../../../src/commands/init/index.ts"],"sourcesContent":["import init from './init';\n\nexport default {\n func: init,\n detached: true,\n name: 'init [projectName]',\n description:\n 'New app will be initialized in the directory of the same name. Android and iOS projects will use this name for publishing setup.',\n options: [\n {\n name: '--version <string>',\n description: 'React Native version to install in the template',\n },\n {\n name: '--template <string>',\n description:\n 'Uses a custom template. Valid arguments are the ones supported by `npm install [package]` or `yarn add [package]`, if you are using `--pm yarn` option',\n },\n {\n name: '--pm <string>',\n description:\n 'Use specific package manager to initialize the project. Available options: `yarn`, `npm`, `bun`. Default: `npm`',\n },\n {\n name: '--directory <string>',\n description: 'Uses a custom directory instead of `<projectName>`.',\n },\n {\n name: '--title <string>',\n description: 'Uses a custom app title name for application',\n },\n {\n name: '--skip-install',\n description: 'Skips dependencies installation step',\n },\n {\n name: '--install-pods [boolean]',\n description:\n 'Determine if CocoaPods should be installed when initializing a project',\n },\n {\n name: '--package-name <string>',\n description:\n 'Inits a project with a custom package name (Android) and bundle ID (iOS), e.g. com.example.app',\n },\n {\n name: '--platform-name <string>',\n description:\n 'Name of out of tree platform to be used for ex. react-native-macos. This flag is optional as it should be passed automatically by out of tree platform. It needs to match the name of the platform declared in package.json',\n },\n {\n name: '--skip-git-init',\n description: 'Skip git repository initialization',\n },\n {\n name: '--replace-directory [boolean]',\n description: 'Replaces the directory if it already exists.',\n },\n {\n name: '--yarn-config-options <string>',\n description:\n 'Passes extra options that will be added to `.yarnrc.yml` file, format: key=value,key2=value2.',\n parse: (val: string): Record<string, string> => {\n return Object.fromEntries(\n val.split(',').map((option) => {\n const [key, value] = option.split('=');\n return [key, value];\n }),\n );\n },\n },\n ],\n};\n"],"mappings":";;;;;;AAAA;AAA0B;AAAA,eAEX;EACbA,IAAI,EAAEC,aAAI;EACVC,QAAQ,EAAE,IAAI;EACdC,IAAI,EAAE,oBAAoB;EAC1BC,WAAW,EACT,kIAAkI;EACpIC,OAAO,EAAE,CACP;IACEF,IAAI,EAAE,oBAAoB;IAC1BC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,qBAAqB;IAC3BC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,eAAe;IACrBC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,sBAAsB;IAC5BC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,kBAAkB;IACxBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,gBAAgB;IACtBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,0BAA0B;IAChCC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,yBAAyB;IAC/BC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,0BAA0B;IAChCC,WAAW,EACT;EACJ,CAAC,EACD;IACED,IAAI,EAAE,iBAAiB;IACvBC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,+BAA+B;IACrCC,WAAW,EAAE;EACf,CAAC,EACD;IACED,IAAI,EAAE,gCAAgC;IACtCC,WAAW,EACT,+FAA+F;IACjGE,KAAK,EAAGC,GAAW,IAA6B;MAC9C,OAAOC,MAAM,CAACC,WAAW,CACvBF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,MAAM,IAAK;QAC7B,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAGF,MAAM,CAACF,KAAK,CAAC,GAAG,CAAC;QACtC,OAAO,CAACG,GAAG,EAAEC,KAAK,CAAC;MACrB,CAAC,CAAC,CACH;IACH;EACF,CAAC;AAEL,CAAC;AAAA"}

@@ -1,1 +0,1 @@

{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;wCAmZpB,MAAM,MAAM,CAAC,WACnB,OAAO;AAFlB,wBA8FG"}
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;wCAqZpB,MAAM,MAAM,CAAC,WACnB,OAAO;AAFlB,wBA8FG"}

@@ -29,5 +29,5 @@ "use strict";

var _validate = require("./validate");
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;

@@ -133,3 +133,3 @@ };

if (conflicts.length > 0) {
let warnMessage = `The directory ${_chalk().default.bold(directory)} contains files that will be overwritten:\n`;
let warnMessage = `The directory ${_picocolors().default.bold(directory)} contains files that will be overwritten:\n`;
for (const conflict of conflicts) {

@@ -249,7 +249,7 @@ warnMessage += ` ${conflict}\n`;

const installPodsValue = String(installCocoaPods);
const reactNativePath = _path().default.dirname(require.resolve('react-native', {
paths: [projectDirectory]
}));
try {
if (installPodsValue === 'true') {
const reactNativePath = _path().default.dirname(require.resolve('react-native', {
paths: [projectDirectory]
}));
didInstallPods = true;

@@ -271,6 +271,9 @@ await (0, _cliConfigApple().runCodegen)({

name: 'installCocoapods',
message: `Do you want to install CocoaPods now? ${_chalk().default.reset.dim('Needed for running iOS project')}`
message: `Do you want to install CocoaPods now? ${_picocolors().default.reset(_picocolors().default.dim('Needed for running iOS project'))}`
});
didInstallPods = installCocoapods;
if (installCocoapods) {
const reactNativePath = _path().default.dirname(require.resolve('react-native', {
paths: [projectDirectory]
}));
await (0, _cliConfigApple().runCodegen)({

@@ -288,3 +291,4 @@ root: projectDirectory,

} catch (error) {
_cliTools().logger.error(`Installing Cocoapods failed. This doesn't affect project initialization and you can safely proceed. However, you will need to install Cocoapods manually when running iOS, follow additional steps in "Run instructions for iOS" section.\n\nError: ${error.message}\n`);
_cliTools().logger.error('\nInstalling Cocoapods failed. This doesn\'t affect project initialization and you can safely proceed. However, you will need to install Cocoapods manually when running iOS, follow additional steps in "Run instructions for iOS" section.\n');
_cliTools().logger.error(error.message);
}

@@ -412,3 +416,3 @@ }

if (_semver().default.gte(semverVersion, _constants.TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION)) {
_cliTools().logger.warn(`Use ${_chalk().default.bold('--template')} and ${_chalk().default.bold('--version')} only if you know what you're doing. Here be dragons 🐉.`);
_cliTools().logger.warn(`Use ${_picocolors().default.bold('--template')} and ${_picocolors().default.bold('--version')} only if you know what you're doing. Here be dragons 🐉.`);
} else {

@@ -450,2 +454,2 @@ throw new _TemplateAndVersionError.default(options.template);

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/init.js.map
//# sourceMappingURL=init.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["DEFAULT_VERSION","YARN_VERSION","bumpYarnVersion","root","yarnVersion","semver","parse","getYarnVersionIfAvailable","setVersionArgs","major","minor","executeCommand","silent","logger","isVerbose","e","debug","doesDirectoryExist","dir","fs","existsSync","getConflictsForDirectory","directory","readdirSync","setProjectDirectory","replaceDirectory","directoryExists","DirectoryAlreadyExistsError","deleteDirectory","conflicts","length","warnMessage","chalk","bold","conflict","warn","replace","prompt","type","name","message","removeSync","mkdirSync","recursive","process","chdir","error","CLIError","cwd","getTemplateName","Object","keys","JSON","readFileSync","path","join","dependencies","setEmptyHashForCachedDependencies","projectName","cacheManager","set","createHash","update","digest","createFromTemplate","shouldBumpYarnVersion","templateUri","pm","projectTitle","skipInstall","packageName","installCocoaPods","yarnConfigOptions","version","env","CI","log","banner","undefined","didInstallPods","String","packageManager","userAgentPM","userAgentPackageManager","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","platform","installPodsValue","reactNativePath","dirname","require","resolve","paths","runCodegen","iosFolderPath","installPods","installCocoapods","reset","dim","Error","exit","PackageManager","installAll","checkPackageManagerAvailability","getBunVersionIfAvailable","getNpmVersionIfAvailable","createProject","options","createTemplateUri","title","userAgent","npm_config_user_agent","startsWith","initialize","projName","validateProjectName","updatedVersion","npmResolveConcreteVersion","platformName","template","semverVersion","coerce","gte","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION","TemplateAndVersionError","directoryName","relative","projectFolder","shouldCreateGitRepository","isGitAvailable","checkGitInstallation","isFolderGitRepo","checkIfFolderIsGitRepo","skipGitInit","createGitRepository","printRunInstructions","showPodsInstructions"],"sources":["../../../src/commands/init/init.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport fs, {readdirSync} from 'fs-extra';\nimport {validateProjectName} from './validate';\nimport chalk from 'chalk';\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-apple';\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 {\n getNpmVersionIfAvailable,\n npmResolveConcreteVersion,\n} from '../../tools/npm';\nimport {getYarnVersionIfAvailable} from '../../tools/yarn';\nimport {createHash} from 'crypto';\nimport {\n createGitRepository,\n checkGitInstallation,\n checkIfFolderIsGitRepo,\n} from './git';\nimport semver from 'semver';\nimport {executeCommand} from '../../tools/executeCommand';\nimport DirectoryAlreadyExistsError from './errors/DirectoryAlreadyExistsError';\nimport {createTemplateUri} from './version';\nimport {TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION} from './constants';\nimport type {Options} from './types';\nimport {runCodegen} from '@react-native-community/cli-config-apple';\n\nconst DEFAULT_VERSION = 'latest';\n\ninterface TemplateOptions {\n projectName: string;\n shouldBumpYarnVersion: boolean;\n templateUri: string;\n pm?: PackageManager.PackageManager;\n directory: string;\n projectTitle?: string;\n skipInstall?: boolean;\n packageName?: string;\n installCocoaPods?: string | boolean;\n version: string;\n replaceDirectory?: string | boolean;\n yarnConfigOptions?: Record<string, string>;\n}\n\ninterface TemplateReturnType {\n didInstallPods?: boolean;\n replaceDirectory?: string | boolean;\n}\n\n// Here we are defining explicit version of Yarn to be used in the new project because in some cases providing `3.x` don't work.\nconst YARN_VERSION = '3.6.4';\n\nconst bumpYarnVersion = async (root: string) => {\n try {\n let yarnVersion = semver.parse(getYarnVersionIfAvailable());\n\n if (yarnVersion) {\n // `yarn set` is unsupported until 1.22, however it's a alias (yarnpkg/yarn/pull/7862) calling `policies set-version`.\n let setVersionArgs = ['set', 'version', YARN_VERSION];\n if (yarnVersion.major === 1 && yarnVersion.minor < 22) {\n setVersionArgs = ['policies', 'set-version', YARN_VERSION];\n }\n await executeCommand('yarn', setVersionArgs, {\n root,\n silent: !logger.isVerbose(),\n });\n\n // React Native doesn't support PnP, so we need to set nodeLinker to node-modules. Read more here: https://github.com/react-native-community/cli/issues/27#issuecomment-1772626767\n await executeCommand(\n 'yarn',\n ['config', 'set', 'nodeLinker', 'node-modules'],\n {root, silent: !logger.isVerbose()},\n );\n }\n } catch (e) {\n logger.debug(e as string);\n }\n};\n\nfunction doesDirectoryExist(dir: string) {\n return fs.existsSync(dir);\n}\n\nfunction getConflictsForDirectory(directory: string) {\n return readdirSync(directory);\n}\n\nasync function setProjectDirectory(\n directory: string,\n replaceDirectory: string,\n) {\n const directoryExists = doesDirectoryExist(directory);\n\n if (replaceDirectory === 'false' && directoryExists) {\n throw new DirectoryAlreadyExistsError(directory);\n }\n\n let deleteDirectory = false;\n\n if (replaceDirectory === 'true' && directoryExists) {\n deleteDirectory = true;\n } else if (directoryExists) {\n const conflicts = getConflictsForDirectory(directory);\n\n if (conflicts.length > 0) {\n let warnMessage = `The directory ${chalk.bold(\n directory,\n )} contains files that will be overwritten:\\n`;\n\n for (const conflict of conflicts) {\n warnMessage += ` ${conflict}\\n`;\n }\n\n logger.warn(warnMessage);\n\n const {replace} = await prompt({\n type: 'confirm',\n name: 'replace',\n message: 'Do you want to replace existing files?',\n });\n\n deleteDirectory = replace;\n\n if (!replace) {\n throw new DirectoryAlreadyExistsError(directory);\n }\n }\n }\n\n try {\n if (deleteDirectory) {\n fs.removeSync(directory);\n }\n\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 shouldBumpYarnVersion,\n templateUri,\n pm,\n directory,\n projectTitle,\n skipInstall,\n packageName,\n installCocoaPods,\n replaceDirectory,\n yarnConfigOptions,\n version,\n}: TemplateOptions): Promise<TemplateReturnType> {\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(version !== DEFAULT_VERSION ? version : undefined));\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 (npm)\n packageManager = userAgentPM || '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(\n directory,\n String(replaceDirectory),\n );\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 yarnConfigOptions,\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 if (packageManager === 'yarn' && shouldBumpYarnVersion) {\n await bumpYarnVersion(projectDirectory);\n }\n\n loader.succeed();\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 const reactNativePath = path.dirname(\n require.resolve('react-native', {paths: [projectDirectory]}),\n );\n\n try {\n if (installPodsValue === 'true') {\n didInstallPods = true;\n await runCodegen({\n root: projectDirectory,\n platform: 'ios',\n reactNativePath,\n iosFolderPath: path.join(projectDirectory, 'ios'),\n });\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 'Needed for running iOS project',\n )}`,\n });\n didInstallPods = installCocoapods;\n\n if (installCocoapods) {\n await runCodegen({\n root: projectDirectory,\n platform: 'ios',\n reactNativePath,\n iosFolderPath: path.join(projectDirectory, 'ios'),\n });\n await installPods(loader, {});\n loader.succeed();\n setEmptyHashForCachedDependencies(projectName);\n }\n }\n } catch (error) {\n logger.error(\n `Installing Cocoapods failed. This doesn't affect project initialization and you can safely proceed. However, you will need to install Cocoapods manually when running iOS, follow additional steps in \"Run instructions for iOS\" section.\\n\\nError: ${\n (error as Error).message as string\n }\\n`,\n );\n }\n }\n } else {\n didInstallPods = false;\n loader.succeed('Dependencies installation skipped');\n }\n\n fs.removeSync(templateSourceDir);\n } catch (e) {\n logger.log('\\n');\n if (e instanceof CLIError) {\n logger.error(e.message);\n } else if (e instanceof Error) {\n logger.error(`An unexpected error occurred: ${e.message}.`);\n }\n didInstallPods = false;\n logger.debug(e as any);\n fs.removeSync(templateSourceDir);\n process.exit(1);\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\nasync function createProject(\n projectName: string,\n directory: string,\n version: string,\n shouldBumpYarnVersion: boolean,\n options: Options,\n): Promise<TemplateReturnType> {\n // Handle these cases (when community template is published and react-native >= 0.75\n //\n // +==================================================================+==========+===================+\n // | Arguments | Template | React Native |\n // +==================================================================+==========+===================+\n // | <None> | 0.74.x | 0.74.5 (latest) |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --version next | 0.75.x | 0.75.0-rc.1 (next)|\n // +------------------------------------------------------------------+----------+-------------------+\n // | --version 0.75.0 | 0.75.x | 0.75.0 |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --template @react-native-community/template@0.75.1 | 0.75.1 | latest |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --template @react-native-community/template@0.75.1 --version 0.75| 0.75.1 | 0.75.x |\n // +------------------------------------------------------------------+----------+-------------------+\n //\n // 1. If you specify `--version 0.75.0` and `@react-native-community/template@0.75.0` is *NOT*\n // published, then `init` will exit and suggest explicitly using the `--template` argument.\n //\n // 2. `--template` will always win over `--version` for the template.\n //\n // 3. For version < 0.75, the template ships with react-native.\n const templateUri = await createTemplateUri(options, version);\n\n logger.debug(`Template: '${templateUri}'`);\n\n return createFromTemplate({\n projectName,\n shouldBumpYarnVersion,\n templateUri,\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 replaceDirectory: options.replaceDirectory,\n yarnConfigOptions: options.yarnConfigOptions,\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<string>,\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 let version = options.version ?? DEFAULT_VERSION;\n\n try {\n const updatedVersion = await npmResolveConcreteVersion(\n options.platformName ?? 'react-native',\n version,\n );\n logger.debug(`Mapped: ${version} -> ${updatedVersion}`);\n version = updatedVersion;\n } catch (e) {\n logger.debug(\n `Failed to get concrete version from '${version}': `,\n e as any,\n );\n }\n\n // From 0.75 it actually is useful to be able to specify both the template and react-native version.\n // This should only be used by people who know what they're doing.\n if (!!options.template && !!options.version) {\n // 0.75.0-nightly-20240618-5df5ed1a8' -> 0.75.0\n // 0.75.0-rc.1 -> 0.75.0\n const semverVersion = semver.coerce(version)?.version ?? version;\n if (semver.gte(semverVersion, TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION)) {\n logger.warn(\n `Use ${chalk.bold('--template')} and ${chalk.bold(\n '--version',\n )} only if you know what you're doing. Here be dragons 🐉.`,\n );\n } else {\n throw new TemplateAndVersionError(options.template);\n }\n }\n\n const root = process.cwd();\n\n const directoryName = path.relative(root, options.directory || projectName);\n const projectFolder = path.join(root, directoryName);\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 let shouldBumpYarnVersion = true;\n let shouldCreateGitRepository = false;\n\n const isGitAvailable = await checkGitInstallation();\n\n if (isGitAvailable) {\n const isFolderGitRepo = await checkIfFolderIsGitRepo(projectFolder);\n\n if (isFolderGitRepo) {\n shouldBumpYarnVersion = false;\n } else {\n shouldCreateGitRepository = true; // Initialize git repo after creating project\n }\n } else {\n logger.warn(\n 'Git is not installed on your system. This might cause some features to work incorrectly.',\n );\n }\n\n const {didInstallPods} = await createProject(\n projectName,\n directoryName,\n version,\n shouldBumpYarnVersion,\n options,\n );\n\n if (shouldCreateGitRepository && !options.skipGitInit) {\n await createGitRepository(projectFolder);\n }\n\n printRunInstructions(projectFolder, projectName, {\n showPodsInstructions: !didInstallPods,\n });\n});\n"],"mappings":"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"}
{"version":3,"file":"init.js","names":["DEFAULT_VERSION","YARN_VERSION","bumpYarnVersion","root","yarnVersion","semver","parse","getYarnVersionIfAvailable","setVersionArgs","major","minor","executeCommand","silent","logger","isVerbose","e","debug","doesDirectoryExist","dir","fs","existsSync","getConflictsForDirectory","directory","readdirSync","setProjectDirectory","replaceDirectory","directoryExists","DirectoryAlreadyExistsError","deleteDirectory","conflicts","length","warnMessage","pico","bold","conflict","warn","replace","prompt","type","name","message","removeSync","mkdirSync","recursive","process","chdir","error","CLIError","cwd","getTemplateName","Object","keys","JSON","readFileSync","path","join","dependencies","setEmptyHashForCachedDependencies","projectName","cacheManager","set","createHash","update","digest","createFromTemplate","shouldBumpYarnVersion","templateUri","pm","projectTitle","skipInstall","packageName","installCocoaPods","yarnConfigOptions","version","env","CI","log","banner","undefined","didInstallPods","String","packageManager","userAgentPM","userAgentPackageManager","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","platform","installPodsValue","reactNativePath","dirname","require","resolve","paths","runCodegen","iosFolderPath","installPods","installCocoapods","reset","dim","Error","exit","PackageManager","installAll","checkPackageManagerAvailability","getBunVersionIfAvailable","getNpmVersionIfAvailable","createProject","options","createTemplateUri","title","userAgent","npm_config_user_agent","startsWith","initialize","projName","validateProjectName","updatedVersion","npmResolveConcreteVersion","platformName","template","semverVersion","coerce","gte","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION","TemplateAndVersionError","directoryName","relative","projectFolder","shouldCreateGitRepository","isGitAvailable","checkGitInstallation","isFolderGitRepo","checkIfFolderIsGitRepo","skipGitInit","createGitRepository","printRunInstructions","showPodsInstructions"],"sources":["../../../src/commands/init/init.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport fs, {readdirSync} from 'fs-extra';\nimport {validateProjectName} from './validate';\nimport pico from 'picocolors';\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-apple';\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 {\n getNpmVersionIfAvailable,\n npmResolveConcreteVersion,\n} from '../../tools/npm';\nimport {getYarnVersionIfAvailable} from '../../tools/yarn';\nimport {createHash} from 'crypto';\nimport {\n createGitRepository,\n checkGitInstallation,\n checkIfFolderIsGitRepo,\n} from './git';\nimport semver from 'semver';\nimport {executeCommand} from '../../tools/executeCommand';\nimport DirectoryAlreadyExistsError from './errors/DirectoryAlreadyExistsError';\nimport {createTemplateUri} from './version';\nimport {TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION} from './constants';\nimport type {Options} from './types';\nimport {runCodegen} from '@react-native-community/cli-config-apple';\n\nconst DEFAULT_VERSION = 'latest';\n\ninterface TemplateOptions {\n projectName: string;\n shouldBumpYarnVersion: boolean;\n templateUri: string;\n pm?: PackageManager.PackageManager;\n directory: string;\n projectTitle?: string;\n skipInstall?: boolean;\n packageName?: string;\n installCocoaPods?: string | boolean;\n version: string;\n replaceDirectory?: string | boolean;\n yarnConfigOptions?: Record<string, string>;\n}\n\ninterface TemplateReturnType {\n didInstallPods?: boolean;\n replaceDirectory?: string | boolean;\n}\n\n// Here we are defining explicit version of Yarn to be used in the new project because in some cases providing `3.x` don't work.\nconst YARN_VERSION = '3.6.4';\n\nconst bumpYarnVersion = async (root: string) => {\n try {\n let yarnVersion = semver.parse(getYarnVersionIfAvailable());\n\n if (yarnVersion) {\n // `yarn set` is unsupported until 1.22, however it's a alias (yarnpkg/yarn/pull/7862) calling `policies set-version`.\n let setVersionArgs = ['set', 'version', YARN_VERSION];\n if (yarnVersion.major === 1 && yarnVersion.minor < 22) {\n setVersionArgs = ['policies', 'set-version', YARN_VERSION];\n }\n await executeCommand('yarn', setVersionArgs, {\n root,\n silent: !logger.isVerbose(),\n });\n\n // React Native doesn't support PnP, so we need to set nodeLinker to node-modules. Read more here: https://github.com/react-native-community/cli/issues/27#issuecomment-1772626767\n await executeCommand(\n 'yarn',\n ['config', 'set', 'nodeLinker', 'node-modules'],\n {root, silent: !logger.isVerbose()},\n );\n }\n } catch (e) {\n logger.debug(e as string);\n }\n};\n\nfunction doesDirectoryExist(dir: string) {\n return fs.existsSync(dir);\n}\n\nfunction getConflictsForDirectory(directory: string) {\n return readdirSync(directory);\n}\n\nasync function setProjectDirectory(\n directory: string,\n replaceDirectory: string,\n) {\n const directoryExists = doesDirectoryExist(directory);\n\n if (replaceDirectory === 'false' && directoryExists) {\n throw new DirectoryAlreadyExistsError(directory);\n }\n\n let deleteDirectory = false;\n\n if (replaceDirectory === 'true' && directoryExists) {\n deleteDirectory = true;\n } else if (directoryExists) {\n const conflicts = getConflictsForDirectory(directory);\n\n if (conflicts.length > 0) {\n let warnMessage = `The directory ${pico.bold(\n directory,\n )} contains files that will be overwritten:\\n`;\n\n for (const conflict of conflicts) {\n warnMessage += ` ${conflict}\\n`;\n }\n\n logger.warn(warnMessage);\n\n const {replace} = await prompt({\n type: 'confirm',\n name: 'replace',\n message: 'Do you want to replace existing files?',\n });\n\n deleteDirectory = replace;\n\n if (!replace) {\n throw new DirectoryAlreadyExistsError(directory);\n }\n }\n }\n\n try {\n if (deleteDirectory) {\n fs.removeSync(directory);\n }\n\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 shouldBumpYarnVersion,\n templateUri,\n pm,\n directory,\n projectTitle,\n skipInstall,\n packageName,\n installCocoaPods,\n replaceDirectory,\n yarnConfigOptions,\n version,\n}: TemplateOptions): Promise<TemplateReturnType> {\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(version !== DEFAULT_VERSION ? version : undefined));\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 (npm)\n packageManager = userAgentPM || '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(\n directory,\n String(replaceDirectory),\n );\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 yarnConfigOptions,\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 if (packageManager === 'yarn' && shouldBumpYarnVersion) {\n await bumpYarnVersion(projectDirectory);\n }\n\n loader.succeed();\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 try {\n if (installPodsValue === 'true') {\n const reactNativePath = path.dirname(\n require.resolve('react-native', {paths: [projectDirectory]}),\n );\n didInstallPods = true;\n await runCodegen({\n root: projectDirectory,\n platform: 'ios',\n reactNativePath,\n iosFolderPath: path.join(projectDirectory, 'ios'),\n });\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? ${pico.reset(\n pico.dim('Needed for running iOS project'),\n )}`,\n });\n didInstallPods = installCocoapods;\n\n if (installCocoapods) {\n const reactNativePath = path.dirname(\n require.resolve('react-native', {paths: [projectDirectory]}),\n );\n await runCodegen({\n root: projectDirectory,\n platform: 'ios',\n reactNativePath,\n iosFolderPath: path.join(projectDirectory, 'ios'),\n });\n await installPods(loader, {});\n loader.succeed();\n setEmptyHashForCachedDependencies(projectName);\n }\n }\n } catch (error) {\n logger.error(\n '\\nInstalling Cocoapods failed. This doesn\\'t affect project initialization and you can safely proceed. However, you will need to install Cocoapods manually when running iOS, follow additional steps in \"Run instructions for iOS\" section.\\n',\n );\n logger.error((error as Error).message as string);\n }\n }\n } else {\n didInstallPods = false;\n loader.succeed('Dependencies installation skipped');\n }\n\n fs.removeSync(templateSourceDir);\n } catch (e) {\n logger.log('\\n');\n if (e instanceof CLIError) {\n logger.error(e.message);\n } else if (e instanceof Error) {\n logger.error(`An unexpected error occurred: ${e.message}.`);\n }\n didInstallPods = false;\n logger.debug(e as any);\n fs.removeSync(templateSourceDir);\n process.exit(1);\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\nasync function createProject(\n projectName: string,\n directory: string,\n version: string,\n shouldBumpYarnVersion: boolean,\n options: Options,\n): Promise<TemplateReturnType> {\n // Handle these cases (when community template is published and react-native >= 0.75\n //\n // +==================================================================+==========+===================+\n // | Arguments | Template | React Native |\n // +==================================================================+==========+===================+\n // | <None> | 0.74.x | 0.74.5 (latest) |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --version next | 0.75.x | 0.75.0-rc.1 (next)|\n // +------------------------------------------------------------------+----------+-------------------+\n // | --version 0.75.0 | 0.75.x | 0.75.0 |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --template @react-native-community/template@0.75.1 | 0.75.1 | latest |\n // +------------------------------------------------------------------+----------+-------------------+\n // | --template @react-native-community/template@0.75.1 --version 0.75| 0.75.1 | 0.75.x |\n // +------------------------------------------------------------------+----------+-------------------+\n //\n // 1. If you specify `--version 0.75.0` and `@react-native-community/template@0.75.0` is *NOT*\n // published, then `init` will exit and suggest explicitly using the `--template` argument.\n //\n // 2. `--template` will always win over `--version` for the template.\n //\n // 3. For version < 0.75, the template ships with react-native.\n const templateUri = await createTemplateUri(options, version);\n\n logger.debug(`Template: '${templateUri}'`);\n\n return createFromTemplate({\n projectName,\n shouldBumpYarnVersion,\n templateUri,\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 replaceDirectory: options.replaceDirectory,\n yarnConfigOptions: options.yarnConfigOptions,\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<string>,\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 let version = options.version ?? DEFAULT_VERSION;\n\n try {\n const updatedVersion = await npmResolveConcreteVersion(\n options.platformName ?? 'react-native',\n version,\n );\n logger.debug(`Mapped: ${version} -> ${updatedVersion}`);\n version = updatedVersion;\n } catch (e) {\n logger.debug(\n `Failed to get concrete version from '${version}': `,\n e as any,\n );\n }\n\n // From 0.75 it actually is useful to be able to specify both the template and react-native version.\n // This should only be used by people who know what they're doing.\n if (!!options.template && !!options.version) {\n // 0.75.0-nightly-20240618-5df5ed1a8' -> 0.75.0\n // 0.75.0-rc.1 -> 0.75.0\n const semverVersion = semver.coerce(version)?.version ?? version;\n if (semver.gte(semverVersion, TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION)) {\n logger.warn(\n `Use ${pico.bold('--template')} and ${pico.bold(\n '--version',\n )} only if you know what you're doing. Here be dragons 🐉.`,\n );\n } else {\n throw new TemplateAndVersionError(options.template);\n }\n }\n\n const root = process.cwd();\n\n const directoryName = path.relative(root, options.directory || projectName);\n const projectFolder = path.join(root, directoryName);\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 let shouldBumpYarnVersion = true;\n let shouldCreateGitRepository = false;\n\n const isGitAvailable = await checkGitInstallation();\n\n if (isGitAvailable) {\n const isFolderGitRepo = await checkIfFolderIsGitRepo(projectFolder);\n\n if (isFolderGitRepo) {\n shouldBumpYarnVersion = false;\n } else {\n shouldCreateGitRepository = true; // Initialize git repo after creating project\n }\n } else {\n logger.warn(\n 'Git is not installed on your system. This might cause some features to work incorrectly.',\n );\n }\n\n const {didInstallPods} = await createProject(\n projectName,\n directoryName,\n version,\n shouldBumpYarnVersion,\n options,\n );\n\n if (shouldCreateGitRepository && !options.skipGitInit) {\n await createGitRepository(projectFolder);\n }\n\n printRunInstructions(projectFolder, projectName, {\n showPodsInstructions: !didInstallPods,\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;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAKA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAoE;AAAA;AAAA;AAEpE,MAAMA,eAAe,GAAG,QAAQ;AAsBhC;AACA,MAAMC,YAAY,GAAG,OAAO;AAE5B,MAAMC,eAAe,GAAG,MAAOC,IAAY,IAAK;EAC9C,IAAI;IACF,IAAIC,WAAW,GAAGC,iBAAM,CAACC,KAAK,CAAC,IAAAC,+BAAyB,GAAE,CAAC;IAE3D,IAAIH,WAAW,EAAE;MACf;MACA,IAAII,cAAc,GAAG,CAAC,KAAK,EAAE,SAAS,EAAEP,YAAY,CAAC;MACrD,IAAIG,WAAW,CAACK,KAAK,KAAK,CAAC,IAAIL,WAAW,CAACM,KAAK,GAAG,EAAE,EAAE;QACrDF,cAAc,GAAG,CAAC,UAAU,EAAE,aAAa,EAAEP,YAAY,CAAC;MAC5D;MACA,MAAM,IAAAU,8BAAc,EAAC,MAAM,EAAEH,cAAc,EAAE;QAC3CL,IAAI;QACJS,MAAM,EAAE,CAACC,kBAAM,CAACC,SAAS;MAC3B,CAAC,CAAC;;MAEF;MACA,MAAM,IAAAH,8BAAc,EAClB,MAAM,EACN,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,CAAC,EAC/C;QAACR,IAAI;QAAES,MAAM,EAAE,CAACC,kBAAM,CAACC,SAAS;MAAE,CAAC,CACpC;IACH;EACF,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVF,kBAAM,CAACG,KAAK,CAACD,CAAC,CAAW;EAC3B;AACF,CAAC;AAED,SAASE,kBAAkB,CAACC,GAAW,EAAE;EACvC,OAAOC,kBAAE,CAACC,UAAU,CAACF,GAAG,CAAC;AAC3B;AAEA,SAASG,wBAAwB,CAACC,SAAiB,EAAE;EACnD,OAAO,IAAAC,sBAAW,EAACD,SAAS,CAAC;AAC/B;AAEA,eAAeE,mBAAmB,CAChCF,SAAiB,EACjBG,gBAAwB,EACxB;EACA,MAAMC,eAAe,GAAGT,kBAAkB,CAACK,SAAS,CAAC;EAErD,IAAIG,gBAAgB,KAAK,OAAO,IAAIC,eAAe,EAAE;IACnD,MAAM,IAAIC,oCAA2B,CAACL,SAAS,CAAC;EAClD;EAEA,IAAIM,eAAe,GAAG,KAAK;EAE3B,IAAIH,gBAAgB,KAAK,MAAM,IAAIC,eAAe,EAAE;IAClDE,eAAe,GAAG,IAAI;EACxB,CAAC,MAAM,IAAIF,eAAe,EAAE;IAC1B,MAAMG,SAAS,GAAGR,wBAAwB,CAACC,SAAS,CAAC;IAErD,IAAIO,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;MACxB,IAAIC,WAAW,GAAI,iBAAgBC,qBAAI,CAACC,IAAI,CAC1CX,SAAS,CACT,6CAA4C;MAE9C,KAAK,MAAMY,QAAQ,IAAIL,SAAS,EAAE;QAChCE,WAAW,IAAK,MAAKG,QAAS,IAAG;MACnC;MAEArB,kBAAM,CAACsB,IAAI,CAACJ,WAAW,CAAC;MAExB,MAAM;QAACK;MAAO,CAAC,GAAG,MAAM,IAAAC,kBAAM,EAAC;QAC7BC,IAAI,EAAE,SAAS;QACfC,IAAI,EAAE,SAAS;QACfC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFZ,eAAe,GAAGQ,OAAO;MAEzB,IAAI,CAACA,OAAO,EAAE;QACZ,MAAM,IAAIT,oCAA2B,CAACL,SAAS,CAAC;MAClD;IACF;EACF;EAEA,IAAI;IACF,IAAIM,eAAe,EAAE;MACnBT,kBAAE,CAACsB,UAAU,CAACnB,SAAS,CAAC;IAC1B;IAEAH,kBAAE,CAACuB,SAAS,CAACpB,SAAS,EAAE;MAACqB,SAAS,EAAE;IAAI,CAAC,CAAC;IAC1CC,OAAO,CAACC,KAAK,CAACvB,SAAS,CAAC;EAC1B,CAAC,CAAC,OAAOwB,KAAK,EAAE;IACd,MAAM,KAAIC,oBAAQ,EAChB,0DAA0D,EAC1DD,KAAK,CACN;EACH;EAEA,OAAOF,OAAO,CAACI,GAAG,EAAE;AACtB;AAEA,SAASC,eAAe,CAACD,GAAW,EAAE;EACpC;EACA;EACA;EACA,MAAMT,IAAI,GAAGW,MAAM,CAACC,IAAI,CACtBC,IAAI,CAAC9C,KAAK,CAACa,kBAAE,CAACkC,YAAY,CAACC,eAAI,CAACC,IAAI,CAACP,GAAG,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,CAClEQ,YAAY,CAChB,CAAC,CAAC,CAAC;EACJ,OAAOjB,IAAI;AACb;;AAEA;AACA,SAASkB,iCAAiC,CAACC,WAAmB,EAAE;EAC9DC,wBAAY,CAACC,GAAG,CACdF,WAAW,EACX,cAAc,EACd,IAAAG,oBAAU,EAAC,KAAK,CAAC,CAACC,MAAM,CAAC,EAAE,CAAC,CAACC,MAAM,CAAC,KAAK,CAAC,CAC3C;AACH;AAEA,eAAeC,kBAAkB,CAAC;EAChCN,WAAW;EACXO,qBAAqB;EACrBC,WAAW;EACXC,EAAE;EACF7C,SAAS;EACT8C,YAAY;EACZC,WAAW;EACXC,WAAW;EACXC,gBAAgB;EAChB9C,gBAAgB;EAChB+C,iBAAiB;EACjBC;AACe,CAAC,EAA+B;EAC/C5D,kBAAM,CAACG,KAAK,CAAC,0BAA0B,CAAC;EACxC;EACA,IAAI,CAAC4B,OAAO,CAAC8B,GAAG,CAACC,EAAE,EAAE;IACnB9D,kBAAM,CAAC+D,GAAG,CAAC,IAAAC,eAAM,EAACJ,OAAO,KAAKzE,eAAe,GAAGyE,OAAO,GAAGK,SAAS,CAAC,CAAC;EACvE;EACA,IAAIC,cAAc,GAAGC,MAAM,CAACT,gBAAgB,CAAC,KAAK,MAAM;EACxD,IAAIU,cAAc,GAAGd,EAAE;EAEvB,IAAIA,EAAE,EAAE;IACNc,cAAc,GAAGd,EAAE;EACrB,CAAC,MAAM;IACL,MAAMe,WAAW,GAAGC,uBAAuB,EAAE;IAC7C;IACAF,cAAc,GAAGC,WAAW,IAAI,KAAK;EACvC;;EAEA;EACAvB,wBAAY,CAACyB,kBAAkB,CAAC1B,WAAW,CAAC;EAE5C,MAAM2B,gBAAgB,GAAG,MAAM7D,mBAAmB,CAChDF,SAAS,EACT0D,MAAM,CAACvD,gBAAgB,CAAC,CACzB;EAED,MAAM6D,MAAM,GAAG,IAAAC,qBAAS,EAAC;IAACC,IAAI,EAAE;EAAsB,CAAC,CAAC;EACxD,MAAMC,iBAAiB,GAAGtE,kBAAE,CAACuE,WAAW,CACtCpC,eAAI,CAACC,IAAI,CAACoC,aAAE,CAACC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAC/C;EAED,IAAI;IACFN,MAAM,CAACO,KAAK,EAAE;IAEd,MAAM,IAAAC,gCAAsB,EAC1B5B,WAAW,EACXuB,iBAAiB,EACjBR,cAAc,EACdT,iBAAiB,CAClB;IAEDc,MAAM,CAACS,OAAO,EAAE;IAChBT,MAAM,CAACO,KAAK,CAAC,kBAAkB,CAAC;IAEhC,MAAMG,YAAY,GAAG/C,eAAe,CAACwC,iBAAiB,CAAC;IACvD,MAAMQ,cAAc,GAAG,IAAAC,2BAAiB,EAACF,YAAY,EAAEP,iBAAiB,CAAC;IACzE,MAAM,IAAAU,sBAAY,EAChBH,YAAY,EACZC,cAAc,CAACG,WAAW,EAC1BX,iBAAiB,CAClB;IAEDH,MAAM,CAACS,OAAO,EAAE;IAChBT,MAAM,CAACO,KAAK,CAAC,qBAAqB,CAAC;IAEnC,MAAM,IAAAQ,yCAA2B,EAAC;MAChC3C,WAAW;MACXU,YAAY;MACZkC,eAAe,EAAEL,cAAc,CAACK,eAAe;MAC/CC,gBAAgB,EAAEN,cAAc,CAACO,gBAAgB;MACjDlC;IACF,CAAC,CAAC;IAEF,IAAIW,cAAc,KAAK,MAAM,IAAIhB,qBAAqB,EAAE;MACtD,MAAM/D,eAAe,CAACmF,gBAAgB,CAAC;IACzC;IAEAC,MAAM,CAACS,OAAO,EAAE;IAChB,MAAM;MAACU;IAAc,CAAC,GAAGR,cAAc;IACvC,IAAIQ,cAAc,EAAE;MAClBnB,MAAM,CAACoB,IAAI,CAAC,6BAA6B,CAAC;MAC1C,MAAM,IAAAC,+BAAqB,EACzBX,YAAY,EACZS,cAAc,EACdhB,iBAAiB,CAClB;IACH;IAEA,IAAI,CAACpB,WAAW,EAAE;MAChB,MAAMuC,mBAAmB,CAAC;QACxB3B,cAAc;QACdK,MAAM;QACNnF,IAAI,EAAEkF;MACR,CAAC,CAAC;MAEF,IAAIzC,OAAO,CAACiE,QAAQ,KAAK,QAAQ,EAAE;QACjC,MAAMC,gBAAgB,GAAG9B,MAAM,CAACT,gBAAgB,CAAC;QAEjD,IAAI;UACF,IAAIuC,gBAAgB,KAAK,MAAM,EAAE;YAC/B,MAAMC,eAAe,GAAGzD,eAAI,CAAC0D,OAAO,CAClCC,OAAO,CAACC,OAAO,CAAC,cAAc,EAAE;cAACC,KAAK,EAAE,CAAC9B,gBAAgB;YAAC,CAAC,CAAC,CAC7D;YACDN,cAAc,GAAG,IAAI;YACrB,MAAM,IAAAqC,4BAAU,EAAC;cACfjH,IAAI,EAAEkF,gBAAgB;cACtBwB,QAAQ,EAAE,KAAK;cACfE,eAAe;cACfM,aAAa,EAAE/D,eAAI,CAACC,IAAI,CAAC8B,gBAAgB,EAAE,KAAK;YAClD,CAAC,CAAC;YACF,MAAM,IAAAiC,+BAAW,EAAChC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7BA,MAAM,CAACS,OAAO,EAAE;YAChBtC,iCAAiC,CAACC,WAAW,CAAC;UAChD,CAAC,MAAM,IAAIoD,gBAAgB,KAAK,WAAW,EAAE;YAC3C,MAAM;cAACS;YAAgB,CAAC,GAAG,MAAM,IAAAlF,kBAAM,EAAC;cACtCC,IAAI,EAAE,SAAS;cACfC,IAAI,EAAE,kBAAkB;cACxBC,OAAO,EAAG,yCAAwCR,qBAAI,CAACwF,KAAK,CAC1DxF,qBAAI,CAACyF,GAAG,CAAC,gCAAgC,CAAC,CAC1C;YACJ,CAAC,CAAC;YACF1C,cAAc,GAAGwC,gBAAgB;YAEjC,IAAIA,gBAAgB,EAAE;cACpB,MAAMR,eAAe,GAAGzD,eAAI,CAAC0D,OAAO,CAClCC,OAAO,CAACC,OAAO,CAAC,cAAc,EAAE;gBAACC,KAAK,EAAE,CAAC9B,gBAAgB;cAAC,CAAC,CAAC,CAC7D;cACD,MAAM,IAAA+B,4BAAU,EAAC;gBACfjH,IAAI,EAAEkF,gBAAgB;gBACtBwB,QAAQ,EAAE,KAAK;gBACfE,eAAe;gBACfM,aAAa,EAAE/D,eAAI,CAACC,IAAI,CAAC8B,gBAAgB,EAAE,KAAK;cAClD,CAAC,CAAC;cACF,MAAM,IAAAiC,+BAAW,EAAChC,MAAM,EAAE,CAAC,CAAC,CAAC;cAC7BA,MAAM,CAACS,OAAO,EAAE;cAChBtC,iCAAiC,CAACC,WAAW,CAAC;YAChD;UACF;QACF,CAAC,CAAC,OAAOZ,KAAK,EAAE;UACdjC,kBAAM,CAACiC,KAAK,CACV,gPAAgP,CACjP;UACDjC,kBAAM,CAACiC,KAAK,CAAEA,KAAK,CAAWN,OAAO,CAAW;QAClD;MACF;IACF,CAAC,MAAM;MACLuC,cAAc,GAAG,KAAK;MACtBO,MAAM,CAACS,OAAO,CAAC,mCAAmC,CAAC;IACrD;IAEA5E,kBAAE,CAACsB,UAAU,CAACgD,iBAAiB,CAAC;EAClC,CAAC,CAAC,OAAO1E,CAAC,EAAE;IACVF,kBAAM,CAAC+D,GAAG,CAAC,IAAI,CAAC;IAChB,IAAI7D,CAAC,YAAYgC,oBAAQ,EAAE;MACzBlC,kBAAM,CAACiC,KAAK,CAAC/B,CAAC,CAACyB,OAAO,CAAC;IACzB,CAAC,MAAM,IAAIzB,CAAC,YAAY2G,KAAK,EAAE;MAC7B7G,kBAAM,CAACiC,KAAK,CAAE,iCAAgC/B,CAAC,CAACyB,OAAQ,GAAE,CAAC;IAC7D;IACAuC,cAAc,GAAG,KAAK;IACtBlE,kBAAM,CAACG,KAAK,CAACD,CAAC,CAAQ;IACtBI,kBAAE,CAACsB,UAAU,CAACgD,iBAAiB,CAAC;IAChC7C,OAAO,CAAC+E,IAAI,CAAC,CAAC,CAAC;EACjB;EAEA,OAAO;IAAC5C;EAAc,CAAC;AACzB;AAEA,eAAe6B,mBAAmB,CAAC;EACjC3B,cAAc;EACdK,MAAM;EACNnF;AAKF,CAAC,EAAE;EACDmF,MAAM,CAACO,KAAK,CAAC,yBAAyB,CAAC;EAEvC,MAAM+B,cAAc,CAACC,UAAU,CAAC;IAC9B5C,cAAc;IACdrE,MAAM,EAAE,IAAI;IACZT;EACF,CAAC,CAAC;EAEFmF,MAAM,CAACS,OAAO,EAAE;AAClB;AAEA,SAAS+B,+BAA+B,CACtC7C,cAA6C,EAC7C;EACA,IAAIA,cAAc,KAAK,KAAK,EAAE;IAC5B,OAAO,IAAA8C,6BAAwB,GAAE;EACnC,CAAC,MAAM,IAAI9C,cAAc,KAAK,KAAK,EAAE;IACnC,OAAO,IAAA+C,6BAAwB,GAAE;EACnC,CAAC,MAAM,IAAI/C,cAAc,KAAK,MAAM,EAAE;IACpC,OAAO,IAAA1E,+BAAyB,GAAE;EACpC;EAEA,OAAO,KAAK;AACd;AAEA,eAAe0H,aAAa,CAC1BvE,WAAmB,EACnBpC,SAAiB,EACjBmD,OAAe,EACfR,qBAA8B,EAC9BiE,OAAgB,EACa;EAC7B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMhE,WAAW,GAAG,MAAM,IAAAiE,0BAAiB,EAACD,OAAO,EAAEzD,OAAO,CAAC;EAE7D5D,kBAAM,CAACG,KAAK,CAAE,cAAakD,WAAY,GAAE,CAAC;EAE1C,OAAOF,kBAAkB,CAAC;IACxBN,WAAW;IACXO,qBAAqB;IACrBC,WAAW;IACXC,EAAE,EAAE+D,OAAO,CAAC/D,EAAE;IACd7C,SAAS;IACT8C,YAAY,EAAE8D,OAAO,CAACE,KAAK;IAC3B/D,WAAW,EAAE6D,OAAO,CAAC7D,WAAW;IAChCC,WAAW,EAAE4D,OAAO,CAAC5D,WAAW;IAChCC,gBAAgB,EAAE2D,OAAO,CAACZ,WAAW;IACrC7C,OAAO;IACPhD,gBAAgB,EAAEyG,OAAO,CAACzG,gBAAgB;IAC1C+C,iBAAiB,EAAE0D,OAAO,CAAC1D;EAC7B,CAAC,CAAC;AACJ;AAEA,SAASW,uBAAuB,GAAG;EACjC,MAAMkD,SAAS,GAAGzF,OAAO,CAAC8B,GAAG,CAAC4D,qBAAqB;EAEnD,IAAID,SAAS,IAAIA,SAAS,CAACE,UAAU,CAAC,KAAK,CAAC,EAAE;IAC5C,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb;AAAC,IAE8BC,UAAU,GAAzB,eAAeA,UAAU,CACvC,CAAC9E,WAAW,CAAgB,EAC5BwE,OAAgB,EAChB;EACA,IAAI,CAACxE,WAAW,EAAE;IAChB,MAAM;MAAC+E;IAAQ,CAAC,GAAG,MAAM,IAAApG,kBAAM,EAAC;MAC9BC,IAAI,EAAE,MAAM;MACZC,IAAI,EAAE,UAAU;MAChBC,OAAO,EAAE;IACX,CAAC,CAAC;IACFkB,WAAW,GAAG+E,QAAQ;EACxB;EAEA,IAAAC,6BAAmB,EAAChF,WAAW,CAAC;EAEhC,IAAIe,OAAO,GAAGyD,OAAO,CAACzD,OAAO,IAAIzE,eAAe;EAEhD,IAAI;IACF,MAAM2I,cAAc,GAAG,MAAM,IAAAC,8BAAyB,EACpDV,OAAO,CAACW,YAAY,IAAI,cAAc,EACtCpE,OAAO,CACR;IACD5D,kBAAM,CAACG,KAAK,CAAE,WAAUyD,OAAQ,OAAMkE,cAAe,EAAC,CAAC;IACvDlE,OAAO,GAAGkE,cAAc;EAC1B,CAAC,CAAC,OAAO5H,CAAC,EAAE;IACVF,kBAAM,CAACG,KAAK,CACT,wCAAuCyD,OAAQ,KAAI,EACpD1D,CAAC,CACF;EACH;;EAEA;EACA;EACA,IAAI,CAAC,CAACmH,OAAO,CAACY,QAAQ,IAAI,CAAC,CAACZ,OAAO,CAACzD,OAAO,EAAE;IAAA;IAC3C;IACA;IACA,MAAMsE,aAAa,GAAG,mBAAA1I,iBAAM,CAAC2I,MAAM,CAACvE,OAAO,CAAC,mDAAtB,eAAwBA,OAAO,KAAIA,OAAO;IAChE,IAAIpE,iBAAM,CAAC4I,GAAG,CAACF,aAAa,EAAEG,kDAAuC,CAAC,EAAE;MACtErI,kBAAM,CAACsB,IAAI,CACR,OAAMH,qBAAI,CAACC,IAAI,CAAC,YAAY,CAAE,QAAOD,qBAAI,CAACC,IAAI,CAC7C,WAAW,CACX,0DAAyD,CAC5D;IACH,CAAC,MAAM;MACL,MAAM,IAAIkH,gCAAuB,CAACjB,OAAO,CAACY,QAAQ,CAAC;IACrD;EACF;EAEA,MAAM3I,IAAI,GAAGyC,OAAO,CAACI,GAAG,EAAE;EAE1B,MAAMoG,aAAa,GAAG9F,eAAI,CAAC+F,QAAQ,CAAClJ,IAAI,EAAE+H,OAAO,CAAC5G,SAAS,IAAIoC,WAAW,CAAC;EAC3E,MAAM4F,aAAa,GAAGhG,eAAI,CAACC,IAAI,CAACpD,IAAI,EAAEiJ,aAAa,CAAC;EAEpD,IAAIlB,OAAO,CAAC/D,EAAE,IAAI,CAAC2D,+BAA+B,CAACI,OAAO,CAAC/D,EAAE,CAAC,EAAE;IAC9DtD,kBAAM,CAACiC,KAAK,CACV,uHAAuH,CACxH;IACD;EACF;EAEA,IAAImB,qBAAqB,GAAG,IAAI;EAChC,IAAIsF,yBAAyB,GAAG,KAAK;EAErC,MAAMC,cAAc,GAAG,MAAM,IAAAC,yBAAoB,GAAE;EAEnD,IAAID,cAAc,EAAE;IAClB,MAAME,eAAe,GAAG,MAAM,IAAAC,2BAAsB,EAACL,aAAa,CAAC;IAEnE,IAAII,eAAe,EAAE;MACnBzF,qBAAqB,GAAG,KAAK;IAC/B,CAAC,MAAM;MACLsF,yBAAyB,GAAG,IAAI,CAAC,CAAC;IACpC;EACF,CAAC,MAAM;IACL1I,kBAAM,CAACsB,IAAI,CACT,0FAA0F,CAC3F;EACH;EAEA,MAAM;IAAC4C;EAAc,CAAC,GAAG,MAAMkD,aAAa,CAC1CvE,WAAW,EACX0F,aAAa,EACb3E,OAAO,EACPR,qBAAqB,EACrBiE,OAAO,CACR;EAED,IAAIqB,yBAAyB,IAAI,CAACrB,OAAO,CAAC0B,WAAW,EAAE;IACrD,MAAM,IAAAC,wBAAmB,EAACP,aAAa,CAAC;EAC1C;EAEA,IAAAQ,6BAAoB,EAACR,aAAa,EAAE5F,WAAW,EAAE;IAC/CqG,oBAAoB,EAAE,CAAChF;EACzB,CAAC,CAAC;AACJ,CAAC;AAAA"}

@@ -28,5 +28,5 @@ "use strict";

}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;

@@ -64,3 +64,3 @@ };

iosInstructions = `
${_chalk().default.cyan(`Run instructions for ${_chalk().default.bold('iOS')}`)}:
${_picocolors().default.cyan(`Run instructions for ${_picocolors().default.bold('iOS')}`)}:
• cd "${projectDir}${options.showPodsInstructions ? '/ios' : ''}"

@@ -74,3 +74,3 @@ ${options.showPodsInstructions ? `

• npx react-native run-ios
${_chalk().default.dim('- or -')}
${_picocolors().default.dim('- or -')}
• Open ${relativeXcodeProjectPath} in Xcode or run "xed -b ios"

@@ -80,4 +80,4 @@ • Hit the Run button

desktopInstructions = `
${_chalk().default.magenta(`Run instructions for ${_chalk().default.bold('macOS')}`)}:
• See ${_chalk().default.underline('https://aka.ms/ReactNativeGuideMacOS')} for the latest up-to-date instructions.
${_picocolors().default.magenta(`Run instructions for ${_picocolors().default.bold('macOS')}`)}:
• See ${_picocolors().default.underline('https://microsoft.github.io/react-native-macos')} for the latest up-to-date instructions.
`;

@@ -87,8 +87,8 @@ }

desktopInstructions = `
${_chalk().default.cyan(`Run instructions for ${_chalk().default.bold('Windows')}`)}:
• See ${_chalk().default.underline('https://aka.ms/ReactNativeGuideWindows')} for the latest up-to-date instructions.
${_picocolors().default.cyan(`Run instructions for ${_picocolors().default.bold('Windows')}`)}:
• See ${_picocolors().default.underline('https://microsoft.github.io/react-native-windows')} for the latest up-to-date instructions.
`;
}
const androidInstructions = `
${_chalk().default.green(`Run instructions for ${_chalk().default.bold('Android')}`)}:
${_picocolors().default.green(`Run instructions for ${_picocolors().default.bold('Android')}`)}:
• Have an Android emulator running (quickest way to get started), or a device connected.

@@ -104,2 +104,2 @@ • cd "${projectDir}" && npx react-native run-android

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/printRunInstructions.js.map
//# sourceMappingURL=printRunInstructions.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["printRunInstructions","projectDir","projectName","options","showPodsInstructions","iosInstructions","desktopInstructions","process","platform","iosProjectDir","path","resolve","iosPodsFile","isUsingPods","fs","existsSync","relativeXcodeProjectPath","relative","chalk","cyan","bold","dim","magenta","underline","androidInstructions","green","logger","log"],"sources":["../../../src/commands/init/printRunInstructions.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport path from 'path';\nimport fs from 'fs';\nimport process from 'process';\nimport chalk from 'chalk';\nimport {logger} from '@react-native-community/cli-tools';\n\ninterface Options {\n showPodsInstructions?: boolean;\n}\n\nfunction printRunInstructions(\n projectDir: string,\n projectName: string,\n options: Options = {\n showPodsInstructions: false,\n },\n) {\n let iosInstructions = '';\n let desktopInstructions = '';\n\n if (process.platform === 'darwin') {\n const iosProjectDir = path.resolve(projectDir, 'ios');\n const iosPodsFile = path.resolve(\n iosProjectDir,\n `${projectName}.xcworkspace`,\n );\n const isUsingPods = fs.existsSync(iosPodsFile);\n\n const relativeXcodeProjectPath = path.relative(\n '..',\n isUsingPods\n ? iosPodsFile\n : path.resolve(iosProjectDir, `${projectName}.xcodeproj`),\n );\n\n iosInstructions = `\n ${chalk.cyan(`Run instructions for ${chalk.bold('iOS')}`)}:\n • cd \"${projectDir}${options.showPodsInstructions ? '/ios' : ''}\"\n ${\n options.showPodsInstructions\n ? `\n • Install Cocoapods\n • bundle install # you need to run this only once in your project.\n • bundle exec pod install\n • cd ..\n `\n : ''\n }\n • npx react-native run-ios\n ${chalk.dim('- or -')}\n • Open ${relativeXcodeProjectPath} in Xcode or run \"xed -b ios\"\n • Hit the Run button\n `;\n\n desktopInstructions = `\n ${chalk.magenta(`Run instructions for ${chalk.bold('macOS')}`)}:\n • See ${chalk.underline(\n 'https://aka.ms/ReactNativeGuideMacOS',\n )} for the latest up-to-date instructions.\n `;\n }\n\n if (process.platform === 'win32') {\n desktopInstructions = `\n ${chalk.cyan(`Run instructions for ${chalk.bold('Windows')}`)}:\n • See ${chalk.underline(\n 'https://aka.ms/ReactNativeGuideWindows',\n )} for the latest up-to-date instructions.\n `;\n }\n\n const androidInstructions = `\n ${chalk.green(`Run instructions for ${chalk.bold('Android')}`)}:\n • Have an Android emulator running (quickest way to get started), or a device connected.\n • cd \"${projectDir}\" && npx react-native run-android\n `;\n\n logger.log(`\n ${androidInstructions}${iosInstructions}${desktopInstructions}\n `);\n}\n\nexport default printRunInstructions;\n"],"mappings":";;;;;;AASA;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;AAAyD;AAbzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASA,oBAAoB,CAC3BC,UAAkB,EAClBC,WAAmB,EACnBC,OAAgB,GAAG;EACjBC,oBAAoB,EAAE;AACxB,CAAC,EACD;EACA,IAAIC,eAAe,GAAG,EAAE;EACxB,IAAIC,mBAAmB,GAAG,EAAE;EAE5B,IAAIC,kBAAO,CAACC,QAAQ,KAAK,QAAQ,EAAE;IACjC,MAAMC,aAAa,GAAGC,eAAI,CAACC,OAAO,CAACV,UAAU,EAAE,KAAK,CAAC;IACrD,MAAMW,WAAW,GAAGF,eAAI,CAACC,OAAO,CAC9BF,aAAa,EACZ,GAAEP,WAAY,cAAa,CAC7B;IACD,MAAMW,WAAW,GAAGC,aAAE,CAACC,UAAU,CAACH,WAAW,CAAC;IAE9C,MAAMI,wBAAwB,GAAGN,eAAI,CAACO,QAAQ,CAC5C,IAAI,EACJJ,WAAW,GACPD,WAAW,GACXF,eAAI,CAACC,OAAO,CAACF,aAAa,EAAG,GAAEP,WAAY,YAAW,CAAC,CAC5D;IAEDG,eAAe,GAAI;AACvB,IAAIa,gBAAK,CAACC,IAAI,CAAE,wBAAuBD,gBAAK,CAACE,IAAI,CAAC,KAAK,CAAE,EAAC,CAAE;AAC5D,YAAYnB,UAAW,GAAEE,OAAO,CAACC,oBAAoB,GAAG,MAAM,GAAG,EAAG;AACpE,MACMD,OAAO,CAACC,oBAAoB,GACvB;AACX;AACA;AACA;AACA;AACA,KAAK,GACK,EACL;AACL;AACA,MAAMc,gBAAK,CAACG,GAAG,CAAC,QAAQ,CAAE;AAC1B,aAAaL,wBAAyB;AACtC;AACA,KAAK;IAEDV,mBAAmB,GAAI;AAC3B,IAAIY,gBAAK,CAACI,OAAO,CAAE,wBAAuBJ,gBAAK,CAACE,IAAI,CAAC,OAAO,CAAE,EAAC,CAAE;AACjE,YAAYF,gBAAK,CAACK,SAAS,CACrB,sCAAsC,CACtC;AACN,KAAK;EACH;EAEA,IAAIhB,kBAAO,CAACC,QAAQ,KAAK,OAAO,EAAE;IAChCF,mBAAmB,GAAI;AAC3B,IAAIY,gBAAK,CAACC,IAAI,CAAE,wBAAuBD,gBAAK,CAACE,IAAI,CAAC,SAAS,CAAE,EAAC,CAAE;AAChE,YAAYF,gBAAK,CAACK,SAAS,CACrB,wCAAwC,CACxC;AACN,KAAK;EACH;EAEA,MAAMC,mBAAmB,GAAI;AAC/B,IAAIN,gBAAK,CAACO,KAAK,CAAE,wBAAuBP,gBAAK,CAACE,IAAI,CAAC,SAAS,CAAE,EAAC,CAAE;AACjE;AACA,YAAYnB,UAAW;AACvB,GAAG;EAEDyB,kBAAM,CAACC,GAAG,CAAE;AACd,IAAIH,mBAAoB,GAAEnB,eAAgB,GAAEC,mBAAoB;AAChE,GAAG,CAAC;AACJ;AAAC,eAEcN,oBAAoB;AAAA"}
{"version":3,"file":"printRunInstructions.js","names":["printRunInstructions","projectDir","projectName","options","showPodsInstructions","iosInstructions","desktopInstructions","process","platform","iosProjectDir","path","resolve","iosPodsFile","isUsingPods","fs","existsSync","relativeXcodeProjectPath","relative","pico","cyan","bold","dim","magenta","underline","androidInstructions","green","logger","log"],"sources":["../../../src/commands/init/printRunInstructions.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @format\n */\n\nimport path from 'path';\nimport fs from 'fs';\nimport process from 'process';\nimport pico from 'picocolors';\nimport {logger} from '@react-native-community/cli-tools';\n\ninterface Options {\n showPodsInstructions?: boolean;\n}\n\nfunction printRunInstructions(\n projectDir: string,\n projectName: string,\n options: Options = {\n showPodsInstructions: false,\n },\n) {\n let iosInstructions = '';\n let desktopInstructions = '';\n\n if (process.platform === 'darwin') {\n const iosProjectDir = path.resolve(projectDir, 'ios');\n const iosPodsFile = path.resolve(\n iosProjectDir,\n `${projectName}.xcworkspace`,\n );\n const isUsingPods = fs.existsSync(iosPodsFile);\n\n const relativeXcodeProjectPath = path.relative(\n '..',\n isUsingPods\n ? iosPodsFile\n : path.resolve(iosProjectDir, `${projectName}.xcodeproj`),\n );\n\n iosInstructions = `\n ${pico.cyan(`Run instructions for ${pico.bold('iOS')}`)}:\n • cd \"${projectDir}${options.showPodsInstructions ? '/ios' : ''}\"\n ${\n options.showPodsInstructions\n ? `\n • Install Cocoapods\n • bundle install # you need to run this only once in your project.\n • bundle exec pod install\n • cd ..\n `\n : ''\n }\n • npx react-native run-ios\n ${pico.dim('- or -')}\n • Open ${relativeXcodeProjectPath} in Xcode or run \"xed -b ios\"\n • Hit the Run button\n `;\n\n desktopInstructions = `\n ${pico.magenta(`Run instructions for ${pico.bold('macOS')}`)}:\n • See ${pico.underline(\n 'https://microsoft.github.io/react-native-macos',\n )} for the latest up-to-date instructions.\n `;\n }\n\n if (process.platform === 'win32') {\n desktopInstructions = `\n ${pico.cyan(`Run instructions for ${pico.bold('Windows')}`)}:\n • See ${pico.underline(\n 'https://microsoft.github.io/react-native-windows',\n )} for the latest up-to-date instructions.\n `;\n }\n\n const androidInstructions = `\n ${pico.green(`Run instructions for ${pico.bold('Android')}`)}:\n • Have an Android emulator running (quickest way to get started), or a device connected.\n • cd \"${projectDir}\" && npx react-native run-android\n `;\n\n logger.log(`\n ${androidInstructions}${iosInstructions}${desktopInstructions}\n `);\n}\n\nexport default printRunInstructions;\n"],"mappings":";;;;;;AASA;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;AAAyD;AAbzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA,SAASA,oBAAoB,CAC3BC,UAAkB,EAClBC,WAAmB,EACnBC,OAAgB,GAAG;EACjBC,oBAAoB,EAAE;AACxB,CAAC,EACD;EACA,IAAIC,eAAe,GAAG,EAAE;EACxB,IAAIC,mBAAmB,GAAG,EAAE;EAE5B,IAAIC,kBAAO,CAACC,QAAQ,KAAK,QAAQ,EAAE;IACjC,MAAMC,aAAa,GAAGC,eAAI,CAACC,OAAO,CAACV,UAAU,EAAE,KAAK,CAAC;IACrD,MAAMW,WAAW,GAAGF,eAAI,CAACC,OAAO,CAC9BF,aAAa,EACZ,GAAEP,WAAY,cAAa,CAC7B;IACD,MAAMW,WAAW,GAAGC,aAAE,CAACC,UAAU,CAACH,WAAW,CAAC;IAE9C,MAAMI,wBAAwB,GAAGN,eAAI,CAACO,QAAQ,CAC5C,IAAI,EACJJ,WAAW,GACPD,WAAW,GACXF,eAAI,CAACC,OAAO,CAACF,aAAa,EAAG,GAAEP,WAAY,YAAW,CAAC,CAC5D;IAEDG,eAAe,GAAI;AACvB,IAAIa,qBAAI,CAACC,IAAI,CAAE,wBAAuBD,qBAAI,CAACE,IAAI,CAAC,KAAK,CAAE,EAAC,CAAE;AAC1D,YAAYnB,UAAW,GAAEE,OAAO,CAACC,oBAAoB,GAAG,MAAM,GAAG,EAAG;AACpE,MACMD,OAAO,CAACC,oBAAoB,GACvB;AACX;AACA;AACA;AACA;AACA,KAAK,GACK,EACL;AACL;AACA,MAAMc,qBAAI,CAACG,GAAG,CAAC,QAAQ,CAAE;AACzB,aAAaL,wBAAyB;AACtC;AACA,KAAK;IAEDV,mBAAmB,GAAI;AAC3B,IAAIY,qBAAI,CAACI,OAAO,CAAE,wBAAuBJ,qBAAI,CAACE,IAAI,CAAC,OAAO,CAAE,EAAC,CAAE;AAC/D,YAAYF,qBAAI,CAACK,SAAS,CACpB,gDAAgD,CAChD;AACN,KAAK;EACH;EAEA,IAAIhB,kBAAO,CAACC,QAAQ,KAAK,OAAO,EAAE;IAChCF,mBAAmB,GAAI;AAC3B,IAAIY,qBAAI,CAACC,IAAI,CAAE,wBAAuBD,qBAAI,CAACE,IAAI,CAAC,SAAS,CAAE,EAAC,CAAE;AAC9D,YAAYF,qBAAI,CAACK,SAAS,CACpB,kDAAkD,CAClD;AACN,KAAK;EACH;EAEA,MAAMC,mBAAmB,GAAI;AAC/B,IAAIN,qBAAI,CAACO,KAAK,CAAE,wBAAuBP,qBAAI,CAACE,IAAI,CAAC,SAAS,CAAE,EAAC,CAAE;AAC/D;AACA,YAAYnB,UAAW;AACvB,GAAG;EAEDyB,kBAAM,CAACC,GAAG,CAAE;AACd,IAAIH,mBAAoB,GAAEnB,eAAgB,GAAEC,mBAAoB;AAChE,GAAG,CAAC;AACJ;AAAC,eAEcN,oBAAoB;AAAA"}

@@ -1,1 +0,1 @@

{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/commands/init/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAQ7D,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,2CA0C3C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GACxB,cAAc,CAkBhB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,iBAc1B;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,mCAY1B"}
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/commands/init/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAQ7D,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,cAAc,CAAC,cAAc,EAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,2CA4C3C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,iBAAiB,EAAE,MAAM,GACxB,cAAc,CAoBhB;AAED,wBAAsB,YAAY,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,iBAAiB,EAAE,MAAM,iBAc1B;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,mCAY1B"}

@@ -41,5 +41,5 @@ "use strict";

}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;

@@ -68,8 +68,10 @@ };

// React Native doesn't support PnP, so we need to set nodeLinker to node-modules. Read more here: https://github.com/react-native-community/cli/issues/27#issuecomment-1772626767
(0, _executeCommand.executeCommand)('yarn', ['config', 'set', 'nodeLinker', 'node-modules'], options);
(0, _executeCommand.executeCommand)('yarn', ['config', 'set', 'nmHoistingLimits', 'workspaces'], options);
for (let key in yarnConfigOptions) {
if (yarnConfigOptions.hasOwnProperty(key)) {
let value = yarnConfigOptions[key];
(0, _executeCommand.executeCommand)('yarn', ['config', 'set', key, value], options);
await (0, _executeCommand.executeCommand)('yarn', ['config', 'set', 'nodeLinker', 'node-modules'], options);
await (0, _executeCommand.executeCommand)('yarn', ['config', 'set', 'nmHoistingLimits', 'workspaces'], options);
if (yarnConfigOptions) {
for (let key in yarnConfigOptions) {
if (Object.prototype.hasOwnProperty.call(yarnConfigOptions, key)) {
const value = yarnConfigOptions[key];
await (0, _executeCommand.executeCommand)('yarn', ['config', 'set', key, value], options);
}
}

@@ -89,3 +91,3 @@ }

throw new (_cliTools().CLIError)(`Couldn't find the "${configFilePath} file inside "${templateName}" template. Please make sure the template is valid.
Read more: ${_chalk().default.underline.dim('https://github.com/react-native-community/cli/blob/main/docs/init.md#creating-custom-template')}`);
Read more: ${_picocolors().default.underline(_picocolors().default.dim('https://github.com/react-native-community/cli/blob/main/docs/init.md#creating-custom-template'))}`);
}

@@ -110,2 +112,2 @@ return require(configFilePath);

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/template.js.map
//# sourceMappingURL=template.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["installTemplatePackage","templateName","root","packageManager","yarnConfigOptions","logger","debug","PackageManager","init","silent","getYarnVersionIfAvailable","options","executeCommand","key","hasOwnProperty","value","install","getTemplateConfig","templateSourceDir","configFilePath","path","resolve","fs","existsSync","CLIError","chalk","underline","dim","require","copyTemplate","templateDir","templatePath","regexStr","copyFiles","process","cwd","exclude","RegExp","replacePathSepForRegex","executePostInitScript","postInitScript","scriptPath","execa","stdio"],"sources":["../../../src/commands/init/template.ts"],"sourcesContent":["import execa from 'execa';\nimport path from 'path';\nimport {logger, CLIError} from '@react-native-community/cli-tools';\nimport * as PackageManager from '../../tools/packageManager';\nimport copyFiles from '../../tools/copyFiles';\nimport replacePathSepForRegex from '../../tools/replacePathSepForRegex';\nimport fs from 'fs';\nimport chalk from 'chalk';\nimport {getYarnVersionIfAvailable} from '../../tools/yarn';\nimport {executeCommand} from '../../tools/executeCommand';\n\nexport type TemplateConfig = {\n placeholderName: string;\n templateDir: string;\n postInitScript?: string;\n titlePlaceholder?: string;\n};\n\nexport async function installTemplatePackage(\n templateName: string,\n root: string,\n packageManager: PackageManager.PackageManager,\n yarnConfigOptions?: Record<string, string>,\n) {\n logger.debug(`Installing template from ${templateName}`);\n\n await PackageManager.init({\n packageManager,\n silent: true,\n root,\n });\n\n if (packageManager === 'yarn' && getYarnVersionIfAvailable() !== null) {\n const options = {\n root,\n silent: true,\n };\n\n // React Native doesn't support PnP, so we need to set nodeLinker to node-modules. Read more here: https://github.com/react-native-community/cli/issues/27#issuecomment-1772626767\n executeCommand(\n 'yarn',\n ['config', 'set', 'nodeLinker', 'node-modules'],\n options,\n );\n\n executeCommand(\n 'yarn',\n ['config', 'set', 'nmHoistingLimits', 'workspaces'],\n options,\n );\n\n for (let key in yarnConfigOptions) {\n if (yarnConfigOptions.hasOwnProperty(key)) {\n let value = yarnConfigOptions[key];\n executeCommand('yarn', ['config', 'set', key, value], options);\n }\n }\n }\n\n return PackageManager.install([templateName], {\n packageManager,\n silent: true,\n root,\n });\n}\n\nexport function getTemplateConfig(\n templateName: string,\n templateSourceDir: string,\n): TemplateConfig {\n const configFilePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n 'template.config.js',\n );\n\n logger.debug(`Getting config from ${configFilePath}`);\n if (!fs.existsSync(configFilePath)) {\n throw new CLIError(\n `Couldn't find the \"${configFilePath} file inside \"${templateName}\" template. Please make sure the template is valid.\n Read more: ${chalk.underline.dim(\n 'https://github.com/react-native-community/cli/blob/main/docs/init.md#creating-custom-template',\n )}`,\n );\n }\n return require(configFilePath);\n}\n\nexport async function copyTemplate(\n templateName: string,\n templateDir: string,\n templateSourceDir: string,\n) {\n const templatePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n templateDir,\n );\n\n logger.debug(`Copying template from ${templatePath}`);\n let regexStr = path.resolve(templatePath, 'node_modules');\n await copyFiles(templatePath, process.cwd(), {\n exclude: [new RegExp(replacePathSepForRegex(regexStr))],\n });\n}\n\nexport function executePostInitScript(\n templateName: string,\n postInitScript: string,\n templateSourceDir: string,\n) {\n const scriptPath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n postInitScript,\n );\n\n logger.debug(`Executing post init script located ${scriptPath}`);\n\n return execa(scriptPath, {stdio: 'inherit'});\n}\n"],"mappings":"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"}
{"version":3,"file":"template.js","names":["installTemplatePackage","templateName","root","packageManager","yarnConfigOptions","logger","debug","PackageManager","init","silent","getYarnVersionIfAvailable","options","executeCommand","key","Object","prototype","hasOwnProperty","call","value","install","getTemplateConfig","templateSourceDir","configFilePath","path","resolve","fs","existsSync","CLIError","pico","underline","dim","require","copyTemplate","templateDir","templatePath","regexStr","copyFiles","process","cwd","exclude","RegExp","replacePathSepForRegex","executePostInitScript","postInitScript","scriptPath","execa","stdio"],"sources":["../../../src/commands/init/template.ts"],"sourcesContent":["import execa from 'execa';\nimport path from 'path';\nimport {logger, CLIError} from '@react-native-community/cli-tools';\nimport * as PackageManager from '../../tools/packageManager';\nimport copyFiles from '../../tools/copyFiles';\nimport replacePathSepForRegex from '../../tools/replacePathSepForRegex';\nimport fs from 'fs';\nimport pico from 'picocolors';\nimport {getYarnVersionIfAvailable} from '../../tools/yarn';\nimport {executeCommand} from '../../tools/executeCommand';\n\nexport type TemplateConfig = {\n placeholderName: string;\n templateDir: string;\n postInitScript?: string;\n titlePlaceholder?: string;\n};\n\nexport async function installTemplatePackage(\n templateName: string,\n root: string,\n packageManager: PackageManager.PackageManager,\n yarnConfigOptions?: Record<string, string>,\n) {\n logger.debug(`Installing template from ${templateName}`);\n\n await PackageManager.init({\n packageManager,\n silent: true,\n root,\n });\n\n if (packageManager === 'yarn' && getYarnVersionIfAvailable() !== null) {\n const options = {\n root,\n silent: true,\n };\n\n // React Native doesn't support PnP, so we need to set nodeLinker to node-modules. Read more here: https://github.com/react-native-community/cli/issues/27#issuecomment-1772626767\n await executeCommand(\n 'yarn',\n ['config', 'set', 'nodeLinker', 'node-modules'],\n options,\n );\n\n await executeCommand(\n 'yarn',\n ['config', 'set', 'nmHoistingLimits', 'workspaces'],\n options,\n );\n\n if (yarnConfigOptions) {\n for (let key in yarnConfigOptions) {\n if (Object.prototype.hasOwnProperty.call(yarnConfigOptions, key)) {\n const value = yarnConfigOptions[key];\n await executeCommand('yarn', ['config', 'set', key, value], options);\n }\n }\n }\n }\n\n return PackageManager.install([templateName], {\n packageManager,\n silent: true,\n root,\n });\n}\n\nexport function getTemplateConfig(\n templateName: string,\n templateSourceDir: string,\n): TemplateConfig {\n const configFilePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n 'template.config.js',\n );\n\n logger.debug(`Getting config from ${configFilePath}`);\n if (!fs.existsSync(configFilePath)) {\n throw new CLIError(\n `Couldn't find the \"${configFilePath} file inside \"${templateName}\" template. Please make sure the template is valid.\n Read more: ${pico.underline(\n pico.dim(\n 'https://github.com/react-native-community/cli/blob/main/docs/init.md#creating-custom-template',\n ),\n )}`,\n );\n }\n return require(configFilePath);\n}\n\nexport async function copyTemplate(\n templateName: string,\n templateDir: string,\n templateSourceDir: string,\n) {\n const templatePath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n templateDir,\n );\n\n logger.debug(`Copying template from ${templatePath}`);\n let regexStr = path.resolve(templatePath, 'node_modules');\n await copyFiles(templatePath, process.cwd(), {\n exclude: [new RegExp(replacePathSepForRegex(regexStr))],\n });\n}\n\nexport function executePostInitScript(\n templateName: string,\n postInitScript: string,\n templateSourceDir: string,\n) {\n const scriptPath = path.resolve(\n templateSourceDir,\n 'node_modules',\n templateName,\n postInitScript,\n );\n\n logger.debug(`Executing post init script located ${scriptPath}`);\n\n return execa(scriptPath, {stdio: 'inherit'});\n}\n"],"mappings":"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"}
"use strict";
//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/types.js.map
//# sourceMappingURL=types.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":[],"sources":["../../../src/commands/init/types.ts"],"sourcesContent":["import type {PackageManager} from '../../tools/packageManager';\n\nexport type Options = {\n template?: string;\n npm?: boolean;\n pm?: 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 replaceDirectory?: string | boolean;\n yarnConfigOptions?: Record<string, string>;\n};\n"],"mappings":""}
{"version":3,"file":"types.js","names":[],"sources":["../../../src/commands/init/types.ts"],"sourcesContent":["import type {PackageManager} from '../../tools/packageManager';\n\nexport type Options = {\n template?: string;\n npm?: boolean;\n pm?: 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 replaceDirectory?: string | boolean;\n yarnConfigOptions?: Record<string, string>;\n};\n"],"mappings":""}

@@ -29,2 +29,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/validate.js.map
//# sourceMappingURL=validate.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["NAME_REGEX","javaKeywords","reservedNames","validateProjectName","name","String","match","InvalidNameError","lowerCaseName","toLowerCase","includes","ReservedNameError","HelloWorldError"],"sources":["../../../src/commands/init/validate.ts"],"sourcesContent":["import InvalidNameError from './errors/InvalidNameError';\nimport ReservedNameError from './errors/ReservedNameError';\nimport HelloWorldError from './errors/HelloWorldError';\n\nconst NAME_REGEX = /^[$A-Z_][0-9A-Z_$]*$/i;\n\n// ref: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html\nconst javaKeywords = [\n 'abstract',\n 'continue',\n 'for',\n 'new',\n 'switch',\n 'assert',\n 'default',\n 'goto',\n 'package',\n 'synchronized',\n 'boolean',\n 'do',\n 'if',\n 'private',\n 'this',\n 'break',\n 'double',\n 'implements',\n 'protected',\n 'throw',\n 'byte',\n 'else',\n 'import',\n 'public',\n 'throws',\n 'case',\n 'enum',\n 'instanceof',\n 'return',\n 'transient',\n 'catch',\n 'extends',\n 'int',\n 'short',\n 'try',\n 'char',\n 'final',\n 'interface',\n 'static',\n 'void',\n 'class',\n 'finally',\n 'long',\n 'strictfp',\n 'volatile',\n 'const',\n 'float',\n 'native',\n 'super',\n 'while',\n];\n\nconst reservedNames = ['react', 'react-native', ...javaKeywords];\n\nexport function validateProjectName(name: string) {\n if (!String(name).match(NAME_REGEX)) {\n throw new InvalidNameError(name);\n }\n\n const lowerCaseName = name.toLowerCase();\n if (reservedNames.includes(lowerCaseName)) {\n throw new ReservedNameError(lowerCaseName);\n }\n\n if (name.match(/helloworld/gi)) {\n throw new HelloWorldError();\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAAuD;AAEvD,MAAMA,UAAU,GAAG,uBAAuB;;AAE1C;AACA,MAAMC,YAAY,GAAG,CACnB,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,CACR;AAED,MAAMC,aAAa,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,GAAGD,YAAY,CAAC;AAEzD,SAASE,mBAAmB,CAACC,IAAY,EAAE;EAChD,IAAI,CAACC,MAAM,CAACD,IAAI,CAAC,CAACE,KAAK,CAACN,UAAU,CAAC,EAAE;IACnC,MAAM,IAAIO,yBAAgB,CAACH,IAAI,CAAC;EAClC;EAEA,MAAMI,aAAa,GAAGJ,IAAI,CAACK,WAAW,EAAE;EACxC,IAAIP,aAAa,CAACQ,QAAQ,CAACF,aAAa,CAAC,EAAE;IACzC,MAAM,IAAIG,0BAAiB,CAACH,aAAa,CAAC;EAC5C;EAEA,IAAIJ,IAAI,CAACE,KAAK,CAAC,cAAc,CAAC,EAAE;IAC9B,MAAM,IAAIM,wBAAe,EAAE;EAC7B;AACF"}
{"version":3,"file":"validate.js","names":["NAME_REGEX","javaKeywords","reservedNames","validateProjectName","name","String","match","InvalidNameError","lowerCaseName","toLowerCase","includes","ReservedNameError","HelloWorldError"],"sources":["../../../src/commands/init/validate.ts"],"sourcesContent":["import InvalidNameError from './errors/InvalidNameError';\nimport ReservedNameError from './errors/ReservedNameError';\nimport HelloWorldError from './errors/HelloWorldError';\n\nconst NAME_REGEX = /^[$A-Z_][0-9A-Z_$]*$/i;\n\n// ref: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html\nconst javaKeywords = [\n 'abstract',\n 'continue',\n 'for',\n 'new',\n 'switch',\n 'assert',\n 'default',\n 'goto',\n 'package',\n 'synchronized',\n 'boolean',\n 'do',\n 'if',\n 'private',\n 'this',\n 'break',\n 'double',\n 'implements',\n 'protected',\n 'throw',\n 'byte',\n 'else',\n 'import',\n 'public',\n 'throws',\n 'case',\n 'enum',\n 'instanceof',\n 'return',\n 'transient',\n 'catch',\n 'extends',\n 'int',\n 'short',\n 'try',\n 'char',\n 'final',\n 'interface',\n 'static',\n 'void',\n 'class',\n 'finally',\n 'long',\n 'strictfp',\n 'volatile',\n 'const',\n 'float',\n 'native',\n 'super',\n 'while',\n];\n\nconst reservedNames = ['react', 'react-native', ...javaKeywords];\n\nexport function validateProjectName(name: string) {\n if (!String(name).match(NAME_REGEX)) {\n throw new InvalidNameError(name);\n }\n\n const lowerCaseName = name.toLowerCase();\n if (reservedNames.includes(lowerCaseName)) {\n throw new ReservedNameError(lowerCaseName);\n }\n\n if (name.match(/helloworld/gi)) {\n throw new HelloWorldError();\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AAAuD;AAEvD,MAAMA,UAAU,GAAG,uBAAuB;;AAE1C;AACA,MAAMC,YAAY,GAAG,CACnB,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,cAAc,EACd,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,CACR;AAED,MAAMC,aAAa,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,GAAGD,YAAY,CAAC;AAEzD,SAASE,mBAAmB,CAACC,IAAY,EAAE;EAChD,IAAI,CAACC,MAAM,CAACD,IAAI,CAAC,CAACE,KAAK,CAACN,UAAU,CAAC,EAAE;IACnC,MAAM,IAAIO,yBAAgB,CAACH,IAAI,CAAC;EAClC;EAEA,MAAMI,aAAa,GAAGJ,IAAI,CAACK,WAAW,EAAE;EACxC,IAAIP,aAAa,CAACQ,QAAQ,CAACF,aAAa,CAAC,EAAE;IACzC,MAAM,IAAIG,0BAAiB,CAACH,aAAa,CAAC;EAC5C;EAEA,IAAIJ,IAAI,CAACE,KAAK,CAAC,cAAc,CAAC,EAAE;IAC9B,MAAM,IAAIM,wBAAe,EAAE;EAC7B;AACF"}

@@ -60,2 +60,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/commands/init/version.js.map
//# sourceMappingURL=version.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["createTemplateUri","options","version","platformName","logger","debug","template","TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT","warn","TEMPLATE_PACKAGE_LEGACY","simpleVersion","semver","coerce","useLegacyTemplate","lt","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION","test","TEMPLATE_PACKAGE_COMMUNITY","templateVersion","getTemplateVersion"],"sources":["../../../src/commands/init/version.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport {getTemplateVersion} from '../../tools/npm';\nimport semver from 'semver';\n\nimport type {Options} from './types';\nimport {\n TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION,\n TEMPLATE_PACKAGE_COMMUNITY,\n TEMPLATE_PACKAGE_LEGACY,\n TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT,\n} from './constants';\n\nexport async function createTemplateUri(\n options: Options,\n version: string,\n): Promise<string> {\n if (options.platformName && options.platformName !== 'react-native') {\n logger.debug('User has specified an out-of-tree platform, using it');\n return `${options.platformName}@${version}`;\n }\n\n if (options.template === TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT) {\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 TEMPLATE_PACKAGE_LEGACY;\n }\n\n if (options.template) {\n logger.debug(`Use the user provided --template=${options.template}`);\n return options.template;\n }\n\n // 0.75.0-nightly-20240618-5df5ed1a8' -> 0.75.0\n // 0.75.0-rc.1 -> 0.75.0\n const simpleVersion = semver.coerce(version) ?? version;\n\n // Does the react-native@version package *not* have a template embedded. We know that this applies to\n // all version before 0.75. The 1st release candidate is the minimal version that has no template.\n const useLegacyTemplate = semver.lt(\n simpleVersion,\n TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION,\n );\n\n logger.debug(\n `[template]: is '${version} (${simpleVersion})' < '${TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION}' = ` +\n (useLegacyTemplate\n ? 'yes, look for template in react-native'\n : 'no, look for template in @react-native-community/template'),\n );\n\n if (!useLegacyTemplate) {\n if (/nightly/.test(version)) {\n logger.debug(\n \"[template]: you're using a nightly version of react-native\",\n );\n // Template nightly versions and react-native@nightly versions don't match (template releases at a much\n // lower cadence). We have to assume the user is running against the latest nightly by pointing to the tag.\n return `${TEMPLATE_PACKAGE_COMMUNITY}@nightly`;\n }\n const templateVersion = await getTemplateVersion(version);\n return `${TEMPLATE_PACKAGE_COMMUNITY}@${templateVersion}`;\n }\n\n logger.debug(\n `Using the legacy template because '${TEMPLATE_PACKAGE_LEGACY}' still contains a template folder`,\n );\n return `${TEMPLATE_PACKAGE_LEGACY}@${version}`;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;AAKqB;AAEd,eAAeA,iBAAiB,CACrCC,OAAgB,EAChBC,OAAe,EACE;EACjB,IAAID,OAAO,CAACE,YAAY,IAAIF,OAAO,CAACE,YAAY,KAAK,cAAc,EAAE;IACnEC,kBAAM,CAACC,KAAK,CAAC,sDAAsD,CAAC;IACpE,OAAQ,GAAEJ,OAAO,CAACE,YAAa,IAAGD,OAAQ,EAAC;EAC7C;EAEA,IAAID,OAAO,CAACK,QAAQ,KAAKC,6CAAkC,EAAE;IAC3DH,kBAAM,CAACI,IAAI,CACT,+HAA+H,CAChI;IACD,OAAOC,kCAAuB;EAChC;EAEA,IAAIR,OAAO,CAACK,QAAQ,EAAE;IACpBF,kBAAM,CAACC,KAAK,CAAE,oCAAmCJ,OAAO,CAACK,QAAS,EAAC,CAAC;IACpE,OAAOL,OAAO,CAACK,QAAQ;EACzB;;EAEA;EACA;EACA,MAAMI,aAAa,GAAGC,iBAAM,CAACC,MAAM,CAACV,OAAO,CAAC,IAAIA,OAAO;;EAEvD;EACA;EACA,MAAMW,iBAAiB,GAAGF,iBAAM,CAACG,EAAE,CACjCJ,aAAa,EACbK,kDAAuC,CACxC;EAEDX,kBAAM,CAACC,KAAK,CACT,mBAAkBH,OAAQ,KAAIQ,aAAc,SAAQK,kDAAwC,MAAK,IAC/FF,iBAAiB,GACd,wCAAwC,GACxC,2DAA2D,CAAC,CACnE;EAED,IAAI,CAACA,iBAAiB,EAAE;IACtB,IAAI,SAAS,CAACG,IAAI,CAACd,OAAO,CAAC,EAAE;MAC3BE,kBAAM,CAACC,KAAK,CACV,4DAA4D,CAC7D;MACD;MACA;MACA,OAAQ,GAAEY,qCAA2B,UAAS;IAChD;IACA,MAAMC,eAAe,GAAG,MAAM,IAAAC,uBAAkB,EAACjB,OAAO,CAAC;IACzD,OAAQ,GAAEe,qCAA2B,IAAGC,eAAgB,EAAC;EAC3D;EAEAd,kBAAM,CAACC,KAAK,CACT,sCAAqCI,kCAAwB,oCAAmC,CAClG;EACD,OAAQ,GAAEA,kCAAwB,IAAGP,OAAQ,EAAC;AAChD"}
{"version":3,"file":"version.js","names":["createTemplateUri","options","version","platformName","logger","debug","template","TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT","warn","TEMPLATE_PACKAGE_LEGACY","simpleVersion","semver","coerce","useLegacyTemplate","lt","TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION","test","TEMPLATE_PACKAGE_COMMUNITY","templateVersion","getTemplateVersion"],"sources":["../../../src/commands/init/version.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport {getTemplateVersion} from '../../tools/npm';\nimport semver from 'semver';\n\nimport type {Options} from './types';\nimport {\n TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION,\n TEMPLATE_PACKAGE_COMMUNITY,\n TEMPLATE_PACKAGE_LEGACY,\n TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT,\n} from './constants';\n\nexport async function createTemplateUri(\n options: Options,\n version: string,\n): Promise<string> {\n if (options.platformName && options.platformName !== 'react-native') {\n logger.debug('User has specified an out-of-tree platform, using it');\n return `${options.platformName}@${version}`;\n }\n\n if (options.template === TEMPLATE_PACKAGE_LEGACY_TYPESCRIPT) {\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 TEMPLATE_PACKAGE_LEGACY;\n }\n\n if (options.template) {\n logger.debug(`Use the user provided --template=${options.template}`);\n return options.template;\n }\n\n // 0.75.0-nightly-20240618-5df5ed1a8' -> 0.75.0\n // 0.75.0-rc.1 -> 0.75.0\n const simpleVersion = semver.coerce(version) ?? version;\n\n // Does the react-native@version package *not* have a template embedded. We know that this applies to\n // all version before 0.75. The 1st release candidate is the minimal version that has no template.\n const useLegacyTemplate = semver.lt(\n simpleVersion,\n TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION,\n );\n\n logger.debug(\n `[template]: is '${version} (${simpleVersion})' < '${TEMPLATE_COMMUNITY_REACT_NATIVE_VERSION}' = ` +\n (useLegacyTemplate\n ? 'yes, look for template in react-native'\n : 'no, look for template in @react-native-community/template'),\n );\n\n if (!useLegacyTemplate) {\n if (/nightly/.test(version)) {\n logger.debug(\n \"[template]: you're using a nightly version of react-native\",\n );\n // Template nightly versions and react-native@nightly versions don't match (template releases at a much\n // lower cadence). We have to assume the user is running against the latest nightly by pointing to the tag.\n return `${TEMPLATE_PACKAGE_COMMUNITY}@nightly`;\n }\n const templateVersion = await getTemplateVersion(version);\n return `${TEMPLATE_PACKAGE_COMMUNITY}@${templateVersion}`;\n }\n\n logger.debug(\n `Using the legacy template because '${TEMPLATE_PACKAGE_LEGACY}' still contains a template folder`,\n );\n return `${TEMPLATE_PACKAGE_LEGACY}@${version}`;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;AAKqB;AAEd,eAAeA,iBAAiB,CACrCC,OAAgB,EAChBC,OAAe,EACE;EACjB,IAAID,OAAO,CAACE,YAAY,IAAIF,OAAO,CAACE,YAAY,KAAK,cAAc,EAAE;IACnEC,kBAAM,CAACC,KAAK,CAAC,sDAAsD,CAAC;IACpE,OAAQ,GAAEJ,OAAO,CAACE,YAAa,IAAGD,OAAQ,EAAC;EAC7C;EAEA,IAAID,OAAO,CAACK,QAAQ,KAAKC,6CAAkC,EAAE;IAC3DH,kBAAM,CAACI,IAAI,CACT,+HAA+H,CAChI;IACD,OAAOC,kCAAuB;EAChC;EAEA,IAAIR,OAAO,CAACK,QAAQ,EAAE;IACpBF,kBAAM,CAACC,KAAK,CAAE,oCAAmCJ,OAAO,CAACK,QAAS,EAAC,CAAC;IACpE,OAAOL,OAAO,CAACK,QAAQ;EACzB;;EAEA;EACA;EACA,MAAMI,aAAa,GAAGC,iBAAM,CAACC,MAAM,CAACV,OAAO,CAAC,IAAIA,OAAO;;EAEvD;EACA;EACA,MAAMW,iBAAiB,GAAGF,iBAAM,CAACG,EAAE,CACjCJ,aAAa,EACbK,kDAAuC,CACxC;EAEDX,kBAAM,CAACC,KAAK,CACT,mBAAkBH,OAAQ,KAAIQ,aAAc,SAAQK,kDAAwC,MAAK,IAC/FF,iBAAiB,GACd,wCAAwC,GACxC,2DAA2D,CAAC,CACnE;EAED,IAAI,CAACA,iBAAiB,EAAE;IACtB,IAAI,SAAS,CAACG,IAAI,CAACd,OAAO,CAAC,EAAE;MAC3BE,kBAAM,CAACC,KAAK,CACV,4DAA4D,CAC7D;MACD;MACA;MACA,OAAQ,GAAEY,qCAA2B,UAAS;IAChD;IACA,MAAMC,eAAe,GAAG,MAAM,IAAAC,uBAAkB,EAACjB,OAAO,CAAC;IACzD,OAAQ,GAAEe,qCAA2B,IAAGC,eAAgB,EAAC;EAC3D;EAEAd,kBAAM,CAACC,KAAK,CACT,sCAAqCI,kCAAwB,oCAAmC,CAClG;EACD,OAAQ,GAAEA,kCAAwB,IAAGP,OAAQ,EAAC;AAChD"}

@@ -40,9 +40,2 @@ "use strict";

}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
return data;
};
return data;
}
function _child_process() {

@@ -69,2 +62,9 @@ const data = _interopRequireDefault(require("child_process"));

}
function _picocolors() {
const data = _interopRequireDefault(require("picocolors"));
_picocolors = function () {
return data;
};
return data;
}
var _commands = require("./commands");

@@ -96,3 +96,3 @@ function _cliServerApi() {

if (!program.opts().verbose && _cliTools().logger.hasDebugMessages()) {
_cliTools().logger.info(_chalk().default.dim(`Run CLI with ${_chalk().default.reset('--verbose')} ${_chalk().default.dim('flag for more details.')}`));
_cliTools().logger.info(_picocolors().default.dim(`Run CLI with ${_picocolors().default.reset('--verbose')} ${_picocolors().default.dim('flag for more details.')}`));
}

@@ -104,4 +104,4 @@ process.exit(1);

if (examples && examples.length > 0) {
const formattedUsage = examples.map(example => ` ${example.desc}: \n ${_chalk().default.cyan(example.cmd)}`).join('\n\n');
output = output.concat([_chalk().default.bold('\nExample usage:'), formattedUsage]);
const formattedUsage = examples.map(example => ` ${example.desc}: \n ${_picocolors().default.cyan(example.cmd)}`).join('\n\n');
output = output.concat([_picocolors().default.bold('\nExample usage:'), formattedUsage]);
}

@@ -190,3 +190,3 @@ return output.join('\n').concat('\n');

} catch (error) {
_cliTools().logger.warn(`Failed to run environment setup script "${scriptName}"\n\n${_chalk().default.red(error)}`);
_cliTools().logger.warn(`Failed to run environment setup script "${scriptName}"\n\n${_picocolors().default.red(`${error}`)}`);
_cliTools().logger.info(`React Native CLI will continue to run if your local environment matches what React Native expects. If it does fail, check out "${absolutePath}" and adjust your environment to match it.`);

@@ -249,2 +249,2 @@ }

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/index.js.map
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["pkgJson","require","program","CommanderCommand","usage","version","enablePositionalOptions","handleError","err","logger","enable","opts","verbose","error","message","replace","stack","log","hasDebugMessages","info","chalk","dim","reset","process","exit","printExamples","examples","output","length","formattedUsage","map","example","desc","cyan","cmd","join","concat","bold","isDetachedCommand","command","detached","isAttachedCommand","attachCommand","config","commands","find","name","Error","option","action","handleAction","args","passedOptions","argv","Array","from","slice","func","description","addHelpText","opt","options","parse","val","default","run","platformName","setupAndRun","e","isCommandPassed","commandName","filter","arg","disable","setVerbose","includes","platform","scriptName","absolutePath","path","__dirname","childProcess","execFileSync","stdio","warn","red","selectedPlatform","platformIndex","indexOf","loadConfigAsync","projectCommands","Object","values","debug","CLIError","detachedCommands","push","bin","resolve"],"sources":["../src/index.ts"],"sourcesContent":["import loadConfig, {loadConfigAsync} from '@react-native-community/cli-config';\nimport {CLIError, logger} from '@react-native-community/cli-tools';\nimport type {\n Command,\n Config,\n DetachedCommand,\n} from '@react-native-community/cli-types';\nimport chalk from 'chalk';\nimport childProcess from 'child_process';\nimport {Command as CommanderCommand} from 'commander';\nimport path from 'path';\nimport {detachedCommands, projectCommands} from './commands';\n\nexport {createDevServerMiddleware} from '@react-native-community/cli-server-api';\n\nconst pkgJson = require('../package.json');\n\nconst program = new CommanderCommand()\n .usage('[command] [options]')\n .version(pkgJson.version, '-v --version', 'Output the current version')\n .enablePositionalOptions();\n\nconst handleError = (err: Error) => {\n logger.enable();\n if (program.opts().verbose) {\n logger.error(err.message);\n } else {\n // Some error messages (esp. custom ones) might have `.` at the end already.\n const message = err.message.replace(/\\.$/, '');\n logger.error(`${message}.`);\n }\n if (err.stack) {\n logger.log(err.stack);\n }\n if (!program.opts().verbose && logger.hasDebugMessages()) {\n logger.info(\n chalk.dim(\n `Run CLI with ${chalk.reset('--verbose')} ${chalk.dim(\n 'flag for more details.',\n )}`,\n ),\n );\n }\n process.exit(1);\n};\n\nfunction printExamples(examples: Command['examples']) {\n let output: string[] = [];\n\n if (examples && examples.length > 0) {\n const formattedUsage = examples\n .map((example) => ` ${example.desc}: \\n ${chalk.cyan(example.cmd)}`)\n .join('\\n\\n');\n\n output = output.concat([chalk.bold('\\nExample usage:'), formattedUsage]);\n }\n\n return output.join('\\n').concat('\\n');\n}\n\n/**\n * Custom type assertion needed for the `makeCommand` conditional\n * types to be properly resolved.\n */\nfunction isDetachedCommand(\n command: Command<boolean>,\n): command is DetachedCommand {\n return command.detached === true;\n}\n\nfunction isAttachedCommand(\n command: Command<boolean>,\n): command is Command<false> {\n return !isDetachedCommand(command);\n}\n\n/**\n * Attaches a new command onto global `commander` instance.\n *\n * Note that this function takes additional argument of `Config` type in case\n * passed `command` needs it for its execution.\n */\nfunction attachCommand<C extends Command<boolean>>(\n command: C,\n config: C extends DetachedCommand ? Config | undefined : Config,\n): void {\n // commander@9.x will internally push commands into an array structure!\n // Commands with duplicate names (e.g. from config) must be reduced before\n // calling this function.\n // https://unpkg.com/browse/commander@9.4.1/lib/command.js#L1308\n if (program.commands.find((cmd) => cmd.name() === command.name)) {\n throw new Error(\n 'Invariant Violation: Attempted to override an already registered ' +\n `command: '${command.name}'. This is not supported by the underlying ` +\n 'library and will cause bugs. Ensure a command with this `name` is ' +\n 'only registered once.',\n );\n }\n\n const cmd = program\n .command(command.name)\n .option('--verbose', 'Increase logging verbosity')\n .action(async function handleAction(\n this: CommanderCommand,\n ...args: string[]\n ) {\n const passedOptions = this.opts();\n const argv = Array.from(args).slice(0, -1);\n\n try {\n if (isDetachedCommand(command)) {\n await command.func(argv, passedOptions, config);\n } else if (isAttachedCommand(command)) {\n await command.func(argv, config, passedOptions);\n } else {\n throw new Error('A command must be either attached or detached');\n }\n } catch (error) {\n handleError(error as Error);\n }\n });\n\n if (command.description) {\n cmd.description(command.description);\n }\n\n cmd.addHelpText('after', printExamples(command.examples));\n\n for (const opt of command.options || []) {\n cmd.option(\n opt.name,\n opt.description ?? '',\n opt.parse || ((val: any) => val),\n typeof opt.default === 'function' ? opt.default(config) : opt.default,\n );\n }\n}\n\n// Platform name is optional argument passed by out of tree platforms.\nasync function run(platformName?: string) {\n try {\n await setupAndRun(platformName);\n } catch (e) {\n handleError(e as Error);\n }\n}\n\nconst isCommandPassed = (commandName: string) => {\n return process.argv.filter((arg) => arg === commandName).length > 0;\n};\n\nasync function setupAndRun(platformName?: string) {\n // Commander is not available yet\n\n // when we run `config`, we don't want to output anything to the console. We\n // expect it to return valid JSON\n if (isCommandPassed('config')) {\n logger.disable();\n }\n\n logger.setVerbose(process.argv.includes('--verbose'));\n\n // We only have a setup script for UNIX envs currently\n if (process.platform !== 'win32') {\n const scriptName = 'setup_env.sh';\n const absolutePath = path.join(__dirname, '..', scriptName);\n\n try {\n childProcess.execFileSync(absolutePath, {stdio: 'pipe'});\n } catch (error) {\n logger.warn(\n `Failed to run environment setup script \"${scriptName}\"\\n\\n${chalk.red(\n error,\n )}`,\n );\n logger.info(\n `React Native CLI will continue to run if your local environment matches what React Native expects. If it does fail, check out \"${absolutePath}\" and adjust your environment to match it.`,\n );\n }\n }\n\n let config: Config | undefined;\n try {\n let selectedPlatform: string | undefined;\n\n /*\n When linking dependencies in iOS and Android build we're passing `--platform` argument,\n to only load the configuration for the specific platform.\n */\n if (isCommandPassed('config')) {\n const platformIndex = process.argv.indexOf('--platform');\n\n if (platformIndex !== -1 && platformIndex < process.argv.length - 1) {\n selectedPlatform = process.argv[platformIndex + 1];\n }\n }\n\n config = await loadConfigAsync({\n selectedPlatform,\n });\n\n logger.enable();\n\n const commands: Record<string, Command> = {};\n\n // Reduce overridden commands before registering\n for (const command of [...projectCommands, ...config.commands]) {\n commands[command.name] = command;\n }\n\n for (const command of Object.values(commands)) {\n attachCommand(command, config);\n }\n } catch (error) {\n /**\n * When there is no `package.json` found, the CLI will enter `detached` mode and a subset\n * of commands will be available. That's why we don't throw on such kind of error.\n */\n if ((error as Error).message.includes(\"We couldn't find a package.json\")) {\n logger.debug((error as Error).message);\n logger.debug(\n 'Failed to load configuration of your project. Only a subset of commands will be available.',\n );\n } else {\n throw new CLIError(\n 'Failed to load configuration of your project.',\n error as any,\n );\n }\n } finally {\n for (const command of detachedCommands) {\n attachCommand(command, config);\n }\n }\n\n const argv = [...process.argv];\n\n // If out of tree platform specifices custom platform name, we need to pass it to argv array for the init command.\n if (isCommandPassed('init') && platformName) {\n argv.push('--platform-name', platformName);\n }\n\n program.parse(argv);\n}\n\nconst bin = require.resolve('./bin');\n\nexport {run, bin, loadConfig, loadConfigAsync};\n"],"mappings":"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"}
{"version":3,"file":"index.js","names":["pkgJson","require","program","CommanderCommand","usage","version","enablePositionalOptions","handleError","err","logger","enable","opts","verbose","error","message","replace","stack","log","hasDebugMessages","info","pico","dim","reset","process","exit","printExamples","examples","output","length","formattedUsage","map","example","desc","cyan","cmd","join","concat","bold","isDetachedCommand","command","detached","isAttachedCommand","attachCommand","config","commands","find","name","Error","option","action","handleAction","args","passedOptions","argv","Array","from","slice","func","description","addHelpText","opt","options","parse","val","default","run","platformName","setupAndRun","e","isCommandPassed","commandName","filter","arg","disable","setVerbose","includes","platform","scriptName","absolutePath","path","__dirname","childProcess","execFileSync","stdio","warn","red","selectedPlatform","platformIndex","indexOf","loadConfigAsync","projectCommands","Object","values","debug","CLIError","detachedCommands","push","bin","resolve"],"sources":["../src/index.ts"],"sourcesContent":["import loadConfig, {loadConfigAsync} from '@react-native-community/cli-config';\nimport {CLIError, logger} from '@react-native-community/cli-tools';\nimport type {\n Command,\n Config,\n DetachedCommand,\n} from '@react-native-community/cli-types';\nimport childProcess from 'child_process';\nimport {Command as CommanderCommand} from 'commander';\nimport path from 'path';\nimport pico from 'picocolors';\nimport {detachedCommands, projectCommands} from './commands';\n\nexport {createDevServerMiddleware} from '@react-native-community/cli-server-api';\n\nconst pkgJson = require('../package.json');\n\nconst program = new CommanderCommand()\n .usage('[command] [options]')\n .version(pkgJson.version, '-v --version', 'Output the current version')\n .enablePositionalOptions();\n\nconst handleError = (err: Error) => {\n logger.enable();\n if (program.opts().verbose) {\n logger.error(err.message);\n } else {\n // Some error messages (esp. custom ones) might have `.` at the end already.\n const message = err.message.replace(/\\.$/, '');\n logger.error(`${message}.`);\n }\n if (err.stack) {\n logger.log(err.stack);\n }\n if (!program.opts().verbose && logger.hasDebugMessages()) {\n logger.info(\n pico.dim(\n `Run CLI with ${pico.reset('--verbose')} ${pico.dim(\n 'flag for more details.',\n )}`,\n ),\n );\n }\n process.exit(1);\n};\n\nfunction printExamples(examples: Command['examples']) {\n let output: string[] = [];\n\n if (examples && examples.length > 0) {\n const formattedUsage = examples\n .map((example) => ` ${example.desc}: \\n ${pico.cyan(example.cmd)}`)\n .join('\\n\\n');\n\n output = output.concat([pico.bold('\\nExample usage:'), formattedUsage]);\n }\n\n return output.join('\\n').concat('\\n');\n}\n\n/**\n * Custom type assertion needed for the `makeCommand` conditional\n * types to be properly resolved.\n */\nfunction isDetachedCommand(\n command: Command<boolean>,\n): command is DetachedCommand {\n return command.detached === true;\n}\n\nfunction isAttachedCommand(\n command: Command<boolean>,\n): command is Command<false> {\n return !isDetachedCommand(command);\n}\n\n/**\n * Attaches a new command onto global `commander` instance.\n *\n * Note that this function takes additional argument of `Config` type in case\n * passed `command` needs it for its execution.\n */\nfunction attachCommand<C extends Command<boolean>>(\n command: C,\n config: C extends DetachedCommand ? Config | undefined : Config,\n): void {\n // commander@9.x will internally push commands into an array structure!\n // Commands with duplicate names (e.g. from config) must be reduced before\n // calling this function.\n // https://unpkg.com/browse/commander@9.4.1/lib/command.js#L1308\n if (program.commands.find((cmd) => cmd.name() === command.name)) {\n throw new Error(\n 'Invariant Violation: Attempted to override an already registered ' +\n `command: '${command.name}'. This is not supported by the underlying ` +\n 'library and will cause bugs. Ensure a command with this `name` is ' +\n 'only registered once.',\n );\n }\n\n const cmd = program\n .command(command.name)\n .option('--verbose', 'Increase logging verbosity')\n .action(async function handleAction(\n this: CommanderCommand,\n ...args: string[]\n ) {\n const passedOptions = this.opts();\n const argv = Array.from(args).slice(0, -1);\n\n try {\n if (isDetachedCommand(command)) {\n await command.func(argv, passedOptions, config);\n } else if (isAttachedCommand(command)) {\n await command.func(argv, config, passedOptions);\n } else {\n throw new Error('A command must be either attached or detached');\n }\n } catch (error) {\n handleError(error as Error);\n }\n });\n\n if (command.description) {\n cmd.description(command.description);\n }\n\n cmd.addHelpText('after', printExamples(command.examples));\n\n for (const opt of command.options || []) {\n cmd.option(\n opt.name,\n opt.description ?? '',\n opt.parse || ((val: any) => val),\n typeof opt.default === 'function' ? opt.default(config) : opt.default,\n );\n }\n}\n\n// Platform name is optional argument passed by out of tree platforms.\nasync function run(platformName?: string) {\n try {\n await setupAndRun(platformName);\n } catch (e) {\n handleError(e as Error);\n }\n}\n\nconst isCommandPassed = (commandName: string) => {\n return process.argv.filter((arg) => arg === commandName).length > 0;\n};\n\nasync function setupAndRun(platformName?: string) {\n // Commander is not available yet\n\n // when we run `config`, we don't want to output anything to the console. We\n // expect it to return valid JSON\n if (isCommandPassed('config')) {\n logger.disable();\n }\n\n logger.setVerbose(process.argv.includes('--verbose'));\n\n // We only have a setup script for UNIX envs currently\n if (process.platform !== 'win32') {\n const scriptName = 'setup_env.sh';\n const absolutePath = path.join(__dirname, '..', scriptName);\n\n try {\n childProcess.execFileSync(absolutePath, {stdio: 'pipe'});\n } catch (error) {\n logger.warn(\n `Failed to run environment setup script \"${scriptName}\"\\n\\n${pico.red(\n `${error}`,\n )}`,\n );\n logger.info(\n `React Native CLI will continue to run if your local environment matches what React Native expects. If it does fail, check out \"${absolutePath}\" and adjust your environment to match it.`,\n );\n }\n }\n\n let config: Config | undefined;\n try {\n let selectedPlatform: string | undefined;\n\n /*\n When linking dependencies in iOS and Android build we're passing `--platform` argument,\n to only load the configuration for the specific platform.\n */\n if (isCommandPassed('config')) {\n const platformIndex = process.argv.indexOf('--platform');\n\n if (platformIndex !== -1 && platformIndex < process.argv.length - 1) {\n selectedPlatform = process.argv[platformIndex + 1];\n }\n }\n\n config = await loadConfigAsync({\n selectedPlatform,\n });\n\n logger.enable();\n\n const commands: Record<string, Command> = {};\n\n // Reduce overridden commands before registering\n for (const command of [...projectCommands, ...config.commands]) {\n commands[command.name] = command;\n }\n\n for (const command of Object.values(commands)) {\n attachCommand(command, config);\n }\n } catch (error) {\n /**\n * When there is no `package.json` found, the CLI will enter `detached` mode and a subset\n * of commands will be available. That's why we don't throw on such kind of error.\n */\n if ((error as Error).message.includes(\"We couldn't find a package.json\")) {\n logger.debug((error as Error).message);\n logger.debug(\n 'Failed to load configuration of your project. Only a subset of commands will be available.',\n );\n } else {\n throw new CLIError(\n 'Failed to load configuration of your project.',\n error as any,\n );\n }\n } finally {\n for (const command of detachedCommands) {\n attachCommand(command, config);\n }\n }\n\n const argv = [...process.argv];\n\n // If out of tree platform specifices custom platform name, we need to pass it to argv array for the init command.\n if (isCommandPassed('init') && platformName) {\n argv.push('--platform-name', platformName);\n }\n\n program.parse(argv);\n}\n\nconst bin = require.resolve('./bin');\n\nexport {run, bin, loadConfig, loadConfigAsync};\n"],"mappings":"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"}

@@ -59,5 +59,7 @@ "use strict";

cwd
}) || _findUp().default.sync('bun.lock', {
cwd
});
}
//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/bun.js.map
//# sourceMappingURL=bun.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["getBunVersionIfAvailable","bunVersion","execSync","stdio","toString","trim","error","semver","gte","logger","isProjectUsingBun","cwd","findUp","sync"],"sources":["../../src/tools/bun.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport {execSync} from 'child_process';\nimport findUp from 'find-up';\nimport semver from 'semver';\n\nexport function getBunVersionIfAvailable() {\n let bunVersion;\n\n try {\n bunVersion = (\n execSync('bun --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n } catch (error) {\n return null;\n }\n\n try {\n if (semver.gte(bunVersion, '1.0.0')) {\n return bunVersion;\n }\n return null;\n } catch (error) {\n logger.error(`Cannot parse bun version: ${bunVersion}`);\n return null;\n }\n}\n\nexport function isProjectUsingBun(cwd: string) {\n return findUp.sync('bun.lockb', {cwd});\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;AAA4B;AAErB,SAASA,wBAAwB,GAAG;EACzC,IAAIC,UAAU;EAEd,IAAI;IACFA,UAAU,GAAG,CACX,IAAAC,yBAAQ,EAAC,eAAe,EAAE;MACxBC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ;IAC7B,CAAC,CAAC,CAACC,QAAQ,EAAE,IAAI,EAAE,EACnBC,IAAI,EAAE;EACV,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,IAAI;EACb;EAEA,IAAI;IACF,IAAIC,iBAAM,CAACC,GAAG,CAACP,UAAU,EAAE,OAAO,CAAC,EAAE;MACnC,OAAOA,UAAU;IACnB;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdG,kBAAM,CAACH,KAAK,CAAE,6BAA4BL,UAAW,EAAC,CAAC;IACvD,OAAO,IAAI;EACb;AACF;AAEO,SAASS,iBAAiB,CAACC,GAAW,EAAE;EAC7C,OAAOC,iBAAM,CAACC,IAAI,CAAC,WAAW,EAAE;IAACF;EAAG,CAAC,CAAC;AACxC"}
{"version":3,"file":"bun.js","names":["getBunVersionIfAvailable","bunVersion","execSync","stdio","toString","trim","error","semver","gte","logger","isProjectUsingBun","cwd","findUp","sync"],"sources":["../../src/tools/bun.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport {execSync} from 'child_process';\nimport findUp from 'find-up';\nimport semver from 'semver';\n\nexport function getBunVersionIfAvailable() {\n let bunVersion;\n\n try {\n bunVersion = (\n execSync('bun --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n } catch (error) {\n return null;\n }\n\n try {\n if (semver.gte(bunVersion, '1.0.0')) {\n return bunVersion;\n }\n return null;\n } catch (error) {\n logger.error(`Cannot parse bun version: ${bunVersion}`);\n return null;\n }\n}\n\nexport function isProjectUsingBun(cwd: string) {\n return findUp.sync('bun.lockb', {cwd}) || findUp.sync('bun.lock', {cwd});\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;AAA4B;AAErB,SAASA,wBAAwB,GAAG;EACzC,IAAIC,UAAU;EAEd,IAAI;IACFA,UAAU,GAAG,CACX,IAAAC,yBAAQ,EAAC,eAAe,EAAE;MACxBC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ;IAC7B,CAAC,CAAC,CAACC,QAAQ,EAAE,IAAI,EAAE,EACnBC,IAAI,EAAE;EACV,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,IAAI;EACb;EAEA,IAAI;IACF,IAAIC,iBAAM,CAACC,GAAG,CAACP,UAAU,EAAE,OAAO,CAAC,EAAE;MACnC,OAAOA,UAAU;IACnB;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdG,kBAAM,CAACH,KAAK,CAAE,6BAA4BL,UAAW,EAAC,CAAC;IACvD,OAAO,IAAI;EACb;AACF;AAEO,SAASS,iBAAiB,CAACC,GAAW,EAAE;EAC7C,OAAOC,iBAAM,CAACC,IAAI,CAAC,WAAW,EAAE;IAACF;EAAG,CAAC,CAAC,IAAIC,iBAAM,CAACC,IAAI,CAAC,UAAU,EAAE;IAACF;EAAG,CAAC,CAAC;AAC1E"}

@@ -97,2 +97,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/copyFiles.js.map
//# sourceMappingURL=copyFiles.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["copyFiles","srcPath","destPath","options","Promise","all","walk","map","absoluteSrcFilePath","exclude","some","p","test","relativeFilePath","path","relative","copyFile","resolve","fs","lstatSync","isDirectory","existsSync","mkdirSync","reject","copyBinaryFile","err","cb","cbCalled","mode","statSync","readStream","createReadStream","writeStream","createWriteStream","on","done","pipe"],"sources":["../../src/tools/copyFiles.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport walk from './walk';\n\ntype Options = {\n exclude?: Array<RegExp>;\n};\n\n/**\n * Copy files (binary included) recursively.\n */\nasync function copyFiles(\n srcPath: string,\n destPath: string,\n options: Options = {},\n) {\n return Promise.all(\n walk(srcPath).map(async (absoluteSrcFilePath: string) => {\n const exclude = options.exclude;\n if (exclude && exclude.some((p) => p.test(absoluteSrcFilePath))) {\n return;\n }\n const relativeFilePath = path.relative(srcPath, absoluteSrcFilePath);\n await copyFile(\n absoluteSrcFilePath,\n path.resolve(destPath, relativeFilePath),\n );\n }),\n );\n}\n\n/**\n * Copy a file to given destination.\n */\nfunction copyFile(srcPath: string, destPath: string) {\n if (fs.lstatSync(srcPath).isDirectory()) {\n if (!fs.existsSync(destPath)) {\n fs.mkdirSync(destPath);\n }\n // Not recursive\n return;\n }\n\n return new Promise((resolve, reject) => {\n copyBinaryFile(srcPath, destPath, (err) => {\n if (err) {\n reject(err);\n }\n resolve(destPath);\n });\n });\n}\n\n/**\n * Same as 'cp' on Unix. Don't do any replacements.\n */\nfunction copyBinaryFile(\n srcPath: string,\n destPath: string,\n cb: (err?: Error) => void,\n) {\n let cbCalled = false;\n const {mode} = fs.statSync(srcPath);\n const readStream = fs.createReadStream(srcPath);\n const writeStream = fs.createWriteStream(destPath, {mode});\n readStream.on('error', (err) => {\n done(err);\n });\n writeStream.on('error', (err) => {\n done(err);\n });\n readStream.on('close', () => {\n done();\n });\n readStream.pipe(writeStream);\n function done(err?: Error) {\n if (!cbCalled) {\n cb(err);\n cbCalled = true;\n }\n }\n}\n\nexport default copyFiles;\n"],"mappings":";;;;;;AAOA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAA0B;AAT1B;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA,eAAeA,SAAS,CACtBC,OAAe,EACfC,QAAgB,EAChBC,OAAgB,GAAG,CAAC,CAAC,EACrB;EACA,OAAOC,OAAO,CAACC,GAAG,CAChB,IAAAC,aAAI,EAACL,OAAO,CAAC,CAACM,GAAG,CAAC,MAAOC,mBAA2B,IAAK;IACvD,MAAMC,OAAO,GAAGN,OAAO,CAACM,OAAO;IAC/B,IAAIA,OAAO,IAAIA,OAAO,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,CAACJ,mBAAmB,CAAC,CAAC,EAAE;MAC/D;IACF;IACA,MAAMK,gBAAgB,GAAGC,eAAI,CAACC,QAAQ,CAACd,OAAO,EAAEO,mBAAmB,CAAC;IACpE,MAAMQ,QAAQ,CACZR,mBAAmB,EACnBM,eAAI,CAACG,OAAO,CAACf,QAAQ,EAAEW,gBAAgB,CAAC,CACzC;EACH,CAAC,CAAC,CACH;AACH;;AAEA;AACA;AACA;AACA,SAASG,QAAQ,CAACf,OAAe,EAAEC,QAAgB,EAAE;EACnD,IAAIgB,aAAE,CAACC,SAAS,CAAClB,OAAO,CAAC,CAACmB,WAAW,EAAE,EAAE;IACvC,IAAI,CAACF,aAAE,CAACG,UAAU,CAACnB,QAAQ,CAAC,EAAE;MAC5BgB,aAAE,CAACI,SAAS,CAACpB,QAAQ,CAAC;IACxB;IACA;IACA;EACF;EAEA,OAAO,IAAIE,OAAO,CAAC,CAACa,OAAO,EAAEM,MAAM,KAAK;IACtCC,cAAc,CAACvB,OAAO,EAAEC,QAAQ,EAAGuB,GAAG,IAAK;MACzC,IAAIA,GAAG,EAAE;QACPF,MAAM,CAACE,GAAG,CAAC;MACb;MACAR,OAAO,CAACf,QAAQ,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,SAASsB,cAAc,CACrBvB,OAAe,EACfC,QAAgB,EAChBwB,EAAyB,EACzB;EACA,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAM;IAACC;EAAI,CAAC,GAAGV,aAAE,CAACW,QAAQ,CAAC5B,OAAO,CAAC;EACnC,MAAM6B,UAAU,GAAGZ,aAAE,CAACa,gBAAgB,CAAC9B,OAAO,CAAC;EAC/C,MAAM+B,WAAW,GAAGd,aAAE,CAACe,iBAAiB,CAAC/B,QAAQ,EAAE;IAAC0B;EAAI,CAAC,CAAC;EAC1DE,UAAU,CAACI,EAAE,CAAC,OAAO,EAAGT,GAAG,IAAK;IAC9BU,IAAI,CAACV,GAAG,CAAC;EACX,CAAC,CAAC;EACFO,WAAW,CAACE,EAAE,CAAC,OAAO,EAAGT,GAAG,IAAK;IAC/BU,IAAI,CAACV,GAAG,CAAC;EACX,CAAC,CAAC;EACFK,UAAU,CAACI,EAAE,CAAC,OAAO,EAAE,MAAM;IAC3BC,IAAI,EAAE;EACR,CAAC,CAAC;EACFL,UAAU,CAACM,IAAI,CAACJ,WAAW,CAAC;EAC5B,SAASG,IAAI,CAACV,GAAW,EAAE;IACzB,IAAI,CAACE,QAAQ,EAAE;MACbD,EAAE,CAACD,GAAG,CAAC;MACPE,QAAQ,GAAG,IAAI;IACjB;EACF;AACF;AAAC,eAEc3B,SAAS;AAAA"}
{"version":3,"file":"copyFiles.js","names":["copyFiles","srcPath","destPath","options","Promise","all","walk","map","absoluteSrcFilePath","exclude","some","p","test","relativeFilePath","path","relative","copyFile","resolve","fs","lstatSync","isDirectory","existsSync","mkdirSync","reject","copyBinaryFile","err","cb","cbCalled","mode","statSync","readStream","createReadStream","writeStream","createWriteStream","on","done","pipe"],"sources":["../../src/tools/copyFiles.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport walk from './walk';\n\ntype Options = {\n exclude?: Array<RegExp>;\n};\n\n/**\n * Copy files (binary included) recursively.\n */\nasync function copyFiles(\n srcPath: string,\n destPath: string,\n options: Options = {},\n) {\n return Promise.all(\n walk(srcPath).map(async (absoluteSrcFilePath: string) => {\n const exclude = options.exclude;\n if (exclude && exclude.some((p) => p.test(absoluteSrcFilePath))) {\n return;\n }\n const relativeFilePath = path.relative(srcPath, absoluteSrcFilePath);\n await copyFile(\n absoluteSrcFilePath,\n path.resolve(destPath, relativeFilePath),\n );\n }),\n );\n}\n\n/**\n * Copy a file to given destination.\n */\nfunction copyFile(srcPath: string, destPath: string) {\n if (fs.lstatSync(srcPath).isDirectory()) {\n if (!fs.existsSync(destPath)) {\n fs.mkdirSync(destPath);\n }\n // Not recursive\n return;\n }\n\n return new Promise((resolve, reject) => {\n copyBinaryFile(srcPath, destPath, (err) => {\n if (err) {\n reject(err);\n }\n resolve(destPath);\n });\n });\n}\n\n/**\n * Same as 'cp' on Unix. Don't do any replacements.\n */\nfunction copyBinaryFile(\n srcPath: string,\n destPath: string,\n cb: (err?: Error) => void,\n) {\n let cbCalled = false;\n const {mode} = fs.statSync(srcPath);\n const readStream = fs.createReadStream(srcPath);\n const writeStream = fs.createWriteStream(destPath, {mode});\n readStream.on('error', (err) => {\n done(err);\n });\n writeStream.on('error', (err) => {\n done(err);\n });\n readStream.on('close', () => {\n done();\n });\n readStream.pipe(writeStream);\n function done(err?: Error) {\n if (!cbCalled) {\n cb(err);\n cbCalled = true;\n }\n }\n}\n\nexport default copyFiles;\n"],"mappings":";;;;;;AAOA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;AAA0B;AAT1B;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA,eAAeA,SAAS,CACtBC,OAAe,EACfC,QAAgB,EAChBC,OAAgB,GAAG,CAAC,CAAC,EACrB;EACA,OAAOC,OAAO,CAACC,GAAG,CAChB,IAAAC,aAAI,EAACL,OAAO,CAAC,CAACM,GAAG,CAAC,MAAOC,mBAA2B,IAAK;IACvD,MAAMC,OAAO,GAAGN,OAAO,CAACM,OAAO;IAC/B,IAAIA,OAAO,IAAIA,OAAO,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACC,IAAI,CAACJ,mBAAmB,CAAC,CAAC,EAAE;MAC/D;IACF;IACA,MAAMK,gBAAgB,GAAGC,eAAI,CAACC,QAAQ,CAACd,OAAO,EAAEO,mBAAmB,CAAC;IACpE,MAAMQ,QAAQ,CACZR,mBAAmB,EACnBM,eAAI,CAACG,OAAO,CAACf,QAAQ,EAAEW,gBAAgB,CAAC,CACzC;EACH,CAAC,CAAC,CACH;AACH;;AAEA;AACA;AACA;AACA,SAASG,QAAQ,CAACf,OAAe,EAAEC,QAAgB,EAAE;EACnD,IAAIgB,aAAE,CAACC,SAAS,CAAClB,OAAO,CAAC,CAACmB,WAAW,EAAE,EAAE;IACvC,IAAI,CAACF,aAAE,CAACG,UAAU,CAACnB,QAAQ,CAAC,EAAE;MAC5BgB,aAAE,CAACI,SAAS,CAACpB,QAAQ,CAAC;IACxB;IACA;IACA;EACF;EAEA,OAAO,IAAIE,OAAO,CAAC,CAACa,OAAO,EAAEM,MAAM,KAAK;IACtCC,cAAc,CAACvB,OAAO,EAAEC,QAAQ,EAAGuB,GAAG,IAAK;MACzC,IAAIA,GAAG,EAAE;QACPF,MAAM,CAACE,GAAG,CAAC;MACb;MACAR,OAAO,CAACf,QAAQ,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,SAASsB,cAAc,CACrBvB,OAAe,EACfC,QAAgB,EAChBwB,EAAyB,EACzB;EACA,IAAIC,QAAQ,GAAG,KAAK;EACpB,MAAM;IAACC;EAAI,CAAC,GAAGV,aAAE,CAACW,QAAQ,CAAC5B,OAAO,CAAC;EACnC,MAAM6B,UAAU,GAAGZ,aAAE,CAACa,gBAAgB,CAAC9B,OAAO,CAAC;EAC/C,MAAM+B,WAAW,GAAGd,aAAE,CAACe,iBAAiB,CAAC/B,QAAQ,EAAE;IAAC0B;EAAI,CAAC,CAAC;EAC1DE,UAAU,CAACI,EAAE,CAAC,OAAO,EAAGT,GAAG,IAAK;IAC9BU,IAAI,CAACV,GAAG,CAAC;EACX,CAAC,CAAC;EACFO,WAAW,CAACE,EAAE,CAAC,OAAO,EAAGT,GAAG,IAAK;IAC/BU,IAAI,CAACV,GAAG,CAAC;EACX,CAAC,CAAC;EACFK,UAAU,CAACI,EAAE,CAAC,OAAO,EAAE,MAAM;IAC3BC,IAAI,EAAE;EACR,CAAC,CAAC;EACFL,UAAU,CAACM,IAAI,CAACJ,WAAW,CAAC;EAC5B,SAASG,IAAI,CAACV,GAAW,EAAE;IACzB,IAAI,CAACE,QAAQ,EAAE;MACbD,EAAE,CAACD,GAAG,CAAC;MACPE,QAAQ,GAAG,IAAI;IACjB;EACF;AACF;AAAC,eAEc3B,SAAS;AAAA"}

@@ -29,2 +29,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/executeCommand.js.map
//# sourceMappingURL=executeCommand.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["executeCommand","command","args","options","execa","stdio","silent","logger","isVerbose","cwd","root"],"sources":["../../src/tools/executeCommand.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport execa from 'execa';\n\nexport function executeCommand(\n command: string,\n args: Array<string>,\n options: {\n root: string;\n silent?: boolean;\n },\n) {\n return execa(command, args, {\n stdio: options.silent && !logger.isVerbose() ? 'pipe' : 'inherit',\n cwd: options.root,\n });\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA0B;AAEnB,SAASA,cAAc,CAC5BC,OAAe,EACfC,IAAmB,EACnBC,OAGC,EACD;EACA,OAAO,IAAAC,gBAAK,EAACH,OAAO,EAAEC,IAAI,EAAE;IAC1BG,KAAK,EAAEF,OAAO,CAACG,MAAM,IAAI,CAACC,kBAAM,CAACC,SAAS,EAAE,GAAG,MAAM,GAAG,SAAS;IACjEC,GAAG,EAAEN,OAAO,CAACO;EACf,CAAC,CAAC;AACJ"}
{"version":3,"file":"executeCommand.js","names":["executeCommand","command","args","options","execa","stdio","silent","logger","isVerbose","cwd","root"],"sources":["../../src/tools/executeCommand.ts"],"sourcesContent":["import {logger} from '@react-native-community/cli-tools';\nimport execa from 'execa';\n\nexport function executeCommand(\n command: string,\n args: Array<string>,\n options: {\n root: string;\n silent?: boolean;\n },\n) {\n return execa(command, args, {\n stdio: options.silent && !logger.isVerbose() ? 'pipe' : 'inherit',\n cwd: options.root,\n });\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA0B;AAEnB,SAASA,cAAc,CAC5BC,OAAe,EACfC,IAAmB,EACnBC,OAGC,EACD;EACA,OAAO,IAAAC,gBAAK,EAACH,OAAO,EAAEC,IAAI,EAAE;IAC1BG,KAAK,EAAEF,OAAO,CAACG,MAAM,IAAI,CAACC,kBAAM,CAACC,SAAS,EAAE,GAAG,MAAM,GAAG,SAAS;IACjEC,GAAG,EAAEN,OAAO,CAACO;EACf,CAAC,CAAC;AACJ"}

@@ -26,2 +26,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/gracefulifyFs.js.map
//# sourceMappingURL=gracefulifyFs.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["gracefulFs","gracefulify","realFs"],"sources":["../../src/tools/gracefulifyFs.ts"],"sourcesContent":["import realFs from 'fs';\nimport gracefulFs from 'graceful-fs';\n\ngracefulFs.gracefulify(realFs);\n\nexport default gracefulFs;\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAqC;AAErCA,qBAAU,CAACC,WAAW,CAACC,aAAM,CAAC;AAAC,eAEhBF,qBAAU;AAAA"}
{"version":3,"file":"gracefulifyFs.js","names":["gracefulFs","gracefulify","realFs"],"sources":["../../src/tools/gracefulifyFs.ts"],"sourcesContent":["import realFs from 'fs';\nimport gracefulFs from 'graceful-fs';\n\ngracefulFs.gracefulify(realFs);\n\nexport default gracefulFs;\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAqC;AAErCA,qBAAU,CAACC,WAAW,CAACC,aAAM,CAAC;AAAC,eAEhBF,qBAAU;AAAA"}

@@ -162,2 +162,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/npm.js.map
//# sourceMappingURL=npm.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["getNpmVersionIfAvailable","npmVersion","execSync","stdio","toString","trim","error","isProjectUsingNpm","cwd","findUp","sync","getNpmRegistryUrl","registryUrl","npmResolveConcreteVersion","packageName","tagOrVersion","url","URL","pathname","resp","fetch","indexOf","status","Error","json","version","Template","constructor","reactNativeVersion","published","Date","isPreRelease","includes","minorVersion","v","semver","parse","major","minor","getTemplateVersion","then","rnToTemplate","templateVersion","pkg","Object","entries","versions","rnVersion","scripts","valid","template","time","rnMinorVersion","push","sort","a","b","getTime"],"sources":["../../src/tools/npm.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport {execSync} from 'child_process';\nimport findUp from 'find-up';\nimport semver from 'semver';\n\nexport function getNpmVersionIfAvailable() {\n let npmVersion;\n try {\n // execSync returns a Buffer -> convert to string\n npmVersion = (\n execSync('npm --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n\n return npmVersion;\n } catch (error) {\n return null;\n }\n}\n\nexport function isProjectUsingNpm(cwd: string) {\n return findUp.sync('package-lock.json', {cwd});\n}\n\nexport const getNpmRegistryUrl = (() => {\n // Lazily resolve npm registry url since it is only needed when initializing a\n // new project.\n let registryUrl = '';\n return () => {\n if (!registryUrl) {\n try {\n registryUrl = execSync(\n 'npm config get registry --workspaces=false --include-workspace-root',\n )\n .toString()\n .trim();\n } catch {\n registryUrl = 'https://registry.npmjs.org/';\n }\n }\n return registryUrl;\n };\n})();\n\n/**\n * Convert an npm tag to a concrete version, for example:\n * - next -> 0.75.0-rc.0\n * - nightly -> 0.75.0-nightly-20240618-5df5ed1a8\n */\nexport async function npmResolveConcreteVersion(\n packageName: string,\n tagOrVersion: string,\n): Promise<string> {\n const url = new URL(getNpmRegistryUrl());\n url.pathname = `${packageName}/${tagOrVersion}`;\n const resp = await fetch(url);\n if (\n [\n 200, // OK\n 301, // Moved Permanemently\n 302, // Found\n 304, // Not Modified\n 307, // Temporary Redirect\n 308, // Permanent Redirect\n ].indexOf(resp.status) === -1\n ) {\n throw new Error(`Unknown version ${packageName}@${tagOrVersion}`);\n }\n const json: any = await resp.json();\n return json.version;\n}\n\ntype TimeStampString = string;\ntype TemplateVersion = string;\ntype VersionedTemplates = {\n [rnVersion: string]: Template[];\n};\n\ntype NpmTemplateResponse = {\n versions: {\n // Template version, semver including -rc candidates\n [version: TemplateVersion]: {\n scripts?: {\n // Version of react-native this is built for\n reactNativeVersion?: string;\n // The initial implemntation used this, but moved to reactNativeVersion\n version?: string;\n };\n };\n };\n time: {\n created: string;\n modified: string;\n [version: TemplateVersion]: TimeStampString;\n };\n};\n\nclass Template {\n version: string;\n reactNativeVersion: string;\n published: Date;\n\n constructor(version: string, reactNativeVersion: string, published: string) {\n this.version = version;\n this.reactNativeVersion = reactNativeVersion;\n this.published = new Date(published);\n }\n\n get isPreRelease() {\n return this.version.includes('-rc');\n }\n}\n\nconst minorVersion = (version: string) => {\n const v = semver.parse(version)!;\n return `${v.major}.${v.minor}`;\n};\n\nexport async function getTemplateVersion(\n reactNativeVersion: string,\n): Promise<TemplateVersion | undefined> {\n const json = await fetch(\n new URL('@react-native-community/template', getNpmRegistryUrl()),\n ).then((resp) => resp.json() as Promise<NpmTemplateResponse>);\n\n // We are abusing which npm metadata is publicly available through the registry. Scripts\n // is always captured, and we use this in the Github Action that manages our releases to\n // capture the version of React Native the template is built with.\n //\n // Users are interested in:\n // - IF there a match for React Native MAJOR.MINOR.PATCH?\n // - Yes: if there are >= 2 versions, pick the one last published. This lets us release\n // specific fixes for React Native versions.\n // - ELSE, is there a match for React Native MINOR.PATCH?\n // - Yes: if there are >= 2 versions, pick the one last published. This decouples us from\n // React Native releases.\n // - No: we don't have a version of the template for a version of React Native. There should\n // at a minimum be at last one version cut for each MINOR.PATCH since 0.75. Before this\n // the template was shipped with React Native\n const rnToTemplate: VersionedTemplates = {};\n for (const [templateVersion, pkg] of Object.entries(json.versions)) {\n const rnVersion = pkg?.scripts?.reactNativeVersion ?? pkg?.scripts?.version;\n if (rnVersion == null || !semver.valid(rnVersion)) {\n // This is a very early version that doesn't have the correct metadata embedded\n continue;\n }\n\n const template = new Template(\n templateVersion,\n rnVersion,\n json.time[templateVersion],\n );\n\n const rnMinorVersion = minorVersion(rnVersion);\n\n rnToTemplate[rnVersion] = rnToTemplate[rnVersion] ?? [];\n rnToTemplate[rnVersion].push(template);\n rnToTemplate[rnMinorVersion] = rnToTemplate[rnMinorVersion] ?? [];\n rnToTemplate[rnMinorVersion].push(template);\n }\n\n // Make sure the last published is the first one in each version of React Native\n for (const v in rnToTemplate) {\n rnToTemplate[v].sort(\n (a, b) => b.published.getTime() - a.published.getTime(),\n );\n }\n\n if (reactNativeVersion in rnToTemplate) {\n return rnToTemplate[reactNativeVersion][0].version;\n }\n const rnMinorVersion = minorVersion(reactNativeVersion);\n if (rnMinorVersion in rnToTemplate) {\n return rnToTemplate[rnMinorVersion][0].version;\n }\n return;\n}\n"],"mappings":"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"}
{"version":3,"file":"npm.js","names":["getNpmVersionIfAvailable","npmVersion","execSync","stdio","toString","trim","error","isProjectUsingNpm","cwd","findUp","sync","getNpmRegistryUrl","registryUrl","npmResolveConcreteVersion","packageName","tagOrVersion","url","URL","pathname","resp","fetch","indexOf","status","Error","json","version","Template","constructor","reactNativeVersion","published","Date","isPreRelease","includes","minorVersion","v","semver","parse","major","minor","getTemplateVersion","then","rnToTemplate","templateVersion","pkg","Object","entries","versions","rnVersion","scripts","valid","template","time","rnMinorVersion","push","sort","a","b","getTime"],"sources":["../../src/tools/npm.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport {execSync} from 'child_process';\nimport findUp from 'find-up';\nimport semver from 'semver';\n\nexport function getNpmVersionIfAvailable() {\n let npmVersion;\n try {\n // execSync returns a Buffer -> convert to string\n npmVersion = (\n execSync('npm --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n\n return npmVersion;\n } catch (error) {\n return null;\n }\n}\n\nexport function isProjectUsingNpm(cwd: string) {\n return findUp.sync('package-lock.json', {cwd});\n}\n\nexport const getNpmRegistryUrl = (() => {\n // Lazily resolve npm registry url since it is only needed when initializing a\n // new project.\n let registryUrl = '';\n return () => {\n if (!registryUrl) {\n try {\n registryUrl = execSync(\n 'npm config get registry --workspaces=false --include-workspace-root',\n )\n .toString()\n .trim();\n } catch {\n registryUrl = 'https://registry.npmjs.org/';\n }\n }\n return registryUrl;\n };\n})();\n\n/**\n * Convert an npm tag to a concrete version, for example:\n * - next -> 0.75.0-rc.0\n * - nightly -> 0.75.0-nightly-20240618-5df5ed1a8\n */\nexport async function npmResolveConcreteVersion(\n packageName: string,\n tagOrVersion: string,\n): Promise<string> {\n const url = new URL(getNpmRegistryUrl());\n url.pathname = `${packageName}/${tagOrVersion}`;\n const resp = await fetch(url);\n if (\n [\n 200, // OK\n 301, // Moved Permanemently\n 302, // Found\n 304, // Not Modified\n 307, // Temporary Redirect\n 308, // Permanent Redirect\n ].indexOf(resp.status) === -1\n ) {\n throw new Error(`Unknown version ${packageName}@${tagOrVersion}`);\n }\n const json: any = await resp.json();\n return json.version;\n}\n\ntype TimeStampString = string;\ntype TemplateVersion = string;\ntype VersionedTemplates = {\n [rnVersion: string]: Template[];\n};\n\ntype NpmTemplateResponse = {\n versions: {\n // Template version, semver including -rc candidates\n [version: TemplateVersion]: {\n scripts?: {\n // Version of react-native this is built for\n reactNativeVersion?: string;\n // The initial implemntation used this, but moved to reactNativeVersion\n version?: string;\n };\n };\n };\n time: {\n created: string;\n modified: string;\n [version: TemplateVersion]: TimeStampString;\n };\n};\n\nclass Template {\n version: string;\n reactNativeVersion: string;\n published: Date;\n\n constructor(version: string, reactNativeVersion: string, published: string) {\n this.version = version;\n this.reactNativeVersion = reactNativeVersion;\n this.published = new Date(published);\n }\n\n get isPreRelease() {\n return this.version.includes('-rc');\n }\n}\n\nconst minorVersion = (version: string) => {\n const v = semver.parse(version)!;\n return `${v.major}.${v.minor}`;\n};\n\nexport async function getTemplateVersion(\n reactNativeVersion: string,\n): Promise<TemplateVersion | undefined> {\n const json = await fetch(\n new URL('@react-native-community/template', getNpmRegistryUrl()),\n ).then((resp) => resp.json() as Promise<NpmTemplateResponse>);\n\n // We are abusing which npm metadata is publicly available through the registry. Scripts\n // is always captured, and we use this in the Github Action that manages our releases to\n // capture the version of React Native the template is built with.\n //\n // Users are interested in:\n // - IF there a match for React Native MAJOR.MINOR.PATCH?\n // - Yes: if there are >= 2 versions, pick the one last published. This lets us release\n // specific fixes for React Native versions.\n // - ELSE, is there a match for React Native MINOR.PATCH?\n // - Yes: if there are >= 2 versions, pick the one last published. This decouples us from\n // React Native releases.\n // - No: we don't have a version of the template for a version of React Native. There should\n // at a minimum be at last one version cut for each MINOR.PATCH since 0.75. Before this\n // the template was shipped with React Native\n const rnToTemplate: VersionedTemplates = {};\n for (const [templateVersion, pkg] of Object.entries(json.versions)) {\n const rnVersion = pkg?.scripts?.reactNativeVersion ?? pkg?.scripts?.version;\n if (rnVersion == null || !semver.valid(rnVersion)) {\n // This is a very early version that doesn't have the correct metadata embedded\n continue;\n }\n\n const template = new Template(\n templateVersion,\n rnVersion,\n json.time[templateVersion],\n );\n\n const rnMinorVersion = minorVersion(rnVersion);\n\n rnToTemplate[rnVersion] = rnToTemplate[rnVersion] ?? [];\n rnToTemplate[rnVersion].push(template);\n rnToTemplate[rnMinorVersion] = rnToTemplate[rnMinorVersion] ?? [];\n rnToTemplate[rnMinorVersion].push(template);\n }\n\n // Make sure the last published is the first one in each version of React Native\n for (const v in rnToTemplate) {\n rnToTemplate[v].sort(\n (a, b) => b.published.getTime() - a.published.getTime(),\n );\n }\n\n if (reactNativeVersion in rnToTemplate) {\n return rnToTemplate[reactNativeVersion][0].version;\n }\n const rnMinorVersion = minorVersion(reactNativeVersion);\n if (rnMinorVersion in rnToTemplate) {\n return rnToTemplate[rnMinorVersion][0].version;\n }\n return;\n}\n"],"mappings":"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"}

@@ -95,2 +95,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/packageManager.js.map
//# sourceMappingURL=packageManager.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["packageManagers","yarn","init","install","installDev","uninstall","installAll","npm","bun","configurePackageManager","packageNames","action","options","yarnAvailable","shouldUseYarn","bunAvailable","shouldUseBun","pm","packageManager","executable","flags","args","executeCommand","getYarnVersionIfAvailable","isProjectUsingYarn","root","getBunVersionIfAvailable","isProjectUsingBun","shouldUseNpm","getNpmVersionIfAvailable","isProjectUsingNpm"],"sources":["../../src/tools/packageManager.ts"],"sourcesContent":["import {getYarnVersionIfAvailable, isProjectUsingYarn} from './yarn';\nimport {getBunVersionIfAvailable, isProjectUsingBun} from './bun';\nimport {getNpmVersionIfAvailable, isProjectUsingNpm} from './npm';\nimport {executeCommand} from './executeCommand';\n\nexport type PackageManager = keyof typeof packageManagers;\n\ntype Options = {\n packageManager: PackageManager;\n silent?: boolean;\n root: string;\n};\n\nconst packageManagers = {\n yarn: {\n init: ['init', '-y'],\n install: ['add'],\n installDev: ['add', '-D'],\n uninstall: ['remove'],\n installAll: ['install'],\n },\n npm: {\n init: ['init', '-y'],\n install: ['install', '--save', '--save-exact'],\n installDev: ['install', '--save-dev', '--save-exact'],\n uninstall: ['uninstall', '--save'],\n installAll: ['install'],\n },\n bun: {\n init: ['init', '-y'],\n install: ['add', '--exact'],\n installDev: ['add', '--dev', '--exact'],\n uninstall: ['remove'],\n installAll: ['install'],\n },\n};\n\nfunction configurePackageManager(\n packageNames: Array<string>,\n action: 'init' | 'install' | 'installDev' | 'installAll' | 'uninstall',\n options: Options,\n) {\n let yarnAvailable = shouldUseYarn(options);\n let bunAvailable = shouldUseBun(options);\n\n let pm: PackageManager = 'npm';\n\n if (options.packageManager === 'bun') {\n if (bunAvailable) {\n pm = 'bun';\n } else if (yarnAvailable) {\n pm = 'yarn';\n } else {\n pm = 'npm';\n }\n }\n\n if (options.packageManager === 'yarn' && yarnAvailable) {\n pm = 'yarn';\n }\n\n const [executable, ...flags] = packageManagers[pm][action];\n const args = [executable, ...flags, ...packageNames];\n return executeCommand(pm, args, options);\n}\n\nexport function shouldUseYarn(options: Options) {\n if (options.packageManager === 'yarn') {\n return getYarnVersionIfAvailable();\n }\n return isProjectUsingYarn(options.root) && getYarnVersionIfAvailable();\n}\n\nexport function shouldUseBun(options: Options) {\n if (options.packageManager === 'bun') {\n return getBunVersionIfAvailable();\n }\n\n return isProjectUsingBun(options.root) && getBunVersionIfAvailable();\n}\n\nexport function shouldUseNpm(options: Options) {\n if (options.packageManager === 'npm') {\n return getNpmVersionIfAvailable();\n }\n\n return isProjectUsingNpm(options.root) && getNpmVersionIfAvailable();\n}\n\nexport function init(options: Options) {\n return configurePackageManager([], 'init', options);\n}\n\nexport function install(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'install', options);\n}\n\nexport function installDev(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'installDev', options);\n}\n\nexport function uninstall(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'uninstall', options);\n}\n\nexport function installAll(options: Options) {\n return configurePackageManager([], 'installAll', options);\n}\n"],"mappings":"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"}
{"version":3,"file":"packageManager.js","names":["packageManagers","yarn","init","install","installDev","uninstall","installAll","npm","bun","configurePackageManager","packageNames","action","options","yarnAvailable","shouldUseYarn","bunAvailable","shouldUseBun","pm","packageManager","executable","flags","args","executeCommand","getYarnVersionIfAvailable","isProjectUsingYarn","root","getBunVersionIfAvailable","isProjectUsingBun","shouldUseNpm","getNpmVersionIfAvailable","isProjectUsingNpm"],"sources":["../../src/tools/packageManager.ts"],"sourcesContent":["import {getYarnVersionIfAvailable, isProjectUsingYarn} from './yarn';\nimport {getBunVersionIfAvailable, isProjectUsingBun} from './bun';\nimport {getNpmVersionIfAvailable, isProjectUsingNpm} from './npm';\nimport {executeCommand} from './executeCommand';\n\nexport type PackageManager = keyof typeof packageManagers;\n\ntype Options = {\n packageManager: PackageManager;\n silent?: boolean;\n root: string;\n};\n\nconst packageManagers = {\n yarn: {\n init: ['init', '-y'],\n install: ['add'],\n installDev: ['add', '-D'],\n uninstall: ['remove'],\n installAll: ['install'],\n },\n npm: {\n init: ['init', '-y'],\n install: ['install', '--save', '--save-exact'],\n installDev: ['install', '--save-dev', '--save-exact'],\n uninstall: ['uninstall', '--save'],\n installAll: ['install'],\n },\n bun: {\n init: ['init', '-y'],\n install: ['add', '--exact'],\n installDev: ['add', '--dev', '--exact'],\n uninstall: ['remove'],\n installAll: ['install'],\n },\n};\n\nfunction configurePackageManager(\n packageNames: Array<string>,\n action: 'init' | 'install' | 'installDev' | 'installAll' | 'uninstall',\n options: Options,\n) {\n let yarnAvailable = shouldUseYarn(options);\n let bunAvailable = shouldUseBun(options);\n\n let pm: PackageManager = 'npm';\n\n if (options.packageManager === 'bun') {\n if (bunAvailable) {\n pm = 'bun';\n } else if (yarnAvailable) {\n pm = 'yarn';\n } else {\n pm = 'npm';\n }\n }\n\n if (options.packageManager === 'yarn' && yarnAvailable) {\n pm = 'yarn';\n }\n\n const [executable, ...flags] = packageManagers[pm][action];\n const args = [executable, ...flags, ...packageNames];\n return executeCommand(pm, args, options);\n}\n\nexport function shouldUseYarn(options: Options) {\n if (options.packageManager === 'yarn') {\n return getYarnVersionIfAvailable();\n }\n return isProjectUsingYarn(options.root) && getYarnVersionIfAvailable();\n}\n\nexport function shouldUseBun(options: Options) {\n if (options.packageManager === 'bun') {\n return getBunVersionIfAvailable();\n }\n\n return isProjectUsingBun(options.root) && getBunVersionIfAvailable();\n}\n\nexport function shouldUseNpm(options: Options) {\n if (options.packageManager === 'npm') {\n return getNpmVersionIfAvailable();\n }\n\n return isProjectUsingNpm(options.root) && getNpmVersionIfAvailable();\n}\n\nexport function init(options: Options) {\n return configurePackageManager([], 'init', options);\n}\n\nexport function install(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'install', options);\n}\n\nexport function installDev(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'installDev', options);\n}\n\nexport function uninstall(packageNames: Array<string>, options: Options) {\n return configurePackageManager(packageNames, 'uninstall', options);\n}\n\nexport function installAll(options: Options) {\n return configurePackageManager([], 'installAll', options);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAUA,MAAMA,eAAe,GAAG;EACtBC,IAAI,EAAE;IACJC,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACpBC,OAAO,EAAE,CAAC,KAAK,CAAC;IAChBC,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;IACzBC,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrBC,UAAU,EAAE,CAAC,SAAS;EACxB,CAAC;EACDC,GAAG,EAAE;IACHL,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACpBC,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC9CC,UAAU,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC;IACrDC,SAAS,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;IAClCC,UAAU,EAAE,CAAC,SAAS;EACxB,CAAC;EACDE,GAAG,EAAE;IACHN,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACpBC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IAC3BC,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;IACvCC,SAAS,EAAE,CAAC,QAAQ,CAAC;IACrBC,UAAU,EAAE,CAAC,SAAS;EACxB;AACF,CAAC;AAED,SAASG,uBAAuB,CAC9BC,YAA2B,EAC3BC,MAAsE,EACtEC,OAAgB,EAChB;EACA,IAAIC,aAAa,GAAGC,aAAa,CAACF,OAAO,CAAC;EAC1C,IAAIG,YAAY,GAAGC,YAAY,CAACJ,OAAO,CAAC;EAExC,IAAIK,EAAkB,GAAG,KAAK;EAE9B,IAAIL,OAAO,CAACM,cAAc,KAAK,KAAK,EAAE;IACpC,IAAIH,YAAY,EAAE;MAChBE,EAAE,GAAG,KAAK;IACZ,CAAC,MAAM,IAAIJ,aAAa,EAAE;MACxBI,EAAE,GAAG,MAAM;IACb,CAAC,MAAM;MACLA,EAAE,GAAG,KAAK;IACZ;EACF;EAEA,IAAIL,OAAO,CAACM,cAAc,KAAK,MAAM,IAAIL,aAAa,EAAE;IACtDI,EAAE,GAAG,MAAM;EACb;EAEA,MAAM,CAACE,UAAU,EAAE,GAAGC,KAAK,CAAC,GAAGpB,eAAe,CAACiB,EAAE,CAAC,CAACN,MAAM,CAAC;EAC1D,MAAMU,IAAI,GAAG,CAACF,UAAU,EAAE,GAAGC,KAAK,EAAE,GAAGV,YAAY,CAAC;EACpD,OAAO,IAAAY,8BAAc,EAACL,EAAE,EAAEI,IAAI,EAAET,OAAO,CAAC;AAC1C;AAEO,SAASE,aAAa,CAACF,OAAgB,EAAE;EAC9C,IAAIA,OAAO,CAACM,cAAc,KAAK,MAAM,EAAE;IACrC,OAAO,IAAAK,+BAAyB,GAAE;EACpC;EACA,OAAO,IAAAC,wBAAkB,EAACZ,OAAO,CAACa,IAAI,CAAC,IAAI,IAAAF,+BAAyB,GAAE;AACxE;AAEO,SAASP,YAAY,CAACJ,OAAgB,EAAE;EAC7C,IAAIA,OAAO,CAACM,cAAc,KAAK,KAAK,EAAE;IACpC,OAAO,IAAAQ,6BAAwB,GAAE;EACnC;EAEA,OAAO,IAAAC,sBAAiB,EAACf,OAAO,CAACa,IAAI,CAAC,IAAI,IAAAC,6BAAwB,GAAE;AACtE;AAEO,SAASE,YAAY,CAAChB,OAAgB,EAAE;EAC7C,IAAIA,OAAO,CAACM,cAAc,KAAK,KAAK,EAAE;IACpC,OAAO,IAAAW,6BAAwB,GAAE;EACnC;EAEA,OAAO,IAAAC,sBAAiB,EAAClB,OAAO,CAACa,IAAI,CAAC,IAAI,IAAAI,6BAAwB,GAAE;AACtE;AAEO,SAAS3B,IAAI,CAACU,OAAgB,EAAE;EACrC,OAAOH,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAEG,OAAO,CAAC;AACrD;AAEO,SAAST,OAAO,CAACO,YAA2B,EAAEE,OAAgB,EAAE;EACrE,OAAOH,uBAAuB,CAACC,YAAY,EAAE,SAAS,EAAEE,OAAO,CAAC;AAClE;AAEO,SAASR,UAAU,CAACM,YAA2B,EAAEE,OAAgB,EAAE;EACxE,OAAOH,uBAAuB,CAACC,YAAY,EAAE,YAAY,EAAEE,OAAO,CAAC;AACrE;AAEO,SAASP,SAAS,CAACK,YAA2B,EAAEE,OAAgB,EAAE;EACvE,OAAOH,uBAAuB,CAACC,YAAY,EAAE,WAAW,EAAEE,OAAO,CAAC;AACpE;AAEO,SAASN,UAAU,CAACM,OAAgB,EAAE;EAC3C,OAAOH,uBAAuB,CAAC,EAAE,EAAE,YAAY,EAAEG,OAAO,CAAC;AAC3D"}

@@ -22,2 +22,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/replacePathSepForRegex.js.map
//# sourceMappingURL=replacePathSepForRegex.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["replacePathSepForRegex","string","path","sep","replace","_match","_","p2"],"sources":["../../src/tools/replacePathSepForRegex.ts"],"sourcesContent":["import path from 'path';\n\nexport default function replacePathSepForRegex(string: string) {\n if (path.sep === '\\\\') {\n return string.replace(\n /(\\/|(.)?\\\\(?![[\\]{}()*+?.^$|\\\\]))/g,\n (_match, _, p2) => (p2 && p2 !== '\\\\' ? p2 + '\\\\\\\\' : '\\\\\\\\'),\n );\n }\n return string;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwB;AAET,SAASA,sBAAsB,CAACC,MAAc,EAAE;EAC7D,IAAIC,eAAI,CAACC,GAAG,KAAK,IAAI,EAAE;IACrB,OAAOF,MAAM,CAACG,OAAO,CACnB,oCAAoC,EACpC,CAACC,MAAM,EAAEC,CAAC,EAAEC,EAAE,KAAMA,EAAE,IAAIA,EAAE,KAAK,IAAI,GAAGA,EAAE,GAAG,MAAM,GAAG,MAAO,CAC9D;EACH;EACA,OAAON,MAAM;AACf"}
{"version":3,"file":"replacePathSepForRegex.js","names":["replacePathSepForRegex","string","path","sep","replace","_match","_","p2"],"sources":["../../src/tools/replacePathSepForRegex.ts"],"sourcesContent":["import path from 'path';\n\nexport default function replacePathSepForRegex(string: string) {\n if (path.sep === '\\\\') {\n return string.replace(\n /(\\/|(.)?\\\\(?![[\\]{}()*+?.^$|\\\\]))/g,\n (_match, _, p2) => (p2 && p2 !== '\\\\' ? p2 + '\\\\\\\\' : '\\\\\\\\'),\n );\n }\n return string;\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwB;AAET,SAASA,sBAAsB,CAACC,MAAc,EAAE;EAC7D,IAAIC,eAAI,CAACC,GAAG,KAAK,IAAI,EAAE;IACrB,OAAOF,MAAM,CAACG,OAAO,CACnB,oCAAoC,EACpC,CAACC,MAAM,EAAEC,CAAC,EAAEC,EAAE,KAAMA,EAAE,IAAIA,EAAE,KAAK,IAAI,GAAGA,EAAE,GAAG,MAAM,GAAG,MAAO,CAC9D;EACH;EACA,OAAON,MAAM;AACf"}

@@ -41,2 +41,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/walk.js.map
//# sourceMappingURL=walk.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["walk","current","fs","lstatSync","isDirectory","files","readdirSync","map","child","path","join","result","concat","apply"],"sources":["../../src/tools/walk.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport fs from 'fs';\nimport path from 'path';\n\nfunction walk(current: string): string[] {\n if (!fs.lstatSync(current).isDirectory()) {\n return [current];\n }\n\n const files = fs\n .readdirSync(current)\n .map((child) => walk(path.join(current, child)));\n const result: string[] = [];\n return result.concat.apply([current], files);\n}\n\nexport default walk;\n"],"mappings":";;;;;;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwB;AATxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,IAAI,CAACC,OAAe,EAAY;EACvC,IAAI,CAACC,aAAE,CAACC,SAAS,CAACF,OAAO,CAAC,CAACG,WAAW,EAAE,EAAE;IACxC,OAAO,CAACH,OAAO,CAAC;EAClB;EAEA,MAAMI,KAAK,GAAGH,aAAE,CACbI,WAAW,CAACL,OAAO,CAAC,CACpBM,GAAG,CAAEC,KAAK,IAAKR,IAAI,CAACS,eAAI,CAACC,IAAI,CAACT,OAAO,EAAEO,KAAK,CAAC,CAAC,CAAC;EAClD,MAAMG,MAAgB,GAAG,EAAE;EAC3B,OAAOA,MAAM,CAACC,MAAM,CAACC,KAAK,CAAC,CAACZ,OAAO,CAAC,EAAEI,KAAK,CAAC;AAC9C;AAAC,eAEcL,IAAI;AAAA"}
{"version":3,"file":"walk.js","names":["walk","current","fs","lstatSync","isDirectory","files","readdirSync","map","child","path","join","result","concat","apply"],"sources":["../../src/tools/walk.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport fs from 'fs';\nimport path from 'path';\n\nfunction walk(current: string): string[] {\n if (!fs.lstatSync(current).isDirectory()) {\n return [current];\n }\n\n const files = fs\n .readdirSync(current)\n .map((child) => walk(path.join(current, child)));\n const result: string[] = [];\n return result.concat.apply([current], files);\n}\n\nexport default walk;\n"],"mappings":";;;;;;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAwB;AATxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,IAAI,CAACC,OAAe,EAAY;EACvC,IAAI,CAACC,aAAE,CAACC,SAAS,CAACF,OAAO,CAAC,CAACG,WAAW,EAAE,EAAE;IACxC,OAAO,CAACH,OAAO,CAAC;EAClB;EAEA,MAAMI,KAAK,GAAGH,aAAE,CACbI,WAAW,CAACL,OAAO,CAAC,CACpBM,GAAG,CAAEC,KAAK,IAAKR,IAAI,CAACS,eAAI,CAACC,IAAI,CAACT,OAAO,EAAEO,KAAK,CAAC,CAAC,CAAC;EAClD,MAAMG,MAAgB,GAAG,EAAE;EAC3B,OAAOA,MAAM,CAACC,MAAM,CAACC,KAAK,CAAC,CAACZ,OAAO,CAAC,EAAEI,KAAK,CAAC;AAC9C;AAAC,eAEcL,IAAI;AAAA"}

@@ -80,2 +80,2 @@ "use strict";

//# sourceMappingURL=/Users/thymikee/Developer/rnccli/packages/cli/build/tools/yarn.js.map
//# sourceMappingURL=yarn.js.map

@@ -1,1 +0,1 @@

{"version":3,"names":["getYarnVersionIfAvailable","yarnVersion","execSync","stdio","toString","trim","error","semver","gte","logger","isProjectUsingYarn","cwd","findUp","sync"],"sources":["../../src/tools/yarn.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport {execSync} from 'child_process';\nimport semver from 'semver';\nimport {logger} from '@react-native-community/cli-tools';\nimport findUp from 'find-up';\n\n/**\n * Use Yarn if available, it's much faster than the npm client.\n * Return the version of yarn installed on the system, null if yarn is not available.\n */\nexport function getYarnVersionIfAvailable() {\n let yarnVersion;\n try {\n // execSync returns a Buffer -> convert to string\n yarnVersion = (\n execSync('yarn --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n } catch (error) {\n return null;\n }\n // yarn < 0.16 has a 'missing manifest' bug\n try {\n if (semver.gte(yarnVersion, '0.16.0')) {\n return yarnVersion;\n }\n return null;\n } catch (error) {\n logger.error(`Cannot parse yarn version: ${yarnVersion}`);\n return null;\n }\n}\n\n/**\n * Check if project is using Yarn (has `yarn.lock` in the tree)\n */\nexport function isProjectUsingYarn(cwd: string) {\n return findUp.sync('yarn.lock', {cwd});\n}\n"],"mappings":";;;;;;;AAQA;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;AAA6B;AAX7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACO,SAASA,yBAAyB,GAAG;EAC1C,IAAIC,WAAW;EACf,IAAI;IACF;IACAA,WAAW,GAAG,CACZ,IAAAC,yBAAQ,EAAC,gBAAgB,EAAE;MACzBC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ;IAC7B,CAAC,CAAC,CAACC,QAAQ,EAAE,IAAI,EAAE,EACnBC,IAAI,EAAE;EACV,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,IAAI;EACb;EACA;EACA,IAAI;IACF,IAAIC,iBAAM,CAACC,GAAG,CAACP,WAAW,EAAE,QAAQ,CAAC,EAAE;MACrC,OAAOA,WAAW;IACpB;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdG,kBAAM,CAACH,KAAK,CAAE,8BAA6BL,WAAY,EAAC,CAAC;IACzD,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACO,SAASS,kBAAkB,CAACC,GAAW,EAAE;EAC9C,OAAOC,iBAAM,CAACC,IAAI,CAAC,WAAW,EAAE;IAACF;EAAG,CAAC,CAAC;AACxC"}
{"version":3,"file":"yarn.js","names":["getYarnVersionIfAvailable","yarnVersion","execSync","stdio","toString","trim","error","semver","gte","logger","isProjectUsingYarn","cwd","findUp","sync"],"sources":["../../src/tools/yarn.ts"],"sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport {execSync} from 'child_process';\nimport semver from 'semver';\nimport {logger} from '@react-native-community/cli-tools';\nimport findUp from 'find-up';\n\n/**\n * Use Yarn if available, it's much faster than the npm client.\n * Return the version of yarn installed on the system, null if yarn is not available.\n */\nexport function getYarnVersionIfAvailable() {\n let yarnVersion;\n try {\n // execSync returns a Buffer -> convert to string\n yarnVersion = (\n execSync('yarn --version', {\n stdio: [0, 'pipe', 'ignore'],\n }).toString() || ''\n ).trim();\n } catch (error) {\n return null;\n }\n // yarn < 0.16 has a 'missing manifest' bug\n try {\n if (semver.gte(yarnVersion, '0.16.0')) {\n return yarnVersion;\n }\n return null;\n } catch (error) {\n logger.error(`Cannot parse yarn version: ${yarnVersion}`);\n return null;\n }\n}\n\n/**\n * Check if project is using Yarn (has `yarn.lock` in the tree)\n */\nexport function isProjectUsingYarn(cwd: string) {\n return findUp.sync('yarn.lock', {cwd});\n}\n"],"mappings":";;;;;;;AAQA;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;AAA6B;AAX7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACO,SAASA,yBAAyB,GAAG;EAC1C,IAAIC,WAAW;EACf,IAAI;IACF;IACAA,WAAW,GAAG,CACZ,IAAAC,yBAAQ,EAAC,gBAAgB,EAAE;MACzBC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ;IAC7B,CAAC,CAAC,CAACC,QAAQ,EAAE,IAAI,EAAE,EACnBC,IAAI,EAAE;EACV,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,IAAI;EACb;EACA;EACA,IAAI;IACF,IAAIC,iBAAM,CAACC,GAAG,CAACP,WAAW,EAAE,QAAQ,CAAC,EAAE;MACrC,OAAOA,WAAW;IACpB;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOK,KAAK,EAAE;IACdG,kBAAM,CAACH,KAAK,CAAE,8BAA6BL,WAAY,EAAC,CAAC;IACzD,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACO,SAASS,kBAAkB,CAACC,GAAW,EAAE;EAC9C,OAAOC,iBAAM,CAACC,IAAI,CAAC,WAAW,EAAE;IAACF;EAAG,CAAC,CAAC;AACxC"}
{
"name": "@react-native-community/cli",
"version": "20.0.2",
"version": "20.1.0",
"description": "React Native CLI",

@@ -27,9 +27,8 @@ "license": "MIT",

"dependencies": {
"@react-native-community/cli-clean": "20.0.2",
"@react-native-community/cli-config": "20.0.2",
"@react-native-community/cli-doctor": "20.0.2",
"@react-native-community/cli-server-api": "20.0.2",
"@react-native-community/cli-tools": "20.0.2",
"@react-native-community/cli-types": "20.0.2",
"chalk": "^4.1.2",
"@react-native-community/cli-clean": "20.1.0",
"@react-native-community/cli-config": "20.1.0",
"@react-native-community/cli-doctor": "20.1.0",
"@react-native-community/cli-server-api": "20.1.0",
"@react-native-community/cli-tools": "20.1.0",
"@react-native-community/cli-types": "20.1.0",
"commander": "^9.4.1",

@@ -41,2 +40,3 @@ "deepmerge": "^4.3.0",

"graceful-fs": "^4.1.3",
"picocolors": "^1.1.1",
"prompts": "^2.4.2",

@@ -60,3 +60,3 @@ "semver": "^7.5.2"

},
"gitHead": "7c8951c9cd536d9688fd14fe39a977cbe3ec91c5"
"gitHead": "24f026e108a6ef9a01c37b6be215361de38ce640"
}