nativescript 9.0.3 → 9.0.4-dev.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.
- package/lib/android-tools-info.js +0 -12
- package/lib/base-package-manager.js +0 -7
- package/lib/bootstrap.js +1 -5
- package/lib/bun-package-manager.js +1 -14
- package/lib/color.js +0 -4
- package/lib/commands/add-platform.js +0 -1
- package/lib/commands/apple-login.js +0 -1
- package/lib/commands/appstore-list.js +0 -1
- package/lib/commands/appstore-upload.js +0 -3
- package/lib/commands/build.js +2 -3
- package/lib/commands/clean.js +1 -22
- package/lib/commands/command-base.js +0 -1
- package/lib/commands/config.js +0 -5
- package/lib/commands/create-project.js +0 -6
- package/lib/commands/debug.js +1 -6
- package/lib/commands/deploy.js +2 -3
- package/lib/commands/embedding/embed.js +0 -7
- package/lib/commands/extensibility/install-extension.js +0 -1
- package/lib/commands/extensibility/list-extensions.js +0 -1
- package/lib/commands/extensibility/uninstall-extension.js +0 -1
- package/lib/commands/fonts.js +0 -1
- package/lib/commands/generate-assets.js +0 -1
- package/lib/commands/generate-help.js +0 -1
- package/lib/commands/generate.js +1 -48
- package/lib/commands/hooks/common.js +1 -2
- package/lib/commands/hooks/hooks-lock.js +0 -1
- package/lib/commands/hooks/hooks.js +0 -1
- package/lib/commands/info.js +0 -1
- package/lib/commands/install.js +0 -1
- package/lib/commands/list-platforms.js +0 -1
- package/lib/commands/migrate.js +0 -1
- package/lib/commands/native-add.js +0 -5
- package/lib/commands/platform-clean.js +0 -1
- package/lib/commands/plugin/add-plugin.js +0 -1
- package/lib/commands/plugin/build-plugin.js +0 -1
- package/lib/commands/plugin/create-plugin.js +0 -5
- package/lib/commands/plugin/list-plugins.js +0 -1
- package/lib/commands/plugin/remove-plugin.js +0 -2
- package/lib/commands/plugin/update-plugin.js +0 -1
- package/lib/commands/post-install.js +0 -6
- package/lib/commands/prepare.js +3 -4
- package/lib/commands/preview.js +0 -2
- package/lib/commands/remove-platform.js +0 -1
- package/lib/commands/resources/resources-update.js +0 -2
- package/lib/commands/run.js +0 -1
- package/lib/commands/setup.js +0 -1
- package/lib/commands/start.js +0 -1
- package/lib/commands/test-init.js +0 -4
- package/lib/commands/test.js +2 -9
- package/lib/commands/typings.js +1 -2
- package/lib/commands/update-platform.js +0 -5
- package/lib/commands/update.js +0 -2
- package/lib/commands/widget.js +1 -20
- package/lib/common/bootstrap.js +0 -1
- package/lib/common/child-process.js +0 -3
- package/lib/common/codeGeneration/code-entity.js +0 -1
- package/lib/common/codeGeneration/code-printer.js +0 -1
- package/lib/common/command-params.js +0 -1
- package/lib/common/commands/analytics.js +0 -3
- package/lib/common/commands/autocompletion.js +0 -3
- package/lib/common/commands/device/device-log-stream.js +0 -1
- package/lib/common/commands/device/get-file.js +0 -2
- package/lib/common/commands/device/list-applications.js +0 -1
- package/lib/common/commands/device/list-devices.js +0 -3
- package/lib/common/commands/device/list-files.js +0 -2
- package/lib/common/commands/device/put-file.js +0 -2
- package/lib/common/commands/device/run-application.js +0 -1
- package/lib/common/commands/device/stop-application.js +0 -1
- package/lib/common/commands/device/uninstall-application.js +0 -1
- package/lib/common/commands/doctor.js +2 -3
- package/lib/common/commands/generate-messages.js +0 -1
- package/lib/common/commands/help.js +0 -1
- package/lib/common/commands/package-manager-get.js +0 -1
- package/lib/common/commands/package-manager-set.js +0 -1
- package/lib/common/commands/post-install.js +0 -1
- package/lib/common/commands/preuninstall.js +2 -11
- package/lib/common/commands/proxy/proxy-base.js +0 -4
- package/lib/common/commands/proxy/proxy-clear.js +0 -1
- package/lib/common/commands/proxy/proxy-get.js +0 -1
- package/lib/common/commands/proxy/proxy-set.js +0 -1
- package/lib/common/common-lib.js +0 -1
- package/lib/common/constants.js +0 -11
- package/lib/common/decorators.js +0 -48
- package/lib/common/dispatchers.js +1 -10
- package/lib/common/errors.js +3 -13
- package/lib/common/file-system.js +2 -13
- package/lib/common/header.js +0 -3
- package/lib/common/helpers.js +3 -89
- package/lib/common/host-info.js +0 -4
- package/lib/common/http-client.js +0 -20
- package/lib/common/logger/appenders/cli-appender.js +0 -4
- package/lib/common/logger/appenders/emit-appender.js +0 -4
- package/lib/common/logger/layouts/cli-layout.js +0 -1
- package/lib/common/logger/logger.js +0 -5
- package/lib/common/messages/messages.js +0 -6
- package/lib/common/mobile/android/android-application-manager.js +1 -20
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +0 -1
- package/lib/common/mobile/android/android-debug-bridge.js +0 -6
- package/lib/common/mobile/android/android-device-file-system.js +0 -4
- package/lib/common/mobile/android/android-device-hash-service.js +0 -3
- package/lib/common/mobile/android/android-device.js +0 -8
- package/lib/common/mobile/android/android-emulator-services.js +1 -2
- package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
- package/lib/common/mobile/android/android-log-filter.js +0 -4
- package/lib/common/mobile/android/android-virtual-device-service.js +0 -26
- package/lib/common/mobile/android/device-android-debug-bridge.js +0 -1
- package/lib/common/mobile/android/genymotion/genymotion-service.js +1 -6
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +0 -11
- package/lib/common/mobile/android/logcat-helper.js +0 -13
- package/lib/common/mobile/application-manager-base.js +0 -6
- package/lib/common/mobile/device-emitter.js +0 -4
- package/lib/common/mobile/device-log-emitter.js +0 -1
- package/lib/common/mobile/device-log-provider-base.js +0 -1
- package/lib/common/mobile/device-log-provider.js +0 -23
- package/lib/common/mobile/device-platforms-constants.js +0 -1
- package/lib/common/mobile/emulator-helper.js +0 -3
- package/lib/common/mobile/ios/device/ios-application-manager.js +0 -3
- package/lib/common/mobile/ios/device/ios-device-file-system.js +0 -1
- package/lib/common/mobile/ios/device/ios-device-operations.js +0 -4
- package/lib/common/mobile/ios/device/ios-device.js +0 -4
- package/lib/common/mobile/ios/ios-device-base.js +0 -1
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
- package/lib/common/mobile/ios/ios-log-filter.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +0 -4
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +0 -6
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +0 -5
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +0 -1
- package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
- package/lib/common/mobile/log-filter.js +0 -2
- package/lib/common/mobile/logging-levels.js +0 -1
- package/lib/common/mobile/mobile-core/android-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-core/android-process-service.js +0 -32
- package/lib/common/mobile/mobile-core/device-discovery.js +0 -1
- package/lib/common/mobile/mobile-core/devices-service.js +0 -69
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-helper.js +0 -1
- package/lib/common/mobile/wp8/wp8-emulator-services.js +0 -1
- package/lib/common/opener.js +0 -1
- package/lib/common/os-info.js +0 -1
- package/lib/common/plist-parser.js +0 -1
- package/lib/common/project-helper.js +0 -1
- package/lib/common/prompter.js +1 -9
- package/lib/common/queue.js +0 -1
- package/lib/common/resource-loader.js +0 -1
- package/lib/common/services/auto-completion-service.js +1 -13
- package/lib/common/services/cancellation.js +1 -2
- package/lib/common/services/commands-service.js +6 -17
- package/lib/common/services/help-service.js +3 -11
- package/lib/common/services/hooks-service.js +0 -13
- package/lib/common/services/ios-notification-service.js +0 -1
- package/lib/common/services/json-file-settings-service.js +0 -6
- package/lib/common/services/lock-service.js +0 -6
- package/lib/common/services/message-contract-generator.js +0 -1
- package/lib/common/services/messages-service.js +0 -1
- package/lib/common/services/micro-templating-service.js +0 -6
- package/lib/common/services/net-service.js +0 -3
- package/lib/common/services/project-files-manager.js +0 -5
- package/lib/common/services/project-files-provider-base.js +0 -1
- package/lib/common/services/proxy-service.js +0 -1
- package/lib/common/services/qr.js +0 -1
- package/lib/common/services/settings-service.js +0 -1
- package/lib/common/services/xcode-select-service.js +0 -1
- package/lib/common/utils.js +0 -1
- package/lib/common/validators/project-name-validator.js +0 -1
- package/lib/common/validators/validation-result.js +0 -1
- package/lib/common/verify-node-version.js +1 -8
- package/lib/common/yok.js +11 -32
- package/lib/config.js +1 -22
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +0 -53
- package/lib/controllers/build-controller.js +3 -4
- package/lib/controllers/debug-controller.js +3 -8
- package/lib/controllers/deploy-controller.js +0 -1
- package/lib/controllers/migrate-controller.js +4 -90
- package/lib/controllers/platform-controller.js +1 -9
- package/lib/controllers/prepare-controller.js +4 -17
- package/lib/controllers/run-controller.js +1 -17
- package/lib/controllers/update-controller-base.js +0 -1
- package/lib/controllers/update-controller.js +0 -11
- package/lib/data/build-data.js +0 -1
- package/lib/data/controller-data-base.js +0 -1
- package/lib/data/debug-data.js +0 -1
- package/lib/data/platform-data.js +0 -1
- package/lib/data/prepare-data.js +0 -1
- package/lib/data/run-data.js +0 -1
- package/lib/detached-processes/cleanup-js-subprocess.js +2 -8
- package/lib/detached-processes/cleanup-process.js +14 -18
- package/lib/detached-processes/file-log-service.js +1 -2
- package/lib/device-path-provider.js +0 -1
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +0 -7
- package/lib/device-sockets/ios/notification.js +0 -3
- package/lib/device-sockets/ios/socket-request-executor.js +0 -3
- package/lib/helpers/android-bundle-validator-helper.js +1 -2
- package/lib/helpers/deploy-command-helper.js +0 -1
- package/lib/helpers/key-command-helper.js +2 -4
- package/lib/helpers/livesync-command-helper.js +1 -4
- package/lib/helpers/network-connectivity-validator.js +0 -1
- package/lib/helpers/options-track-helper.js +2 -3
- package/lib/helpers/package-path-helper.js +0 -1
- package/lib/helpers/platform-command-helper.js +2 -7
- package/lib/helpers/version-validator-helper.js +0 -1
- package/lib/key-commands/bootstrap.js +2 -3
- package/lib/key-commands/index.js +4 -5
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +1 -11
- package/lib/node/pbxproj-dom-xcode.js +0 -1
- package/lib/node/xcode.js +0 -1
- package/lib/node-package-manager.js +1 -11
- package/lib/options.js +119 -144
- package/lib/package-installation-manager.js +1 -8
- package/lib/package-manager.js +0 -2
- package/lib/platform-command-param.js +0 -1
- package/lib/pnpm-package-manager.js +1 -4
- package/lib/project-data.js +0 -12
- package/lib/providers/project-files-provider.js +0 -1
- package/lib/resolvers/livesync-service-resolver.js +0 -1
- package/lib/services/analytics/analytics-broker-process.js +6 -10
- package/lib/services/analytics/analytics-broker.js +1 -2
- package/lib/services/analytics/analytics-service.js +25 -29
- package/lib/services/analytics/google-analytics-provider.js +12 -13
- package/lib/services/analytics-settings-service.js +0 -5
- package/lib/services/android/android-bundle-tool-service.js +0 -1
- package/lib/services/android/gradle-build-args-service.js +0 -3
- package/lib/services/android/gradle-build-service.js +0 -1
- package/lib/services/android/gradle-command-service.js +0 -1
- package/lib/services/android-device-debug-service.js +0 -6
- package/lib/services/android-plugin-build-service.js +2 -31
- package/lib/services/android-project-service.js +4 -71
- package/lib/services/android-resources-migration-service.js +0 -7
- package/lib/services/apple-portal/apple-portal-application-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-session-service.js +4 -6
- package/lib/services/apple-portal/srp/srp-wrapper.js +1 -4
- package/lib/services/assets-generation/assets-generation-service.js +5 -10
- package/lib/services/build-artifacts-service.js +1 -2
- package/lib/services/build-data-service.js +0 -1
- package/lib/services/build-info-file-service.js +0 -1
- package/lib/services/bundler/bundler-compiler-service.js +1 -68
- package/lib/services/bundler/bundler.js +0 -1
- package/lib/services/cleanup-service.js +9 -13
- package/lib/services/cocoapods-platform-manager.js +0 -9
- package/lib/services/cocoapods-service.js +1 -21
- package/lib/services/debug-data-service.js +0 -1
- package/lib/services/debug-service-base.js +0 -7
- package/lib/services/device/device-install-app-service.js +1 -2
- package/lib/services/doctor-service.js +6 -21
- package/lib/services/extensibility-service.js +0 -8
- package/lib/services/files-hash-service.js +0 -1
- package/lib/services/hmr-status-service.js +0 -2
- package/lib/services/info-service.js +0 -1
- package/lib/services/initialize-service.js +1 -5
- package/lib/services/ios/export-options-plist-service.js +0 -4
- package/lib/services/ios/ios-signing-service.js +10 -7
- package/lib/services/ios/spm-service.js +0 -18
- package/lib/services/ios/xcodebuild-args-service.js +0 -11
- package/lib/services/ios/xcodebuild-command-service.js +0 -1
- package/lib/services/ios/xcodebuild-service.js +1 -2
- package/lib/services/ios-debugger-port-service.js +0 -1
- package/lib/services/ios-device-debug-service.js +0 -1
- package/lib/services/ios-entitlements-service.js +3 -2
- package/lib/services/ios-extensions-service.js +0 -1
- package/lib/services/ios-log-filter.js +0 -20
- package/lib/services/ios-native-target-service.js +4 -6
- package/lib/services/ios-project-service.js +11 -105
- package/lib/services/ios-provision-service.js +0 -3
- package/lib/services/ios-watch-app-service.js +0 -1
- package/lib/services/ip-service.js +0 -2
- package/lib/services/itmstransporter-service.js +0 -1
- package/lib/services/karma-execution.js +0 -2
- package/lib/services/livesync/android-device-livesync-service-base.js +0 -1
- package/lib/services/livesync/android-device-livesync-service.js +0 -2
- package/lib/services/livesync/android-device-livesync-sockets-service.js +0 -3
- package/lib/services/livesync/android-livesync-service.js +0 -1
- package/lib/services/livesync/android-livesync-tool.js +0 -4
- package/lib/services/livesync/device-livesync-service-base.js +0 -2
- package/lib/services/livesync/ios-device-livesync-service.js +0 -7
- package/lib/services/livesync/ios-livesync-service.js +0 -2
- package/lib/services/livesync/livesync-socket.js +0 -1
- package/lib/services/livesync/platform-livesync-service-base.js +0 -5
- package/lib/services/livesync-process-data-service.js +0 -1
- package/lib/services/log-parser-service.js +0 -1
- package/lib/services/log-source-map-service.js +0 -15
- package/lib/services/marking-mode-service.js +5 -8
- package/lib/services/metadata-filtering-service.js +0 -1
- package/lib/services/npm-config-service.js +0 -4
- package/lib/services/pacote-service.js +0 -7
- package/lib/services/performance-service.js +1 -3
- package/lib/services/platform/add-platform-service.js +2 -49
- package/lib/services/platform/platform-validation-service.js +0 -1
- package/lib/services/platform/prepare-native-platform-service.js +2 -5
- package/lib/services/platform-environment-requirements.js +3 -8
- package/lib/services/platform-project-service-base.js +0 -1
- package/lib/services/platforms-data-service.js +0 -1
- package/lib/services/plugins-service.js +2 -20
- package/lib/services/prepare-data-service.js +0 -1
- package/lib/services/project-backup-service.js +0 -4
- package/lib/services/project-changes-service.js +3 -14
- package/lib/services/project-cleanup-service.js +0 -2
- package/lib/services/project-config-service.js +2 -21
- package/lib/services/project-data-service.js +7 -36
- package/lib/services/project-name-service.js +0 -1
- package/lib/services/project-service.js +0 -10
- package/lib/services/project-templates-service.js +2 -3
- package/lib/services/qr-code-terminal-service.js +0 -1
- package/lib/services/require-service.js +0 -1
- package/lib/services/start-service.js +0 -1
- package/lib/services/temp-service.js +0 -3
- package/lib/services/terminal-spinner-service.js +0 -2
- package/lib/services/test-execution-service.js +2 -9
- package/lib/services/test-initialization-service.js +0 -4
- package/lib/services/timeline-profiler-service.js +0 -1
- package/lib/services/user-settings-service.js +0 -1
- package/lib/services/versions-service.js +4 -6
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/xcconfig-service.js +0 -2
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +1 -2
- package/lib/tools/config-manipulation/config-transformer.js +0 -12
- package/lib/tools/node-modules/node-modules-builder.js +0 -1
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
- package/lib/yarn-package-manager.js +0 -1
- package/lib/yarn2-package-manager.js +0 -3
- package/package.json +1 -1
|
@@ -71,19 +71,6 @@ class AndroidProcessService {
|
|
|
71
71
|
async getDebuggableApps(deviceIdentifier) {
|
|
72
72
|
const adb = this.getAdb(deviceIdentifier);
|
|
73
73
|
const androidWebViewPortInformation = (await this.getAbstractPortsInformation(adb)).split(os_1.EOL);
|
|
74
|
-
// TODO: Add tests and make sure only unique names are returned. Input before groupBy is:
|
|
75
|
-
// [ { deviceIdentifier: 'SH26BW100473',
|
|
76
|
-
// appIdentifier: 'com.telerik.EmptyNS',
|
|
77
|
-
// framework: 'NativeScript' },
|
|
78
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
79
|
-
// appIdentifier: 'com.telerik.EmptyNS',
|
|
80
|
-
// framework: 'Cordova' },
|
|
81
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
82
|
-
// appIdentifier: 'chrome',
|
|
83
|
-
// framework: 'Cordova' },
|
|
84
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
85
|
-
// appIdentifier: 'chrome',
|
|
86
|
-
// framework: 'Cordova' } ]
|
|
87
74
|
const portInformation = await Promise.all(_.map(androidWebViewPortInformation, async (line) => (await this.getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, line)) ||
|
|
88
75
|
(await this.getNativeScriptApplicationInformation(adb, deviceIdentifier, line))));
|
|
89
76
|
return _(portInformation)
|
|
@@ -122,7 +109,6 @@ class AndroidProcessService {
|
|
|
122
109
|
return adb;
|
|
123
110
|
}
|
|
124
111
|
async getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, information) {
|
|
125
|
-
// Need to search by processId to check for old Android webviews (@webview_devtools_remote_<processId>).
|
|
126
112
|
const processIdRegExp = /@webview_devtools_remote_(.+)/g;
|
|
127
113
|
const processIdMatches = processIdRegExp.exec(information);
|
|
128
114
|
let cordovaAppIdentifier;
|
|
@@ -131,7 +117,6 @@ class AndroidProcessService {
|
|
|
131
117
|
cordovaAppIdentifier = await this.getApplicationIdentifierFromPid(adb, processId);
|
|
132
118
|
}
|
|
133
119
|
else {
|
|
134
|
-
// Search for appIdentifier (@<appIdentifier>_devtools_remote).
|
|
135
120
|
const chromeAppIdentifierRegExp = /@(.+)_devtools_remote\s?/g;
|
|
136
121
|
const chromeAppIdentifierMatches = chromeAppIdentifierRegExp.exec(information);
|
|
137
122
|
if (chromeAppIdentifierMatches && chromeAppIdentifierMatches.length > 0) {
|
|
@@ -148,7 +133,6 @@ class AndroidProcessService {
|
|
|
148
133
|
return null;
|
|
149
134
|
}
|
|
150
135
|
async getNativeScriptApplicationInformation(adb, deviceIdentifier, information) {
|
|
151
|
-
// Search for appIdentifier (@<appIdentifier-debug>).
|
|
152
136
|
const nativeScriptAppIdentifierRegExp = /@(.+)-(debug|inspectorServer)/g;
|
|
153
137
|
const nativeScriptAppIdentifierMatches = nativeScriptAppIdentifierRegExp.exec(information);
|
|
154
138
|
if (nativeScriptAppIdentifierMatches &&
|
|
@@ -163,10 +147,6 @@ class AndroidProcessService {
|
|
|
163
147
|
return null;
|
|
164
148
|
}
|
|
165
149
|
async getAbstractPortForApplication(adb, processId, appIdentifier, abstractPortsInformation, framework) {
|
|
166
|
-
// The result will look like this (without the columns names):
|
|
167
|
-
// Num RefCount Protocol Flags Type St Inode Path
|
|
168
|
-
// 0000000000000000: 00000002 00000000 00010000 0001 01 189004 @webview_devtools_remote_25512
|
|
169
|
-
// The Path column is the abstract port.
|
|
170
150
|
framework = framework || "";
|
|
171
151
|
switch (framework.toLowerCase()) {
|
|
172
152
|
case constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova.toLowerCase():
|
|
@@ -193,9 +173,6 @@ class AndroidProcessService {
|
|
|
193
173
|
return match && match[1];
|
|
194
174
|
}
|
|
195
175
|
async getProcessIds(adb, appIdentifiers) {
|
|
196
|
-
// Process information will look like this (without the columns names):
|
|
197
|
-
// USER PID PPID VSIZE RSS WCHAN PC NAME
|
|
198
|
-
// u0_a63 25512 1334 1519560 96040 ffffffff f76a8f75 S com.telerik.appbuildertabstest
|
|
199
176
|
const result = {};
|
|
200
177
|
const processIdInformation = await adb.executeShellCommand(["ps"]);
|
|
201
178
|
_.each(appIdentifiers, (appIdentifier) => {
|
|
@@ -206,11 +183,6 @@ class AndroidProcessService {
|
|
|
206
183
|
}
|
|
207
184
|
async getAlreadyMappedPort(adb, deviceIdentifier, abstractPort, adbForwardList) {
|
|
208
185
|
const allForwardedPorts = adbForwardList || (await adb.executeCommand(["forward", "--list"])) || "";
|
|
209
|
-
// Sample output:
|
|
210
|
-
// 5e2e580b tcp:62503 localabstract:webview_devtools_remote_7985
|
|
211
|
-
// 5e2e580b tcp:62524 localabstract:webview_devtools_remote_7986
|
|
212
|
-
// 5e2e580b tcp:63160 localabstract:webview_devtools_remote_7987
|
|
213
|
-
// 5e2e580b tcp:57577 localabstract:com.telerik.nrel-debug
|
|
214
186
|
const regex = new RegExp(`${deviceIdentifier}\\s+?tcp:(\\d+?)\\s+?.*?${abstractPort}$`);
|
|
215
187
|
return this.getFirstMatchingGroupFromMultilineResult(allForwardedPorts, regex);
|
|
216
188
|
}
|
|
@@ -224,9 +196,6 @@ class AndroidProcessService {
|
|
|
224
196
|
}
|
|
225
197
|
async getApplicationIdentifierFromPid(adb, pid, psData) {
|
|
226
198
|
psData = psData || (await adb.executeShellCommand(["ps"]));
|
|
227
|
-
// Process information will look like this (without the columns names):
|
|
228
|
-
// USER PID PPID VSIZE RSS WCHAN PC NAME
|
|
229
|
-
// u0_a63 25512 1334 1519560 96040 ffffffff f76a8f75 S com.telerik.appbuildertabstest
|
|
230
199
|
return this.getFirstMatchingGroupFromMultilineResult(psData, new RegExp(`\\s+${pid}(?:\\s+\\d+){3}\\s+.*\\s+(.*?)$`));
|
|
231
200
|
}
|
|
232
201
|
getFirstMatchingGroupFromMultilineResult(input, regex) {
|
|
@@ -249,4 +218,3 @@ __decorate([
|
|
|
249
218
|
(0, decorators_1.exported)("androidProcessService")
|
|
250
219
|
], AndroidProcessService.prototype, "getAppProcessId", null);
|
|
251
220
|
yok_1.injector.register("androidProcessService", AndroidProcessService);
|
|
252
|
-
//# sourceMappingURL=android-process-service.js.map
|
|
@@ -62,7 +62,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
62
62
|
const device = await this.getDevice(options.deviceId);
|
|
63
63
|
return device;
|
|
64
64
|
}
|
|
65
|
-
// Now let's take data for each device:
|
|
66
65
|
const availableDevicesAndEmulators = this.getDeviceInstances().filter((d) => d.deviceInfo.status === constants_2.CONNECTED_STATUS &&
|
|
67
66
|
(!this.platform ||
|
|
68
67
|
d.deviceInfo.platform.toLowerCase() === this.platform.toLowerCase()));
|
|
@@ -85,8 +84,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
85
84
|
const devices = sortedInstances.filter((d) => !d.isEmulator);
|
|
86
85
|
let selectedInstance;
|
|
87
86
|
if (options.onlyEmulators || options.onlyDevices) {
|
|
88
|
-
// When --emulator or --forDevice is passed, the instances are already filtered
|
|
89
|
-
// So we are sure we have exactly the type we need and we can safely return the last one (highest OS version).
|
|
90
87
|
selectedInstance = _.last(sortedInstances);
|
|
91
88
|
}
|
|
92
89
|
else {
|
|
@@ -145,7 +142,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
145
142
|
...additionalErrors,
|
|
146
143
|
];
|
|
147
144
|
}
|
|
148
|
-
// emulator is already running
|
|
149
145
|
if (emulator.status === constants.RUNNING_EMULATOR_STATUS) {
|
|
150
146
|
return null;
|
|
151
147
|
}
|
|
@@ -177,11 +173,9 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
177
173
|
return !!(this.$mobileHelper.isiOSPlatform(device.deviceInfo.platform) &&
|
|
178
174
|
device.isEmulator);
|
|
179
175
|
}
|
|
180
|
-
/* tslint:disable:no-unused-variable */
|
|
181
176
|
setLogLevel(logLevel, deviceIdentifier) {
|
|
182
177
|
this.$deviceLogProvider.setLogLevel(logLevel, deviceIdentifier);
|
|
183
178
|
}
|
|
184
|
-
/* tslint:enable:no-unused-variable */
|
|
185
179
|
isAppInstalledOnDevices(deviceIdentifiers, appId, projectName, projectDir) {
|
|
186
180
|
this.$logger.trace(`Called isInstalledOnDevices for identifiers ${deviceIdentifiers}. AppIdentifier is ${appId}.`);
|
|
187
181
|
return _.map(deviceIdentifiers, (deviceIdentifier) => this.isApplicationInstalledOnDevice(deviceIdentifier, {
|
|
@@ -253,9 +247,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
253
247
|
delete this._availableEmulators[emulator.imageIdentifier];
|
|
254
248
|
this.emit(constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, emulator);
|
|
255
249
|
}
|
|
256
|
-
/**
|
|
257
|
-
* Starts looking for devices. Any found devices are pushed to "_devices" variable.
|
|
258
|
-
*/
|
|
259
250
|
async detectCurrentlyAttachedDevices(deviceInitOpts) {
|
|
260
251
|
const options = this.getDeviceLookingOptions(deviceInitOpts);
|
|
261
252
|
for (const deviceDiscovery of this._allDeviceDiscoveries) {
|
|
@@ -324,11 +315,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
324
315
|
clearInterval(this.emulatorDetectionInterval);
|
|
325
316
|
}
|
|
326
317
|
}
|
|
327
|
-
/**
|
|
328
|
-
* Returns device that matches an identifier.
|
|
329
|
-
* The identifier is expected to be the same as the running device declares it (emulator-5554 for android or GUID for ios).
|
|
330
|
-
* @param identifier running emulator or device identifier
|
|
331
|
-
*/
|
|
332
318
|
getDeviceByIdentifier(identifier) {
|
|
333
319
|
const searchedDevice = _.find(this.getDeviceInstances(), (device) => {
|
|
334
320
|
if (this.$mobileHelper.isApplePlatform(device.deviceInfo.platform) &&
|
|
@@ -344,9 +330,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
344
330
|
}
|
|
345
331
|
return searchedDevice;
|
|
346
332
|
}
|
|
347
|
-
/**
|
|
348
|
-
* Starts looking for running devices. All found devices are pushed to _devices variable.
|
|
349
|
-
*/
|
|
350
333
|
async startLookingForDevices(deviceInitOpts) {
|
|
351
334
|
this.$logger.trace("startLookingForDevices; platform is %s", this._platform);
|
|
352
335
|
if (this._platform) {
|
|
@@ -356,20 +339,10 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
356
339
|
await this.detectCurrentlyAvailableEmulators();
|
|
357
340
|
await this.startDeviceDetectionInterval(deviceInitOpts);
|
|
358
341
|
}
|
|
359
|
-
/**
|
|
360
|
-
* Returns device depending on the passed index.
|
|
361
|
-
* The index refers to assigned number to listed devices by ns device command.
|
|
362
|
-
* @param index assigned device number
|
|
363
|
-
*/
|
|
364
342
|
getDeviceByIndex(index) {
|
|
365
343
|
this.validateIndex(index - 1);
|
|
366
344
|
return this.getDeviceInstances()[index - 1];
|
|
367
345
|
}
|
|
368
|
-
/**
|
|
369
|
-
* Returns running device for specified --device <DeviceId>.
|
|
370
|
-
* Method expects running devices.
|
|
371
|
-
* @param deviceOption parameter passed by the user to --device flag. Can be name, identifier or imageIdentifier.
|
|
372
|
-
*/
|
|
373
346
|
async getDevice(deviceOption) {
|
|
374
347
|
let device = null;
|
|
375
348
|
if (!device) {
|
|
@@ -389,11 +362,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
389
362
|
}
|
|
390
363
|
return device;
|
|
391
364
|
}
|
|
392
|
-
/**
|
|
393
|
-
* Method runs action for a --device (value), specified by the user.
|
|
394
|
-
* @param action action to be executed if canExecute returns true
|
|
395
|
-
* @param canExecute predicate to decide whether the command can be ran
|
|
396
|
-
*/
|
|
397
365
|
async executeOnDevice(action, canExecute) {
|
|
398
366
|
if (!canExecute || canExecute(this._device)) {
|
|
399
367
|
return {
|
|
@@ -402,11 +370,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
402
370
|
};
|
|
403
371
|
}
|
|
404
372
|
}
|
|
405
|
-
/**
|
|
406
|
-
* Executes passed action for each found device.
|
|
407
|
-
* @param action action to be executed if canExecute returns true
|
|
408
|
-
* @param canExecute predicate to decide whether the command can be ran
|
|
409
|
-
*/
|
|
410
373
|
async executeOnAllConnectedDevices(action, canExecute) {
|
|
411
374
|
const devices = this.filterDevicesByPlatform();
|
|
412
375
|
const sortedDevices = _.sortBy(devices, (device) => device.deviceInfo.platform);
|
|
@@ -458,12 +421,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
458
421
|
});
|
|
459
422
|
});
|
|
460
423
|
}
|
|
461
|
-
/**
|
|
462
|
-
* Runs the passed action if the predicate "canExecute" returns true
|
|
463
|
-
* @param action action to be executed if canExecute returns true.
|
|
464
|
-
* @param canExecute predicate to decide whether the command can be ran
|
|
465
|
-
* @param options all possible options that can be passed to the command.
|
|
466
|
-
*/
|
|
467
424
|
async execute(action, canExecute, options) {
|
|
468
425
|
assert.ok(this._isInitialized, "Devices services not initialized!");
|
|
469
426
|
if (this.hasDevices) {
|
|
@@ -472,7 +429,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
472
429
|
this.$mobileHelper.isiOSPlatform(this._platform) &&
|
|
473
430
|
this.$options.emulator &&
|
|
474
431
|
!this.isOnlyiOSSimultorRunning()) {
|
|
475
|
-
// Executes the command only on iOS simulator
|
|
476
432
|
const originalCanExecute = canExecute;
|
|
477
433
|
canExecute = (dev) => this.isiOSSimulator(dev) &&
|
|
478
434
|
(!originalCanExecute || !!originalCanExecute(dev));
|
|
@@ -496,11 +452,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
496
452
|
}
|
|
497
453
|
}
|
|
498
454
|
}
|
|
499
|
-
/**
|
|
500
|
-
* Starts emulator or simulator if necessary depending on --device or --emulator flags.
|
|
501
|
-
* If no options are passed runs default emulator/simulator if no devices are connected.
|
|
502
|
-
* @param deviceInitOpts mainly contains information about --emulator and --deviceId flags.
|
|
503
|
-
*/
|
|
504
455
|
async startEmulatorIfNecessary(deviceInitOpts) {
|
|
505
456
|
if (deviceInitOpts && deviceInitOpts.deviceId && deviceInitOpts.emulator) {
|
|
506
457
|
this.$errors.fail(`--device and --emulator are incompatible options.
|
|
@@ -509,7 +460,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
509
460
|
if (deviceInitOpts &&
|
|
510
461
|
deviceInitOpts.platform &&
|
|
511
462
|
!deviceInitOpts.skipEmulatorStart) {
|
|
512
|
-
// are there any running devices
|
|
513
463
|
this._platform = deviceInitOpts.platform;
|
|
514
464
|
try {
|
|
515
465
|
await this.startLookingForDevices(deviceInitOpts);
|
|
@@ -535,11 +485,9 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
535
485
|
}
|
|
536
486
|
async _startEmulatorIfNecessary(data) {
|
|
537
487
|
const deviceInstances = this.getDeviceInstances();
|
|
538
|
-
//if no --device is passed and no devices are found, the default emulator is started
|
|
539
488
|
if (!data.deviceId && _.isEmpty(deviceInstances)) {
|
|
540
489
|
return this.startEmulatorCore(data);
|
|
541
490
|
}
|
|
542
|
-
//check if --device(value) is running, if it's not or it's not the same as is specified, start with name from --device(value)
|
|
543
491
|
if (data.deviceId) {
|
|
544
492
|
if (!helpers.isNumberWithoutExponent(data.deviceId)) {
|
|
545
493
|
const activeDeviceInstance = _.find(deviceInstances, (device) => device.deviceInfo.identifier === data.deviceId);
|
|
@@ -548,7 +496,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
548
496
|
}
|
|
549
497
|
}
|
|
550
498
|
}
|
|
551
|
-
// make sure if the target platform is visionOS we don't try to run it on an already running iOS simulator...
|
|
552
499
|
if (data.platform === this.$devicePlatformsConstants.visionOS &&
|
|
553
500
|
deviceInstances.length) {
|
|
554
501
|
const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform ===
|
|
@@ -557,7 +504,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
557
504
|
return this.startEmulatorCore(data);
|
|
558
505
|
}
|
|
559
506
|
}
|
|
560
|
-
// if only emulator flag is passed and no other emulators are running, start default emulator
|
|
561
507
|
if (data.emulator && deviceInstances.length) {
|
|
562
508
|
const runningDeviceInstance = _.some(deviceInstances, (value) => value.isEmulator);
|
|
563
509
|
if (!runningDeviceInstance) {
|
|
@@ -565,12 +511,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
565
511
|
}
|
|
566
512
|
}
|
|
567
513
|
}
|
|
568
|
-
/**
|
|
569
|
-
* Takes care of gathering information about all running devices.
|
|
570
|
-
* Sets "_isInitialized" to true after infomation is present.
|
|
571
|
-
* Method expects running devices.
|
|
572
|
-
* @param data mainly contains information about --emulator and --deviceId flags.
|
|
573
|
-
*/
|
|
574
514
|
async initialize(data) {
|
|
575
515
|
if (!this._deviceInitializePromise) {
|
|
576
516
|
this._deviceInitializePromise = this.initializeCore(data);
|
|
@@ -579,7 +519,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
579
519
|
await this._deviceInitializePromise;
|
|
580
520
|
}
|
|
581
521
|
catch (err) {
|
|
582
|
-
// In case the initalization fails, we want to allow calling `initlialize` again with other arguments for example, so remove the cached promise value.
|
|
583
522
|
this.$logger.trace(`Error while initializing devicesService: ${err}`);
|
|
584
523
|
this._deviceInitializePromise = null;
|
|
585
524
|
throw err;
|
|
@@ -603,7 +542,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
603
542
|
deviceInitOpts = deviceInitOpts || {};
|
|
604
543
|
this._data = deviceInitOpts;
|
|
605
544
|
if (!deviceInitOpts.skipEmulatorStart) {
|
|
606
|
-
// TODO: Remove from here as it calls startLookingForDevices, so we double the calls to specific device detection services
|
|
607
545
|
await this.startEmulatorIfNecessary(deviceInitOpts);
|
|
608
546
|
}
|
|
609
547
|
const platform = deviceInitOpts.platform;
|
|
@@ -634,7 +572,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
634
572
|
await this.startLookingForDevices(deviceLookingOptions);
|
|
635
573
|
}
|
|
636
574
|
else {
|
|
637
|
-
// platform and deviceId are not specified
|
|
638
575
|
if (deviceInitOpts.skipInferPlatform) {
|
|
639
576
|
if (deviceInitOpts.skipDeviceDetectionInterval) {
|
|
640
577
|
await this.detectCurrentlyAttachedDevices(deviceLookingOptions);
|
|
@@ -742,11 +679,6 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
742
679
|
}
|
|
743
680
|
return null;
|
|
744
681
|
}
|
|
745
|
-
/**
|
|
746
|
-
* Starts emulator for platform and makes sure started devices/emulators/simulators are in _devices array before finishing.
|
|
747
|
-
* @param platform (optional) platform to start emulator/simulator for
|
|
748
|
-
* @param emulatorIdOrName (optional) emulator/simulator image identifier or name
|
|
749
|
-
*/
|
|
750
682
|
async startEmulatorCore(deviceInitOpts = {}) {
|
|
751
683
|
const { deviceId } = deviceInitOpts;
|
|
752
684
|
const platform = deviceInitOpts.platform || this._platform;
|
|
@@ -870,4 +802,3 @@ __decorate([
|
|
|
870
802
|
(0, decorators_1.exported)("devicesService")
|
|
871
803
|
], DevicesService.prototype, "getDebuggableViews", null);
|
|
872
804
|
yok_1.injector.register("devicesService", DevicesService);
|
|
873
|
-
//# sourceMappingURL=devices-service.js.map
|
|
@@ -22,7 +22,6 @@ class IOSDeviceDiscovery extends device_discovery_1.DeviceDiscovery {
|
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
if (this.$mobileHelper.isvisionOSPlatform(options.platform)) {
|
|
25
|
-
// look for ios devices - same logic.
|
|
26
25
|
options.platform = this.$devicePlatformsConstants.iOS;
|
|
27
26
|
}
|
|
28
27
|
await this.$iosDeviceOperations.startLookingForDevices((deviceInfo) => {
|
|
@@ -51,4 +50,3 @@ class IOSDeviceDiscovery extends device_discovery_1.DeviceDiscovery {
|
|
|
51
50
|
}
|
|
52
51
|
exports.IOSDeviceDiscovery = IOSDeviceDiscovery;
|
|
53
52
|
yok_1.injector.register("iOSDeviceDiscovery", IOSDeviceDiscovery);
|
|
54
|
-
//# sourceMappingURL=ios-device-discovery.js.map
|
|
@@ -28,14 +28,12 @@ class IOSSimulatorDiscovery extends device_discovery_1.DeviceDiscovery {
|
|
|
28
28
|
async checkForDevices() {
|
|
29
29
|
if (this.$hostInfo.isDarwin) {
|
|
30
30
|
const currentSimulators = await this.$iOSSimResolver.iOSSim.getRunningSimulators();
|
|
31
|
-
// Remove old simulators
|
|
32
31
|
_(this.cachedSimulators)
|
|
33
32
|
.reject((s) => _.some(currentSimulators, (simulator) => simulator &&
|
|
34
33
|
s &&
|
|
35
34
|
simulator.id === s.id &&
|
|
36
35
|
simulator.state === s.state))
|
|
37
36
|
.each((s) => this.deleteAndRemoveDevice(s));
|
|
38
|
-
// Add new simulators
|
|
39
37
|
_(currentSimulators)
|
|
40
38
|
.reject((s) => _.some(this.cachedSimulators, (simulator) => simulator &&
|
|
41
39
|
s &&
|
|
@@ -94,4 +92,3 @@ class IOSSimulatorDiscovery extends device_discovery_1.DeviceDiscovery {
|
|
|
94
92
|
}
|
|
95
93
|
exports.IOSSimulatorDiscovery = IOSSimulatorDiscovery;
|
|
96
94
|
yok_1.injector.register("iOSSimulatorDiscovery", IOSSimulatorDiscovery);
|
|
97
|
-
//# sourceMappingURL=ios-simulator-discovery.js.map
|
|
@@ -53,4 +53,3 @@ class Wp8EmulatorServices {
|
|
|
53
53
|
Wp8EmulatorServices.WP8_LAUNCHER = "XapDeployCmd.exe";
|
|
54
54
|
Wp8EmulatorServices.WP8_LAUNCHER_PATH = "Microsoft SDKs\\Windows Phone\\v8.0\\Tools\\XAP Deployment";
|
|
55
55
|
yok_1.injector.register("wp8EmulatorServices", Wp8EmulatorServices);
|
|
56
|
-
//# sourceMappingURL=wp8-emulator-services.js.map
|
package/lib/common/opener.js
CHANGED
package/lib/common/os-info.js
CHANGED
package/lib/common/prompter.js
CHANGED
|
@@ -26,7 +26,6 @@ class Prompter {
|
|
|
26
26
|
else {
|
|
27
27
|
const result = {};
|
|
28
28
|
_.each(questions, (s) => {
|
|
29
|
-
// Curly brackets needed because s.default() may return false and break the loop
|
|
30
29
|
result[s.name] = s.default();
|
|
31
30
|
});
|
|
32
31
|
return result;
|
|
@@ -123,9 +122,7 @@ class Prompter {
|
|
|
123
122
|
}
|
|
124
123
|
muteStdout() {
|
|
125
124
|
if (helpers.isInteractive()) {
|
|
126
|
-
process.stdin.setRawMode(true);
|
|
127
|
-
// We need to create mute-stream and to pass it as output to ctrlcReader
|
|
128
|
-
// This will prevent the prompter to show the user's text twice on the console
|
|
125
|
+
process.stdin.setRawMode(true);
|
|
129
126
|
this.muteStreamInstance = new MuteStream();
|
|
130
127
|
this.muteStreamInstance.pipe(process.stdout);
|
|
131
128
|
this.muteStreamInstance.mute();
|
|
@@ -134,7 +131,6 @@ class Prompter {
|
|
|
134
131
|
output: this.muteStreamInstance,
|
|
135
132
|
});
|
|
136
133
|
this.ctrlcReader.on("SIGINT", () => {
|
|
137
|
-
// enable terminal cursor
|
|
138
134
|
process.stdout.write("\x1B[?25h");
|
|
139
135
|
process.exit();
|
|
140
136
|
});
|
|
@@ -144,7 +140,6 @@ class Prompter {
|
|
|
144
140
|
if (helpers.isInteractive()) {
|
|
145
141
|
process.stdin.setRawMode(false);
|
|
146
142
|
if (this.muteStreamInstance) {
|
|
147
|
-
// We need to clean the event listeners from the process.stdout because the MuteStream.pipe function calls the pipe function of the Node js Stream which adds event listeners and this can cause memory leak if we display more than ~10 prompts.
|
|
148
143
|
this.cleanEventListeners(process.stdout);
|
|
149
144
|
this.muteStreamInstance.unmute();
|
|
150
145
|
this.muteStreamInstance = null;
|
|
@@ -153,8 +148,6 @@ class Prompter {
|
|
|
153
148
|
}
|
|
154
149
|
}
|
|
155
150
|
cleanEventListeners(stream) {
|
|
156
|
-
// The events names and listeners names can be found here https://github.com/nodejs/node/blob/master/lib/stream.js
|
|
157
|
-
// Which event cause memory leak can be tested with stream.listeners("event-name") and if the listeners count keeps increasing with each prompt we need to remove the listener.
|
|
158
151
|
const memoryLeakEvents = [
|
|
159
152
|
{
|
|
160
153
|
eventName: "close",
|
|
@@ -181,4 +174,3 @@ class Prompter {
|
|
|
181
174
|
}
|
|
182
175
|
exports.Prompter = Prompter;
|
|
183
176
|
yok_1.injector.register("prompter", Prompter);
|
|
184
|
-
//# sourceMappingURL=prompter.js.map
|
package/lib/common/queue.js
CHANGED
|
@@ -27,15 +27,12 @@ class AutoCompletionService {
|
|
|
27
27
|
get shellProfiles() {
|
|
28
28
|
return [
|
|
29
29
|
this.getHomePath(".bashrc"),
|
|
30
|
-
this.getHomePath(".zshrc"),
|
|
30
|
+
this.getHomePath(".zshrc"),
|
|
31
31
|
];
|
|
32
32
|
}
|
|
33
33
|
get cliRunCommandsFile() {
|
|
34
34
|
let cliRunCommandsFile = this.getHomePath(util.format(".%src", this.$staticConfig.CLIENT_NAME.toLowerCase()));
|
|
35
35
|
if (this.$hostInfo.isWindows) {
|
|
36
|
-
// on Windows bash, file is incorrectly written as C:\Users\<username>, which leads to errors when trying to execute the script:
|
|
37
|
-
// $ source ~/.bashrc
|
|
38
|
-
// sh.exe": C:Usersusername.appbuilderrc: No such file or directory
|
|
39
36
|
cliRunCommandsFile = cliRunCommandsFile.replace(/\\/g, "/");
|
|
40
37
|
}
|
|
41
38
|
return cliRunCommandsFile;
|
|
@@ -50,9 +47,7 @@ class AutoCompletionService {
|
|
|
50
47
|
return new RegExp(util.format("%s[\\s\\S]*%s", AutoCompletionService.GENERATED_TABTAB_COMPLETION_START, AutoCompletionService.GENERATED_TABTAB_COMPLETION_END));
|
|
51
48
|
}
|
|
52
49
|
removeObsoleteAutoCompletion() {
|
|
53
|
-
// In previous releases we were writing directly in .bash_profile, .bashrc, .zshrc and .profile - remove this old code
|
|
54
50
|
const shellProfilesToBeCleared = this.shellProfiles;
|
|
55
|
-
// Add .profile only here as we do not want new autocompletion in this file, but we have to remove our old code from it.
|
|
56
51
|
shellProfilesToBeCleared.push(this.getHomePath(".profile"));
|
|
57
52
|
shellProfilesToBeCleared.forEach((file) => {
|
|
58
53
|
try {
|
|
@@ -105,7 +100,6 @@ class AutoCompletionService {
|
|
|
105
100
|
this.isNewAutoCompletionEnabledInFile(filePath) ||
|
|
106
101
|
this.isObsoleteAutoCompletionEnabledInFile(filePath);
|
|
107
102
|
if (!result) {
|
|
108
|
-
// break each
|
|
109
103
|
return false;
|
|
110
104
|
}
|
|
111
105
|
});
|
|
@@ -131,7 +125,6 @@ class AutoCompletionService {
|
|
|
131
125
|
_.each(this.shellProfiles, (shellProfile) => {
|
|
132
126
|
result = this.isObsoleteAutoCompletionEnabledInFile(shellProfile);
|
|
133
127
|
if (!result) {
|
|
134
|
-
// break each
|
|
135
128
|
return false;
|
|
136
129
|
}
|
|
137
130
|
});
|
|
@@ -170,8 +163,6 @@ class AutoCompletionService {
|
|
|
170
163
|
}
|
|
171
164
|
catch (err) {
|
|
172
165
|
this.$logger.info("Unable to update %s. Command-line completion might not work.", fileName);
|
|
173
|
-
// When npm is installed with sudo, in some cases the installation cannot write to shell profiles
|
|
174
|
-
// Advise the user how to enable autocompletion after the installation is completed.
|
|
175
166
|
if ((err.code === "EPERM" || err.code === "EACCES") &&
|
|
176
167
|
!this.$hostInfo.isWindows &&
|
|
177
168
|
process.env.SUDO_USER) {
|
|
@@ -192,7 +183,6 @@ class AutoCompletionService {
|
|
|
192
183
|
}
|
|
193
184
|
}
|
|
194
185
|
catch (err) {
|
|
195
|
-
// If file does not exist, autocompletion was not working for it, so ignore this error.
|
|
196
186
|
if (err.code !== "ENOENT") {
|
|
197
187
|
this.$logger.info("Failed to update %s. Auto-completion may still work or work incorrectly. ", fileName);
|
|
198
188
|
this.$logger.info(err);
|
|
@@ -224,7 +214,6 @@ class AutoCompletionService {
|
|
|
224
214
|
this.$fs.writeFile(filePath, newText);
|
|
225
215
|
}
|
|
226
216
|
}
|
|
227
|
-
// The generated seems to be inconsistent in it's start/end markers so adding our own.
|
|
228
217
|
this.$fs.appendFile(filePath, `\n${AutoCompletionService.GENERATED_TABTAB_COMPLETION_START}\n`);
|
|
229
218
|
await this.$childProcess.exec(`"${process.argv[0]}" "${pathToExecutableFile}" completion_generate_script >> "${filePath}"`);
|
|
230
219
|
this.$fs.appendFile(filePath, this.completionAliasDefinition);
|
|
@@ -261,4 +250,3 @@ __decorate([
|
|
|
261
250
|
(0, decorators_1.cache)()
|
|
262
251
|
], AutoCompletionService.prototype, "completionShellScriptContent", null);
|
|
263
252
|
yok_1.injector.register("autoCompletionService", AutoCompletionService);
|
|
264
|
-
//# sourceMappingURL=auto-completion-service.js.map
|
|
@@ -28,7 +28,7 @@ class CancellationService {
|
|
|
28
28
|
.watch(triggerFile, { ignoreInitial: true })
|
|
29
29
|
.on("unlink", (filePath) => {
|
|
30
30
|
this.$logger.info(`Exiting process as the file ${filePath} has been deleted. Probably reinstalling CLI while there's a working instance.`);
|
|
31
|
-
process.exit(132
|
|
31
|
+
process.exit(132);
|
|
32
32
|
});
|
|
33
33
|
if (watcher) {
|
|
34
34
|
this.watches[name] = watcher;
|
|
@@ -54,4 +54,3 @@ class CancellationService {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
yok_1.injector.register("cancellation", CancellationService);
|
|
57
|
-
//# sourceMappingURL=cancellation.js.map
|
|
@@ -38,11 +38,11 @@ class CommandsService {
|
|
|
38
38
|
if (!this.$staticConfig.disableAnalytics &&
|
|
39
39
|
!command.disableAnalytics &&
|
|
40
40
|
!this.$options.disableAnalytics) {
|
|
41
|
-
const analyticsService = this.$injector.resolve("analyticsService");
|
|
41
|
+
const analyticsService = this.$injector.resolve("analyticsService");
|
|
42
42
|
await analyticsService.checkConsent();
|
|
43
43
|
const beautifiedCommandName = this.beautifyCommandName(commandName).replace(/\|/g, " ");
|
|
44
44
|
const googleAnalyticsPageData = {
|
|
45
|
-
googleAnalyticsDataType: "pageview"
|
|
45
|
+
googleAnalyticsDataType: "pageview",
|
|
46
46
|
path: beautifiedCommandName,
|
|
47
47
|
title: beautifiedCommandName,
|
|
48
48
|
};
|
|
@@ -52,11 +52,10 @@ class CommandsService {
|
|
|
52
52
|
const shouldExecuteHooks = !this.$staticConfig.disableCommandHooks &&
|
|
53
53
|
(command.enableHooks === undefined || command.enableHooks === true);
|
|
54
54
|
if (shouldExecuteHooks) {
|
|
55
|
-
// Handle correctly hierarchical commands
|
|
56
55
|
const hierarchicalCommandName = this.$injector.buildHierarchicalCommand(commandName, commandArguments);
|
|
57
56
|
if (hierarchicalCommandName) {
|
|
58
|
-
commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName, "|*"
|
|
59
|
-
commandName = helpers.stringReplaceAll(commandName, "|"
|
|
57
|
+
commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName, "|*", "-");
|
|
58
|
+
commandName = helpers.stringReplaceAll(commandName, "|", "-");
|
|
60
59
|
}
|
|
61
60
|
await this.$hooksService.executeBeforeHooks(commandName);
|
|
62
61
|
}
|
|
@@ -101,7 +100,6 @@ class CommandsService {
|
|
|
101
100
|
await this.executeCommandAction(commandName, commandArguments, this.executeCommandUnchecked);
|
|
102
101
|
}
|
|
103
102
|
else {
|
|
104
|
-
// If canExecuteCommand returns false, the command cannot be executed or there's no such command at all.
|
|
105
103
|
const command = this.$injector.resolveCommand(commandName);
|
|
106
104
|
if (command) {
|
|
107
105
|
let commandWithArgs = commandName;
|
|
@@ -117,15 +115,12 @@ class CommandsService {
|
|
|
117
115
|
const command = this.$injector.resolveCommand(commandName);
|
|
118
116
|
const beautifiedName = helpers.stringReplaceAll(commandName, "|", " ");
|
|
119
117
|
if (command) {
|
|
120
|
-
// Verify command is enabled
|
|
121
118
|
if (command.isDisabled) {
|
|
122
119
|
this.$errors.fail("This command is not applicable to your environment.");
|
|
123
120
|
}
|
|
124
|
-
// If command wants to handle canExecute logic on its own.
|
|
125
121
|
if (command.canExecute) {
|
|
126
122
|
return await command.canExecute(commandArguments);
|
|
127
123
|
}
|
|
128
|
-
// First part of hierarchical commands should be validated in specific way.
|
|
129
124
|
if (await this.$injector.isValidHierarchicalCommand(commandName, commandArguments)) {
|
|
130
125
|
return true;
|
|
131
126
|
}
|
|
@@ -137,8 +132,8 @@ class CommandsService {
|
|
|
137
132
|
}
|
|
138
133
|
const commandInfo = {
|
|
139
134
|
inputStrings: [commandName, ...commandArguments],
|
|
140
|
-
commandDelimiter: "|"
|
|
141
|
-
defaultCommandDelimiter: "|*"
|
|
135
|
+
commandDelimiter: "|",
|
|
136
|
+
defaultCommandDelimiter: "|*",
|
|
142
137
|
};
|
|
143
138
|
const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
|
|
144
139
|
if (extensionData) {
|
|
@@ -154,13 +149,11 @@ class CommandsService {
|
|
|
154
149
|
async validateMandatoryParams(commandArguments, mandatoryParams) {
|
|
155
150
|
const commandArgsHelper = new CommandArgumentsValidationHelper(true, commandArguments);
|
|
156
151
|
if (mandatoryParams.length > 0) {
|
|
157
|
-
// If command has more mandatory params than the passed ones, we shouldn't execute it
|
|
158
152
|
if (mandatoryParams.length > commandArguments.length) {
|
|
159
153
|
const customErrorMessages = _.map(mandatoryParams, (mp) => mp.errorMessage);
|
|
160
154
|
customErrorMessages.splice(0, 0, "You need to provide all the required parameters.");
|
|
161
155
|
this.$errors.failWithHelp(customErrorMessages.join(os_1.EOL));
|
|
162
156
|
}
|
|
163
|
-
// If we reach here, the commandArguments are at least as much as mandatoryParams. Now we should verify that we have each of them.
|
|
164
157
|
for (let mandatoryParamIndex = 0; mandatoryParamIndex < mandatoryParams.length; ++mandatoryParamIndex) {
|
|
165
158
|
const mandatoryParam = mandatoryParams[mandatoryParamIndex];
|
|
166
159
|
let argument = null;
|
|
@@ -187,14 +180,12 @@ class CommandsService {
|
|
|
187
180
|
if (!commandArgsHelper.isValid) {
|
|
188
181
|
return false;
|
|
189
182
|
}
|
|
190
|
-
// Command doesn't have any allowedParameters
|
|
191
183
|
if (!command.allowedParameters || command.allowedParameters.length === 0) {
|
|
192
184
|
if (commandArguments.length > 0) {
|
|
193
185
|
this.$errors.failWithHelp("This command doesn't accept parameters.");
|
|
194
186
|
}
|
|
195
187
|
}
|
|
196
188
|
else {
|
|
197
|
-
// Exclude mandatory params, we've already checked them
|
|
198
189
|
const unverifiedAllowedParams = command.allowedParameters.filter((param) => !param.mandatory);
|
|
199
190
|
for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
|
|
200
191
|
const argument = commandArgsHelper.remainingArguments[remainingArgsIndex];
|
|
@@ -208,7 +199,6 @@ class CommandsService {
|
|
|
208
199
|
}
|
|
209
200
|
if (parameter) {
|
|
210
201
|
const index = unverifiedAllowedParams.indexOf(parameter);
|
|
211
|
-
// Remove the matched parameter from unverifiedAllowedParams collection, so it will not be used to verify another argument.
|
|
212
202
|
unverifiedAllowedParams.splice(index, 1);
|
|
213
203
|
}
|
|
214
204
|
else {
|
|
@@ -253,4 +243,3 @@ class CommandsService {
|
|
|
253
243
|
}
|
|
254
244
|
exports.CommandsService = CommandsService;
|
|
255
245
|
yok_1.injector.register("commandsService", CommandsService);
|
|
256
|
-
//# sourceMappingURL=commands-service.js.map
|