nativescript 9.1.0-alpha.14 → 9.1.0-alpha.16
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/docs/build-jekyll-md.sh +1 -1
- package/docs/man_pages/config/config-set.md +2 -0
- 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 +3 -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 +2 -6
- package/lib/commands/deploy.js +3 -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 +5 -5
- 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 +3 -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 +0 -18
- 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 +3 -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 +14 -12
- package/lib/common/declarations.d.ts +37 -117
- package/lib/common/decorators.js +0 -48
- package/lib/common/definitions/key-commands.js +8 -0
- package/lib/common/dispatchers.js +1 -10
- package/lib/common/enums.js +42 -0
- package/lib/common/errors.js +4 -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 -9
- 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/analytics/google-analytics-custom-dimensions.js +13 -0
- package/lib/common/services/auto-completion-service.js +1 -13
- package/lib/common/services/cancellation.js +2 -2
- package/lib/common/services/commands-service.js +8 -17
- package/lib/common/services/help-service.js +4 -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 +2 -8
- package/lib/common/yok.js +12 -32
- package/lib/config.js +1 -22
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +54 -58
- 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 +2 -9
- package/lib/controllers/prepare-controller.js +8 -24
- package/lib/controllers/run-controller.js +1 -81
- 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/definitions/project.d.ts +1 -6
- package/lib/definitions/system-warnings.js +8 -0
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -8
- package/lib/detached-processes/cleanup-process.js +15 -18
- package/lib/detached-processes/detached-process-enums.js +24 -0
- package/lib/detached-processes/file-log-service.js +2 -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 +3 -4
- package/lib/helpers/livesync-command-helper.js +2 -4
- package/lib/helpers/network-connectivity-validator.js +0 -1
- package/lib/helpers/options-track-helper.js +4 -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 +3 -3
- package/lib/key-commands/index.js +5 -5
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +2 -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 +121 -145
- 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 +8 -10
- package/lib/services/analytics/analytics-broker.js +2 -2
- package/lib/services/analytics/analytics-service.js +29 -29
- package/lib/services/analytics/google-analytics-provider.js +16 -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 +13 -11
- 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 +26 -157
- package/lib/services/bundler/bundler.js +0 -1
- package/lib/services/cleanup-service.js +10 -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 +2 -5
- package/lib/services/ios/export-options-plist-service.js +0 -4
- package/lib/services/ios/ios-signing-service.js +0 -4
- package/lib/services/ios/spm-service.js +10 -120
- package/lib/services/ios/xcodebuild-args-service.js +0 -29
- package/lib/services/ios/xcodebuild-command-service.js +0 -3
- 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 +0 -1
- 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 +5 -6
- package/lib/services/ios-project-service.js +7 -133
- package/lib/services/ios-provision-service.js +0 -3
- package/lib/services/ios-watch-app-service.js +10 -60
- 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 -55
- 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 +10 -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 +2 -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 +3 -5
- package/lib/services/platform-environment-requirements.js +4 -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 +3 -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 +5 -6
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/xcconfig-service.js +45 -12
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +2 -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 +9 -20
- package/lib/.d.ts +0 -504
- package/lib/common/definitions/key-commands.d.ts +0 -62
- package/lib/common/services/analytics/google-analytics-custom-dimensions.d.ts +0 -16
- package/lib/definitions/system-warnings.d.ts +0 -4
- package/lib/detached-processes/detached-process-enums.d.ts +0 -70
- package/lib/services/analytics/google-analytics-cross-client-custom-dimensions.d.ts +0 -6
|
@@ -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
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GoogleAnalyticsCustomDimensions = void 0;
|
|
4
|
+
var GoogleAnalyticsCustomDimensions;
|
|
5
|
+
(function (GoogleAnalyticsCustomDimensions) {
|
|
6
|
+
GoogleAnalyticsCustomDimensions["cliVersion"] = "cd1";
|
|
7
|
+
GoogleAnalyticsCustomDimensions["projectType"] = "cd2";
|
|
8
|
+
GoogleAnalyticsCustomDimensions["clientID"] = "cd3";
|
|
9
|
+
GoogleAnalyticsCustomDimensions["sessionID"] = "cd4";
|
|
10
|
+
GoogleAnalyticsCustomDimensions["client"] = "cd5";
|
|
11
|
+
GoogleAnalyticsCustomDimensions["nodeVersion"] = "cd6";
|
|
12
|
+
GoogleAnalyticsCustomDimensions["isShared"] = "cd9";
|
|
13
|
+
})(GoogleAnalyticsCustomDimensions || (exports.GoogleAnalyticsCustomDimensions = GoogleAnalyticsCustomDimensions = {}));
|
|
@@ -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
|
|
@@ -4,6 +4,7 @@ const choki = require("chokidar");
|
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const os = require("os");
|
|
6
6
|
const _ = require("lodash");
|
|
7
|
+
const enums_1 = require("../enums");
|
|
7
8
|
const yok_1 = require("../yok");
|
|
8
9
|
class CancellationService {
|
|
9
10
|
constructor($fs, $logger, $hostInfo) {
|
|
@@ -28,7 +29,7 @@ class CancellationService {
|
|
|
28
29
|
.watch(triggerFile, { ignoreInitial: true })
|
|
29
30
|
.on("unlink", (filePath) => {
|
|
30
31
|
this.$logger.info(`Exiting process as the file ${filePath} has been deleted. Probably reinstalling CLI while there's a working instance.`);
|
|
31
|
-
process.exit(
|
|
32
|
+
process.exit(enums_1.ErrorCodes.DELETED_KILL_FILE);
|
|
32
33
|
});
|
|
33
34
|
if (watcher) {
|
|
34
35
|
this.watches[name] = watcher;
|
|
@@ -54,4 +55,3 @@ class CancellationService {
|
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
57
|
yok_1.injector.register("cancellation", CancellationService);
|
|
57
|
-
//# sourceMappingURL=cancellation.js.map
|
|
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CommandsService = void 0;
|
|
4
4
|
const jaroWinklerDistance = require("../vendor/jaro-winkler_distance");
|
|
5
5
|
const helpers = require("../helpers");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
6
7
|
const os_1 = require("os");
|
|
7
8
|
const _ = require("lodash");
|
|
9
|
+
const enums_1 = require("../enums");
|
|
8
10
|
const yok_1 = require("../yok");
|
|
9
11
|
class CommandArgumentsValidationHelper {
|
|
10
12
|
constructor(isValid, _remainingArguments) {
|
|
@@ -38,11 +40,11 @@ class CommandsService {
|
|
|
38
40
|
if (!this.$staticConfig.disableAnalytics &&
|
|
39
41
|
!command.disableAnalytics &&
|
|
40
42
|
!this.$options.disableAnalytics) {
|
|
41
|
-
const analyticsService = this.$injector.resolve("analyticsService");
|
|
43
|
+
const analyticsService = this.$injector.resolve("analyticsService");
|
|
42
44
|
await analyticsService.checkConsent();
|
|
43
45
|
const beautifiedCommandName = this.beautifyCommandName(commandName).replace(/\|/g, " ");
|
|
44
46
|
const googleAnalyticsPageData = {
|
|
45
|
-
googleAnalyticsDataType:
|
|
47
|
+
googleAnalyticsDataType: enums_1.GoogleAnalyticsDataType.Page,
|
|
46
48
|
path: beautifiedCommandName,
|
|
47
49
|
title: beautifiedCommandName,
|
|
48
50
|
};
|
|
@@ -52,11 +54,10 @@ class CommandsService {
|
|
|
52
54
|
const shouldExecuteHooks = !this.$staticConfig.disableCommandHooks &&
|
|
53
55
|
(command.enableHooks === undefined || command.enableHooks === true);
|
|
54
56
|
if (shouldExecuteHooks) {
|
|
55
|
-
// Handle correctly hierarchical commands
|
|
56
57
|
const hierarchicalCommandName = this.$injector.buildHierarchicalCommand(commandName, commandArguments);
|
|
57
58
|
if (hierarchicalCommandName) {
|
|
58
|
-
commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName,
|
|
59
|
-
commandName = helpers.stringReplaceAll(commandName,
|
|
59
|
+
commandName = helpers.stringReplaceAll(hierarchicalCommandName.commandName, constants_1.CommandsDelimiters.DefaultHierarchicalCommand, constants_1.CommandsDelimiters.HooksCommand);
|
|
60
|
+
commandName = helpers.stringReplaceAll(commandName, constants_1.CommandsDelimiters.HierarchicalCommand, constants_1.CommandsDelimiters.HooksCommand);
|
|
60
61
|
}
|
|
61
62
|
await this.$hooksService.executeBeforeHooks(commandName);
|
|
62
63
|
}
|
|
@@ -101,7 +102,6 @@ class CommandsService {
|
|
|
101
102
|
await this.executeCommandAction(commandName, commandArguments, this.executeCommandUnchecked);
|
|
102
103
|
}
|
|
103
104
|
else {
|
|
104
|
-
// If canExecuteCommand returns false, the command cannot be executed or there's no such command at all.
|
|
105
105
|
const command = this.$injector.resolveCommand(commandName);
|
|
106
106
|
if (command) {
|
|
107
107
|
let commandWithArgs = commandName;
|
|
@@ -117,15 +117,12 @@ class CommandsService {
|
|
|
117
117
|
const command = this.$injector.resolveCommand(commandName);
|
|
118
118
|
const beautifiedName = helpers.stringReplaceAll(commandName, "|", " ");
|
|
119
119
|
if (command) {
|
|
120
|
-
// Verify command is enabled
|
|
121
120
|
if (command.isDisabled) {
|
|
122
121
|
this.$errors.fail("This command is not applicable to your environment.");
|
|
123
122
|
}
|
|
124
|
-
// If command wants to handle canExecute logic on its own.
|
|
125
123
|
if (command.canExecute) {
|
|
126
124
|
return await command.canExecute(commandArguments);
|
|
127
125
|
}
|
|
128
|
-
// First part of hierarchical commands should be validated in specific way.
|
|
129
126
|
if (await this.$injector.isValidHierarchicalCommand(commandName, commandArguments)) {
|
|
130
127
|
return true;
|
|
131
128
|
}
|
|
@@ -137,8 +134,8 @@ class CommandsService {
|
|
|
137
134
|
}
|
|
138
135
|
const commandInfo = {
|
|
139
136
|
inputStrings: [commandName, ...commandArguments],
|
|
140
|
-
commandDelimiter:
|
|
141
|
-
defaultCommandDelimiter:
|
|
137
|
+
commandDelimiter: constants_1.CommandsDelimiters.HierarchicalCommand,
|
|
138
|
+
defaultCommandDelimiter: constants_1.CommandsDelimiters.DefaultHierarchicalCommand,
|
|
142
139
|
};
|
|
143
140
|
const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
|
|
144
141
|
if (extensionData) {
|
|
@@ -154,13 +151,11 @@ class CommandsService {
|
|
|
154
151
|
async validateMandatoryParams(commandArguments, mandatoryParams) {
|
|
155
152
|
const commandArgsHelper = new CommandArgumentsValidationHelper(true, commandArguments);
|
|
156
153
|
if (mandatoryParams.length > 0) {
|
|
157
|
-
// If command has more mandatory params than the passed ones, we shouldn't execute it
|
|
158
154
|
if (mandatoryParams.length > commandArguments.length) {
|
|
159
155
|
const customErrorMessages = _.map(mandatoryParams, (mp) => mp.errorMessage);
|
|
160
156
|
customErrorMessages.splice(0, 0, "You need to provide all the required parameters.");
|
|
161
157
|
this.$errors.failWithHelp(customErrorMessages.join(os_1.EOL));
|
|
162
158
|
}
|
|
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
159
|
for (let mandatoryParamIndex = 0; mandatoryParamIndex < mandatoryParams.length; ++mandatoryParamIndex) {
|
|
165
160
|
const mandatoryParam = mandatoryParams[mandatoryParamIndex];
|
|
166
161
|
let argument = null;
|
|
@@ -187,14 +182,12 @@ class CommandsService {
|
|
|
187
182
|
if (!commandArgsHelper.isValid) {
|
|
188
183
|
return false;
|
|
189
184
|
}
|
|
190
|
-
// Command doesn't have any allowedParameters
|
|
191
185
|
if (!command.allowedParameters || command.allowedParameters.length === 0) {
|
|
192
186
|
if (commandArguments.length > 0) {
|
|
193
187
|
this.$errors.failWithHelp("This command doesn't accept parameters.");
|
|
194
188
|
}
|
|
195
189
|
}
|
|
196
190
|
else {
|
|
197
|
-
// Exclude mandatory params, we've already checked them
|
|
198
191
|
const unverifiedAllowedParams = command.allowedParameters.filter((param) => !param.mandatory);
|
|
199
192
|
for (let remainingArgsIndex = 0; remainingArgsIndex < commandArgsHelper.remainingArguments.length; ++remainingArgsIndex) {
|
|
200
193
|
const argument = commandArgsHelper.remainingArguments[remainingArgsIndex];
|
|
@@ -208,7 +201,6 @@ class CommandsService {
|
|
|
208
201
|
}
|
|
209
202
|
if (parameter) {
|
|
210
203
|
const index = unverifiedAllowedParams.indexOf(parameter);
|
|
211
|
-
// Remove the matched parameter from unverifiedAllowedParams collection, so it will not be used to verify another argument.
|
|
212
204
|
unverifiedAllowedParams.splice(index, 1);
|
|
213
205
|
}
|
|
214
206
|
else {
|
|
@@ -253,4 +245,3 @@ class CommandsService {
|
|
|
253
245
|
}
|
|
254
246
|
exports.CommandsService = CommandsService;
|
|
255
247
|
yok_1.injector.register("commandsService", CommandsService);
|
|
256
|
-
//# sourceMappingURL=commands-service.js.map
|
|
@@ -4,6 +4,7 @@ exports.HelpService = void 0;
|
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const os_1 = require("os");
|
|
6
6
|
const marked_1 = require("marked");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
7
8
|
const yok_1 = require("../yok");
|
|
8
9
|
const _ = require("lodash");
|
|
9
10
|
class HelpService {
|
|
@@ -42,7 +43,6 @@ class HelpService {
|
|
|
42
43
|
this.$logger.trace("Opening help for command '%s'. FileName is '%s'.", commandName, htmlPage);
|
|
43
44
|
this.$fs.ensureDirectoryExists(this.pathToHtmlPages);
|
|
44
45
|
if (!this.tryOpeningSelectedPage(htmlPage)) {
|
|
45
|
-
// HTML pages may have been skipped on post-install, lets generate them.
|
|
46
46
|
this.$logger.trace("Required HTML file '%s' is missing. Let's try generating HTML files and see if we'll find it.", htmlPage);
|
|
47
47
|
await this.generateHtmlPages();
|
|
48
48
|
if (!this.tryOpeningSelectedPage(htmlPage)) {
|
|
@@ -99,11 +99,6 @@ class HelpService {
|
|
|
99
99
|
const help = await this.getCommandLineHelpForCommand(commandData);
|
|
100
100
|
this.$logger.printMarkdown(help);
|
|
101
101
|
}
|
|
102
|
-
/**
|
|
103
|
-
* Gets the help content for a specific command that should be shown on the terminal.
|
|
104
|
-
* @param {string} commandName Name of the command for which to read the help.
|
|
105
|
-
* @returns {Promise<string>} Help content of the command parsed with all terminal rules applied (stripped content that should be shown only for html help).
|
|
106
|
-
*/
|
|
107
102
|
async getCommandLineHelpForCommand(commandData) {
|
|
108
103
|
const helpText = await this.readMdFileForCommand(commandData);
|
|
109
104
|
const commandLineHelp = (await this.$microTemplateService.parseContent(helpText, { isHtml: false }))
|
|
@@ -115,7 +110,6 @@ class HelpService {
|
|
|
115
110
|
.replace(HelpService.NEW_LINE_REGEX, os_1.EOL);
|
|
116
111
|
return commandLineHelp;
|
|
117
112
|
}
|
|
118
|
-
// This method should return Promise in order to generate all html pages simultaneously.
|
|
119
113
|
async createHtmlPage(htmlPageGenerationData) {
|
|
120
114
|
const { basicHtmlPage, pathToMdFile, pathToMdPages, pathToHtmlPages, extensionName, } = htmlPageGenerationData;
|
|
121
115
|
const mdFileName = path.basename(pathToMdFile);
|
|
@@ -162,8 +156,8 @@ class HelpService {
|
|
|
162
156
|
const commandName = commandData.commandName;
|
|
163
157
|
const commandInfo = {
|
|
164
158
|
inputStrings: [commandName, ...commandData.commandArguments],
|
|
165
|
-
commandDelimiter:
|
|
166
|
-
defaultCommandDelimiter:
|
|
159
|
+
commandDelimiter: constants_1.CommandsDelimiters.HierarchicalCommand,
|
|
160
|
+
defaultCommandDelimiter: constants_1.CommandsDelimiters.DefaultHierarchicalCommand,
|
|
167
161
|
};
|
|
168
162
|
const extensionData = await this.$extensibilityService.getExtensionNameWhereCommandIsRegistered(commandInfo);
|
|
169
163
|
if (extensionData) {
|
|
@@ -230,6 +224,5 @@ HelpService.RELATIVE_PATH_TO_INDEX_REGEX = /@RELATIVE_PATH_TO_INDEX@/g;
|
|
|
230
224
|
HelpService.EXTENSION_NAME_REGEX = /@EXTENSION_NAME@/g;
|
|
231
225
|
HelpService.MARKDOWN_LINK_REGEX = /\[([\w \-\`\<\>\*\:\\]+?)\]\([\s\S]+?\)/g;
|
|
232
226
|
HelpService.SPAN_REGEX = /([\s\S]*?)(?:\r?\n)?<span.*?>([\s\S]*?)<\/span>(?:\r?\n)*/g;
|
|
233
|
-
HelpService.NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g;
|
|
227
|
+
HelpService.NEW_LINE_REGEX = /<\/?\s*?br\s*?\/?>/g;
|
|
234
228
|
yok_1.injector.register("helpService", HelpService);
|
|
235
|
-
//# sourceMappingURL=help-service.js.map
|