@akylas/nativescript-cli 8.8.2 → 8.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/android-tools-info.js +9 -20
- package/lib/base-package-manager.js +47 -64
- package/lib/bun-package-manager.js +65 -88
- package/lib/color.js +2 -2
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +55 -68
- package/lib/commands/build.js +57 -86
- package/lib/commands/clean.js +161 -176
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +51 -70
- package/lib/commands/create-project.js +210 -229
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +33 -52
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +17 -26
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +34 -39
- package/lib/commands/plugin/create-plugin.js +110 -133
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +20 -33
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +20 -33
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +49 -62
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +13 -26
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +123 -134
- package/lib/commands/test.js +66 -89
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +22 -35
- package/lib/commands/update.js +30 -43
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +27 -40
- package/lib/common/commands/autocompletion.js +39 -56
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +22 -33
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +23 -34
- package/lib/common/commands/device/put-file.js +22 -33
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +23 -38
- package/lib/common/commands/proxy/proxy-base.js +8 -19
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +79 -96
- package/lib/common/errors.js +89 -104
- package/lib/common/file-system.js +106 -127
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +37 -50
- package/lib/common/http-client.js +93 -108
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +1 -1
- package/lib/common/mobile/android/android-application-manager.js +121 -142
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +87 -112
- package/lib/common/mobile/android/android-device-file-system.js +98 -131
- package/lib/common/mobile/android/android-device-hash-service.js +50 -75
- package/lib/common/mobile/android/android-device.js +74 -91
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
- package/lib/common/mobile/android/logcat-helper.js +108 -127
- package/lib/common/mobile/application-manager-base.js +84 -107
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
- package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +385 -436
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/plist-parser.js +2 -2
- package/lib/common/prompter.js +90 -105
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +39 -52
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +146 -169
- package/lib/common/services/help-service.js +132 -157
- package/lib/common/services/hooks-service.js +93 -108
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +52 -71
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +4 -15
- package/lib/common/services/net-service.js +90 -107
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +23 -36
- package/lib/config.js +7 -58
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +107 -128
- package/lib/controllers/deploy-controller.js +17 -22
- package/lib/controllers/migrate-controller.js +722 -795
- package/lib/controllers/platform-controller.js +72 -87
- package/lib/controllers/prepare-controller.js +266 -299
- package/lib/controllers/run-controller.js +392 -406
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +94 -119
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
- package/lib/definitions/livesync.d.ts +1 -1
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +24 -39
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +45 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +137 -152
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +99 -120
- package/lib/key-commands/index.js +161 -211
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +81 -104
- package/lib/options.js +3 -12
- package/lib/package-installation-manager.js +130 -165
- package/lib/package-manager.js +63 -86
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +59 -78
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +161 -198
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +9 -20
- package/lib/services/android/gradle-build-service.js +34 -47
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +90 -117
- package/lib/services/android-plugin-build-service.js +230 -256
- package/lib/services/android-project-service.js +163 -199
- package/lib/services/android-resources-migration-service.js +51 -64
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
- package/lib/services/assets-generation/assets-generation-service.js +98 -115
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +115 -136
- package/lib/services/device/device-install-app-service.js +73 -90
- package/lib/services/doctor-service.js +99 -118
- package/lib/services/extensibility-service.js +81 -100
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +37 -50
- package/lib/services/ios/export-options-plist-service.js +38 -51
- package/lib/services/ios/ios-signing-service.js +161 -180
- package/lib/services/ios/spm-service.js +40 -53
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +50 -69
- package/lib/services/ios-debugger-port-service.js +23 -36
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +405 -460
- package/lib/services/ios-provision-service.js +108 -129
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +38 -53
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +120 -149
- package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +89 -112
- package/lib/services/livesync/device-livesync-service-base.js +15 -28
- package/lib/services/livesync/ios-device-livesync-service.js +114 -143
- package/lib/services/livesync/ios-livesync-service.js +42 -58
- package/lib/services/livesync/platform-livesync-service-base.js +94 -119
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +30 -41
- package/lib/services/marking-mode-service.js +15 -28
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +49 -64
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +50 -71
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +49 -62
- package/lib/services/platform-environment-requirements.js +26 -37
- package/lib/services/plugins-service.js +122 -147
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +124 -141
- package/lib/services/project-cleanup-service.js +64 -77
- package/lib/services/project-config-service.js +71 -80
- package/lib/services/project-data-service.js +101 -118
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +84 -103
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +13 -24
- package/lib/services/test-execution-service.js +59 -72
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +119 -138
- package/lib/services/webpack/webpack-compiler-service.js +211 -231
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +60 -79
- package/package.json +57 -55
- package/vendor/aab-tool/bundletool.jar +0 -0
- package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
- package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
- package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/linux/adb +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
- package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.UpdateControllerBase = void 0;
|
|
13
4
|
const path = require("path");
|
|
@@ -58,27 +49,23 @@ class UpdateControllerBase {
|
|
|
58
49
|
const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion(lowercasePlatform, projectData);
|
|
59
50
|
return !!currentPlatformVersion;
|
|
60
51
|
}
|
|
61
|
-
getMaxRuntimeVersion({ platform, projectData, }) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
});
|
|
52
|
+
async getMaxRuntimeVersion({ platform, projectData, }) {
|
|
53
|
+
const lowercasePlatform = platform.toLowerCase();
|
|
54
|
+
const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion(lowercasePlatform, projectData);
|
|
55
|
+
const platformData = this.$platformsDataService.getPlatformData(lowercasePlatform, projectData);
|
|
56
|
+
if (currentPlatformVersion) {
|
|
57
|
+
return ((await this.$packageInstallationManager.getMaxSatisfyingVersionSafe(platformData.frameworkPackageName, currentPlatformVersion)) || currentPlatformVersion);
|
|
58
|
+
}
|
|
70
59
|
}
|
|
71
|
-
_getPackageManifest(templateName, version) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
});
|
|
60
|
+
async _getPackageManifest(templateName, version) {
|
|
61
|
+
const packageVersion = semver.valid(version) ||
|
|
62
|
+
(await this.$packageManager.getTagVersion(templateName, version));
|
|
63
|
+
if (packageVersion && semver.valid(packageVersion)) {
|
|
64
|
+
return await this.$pacoteService.manifest(`${templateName}@${packageVersion}`, { fullMetadata: true });
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
throw new Error(`Failed to get information for package: ${templateName}@${version}`);
|
|
68
|
+
}
|
|
82
69
|
}
|
|
83
70
|
}
|
|
84
71
|
exports.UpdateControllerBase = UpdateControllerBase;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.UpdateController = void 0;
|
|
13
4
|
const semver = require("semver");
|
|
@@ -33,127 +24,112 @@ class UpdateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
33
24
|
this.$projectCleanupService = $projectCleanupService;
|
|
34
25
|
this.$terminalSpinnerService = $terminalSpinnerService;
|
|
35
26
|
}
|
|
36
|
-
update(updateOptions) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"\n\nPlease note that you may need additional changes to complete the update.");
|
|
54
|
-
});
|
|
27
|
+
async update(updateOptions) {
|
|
28
|
+
this.spinner = this.$terminalSpinnerService.createSpinner();
|
|
29
|
+
const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
|
|
30
|
+
updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
|
|
31
|
+
this.spinner.info("Backing up project files before update");
|
|
32
|
+
await this.backupProject();
|
|
33
|
+
this.spinner.succeed("Project files have been backed up");
|
|
34
|
+
this.spinner.info("Cleaning up project files before update");
|
|
35
|
+
await this.cleanUpProject();
|
|
36
|
+
this.spinner.succeed("Project files have been cleaned up");
|
|
37
|
+
this.spinner.info("Updating project dependencies");
|
|
38
|
+
await this.updateDependencies(projectData, updateOptions.version);
|
|
39
|
+
this.spinner.succeed("Project dependencies have been updated");
|
|
40
|
+
this.spinner.succeed("Update complete.");
|
|
41
|
+
this.$logger.info("");
|
|
42
|
+
this.$logger.printMarkdown("Project has been successfully updated. The next step is to run `ns run <platform>` to ensure everything is working properly." +
|
|
43
|
+
"\n\nPlease note that you may need additional changes to complete the update.");
|
|
55
44
|
}
|
|
56
|
-
shouldUpdate(updateOptions) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const desiredVersion = yield this.getVersionFromTagOrVersion(dependency.packageName, updateOptions.version);
|
|
63
|
-
if (typeof desiredVersion === "boolean") {
|
|
64
|
-
this.$logger.trace(`Package ${dependency.packageName} does not have version/tag ${updateOptions.version}. Skipping.`);
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
const shouldUpdate = yield this.shouldUpdateDependency(projectData, dependency, desiredVersion);
|
|
68
|
-
if (shouldUpdate) {
|
|
69
|
-
this.$logger.trace(`shouldUpdate is true because '${dependency.packageName} needs to be updated.'`);
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return false;
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
updateDependencies(projectData, version) {
|
|
77
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
for (const dependency of UpdateController.updatableDependencies) {
|
|
79
|
-
yield this.updateDependency(projectData, dependency, version);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
updateDependency(projectData, dependency, version) {
|
|
84
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
if (!this.hasDependency(dependency, projectData)) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const desiredVersion = yield this.getVersionFromTagOrVersion(dependency.packageName, version);
|
|
45
|
+
async shouldUpdate(updateOptions) {
|
|
46
|
+
const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
|
|
47
|
+
updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
|
|
48
|
+
for (const dependency of UpdateController.updatableDependencies) {
|
|
49
|
+
this.$logger.trace(`Checking if ${dependency.packageName} needs to be updated...`);
|
|
50
|
+
const desiredVersion = await this.getVersionFromTagOrVersion(dependency.packageName, updateOptions.version);
|
|
89
51
|
if (typeof desiredVersion === "boolean") {
|
|
90
|
-
this.$logger.
|
|
91
|
-
|
|
92
|
-
return;
|
|
52
|
+
this.$logger.trace(`Package ${dependency.packageName} does not have version/tag ${updateOptions.version}. Skipping.`);
|
|
53
|
+
continue;
|
|
93
54
|
}
|
|
94
|
-
const shouldUpdate =
|
|
95
|
-
if (
|
|
96
|
-
|
|
55
|
+
const shouldUpdate = await this.shouldUpdateDependency(projectData, dependency, desiredVersion);
|
|
56
|
+
if (shouldUpdate) {
|
|
57
|
+
this.$logger.trace(`shouldUpdate is true because '${dependency.packageName} needs to be updated.'`);
|
|
58
|
+
return true;
|
|
97
59
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return desiredVersion;
|
|
101
|
-
}
|
|
102
|
-
if (semver.coerce(desiredVersion).version === desiredVersion) {
|
|
103
|
-
return `~${desiredVersion}`;
|
|
104
|
-
}
|
|
105
|
-
return desiredVersion;
|
|
106
|
-
})();
|
|
107
|
-
this.$pluginsService.addToPackageJson(dependency.packageName, updatedVersion, dependency.isDev, projectData.projectDir);
|
|
108
|
-
this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(updatedVersion)}`);
|
|
109
|
-
});
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
110
62
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
return installedVersion != desiredVersion;
|
|
118
|
-
});
|
|
63
|
+
async updateDependencies(projectData, version) {
|
|
64
|
+
for (const dependency of UpdateController.updatableDependencies) {
|
|
65
|
+
await this.updateDependency(projectData, dependency, version);
|
|
66
|
+
}
|
|
119
67
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
68
|
+
async updateDependency(projectData, dependency, version) {
|
|
69
|
+
if (!this.hasDependency(dependency, projectData)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const desiredVersion = await this.getVersionFromTagOrVersion(dependency.packageName, version);
|
|
73
|
+
if (typeof desiredVersion === "boolean") {
|
|
74
|
+
this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} does not have version/tag ${color_1.color.green(version)}. ` +
|
|
75
|
+
color_1.color.yellow("Skipping."));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const shouldUpdate = await this.shouldUpdateDependency(projectData, dependency, desiredVersion);
|
|
79
|
+
if (!shouldUpdate) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const updatedVersion = (() => {
|
|
83
|
+
if (desiredVersion === version) {
|
|
84
|
+
return desiredVersion;
|
|
124
85
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return false;
|
|
86
|
+
if (semver.coerce(desiredVersion).version === desiredVersion) {
|
|
87
|
+
return `~${desiredVersion}`;
|
|
128
88
|
}
|
|
129
|
-
return
|
|
130
|
-
});
|
|
89
|
+
return desiredVersion;
|
|
90
|
+
})();
|
|
91
|
+
this.$pluginsService.addToPackageJson(dependency.packageName, updatedVersion, dependency.isDev, projectData.projectDir);
|
|
92
|
+
this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(updatedVersion)}`);
|
|
131
93
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
94
|
+
async shouldUpdateDependency(projectData, dependency, desiredVersion) {
|
|
95
|
+
const installedVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(dependency.packageName, projectData.projectDir);
|
|
96
|
+
if (!installedVersion) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return installedVersion != desiredVersion;
|
|
100
|
+
}
|
|
101
|
+
async getVersionFromTagOrVersion(packageName, versionOrTag) {
|
|
102
|
+
if (semver.valid(versionOrTag) || semver.validRange(versionOrTag)) {
|
|
103
|
+
return versionOrTag;
|
|
104
|
+
}
|
|
105
|
+
const version = await this.$packageManager.getTagVersion(packageName, versionOrTag);
|
|
106
|
+
if (!version) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
return version;
|
|
110
|
+
}
|
|
111
|
+
async backupProject() {
|
|
112
|
+
const backup = this.$projectBackupService.getBackup("migration");
|
|
113
|
+
backup.addPaths([...UpdateController.pathsToBackup]);
|
|
114
|
+
try {
|
|
115
|
+
return backup.create();
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
this.spinner.fail(`Project backup failed.`);
|
|
119
|
+
backup.remove();
|
|
120
|
+
this.$errors.fail(`Project backup failed. Error is: ${error.message}`);
|
|
121
|
+
}
|
|
145
122
|
}
|
|
146
|
-
cleanUpProject() {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
]);
|
|
154
|
-
});
|
|
123
|
+
async cleanUpProject() {
|
|
124
|
+
await this.$projectCleanupService.clean([
|
|
125
|
+
constants.HOOKS_DIR_NAME,
|
|
126
|
+
this.$projectDataService.getProjectData().getBuildRelativeDirectoryPath(),
|
|
127
|
+
constants.NODE_MODULES_FOLDER_NAME,
|
|
128
|
+
constants.PACKAGE_LOCK_JSON_FILE_NAME,
|
|
129
|
+
]);
|
|
155
130
|
}
|
|
156
131
|
}
|
|
132
|
+
exports.UpdateController = UpdateController;
|
|
157
133
|
UpdateController.updatableDependencies = [
|
|
158
134
|
{
|
|
159
135
|
packageName: "@nativescript/core",
|
|
@@ -184,5 +160,4 @@ UpdateController.pathsToBackup = [
|
|
|
184
160
|
constants.PACKAGE_LOCK_JSON_FILE_NAME,
|
|
185
161
|
constants.CONFIG_NS_FILE_NAME,
|
|
186
162
|
];
|
|
187
|
-
exports.UpdateController = UpdateController;
|
|
188
163
|
yok_1.injector.register("updateController", UpdateController);
|
package/lib/data/prepare-data.js
CHANGED
|
@@ -24,7 +24,10 @@ class PrepareData extends controller_data_base_1.ControllerDataBase {
|
|
|
24
24
|
}
|
|
25
25
|
this.release = data.release;
|
|
26
26
|
this.hmr = data.hmr || data.useHotModuleReload;
|
|
27
|
-
this.env =
|
|
27
|
+
this.env = {
|
|
28
|
+
...env,
|
|
29
|
+
hmr: data.hmr || data.useHotModuleReload,
|
|
30
|
+
};
|
|
28
31
|
this.watch = data.watch;
|
|
29
32
|
if (_.isBoolean(data.watchNative)) {
|
|
30
33
|
this.watchNative = data.watchNative;
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
4
|
const fs = require("fs");
|
|
14
5
|
const uuid_1 = require("uuid");
|
|
@@ -41,14 +32,14 @@ catch (err) {
|
|
|
41
32
|
const logMessage = (msg, type) => {
|
|
42
33
|
fileLogService.logData({ message: `[${uniqueId}] ${msg}`, type });
|
|
43
34
|
};
|
|
44
|
-
(() =>
|
|
35
|
+
(async () => {
|
|
45
36
|
try {
|
|
46
37
|
logMessage(`Requiring file ${jsFilePath}`);
|
|
47
38
|
const func = require(jsFilePath);
|
|
48
39
|
if (func && typeof func === "function") {
|
|
49
40
|
try {
|
|
50
41
|
logMessage(`Passing data: ${JSON.stringify(data)} to the default function exported by currently required file ${jsFilePath}`);
|
|
51
|
-
|
|
42
|
+
await func(data);
|
|
52
43
|
logMessage(`Finished execution with data: ${JSON.stringify(data)} to the default function exported by currently required file ${jsFilePath}`);
|
|
53
44
|
}
|
|
54
45
|
catch (err) {
|
|
@@ -59,4 +50,4 @@ const logMessage = (msg, type) => {
|
|
|
59
50
|
catch (err) {
|
|
60
51
|
logMessage(`Unable to require file: ${jsFilePath}. Error is: ${err}.`, "Error");
|
|
61
52
|
}
|
|
62
|
-
})
|
|
53
|
+
})();
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
const fs = require("fs");
|
|
13
4
|
const path = require("path");
|
|
@@ -29,13 +20,13 @@ const commandsInfos = [];
|
|
|
29
20
|
const filesToDelete = [];
|
|
30
21
|
const jsCommands = [];
|
|
31
22
|
const requests = [];
|
|
32
|
-
const executeRequest = (request) =>
|
|
23
|
+
const executeRequest = async (request) => {
|
|
33
24
|
const $httpClient = yok_1.injector.resolve("httpClient");
|
|
34
25
|
try {
|
|
35
26
|
fileLogService.logData({
|
|
36
27
|
message: `Start executing request: ${request.method} ${request.url}`,
|
|
37
28
|
});
|
|
38
|
-
const response =
|
|
29
|
+
const response = await $httpClient.httpRequest({
|
|
39
30
|
url: request.url,
|
|
40
31
|
method: request.method,
|
|
41
32
|
headers: request.headers,
|
|
@@ -51,14 +42,14 @@ const executeRequest = (request) => __awaiter(void 0, void 0, void 0, function*
|
|
|
51
42
|
message: `Unable to execute request: ${request.method} ${request.url}`,
|
|
52
43
|
});
|
|
53
44
|
}
|
|
54
|
-
}
|
|
55
|
-
const executeJSCleanup = (jsCommand) =>
|
|
45
|
+
};
|
|
46
|
+
const executeJSCleanup = async (jsCommand) => {
|
|
56
47
|
const $childProcess = yok_1.injector.resolve("childProcess");
|
|
57
48
|
try {
|
|
58
49
|
fileLogService.logData({
|
|
59
50
|
message: `Start executing action for file: ${jsCommand.filePath} and data ${JSON.stringify(jsCommand.data)}`,
|
|
60
51
|
});
|
|
61
|
-
|
|
52
|
+
await $childProcess.trySpawnFromCloseEvent(process.execPath, [
|
|
62
53
|
path.join(__dirname, "cleanup-js-subprocess.js"),
|
|
63
54
|
pathToBootstrap,
|
|
64
55
|
logFile,
|
|
@@ -75,21 +66,21 @@ const executeJSCleanup = (jsCommand) => __awaiter(void 0, void 0, void 0, functi
|
|
|
75
66
|
type: "Error",
|
|
76
67
|
});
|
|
77
68
|
}
|
|
78
|
-
}
|
|
79
|
-
const executeCleanup = () =>
|
|
69
|
+
};
|
|
70
|
+
const executeCleanup = async () => {
|
|
80
71
|
const $childProcess = yok_1.injector.resolve("childProcess");
|
|
81
72
|
for (const request of requests) {
|
|
82
|
-
|
|
73
|
+
await executeRequest(request);
|
|
83
74
|
}
|
|
84
75
|
for (const jsCommand of jsCommands) {
|
|
85
|
-
|
|
76
|
+
await executeJSCleanup(jsCommand);
|
|
86
77
|
}
|
|
87
78
|
for (const commandInfo of commandsInfos) {
|
|
88
79
|
try {
|
|
89
80
|
fileLogService.logData({
|
|
90
81
|
message: `Start executing command: ${JSON.stringify(commandInfo)}`,
|
|
91
82
|
});
|
|
92
|
-
|
|
83
|
+
await $childProcess.trySpawnFromCloseEvent(commandInfo.command, commandInfo.args, commandInfo.options || {}, { throwError: true, timeout: commandInfo.timeout || 3000 });
|
|
93
84
|
fileLogService.logData({
|
|
94
85
|
message: `Successfully executed command: ${JSON.stringify(commandInfo)}`,
|
|
95
86
|
});
|
|
@@ -117,7 +108,7 @@ const executeCleanup = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
117
108
|
}
|
|
118
109
|
fileLogService.logData({ message: `cleanup-process finished` });
|
|
119
110
|
process.exit();
|
|
120
|
-
}
|
|
111
|
+
};
|
|
121
112
|
const addCleanupAction = (commandInfo) => {
|
|
122
113
|
if (_.some(commandsInfos, (currentCommandInfo) => _.isEqual(currentCommandInfo, commandInfo))) {
|
|
123
114
|
fileLogService.logData({
|
|
@@ -228,7 +219,7 @@ const removeJSFile = (jsCommand) => {
|
|
|
228
219
|
});
|
|
229
220
|
}
|
|
230
221
|
};
|
|
231
|
-
process.on("message", (cleanupProcessMessage) =>
|
|
222
|
+
process.on("message", async (cleanupProcessMessage) => {
|
|
232
223
|
fileLogService.logData({
|
|
233
224
|
message: `cleanup-process received message of type: ${JSON.stringify(cleanupProcessMessage)}`,
|
|
234
225
|
});
|
|
@@ -266,15 +257,15 @@ process.on("message", (cleanupProcessMessage) => __awaiter(void 0, void 0, void
|
|
|
266
257
|
});
|
|
267
258
|
break;
|
|
268
259
|
}
|
|
269
|
-
})
|
|
270
|
-
process.on("disconnect", () =>
|
|
260
|
+
});
|
|
261
|
+
process.on("disconnect", async () => {
|
|
271
262
|
fileLogService.logData({
|
|
272
263
|
message: "cleanup-process received process.disconnect event",
|
|
273
264
|
});
|
|
274
|
-
|
|
265
|
+
await executeCleanup();
|
|
275
266
|
yok_1.injector.dispose();
|
|
276
267
|
process.exit();
|
|
277
|
-
})
|
|
268
|
+
});
|
|
278
269
|
fileLogService.logData({
|
|
279
270
|
message: `cleanup-process will send ${"ProcessReadyToReceive"} message`,
|
|
280
271
|
});
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.DevicePathProvider = void 0;
|
|
13
4
|
const helpers_1 = require("./common/helpers");
|
|
@@ -21,33 +12,31 @@ class DevicePathProvider {
|
|
|
21
12
|
this.$iOSSimResolver = $iOSSimResolver;
|
|
22
13
|
this.$errors = $errors;
|
|
23
14
|
}
|
|
24
|
-
getDeviceProjectRootPath(device, options) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.$errors.fail("Unable to get application path on device.");
|
|
33
|
-
}
|
|
34
|
-
if (!options.getDirname) {
|
|
35
|
-
projectRoot = path.join(projectRoot, constants_1.APP_FOLDER_NAME);
|
|
36
|
-
}
|
|
15
|
+
async getDeviceProjectRootPath(device, options) {
|
|
16
|
+
let projectRoot = "";
|
|
17
|
+
if (this.$mobileHelper.isApplePlatform(device.deviceInfo.platform)) {
|
|
18
|
+
projectRoot = device.isEmulator
|
|
19
|
+
? await this.$iOSSimResolver.iOSSim.getApplicationPath(device.deviceInfo.identifier, options.appIdentifier)
|
|
20
|
+
: constants_2.LiveSyncPaths.IOS_DEVICE_PROJECT_ROOT_PATH;
|
|
21
|
+
if (!projectRoot) {
|
|
22
|
+
this.$errors.fail("Unable to get application path on device.");
|
|
37
23
|
}
|
|
38
|
-
|
|
39
|
-
projectRoot =
|
|
40
|
-
if (!options.getDirname) {
|
|
41
|
-
const hashService = (device).fileSystem.getDeviceHashService(options.appIdentifier);
|
|
42
|
-
const hashFile = yield hashService.doesShasumFileExistsOnDevice();
|
|
43
|
-
const syncFolderName = options.watch || hashFile
|
|
44
|
-
? constants_2.LiveSyncPaths.SYNC_DIR_NAME
|
|
45
|
-
: constants_2.LiveSyncPaths.FULLSYNC_DIR_NAME;
|
|
46
|
-
projectRoot = path.join(projectRoot, syncFolderName);
|
|
47
|
-
}
|
|
24
|
+
if (!options.getDirname) {
|
|
25
|
+
projectRoot = path.join(projectRoot, constants_1.APP_FOLDER_NAME);
|
|
48
26
|
}
|
|
49
|
-
|
|
50
|
-
|
|
27
|
+
}
|
|
28
|
+
else if (this.$mobileHelper.isAndroidPlatform(device.deviceInfo.platform)) {
|
|
29
|
+
projectRoot = `${constants_2.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${options.appIdentifier}`;
|
|
30
|
+
if (!options.getDirname) {
|
|
31
|
+
const hashService = (device).fileSystem.getDeviceHashService(options.appIdentifier);
|
|
32
|
+
const hashFile = await hashService.doesShasumFileExistsOnDevice();
|
|
33
|
+
const syncFolderName = options.watch || hashFile
|
|
34
|
+
? constants_2.LiveSyncPaths.SYNC_DIR_NAME
|
|
35
|
+
: constants_2.LiveSyncPaths.FULLSYNC_DIR_NAME;
|
|
36
|
+
projectRoot = path.join(projectRoot, syncFolderName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return (0, helpers_1.fromWindowsRelativePathToUnix)(projectRoot);
|
|
51
40
|
}
|
|
52
41
|
getDeviceSyncZipPath(device) {
|
|
53
42
|
return this.$mobileHelper.isApplePlatform(device.deviceInfo.platform) &&
|