@react-native-windows/cli 0.72.3 → 0.73.0-preview.1

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.
Files changed (124) hide show
  1. package/lib-commonjs/{runWindows/utils/autolink.d.ts → commands/autolinkWindows/autolinkWindows.d.ts} +5 -12
  2. package/lib-commonjs/{runWindows/utils/autolink.js → commands/autolinkWindows/autolinkWindows.js} +19 -44
  3. package/lib-commonjs/commands/autolinkWindows/autolinkWindows.js.map +1 -0
  4. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.d.ts +14 -0
  5. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.js +33 -0
  6. package/lib-commonjs/commands/autolinkWindows/autolinkWindowsOptions.js.map +1 -0
  7. package/lib-commonjs/{codegen.d.ts → commands/codegenWindows/codegenWindows.d.ts} +2 -7
  8. package/lib-commonjs/{codegen.js → commands/codegenWindows/codegenWindows.js} +9 -22
  9. package/lib-commonjs/commands/codegenWindows/codegenWindows.js.map +1 -0
  10. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.d.ts +12 -0
  11. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.js +23 -0
  12. package/lib-commonjs/commands/codegenWindows/codegenWindowsOptions.js.map +1 -0
  13. package/lib-commonjs/{config → commands/config}/configUtils.js +4 -2
  14. package/lib-commonjs/commands/config/configUtils.js.map +1 -0
  15. package/lib-commonjs/commands/config/dependencyConfig.js.map +1 -0
  16. package/lib-commonjs/commands/config/projectConfig.js.map +1 -0
  17. package/lib-commonjs/commands/healthCheck/healthCheckList.d.ts +6 -0
  18. package/lib-commonjs/commands/healthCheck/healthCheckList.js +21 -0
  19. package/lib-commonjs/commands/healthCheck/healthCheckList.js.map +1 -0
  20. package/lib-commonjs/{healthChecks.d.ts → commands/healthCheck/healthChecks.d.ts} +5 -0
  21. package/lib-commonjs/{healthChecks.js → commands/healthCheck/healthChecks.js} +56 -16
  22. package/lib-commonjs/commands/healthCheck/healthChecks.js.map +1 -0
  23. package/lib-commonjs/commands/initWindows/initWindows.d.ts +46 -0
  24. package/lib-commonjs/commands/initWindows/initWindows.js +244 -0
  25. package/lib-commonjs/commands/initWindows/initWindows.js.map +1 -0
  26. package/lib-commonjs/commands/initWindows/initWindowsOptions.d.ts +15 -0
  27. package/lib-commonjs/commands/initWindows/initWindowsOptions.js +38 -0
  28. package/lib-commonjs/commands/initWindows/initWindowsOptions.js.map +1 -0
  29. package/lib-commonjs/{runWindows → commands/runWindows}/runWindows.js +13 -15
  30. package/lib-commonjs/commands/runWindows/runWindows.js.map +1 -0
  31. package/lib-commonjs/commands/runWindows/runWindowsOptions.js.map +1 -0
  32. package/lib-commonjs/e2etest/autolink.test.js +19 -18
  33. package/lib-commonjs/e2etest/autolink.test.js.map +1 -1
  34. package/lib-commonjs/e2etest/dependencyConfig.test.js +1 -1
  35. package/lib-commonjs/e2etest/dependencyConfig.test.js.map +1 -1
  36. package/lib-commonjs/e2etest/healthChecks.test.js +4 -4
  37. package/lib-commonjs/e2etest/healthChecks.test.js.map +1 -1
  38. package/lib-commonjs/e2etest/initWindows.test.d.ts +6 -0
  39. package/lib-commonjs/e2etest/initWindows.test.js +43 -0
  40. package/lib-commonjs/e2etest/initWindows.test.js.map +1 -0
  41. package/lib-commonjs/e2etest/projectConfig.test.js +3 -3
  42. package/lib-commonjs/e2etest/projectConfig.test.js.map +1 -1
  43. package/lib-commonjs/e2etest/projectConfig.utils.d.ts +2 -2
  44. package/lib-commonjs/e2etest/projectConfig.utils.js +4 -4
  45. package/lib-commonjs/e2etest/projectConfig.utils.js.map +1 -1
  46. package/lib-commonjs/e2etest/runWindows.test.js +1 -1
  47. package/lib-commonjs/e2etest/runWindows.test.js.map +1 -1
  48. package/lib-commonjs/generator-common/index.js +1 -1
  49. package/lib-commonjs/generator-common/index.js.map +1 -1
  50. package/lib-commonjs/generator-windows/index.js +7 -26
  51. package/lib-commonjs/generator-windows/index.js.map +1 -1
  52. package/lib-commonjs/index.d.ts +3 -3
  53. package/lib-commonjs/index.js +27 -10
  54. package/lib-commonjs/index.js.map +1 -1
  55. package/lib-commonjs/{runWindows/utils → utils}/build.d.ts +1 -1
  56. package/lib-commonjs/utils/build.js.map +1 -0
  57. package/lib-commonjs/utils/checkRequirements.js.map +1 -0
  58. package/lib-commonjs/utils/commandWithProgress.js.map +1 -0
  59. package/lib-commonjs/{runWindows/utils → utils}/deploy.d.ts +1 -1
  60. package/lib-commonjs/{runWindows/utils → utils}/deploy.js +24 -3
  61. package/lib-commonjs/utils/deploy.js.map +1 -0
  62. package/lib-commonjs/utils/info.js.map +1 -0
  63. package/lib-commonjs/{runWindows/utils → utils}/msbuildtools.d.ts +1 -1
  64. package/lib-commonjs/{runWindows/utils → utils}/msbuildtools.js +1 -1
  65. package/lib-commonjs/utils/msbuildtools.js.map +1 -0
  66. package/lib-commonjs/utils/pathHelpers.d.ts +9 -0
  67. package/lib-commonjs/utils/pathHelpers.js +37 -0
  68. package/lib-commonjs/utils/pathHelpers.js.map +1 -0
  69. package/lib-commonjs/utils/telemetryHelpers.js.map +1 -0
  70. package/lib-commonjs/utils/version.js.map +1 -0
  71. package/lib-commonjs/utils/vsInstalls.js.map +1 -0
  72. package/lib-commonjs/{runWindows/utils → utils}/vstools.d.ts +1 -1
  73. package/lib-commonjs/{runWindows/utils → utils}/vstools.js +2 -2
  74. package/lib-commonjs/utils/vstools.js.map +1 -0
  75. package/lib-commonjs/utils/winappdeploytool.js.map +1 -0
  76. package/package.json +17 -17
  77. package/lib-commonjs/codegen.js.map +0 -1
  78. package/lib-commonjs/config/configUtils.js.map +0 -1
  79. package/lib-commonjs/config/dependencyConfig.js.map +0 -1
  80. package/lib-commonjs/config/projectConfig.js.map +0 -1
  81. package/lib-commonjs/healthCheckList.d.ts +0 -1
  82. package/lib-commonjs/healthCheckList.js +0 -16
  83. package/lib-commonjs/healthCheckList.js.map +0 -1
  84. package/lib-commonjs/healthChecks.js.map +0 -1
  85. package/lib-commonjs/runWindows/runWindows.js.map +0 -1
  86. package/lib-commonjs/runWindows/runWindowsOptions.js.map +0 -1
  87. package/lib-commonjs/runWindows/utils/autolink.js.map +0 -1
  88. package/lib-commonjs/runWindows/utils/build.js.map +0 -1
  89. package/lib-commonjs/runWindows/utils/checkRequirements.js.map +0 -1
  90. package/lib-commonjs/runWindows/utils/commandWithProgress.js.map +0 -1
  91. package/lib-commonjs/runWindows/utils/deploy.js.map +0 -1
  92. package/lib-commonjs/runWindows/utils/info.js.map +0 -1
  93. package/lib-commonjs/runWindows/utils/msbuildtools.js.map +0 -1
  94. package/lib-commonjs/runWindows/utils/telemetryHelpers.js.map +0 -1
  95. package/lib-commonjs/runWindows/utils/version.js.map +0 -1
  96. package/lib-commonjs/runWindows/utils/vsInstalls.js.map +0 -1
  97. package/lib-commonjs/runWindows/utils/vstools.js.map +0 -1
  98. package/lib-commonjs/runWindows/utils/winappdeploytool.js.map +0 -1
  99. /package/lib-commonjs/{config → commands/config}/configUtils.d.ts +0 -0
  100. /package/lib-commonjs/{config → commands/config}/dependencyConfig.d.ts +0 -0
  101. /package/lib-commonjs/{config → commands/config}/dependencyConfig.js +0 -0
  102. /package/lib-commonjs/{config → commands/config}/projectConfig.d.ts +0 -0
  103. /package/lib-commonjs/{config → commands/config}/projectConfig.js +0 -0
  104. /package/lib-commonjs/{runWindows → commands/runWindows}/runWindows.d.ts +0 -0
  105. /package/lib-commonjs/{runWindows → commands/runWindows}/runWindowsOptions.d.ts +0 -0
  106. /package/lib-commonjs/{runWindows → commands/runWindows}/runWindowsOptions.js +0 -0
  107. /package/lib-commonjs/{runWindows/utils → utils}/build.js +0 -0
  108. /package/lib-commonjs/{runWindows/utils → utils}/checkRequirements.d.ts +0 -0
  109. /package/lib-commonjs/{runWindows/utils → utils}/checkRequirements.js +0 -0
  110. /package/lib-commonjs/{runWindows/utils → utils}/commandWithProgress.d.ts +0 -0
  111. /package/lib-commonjs/{runWindows/utils → utils}/commandWithProgress.js +0 -0
  112. /package/lib-commonjs/{runWindows/utils → utils}/info.d.ts +0 -0
  113. /package/lib-commonjs/{runWindows/utils → utils}/info.js +0 -0
  114. /package/lib-commonjs/{runWindows/utils → utils}/telemetryHelpers.d.ts +0 -0
  115. /package/lib-commonjs/{runWindows/utils → utils}/telemetryHelpers.js +0 -0
  116. /package/lib-commonjs/{runWindows/utils → utils}/version.d.ts +0 -0
  117. /package/lib-commonjs/{runWindows/utils → utils}/version.js +0 -0
  118. /package/lib-commonjs/{runWindows/utils → utils}/vsInstalls.d.ts +0 -0
  119. /package/lib-commonjs/{runWindows/utils → utils}/vsInstalls.js +0 -0
  120. /package/lib-commonjs/{runWindows/utils → utils}/winappdeploytool.d.ts +0 -0
  121. /package/lib-commonjs/{runWindows/utils → utils}/winappdeploytool.js +0 -0
  122. /package/{powershell → src/powershell}/Add-AppDevPackage.ps1 +0 -0
  123. /package/{powershell → src/powershell}/Eval-MsBuildProperties.ps1 +0 -0
  124. /package/{powershell → src/powershell}/WindowsStoreAppUtils.ps1 +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/runWindows/utils/deploy.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {spawn, execSync, SpawnOptions} from 'child_process';\nimport fs from '@react-native-windows/fs';\nimport http from 'http';\nimport path from 'path';\nimport glob from 'glob';\nimport parse from 'xml-parser';\nimport WinAppDeployTool from './winappdeploytool';\nimport {\n newInfo,\n newSuccess,\n newError,\n newWarn,\n newSpinner,\n commandWithProgress,\n runPowerShellScriptFunction,\n powershell,\n} from './commandWithProgress';\nimport * as build from './build';\nimport {BuildConfig, RunWindowsOptions} from '../runWindowsOptions';\nimport MSBuildTools from './msbuildtools';\nimport {Config} from '@react-native-community/cli-types';\nimport * as configUtils from '../../config/configUtils';\nimport {WindowsProjectConfig} from '../../config/projectConfig';\nimport {CodedError} from '@react-native-windows/telemetry';\nimport Version from './version';\n\nfunction pushd(pathArg: string): () => void {\n const cwd = process.cwd();\n process.chdir(pathArg);\n return () => process.chdir(cwd);\n}\n\nexport function getBuildConfiguration(options: RunWindowsOptions): BuildConfig {\n return options.release\n ? options.bundle\n ? 'ReleaseBundle'\n : 'Release'\n : options.bundle\n ? 'DebugBundle'\n : 'Debug';\n}\n\nfunction shouldDeployByPackage(\n options: RunWindowsOptions,\n config: Config,\n): boolean {\n if (options.deployFromLayout) {\n // Force deploy by layout\n return false;\n }\n\n let hasAppxSigningEnabled: boolean | null = null;\n let hasPackageCertificateKeyFile: boolean | null = null;\n\n // TODO: These two properties should really be determined by\n // getting the actual values msbuild used during the build,\n // but for now we'll try to get them manually\n\n // Check passed in msbuild property overrides\n if (options.msbuildprops) {\n const msbuildprops = build.parseMsBuildProps(options);\n if ('AppxSigningEnabled' in msbuildprops) {\n hasAppxSigningEnabled =\n msbuildprops.AppxSigningEnabled.toLowerCase() === 'true';\n }\n if ('PackageCertificateKeyFile' in msbuildprops) {\n hasPackageCertificateKeyFile = true;\n }\n }\n\n // If at least one override wasn't set, we need to parse the project file\n if (hasAppxSigningEnabled === null || hasPackageCertificateKeyFile === null) {\n const projectFile = build.getAppProjectFile(options, config);\n if (projectFile) {\n const projectContents = configUtils.readProjectFile(projectFile);\n\n // Find AppxSigningEnabled\n if (hasAppxSigningEnabled === null) {\n const appxSigningEnabled = configUtils.tryFindPropertyValue(\n projectContents,\n 'AppxSigningEnabled',\n );\n if (appxSigningEnabled !== null) {\n hasAppxSigningEnabled = appxSigningEnabled.toLowerCase() === 'true';\n }\n }\n\n // Find PackageCertificateKeyFile\n if (hasPackageCertificateKeyFile === null) {\n const packageCertificateKeyFile = configUtils.tryFindPropertyValue(\n projectContents,\n 'PackageCertificateKeyFile',\n );\n if (packageCertificateKeyFile !== null) {\n hasPackageCertificateKeyFile = true;\n }\n }\n }\n }\n\n return (\n hasAppxSigningEnabled === true && hasPackageCertificateKeyFile === true\n );\n}\n\nfunction shouldLaunchApp(options: RunWindowsOptions): boolean {\n return options.launch === true;\n}\n\nfunction getAppPackage(\n options: RunWindowsOptions,\n projectName?: string,\n): string {\n const configuration = getBuildConfiguration(options);\n const packageFolder =\n options.arch === 'x86'\n ? `{*_x86_${configuration}_*,*_Win32_${configuration}_*}`\n : `*_${options.arch}_${configuration}_*`;\n\n const appPackageGlob = `${options.root}/windows/{*/AppPackages,AppPackages/*}/${packageFolder}`;\n const appPackageCandidates = glob.sync(appPackageGlob);\n let appPackage;\n if (appPackageCandidates.length === 1 || !projectName) {\n appPackage = appPackageCandidates[0];\n } else if (appPackageCandidates.length > 1) {\n const filteredAppPackageCandidates = appPackageCandidates.filter(x =>\n x.includes(projectName),\n );\n if (filteredAppPackageCandidates.length >= 1) {\n appPackage = filteredAppPackageCandidates[0];\n }\n }\n\n if (!appPackage && options.release) {\n // in the latest vs, Release is removed\n newWarn(\n 'No package found in *_Release_* folder, removing the _Release_ prefix and checking again',\n );\n\n const rootGlob = `${options.root}/windows/{*/AppPackages,AppPackages/*}`;\n const newGlob = `${rootGlob}/*_${\n options.arch === 'x86' ? '{Win32,x86}' : options.arch\n }_Test`;\n\n const result = glob.sync(newGlob);\n if (result.length > 1 && projectName) {\n const newFilteredGlobs = result.filter(x => x.includes(projectName));\n if (newFilteredGlobs.length >= 1) {\n newWarn(`More than one app package found: ${result}`);\n }\n appPackage = newFilteredGlobs[0];\n } else if (result.length === 1) {\n // we're good\n appPackage = result[0];\n }\n }\n\n if (!appPackage) {\n throw new CodedError(\n 'NoAppPackage',\n `Unable to find app package using search path: \"${appPackageGlob}\"`,\n );\n }\n return appPackage;\n}\n\nfunction getWindowsStoreAppUtils(options: RunWindowsOptions) {\n const popd = pushd(options.root);\n const windowsStoreAppUtilsPath = path.resolve(\n __dirname,\n '..',\n '..',\n '..',\n 'powershell',\n 'WindowsStoreAppUtils.ps1',\n );\n execSync(\n `${powershell} -NoProfile Unblock-File '${windowsStoreAppUtilsPath}'`,\n );\n popd();\n return windowsStoreAppUtilsPath;\n}\n\nfunction getAppxManifestPath(\n options: RunWindowsOptions,\n projectName?: string,\n): string {\n const configuration = getBuildConfiguration(options);\n // C++ x86 manifest would go under windows/Debug whereas x64 goes under windows/x64/Debug\n // If we've built both, this causes us to end up with two matches, so we have to carefully select the right folder\n let archFolder;\n if (options.arch !== 'x86') {\n archFolder = `${options.arch}/${configuration}`;\n } else {\n archFolder = `${configuration}`;\n }\n\n const appxManifestGlob = `windows/{*/bin/${options.arch}/${configuration},${archFolder}/*,target/${options.arch}/${configuration}}/AppxManifest.xml`;\n const globs = glob.sync(path.join(options.root, appxManifestGlob));\n let appxPath: string;\n if (globs.length === 1 || !projectName) {\n appxPath = globs[0];\n } else {\n const filteredGlobs = globs.filter(x => x.includes(projectName));\n appxPath = filteredGlobs[0];\n if (filteredGlobs.length > 1) {\n newWarn(\n `More than one appxmanifest for ${projectName}: ${filteredGlobs.join(\n ',',\n )}`,\n );\n newWarn(`Choosing ${appxPath}`);\n }\n }\n\n if (!appxPath) {\n throw new CodedError(\n 'NoAppxManifest',\n `Unable to find AppxManifest from \"${options.root}\", using search path: \"${appxManifestGlob}\" `,\n );\n }\n return appxPath;\n}\n\nfunction parseAppxManifest(appxManifestPath: string): parse.Document {\n return parse(fs.readFileSync(appxManifestPath, 'utf8'));\n}\n\nfunction getAppxManifest(\n options: RunWindowsOptions,\n projectName?: string,\n): parse.Document {\n return parseAppxManifest(getAppxManifestPath(options, projectName));\n}\n\nfunction handleResponseError(e: Error): never {\n if (e.message.indexOf('Error code -2146233088')) {\n throw new CodedError(\n 'NoDevice',\n `No Windows Mobile device was detected: ${e.message}`,\n );\n } else {\n throw new CodedError(\n 'AppDidNotDeploy',\n `Unexpected error deploying app: ${e.message}`,\n );\n }\n}\n\n// Errors: 0x80073d10 - bad architecture\nexport async function deployToDevice(\n options: RunWindowsOptions,\n verbose: boolean,\n config: Config,\n) {\n const windowsConfig: Partial<WindowsProjectConfig> | undefined =\n config.project.windows;\n const projectName =\n windowsConfig && windowsConfig.project && windowsConfig.project.projectName\n ? windowsConfig.project.projectName\n : path.parse(options.proj!).name;\n const appPackageFolder = getAppPackage(options);\n\n const deployTarget = options.target\n ? options.target\n : options.emulator\n ? 'emulator'\n : 'device';\n const deployTool = new WinAppDeployTool();\n const appxManifest = getAppxManifest(options, projectName);\n const shouldLaunch = shouldLaunchApp(options);\n const identity = appxManifest.root.children.filter(x => {\n return x.name === 'mp:PhoneIdentity';\n })[0];\n const appName = identity.attributes.PhoneProductId;\n\n const device = deployTool.findDevice(deployTarget);\n\n try {\n await deployTool.uninstallAppPackage(appName, device, verbose);\n } catch (e) {\n newWarn('Failed to uninstall app from ' + device.name);\n }\n\n const appxFile = glob.sync(path.join(appPackageFolder, '*.appx'))[0];\n try {\n await deployTool.installAppPackage(\n appxFile,\n device,\n shouldLaunch,\n false,\n verbose,\n );\n } catch (e) {\n if ((e as Error).message.includes('Error code 2148734208 for command')) {\n await deployTool.installAppPackage(\n appxFile,\n device,\n shouldLaunch,\n true,\n verbose,\n );\n } else {\n handleResponseError(e as Error);\n }\n }\n}\n\nexport async function deployToDesktop(\n options: RunWindowsOptions,\n verbose: boolean,\n config: Config,\n buildTools: MSBuildTools,\n) {\n const windowsConfig: Partial<WindowsProjectConfig> | undefined =\n config.project.windows;\n const slnFile =\n windowsConfig && windowsConfig.solutionFile && windowsConfig.sourceDir\n ? path.join(windowsConfig.sourceDir, windowsConfig.solutionFile)\n : options.sln!;\n const projectName =\n windowsConfig && windowsConfig.project && windowsConfig.project.projectName\n ? windowsConfig.project.projectName\n : path.parse(options.proj!).name;\n const windowsStoreAppUtils = getWindowsStoreAppUtils(options);\n const appxManifestPath = getAppxManifestPath(options, projectName);\n const appxManifest = parseAppxManifest(appxManifestPath);\n const identity = appxManifest.root.children.filter(x => {\n return x.name === 'Identity';\n })[0];\n const appName = identity.attributes.Name;\n\n const vsVersion = Version.fromString(buildTools.installationVersion);\n\n const args = [];\n if (options.remoteDebugging) {\n args.push('--remote-debugging');\n }\n\n if (options.directDebugging) {\n args.push('--direct-debugging', options.directDebugging.toString());\n }\n\n await runPowerShellScriptFunction(\n 'Enabling Developer Mode',\n windowsStoreAppUtils,\n 'EnableDevMode',\n verbose,\n 'EnableDevModeFailure',\n );\n\n const appPackageFolder = getAppPackage(options, projectName);\n\n if (shouldDeployByPackage(options, config)) {\n // Deploy by package\n await runPowerShellScriptFunction(\n 'Removing old version of the app',\n windowsStoreAppUtils,\n `Uninstall-App ${appName}`,\n verbose,\n 'RemoveOldAppVersionFailure',\n );\n\n const script = glob.sync(\n path.join(appPackageFolder, 'Add-AppDevPackage.ps1'),\n )[0];\n\n await runPowerShellScriptFunction(\n 'Installing new version of the app',\n windowsStoreAppUtils,\n `Install-App \"${script}\" -Force`,\n verbose,\n 'InstallAppFailure',\n );\n } else {\n // Deploy from layout\n // If we have DeployAppRecipe.exe, use it (start in 16.8.4, earlier 16.8 versions have bugs)\n const appxRecipe = path.join(\n path.dirname(appxManifestPath),\n `${projectName}.build.appxrecipe`,\n );\n const ideFolder = `${buildTools.installationPath}\\\\Common7\\\\IDE`;\n const deployAppxRecipeExePath = `${ideFolder}\\\\DeployAppRecipe.exe`;\n if (\n vsVersion.gte(Version.fromString('16.8.30906.45')) &&\n fs.existsSync(deployAppxRecipeExePath)\n ) {\n await commandWithProgress(\n newSpinner('Deploying'),\n `Deploying ${appxRecipe}`,\n deployAppxRecipeExePath,\n [appxRecipe],\n verbose,\n 'DeployRecipeFailure',\n );\n } else {\n // Install the app package's dependencies before attempting to deploy.\n await runPowerShellScriptFunction(\n 'Installing dependent framework packages',\n windowsStoreAppUtils,\n `Install-AppDependencies ${appxManifestPath} ${appPackageFolder} ${options.arch}`,\n verbose,\n 'InstallAppDependenciesFailure',\n );\n await build.buildSolution(\n buildTools,\n slnFile,\n /* options.release ? 'Release' : */ 'Debug',\n options.arch,\n {DeployLayout: 'true'},\n verbose,\n 'deploy',\n options.buildLogDirectory,\n );\n }\n }\n\n const appFamilyName = execSync(\n `${powershell} -NoProfile -c $(Get-AppxPackage -Name ${appName}).PackageFamilyName`,\n )\n .toString()\n .trim();\n\n if (!appFamilyName) {\n throw new CodedError(\n 'AppDidNotDeploy',\n 'Fail to check the installed app, maybe developer mode is off on Windows',\n );\n }\n\n const loopbackText = 'Verifying loopbackExempt';\n const loopbackSpinner = newSpinner(loopbackText);\n\n await commandWithProgress(\n loopbackSpinner,\n loopbackText,\n 'CheckNetIsolation',\n `LoopbackExempt -a -n=${appFamilyName}`.split(' '),\n verbose,\n 'CheckNetIsolationFailure',\n );\n\n if (shouldLaunchApp(options)) {\n await runPowerShellScriptFunction(\n 'Starting the app',\n windowsStoreAppUtils,\n `Start-Locally ${appName} ${args}`,\n verbose,\n 'AppStartupFailure',\n );\n } else {\n newInfo('Skip the step to start the app');\n }\n}\n\nexport function startServerInNewWindow(\n options: RunWindowsOptions,\n verbose: boolean,\n): Promise<void> {\n return new Promise(resolve => {\n http\n .get('http://localhost:8081/status', res => {\n if (res.statusCode === 200) {\n newSuccess('React-Native Server already started');\n } else {\n newError('React-Native Server not responding');\n }\n resolve();\n })\n .on('error', () => {\n launchServer(options, verbose);\n resolve();\n });\n });\n}\n\nfunction launchServer(options: RunWindowsOptions, verbose: boolean) {\n newSuccess('Starting the React-Native Server');\n const opts: SpawnOptions = {\n cwd: options.root,\n detached: true,\n stdio: verbose ? 'inherit' : 'ignore',\n };\n\n spawn('cmd.exe', ['/C', 'start npx react-native start'], opts);\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/runWindows/utils/info.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,wBAAwB;AACxB,sDAA8B;AAEvB,KAAK,UAAU,kBAAkB;IACtC,OAAO,MAAM,iBAAO,CAAC,GAAG,CAAC;QACvB,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC;QAC7C,WAAW,EAAE;YACX,OAAO;YACP,cAAc;YACd,sBAAsB;YACtB,6BAA6B;YAC7B,kBAAkB;SACnB;QACD,iBAAiB,EAAE,CAAC,gBAAgB,CAAC;KACtC,CAAC,CAAC;AACL,CAAC;AAbD,gDAaC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\n// @ts-ignore no typings\nimport envinfo from 'envinfo';\n\nexport async function getEnvironmentInfo(): Promise<string> {\n return await envinfo.run({\n System: ['OS', 'CPU', 'Memory', 'Shell'],\n Binaries: ['Node', 'Yarn', 'npm', 'Watchman'],\n npmPackages: [\n 'react',\n 'react-native',\n 'react-native-windows',\n '@react-native-community/cli',\n 'react-native-cli',\n ],\n npmGlobalPackages: ['*react-native*'],\n });\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"msbuildtools.js","sourceRoot":"","sources":["../../../src/runWindows/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 '../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 x86 msbuild can be found\n */\n msbuildPath() {\n return path.join(this.installationPath, 'MSBuild/Current/Bin');\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 === false || 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.VisualStudioVersion || '17.0';\n const vsInstallation = findLatestVsInstall({\n requires,\n minVersion,\n verbose,\n prerelease,\n });\n\n if (!vsInstallation) {\n 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',\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 '..',\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 +0,0 @@
1
- {"version":3,"file":"telemetryHelpers.js","sourceRoot":"","sources":["../../../src/runWindows/utils/telemetryHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {camelCase} from 'lodash';\n\nimport {\n Config,\n CommandOption,\n OptionValue,\n} from '@react-native-community/cli-types';\n\nimport {\n Telemetry,\n CodedError,\n CommandStartInfo,\n CommandEndInfo,\n CommanderOptionsType,\n commanderOptionsToOptions,\n optionsToArgs,\n OptionSanitizer,\n configToProjectInfo,\n getProjectFileFromConfig,\n deviceArchitecture,\n nodeArchitecture,\n} from '@react-native-windows/telemetry';\n\nimport {newInfo, newWarn} from './commandWithProgress';\n\n/**\n * Calculates a the default values of a given react-native CLI command's options.\n * @param config Config passed from react-native CLI.\n * @param commandOptions The options definition for the command.\n * @returns The default options for the command.\n */\nexport function getDefaultOptions(\n config: Config,\n commandOptions: CommandOption[],\n): CommanderOptionsType {\n const result: CommanderOptionsType = {\n logging: false,\n };\n for (const option of commandOptions) {\n let key = option.name.startsWith('--')\n ? option.name.slice('--'.length)\n : option.name;\n key = key.trim();\n\n let value = option.default;\n if (value !== undefined && (value as (ctx: Config) => OptionValue).name) {\n value = (value as (ctx: Config) => OptionValue)(config);\n }\n\n if (key.endsWith(' [string]')) {\n // Option is a string\n key = key.slice(0, -' [string]'.length);\n // Option is a number\n } else if (key.endsWith(' [number]')) {\n key = key.slice(0, -' [number]'.length);\n } else {\n // Option is a boolean\n // Note: Commander ignores the default property for booleans\n if (key.startsWith('no-')) {\n key = key.slice('no-'.length);\n // Commander always defaults to true for flags that start with --no\n value = true;\n } else {\n // Commander always defaults to undefined for flags\n value = undefined;\n }\n }\n\n key = camelCase(key);\n result[key] = value;\n }\n return result;\n}\n\n/**\n * Sets up and starts the telemetry gathering for the CLI command.\n * @param commandName The name of the CLI command.\n * @param config Config passed from react-native CLI.\n * @param options Options passed from react-native CLI.\n * @param defaultOptions Default options for the command.\n * @param optionSanitizer Function to sanitize the option values for telemetry.\n */\nexport async function startTelemetrySession(\n commandName: string,\n config: Config,\n options: CommanderOptionsType,\n defaultOptions: CommanderOptionsType,\n optionSanitizer: OptionSanitizer,\n) {\n const verbose = options.logging === true;\n\n if (!options.telemetry) {\n if (verbose) {\n newInfo('Telemetry is disabled');\n }\n return;\n }\n\n if (verbose) {\n newInfo(\n `Running ${nodeArchitecture()} node on a ${deviceArchitecture()} machine`,\n );\n }\n\n if (deviceArchitecture() !== nodeArchitecture()) {\n newWarn(\n 'This version of node was built for a different architecture than this machine and may cause unintended behavior',\n );\n }\n\n await Telemetry.setup();\n\n const sanitizedOptions = commanderOptionsToOptions(options, optionSanitizer);\n const sanitizedDefaultOptions = commanderOptionsToOptions(\n defaultOptions,\n optionSanitizer,\n );\n const sanitizedArgs = optionsToArgs(sanitizedOptions, process.argv);\n\n const startInfo: CommandStartInfo = {\n commandName,\n args: sanitizedArgs,\n options: sanitizedOptions,\n defaultOptions: sanitizedDefaultOptions,\n };\n\n Telemetry.startCommand(startInfo);\n\n const projectInfo = await configToProjectInfo(config);\n if (projectInfo) {\n Telemetry.setProjectInfo(projectInfo);\n }\n\n const projectFile = getProjectFileFromConfig(config);\n if (projectFile) {\n await Telemetry.populateNuGetPackageVersions(projectFile);\n }\n}\n\n/**\n * Ends the gathering of telemetry for the CLI command.\n * @param error The error (if any) thrown during the command.\n * @param getExtraProps Function to get any extra command-specific telemetry properties.\n */\nexport async function endTelemetrySession(\n error?: Error,\n getExtraProps?: () => Promise<Record<string, any>>,\n) {\n if (!Telemetry.isEnabled()) {\n // Bail early so don't waste time here\n return;\n }\n\n const endInfo: CommandEndInfo = {\n resultCode: 'Success',\n };\n\n if (error) {\n endInfo.resultCode =\n error instanceof CodedError ? (error as CodedError).type : 'Unknown';\n }\n\n Telemetry.endCommand(\n endInfo,\n getExtraProps ? await getExtraProps() : undefined,\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/runWindows/utils/version.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAEvD,MAAqB,OAAO;IAC1B,YACmB,KAAa,EACb,QAAgB,CAAC,EACjB,QAAgB,CAAC,EACjB,MAAc,CAAC;QAHf,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAY;QACjB,UAAK,GAAL,KAAK,CAAY;QACjB,QAAG,GAAH,GAAG,CAAY;IAC/B,CAAC;IAEJ,EAAE,CAAC,KAAc;QACf,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;SACzD;QAED,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YAC1B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YAC1B,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;YAC1B,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACvB,CAAC;IACJ,CAAC;IAED,EAAE,CAAC,KAAc;QACf,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;SACzD;QAED,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CAAC,KAAc;QAChB,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,EAAE;YACjC,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;SACzD;QAED,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE;YACxB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE;YACxB,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAU,EAAE,CAAU;QACnC,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,CAAC,WAAW,KAAK,OAAO,EAAE;YAC1D,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;SACzD;QAED,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,SAAS,CAAC,mCAAmC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SACvE;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAChC,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9D,OAAO,IAAI,OAAO,CAChB,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAvHD,0BAuHC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nconst VERSION_EXPRESSION = /^\\d{1,8}(\\.\\d{1,8}){0,3}$/;\n\nexport default class Version {\n constructor(\n private readonly major: number,\n private readonly minor: number = 0,\n private readonly build: number = 0,\n private readonly qfe: number = 0,\n ) {}\n\n eq(other: Version): boolean {\n if (other.constructor !== Version) {\n throw new TypeError('other must be a Version instance');\n }\n\n return (\n this.major === other.major &&\n this.minor === other.minor &&\n this.build === other.build &&\n this.qfe === other.qfe\n );\n }\n\n gt(other: Version): boolean {\n if (other.constructor !== Version) {\n throw new TypeError('other must be a Version instance');\n }\n\n if (this.major > other.major) {\n return true;\n }\n if (this.major < other.major) {\n return false;\n }\n if (this.minor > other.minor) {\n return true;\n }\n if (this.minor < other.minor) {\n return false;\n }\n if (this.build > other.build) {\n return true;\n }\n if (this.build < other.build) {\n return false;\n }\n if (this.qfe > other.qfe) {\n return true;\n }\n if (this.qfe < other.qfe) {\n return false;\n }\n\n return false;\n }\n\n gte(other: Version): boolean {\n if (other.constructor !== Version) {\n throw new TypeError('other must be a Version instance');\n }\n\n if (this.major > other.major) {\n return true;\n }\n if (this.major < other.major) {\n return false;\n }\n if (this.minor > other.minor) {\n return true;\n }\n if (this.minor < other.minor) {\n return false;\n }\n if (this.build > other.build) {\n return true;\n }\n if (this.build < other.build) {\n return false;\n }\n if (this.qfe > other.qfe) {\n return true;\n }\n if (this.qfe < other.qfe) {\n return false;\n }\n\n return true;\n }\n\n toString(): string {\n return `${this.major}.${this.minor}.${this.build}.${this.qfe}`;\n }\n\n static compare(x: Version, y: Version): number {\n if (x.constructor !== Version || y.constructor !== Version) {\n throw new TypeError('Only can compare Version objects');\n }\n\n return x.gt(y) ? 1 : x.eq(y) ? 0 : -1;\n }\n\n static fromString(str: string): Version {\n const version = Version.tryParse(str);\n if (!version) {\n throw new TypeError('Cannot construct a version from \"' + str + '\".');\n }\n return version;\n }\n\n static tryParse(str: string): Version | null {\n if (VERSION_EXPRESSION.test(str)) {\n const versionArray = str.split('.').map(x => parseInt(x, 10));\n return new Version(\n versionArray[0],\n versionArray[1],\n versionArray[2],\n versionArray[3],\n );\n }\n return null;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vsInstalls.js","sourceRoot":"","sources":["../../../src/runWindows/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).toFixed(1);\n } else if (!Number.isNaN(minVersionNum)) {\n minVersion = minVersionNum.toFixed(1);\n maxVersion = (Math.floor(minVersionNum) + 1).toFixed(1);\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"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vstools.js","sourceRoot":"","sources":["../../../src/runWindows/utils/vstools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\nimport chalk from 'chalk';\nimport {Project} from '../../config/projectConfig';\nimport {CodedError} from '@react-native-windows/telemetry';\n\nconst projectTypeGuidsByLanguage = {\n cpp: '{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}',\n cs: '{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}',\n};\n\nexport const dotNetCoreProjectTypeGuid =\n '{9A19103F-16F7-4668-BE54-9A1E7A4F7556}';\n\n/**\n * Checks is the given block of lines exists within an array of lines.\n * @param lines The array of lines to search.\n * @param block The block of lines to search for.\n * @return The starting index the block within lines, if it exists.\n */\nfunction linesContainsBlock(\n lines: string[],\n block: (string | RegExp)[],\n): number {\n if (block.length > 0) {\n const startIndex = lines.findIndex(s =>\n block[0] instanceof RegExp ? s.match(block[0]) : s === block[0],\n );\n\n if (startIndex >= 0) {\n for (let i = 1; i < block.length; i++) {\n if (\n block[i] instanceof RegExp\n ? !lines[startIndex + i].match(block[i])\n : lines[startIndex + i] !== block[i]\n ) {\n return -1;\n }\n }\n return startIndex;\n }\n }\n\n return -1;\n}\n\n/**\n * Insert the given block of lines into an array of lines.\n * @param lines The array of lines to insert into.\n * @param block The block of lines to insert.\n * @param index The index to perform the insert.\n */\nfunction insertBlockIntoLines(lines: string[], block: string[], index: number) {\n for (let i = 0; i < block.length; i++) {\n lines.splice(index + i, 0, block[i]);\n }\n}\n\n/**\n * Overwrite the lines at the given index with the block.\n * @param lines The destionation array of lines to.\n * @param block The source block of lines.\n * @param index The index to perform the pverwrite.\n */\nfunction overwriteLinesWithBlock(\n lines: string[],\n block: string[],\n index: number,\n) {\n for (let i = 0; i < block.length; i++) {\n lines[index + i] = block[i];\n }\n}\n\n/**\n * Search through an array of lines for a block of lines starting with startLine and ending with endLine.\n * @param lines The array of lines to search.\n * @param startLine The first line of the block.\n * @param endLine The last line of the block.\n * @param includeStartEnd Include the start and end lines in the result.\n * @return The found block of lines, if found.\n */\nfunction getBlockContentsFromLines(\n lines: string[],\n startLine: string,\n endLine: string,\n includeStartEnd: boolean = true,\n): string[] {\n const startIndex = lines.indexOf(startLine);\n const endIndex = lines.indexOf(endLine, startIndex);\n\n if (startIndex >= 0 && startIndex < endIndex) {\n if (includeStartEnd) {\n return lines.slice(startIndex, endIndex + 1);\n } else if (startIndex + 1 < endIndex) {\n return lines.slice(startIndex + 1, endIndex);\n }\n }\n\n return [];\n}\n\n/**\n * Adds the necessary info from a VS project into a VS solution file so that it will build.\n * @param slnFile The Absolute path to the target VS solution file.\n * @param project The object representing the project info.\n * @param verbose If true, enable verbose logging.\n * @param checkMode It true, don't make any changes.\n * @return Whether any changes were necessary.\n */\nexport function addProjectToSolution(\n slnFile: string,\n project: Project,\n verbose: boolean = false,\n checkMode: boolean = false,\n): boolean {\n if (project.projectLang === null) {\n throw new CodedError(\n 'AddProjectToSolution',\n 'Unable to add project to solution, projectLang is null',\n );\n }\n\n if (project.projectGuid === null) {\n throw new CodedError(\n 'AddProjectToSolution',\n 'Unable to add project to solution, projectGuid is null',\n );\n }\n\n if (verbose) {\n console.log(\n `Processing ${chalk.bold(path.basename(project.projectFile))}...`,\n );\n }\n\n const originalSlnContents = fs.readFileSync(slnFile).toString();\n\n const isCRLF = originalSlnContents.includes('\\r\\n');\n\n const slnLines = originalSlnContents.split(isCRLF ? '\\r\\n' : '\\n');\n\n let contentsChanged = false;\n\n // Check for the project entry block\n\n const slnDir = path.dirname(slnFile);\n const relProjectFile = path.relative(slnDir, project.projectFile);\n\n const projectTypeGuid =\n 'projectTypeGuid' in project\n ? project.projectTypeGuid!\n : projectTypeGuidsByLanguage[project.projectLang];\n\n const projectGuid = project.projectGuid.toUpperCase();\n\n const projectEntryBlock = [\n `Project(\"${projectTypeGuid}\") = \"${project.projectName}\", \"${relProjectFile}\", \"${projectGuid}\"`,\n 'EndProject',\n ];\n\n const projectEntryBlockRegex = [\n new RegExp(\n `Project\\\\(\"${projectTypeGuid}\"\\\\) = \"${project.projectName}\", \"(.*)\", \"${projectGuid}\"`,\n ),\n 'EndProject',\n ];\n\n const blockIndex = linesContainsBlock(slnLines, projectEntryBlockRegex);\n\n if (blockIndex < 0) {\n // Regex didn't match, insert\n if (verbose) {\n console.log(chalk.yellow('Missing project entry block, inserting.'));\n }\n\n const globalIndex = slnLines.indexOf('Global');\n insertBlockIntoLines(slnLines, projectEntryBlock, globalIndex);\n contentsChanged = true;\n } else if (linesContainsBlock(slnLines, projectEntryBlock) < 0) {\n // Regex matched but project path has changed, so correct it\n if (verbose) {\n console.log(\n chalk.yellow('Existing project entry block found, overwriting.'),\n );\n }\n\n overwriteLinesWithBlock(slnLines, projectEntryBlock, blockIndex);\n contentsChanged = true;\n }\n\n // Check for the project configuration platforms\n\n const slnConfigs = getBlockContentsFromLines(\n slnLines,\n '\\tGlobalSection(SolutionConfigurationPlatforms) = preSolution',\n '\\tEndGlobalSection',\n false,\n ).map(line => line.match(/\\s+([\\w\\s|]+)\\s=/)![1]);\n\n const projectConfigLines: string[] = [];\n\n slnConfigs.forEach(slnConfig => {\n if (!slnConfig.endsWith('|Any CPU')) {\n projectConfigLines.push(\n `\\t\\t${projectGuid}.${slnConfig}.ActiveCfg = ${\n project.projectLang === 'cpp'\n ? slnConfig.replace('x86', 'Win32')\n : slnConfig\n }`,\n );\n projectConfigLines.push(\n `\\t\\t${projectGuid}.${slnConfig}.Build.0 = ${\n project.projectLang === 'cpp'\n ? slnConfig.replace('x86', 'Win32')\n : slnConfig\n }`,\n );\n }\n });\n\n const projectConfigStartIndex = slnLines.indexOf(\n '\\tGlobalSection(ProjectConfigurationPlatforms) = postSolution',\n );\n\n projectConfigLines.forEach(projectConfigLine => {\n if (!slnLines.includes(projectConfigLine)) {\n if (verbose) {\n const configLine = projectConfigLine.substr(\n projectConfigLine.indexOf('= ') + 2,\n );\n console.log(chalk.yellow(`Missing ${configLine} config block.`));\n }\n\n const projectConfigEndIndex = slnLines.indexOf(\n '\\tEndGlobalSection',\n projectConfigStartIndex,\n );\n\n slnLines.splice(projectConfigEndIndex, 0, projectConfigLine);\n contentsChanged = true;\n }\n });\n\n // Write out new solution file if there were changes\n if (contentsChanged) {\n if (verbose) {\n console.log(\n chalk.yellow(\n `${chalk.bold(path.basename(slnFile))} needs to be updated.`,\n ),\n );\n }\n\n if (!checkMode) {\n if (verbose) {\n console.log(\n `Writing changes to ${chalk.bold(path.basename(slnFile))}...`,\n );\n }\n\n const slnContents = slnLines.join(isCRLF ? '\\r\\n' : '\\n');\n fs.writeFileSync(slnFile, slnContents, {\n encoding: 'utf8',\n flag: 'w',\n });\n }\n } else {\n if (verbose) {\n console.log(`No changes to ${chalk.bold(path.basename(slnFile))}.`);\n }\n }\n\n return contentsChanged;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"winappdeploytool.js","sourceRoot":"","sources":["../../../src/runWindows/utils/winappdeploytool.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\nimport {execSync} from 'child_process';\nimport {newSpinner, commandWithProgress, newWarn} from './commandWithProgress';\nimport {CodedError} from '@react-native-windows/telemetry';\n\nfunction sortDevices(l: DeviceInfo, r: DeviceInfo): number {\n return l.toString().length - r.toString().length;\n}\n\nclass DeviceInfo {\n constructor(\n public readonly name: string,\n public readonly guid: string,\n public readonly ip: string,\n\n private readonly index: number,\n private readonly type: string,\n ) {}\n\n toString() {\n return `${this.index}. ${this.name} (${this.type})`;\n }\n}\n\nexport default class WinAppDeployTool {\n private readonly path: string;\n\n constructor() {\n const programFilesPath =\n process.env['ProgramFiles(x86)'] || process.env.ProgramFiles;\n this.path = path.join(\n programFilesPath!,\n 'Windows Kits',\n '10',\n 'bin',\n 'x86',\n 'WinAppDeployCmd.exe',\n );\n }\n\n get isAvailable() {\n return fs.existsSync(this.path);\n }\n\n findDevice(target: string): DeviceInfo {\n const devices = this.enumerateDevices();\n\n if (devices.length === 0) {\n throw new CodedError('NoDevice', 'No devices found');\n }\n\n if (target === 'emulator') {\n const sortedList = devices.sort(sortDevices);\n for (const sortedItem of sortedList) {\n if (sortedItem.toString().includes(target)) {\n return sortedItem;\n }\n }\n }\n\n if (target === 'device') {\n return devices[0];\n }\n\n const candidateList = devices.filter(device => device.guid === target);\n\n if (candidateList.length > 0) {\n return candidateList[0];\n } else {\n throw new CodedError('NoDevice', 'No devices found');\n }\n }\n\n enumerateDevices(): DeviceInfo[] {\n // 127.0.0.1 00000015-b21e-0da9-0000-000000000000 Lumia 1520 (RM-940)\\r\n // maps to\n // [(line), '127.0.0.1', '00000015-b21e-0da9-0000-000000000000', 'Lumia 1520 (RM-940)']\n // The expansion is: IP address, spaces, GUID, spaces, text name\n const LINE_TEST = /^([\\d\\.]+?)\\s+([\\da-fA-F\\-]+?)\\s+(.+)$/m; // eslint-disable-line no-useless-escape\n\n const result = execSync(`\"${this.path}\" devices`).toString();\n const lines = result.split('\\r\\n');\n const matchedLines = lines.filter(line => LINE_TEST.test(line));\n\n const devices = matchedLines.map((line, arrayIndex) => {\n const match = line.match(LINE_TEST);\n if (!match) {\n throw new CodedError(\n 'InvalidDevicesOutput',\n 'Unexpected format of \"devices\" output',\n );\n }\n\n const ip = match[1];\n const guid = match[2];\n const name = match[3];\n const type = 'device';\n\n const deviceInfo = new DeviceInfo(name, guid, ip, arrayIndex, type);\n return deviceInfo;\n });\n\n return devices;\n }\n\n async installAppPackage(\n pathToAppxPackage: string,\n targetDevice: DeviceInfo,\n shouldLaunch: boolean,\n shouldUpdate: boolean,\n pin: boolean,\n verbose: boolean = false,\n ) {\n const text = `Installing app to ${targetDevice.name}`;\n\n if (shouldLaunch) {\n newWarn(\n 'Cannot launch app with current version of Windows 10 SDK tools. You will have to launch the app after installation is completed.',\n );\n }\n\n const args = [\n shouldUpdate ? 'update' : 'install',\n '-file',\n pathToAppxPackage,\n '-ip',\n targetDevice.ip,\n ];\n\n if (pin) {\n args.push('-pin', pin.toString());\n }\n await commandWithProgress(\n newSpinner(text),\n text,\n this.path,\n args,\n verbose,\n 'InstallAppToDeviceFailure',\n );\n }\n\n async uninstallAppPackage(\n appName: string,\n targetDevice: DeviceInfo,\n verbose: boolean,\n ) {\n const text = `Uninstalling app from ${targetDevice.name}`;\n await commandWithProgress(\n newSpinner(text),\n text,\n this.path,\n `uninstall -package ${appName} -ip {$targetDevice.ip}`.split(' '),\n verbose,\n 'UninstallAppOnDeviceFailure',\n );\n }\n}\n"]}