From 79edd9434fb8000efc2779715b00a15634d855f6 Mon Sep 17 00:00:00 2001 From: Kristian Dimitrov Date: Tue, 23 Jul 2019 19:41:04 +0300 Subject: [PATCH 1/3] refactor: extract android tools info logic to doctor --- lib/android-tools-info.ts | 201 ++++++++------------------------------ lib/declarations.d.ts | 2 +- npm-shrinkwrap.json | 6 +- package.json | 2 +- 4 files changed, 45 insertions(+), 166 deletions(-) diff --git a/lib/android-tools-info.ts b/lib/android-tools-info.ts index 7d777f8b93..7aad85803b 100644 --- a/lib/android-tools-info.ts +++ b/lib/android-tools-info.ts @@ -1,36 +1,9 @@ import * as path from "path"; -import * as semver from "semver"; import { cache } from "./common/decorators"; import { androidToolsInfo } from "nativescript-doctor"; export class AndroidToolsInfo implements IAndroidToolsInfo { - private static ANDROID_TARGET_PREFIX = "android"; - private static SUPPORTED_TARGETS = [ - "android-17", - "android-18", - "android-19", - "android-21", - "android-22", - "android-23", - "android-24", - "android-25", - "android-26", - "android-27", - "android-28", - ]; - private static MIN_REQUIRED_COMPILE_TARGET = 28; - private static REQUIRED_BUILD_TOOLS_RANGE_PREFIX = ">=23"; - private static VERSION_REGEX = /((\d+\.){2}\d+)/; - - private showWarningsAsErrors: boolean; - private toolsInfo: IAndroidToolsInfoData; - private selectedCompileSdk: number; - private get androidHome(): string { - return process.env["ANDROID_HOME"]; - } - constructor(private $errors: IErrors, - private $fs: IFileSystem, private $logger: ILogger, private $options: IOptions, protected $staticConfig: Config.IStaticConfig) { @@ -38,62 +11,53 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { @cache() public getToolsInfo(): IAndroidToolsInfoData { - if (!this.toolsInfo) { - const infoData: IAndroidToolsInfoData = Object.create(null); - infoData.androidHomeEnvVar = this.androidHome; - infoData.compileSdkVersion = this.getCompileSdkVersion(); - infoData.buildToolsVersion = this.getBuildToolsVersion(); - infoData.targetSdkVersion = this.getTargetSdk(); - infoData.generateTypings = this.shouldGenerateTypings(); - - this.toolsInfo = infoData; - } + const infoData: IAndroidToolsInfoData = (androidToolsInfo.getToolsInfo()); + + infoData.androidHomeEnvVar = androidToolsInfo.androidHome; + infoData.compileSdkVersion = this.getCompileSdkVersion(infoData.installedTargets, infoData.compileSdkVersion); + infoData.targetSdkVersion = this.getTargetSdk(infoData.compileSdkVersion); + infoData.generateTypings = this.shouldGenerateTypings(); + + this.$logger.trace("Installed Android Targets are: ", infoData.installedTargets); + this.$logger.trace("Selected buildToolsVersion is:", infoData.buildToolsVersion); - return this.toolsInfo; + return infoData; } public validateInfo(options?: IAndroidToolsInfoValidateInput): boolean { let detectedErrors = false; - this.showWarningsAsErrors = options && options.showWarningsAsErrors; - const isAndroidHomeValid = this.validateAndroidHomeEnvVariable(); + const showWarningsAsErrors = options && options.showWarningsAsErrors; + const isAndroidHomeValid = this.validateAndroidHomeEnvVariable(options); - detectedErrors = androidToolsInfo.validateInfo().map(warning => this.printMessage(warning.warning)).length > 0; + detectedErrors = androidToolsInfo.validateInfo().map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; if (options && options.validateTargetSdk) { - detectedErrors = this.validateTargetSdk(); + detectedErrors = this.validateTargetSdk(options); } return detectedErrors || !isAndroidHomeValid; } public validateTargetSdk(options?: IAndroidToolsInfoOptions): boolean { - this.showWarningsAsErrors = options && options.showWarningsAsErrors; + let detectedErrors = false; + const showWarningsAsErrors = options && options.showWarningsAsErrors; const toolsInfoData = this.getToolsInfo(); const targetSdk = toolsInfoData.targetSdkVersion; - const newTarget = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${targetSdk}`; - if (!_.includes(AndroidToolsInfo.SUPPORTED_TARGETS, newTarget)) { - const supportedVersions = AndroidToolsInfo.SUPPORTED_TARGETS.sort(); - const minSupportedVersion = this.parseAndroidSdkString(_.first(supportedVersions)); + detectedErrors = androidToolsInfo.validateMinSupportedTargetSdk(targetSdk).map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; - if (targetSdk && (targetSdk < minSupportedVersion)) { - this.printMessage(`The selected Android target SDK ${newTarget} is not supported. You must target ${minSupportedVersion} or later.`); - return true; - } else if (!targetSdk || targetSdk > this.getMaxSupportedVersion()) { - this.$logger.warn(`Support for the selected Android target SDK ${newTarget} is not verified. Your Android app might not work as expected.`); - } + if (!detectedErrors) { + androidToolsInfo.validataMaxSupportedTargetSdk(targetSdk).map(warning => this.$logger.warn(warning.warning)); } - return false; + return detectedErrors; } public validateJavacVersion(installedJavacVersion: string, options?: IAndroidToolsInfoOptions): boolean { - if (options) { - this.showWarningsAsErrors = options.showWarningsAsErrors; - } + const showWarningsAsErrors = options && options.showWarningsAsErrors; - return androidToolsInfo.validateJavacVersion(installedJavacVersion).map(warning => this.printMessage(warning.warning)).length > 0; + return androidToolsInfo.validateJavacVersion(installedJavacVersion).map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; } public async getPathToAdbFromAndroidHome(): Promise { @@ -102,7 +66,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { } catch (err) { // adb does not exist, so ANDROID_HOME is not set correctly // try getting default adb path (included in CLI package) - this.$logger.trace(`Error while executing '${path.join(this.androidHome, "platform-tools", "adb")} help'. Error is: ${err.message}`); + this.$logger.trace(`Error while executing '${path.join(androidToolsInfo.androidHome, "platform-tools", "adb")} help'. Error is: ${err.message}`); } return null; @@ -110,11 +74,9 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { @cache() public validateAndroidHomeEnvVariable(options?: IAndroidToolsInfoOptions): boolean { - if (options) { - this.showWarningsAsErrors = options.showWarningsAsErrors; - } + const showWarningsAsErrors = options && options.showWarningsAsErrors; - return androidToolsInfo.validateAndroidHomeEnvVariable().map(warning => this.printMessage(warning.warning)).length > 0; + return androidToolsInfo.validateAndroidHomeEnvVariable().map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; } private shouldGenerateTypings(): boolean { @@ -127,119 +89,36 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { * In case additional details must be shown as info message, use the second parameter. * NOTE: The additional information will not be printed when showWarningsAsErrors flag is set. * @param {string} msg The message that will be shown as warning or error. - * @param {string} additionalMsg The additional message that will be shown as info message. * @return {void} */ - private printMessage(msg: string, additionalMsg?: string): void { - if (this.showWarningsAsErrors) { + private printMessage(msg: string, showWarningsAsErrors: boolean): void { + if (showWarningsAsErrors) { this.$errors.failWithoutHelp(msg); } else { this.$logger.warn(msg); } - - if (additionalMsg) { - this.$logger.printMarkdown(additionalMsg); - } } - private getCompileSdkVersion(): number { - if (!this.selectedCompileSdk) { - const userSpecifiedCompileSdk = this.$options.compileSdk; - if (userSpecifiedCompileSdk) { - const installedTargets = this.getInstalledTargets(); - const androidCompileSdk = `${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-${userSpecifiedCompileSdk}`; - if (!_.includes(installedTargets, androidCompileSdk)) { - this.$errors.failWithoutHelp(`You have specified '${userSpecifiedCompileSdk}' for compile sdk, but it is not installed on your system.`); - } - - this.selectedCompileSdk = userSpecifiedCompileSdk; - } else { - const latestValidAndroidTarget = this.getLatestValidAndroidTarget(); - if (latestValidAndroidTarget) { - const integerVersion = this.parseAndroidSdkString(latestValidAndroidTarget); - - if (integerVersion && integerVersion >= AndroidToolsInfo.MIN_REQUIRED_COMPILE_TARGET) { - this.selectedCompileSdk = integerVersion; - } - } - } - } + private getCompileSdkVersion(installedTargets: string[], latestCompileSdk: number): number { + const userSpecifiedCompileSdk = this.$options.compileSdk; - return this.selectedCompileSdk; - } - - private getTargetSdk(): number { - const targetSdk = this.$options.sdk ? parseInt(this.$options.sdk) : this.getCompileSdkVersion(); - this.$logger.trace(`Selected targetSdk is: ${targetSdk}`); - return targetSdk; - } - - private getMatchingDir(pathToDir: string, versionRange: string): string { - let selectedVersion: string; - if (this.$fs.exists(pathToDir)) { - const subDirs = this.$fs.readDirectory(pathToDir); - this.$logger.trace(`Directories found in ${pathToDir} are ${subDirs.join(", ")}`); - - const subDirsVersions = subDirs - .map(dirName => { - const dirNameGroups = dirName.match(AndroidToolsInfo.VERSION_REGEX); - if (dirNameGroups) { - return dirNameGroups[1]; - } - - return null; - }) - .filter(dirName => !!dirName); - this.$logger.trace(`Versions found in ${pathToDir} are ${subDirsVersions.join(", ")}`); - const version = semver.maxSatisfying(subDirsVersions, versionRange); - if (version) { - selectedVersion = _.find(subDirs, dir => dir.indexOf(version) !== -1); + if (userSpecifiedCompileSdk) { + const androidCompileSdk = `${androidToolsInfo.ANDROID_TARGET_PREFIX}-${userSpecifiedCompileSdk}`; + if (!_.includes(installedTargets, androidCompileSdk)) { + this.$errors.failWithoutHelp(`You have specified '${userSpecifiedCompileSdk}' for compile sdk, but it is not installed on your system.`); } - } - this.$logger.trace("Selected version is: ", selectedVersion); - return selectedVersion; - } - - private getBuildToolsRange(): string { - return `${AndroidToolsInfo.REQUIRED_BUILD_TOOLS_RANGE_PREFIX} <=${this.getMaxSupportedVersion()}`; - } - private getBuildToolsVersion(): string { - let buildToolsVersion: string; - if (this.androidHome) { - const pathToBuildTools = path.join(this.androidHome, "build-tools"); - const buildToolsRange = this.getBuildToolsRange(); - buildToolsVersion = this.getMatchingDir(pathToBuildTools, buildToolsRange); + return userSpecifiedCompileSdk; } - return buildToolsVersion; - } - - private getLatestValidAndroidTarget(): string { - const installedTargets = this.getInstalledTargets(); - return _.findLast(AndroidToolsInfo.SUPPORTED_TARGETS.sort(), supportedTarget => _.includes(installedTargets, supportedTarget)); - } - - private parseAndroidSdkString(androidSdkString: string): number { - return parseInt(androidSdkString.replace(`${AndroidToolsInfo.ANDROID_TARGET_PREFIX}-`, "")); + return latestCompileSdk; } - @cache() - private getInstalledTargets(): string[] { - let installedTargets: string[] = []; - if (this.androidHome) { - const pathToInstalledTargets = path.join(this.androidHome, "platforms"); - if (this.$fs.exists(pathToInstalledTargets)) { - installedTargets = this.$fs.readDirectory(pathToInstalledTargets); - } - } - this.$logger.trace("Installed Android Targets are: ", installedTargets); - - return installedTargets; - } - - private getMaxSupportedVersion(): number { - return this.parseAndroidSdkString(_.last(AndroidToolsInfo.SUPPORTED_TARGETS.sort())); + // TODO check if still needed + private getTargetSdk(compileSdk: number): number { + const targetSdk = this.$options.sdk ? parseInt(this.$options.sdk) : compileSdk; + this.$logger.trace(`Selected targetSdk is: ${targetSdk}`); + return targetSdk; } } $injector.register("androidToolsInfo", AndroidToolsInfo); diff --git a/lib/declarations.d.ts b/lib/declarations.d.ts index 389e2c17b7..494bb066ab 100644 --- a/lib/declarations.d.ts +++ b/lib/declarations.d.ts @@ -689,7 +689,7 @@ interface IAndroidToolsInfo { /** * Describes information about installed Android tools and SDKs. */ -interface IAndroidToolsInfoData { +interface IAndroidToolsInfoData extends NativeScriptDoctor.IAndroidToolsInfoData { /** * The value of ANDROID_HOME environment variable. */ diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 07aa7df832..d9ed572b90 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -5462,9 +5462,9 @@ } }, "nativescript-doctor": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.10.0.tgz", - "integrity": "sha512-v0xBisRfibxLZ8EU/O98IbLf3Y9DJhevFQWHZ86V0rGo2ImI3Rzu5Xz61oULIVQvO9N0dIpvIFHCiTxoKIhNMQ==", + "version": "1.11.0-rc.0", + "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.11.0-rc.0.tgz", + "integrity": "sha512-4qIyiXm9AZXtW3uk7uT+RzHcULpK74GaaKiSXcQguyyN4VEh7eCgT8K8nWeF4oA2gsNz736xTw+Pe/tbOMA0JQ==", "requires": { "osenv": "0.1.3", "semver": "5.5.1", diff --git a/package.json b/package.json index 9b934c7cfb..b299797eb1 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "mkdirp": "0.5.1", "mute-stream": "0.0.5", "nativescript-dev-xcode": "0.2.0", - "nativescript-doctor": "1.10.0", + "nativescript-doctor": "1.11.0-rc.0", "nativescript-preview-sdk": "0.3.4", "open": "0.0.5", "ora": "2.0.0", From a95caa52b637f124a2958c4aafe082395cc8d416 Mon Sep 17 00:00:00 2001 From: Kristian Dimitrov Date: Tue, 6 Aug 2019 16:18:20 +0300 Subject: [PATCH 2/3] fix: build projects with SDK28 if runtime below 6.1.0 --- lib/android-tools-info.ts | 15 +++++++-------- lib/declarations.d.ts | 7 ++++--- lib/definitions/android-plugin-migrator.d.ts | 2 +- lib/services/android-plugin-build-service.ts | 6 +++--- lib/services/android-project-service.ts | 4 ++-- lib/services/android/gradle-build-args-service.ts | 2 +- npm-shrinkwrap.json | 12 +++++++++--- package.json | 2 +- 8 files changed, 28 insertions(+), 22 deletions(-) diff --git a/lib/android-tools-info.ts b/lib/android-tools-info.ts index 7aad85803b..6e9ba1d6ff 100644 --- a/lib/android-tools-info.ts +++ b/lib/android-tools-info.ts @@ -10,8 +10,8 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { } @cache() - public getToolsInfo(): IAndroidToolsInfoData { - const infoData: IAndroidToolsInfoData = (androidToolsInfo.getToolsInfo()); + public getToolsInfo(config: IProjectDir): IAndroidToolsInfoData { + const infoData: IAndroidToolsInfoData = (androidToolsInfo.getToolsInfo({projectDir: config.projectDir})); infoData.androidHomeEnvVar = androidToolsInfo.androidHome; infoData.compileSdkVersion = this.getCompileSdkVersion(infoData.installedTargets, infoData.compileSdkVersion); @@ -29,7 +29,7 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { const showWarningsAsErrors = options && options.showWarningsAsErrors; const isAndroidHomeValid = this.validateAndroidHomeEnvVariable(options); - detectedErrors = androidToolsInfo.validateInfo().map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; + detectedErrors = androidToolsInfo.validateInfo({projectDir: options.projectDir}).map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; if (options && options.validateTargetSdk) { detectedErrors = this.validateTargetSdk(options); @@ -38,17 +38,16 @@ export class AndroidToolsInfo implements IAndroidToolsInfo { return detectedErrors || !isAndroidHomeValid; } - public validateTargetSdk(options?: IAndroidToolsInfoOptions): boolean { + public validateTargetSdk(options: IAndroidToolsInfoOptions): boolean { let detectedErrors = false; - const showWarningsAsErrors = options && options.showWarningsAsErrors; - const toolsInfoData = this.getToolsInfo(); + const toolsInfoData = this.getToolsInfo({ projectDir: options.projectDir}); const targetSdk = toolsInfoData.targetSdkVersion; - detectedErrors = androidToolsInfo.validateMinSupportedTargetSdk(targetSdk).map(warning => this.printMessage(warning.warning, showWarningsAsErrors)).length > 0; + detectedErrors = androidToolsInfo.validateMinSupportedTargetSdk({targetSdk, projectDir: options.projectDir}).map(warning => this.printMessage(warning.warning, options.showWarningsAsErrors)).length > 0; if (!detectedErrors) { - androidToolsInfo.validataMaxSupportedTargetSdk(targetSdk).map(warning => this.$logger.warn(warning.warning)); + androidToolsInfo.validataMaxSupportedTargetSdk({targetSdk, projectDir: options.projectDir}).map(warning => this.$logger.warn(warning.warning)); } return detectedErrors; diff --git a/lib/declarations.d.ts b/lib/declarations.d.ts index 494bb066ab..7f7da155ab 100644 --- a/lib/declarations.d.ts +++ b/lib/declarations.d.ts @@ -646,9 +646,10 @@ interface IAndroidToolsInfo { /** * Provides information about installed Android SDKs, Build Tools, Support Library * and ANDROID_HOME environement variable. + * @param {IProjectDir} config Object with a single property - projectDir. This is the root directory where NativeScript project is located. * @return {IAndroidToolsInfoData} Information about installed Android Tools and SDKs. */ - getToolsInfo(): IAndroidToolsInfoData; + getToolsInfo(config?: IProjectDir): IAndroidToolsInfoData; /** * Validates the information about required Android tools and SDK versions. @@ -720,11 +721,11 @@ interface IAndroidToolsInfoData extends NativeScriptDoctor.IAndroidToolsInfoData /** * Describes options that can be passed to methods from IAndroidToolsInfo interface */ -interface IAndroidToolsInfoOptions { +interface IAndroidToolsInfoOptions extends Partial { /** * Defines if the warning messages should treated as error. */ - showWarningsAsErrors: boolean; + showWarningsAsErrors?: boolean; } interface IAndroidToolsInfoValidateInput extends IAndroidToolsInfoOptions { diff --git a/lib/definitions/android-plugin-migrator.d.ts b/lib/definitions/android-plugin-migrator.d.ts index fc09a6fb51..830f2ff725 100644 --- a/lib/definitions/android-plugin-migrator.d.ts +++ b/lib/definitions/android-plugin-migrator.d.ts @@ -19,7 +19,7 @@ interface IAndroidPluginBuildService { * Describes data required for building plugin for Android. * The data can be consumed in the buildAndroidPlugin hook. */ -interface IBuildAndroidPluginData { +interface IBuildAndroidPluginData extends Partial { /** * Directory where the plugin will be build. * Usually this is the `/platforms/tempPlugin/` dir. diff --git a/lib/services/android-plugin-build-service.ts b/lib/services/android-plugin-build-service.ts index 88f935cd65..ec816fd440 100644 --- a/lib/services/android-plugin-build-service.ts +++ b/lib/services/android-plugin-build-service.ts @@ -189,7 +189,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { await this.updateManifest(manifestFilePath, pluginTempMainSrcDir, shortPluginName); this.copySourceSetDirectories(androidSourceDirectories, pluginTempMainSrcDir); await this.setupGradle(pluginTempDir, options.platformsAndroidDirPath, options.projectDir); - await this.buildPlugin({ pluginDir: pluginTempDir, pluginName: options.pluginName }); + await this.buildPlugin({ pluginDir: pluginTempDir, pluginName: options.pluginName, projectDir: options.projectDir }); this.$watchIgnoreListService.addFileToIgnoreList(path.join(options.aarOutputDir, `${shortPluginName}.aar`)); this.copyAar(shortPluginName, pluginTempDir, options.aarOutputDir); this.writePluginHashInfo(pluginSourceFileHashesInfo, pluginTempDir); @@ -440,8 +440,8 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { @hook("buildAndroidPlugin") private async buildPlugin(pluginBuildSettings: IBuildAndroidPluginData): Promise { if (!pluginBuildSettings.androidToolsInfo) { - this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, validateTargetSdk: true }); - pluginBuildSettings.androidToolsInfo = this.$androidToolsInfo.getToolsInfo(); + this.$androidToolsInfo.validateInfo({ showWarningsAsErrors: true, validateTargetSdk: true, projectDir: pluginBuildSettings.projectDir }); + pluginBuildSettings.androidToolsInfo = this.$androidToolsInfo.getToolsInfo({ projectDir: pluginBuildSettings.projectDir }); } const gradlew = this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew"; diff --git a/lib/services/android-project-service.ts b/lib/services/android-project-service.ts index e6e8c362e6..1c8f3b5235 100644 --- a/lib/services/android-project-service.ts +++ b/lib/services/android-project-service.ts @@ -122,7 +122,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject notConfiguredEnvOptions }); - this.$androidToolsInfo.validateTargetSdk({ showWarningsAsErrors: true }); + this.$androidToolsInfo.validateTargetSdk({ showWarningsAsErrors: true, projectDir: projectData.projectDir }); return { checkEnvironmentRequirementsOutput @@ -135,7 +135,7 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject } this.$fs.ensureDirectoryExists(this.getPlatformData(projectData).projectRoot); - const androidToolsInfo = this.$androidToolsInfo.getToolsInfo(); + const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({ projectDir: projectData.projectDir}); const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion; this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`); diff --git a/lib/services/android/gradle-build-args-service.ts b/lib/services/android/gradle-build-args-service.ts index d2d50a8468..490283a43e 100644 --- a/lib/services/android/gradle-build-args-service.ts +++ b/lib/services/android/gradle-build-args-service.ts @@ -22,7 +22,7 @@ export class GradleBuildArgsService implements IGradleBuildArgsService { private getBaseTaskArgs(buildData: IAndroidBuildData): string[] { const args = this.getBuildLoggingArgs(); - const toolsInfo = this.$androidToolsInfo.getToolsInfo(); + const toolsInfo = this.$androidToolsInfo.getToolsInfo({projectDir: buildData.projectDir}); args.push( `-PcompileSdk=android-${toolsInfo.compileSdkVersion}`, `-PtargetSdk=${toolsInfo.targetSdkVersion}`, diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index d9ed572b90..2467c501d2 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -5462,10 +5462,11 @@ } }, "nativescript-doctor": { - "version": "1.11.0-rc.0", - "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.11.0-rc.0.tgz", - "integrity": "sha512-4qIyiXm9AZXtW3uk7uT+RzHcULpK74GaaKiSXcQguyyN4VEh7eCgT8K8nWeF4oA2gsNz736xTw+Pe/tbOMA0JQ==", + "version": "1.11.0-rc.1", + "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.11.0-rc.1.tgz", + "integrity": "sha512-L2FD3hSG6bgXYjXvSFdpX/3YZ4SN9FNqqr0urojhEnIvj+mimRi6+I/H9hRrCOGfAm8SqeYa7ZO+ko4KuMs4Wg==", "requires": { + "lodash": "4.17.15", "osenv": "0.1.3", "semver": "5.5.1", "temp": "0.8.3", @@ -5473,6 +5474,11 @@ "yauzl": "2.10.0" }, "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", diff --git a/package.json b/package.json index b299797eb1..dfd2ad4cc7 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "mkdirp": "0.5.1", "mute-stream": "0.0.5", "nativescript-dev-xcode": "0.2.0", - "nativescript-doctor": "1.11.0-rc.0", + "nativescript-doctor": "1.11.0-rc.1", "nativescript-preview-sdk": "0.3.4", "open": "0.0.5", "ora": "2.0.0", From 6d4d5cc4ae3dfff9d68695bc7f361a23cb276852 Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Fri, 9 Aug 2019 15:14:27 +0300 Subject: [PATCH 3/3] chore: update nativescript-doctor to official version --- npm-shrinkwrap.json | 47 +++++++++++++++++++++++++++++++-------------- package.json | 2 +- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2467c501d2..64bb289f05 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2623,7 +2623,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2641,11 +2642,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2658,15 +2661,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2769,7 +2775,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2779,6 +2786,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2791,17 +2799,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2818,6 +2829,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2890,7 +2902,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2900,6 +2913,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2975,7 +2989,8 @@ }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -3005,6 +3020,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3022,6 +3038,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3060,11 +3077,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.3", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -5462,9 +5481,9 @@ } }, "nativescript-doctor": { - "version": "1.11.0-rc.1", - "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.11.0-rc.1.tgz", - "integrity": "sha512-L2FD3hSG6bgXYjXvSFdpX/3YZ4SN9FNqqr0urojhEnIvj+mimRi6+I/H9hRrCOGfAm8SqeYa7ZO+ko4KuMs4Wg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/nativescript-doctor/-/nativescript-doctor-1.11.0.tgz", + "integrity": "sha512-TlR8b1+R6ARXWe9InUvSkiLDhXW30wVP8skgp38KKNXBXPPNE+vZHULFc0AkwMbR12y+vBqxvBwA8x2f7Mahzw==", "requires": { "lodash": "4.17.15", "osenv": "0.1.3", diff --git a/package.json b/package.json index dfd2ad4cc7..ff23f2c69f 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "mkdirp": "0.5.1", "mute-stream": "0.0.5", "nativescript-dev-xcode": "0.2.0", - "nativescript-doctor": "1.11.0-rc.1", + "nativescript-doctor": "1.11.0", "nativescript-preview-sdk": "0.3.4", "open": "0.0.5", "ora": "2.0.0",