@react-native-windows/cli 0.76.0-preview.3 → 0.76.0-preview.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib-commonjs/commands/autolinkWindows/autolinkWindows.d.ts +1 -0
- package/lib-commonjs/commands/autolinkWindows/autolinkWindows.js +59 -15
- package/lib-commonjs/commands/autolinkWindows/autolinkWindows.js.map +1 -1
- package/lib-commonjs/commands/config/configUtils.d.ts +18 -0
- package/lib-commonjs/commands/config/configUtils.js +72 -33
- package/lib-commonjs/commands/config/configUtils.js.map +1 -1
- package/lib-commonjs/commands/config/dependencyConfig.d.ts +1 -0
- package/lib-commonjs/commands/config/dependencyConfig.js +2 -0
- package/lib-commonjs/commands/config/dependencyConfig.js.map +1 -1
- package/lib-commonjs/commands/config/projectConfig.d.ts +1 -0
- package/lib-commonjs/commands/config/projectConfig.js +10 -0
- package/lib-commonjs/commands/config/projectConfig.js.map +1 -1
- package/lib-commonjs/commands/initWindows/initWindows.d.ts +1 -0
- package/lib-commonjs/commands/initWindows/initWindows.js +14 -9
- package/lib-commonjs/commands/initWindows/initWindows.js.map +1 -1
- package/lib-commonjs/e2etest/initWindows.test.js.map +1 -1
- package/lib-commonjs/generator-windows/index.js +6 -3
- package/lib-commonjs/generator-windows/index.js.map +1 -1
- package/lib-commonjs/utils/msbuildtools.js +6 -2
- package/lib-commonjs/utils/msbuildtools.js.map +1 -1
- package/lib-commonjs/utils/nameHelpers.js +4 -1
- package/lib-commonjs/utils/nameHelpers.js.map +1 -1
- package/lib-commonjs/utils/vsInstalls.js +5 -3
- package/lib-commonjs/utils/vsInstalls.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-windows/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport chalk from 'chalk';\nimport path from 'path';\nimport username from 'username';\nimport childProcess from 'child_process';\nimport crypto from 'crypto';\nimport fs from '@react-native-windows/fs';\nimport semver from 'semver';\nimport _ from 'lodash';\nimport findUp from 'find-up';\nimport {\n readProjectFile,\n findPropertyValue,\n tryFindPropertyValueAsBoolean,\n} from '../commands/config/configUtils';\nimport * as nameHelpers from '../utils/nameHelpers';\n\nimport {\n createDir,\n copyAndReplaceAll,\n copyAndReplaceWithChangedCallback,\n} from '../generator-common';\nimport {GenerateOptions} from '..';\nimport {\n CodedError,\n getVersionOfNpmPackage,\n} from '@react-native-windows/telemetry';\nimport {\n findPackage,\n WritableNpmPackage,\n} from '@react-native-windows/package-utils';\n\nconst windowsDir = 'windows';\nconst bundleDir = 'Bundle';\n\n/**\n * This represents the data to insert nuget packages\n */\ninterface NugetPackage {\n id: string;\n version: string;\n privateAssets: boolean;\n}\n\nfunction resolveRnwPath(subpath: string): string {\n return require.resolve(path.join('react-native-windows', subpath), {\n paths: [process.cwd()],\n });\n}\n\n// Existing high cyclomatic complexity\n// eslint-disable-next-line complexity\nexport async function copyProjectTemplateAndReplace(\n srcRootPath: string,\n destPath: string,\n newProjectName: string,\n namespace: string,\n options: GenerateOptions,\n) {\n if (!srcRootPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoSourcePath',\n 'Need a path to copy from',\n );\n }\n\n if (!destPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoDestPath',\n 'Need a path to copy to',\n );\n }\n\n if (!newProjectName) {\n throw new CodedError(\n 'CopyProjectTemplateNoProjectName',\n 'Need a project name',\n );\n }\n\n const projectType = options.projectType;\n const language = options.language;\n\n // @react-native-community/cli init only allows alphanumerics in project names, but other\n // new project tools (like expo and create-react-native-module) are less strict.\n // The default (legacy) behavior of this flow is to clean the name rather than throw an error.\n if (!nameHelpers.isValidProjectName(newProjectName)) {\n newProjectName = nameHelpers.cleanName(newProjectName);\n }\n\n // Similar to the above, but we want to retain namespace separators\n // The default (legacy) behavior of this flow is to clean the name rather than throw an error.\n if (!nameHelpers.isValidProjectNamespace(namespace)) {\n namespace = nameHelpers.cleanNamespace(namespace);\n }\n\n // Checking if we're overwriting an existing project and re-uses their projectGUID\n const existingProjectPath = path.join(\n destPath,\n windowsDir,\n newProjectName,\n newProjectName + (language === 'cs' ? '.csproj' : '.vcxproj'),\n );\n let existingProjectGuid: string | undefined;\n if (fs.existsSync(existingProjectPath)) {\n console.log('Found existing project, extracting ProjectGuid.');\n existingProjectGuid = findPropertyValue(\n readProjectFile(existingProjectPath),\n 'ProjectGuid',\n existingProjectPath,\n ).replace(/[{}]/g, '');\n }\n\n createDir(path.join(destPath, windowsDir));\n createDir(path.join(destPath, windowsDir, newProjectName));\n\n if (projectType === 'app') {\n createDir(path.join(destPath, windowsDir, newProjectName, bundleDir));\n createDir(path.join(destPath, windowsDir, newProjectName, 'BundleBuilder'));\n }\n\n const namespaceCpp = toCppNamespace(namespace);\n if (options.experimentalNuGetDependency) {\n console.log('Using experimental NuGet dependency.');\n }\n\n const experimentalPropsPath = path.join(\n destPath,\n windowsDir,\n 'ExperimentalFeatures.props',\n );\n\n let existingUseHermes: boolean | null = null;\n if (fs.existsSync(experimentalPropsPath)) {\n existingUseHermes = tryFindPropertyValueAsBoolean(\n readProjectFile(experimentalPropsPath),\n 'UseHermes',\n );\n }\n\n if (existingUseHermes === false) {\n console.warn(\n 'Hermes is now the default JS engine and will be enabled for this project. Support for Chakra will be deprecated in the future. To disable Hermes and keep using Chakra for now, see https://microsoft.github.io/react-native-windows/docs/hermes#disabling-hermes.',\n );\n }\n options.useHermes = true;\n\n if (options.useWinUI3) {\n throw new CodedError(\n 'IncompatibleOptions',\n 'Experimental WinUI 3 project has been deprecated.',\n );\n }\n\n const projDir = 'proj';\n const srcPath = path.join(srcRootPath, `${language}-${projectType}`);\n const sharedPath = path.join(srcRootPath, `shared-${projectType}`);\n const projectGuid = existingProjectGuid || crypto.randomUUID();\n const rnwPath = path.dirname(resolveRnwPath('package.json'));\n const rnwVersion = require(resolveRnwPath('package.json')).version;\n const nugetVersion = options.nuGetTestVersion || rnwVersion;\n const packageGuid = crypto.randomUUID();\n const currentUser = username.sync()!; // Gets the current username depending on the platform.\n\n let mainComponentName = newProjectName;\n const appJsonPath = await findUp('app.json', {cwd: destPath});\n if (appJsonPath) {\n const appJson = await fs.readJsonFile<{name: string}>(appJsonPath);\n mainComponentName = appJson.name;\n }\n\n // We should prefer putting new, necessary PackageReference dependencies into the appropriate\n // external property sheets, but this is here if we \"must\" inject the dependency into the project file\n const csNugetPackages: NugetPackage[] = [];\n const cppNugetPackages: NugetPackage[] = [];\n\n const templateVars: Record<string, any> = {\n useMustache: true,\n regExpPatternsToRemove: [],\n\n name: newProjectName,\n namespace: namespace,\n namespaceCpp: namespaceCpp,\n languageIsCpp: language === 'cpp',\n\n rnwVersion: await getVersionOfNpmPackage('react-native-windows'),\n rnwPathFromProjectRoot: path.relative(destPath, rnwPath).replace(/\\//g, '\\\\'),\n\n mainComponentName: mainComponentName,\n\n // Visual Studio is very picky about the casing of the guids for projects, project references and the solution\n // https://www.bing.com/search?q=visual+studio+project+guid+casing&cvid=311a5ad7f9fc41089507b24600d23ee7&FORM=ANAB01&PC=U531\n // we therefore have to precariously use the right casing in the right place or risk building in VS breaking.\n projectGuidLower: `{${projectGuid.toLowerCase()}}`,\n projectGuidUpper: `{${projectGuid.toUpperCase()}}`,\n\n // packaging and signing variables:\n packageGuid: packageGuid,\n currentUser: currentUser,\n\n devMode: options.useDevMode,\n\n useExperimentalNuget: options.experimentalNuGetDependency,\n nuGetTestFeed: options.nuGetTestFeed,\n nuGetADOFeed: nugetVersion.startsWith('0.0.0-'),\n\n // cpp template variables\n useWinUI3: options.useWinUI3,\n useHermes: options.useHermes,\n cppNugetPackages: cppNugetPackages,\n\n // cs template variables\n csNugetPackages: csNugetPackages,\n\n // autolinking template variables\n autolinkPropertiesForProps: '',\n autolinkProjectReferencesForTargets: '',\n autolinkCsUsingNamespaces: '',\n autolinkCsReactPackageProviders: '',\n autolinkCppIncludes: '',\n autolinkCppPackageProviders:\n '\\n UNREFERENCED_PARAMETER(packageProviders);', // CODESYNC: vnext\\local-cli\\runWindows\\utils\\autolink.js\n };\n\n const commonMappings =\n projectType === 'app'\n ? [\n // app common mappings\n {\n from: path.join(srcRootPath, 'metro.config.js'),\n to: 'metro.config.js',\n },\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'b_gitignore'),\n to: path.join(windowsDir, newProjectName, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'index.windows.bundle'),\n to: path.join(\n windowsDir,\n newProjectName,\n bundleDir,\n 'index.windows.bundle',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ]\n : [\n // lib common mappings\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ];\n\n for (const mapping of commonMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n\n if (language === 'cs') {\n const csMappings =\n projectType === 'app'\n ? [\n // cs app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ]\n : [\n // cs lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ];\n\n for (const mapping of csMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n } else {\n const cppMappings =\n projectType === 'app'\n ? [\n // cpp app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n ]\n : [\n // cpp lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.def'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.def',\n ),\n },\n ];\n\n for (const mapping of cppMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared proj\n if (fs.existsSync(path.join(sharedPath, projDir))) {\n const sharedProjMappings = [];\n\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'NuGet_Config'),\n to: path.join(windowsDir, 'NuGet.Config'),\n });\n\n if (\n fs.existsSync(\n path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n )\n ) {\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n to: path.join(windowsDir, 'ExperimentalFeatures.props'),\n });\n }\n\n for (const mapping of sharedProjMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared assets\n if (fs.existsSync(path.join(sharedPath, 'assets'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'assets'),\n destPath,\n path.join(windowsDir, newProjectName, 'Assets'),\n templateVars,\n options.overwrite,\n );\n }\n\n // shared src\n if (fs.existsSync(path.join(sharedPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n // src\n if (fs.existsSync(path.join(srcPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(srcPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n if (projectType === 'app') {\n console.log(chalk.white.bold('To run your app on UWP:'));\n console.log(chalk.white(' npx @react-native-community/cli run-windows'));\n }\n}\n\nfunction toCppNamespace(namespace: string) {\n return namespace.replace(/\\./g, '::');\n}\n\nexport async function installScriptsAndDependencies(options: {\n verbose: boolean;\n}) {\n const projectPackage = await WritableNpmPackage.fromPath(process.cwd());\n if (!projectPackage) {\n throw new Error(\n `The current directory '${process.cwd()}' is not the root of an npm package`,\n );\n }\n\n await projectPackage.mergeProps({\n scripts: {windows: 'npx @react-native-community/cli run-windows'},\n });\n\n const rnwPackage = await findPackage('react-native-windows');\n if (!rnwPackage) {\n throw new Error('Could not locate the package for react-native-windows');\n }\n\n const rnPackage = await findPackage('react-native');\n if (!rnPackage) {\n throw new Error('Could not locate the package for react-native');\n }\n\n // We add an exclusionList from metro config. This will be hoisted, but add\n // an explicit dep because we require it directly.\n const cliPackage = await findPackage('@react-native-community/cli', {\n searchPath: rnPackage.path,\n });\n const metroConfigPackage = await findPackage('metro-config', {\n searchPath: cliPackage?.path || rnPackage.path,\n });\n\n if (metroConfigPackage) {\n await projectPackage.mergeProps({\n devDependencies: {\n 'metro-config': `^${metroConfigPackage.json.version}`,\n },\n });\n }\n\n const rnPeerDependency = rnwPackage.json.peerDependencies['react-native'];\n\n if (\n !semver.satisfies(rnPackage.json.version, rnPeerDependency) &&\n projectPackage.json.dependencies?.['react-native']\n ) {\n console.log(\n chalk.green('Installing a compatible version of react-native:'),\n );\n console.log(chalk.white(` ${rnPeerDependency}`));\n\n // Patch package.json to have proper react-native version and install\n await projectPackage.mergeProps({\n dependencies: {'react-native': rnPeerDependency},\n });\n\n // Install dependencies using correct package manager\n const isYarn = fs.existsSync(path.join(process.cwd(), 'yarn.lock'));\n childProcess.execSync(\n isYarn ? 'yarn' : 'npm i',\n options.verbose ? {stdio: 'inherit'} : {},\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-windows/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport chalk from 'chalk';\nimport path from 'path';\nimport username from 'username';\nimport childProcess from 'child_process';\nimport crypto from 'crypto';\nimport fs from '@react-native-windows/fs';\nimport semver from 'semver';\nimport _ from 'lodash';\nimport findUp from 'find-up';\nimport {\n readProjectFile,\n findPropertyValue,\n tryFindPropertyValueAsBoolean,\n} from '../commands/config/configUtils';\nimport * as nameHelpers from '../utils/nameHelpers';\n\nimport {\n createDir,\n copyAndReplaceAll,\n copyAndReplaceWithChangedCallback,\n} from '../generator-common';\nimport {GenerateOptions} from '..';\nimport {\n CodedError,\n getVersionOfNpmPackage,\n} from '@react-native-windows/telemetry';\nimport {\n findPackage,\n WritableNpmPackage,\n} from '@react-native-windows/package-utils';\n\nconst windowsDir = 'windows';\nconst bundleDir = 'Bundle';\n\n/**\n * This represents the data to insert nuget packages\n */\ninterface NugetPackage {\n id: string;\n version: string;\n privateAssets: boolean;\n}\n\nfunction resolveRnwPath(subpath: string): string {\n return require.resolve(path.join('react-native-windows', subpath), {\n paths: [process.cwd()],\n });\n}\n\n// Existing high cyclomatic complexity\n// eslint-disable-next-line complexity\nexport async function copyProjectTemplateAndReplace(\n srcRootPath: string,\n destPath: string,\n newProjectName: string,\n namespace: string,\n options: GenerateOptions,\n) {\n if (!srcRootPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoSourcePath',\n 'Need a path to copy from',\n );\n }\n\n if (!destPath) {\n throw new CodedError(\n 'CopyProjectTemplateNoDestPath',\n 'Need a path to copy to',\n );\n }\n\n if (!newProjectName) {\n throw new CodedError(\n 'CopyProjectTemplateNoProjectName',\n 'Need a project name',\n );\n }\n\n const projectType = options.projectType;\n const language = options.language;\n\n // @react-native-community/cli init only allows alphanumerics in project names, but other\n // new project tools (like expo and create-react-native-module) are less strict.\n // The default (legacy) behavior of this flow is to clean the name rather than throw an error.\n if (!nameHelpers.isValidProjectName(newProjectName)) {\n newProjectName = nameHelpers.cleanName(newProjectName);\n }\n\n // Similar to the above, but we want to retain namespace separators\n // The default (legacy) behavior of this flow is to clean the name rather than throw an error.\n if (!nameHelpers.isValidProjectNamespace(namespace)) {\n namespace = nameHelpers.cleanNamespace(namespace);\n }\n\n // Checking if we're overwriting an existing project and re-uses their projectGUID\n const existingProjectPath = path.join(\n destPath,\n windowsDir,\n newProjectName,\n newProjectName + (language === 'cs' ? '.csproj' : '.vcxproj'),\n );\n let existingProjectGuid: string | undefined;\n if (fs.existsSync(existingProjectPath)) {\n console.log('Found existing project, extracting ProjectGuid.');\n existingProjectGuid = findPropertyValue(\n readProjectFile(existingProjectPath),\n 'ProjectGuid',\n existingProjectPath,\n ).replace(/[{}]/g, '');\n }\n\n createDir(path.join(destPath, windowsDir));\n createDir(path.join(destPath, windowsDir, newProjectName));\n\n if (projectType === 'app') {\n createDir(path.join(destPath, windowsDir, newProjectName, bundleDir));\n createDir(path.join(destPath, windowsDir, newProjectName, 'BundleBuilder'));\n }\n\n const namespaceCpp = toCppNamespace(namespace);\n if (options.experimentalNuGetDependency) {\n console.log('Using experimental NuGet dependency.');\n }\n\n const experimentalPropsPath = path.join(\n destPath,\n windowsDir,\n 'ExperimentalFeatures.props',\n );\n\n let existingUseHermes: boolean | null = null;\n if (fs.existsSync(experimentalPropsPath)) {\n existingUseHermes = tryFindPropertyValueAsBoolean(\n readProjectFile(experimentalPropsPath),\n 'UseHermes',\n );\n }\n\n if (existingUseHermes === false) {\n console.warn(\n 'Hermes is now the default JS engine and will be enabled for this project. Support for Chakra will be deprecated in the future. To disable Hermes and keep using Chakra for now, see https://microsoft.github.io/react-native-windows/docs/hermes#disabling-hermes.',\n );\n }\n options.useHermes = true;\n\n if (options.useWinUI3) {\n throw new CodedError(\n 'IncompatibleOptions',\n 'Experimental WinUI 3 project has been deprecated.',\n );\n }\n\n const projDir = 'proj';\n const srcPath = path.join(srcRootPath, `${language}-${projectType}`);\n const sharedPath = path.join(srcRootPath, `shared-${projectType}`);\n const projectGuid = existingProjectGuid || crypto.randomUUID();\n const rnwPath = path.dirname(resolveRnwPath('package.json'));\n const rnwVersion = require(resolveRnwPath('package.json')).version;\n const nugetVersion = options.nuGetTestVersion || rnwVersion;\n const packageGuid = crypto.randomUUID();\n const currentUser = username.sync()!; // Gets the current username depending on the platform.\n\n let mainComponentName = newProjectName;\n const appJsonPath = await findUp('app.json', {cwd: destPath});\n if (appJsonPath) {\n const appJson = await fs.readJsonFile<{name: string}>(appJsonPath);\n mainComponentName = appJson.name;\n }\n\n // We should prefer putting new, necessary PackageReference dependencies into the appropriate\n // external property sheets, but this is here if we \"must\" inject the dependency into the project file\n const csNugetPackages: NugetPackage[] = [];\n const cppNugetPackages: NugetPackage[] = [];\n\n const templateVars: Record<string, any> = {\n useMustache: true,\n regExpPatternsToRemove: [],\n\n name: newProjectName,\n namespace: namespace,\n namespaceCpp: namespaceCpp,\n languageIsCpp: language === 'cpp',\n\n rnwVersion: await getVersionOfNpmPackage('react-native-windows'),\n rnwPathFromProjectRoot: path\n .relative(destPath, rnwPath)\n .replace(/\\//g, '\\\\'),\n\n mainComponentName: mainComponentName,\n\n // Visual Studio is very picky about the casing of the guids for projects, project references and the solution\n // https://www.bing.com/search?q=visual+studio+project+guid+casing&cvid=311a5ad7f9fc41089507b24600d23ee7&FORM=ANAB01&PC=U531\n // we therefore have to precariously use the right casing in the right place or risk building in VS breaking.\n projectGuidLower: `{${projectGuid.toLowerCase()}}`,\n projectGuidUpper: `{${projectGuid.toUpperCase()}}`,\n\n // packaging and signing variables:\n packageGuid: packageGuid,\n currentUser: currentUser,\n\n devMode: options.useDevMode,\n\n useExperimentalNuget: options.experimentalNuGetDependency,\n nuGetTestFeed: options.nuGetTestFeed,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n nuGetADOFeed: true || nugetVersion.startsWith('0.0.0-'), // Temporary true for all new projects until code-signing is restored, see issue #14030\n\n // cpp template variables\n useWinUI3: options.useWinUI3,\n useHermes: options.useHermes,\n cppNugetPackages: cppNugetPackages,\n\n // cs template variables\n csNugetPackages: csNugetPackages,\n\n // autolinking template variables\n autolinkPropertiesForProps: '',\n autolinkProjectReferencesForTargets: '',\n autolinkCsUsingNamespaces: '',\n autolinkCsReactPackageProviders: '',\n autolinkCppIncludes: '',\n autolinkCppPackageProviders:\n '\\n UNREFERENCED_PARAMETER(packageProviders);', // CODESYNC: @react-native-windows\\cli\\src\\commands\\autolinkWindows\\autolinkWindows.ts\n };\n\n const commonMappings =\n projectType === 'app'\n ? [\n // app common mappings\n {\n from: path.join(srcRootPath, 'metro.config.js'),\n to: 'metro.config.js',\n },\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'b_gitignore'),\n to: path.join(windowsDir, newProjectName, '.gitignore'),\n },\n {\n from: path.join(srcRootPath, 'index.windows.bundle'),\n to: path.join(\n windowsDir,\n newProjectName,\n bundleDir,\n 'index.windows.bundle',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ]\n : [\n // lib common mappings\n {\n from: path.join(srcRootPath, '_gitignore'),\n to: path.join(windowsDir, '.gitignore'),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.sln'),\n to: path.join(windowsDir, newProjectName + '.sln'),\n },\n ];\n\n for (const mapping of commonMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n\n if (language === 'cs') {\n const csMappings =\n projectType === 'app'\n ? [\n // cs app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ]\n : [\n // cs lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.csproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.csproj',\n ),\n },\n ];\n\n for (const mapping of csMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n } else {\n const cppMappings =\n projectType === 'app'\n ? [\n // cpp app mappings\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyApp.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n ]\n : [\n // cpp lib mappings\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.vcxproj.filters'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.vcxproj.filters',\n ),\n },\n {\n from: path.join(srcPath, projDir, 'MyLib.def'),\n to: path.join(\n windowsDir,\n newProjectName,\n newProjectName + '.def',\n ),\n },\n ];\n\n for (const mapping of cppMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared proj\n if (fs.existsSync(path.join(sharedPath, projDir))) {\n const sharedProjMappings = [];\n\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'NuGet_Config'),\n to: path.join(windowsDir, 'NuGet.Config'),\n });\n\n if (\n fs.existsSync(\n path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n )\n ) {\n sharedProjMappings.push({\n from: path.join(sharedPath, projDir, 'ExperimentalFeatures.props'),\n to: path.join(windowsDir, 'ExperimentalFeatures.props'),\n });\n }\n\n for (const mapping of sharedProjMappings) {\n await copyAndReplaceWithChangedCallback(\n mapping.from,\n destPath,\n mapping.to,\n templateVars,\n options.overwrite,\n );\n }\n }\n\n // shared assets\n if (fs.existsSync(path.join(sharedPath, 'assets'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'assets'),\n destPath,\n path.join(windowsDir, newProjectName, 'Assets'),\n templateVars,\n options.overwrite,\n );\n }\n\n // shared src\n if (fs.existsSync(path.join(sharedPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(sharedPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n // src\n if (fs.existsSync(path.join(srcPath, 'src'))) {\n await copyAndReplaceAll(\n path.join(srcPath, 'src'),\n destPath,\n path.join(windowsDir, newProjectName),\n templateVars,\n options.overwrite,\n );\n }\n\n if (projectType === 'app') {\n console.log(chalk.white.bold('To run your app on UWP:'));\n console.log(chalk.white(' npx @react-native-community/cli run-windows'));\n }\n}\n\nfunction toCppNamespace(namespace: string) {\n return namespace.replace(/\\./g, '::');\n}\n\nexport async function installScriptsAndDependencies(options: {\n verbose: boolean;\n}) {\n const projectPackage = await WritableNpmPackage.fromPath(process.cwd());\n if (!projectPackage) {\n throw new Error(\n `The current directory '${process.cwd()}' is not the root of an npm package`,\n );\n }\n\n await projectPackage.mergeProps({\n scripts: {windows: 'npx @react-native-community/cli run-windows'},\n });\n\n const rnwPackage = await findPackage('react-native-windows');\n if (!rnwPackage) {\n throw new Error('Could not locate the package for react-native-windows');\n }\n\n const rnPackage = await findPackage('react-native');\n if (!rnPackage) {\n throw new Error('Could not locate the package for react-native');\n }\n\n // We add an exclusionList from metro config. This will be hoisted, but add\n // an explicit dep because we require it directly.\n const cliPackage = await findPackage('@react-native-community/cli', {\n searchPath: rnPackage.path,\n });\n const metroConfigPackage = await findPackage('metro-config', {\n searchPath: cliPackage?.path || rnPackage.path,\n });\n\n if (metroConfigPackage) {\n await projectPackage.mergeProps({\n devDependencies: {\n 'metro-config': `^${metroConfigPackage.json.version}`,\n },\n });\n }\n\n const rnPeerDependency = rnwPackage.json.peerDependencies['react-native'];\n\n if (\n !semver.satisfies(rnPackage.json.version, rnPeerDependency) &&\n projectPackage.json.dependencies?.['react-native']\n ) {\n console.log(\n chalk.green('Installing a compatible version of react-native:'),\n );\n console.log(chalk.white(` ${rnPeerDependency}`));\n\n // Patch package.json to have proper react-native version and install\n await projectPackage.mergeProps({\n dependencies: {'react-native': rnPeerDependency},\n });\n\n // Install dependencies using correct package manager\n const isYarn = fs.existsSync(path.join(process.cwd(), 'yarn.lock'));\n childProcess.execSync(\n isYarn ? 'yarn' : 'npm i',\n options.verbose ? {stdio: 'inherit'} : {},\n );\n }\n}\n"]}
|
|
@@ -163,7 +163,9 @@ class MSBuildTools {
|
|
|
163
163
|
'Microsoft.Component.MSBuild',
|
|
164
164
|
getVCToolsByArch(buildArch),
|
|
165
165
|
];
|
|
166
|
-
const minVersion = process.env.MinimumVisualStudioVersion ||
|
|
166
|
+
const minVersion = process.env.MinimumVisualStudioVersion ||
|
|
167
|
+
process.env.VisualStudioVersion ||
|
|
168
|
+
'17.11.0';
|
|
167
169
|
const vsInstallation = (0, vsInstalls_1.findLatestVsInstall)({
|
|
168
170
|
requires,
|
|
169
171
|
minVersion,
|
|
@@ -172,7 +174,9 @@ class MSBuildTools {
|
|
|
172
174
|
});
|
|
173
175
|
if (!vsInstallation) {
|
|
174
176
|
if (process.env.MinimumVisualStudioVersion != null) {
|
|
175
|
-
throw new telemetry_1.CodedError('NoMSBuild', `MSBuild tools not found for version ${process.env.MinimumVisualStudioVersion} (from environment). Make sure all required components have been installed`, {
|
|
177
|
+
throw new telemetry_1.CodedError('NoMSBuild', `MSBuild tools not found for version ${process.env.MinimumVisualStudioVersion} (from environment). Make sure all required components have been installed`, {
|
|
178
|
+
MinimumVisualStudioVersionFromEnv: process.env.MinimumVisualStudioVersion,
|
|
179
|
+
});
|
|
176
180
|
}
|
|
177
181
|
else if (process.env.VisualStudioVersion != null) {
|
|
178
182
|
throw new telemetry_1.CodedError('NoMSBuild', `MSBuild tools not found for version ${process.env.VisualStudioVersion} (from environment). Make sure all required components have been installed`, { VisualStudioVersionFromEnv: process.env.VisualStudioVersion });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"msbuildtools.js","sourceRoot":"","sources":["../../src/utils/msbuildtools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {totalmem, EOL} from 'os';\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\nimport child_process from 'child_process';\nimport chalk from 'chalk';\nimport os from 'os';\nimport shell from 'shelljs';\nimport Version from './version';\nimport * as checkRequirements from './checkRequirements';\nimport {\n commandWithProgress,\n newInfo,\n newSpinner,\n newSuccess,\n newError,\n powershell,\n} from './commandWithProgress';\nimport {execSync} from 'child_process';\nimport {BuildArch, BuildConfig} from '../commands/runWindows/runWindowsOptions';\nimport {findLatestVsInstall} from './vsInstalls';\nimport {CodedError} from '@react-native-windows/telemetry';\n\nexport default class MSBuildTools {\n /**\n * @param version is something like 17.0 for 2022\n * @param installationPath Path to installation root\n * @param installationVersion is the full version e.g. 17.3.32929.385\n */\n constructor(\n public readonly version: string,\n public readonly installationPath: string,\n public readonly installationVersion: string,\n ) {}\n\n /**\n * @returns directory where x64 msbuild can be found\n */\n msbuildPath() {\n return path.join(this.installationPath, 'MSBuild/Current/Bin/amd64');\n }\n\n cleanProject(slnFile: string) {\n const cmd = `\"${path.join(\n this.msbuildPath(),\n 'msbuild.exe',\n )}\" \"${slnFile}\" /t:Clean`;\n const results = child_process.execSync(cmd).toString().split(EOL);\n results.forEach(result => console.log(chalk.white(result)));\n }\n\n async restorePackageConfigs(\n slnFile: any,\n buildArch: BuildArch,\n buildType: BuildConfig,\n ) {\n const text = 'Restoring NuGet packages ';\n const spinner = newSpinner(text);\n await commandWithProgress(\n spinner,\n text,\n path.join(this.msbuildPath(), 'msbuild.exe'),\n [\n slnFile,\n '/t:Restore',\n '/p:RestoreProjectStyle=PackagesConfig',\n '/p:RestorePackagesConfig=true',\n `/p:Platform=${buildArch}`,\n `/p:Configuration=${buildType}`,\n ],\n true,\n 'MSBuildError',\n );\n }\n\n async buildProject(\n slnFile: string,\n buildType: BuildConfig,\n buildArch: BuildArch,\n msBuildProps: Record<string, string>,\n verbose: boolean,\n target: 'build' | 'deploy',\n buildLogDirectory: string | undefined,\n singleproc?: boolean,\n ) {\n newSuccess(`Found Solution: ${slnFile}`);\n newInfo(`Build configuration: ${buildType}`);\n newInfo(`Build platform: ${buildArch}`);\n\n const verbosityOption = verbose ? 'normal' : 'minimal';\n const logPrefix = path.join(\n buildLogDirectory || os.tmpdir(),\n `msbuild_${process.pid}_${target}`,\n );\n\n const errorLog = logPrefix + '.err';\n const warnLog = logPrefix + '.wrn';\n\n const localBinLog = target === 'build' ? '' : ':deploy.binlog';\n const binlog = buildLogDirectory ? `:${logPrefix}.binlog` : localBinLog;\n\n const args = [\n `/clp:NoSummary;NoItemAndPropertyList;Verbosity=${verbosityOption}`,\n '/nologo',\n `/p:Configuration=${buildType}`,\n `/p:Platform=${buildArch}`,\n '/p:AppxBundle=Never',\n `/bl${binlog}`,\n `/flp1:errorsonly;logfile=${errorLog}`,\n `/flp2:warningsonly;logfile=${warnLog}`,\n ];\n\n // Building projects in parallel increases compiler memory usage and\n // doesn't lead to dramatic performance gains (See #4739). Only enable\n // parallel builds on machines with >16GB of memory to avoid OOM errors\n const highMemory = totalmem() > 16 * 1024 * 1024 * 1024;\n const enableParallelBuilds = singleproc !== true && highMemory;\n\n if (enableParallelBuilds) {\n args.push('/maxCpuCount');\n }\n\n if (target === 'build') {\n args.push('/restore', '/p:RestorePackagesConfig=true');\n } else {\n args.push(`/t:Deploy`);\n }\n\n Object.keys(msBuildProps).forEach(key => {\n args.push(`/p:${key}=${msBuildProps[key]}`);\n });\n\n try {\n checkRequirements.isWinSdkPresent('10.0');\n } catch (e) {\n newError((e as Error).message);\n throw e;\n }\n\n if (verbose) {\n console.log(`Running MSBuild with args ${args.join(' ')}`);\n }\n\n const progressName =\n target === 'deploy' ? 'Deploying Solution' : 'Building Solution';\n const spinner = newSpinner(progressName);\n try {\n await commandWithProgress(\n spinner,\n progressName,\n path.join(this.msbuildPath(), 'msbuild.exe'),\n [slnFile].concat(args),\n verbose,\n 'MSBuildError',\n );\n } catch (e) {\n let error = e;\n if (e instanceof CodedError) {\n const origCodedError = e as CodedError;\n if (origCodedError.type === 'MSBuildError') {\n // Try to parse msbuild errors from errorLog\n const errorLogContents = (await fs.readFile(errorLog))\n .toString()\n .split(EOL)\n .filter(s => s)\n .map(s => s.trim());\n if (errorLogContents.length > 0) {\n const firstMessage = errorLogContents[0];\n error = new CodedError(\n 'MSBuildError',\n firstMessage,\n origCodedError.data,\n );\n // Hide error messages in a field that won't automatically get reported\n // with telemetry but is still available to be parsed and sanitized\n (error as any).msBuildErrorMessages = errorLogContents;\n }\n }\n }\n throw error;\n }\n // If we have no errors, delete the error log when we're done\n if ((await fs.stat(errorLog)).size === 0) {\n await fs.unlink(errorLog);\n }\n }\n\n static findAvailableVersion(\n buildArch: BuildArch,\n verbose: boolean,\n prerelease?: boolean,\n ): MSBuildTools {\n // https://aka.ms/vs/workloads\n const requires = [\n 'Microsoft.Component.MSBuild',\n getVCToolsByArch(buildArch),\n ];\n const minVersion = process.env.MinimumVisualStudioVersion || process.env.VisualStudioVersion || '17.11.0';\n const vsInstallation = findLatestVsInstall({\n requires,\n minVersion,\n verbose,\n prerelease,\n });\n\n if (!vsInstallation) {\n if (process.env.MinimumVisualStudioVersion != null) {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild tools not found for version ${process.env.MinimumVisualStudioVersion} (from environment). Make sure all required components have been installed`,\n {MinimumVisualStudioVersionFromEnv: process.env.MinimumVisualStudioVersion},\n );\n } else if (process.env.VisualStudioVersion != null) {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild tools not found for version ${process.env.VisualStudioVersion} (from environment). Make sure all required components have been installed`,\n {VisualStudioVersionFromEnv: process.env.VisualStudioVersion},\n );\n } else {\n throw new CodedError(\n 'NoMSBuild',\n `Could not find MSBuild with VCTools for Visual Studio ${minVersion} or later. Make sure all required components have been installed`,\n {minVersion: minVersion},\n );\n }\n }\n\n const toolsPath = path.join(\n vsInstallation.installationPath,\n 'MSBuild/Current/Bin/amd64',\n );\n\n if (fs.existsSync(toolsPath)) {\n if (verbose) {\n newSuccess(\n `Found compatible MSBuild at ${toolsPath} (${vsInstallation.installationVersion})`,\n );\n }\n return new MSBuildTools(\n minVersion,\n vsInstallation.installationPath,\n vsInstallation.installationVersion,\n );\n } else {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild path '${toolsPath} does not exist'`,\n );\n }\n }\n\n static getAllAvailableUAPVersions(): Version[] {\n const results: Version[] = [];\n\n const programFilesFolder =\n process.env['ProgramFiles(x86)'] || process.env.ProgramFiles;\n // No Program Files folder found, so we won't be able to find UAP SDK\n if (!programFilesFolder) {\n return results;\n }\n\n let uapFolderPath = path.join(\n programFilesFolder,\n 'Windows Kits',\n '10',\n 'Platforms',\n 'UAP',\n );\n\n if (!shell.test('-e', uapFolderPath)) {\n // Check other installation folder from reg\n const sdkFolder = getSDK10InstallationFolder();\n if (sdkFolder) {\n uapFolderPath = path.join(sdkFolder, 'Platforms', 'UAP');\n }\n }\n\n // No UAP SDK exists on this machine\n if (!shell.test('-e', uapFolderPath)) {\n return results;\n }\n\n shell\n .ls(uapFolderPath)\n .filter(uapDir => shell.test('-d', path.join(uapFolderPath, uapDir)))\n .map(Version.tryParse)\n .forEach(version => version && results.push(version));\n\n return results;\n }\n\n evaluateMSBuildProperties(\n solutionFile: string,\n projectFile: string,\n propertyNames?: string[],\n extraMsBuildProps?: Record<string, string>,\n ): Record<string, string> {\n const spinner = newSpinner('Running Eval-MsBuildProperties.ps1');\n\n try {\n const msbuildEvalScriptPath = path.resolve(\n __dirname,\n '..',\n '..',\n 'src',\n 'powershell',\n 'Eval-MsBuildProperties.ps1',\n );\n\n let command = `${powershell} -ExecutionPolicy Unrestricted -NoProfile \"${msbuildEvalScriptPath}\" -SolutionFile '${solutionFile}' -ProjectFile '${projectFile}' -MSBuildPath '${this.msbuildPath()}'`;\n\n if (propertyNames && propertyNames.length > 0) {\n command += ` -PropertyNames '${propertyNames.join(',')}'`;\n }\n\n if (extraMsBuildProps) {\n command += \" -ExtraMSBuildProps '\";\n for (const extraProp in extraMsBuildProps) {\n if (!(extraProp in Object.prototype)) {\n command += `,${extraProp}=${extraMsBuildProps[extraProp]}`;\n }\n }\n command += \"'\";\n }\n\n const commandOutput = execSync(command).toString();\n spinner.succeed();\n\n const properties = JSON.parse(commandOutput) as Record<string, string>;\n spinner.succeed();\n return properties;\n } catch (e) {\n spinner.fail(\n 'Running Eval-MsBuildProperties.ps1 failed: ' + (e as Error).message,\n );\n throw e;\n }\n }\n}\n\nfunction getVCToolsByArch(buildArch: BuildArch): string {\n switch (buildArch) {\n case 'x86':\n case 'x64':\n return 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64';\n case 'ARM64':\n return 'Microsoft.VisualStudio.Component.VC.Tools.ARM64';\n }\n}\n\nfunction getSDK10InstallationFolder(): string {\n const folder = '';\n\n const execString =\n 'reg query \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Microsoft SDKs\\\\Windows\\\\v10.0\" /s /v InstallationFolder /reg:32';\n let output;\n try {\n output = execSync(execString).toString();\n } catch (e) {\n return folder;\n }\n\n const re =\n /\\\\Microsoft SDKs\\\\Windows\\\\v10.0\\s*InstallationFolder\\s+REG_SZ\\s+(.*)/gim;\n const match = re.exec(output);\n if (match) {\n return match[1];\n }\n\n return folder;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"msbuildtools.js","sourceRoot":"","sources":["../../src/utils/msbuildtools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {totalmem, EOL} from 'os';\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\nimport child_process from 'child_process';\nimport chalk from 'chalk';\nimport os from 'os';\nimport shell from 'shelljs';\nimport Version from './version';\nimport * as checkRequirements from './checkRequirements';\nimport {\n commandWithProgress,\n newInfo,\n newSpinner,\n newSuccess,\n newError,\n powershell,\n} from './commandWithProgress';\nimport {execSync} from 'child_process';\nimport {BuildArch, BuildConfig} from '../commands/runWindows/runWindowsOptions';\nimport {findLatestVsInstall} from './vsInstalls';\nimport {CodedError} from '@react-native-windows/telemetry';\n\nexport default class MSBuildTools {\n /**\n * @param version is something like 17.0 for 2022\n * @param installationPath Path to installation root\n * @param installationVersion is the full version e.g. 17.3.32929.385\n */\n constructor(\n public readonly version: string,\n public readonly installationPath: string,\n public readonly installationVersion: string,\n ) {}\n\n /**\n * @returns directory where x64 msbuild can be found\n */\n msbuildPath() {\n return path.join(this.installationPath, 'MSBuild/Current/Bin/amd64');\n }\n\n cleanProject(slnFile: string) {\n const cmd = `\"${path.join(\n this.msbuildPath(),\n 'msbuild.exe',\n )}\" \"${slnFile}\" /t:Clean`;\n const results = child_process.execSync(cmd).toString().split(EOL);\n results.forEach(result => console.log(chalk.white(result)));\n }\n\n async restorePackageConfigs(\n slnFile: any,\n buildArch: BuildArch,\n buildType: BuildConfig,\n ) {\n const text = 'Restoring NuGet packages ';\n const spinner = newSpinner(text);\n await commandWithProgress(\n spinner,\n text,\n path.join(this.msbuildPath(), 'msbuild.exe'),\n [\n slnFile,\n '/t:Restore',\n '/p:RestoreProjectStyle=PackagesConfig',\n '/p:RestorePackagesConfig=true',\n `/p:Platform=${buildArch}`,\n `/p:Configuration=${buildType}`,\n ],\n true,\n 'MSBuildError',\n );\n }\n\n async buildProject(\n slnFile: string,\n buildType: BuildConfig,\n buildArch: BuildArch,\n msBuildProps: Record<string, string>,\n verbose: boolean,\n target: 'build' | 'deploy',\n buildLogDirectory: string | undefined,\n singleproc?: boolean,\n ) {\n newSuccess(`Found Solution: ${slnFile}`);\n newInfo(`Build configuration: ${buildType}`);\n newInfo(`Build platform: ${buildArch}`);\n\n const verbosityOption = verbose ? 'normal' : 'minimal';\n const logPrefix = path.join(\n buildLogDirectory || os.tmpdir(),\n `msbuild_${process.pid}_${target}`,\n );\n\n const errorLog = logPrefix + '.err';\n const warnLog = logPrefix + '.wrn';\n\n const localBinLog = target === 'build' ? '' : ':deploy.binlog';\n const binlog = buildLogDirectory ? `:${logPrefix}.binlog` : localBinLog;\n\n const args = [\n `/clp:NoSummary;NoItemAndPropertyList;Verbosity=${verbosityOption}`,\n '/nologo',\n `/p:Configuration=${buildType}`,\n `/p:Platform=${buildArch}`,\n '/p:AppxBundle=Never',\n `/bl${binlog}`,\n `/flp1:errorsonly;logfile=${errorLog}`,\n `/flp2:warningsonly;logfile=${warnLog}`,\n ];\n\n // Building projects in parallel increases compiler memory usage and\n // doesn't lead to dramatic performance gains (See #4739). Only enable\n // parallel builds on machines with >16GB of memory to avoid OOM errors\n const highMemory = totalmem() > 16 * 1024 * 1024 * 1024;\n const enableParallelBuilds = singleproc !== true && highMemory;\n\n if (enableParallelBuilds) {\n args.push('/maxCpuCount');\n }\n\n if (target === 'build') {\n args.push('/restore', '/p:RestorePackagesConfig=true');\n } else {\n args.push(`/t:Deploy`);\n }\n\n Object.keys(msBuildProps).forEach(key => {\n args.push(`/p:${key}=${msBuildProps[key]}`);\n });\n\n try {\n checkRequirements.isWinSdkPresent('10.0');\n } catch (e) {\n newError((e as Error).message);\n throw e;\n }\n\n if (verbose) {\n console.log(`Running MSBuild with args ${args.join(' ')}`);\n }\n\n const progressName =\n target === 'deploy' ? 'Deploying Solution' : 'Building Solution';\n const spinner = newSpinner(progressName);\n try {\n await commandWithProgress(\n spinner,\n progressName,\n path.join(this.msbuildPath(), 'msbuild.exe'),\n [slnFile].concat(args),\n verbose,\n 'MSBuildError',\n );\n } catch (e) {\n let error = e;\n if (e instanceof CodedError) {\n const origCodedError = e as CodedError;\n if (origCodedError.type === 'MSBuildError') {\n // Try to parse msbuild errors from errorLog\n const errorLogContents = (await fs.readFile(errorLog))\n .toString()\n .split(EOL)\n .filter(s => s)\n .map(s => s.trim());\n if (errorLogContents.length > 0) {\n const firstMessage = errorLogContents[0];\n error = new CodedError(\n 'MSBuildError',\n firstMessage,\n origCodedError.data,\n );\n // Hide error messages in a field that won't automatically get reported\n // with telemetry but is still available to be parsed and sanitized\n (error as any).msBuildErrorMessages = errorLogContents;\n }\n }\n }\n throw error;\n }\n // If we have no errors, delete the error log when we're done\n if ((await fs.stat(errorLog)).size === 0) {\n await fs.unlink(errorLog);\n }\n }\n\n static findAvailableVersion(\n buildArch: BuildArch,\n verbose: boolean,\n prerelease?: boolean,\n ): MSBuildTools {\n // https://aka.ms/vs/workloads\n const requires = [\n 'Microsoft.Component.MSBuild',\n getVCToolsByArch(buildArch),\n ];\n const minVersion =\n process.env.MinimumVisualStudioVersion ||\n process.env.VisualStudioVersion ||\n '17.11.0';\n const vsInstallation = findLatestVsInstall({\n requires,\n minVersion,\n verbose,\n prerelease,\n });\n\n if (!vsInstallation) {\n if (process.env.MinimumVisualStudioVersion != null) {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild tools not found for version ${process.env.MinimumVisualStudioVersion} (from environment). Make sure all required components have been installed`,\n {\n MinimumVisualStudioVersionFromEnv:\n process.env.MinimumVisualStudioVersion,\n },\n );\n } else if (process.env.VisualStudioVersion != null) {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild tools not found for version ${process.env.VisualStudioVersion} (from environment). Make sure all required components have been installed`,\n {VisualStudioVersionFromEnv: process.env.VisualStudioVersion},\n );\n } else {\n throw new CodedError(\n 'NoMSBuild',\n `Could not find MSBuild with VCTools for Visual Studio ${minVersion} or later. Make sure all required components have been installed`,\n {minVersion: minVersion},\n );\n }\n }\n\n const toolsPath = path.join(\n vsInstallation.installationPath,\n 'MSBuild/Current/Bin/amd64',\n );\n\n if (fs.existsSync(toolsPath)) {\n if (verbose) {\n newSuccess(\n `Found compatible MSBuild at ${toolsPath} (${vsInstallation.installationVersion})`,\n );\n }\n return new MSBuildTools(\n minVersion,\n vsInstallation.installationPath,\n vsInstallation.installationVersion,\n );\n } else {\n throw new CodedError(\n 'NoMSBuild',\n `MSBuild path '${toolsPath} does not exist'`,\n );\n }\n }\n\n static getAllAvailableUAPVersions(): Version[] {\n const results: Version[] = [];\n\n const programFilesFolder =\n process.env['ProgramFiles(x86)'] || process.env.ProgramFiles;\n // No Program Files folder found, so we won't be able to find UAP SDK\n if (!programFilesFolder) {\n return results;\n }\n\n let uapFolderPath = path.join(\n programFilesFolder,\n 'Windows Kits',\n '10',\n 'Platforms',\n 'UAP',\n );\n\n if (!shell.test('-e', uapFolderPath)) {\n // Check other installation folder from reg\n const sdkFolder = getSDK10InstallationFolder();\n if (sdkFolder) {\n uapFolderPath = path.join(sdkFolder, 'Platforms', 'UAP');\n }\n }\n\n // No UAP SDK exists on this machine\n if (!shell.test('-e', uapFolderPath)) {\n return results;\n }\n\n shell\n .ls(uapFolderPath)\n .filter(uapDir => shell.test('-d', path.join(uapFolderPath, uapDir)))\n .map(Version.tryParse)\n .forEach(version => version && results.push(version));\n\n return results;\n }\n\n evaluateMSBuildProperties(\n solutionFile: string,\n projectFile: string,\n propertyNames?: string[],\n extraMsBuildProps?: Record<string, string>,\n ): Record<string, string> {\n const spinner = newSpinner('Running Eval-MsBuildProperties.ps1');\n\n try {\n const msbuildEvalScriptPath = path.resolve(\n __dirname,\n '..',\n '..',\n 'src',\n 'powershell',\n 'Eval-MsBuildProperties.ps1',\n );\n\n let command = `${powershell} -ExecutionPolicy Unrestricted -NoProfile \"${msbuildEvalScriptPath}\" -SolutionFile '${solutionFile}' -ProjectFile '${projectFile}' -MSBuildPath '${this.msbuildPath()}'`;\n\n if (propertyNames && propertyNames.length > 0) {\n command += ` -PropertyNames '${propertyNames.join(',')}'`;\n }\n\n if (extraMsBuildProps) {\n command += \" -ExtraMSBuildProps '\";\n for (const extraProp in extraMsBuildProps) {\n if (!(extraProp in Object.prototype)) {\n command += `,${extraProp}=${extraMsBuildProps[extraProp]}`;\n }\n }\n command += \"'\";\n }\n\n const commandOutput = execSync(command).toString();\n spinner.succeed();\n\n const properties = JSON.parse(commandOutput) as Record<string, string>;\n spinner.succeed();\n return properties;\n } catch (e) {\n spinner.fail(\n 'Running Eval-MsBuildProperties.ps1 failed: ' + (e as Error).message,\n );\n throw e;\n }\n }\n}\n\nfunction getVCToolsByArch(buildArch: BuildArch): string {\n switch (buildArch) {\n case 'x86':\n case 'x64':\n return 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64';\n case 'ARM64':\n return 'Microsoft.VisualStudio.Component.VC.Tools.ARM64';\n }\n}\n\nfunction getSDK10InstallationFolder(): string {\n const folder = '';\n\n const execString =\n 'reg query \"HKLM\\\\SOFTWARE\\\\Microsoft\\\\Microsoft SDKs\\\\Windows\\\\v10.0\" /s /v InstallationFolder /reg:32';\n let output;\n try {\n output = execSync(execString).toString();\n } catch (e) {\n return folder;\n }\n\n const re =\n /\\\\Microsoft SDKs\\\\Windows\\\\v10.0\\s*InstallationFolder\\s+REG_SZ\\s+(.*)/gim;\n const match = re.exec(output);\n if (match) {\n return match[1];\n }\n\n return folder;\n}\n"]}
|
|
@@ -29,7 +29,10 @@ function cleanName(str) {
|
|
|
29
29
|
}
|
|
30
30
|
exports.cleanName = cleanName;
|
|
31
31
|
function isValidProjectNamespace(namespace) {
|
|
32
|
-
if (namespace
|
|
32
|
+
if (namespace
|
|
33
|
+
.split(/[.]+/)
|
|
34
|
+
.map(isValidProjectName)
|
|
35
|
+
.every(x => x)) {
|
|
33
36
|
// Validate that every part of the namespace is a valid project name
|
|
34
37
|
return true;
|
|
35
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nameHelpers.js","sourceRoot":"","sources":["../../src/utils/nameHelpers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,oDAAuB;AAEvB,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,SAAS,GAAG,gBAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,gDAKC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;IAClE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB;IAClE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AALD,8BAKC;AAED,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,
|
|
1
|
+
{"version":3,"file":"nameHelpers.js","sourceRoot":"","sources":["../../src/utils/nameHelpers.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,oDAAuB;AAEvB,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,SAAS,GAAG,gBAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;QACpC,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AALD,gDAKC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;IAClE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,uBAAuB;IAClE,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;IAC/C,OAAO,GAAG,CAAC;AACb,CAAC;AALD,8BAKC;AAED,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,IACE,SAAS;SACN,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,kBAAkB,CAAC;SACvB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAChB;QACA,oEAAoE;QACpE,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAXD,0DAWC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AAFD,wCAEC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport _ from 'lodash';\n\nfunction pascalCase(str: string): string {\n const camelCase = _.camelCase(str);\n return camelCase[0].toUpperCase() + camelCase.substr(1);\n}\n\nexport function isValidProjectName(name: string): boolean {\n if (name.match(/^[a-z][a-z0-9]*$/gi)) {\n return true;\n }\n return false;\n}\n\nexport function cleanName(str: string): string {\n str = str.replace('@', ''); // Remove '@' from package scope names\n str = str.slice(str.lastIndexOf('/') + 1); // Remove package scope\n str = pascalCase(str); // Convert to PascalCase\n return str;\n}\n\nexport function isValidProjectNamespace(namespace: string): boolean {\n if (\n namespace\n .split(/[.]+/)\n .map(isValidProjectName)\n .every(x => x)\n ) {\n // Validate that every part of the namespace is a valid project name\n return true;\n }\n return false;\n}\n\nexport function cleanNamespace(str: string): string {\n return str.split(/[.:]+/).map(cleanName).join('.');\n}\n"]}
|
|
@@ -52,11 +52,13 @@ function enumerateVsInstalls(opts) {
|
|
|
52
52
|
let maxVersion;
|
|
53
53
|
if (minVersionSemVer) {
|
|
54
54
|
minVersion = minVersionSemVer.toString();
|
|
55
|
-
maxVersion = `${
|
|
55
|
+
maxVersion = `${minVersionSemVer.major + 1}.0`;
|
|
56
56
|
}
|
|
57
57
|
else if (!Number.isNaN(minVersionNum)) {
|
|
58
|
-
minVersion = Number.isInteger(minVersionNum)
|
|
59
|
-
|
|
58
|
+
minVersion = Number.isInteger(minVersionNum)
|
|
59
|
+
? `${minVersionNum}.0`
|
|
60
|
+
: minVersionNum.toString();
|
|
61
|
+
maxVersion = `${Math.floor(minVersionNum) + 1}.0`;
|
|
60
62
|
}
|
|
61
63
|
else {
|
|
62
64
|
// Unable to parse minVersion and determine maxVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsInstalls.js","sourceRoot":"","sources":["../../src/utils/vsInstalls.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,+DAA2D;AAC3D,iDAAuC;AACvC,kEAA0C;AAC1C,gDAAwB;AACxB,oDAA4B;AAY5B;;;;;GAKG;AACH,SAAS,OAAO,CAAC,IAAc,EAAE,OAAiB;IAChD,gEAAgE;IAChE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAa,EAC7D,gDAAgD,CACjD,CAAC;IAEF,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,WAAW,CAAC,CAAC;KACvD;IAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC/B,MAAM,IAAI,sBAAU,CAClB,WAAW,EACX,6BAA6B,WAAW,EAAE,CAC3C,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,YAAY,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,QAAQ,gBAAgB,QAAQ,4BAA4B,WAAW,KAAK,IAAI,CAAC,IAAI,CACtG,GAAG,CACJ,qBAAqB,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,wBAAQ,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtD,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;QACxB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC;KAC/D;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAMnC;IACC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;QACnB,gDAAgD;QAChD,gDAAgD;QAEhD,sDAAsD;QACtD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,IAAI,UAAkB,CAAC;QACvB,IAAI,UAAkB,CAAC;QAEvB,IAAI,gBAAgB,EAAE;YACpB,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACzC,UAAU,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"vsInstalls.js","sourceRoot":"","sources":["../../src/utils/vsInstalls.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {CodedError} from '@react-native-windows/telemetry';\nimport {execSync} from 'child_process';\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\nimport semver from 'semver';\n\n/**\n * A subset of the per-instance properties returned by vswhere\n */\ninterface VisualStudioInstallation {\n instanceId: string;\n installationPath: string;\n installationVersion: string;\n prerelease: string;\n}\n\n/**\n * Helper to run vswhere in JSON mode\n *\n * @param args Arguments to pass to vsWhere\n * @param verbose enable verbose logging\n */\nfunction vsWhere(args: string[], verbose?: boolean): any[] {\n // This path is maintained and VS has promised to keep it valid.\n const vsWherePath = path.join(\n process.env['ProgramFiles(x86)'] || process.env.ProgramFiles!,\n '/Microsoft Visual Studio/Installer/vswhere.exe',\n );\n\n if (verbose) {\n console.log('Looking for vswhere at: ' + vsWherePath);\n }\n\n if (!fs.existsSync(vsWherePath)) {\n throw new CodedError(\n 'NoVSWhere',\n `Unable to find vswhere at ${vsWherePath}`,\n );\n }\n\n const system32 = `${process.env.SystemRoot}\\\\System32`;\n const cmdline = `${system32}\\\\cmd.exe /c ${system32}\\\\chcp.com 65001>nul && \"${vsWherePath}\" ${args.join(\n ' ',\n )} -format json -utf8`;\n const json = JSON.parse(execSync(cmdline).toString());\n\n for (const entry of json) {\n entry.prerelease = entry.catalog.productMilestoneIsPreRelease;\n }\n\n return json;\n}\n\n/**\n * Enumerate the installed versions of Visual Studio\n */\nexport function enumerateVsInstalls(opts: {\n requires?: string[];\n minVersion?: string;\n verbose?: boolean;\n latest?: boolean;\n prerelease?: boolean;\n}): VisualStudioInstallation[] {\n const args: string[] = [];\n\n if (opts.minVersion) {\n // VS 2019 ex: minVersion == 16.7 => [16.7,17.0)\n // VS 2022 ex: minVersion == 17.0 => [17.0,18.0)\n\n // Try to parse minVersion as both a Number and SemVer\n const minVersionNum = Number(opts.minVersion);\n const minVersionSemVer = semver.parse(opts.minVersion);\n\n let minVersion: string;\n let maxVersion: string;\n\n if (minVersionSemVer) {\n minVersion = minVersionSemVer.toString();\n maxVersion = `${minVersionSemVer.major + 1}.0`;\n } else if (!Number.isNaN(minVersionNum)) {\n minVersion = Number.isInteger(minVersionNum)\n ? `${minVersionNum}.0`\n : minVersionNum.toString();\n maxVersion = `${Math.floor(minVersionNum) + 1}.0`;\n } else {\n // Unable to parse minVersion and determine maxVersion,\n // caller will throw error that version couldn't be found.\n return [];\n }\n\n const versionRange =\n `[${minVersion},${maxVersion}` + (opts.prerelease ? ']' : ')');\n\n if (opts.verbose) {\n console.log(\n `Looking for VS installs with version range: ${versionRange}`,\n );\n }\n\n args.push(`-version ${versionRange}`);\n }\n\n if (opts.requires) {\n args.push(`-requires ${opts.requires.join(' ')}`);\n }\n\n if (opts.latest) {\n args.push('-latest');\n }\n\n if (opts.prerelease) {\n args.push('-prerelease');\n }\n\n return vsWhere(args, opts.verbose);\n}\n\n/**\n * Find the latest available VS installation that matches the given constraints\n */\nexport function findLatestVsInstall(opts: {\n requires?: string[];\n minVersion?: string;\n verbose?: boolean;\n prerelease?: boolean;\n}): VisualStudioInstallation | null {\n let installs = enumerateVsInstalls({...opts, latest: true});\n\n if (opts.prerelease && installs.length > 0) {\n installs = installs.filter(x => x.prerelease === 'True');\n }\n\n if (installs.length > 0) {\n return installs[0];\n } else {\n return null;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-windows/cli",
|
|
3
|
-
"version": "0.76.0-preview.
|
|
3
|
+
"version": "0.76.0-preview.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"watch": "rnw-scripts watch"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@react-native-windows/codegen": "0.76.0-preview.
|
|
21
|
-
"@react-native-windows/fs": "0.76.0-preview.
|
|
22
|
-
"@react-native-windows/package-utils": "0.76.0-preview.
|
|
23
|
-
"@react-native-windows/telemetry": "0.76.0-preview.
|
|
20
|
+
"@react-native-windows/codegen": "0.76.0-preview.3",
|
|
21
|
+
"@react-native-windows/fs": "0.76.0-preview.2",
|
|
22
|
+
"@react-native-windows/package-utils": "0.76.0-preview.2",
|
|
23
|
+
"@react-native-windows/telemetry": "0.76.0-preview.2",
|
|
24
24
|
"@xmldom/xmldom": "^0.7.7",
|
|
25
25
|
"chalk": "^4.1.0",
|
|
26
26
|
"cli-spinners": "^2.2.0",
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
"@types/shelljs": "^0.8.8",
|
|
57
57
|
"@types/xml-parser": "^1.2.29",
|
|
58
58
|
"@types/xmldom": "^0.1.30",
|
|
59
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
60
|
-
"@typescript-eslint/parser": "^
|
|
59
|
+
"@typescript-eslint/eslint-plugin": "^7.1.1",
|
|
60
|
+
"@typescript-eslint/parser": "^7.1.1",
|
|
61
61
|
"babel-jest": "^29.6.3",
|
|
62
62
|
"eslint": "^8.19.0",
|
|
63
63
|
"jest": "^29.7.0",
|