From efa355366ae3d52d3308e25f4078a484ff6defa9 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Tue, 30 Jul 2024 21:29:55 +0200 Subject: [PATCH 1/6] chore: fix tests --- .../unit-tests/mobile/device-log-provider.ts | 1 + .../unit-tests/services/files-hash-service.ts | 4 ++-- package-lock.json | 4 ++-- test/project-files-provider.ts | 8 +++++-- test/services/android-project-service.ts | 23 +++++++++++-------- test/services/log-source-map-service.ts | 17 +++++++++----- test/stubs.ts | 4 +++- 7 files changed, 38 insertions(+), 23 deletions(-) diff --git a/lib/common/test/unit-tests/mobile/device-log-provider.ts b/lib/common/test/unit-tests/mobile/device-log-provider.ts index 736a419b95..022524d329 100644 --- a/lib/common/test/unit-tests/mobile/device-log-provider.ts +++ b/lib/common/test/unit-tests/mobile/device-log-provider.ts @@ -36,6 +36,7 @@ const createTestInjector = (): IInjector => { env: { classicLogs: true, }, + hostProjectModuleName: "app", }); testInjector.register("loggingLevels", LoggingLevels); testInjector.register("devicePlatformsConstants", DevicePlatformsConstants); diff --git a/lib/common/test/unit-tests/services/files-hash-service.ts b/lib/common/test/unit-tests/services/files-hash-service.ts index 6181c3d637..e4cda33d2d 100644 --- a/lib/common/test/unit-tests/services/files-hash-service.ts +++ b/lib/common/test/unit-tests/services/files-hash-service.ts @@ -22,6 +22,7 @@ function createTestInjector(): IInjector { injector.register("fs", FileSystemStub); injector.register("logger", LoggerStub); injector.register("filesHashService", FilesHashService); + injector.register("options", {}); return injector; } @@ -74,8 +75,7 @@ describe("filesHashService", () => { expectedChanges: { file7: "hash7" }, }, { - name: - "should return changes when a file is added and a file is removed from oldHashes", + name: "should return changes when a file is added and a file is removed from oldHashes", newHashes: addFileHashes({ file9: "hash9" }), oldHashes: removeFileHashes({ file1: "hash1" }), expectedChanges: { file1: "hash1", file9: "hash9" }, diff --git a/package-lock.json b/package-lock.json index 9d85ecf941..fe8c34a647 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nativescript", - "version": "8.8.0-embed.2", + "version": "8.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nativescript", - "version": "8.8.0-embed.2", + "version": "8.8.0", "bundleDependencies": [ "@npmcli/move-file", "stringify-package" diff --git a/test/project-files-provider.ts b/test/project-files-provider.ts index 8d400bd2d0..a5edfc2314 100644 --- a/test/project-files-provider.ts +++ b/test/project-files-provider.ts @@ -33,7 +33,10 @@ function createTestInjector(): IInjector { }, }); - testInjector.register("options", { release: false }); + testInjector.register("options", { + release: false, + hostProjectModuleName: "app", + }); return testInjector; } @@ -48,7 +51,8 @@ describe("project-files-provider", () => { projectData = testInjector.resolve("projectData"); projectData.projectDir = projectDir; projectData.appDirectoryPath = projectData.getAppDirectoryPath(); - projectData.appResourcesDirectoryPath = projectData.getAppResourcesDirectoryPath(); + projectData.appResourcesDirectoryPath = + projectData.getAppResourcesDirectoryPath(); projectFilesProvider = testInjector.resolve(ProjectFilesProvider); }); diff --git a/test/services/android-project-service.ts b/test/services/android-project-service.ts index ed199e47ca..1961548012 100644 --- a/test/services/android-project-service.ts +++ b/test/services/android-project-service.ts @@ -41,7 +41,9 @@ const createTestInjector = (): IInjector => { testInjector.register("androidPluginBuildService", {}); testInjector.register("errors", stubs.ErrorsStub); testInjector.register("logger", stubs.LoggerStub); - testInjector.register("options", {}); + testInjector.register("options", { + hostProjectModuleName: "app", + }); testInjector.register("projectData", stubs.ProjectDataStub); testInjector.register("androidToolsInfo", { getToolsInfo: () => { @@ -240,9 +242,8 @@ describe("androidProjectService", () => { compileSdkVersion = 29; - const androidToolsInfo = injector.resolve( - "androidToolsInfo" - ); + const androidToolsInfo = + injector.resolve("androidToolsInfo"); androidToolsInfo.getToolsInfo = ( config?: IProjectDir ): IAndroidToolsInfoData => { @@ -258,9 +259,10 @@ describe("androidProjectService", () => { "src" ); beforeEach(() => { - const androidResourcesMigrationService = injector.resolve< - IAndroidResourcesMigrationService - >("androidResourcesMigrationService"); + const androidResourcesMigrationService = + injector.resolve( + "androidResourcesMigrationService" + ); androidResourcesMigrationService.hasMigrated = () => true; }); @@ -329,9 +331,10 @@ describe("androidProjectService", () => { describe("when old Android App_Resources structure is detected (post {N} 4.0 structure)", () => { beforeEach(() => { - const androidResourcesMigrationService = injector.resolve< - IAndroidResourcesMigrationService - >("androidResourcesMigrationService"); + const androidResourcesMigrationService = + injector.resolve( + "androidResourcesMigrationService" + ); androidResourcesMigrationService.hasMigrated = () => false; }); diff --git a/test/services/log-source-map-service.ts b/test/services/log-source-map-service.ts index 6e15615248..eb7a22037d 100644 --- a/test/services/log-source-map-service.ts +++ b/test/services/log-source-map-service.ts @@ -50,6 +50,9 @@ function createTestInjector(): IInjector { testInjector.register("devicePlatformsConstants", DevicePlatformsConstants); testInjector.register("logger", LoggerStub); testInjector.register("logSourceMapService", LogSourceMapService); + testInjector.register("options", { + hostProjectModuleName: "app", + }); return testInjector; } @@ -58,12 +61,14 @@ function toPlatformSep(filePath: string) { return stringReplaceAll(filePath, "/", path.sep); } -const testCases: IDictionary> = { +const testCases: IDictionary< + Array<{ + caseName: string; + message: string; + expected: string; + runtimeVersion?: string; + }> +> = { android: [ { caseName: "trace message", diff --git a/test/stubs.ts b/test/stubs.ts index 39f1f012b5..02f0d06529 100644 --- a/test/stubs.ts +++ b/test/stubs.ts @@ -1470,7 +1470,9 @@ export class InjectorStub extends Yok implements IInjector { this.register("androidToolsInfo", AndroidToolsInfoStub); this.register("logger", LoggerStub); this.register("errors", ErrorsStub); - this.register("options", {}); + this.register("options", { + hostProjectModuleName: "app", + }); this.register("config", {}); this.register("staticConfig", {}); this.register("hooksService", HooksServiceStub); From bf9a6cdbed227c876b8a94a13e3517e684dad924 Mon Sep 17 00:00:00 2001 From: Eduardo Speroni Date: Tue, 30 Jul 2024 16:32:49 -0300 Subject: [PATCH 2/6] fix: quote windows command line arguments (#5808) --- lib/base-package-manager.ts | 20 +++++++++++++------ .../android/android-virtual-device-service.ts | 7 +++++-- lib/services/android-plugin-build-service.ts | 7 +++++-- .../android/gradle-command-service.ts | 6 +++++- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/lib/base-package-manager.ts b/lib/base-package-manager.ts index 12b24df7d1..86e40c8ea9 100644 --- a/lib/base-package-manager.ts +++ b/lib/base-package-manager.ts @@ -1,4 +1,4 @@ -import { isInteractive } from "./common/helpers"; +import { isInteractive, quoteString } from "./common/helpers"; import { INodePackageManager, INodePackageManagerInstallOptions, @@ -108,11 +108,19 @@ export abstract class BasePackageManager implements INodePackageManager { ): Promise { const npmExecutable = this.getPackageManagerExecutableName(); const stdioValue = isInteractive() ? "inherit" : "pipe"; - await this.$childProcess.spawnFromEvent(npmExecutable, params, "close", { - cwd: opts.cwd, - stdio: stdioValue, - shell: this.$hostInfo.isWindows, - }); + const sanitizedNpmExecutable = this.$hostInfo.isWindows + ? quoteString(npmExecutable) + : npmExecutable; + await this.$childProcess.spawnFromEvent( + sanitizedNpmExecutable, + params, + "close", + { + cwd: opts.cwd, + stdio: stdioValue, + shell: this.$hostInfo.isWindows, + } + ); // Whenever calling "npm install" or "yarn add" without any arguments (hence installing all dependencies) no output is emitted on stdout // Luckily, whenever you call "npm install" or "yarn add" to install all dependencies chances are you won't need the name/version of the package you're installing because there is none. diff --git a/lib/common/mobile/android/android-virtual-device-service.ts b/lib/common/mobile/android/android-virtual-device-service.ts index ade98318dc..d6b58f2339 100644 --- a/lib/common/mobile/android/android-virtual-device-service.ts +++ b/lib/common/mobile/android/android-virtual-device-service.ts @@ -9,7 +9,7 @@ import { NOT_RUNNING_EMULATOR_STATUS, } from "../../constants"; import { cache } from "../../decorators"; -import { settlePromises } from "../../helpers"; +import { quoteString, settlePromises } from "../../helpers"; import { DeviceConnectionType } from "../../../constants"; import { IStringDictionary, @@ -221,8 +221,11 @@ export class AndroidVirtualDeviceService } if (canExecuteAvdManagerCommand) { + const sanitizedPathToAvdManagerExecutable = this.$hostInfo.isWindows + ? quoteString(this.pathToAvdManagerExecutable) + : this.pathToAvdManagerExecutable; result = await this.$childProcess.trySpawnFromCloseEvent( - this.pathToAvdManagerExecutable, + sanitizedPathToAvdManagerExecutable, ["list", "avds"], { shell: this.$hostInfo.isWindows } ); diff --git a/lib/services/android-plugin-build-service.ts b/lib/services/android-plugin-build-service.ts index 9e525e4ba0..77cda49684 100644 --- a/lib/services/android-plugin-build-service.ts +++ b/lib/services/android-plugin-build-service.ts @@ -8,7 +8,7 @@ import { PLUGIN_BUILD_DATA_FILENAME, SCOPED_ANDROID_RUNTIME_NAME, } from "../constants"; -import { getShortPluginName, hook } from "../common/helpers"; +import { getShortPluginName, hook, quoteString } from "../common/helpers"; import { Builder, parseString } from "xml2js"; import { IRuntimeGradleVersions, @@ -841,9 +841,12 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService { } try { + const sanitizedArgs = this.$hostInfo.isWindows + ? localArgs.map((arg) => quoteString(arg)) + : localArgs; await this.$childProcess.spawnFromEvent( gradlew, - localArgs, + sanitizedArgs, "close", opts ); diff --git a/lib/services/android/gradle-command-service.ts b/lib/services/android/gradle-command-service.ts index 3e6c3e3117..bca2282bd7 100644 --- a/lib/services/android/gradle-command-service.ts +++ b/lib/services/android/gradle-command-service.ts @@ -10,6 +10,7 @@ import { IGradleCommandOptions, } from "../../definitions/gradle"; import { injector } from "../../common/yok"; +import { quoteString } from "../../common/helpers"; export class GradleCommandService implements IGradleCommandService { constructor( @@ -35,9 +36,12 @@ export class GradleCommandService implements IGradleCommandService { options.gradlePath ?? (this.$hostInfo.isWindows ? "gradlew.bat" : "./gradlew"); + const sanitizedGradleArgs = this.$hostInfo.isWindows + ? gradleArgs.map((arg) => quoteString(arg)) + : gradleArgs; const result = await this.executeCommandSafe( gradleExecutable, - gradleArgs, + sanitizedGradleArgs, childProcessOptions, spawnOptions ); From abc7ab474024bda566374271e0497f4c73d78b4d Mon Sep 17 00:00:00 2001 From: Eduardo Speroni Date: Mon, 19 Aug 2024 10:49:32 -0300 Subject: [PATCH 3/6] feat: add android 35 support (#5811) --- lib/common/mobile/emulator-helper.ts | 1 + packages/doctor/src/android-tools-info.ts | 1 + packages/doctor/test/android-tools-info.ts | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/common/mobile/emulator-helper.ts b/lib/common/mobile/emulator-helper.ts index c4f456731f..f892b605fa 100644 --- a/lib/common/mobile/emulator-helper.ts +++ b/lib/common/mobile/emulator-helper.ts @@ -5,6 +5,7 @@ import { injector } from "../yok"; export class EmulatorHelper implements Mobile.IEmulatorHelper { // https://developer.android.com/guide/topics/manifest/uses-sdk-element public mapAndroidApiLevelToVersion = { + "android-35": "15.0.0", "android-34": "14.0.0", "android-33": "13.0.0", "android-32": "12.0.0", diff --git a/packages/doctor/src/android-tools-info.ts b/packages/doctor/src/android-tools-info.ts index d73b21338e..3950b56587 100644 --- a/packages/doctor/src/android-tools-info.ts +++ b/packages/doctor/src/android-tools-info.ts @@ -31,6 +31,7 @@ export class AndroidToolsInfo implements NativeScriptDoctor.IAndroidToolsInfo { "android-32", "android-33", "android-34", + "android-35", ]; const isRuntimeVersionLessThan = (targetVersion: string) => { diff --git a/packages/doctor/test/android-tools-info.ts b/packages/doctor/test/android-tools-info.ts index 81d286df57..fcb8dd8ea5 100644 --- a/packages/doctor/test/android-tools-info.ts +++ b/packages/doctor/test/android-tools-info.ts @@ -69,6 +69,7 @@ describe("androidToolsInfo", () => { "android-32", "android-33", "android-34", + "android-35", ]; } }, @@ -138,7 +139,7 @@ describe("androidToolsInfo", () => { it("runtime 8.2.0 should support android-17 - android-34", () => { const min = 17; - const max = 34; + const max = 35; assertSupportedRange("8.2.0", min, max); assertSupportedRange("8.3.0", min, max); }); From fef33168fab962e6f16d6b3977b59b2923cbc23d Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Mon, 19 Aug 2024 15:51:52 +0200 Subject: [PATCH 4/6] release(doctor): v2.0.15 --- packages/doctor/package.json | 2 +- packages/doctor/test/android-tools-info.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/doctor/package.json b/packages/doctor/package.json index 6219dc871e..7da016fabe 100644 --- a/packages/doctor/package.json +++ b/packages/doctor/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/doctor", - "version": "2.0.14", + "version": "2.0.15", "description": "Library that helps identifying if the environment can be used for development of {N} apps.", "main": "src/index.js", "types": "./typings/nativescript-doctor.d.ts", diff --git a/packages/doctor/test/android-tools-info.ts b/packages/doctor/test/android-tools-info.ts index fcb8dd8ea5..afa3c5fcf7 100644 --- a/packages/doctor/test/android-tools-info.ts +++ b/packages/doctor/test/android-tools-info.ts @@ -105,7 +105,7 @@ describe("androidToolsInfo", () => { const androidToolsInfo = getAndroidToolsInfo("8.2.0"); const toolsInfo = androidToolsInfo.getToolsInfo({ projectDir: "test" }); - assert.equal(toolsInfo.compileSdkVersion, 34); + assert.equal(toolsInfo.compileSdkVersion, 35); }); }); From 9f2799647498bf9730739f20b25e41c2b3a89858 Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Mon, 19 Aug 2024 15:52:25 +0200 Subject: [PATCH 5/6] chore: bump doctor --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d10c61f246..47066a3772 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "mobile" ], "dependencies": { - "@nativescript/doctor": "2.0.14", + "@nativescript/doctor": "2.0.15", "@nativescript/schematics-executor": "0.0.2", "@npmcli/arborist": "^7.2.0", "@npmcli/move-file": "^2.0.0", From 16064affee98c837e8cbe0865254dcb5b81f0bbe Mon Sep 17 00:00:00 2001 From: Igor Randjelovic Date: Mon, 19 Aug 2024 15:53:58 +0200 Subject: [PATCH 6/6] release: 8.8.1 --- CHANGELOG.md | 14 ++++++++++++++ package.json | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48e687b5a4..7c9ff90782 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## [8.8.1](https://github.com/NativeScript/nativescript-cli/compare/v8.8.0...v8.8.1) (2024-08-19) + + +### Bug Fixes + +* quote windows command line arguments ([#5808](https://github.com/NativeScript/nativescript-cli/issues/5808)) ([bf9a6cd](https://github.com/NativeScript/nativescript-cli/commit/bf9a6cdbed227c876b8a94a13e3517e684dad924)) + + +### Features + +* add android 35 support ([#5811](https://github.com/NativeScript/nativescript-cli/issues/5811)) ([abc7ab4](https://github.com/NativeScript/nativescript-cli/commit/abc7ab474024bda566374271e0497f4c73d78b4d)) + + + # [8.8.0](https://github.com/NativeScript/nativescript-cli/compare/v8.7.2...v8.8.0) (2024-07-11) diff --git a/package.json b/package.json index 47066a3772..75f6cbcaa4 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "nativescript", "main": "./lib/nativescript-cli-lib.js", - "version": "8.8.0", + "version": "8.8.1", "author": "NativeScript ", "description": "Command-line interface for building NativeScript projects", "bin": { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy