nativescript 8.9.0-dev.2 → 8.9.0-dev.4
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/config/test-deps-versions-generated.json +1 -1
- package/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.AndroidProcessService = void 0;
|
|
19
10
|
const os_1 = require("os");
|
|
@@ -32,182 +23,160 @@ class AndroidProcessService {
|
|
|
32
23
|
this._devicesAdbs = {};
|
|
33
24
|
this._forwardedLocalPorts = {};
|
|
34
25
|
}
|
|
35
|
-
forwardFreeTcpToAbstractPort(portForwardInputData) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return this.forwardPort(portForwardInputData, adb);
|
|
39
|
-
});
|
|
26
|
+
async forwardFreeTcpToAbstractPort(portForwardInputData) {
|
|
27
|
+
const adb = await this.setupForPortForwarding(portForwardInputData);
|
|
28
|
+
return this.forwardPort(portForwardInputData, adb);
|
|
40
29
|
}
|
|
41
|
-
mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
30
|
+
async mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework) {
|
|
31
|
+
const adb = await this.setupForPortForwarding({
|
|
32
|
+
deviceIdentifier,
|
|
33
|
+
appIdentifier,
|
|
34
|
+
});
|
|
35
|
+
const processId = (await this.getProcessIds(adb, [appIdentifier]))[appIdentifier];
|
|
36
|
+
const applicationNotStartedErrorMessage = `The application is not started on the device with identifier ${deviceIdentifier}.`;
|
|
37
|
+
if (!processId) {
|
|
38
|
+
this.$errors.fail(applicationNotStartedErrorMessage);
|
|
39
|
+
}
|
|
40
|
+
const abstractPortsInformation = await this.getAbstractPortsInformation(adb);
|
|
41
|
+
const abstractPort = await this.getAbstractPortForApplication(adb, processId, appIdentifier, abstractPortsInformation, framework);
|
|
42
|
+
if (!abstractPort) {
|
|
43
|
+
this.$errors.fail(applicationNotStartedErrorMessage);
|
|
44
|
+
}
|
|
45
|
+
const forwardedTcpPort = await this.forwardPort({
|
|
46
|
+
deviceIdentifier,
|
|
47
|
+
appIdentifier,
|
|
48
|
+
abstractPort: `localabstract:${abstractPort}`,
|
|
49
|
+
}, adb);
|
|
50
|
+
return forwardedTcpPort && forwardedTcpPort.toString();
|
|
51
|
+
}
|
|
52
|
+
async getMappedAbstractToTcpPorts(deviceIdentifier, appIdentifiers, framework) {
|
|
53
|
+
const adb = this.getAdb(deviceIdentifier), abstractPortsInformation = await this.getAbstractPortsInformation(adb), processIds = await this.getProcessIds(adb, appIdentifiers), adbForwardList = await adb.executeCommand(["forward", "--list"]), localPorts = {};
|
|
54
|
+
await Promise.all(_.map(appIdentifiers, async (appIdentifier) => {
|
|
55
|
+
localPorts[appIdentifier] = null;
|
|
56
|
+
const processId = processIds[appIdentifier];
|
|
49
57
|
if (!processId) {
|
|
50
|
-
|
|
58
|
+
return;
|
|
51
59
|
}
|
|
52
|
-
const
|
|
53
|
-
const abstractPort = yield this.getAbstractPortForApplication(adb, processId, appIdentifier, abstractPortsInformation, framework);
|
|
60
|
+
const abstractPort = await this.getAbstractPortForApplication(adb, processId, appIdentifier, abstractPortsInformation, framework);
|
|
54
61
|
if (!abstractPort) {
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
const forwardedTcpPort = yield this.forwardPort({
|
|
58
|
-
deviceIdentifier,
|
|
59
|
-
appIdentifier,
|
|
60
|
-
abstractPort: `localabstract:${abstractPort}`,
|
|
61
|
-
}, adb);
|
|
62
|
-
return forwardedTcpPort && forwardedTcpPort.toString();
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
getMappedAbstractToTcpPorts(deviceIdentifier, appIdentifiers, framework) {
|
|
66
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
const adb = this.getAdb(deviceIdentifier), abstractPortsInformation = yield this.getAbstractPortsInformation(adb), processIds = yield this.getProcessIds(adb, appIdentifiers), adbForwardList = yield adb.executeCommand(["forward", "--list"]), localPorts = {};
|
|
68
|
-
yield Promise.all(_.map(appIdentifiers, (appIdentifier) => __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
localPorts[appIdentifier] = null;
|
|
70
|
-
const processId = processIds[appIdentifier];
|
|
71
|
-
if (!processId) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const abstractPort = yield this.getAbstractPortForApplication(adb, processId, appIdentifier, abstractPortsInformation, framework);
|
|
75
|
-
if (!abstractPort) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const localPort = yield this.getAlreadyMappedPort(adb, deviceIdentifier, abstractPort, adbForwardList);
|
|
79
|
-
if (localPort) {
|
|
80
|
-
localPorts[appIdentifier] = localPort;
|
|
81
|
-
}
|
|
82
|
-
})));
|
|
83
|
-
return localPorts;
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
getDebuggableApps(deviceIdentifier) {
|
|
87
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
const adb = this.getAdb(deviceIdentifier);
|
|
89
|
-
const androidWebViewPortInformation = (yield this.getAbstractPortsInformation(adb)).split(os_1.EOL);
|
|
90
|
-
// TODO: Add tests and make sure only unique names are returned. Input before groupBy is:
|
|
91
|
-
// [ { deviceIdentifier: 'SH26BW100473',
|
|
92
|
-
// appIdentifier: 'com.telerik.EmptyNS',
|
|
93
|
-
// framework: 'NativeScript' },
|
|
94
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
95
|
-
// appIdentifier: 'com.telerik.EmptyNS',
|
|
96
|
-
// framework: 'Cordova' },
|
|
97
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
98
|
-
// appIdentifier: 'chrome',
|
|
99
|
-
// framework: 'Cordova' },
|
|
100
|
-
// { deviceIdentifier: 'SH26BW100473',
|
|
101
|
-
// appIdentifier: 'chrome',
|
|
102
|
-
// framework: 'Cordova' } ]
|
|
103
|
-
const portInformation = yield Promise.all(_.map(androidWebViewPortInformation, (line) => __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
return (yield this.getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, line)) ||
|
|
105
|
-
(yield this.getNativeScriptApplicationInformation(adb, deviceIdentifier, line));
|
|
106
|
-
})));
|
|
107
|
-
return _(portInformation)
|
|
108
|
-
.filter((deviceAppInfo) => !!deviceAppInfo)
|
|
109
|
-
.groupBy((element) => element.framework)
|
|
110
|
-
.map((group) => _.uniqBy(group, (g) => g.appIdentifier))
|
|
111
|
-
.flatten()
|
|
112
|
-
.value();
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
getAppProcessId(deviceIdentifier, appIdentifier) {
|
|
116
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
-
const adb = this.getAdb(deviceIdentifier);
|
|
118
|
-
const processId = (yield this.getProcessIds(adb, [appIdentifier]))[appIdentifier];
|
|
119
|
-
return processId ? processId.toString() : null;
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
forwardPort(portForwardInputData, adb) {
|
|
123
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
124
|
-
let localPort = yield this.getAlreadyMappedPort(adb, portForwardInputData.deviceIdentifier, portForwardInputData.abstractPort);
|
|
125
|
-
if (!localPort) {
|
|
126
|
-
localPort = yield this.$net.getFreePort();
|
|
127
|
-
yield adb.executeCommand(["forward", `tcp:${localPort}`, portForwardInputData.abstractPort], { deviceIdentifier: portForwardInputData.deviceIdentifier });
|
|
128
|
-
}
|
|
129
|
-
this._forwardedLocalPorts[portForwardInputData.deviceIdentifier] = localPort;
|
|
130
|
-
yield this.$cleanupService.addCleanupCommand({
|
|
131
|
-
command: yield this.$staticConfig.getAdbFilePath(),
|
|
132
|
-
args: [
|
|
133
|
-
"-s",
|
|
134
|
-
portForwardInputData.deviceIdentifier,
|
|
135
|
-
"forward",
|
|
136
|
-
"--remove",
|
|
137
|
-
`tcp:${localPort}`,
|
|
138
|
-
],
|
|
139
|
-
});
|
|
140
|
-
return localPort && +localPort;
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
setupForPortForwarding(portForwardInputData) {
|
|
144
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
const adb = this.getAdb(portForwardInputData.deviceIdentifier);
|
|
146
|
-
return adb;
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, information) {
|
|
150
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
151
|
-
// Need to search by processId to check for old Android webviews (@webview_devtools_remote_<processId>).
|
|
152
|
-
const processIdRegExp = /@webview_devtools_remote_(.+)/g;
|
|
153
|
-
const processIdMatches = processIdRegExp.exec(information);
|
|
154
|
-
let cordovaAppIdentifier;
|
|
155
|
-
if (processIdMatches) {
|
|
156
|
-
const processId = processIdMatches[1];
|
|
157
|
-
cordovaAppIdentifier = yield this.getApplicationIdentifierFromPid(adb, processId);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// Search for appIdentifier (@<appIdentifier>_devtools_remote).
|
|
161
|
-
const chromeAppIdentifierRegExp = /@(.+)_devtools_remote\s?/g;
|
|
162
|
-
const chromeAppIdentifierMatches = chromeAppIdentifierRegExp.exec(information);
|
|
163
|
-
if (chromeAppIdentifierMatches && chromeAppIdentifierMatches.length > 0) {
|
|
164
|
-
cordovaAppIdentifier = chromeAppIdentifierMatches[1];
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
if (cordovaAppIdentifier) {
|
|
168
|
-
return {
|
|
169
|
-
deviceIdentifier: deviceIdentifier,
|
|
170
|
-
appIdentifier: cordovaAppIdentifier,
|
|
171
|
-
framework: constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova,
|
|
172
|
-
};
|
|
62
|
+
return;
|
|
173
63
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
getNativeScriptApplicationInformation(adb, deviceIdentifier, information) {
|
|
178
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
// Search for appIdentifier (@<appIdentifier-debug>).
|
|
180
|
-
const nativeScriptAppIdentifierRegExp = /@(.+)-(debug|inspectorServer)/g;
|
|
181
|
-
const nativeScriptAppIdentifierMatches = nativeScriptAppIdentifierRegExp.exec(information);
|
|
182
|
-
if (nativeScriptAppIdentifierMatches &&
|
|
183
|
-
nativeScriptAppIdentifierMatches.length > 0) {
|
|
184
|
-
const appIdentifier = nativeScriptAppIdentifierMatches[1];
|
|
185
|
-
return {
|
|
186
|
-
deviceIdentifier: deviceIdentifier,
|
|
187
|
-
appIdentifier: appIdentifier,
|
|
188
|
-
framework: constants_1.TARGET_FRAMEWORK_IDENTIFIERS.NativeScript,
|
|
189
|
-
};
|
|
64
|
+
const localPort = await this.getAlreadyMappedPort(adb, deviceIdentifier, abstractPort, adbForwardList);
|
|
65
|
+
if (localPort) {
|
|
66
|
+
localPorts[appIdentifier] = localPort;
|
|
190
67
|
}
|
|
191
|
-
|
|
68
|
+
}));
|
|
69
|
+
return localPorts;
|
|
70
|
+
}
|
|
71
|
+
async getDebuggableApps(deviceIdentifier) {
|
|
72
|
+
const adb = this.getAdb(deviceIdentifier);
|
|
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
|
+
const portInformation = await Promise.all(_.map(androidWebViewPortInformation, async (line) => (await this.getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, line)) ||
|
|
88
|
+
(await this.getNativeScriptApplicationInformation(adb, deviceIdentifier, line))));
|
|
89
|
+
return _(portInformation)
|
|
90
|
+
.filter((deviceAppInfo) => !!deviceAppInfo)
|
|
91
|
+
.groupBy((element) => element.framework)
|
|
92
|
+
.map((group) => _.uniqBy(group, (g) => g.appIdentifier))
|
|
93
|
+
.flatten()
|
|
94
|
+
.value();
|
|
95
|
+
}
|
|
96
|
+
async getAppProcessId(deviceIdentifier, appIdentifier) {
|
|
97
|
+
const adb = this.getAdb(deviceIdentifier);
|
|
98
|
+
const processId = (await this.getProcessIds(adb, [appIdentifier]))[appIdentifier];
|
|
99
|
+
return processId ? processId.toString() : null;
|
|
100
|
+
}
|
|
101
|
+
async forwardPort(portForwardInputData, adb) {
|
|
102
|
+
let localPort = await this.getAlreadyMappedPort(adb, portForwardInputData.deviceIdentifier, portForwardInputData.abstractPort);
|
|
103
|
+
if (!localPort) {
|
|
104
|
+
localPort = await this.$net.getFreePort();
|
|
105
|
+
await adb.executeCommand(["forward", `tcp:${localPort}`, portForwardInputData.abstractPort], { deviceIdentifier: portForwardInputData.deviceIdentifier });
|
|
106
|
+
}
|
|
107
|
+
this._forwardedLocalPorts[portForwardInputData.deviceIdentifier] = localPort;
|
|
108
|
+
await this.$cleanupService.addCleanupCommand({
|
|
109
|
+
command: await this.$staticConfig.getAdbFilePath(),
|
|
110
|
+
args: [
|
|
111
|
+
"-s",
|
|
112
|
+
portForwardInputData.deviceIdentifier,
|
|
113
|
+
"forward",
|
|
114
|
+
"--remove",
|
|
115
|
+
`tcp:${localPort}`,
|
|
116
|
+
],
|
|
192
117
|
});
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
118
|
+
return localPort && +localPort;
|
|
119
|
+
}
|
|
120
|
+
async setupForPortForwarding(portForwardInputData) {
|
|
121
|
+
const adb = this.getAdb(portForwardInputData.deviceIdentifier);
|
|
122
|
+
return adb;
|
|
123
|
+
}
|
|
124
|
+
async getApplicationInfoFromWebViewPortInformation(adb, deviceIdentifier, information) {
|
|
125
|
+
// Need to search by processId to check for old Android webviews (@webview_devtools_remote_<processId>).
|
|
126
|
+
const processIdRegExp = /@webview_devtools_remote_(.+)/g;
|
|
127
|
+
const processIdMatches = processIdRegExp.exec(information);
|
|
128
|
+
let cordovaAppIdentifier;
|
|
129
|
+
if (processIdMatches) {
|
|
130
|
+
const processId = processIdMatches[1];
|
|
131
|
+
cordovaAppIdentifier = await this.getApplicationIdentifierFromPid(adb, processId);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
// Search for appIdentifier (@<appIdentifier>_devtools_remote).
|
|
135
|
+
const chromeAppIdentifierRegExp = /@(.+)_devtools_remote\s?/g;
|
|
136
|
+
const chromeAppIdentifierMatches = chromeAppIdentifierRegExp.exec(information);
|
|
137
|
+
if (chromeAppIdentifierMatches && chromeAppIdentifierMatches.length > 0) {
|
|
138
|
+
cordovaAppIdentifier = chromeAppIdentifierMatches[1];
|
|
209
139
|
}
|
|
210
|
-
}
|
|
140
|
+
}
|
|
141
|
+
if (cordovaAppIdentifier) {
|
|
142
|
+
return {
|
|
143
|
+
deviceIdentifier: deviceIdentifier,
|
|
144
|
+
appIdentifier: cordovaAppIdentifier,
|
|
145
|
+
framework: constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
async getNativeScriptApplicationInformation(adb, deviceIdentifier, information) {
|
|
151
|
+
// Search for appIdentifier (@<appIdentifier-debug>).
|
|
152
|
+
const nativeScriptAppIdentifierRegExp = /@(.+)-(debug|inspectorServer)/g;
|
|
153
|
+
const nativeScriptAppIdentifierMatches = nativeScriptAppIdentifierRegExp.exec(information);
|
|
154
|
+
if (nativeScriptAppIdentifierMatches &&
|
|
155
|
+
nativeScriptAppIdentifierMatches.length > 0) {
|
|
156
|
+
const appIdentifier = nativeScriptAppIdentifierMatches[1];
|
|
157
|
+
return {
|
|
158
|
+
deviceIdentifier: deviceIdentifier,
|
|
159
|
+
appIdentifier: appIdentifier,
|
|
160
|
+
framework: constants_1.TARGET_FRAMEWORK_IDENTIFIERS.NativeScript,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
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
|
+
framework = framework || "";
|
|
171
|
+
switch (framework.toLowerCase()) {
|
|
172
|
+
case constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova.toLowerCase():
|
|
173
|
+
return this.getCordovaPortInformation(abstractPortsInformation, appIdentifier, processId);
|
|
174
|
+
case constants_1.TARGET_FRAMEWORK_IDENTIFIERS.NativeScript.toLowerCase():
|
|
175
|
+
return this.getNativeScriptPortInformation(abstractPortsInformation, appIdentifier);
|
|
176
|
+
default:
|
|
177
|
+
return (this.getCordovaPortInformation(abstractPortsInformation, appIdentifier, processId) ||
|
|
178
|
+
this.getNativeScriptPortInformation(abstractPortsInformation, appIdentifier));
|
|
179
|
+
}
|
|
211
180
|
}
|
|
212
181
|
getCordovaPortInformation(abstractPortsInformation, appIdentifier, processId) {
|
|
213
182
|
return (this.getPortInformation(abstractPortsInformation, `${appIdentifier}_devtools_remote`) || this.getPortInformation(abstractPortsInformation, processId));
|
|
@@ -215,41 +184,35 @@ class AndroidProcessService {
|
|
|
215
184
|
getNativeScriptPortInformation(abstractPortsInformation, appIdentifier) {
|
|
216
185
|
return this.getPortInformation(abstractPortsInformation, `${appIdentifier}-debug`);
|
|
217
186
|
}
|
|
218
|
-
getAbstractPortsInformation(adb) {
|
|
219
|
-
return
|
|
220
|
-
return adb.executeShellCommand(["cat", "/proc/net/unix"]);
|
|
221
|
-
});
|
|
187
|
+
async getAbstractPortsInformation(adb) {
|
|
188
|
+
return adb.executeShellCommand(["cat", "/proc/net/unix"]);
|
|
222
189
|
}
|
|
223
190
|
getPortInformation(abstractPortsInformation, searchedInfo) {
|
|
224
191
|
const processRegExp = new RegExp(`\\w+:\\s+(?:\\w+\\s+){1,6}@(.*?${searchedInfo})$`, "gm");
|
|
225
192
|
const match = processRegExp.exec(abstractPortsInformation);
|
|
226
193
|
return match && match[1];
|
|
227
194
|
}
|
|
228
|
-
getProcessIds(adb, appIdentifiers) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
result[appIdentifier] = this.getFirstMatchingGroupFromMultilineResult(processIdInformation, processIdRegExp);
|
|
238
|
-
});
|
|
239
|
-
return result;
|
|
195
|
+
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
|
+
const result = {};
|
|
200
|
+
const processIdInformation = await adb.executeShellCommand(["ps"]);
|
|
201
|
+
_.each(appIdentifiers, (appIdentifier) => {
|
|
202
|
+
const processIdRegExp = new RegExp(`^\\w*\\s*(\\d+).*?${appIdentifier}$`);
|
|
203
|
+
result[appIdentifier] = this.getFirstMatchingGroupFromMultilineResult(processIdInformation, processIdRegExp);
|
|
240
204
|
});
|
|
205
|
+
return result;
|
|
241
206
|
}
|
|
242
|
-
getAlreadyMappedPort(adb, deviceIdentifier, abstractPort, adbForwardList) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return this.getFirstMatchingGroupFromMultilineResult(allForwardedPorts, regex);
|
|
252
|
-
});
|
|
207
|
+
async getAlreadyMappedPort(adb, deviceIdentifier, abstractPort, adbForwardList) {
|
|
208
|
+
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
|
+
const regex = new RegExp(`${deviceIdentifier}\\s+?tcp:(\\d+?)\\s+?.*?${abstractPort}$`);
|
|
215
|
+
return this.getFirstMatchingGroupFromMultilineResult(allForwardedPorts, regex);
|
|
253
216
|
}
|
|
254
217
|
getAdb(deviceIdentifier) {
|
|
255
218
|
if (!this._devicesAdbs[deviceIdentifier]) {
|
|
@@ -259,14 +222,12 @@ class AndroidProcessService {
|
|
|
259
222
|
}
|
|
260
223
|
return this._devicesAdbs[deviceIdentifier];
|
|
261
224
|
}
|
|
262
|
-
getApplicationIdentifierFromPid(adb, pid, psData) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
return this.getFirstMatchingGroupFromMultilineResult(psData, new RegExp(`\\s+${pid}(?:\\s+\\d+){3}\\s+.*\\s+(.*?)$`));
|
|
269
|
-
});
|
|
225
|
+
async getApplicationIdentifierFromPid(adb, pid, psData) {
|
|
226
|
+
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
|
+
return this.getFirstMatchingGroupFromMultilineResult(psData, new RegExp(`\\s+${pid}(?:\\s+\\d+){3}\\s+.*\\s+(.*?)$`));
|
|
270
231
|
}
|
|
271
232
|
getFirstMatchingGroupFromMultilineResult(input, regex) {
|
|
272
233
|
let result;
|
|
@@ -283,9 +244,9 @@ class AndroidProcessService {
|
|
|
283
244
|
return result;
|
|
284
245
|
}
|
|
285
246
|
}
|
|
247
|
+
exports.AndroidProcessService = AndroidProcessService;
|
|
286
248
|
__decorate([
|
|
287
249
|
(0, decorators_1.exported)("androidProcessService")
|
|
288
250
|
], AndroidProcessService.prototype, "getAppProcessId", null);
|
|
289
|
-
exports.AndroidProcessService = AndroidProcessService;
|
|
290
251
|
yok_1.injector.register("androidProcessService", AndroidProcessService);
|
|
291
252
|
//# sourceMappingURL=android-process-service.js.map
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.DeviceDiscovery = void 0;
|
|
13
4
|
const events_1 = require("events");
|
|
@@ -19,10 +10,8 @@ class DeviceDiscovery extends events_1.EventEmitter {
|
|
|
19
10
|
super(...arguments);
|
|
20
11
|
this.devices = {};
|
|
21
12
|
}
|
|
22
|
-
startLookingForDevices() {
|
|
23
|
-
return
|
|
24
|
-
return;
|
|
25
|
-
});
|
|
13
|
+
async startLookingForDevices() {
|
|
14
|
+
return;
|
|
26
15
|
}
|
|
27
16
|
getDevice(deviceIdentifier) {
|
|
28
17
|
const device = this.devices[deviceIdentifier];
|