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
|
@@ -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
|
// NOTE: This file is used to clean up resources used by CLI, when the CLI is killed.
|
|
13
4
|
// The instances here are not shared with the ones in main CLI process.
|
|
@@ -32,13 +23,13 @@ const commandsInfos = [];
|
|
|
32
23
|
const filesToDelete = [];
|
|
33
24
|
const jsCommands = [];
|
|
34
25
|
const requests = [];
|
|
35
|
-
const executeRequest = (request) =>
|
|
26
|
+
const executeRequest = async (request) => {
|
|
36
27
|
const $httpClient = yok_1.injector.resolve("httpClient");
|
|
37
28
|
try {
|
|
38
29
|
fileLogService.logData({
|
|
39
30
|
message: `Start executing request: ${request.method} ${request.url}`,
|
|
40
31
|
});
|
|
41
|
-
const response =
|
|
32
|
+
const response = await $httpClient.httpRequest({
|
|
42
33
|
url: request.url,
|
|
43
34
|
method: request.method,
|
|
44
35
|
headers: request.headers,
|
|
@@ -54,14 +45,14 @@ const executeRequest = (request) => __awaiter(void 0, void 0, void 0, function*
|
|
|
54
45
|
message: `Unable to execute request: ${request.method} ${request.url}`,
|
|
55
46
|
});
|
|
56
47
|
}
|
|
57
|
-
}
|
|
58
|
-
const executeJSCleanup = (jsCommand) =>
|
|
48
|
+
};
|
|
49
|
+
const executeJSCleanup = async (jsCommand) => {
|
|
59
50
|
const $childProcess = yok_1.injector.resolve("childProcess");
|
|
60
51
|
try {
|
|
61
52
|
fileLogService.logData({
|
|
62
53
|
message: `Start executing action for file: ${jsCommand.filePath} and data ${JSON.stringify(jsCommand.data)}`,
|
|
63
54
|
});
|
|
64
|
-
|
|
55
|
+
await $childProcess.trySpawnFromCloseEvent(process.execPath, [
|
|
65
56
|
path.join(__dirname, "cleanup-js-subprocess.js"),
|
|
66
57
|
pathToBootstrap,
|
|
67
58
|
logFile,
|
|
@@ -78,21 +69,21 @@ const executeJSCleanup = (jsCommand) => __awaiter(void 0, void 0, void 0, functi
|
|
|
78
69
|
type: "Error" /* FileLogMessageType.Error */,
|
|
79
70
|
});
|
|
80
71
|
}
|
|
81
|
-
}
|
|
82
|
-
const executeCleanup = () =>
|
|
72
|
+
};
|
|
73
|
+
const executeCleanup = async () => {
|
|
83
74
|
const $childProcess = yok_1.injector.resolve("childProcess");
|
|
84
75
|
for (const request of requests) {
|
|
85
|
-
|
|
76
|
+
await executeRequest(request);
|
|
86
77
|
}
|
|
87
78
|
for (const jsCommand of jsCommands) {
|
|
88
|
-
|
|
79
|
+
await executeJSCleanup(jsCommand);
|
|
89
80
|
}
|
|
90
81
|
for (const commandInfo of commandsInfos) {
|
|
91
82
|
try {
|
|
92
83
|
fileLogService.logData({
|
|
93
84
|
message: `Start executing command: ${JSON.stringify(commandInfo)}`,
|
|
94
85
|
});
|
|
95
|
-
|
|
86
|
+
await $childProcess.trySpawnFromCloseEvent(commandInfo.command, commandInfo.args, commandInfo.options || {}, { throwError: true, timeout: commandInfo.timeout || 3000 });
|
|
96
87
|
fileLogService.logData({
|
|
97
88
|
message: `Successfully executed command: ${JSON.stringify(commandInfo)}`,
|
|
98
89
|
});
|
|
@@ -120,7 +111,7 @@ const executeCleanup = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
120
111
|
}
|
|
121
112
|
fileLogService.logData({ message: `cleanup-process finished` });
|
|
122
113
|
process.exit();
|
|
123
|
-
}
|
|
114
|
+
};
|
|
124
115
|
const addCleanupAction = (commandInfo) => {
|
|
125
116
|
if (_.some(commandsInfos, (currentCommandInfo) => _.isEqual(currentCommandInfo, commandInfo))) {
|
|
126
117
|
fileLogService.logData({
|
|
@@ -231,7 +222,7 @@ const removeJSFile = (jsCommand) => {
|
|
|
231
222
|
});
|
|
232
223
|
}
|
|
233
224
|
};
|
|
234
|
-
process.on("message", (cleanupProcessMessage) =>
|
|
225
|
+
process.on("message", async (cleanupProcessMessage) => {
|
|
235
226
|
fileLogService.logData({
|
|
236
227
|
message: `cleanup-process received message of type: ${JSON.stringify(cleanupProcessMessage)}`,
|
|
237
228
|
});
|
|
@@ -269,15 +260,15 @@ process.on("message", (cleanupProcessMessage) => __awaiter(void 0, void 0, void
|
|
|
269
260
|
});
|
|
270
261
|
break;
|
|
271
262
|
}
|
|
272
|
-
})
|
|
273
|
-
process.on("disconnect", () =>
|
|
263
|
+
});
|
|
264
|
+
process.on("disconnect", async () => {
|
|
274
265
|
fileLogService.logData({
|
|
275
266
|
message: "cleanup-process received process.disconnect event",
|
|
276
267
|
});
|
|
277
|
-
|
|
268
|
+
await executeCleanup();
|
|
278
269
|
yok_1.injector.dispose();
|
|
279
270
|
process.exit();
|
|
280
|
-
})
|
|
271
|
+
});
|
|
281
272
|
fileLogService.logData({
|
|
282
273
|
message: `cleanup-process will send ${"ProcessReadyToReceive" /* DetachedProcessMessages.ProcessReadyToReceive */} message`,
|
|
283
274
|
});
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.DevicePathProvider = void 0;
|
|
13
4
|
const helpers_1 = require("./common/helpers");
|
|
@@ -21,33 +12,31 @@ class DevicePathProvider {
|
|
|
21
12
|
this.$iOSSimResolver = $iOSSimResolver;
|
|
22
13
|
this.$errors = $errors;
|
|
23
14
|
}
|
|
24
|
-
getDeviceProjectRootPath(device, options) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.$errors.fail("Unable to get application path on device.");
|
|
33
|
-
}
|
|
34
|
-
if (!options.getDirname) {
|
|
35
|
-
projectRoot = path.join(projectRoot, constants_1.APP_FOLDER_NAME);
|
|
36
|
-
}
|
|
15
|
+
async getDeviceProjectRootPath(device, options) {
|
|
16
|
+
let projectRoot = "";
|
|
17
|
+
if (this.$mobileHelper.isApplePlatform(device.deviceInfo.platform)) {
|
|
18
|
+
projectRoot = device.isEmulator
|
|
19
|
+
? await this.$iOSSimResolver.iOSSim.getApplicationPath(device.deviceInfo.identifier, options.appIdentifier)
|
|
20
|
+
: constants_2.LiveSyncPaths.IOS_DEVICE_PROJECT_ROOT_PATH;
|
|
21
|
+
if (!projectRoot) {
|
|
22
|
+
this.$errors.fail("Unable to get application path on device.");
|
|
37
23
|
}
|
|
38
|
-
|
|
39
|
-
projectRoot =
|
|
40
|
-
if (!options.getDirname) {
|
|
41
|
-
const hashService = (device).fileSystem.getDeviceHashService(options.appIdentifier);
|
|
42
|
-
const hashFile = yield hashService.doesShasumFileExistsOnDevice();
|
|
43
|
-
const syncFolderName = options.watch || hashFile
|
|
44
|
-
? constants_2.LiveSyncPaths.SYNC_DIR_NAME
|
|
45
|
-
: constants_2.LiveSyncPaths.FULLSYNC_DIR_NAME;
|
|
46
|
-
projectRoot = path.join(projectRoot, syncFolderName);
|
|
47
|
-
}
|
|
24
|
+
if (!options.getDirname) {
|
|
25
|
+
projectRoot = path.join(projectRoot, constants_1.APP_FOLDER_NAME);
|
|
48
26
|
}
|
|
49
|
-
|
|
50
|
-
|
|
27
|
+
}
|
|
28
|
+
else if (this.$mobileHelper.isAndroidPlatform(device.deviceInfo.platform)) {
|
|
29
|
+
projectRoot = `${constants_2.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${options.appIdentifier}`;
|
|
30
|
+
if (!options.getDirname) {
|
|
31
|
+
const hashService = (device).fileSystem.getDeviceHashService(options.appIdentifier);
|
|
32
|
+
const hashFile = await hashService.doesShasumFileExistsOnDevice();
|
|
33
|
+
const syncFolderName = options.watch || hashFile
|
|
34
|
+
? constants_2.LiveSyncPaths.SYNC_DIR_NAME
|
|
35
|
+
: constants_2.LiveSyncPaths.FULLSYNC_DIR_NAME;
|
|
36
|
+
projectRoot = path.join(projectRoot, syncFolderName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return (0, helpers_1.fromWindowsRelativePathToUnix)(projectRoot);
|
|
51
40
|
}
|
|
52
41
|
getDeviceSyncZipPath(device) {
|
|
53
42
|
return this.$mobileHelper.isApplePlatform(device.deviceInfo.platform) &&
|
|
@@ -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.AppDebugSocketProxyFactory = void 0;
|
|
13
4
|
const events_1 = require("events");
|
|
@@ -31,181 +22,175 @@ class AppDebugSocketProxyFactory extends events_1.EventEmitter {
|
|
|
31
22
|
getTCPSocketProxy(deviceIdentifier, appId) {
|
|
32
23
|
return this.deviceTcpServers[`${deviceIdentifier}-${appId}`];
|
|
33
24
|
}
|
|
34
|
-
addTCPSocketProxy(device, appId, projectName, projectDir) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
25
|
+
async addTCPSocketProxy(device, appId, projectName, projectDir) {
|
|
26
|
+
const cacheKey = `${device.deviceInfo.identifier}-${appId}`;
|
|
27
|
+
const existingServer = this.deviceTcpServers[cacheKey];
|
|
28
|
+
if (existingServer) {
|
|
29
|
+
this.$errors.fail(`TCP socket proxy is already running for device '${device.deviceInfo.identifier}' and app '${appId}'`);
|
|
30
|
+
}
|
|
31
|
+
this.$logger.info("\nSetting up proxy...\nPress Ctrl + C to terminate, or disconnect.\n");
|
|
32
|
+
const server = net.createServer({
|
|
33
|
+
allowHalfOpen: true,
|
|
34
|
+
});
|
|
35
|
+
this.deviceTcpServers[cacheKey] = server;
|
|
36
|
+
server.on("connection", async (frontendSocket) => {
|
|
37
|
+
this.$logger.info("Frontend client connected.");
|
|
38
|
+
frontendSocket.on("end", () => {
|
|
39
|
+
this.$logger.info("Frontend socket closed!");
|
|
40
|
+
if (!this.$options.watch) {
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
44
43
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
frontendSocket.on("close", () => __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
this.$logger.info("Frontend socket closed");
|
|
64
|
-
yield device.destroyDebugSocket(appId);
|
|
65
|
-
}));
|
|
66
|
-
appDebugSocket.on("close", () => {
|
|
67
|
-
this.$logger.info("Backend socket closed");
|
|
68
|
-
frontendSocket.destroy();
|
|
69
|
-
server.close();
|
|
70
|
-
delete this.deviceTcpServers[cacheKey];
|
|
71
|
-
});
|
|
72
|
-
appDebugSocket.pipe(frontendSocket);
|
|
73
|
-
frontendSocket.pipe(appDebugSocket);
|
|
74
|
-
frontendSocket.resume();
|
|
75
|
-
}));
|
|
76
|
-
const socketFileLocation = yield this.$tempService.path({
|
|
77
|
-
suffix: ".sock",
|
|
44
|
+
const appDebugSocket = await device.getDebugSocket(appId, projectName, projectDir);
|
|
45
|
+
this.$logger.info("Backend socket created.");
|
|
46
|
+
appDebugSocket.on("end", () => {
|
|
47
|
+
this.$logger.info("Backend socket closed!");
|
|
48
|
+
if (!this.$options.watch) {
|
|
49
|
+
process.exit(0);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
frontendSocket.on("close", async () => {
|
|
53
|
+
this.$logger.info("Frontend socket closed");
|
|
54
|
+
await device.destroyDebugSocket(appId);
|
|
55
|
+
});
|
|
56
|
+
appDebugSocket.on("close", () => {
|
|
57
|
+
this.$logger.info("Backend socket closed");
|
|
58
|
+
frontendSocket.destroy();
|
|
59
|
+
server.close();
|
|
60
|
+
delete this.deviceTcpServers[cacheKey];
|
|
78
61
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
return server;
|
|
62
|
+
appDebugSocket.pipe(frontendSocket);
|
|
63
|
+
frontendSocket.pipe(appDebugSocket);
|
|
64
|
+
frontendSocket.resume();
|
|
84
65
|
});
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
-
const existingWebProxy = this.deviceWebServers[`${device.deviceInfo.identifier}-${appId}`];
|
|
89
|
-
const result = existingWebProxy ||
|
|
90
|
-
(yield this.addWebSocketProxy(device, appId, projectName, projectDir));
|
|
91
|
-
// TODO: do not remove till VSCode waits for this message in order to reattach
|
|
92
|
-
this.$logger.info("Opened localhost " + result.options.port);
|
|
93
|
-
return result;
|
|
66
|
+
const socketFileLocation = await this.$tempService.path({
|
|
67
|
+
suffix: ".sock",
|
|
94
68
|
});
|
|
69
|
+
server.listen(socketFileLocation);
|
|
70
|
+
if (!this.$options.client) {
|
|
71
|
+
this.$logger.info("socket-file-location: " + socketFileLocation);
|
|
72
|
+
}
|
|
73
|
+
return server;
|
|
95
74
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
catch (err) {
|
|
138
|
-
if (clientConnectionLockRelease) {
|
|
139
|
-
clientConnectionLockRelease();
|
|
140
|
-
}
|
|
141
|
-
err.deviceIdentifier = device.deviceInfo.identifier;
|
|
142
|
-
this.$logger.trace(err);
|
|
143
|
-
this.emit(constants_1.CONNECTION_ERROR_EVENT_NAME, err);
|
|
144
|
-
acceptHandshake = false;
|
|
145
|
-
this.$logger.warn(`Cannot connect to device socket. The error message is '${err.message}'.`);
|
|
146
|
-
}
|
|
147
|
-
callback(acceptHandshake);
|
|
148
|
-
}),
|
|
149
|
-
});
|
|
150
|
-
this.deviceWebServers[cacheKey] = server;
|
|
151
|
-
server.on("connection", (webSocket, req) => {
|
|
152
|
-
currentWebSocket = webSocket;
|
|
153
|
-
const encoding = "utf16le";
|
|
154
|
-
const appDebugSocket = req["__deviceSocket"];
|
|
155
|
-
const packets = new ios_device_lib_1.MessageUnpackStream();
|
|
156
|
-
appDebugSocket.pipe(packets);
|
|
157
|
-
packets.on("data", (buffer) => {
|
|
158
|
-
const message = buffer.toString(encoding);
|
|
159
|
-
if (webSocket.readyState === webSocket.OPEN) {
|
|
160
|
-
if (process.env.DEBUG_DEVTOOLS_SOCKETS) {
|
|
161
|
-
console.log({
|
|
162
|
-
msgFromRuntime: JSON.parse(message),
|
|
163
|
-
});
|
|
75
|
+
async ensureWebSocketProxy(device, appId, projectName, projectDir) {
|
|
76
|
+
const existingWebProxy = this.deviceWebServers[`${device.deviceInfo.identifier}-${appId}`];
|
|
77
|
+
const result = existingWebProxy ||
|
|
78
|
+
(await this.addWebSocketProxy(device, appId, projectName, projectDir));
|
|
79
|
+
// TODO: do not remove till VSCode waits for this message in order to reattach
|
|
80
|
+
this.$logger.info("Opened localhost " + result.options.port);
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
async addWebSocketProxy(device, appId, projectName, projectDir) {
|
|
84
|
+
let clientConnectionLockRelease;
|
|
85
|
+
const cacheKey = `${device.deviceInfo.identifier}-${appId}`;
|
|
86
|
+
const existingServer = this.deviceWebServers[cacheKey];
|
|
87
|
+
if (existingServer) {
|
|
88
|
+
this.$errors.fail(`Web socket proxy is already running for device '${device.deviceInfo.identifier}' and app '${appId}'`);
|
|
89
|
+
}
|
|
90
|
+
// NOTE: We will try to provide command line options to select ports, at least on the localhost.
|
|
91
|
+
const localPort = await this.$net.getAvailablePortInRange(41000);
|
|
92
|
+
this.$logger.info("\nSetting up debugger proxy...\nPress Ctrl + C to terminate, or disconnect.\n");
|
|
93
|
+
// NB: When the inspector frontend connects we might not have connected to the inspector backend yet.
|
|
94
|
+
// That's why we use the verifyClient callback of the websocket server to stall the upgrade request until we connect.
|
|
95
|
+
// We store the socket that connects us to the device in the upgrade request object itself and later on retrieve it
|
|
96
|
+
// in the connection callback.
|
|
97
|
+
let currentAppSocket = null;
|
|
98
|
+
let currentWebSocket = null;
|
|
99
|
+
const server = new ws.Server({
|
|
100
|
+
port: localPort,
|
|
101
|
+
verifyClient: async (info, callback) => {
|
|
102
|
+
let acceptHandshake = true;
|
|
103
|
+
clientConnectionLockRelease = null;
|
|
104
|
+
try {
|
|
105
|
+
clientConnectionLockRelease = await this.$lockService.lock(`debug-connection-${device.deviceInfo.identifier}-${appId}.lock`);
|
|
106
|
+
this.$logger.info("Frontend client connected.");
|
|
107
|
+
let appDebugSocket;
|
|
108
|
+
if (currentAppSocket) {
|
|
109
|
+
currentAppSocket.removeAllListeners();
|
|
110
|
+
currentAppSocket = null;
|
|
111
|
+
if (currentWebSocket) {
|
|
112
|
+
currentWebSocket.removeAllListeners();
|
|
113
|
+
currentWebSocket.close();
|
|
114
|
+
currentWebSocket = null;
|
|
164
115
|
}
|
|
165
|
-
|
|
116
|
+
await device.destroyDebugSocket(appId);
|
|
166
117
|
}
|
|
167
|
-
|
|
168
|
-
|
|
118
|
+
appDebugSocket = await device.getDebugSocket(appId, projectName, projectDir);
|
|
119
|
+
currentAppSocket = appDebugSocket;
|
|
120
|
+
this.$logger.info("Backend socket created.");
|
|
121
|
+
info.req["__deviceSocket"] = appDebugSocket;
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
if (clientConnectionLockRelease) {
|
|
125
|
+
clientConnectionLockRelease();
|
|
169
126
|
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
this
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
127
|
+
err.deviceIdentifier = device.deviceInfo.identifier;
|
|
128
|
+
this.$logger.trace(err);
|
|
129
|
+
this.emit(constants_1.CONNECTION_ERROR_EVENT_NAME, err);
|
|
130
|
+
acceptHandshake = false;
|
|
131
|
+
this.$logger.warn(`Cannot connect to device socket. The error message is '${err.message}'.`);
|
|
132
|
+
}
|
|
133
|
+
callback(acceptHandshake);
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
this.deviceWebServers[cacheKey] = server;
|
|
137
|
+
server.on("connection", (webSocket, req) => {
|
|
138
|
+
currentWebSocket = webSocket;
|
|
139
|
+
const encoding = "utf16le";
|
|
140
|
+
const appDebugSocket = req["__deviceSocket"];
|
|
141
|
+
const packets = new ios_device_lib_1.MessageUnpackStream();
|
|
142
|
+
appDebugSocket.pipe(packets);
|
|
143
|
+
packets.on("data", (buffer) => {
|
|
144
|
+
const message = buffer.toString(encoding);
|
|
145
|
+
if (webSocket.readyState === webSocket.OPEN) {
|
|
179
146
|
if (process.env.DEBUG_DEVTOOLS_SOCKETS) {
|
|
180
147
|
console.log({
|
|
181
|
-
|
|
148
|
+
msgFromRuntime: JSON.parse(message),
|
|
182
149
|
});
|
|
183
150
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
151
|
+
webSocket.send(message);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.$logger.trace(`Received message ${message}, but unable to send it to webSocket as its state is: ${webSocket.readyState}`);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
webSocket.on("error", (err) => {
|
|
158
|
+
this.$logger.trace("Error on debugger websocket", err);
|
|
159
|
+
});
|
|
160
|
+
appDebugSocket.on("error", (err) => {
|
|
161
|
+
this.$logger.trace("Error on debugger deviceSocket", err);
|
|
162
|
+
});
|
|
163
|
+
webSocket.on("message", (message) => {
|
|
164
|
+
const msg = message.toString();
|
|
165
|
+
if (process.env.DEBUG_DEVTOOLS_SOCKETS) {
|
|
166
|
+
console.log({
|
|
167
|
+
msgFromDevtools: JSON.parse(msg),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
const length = Buffer.byteLength(msg, encoding);
|
|
171
|
+
const payload = Buffer.allocUnsafe(length + 4);
|
|
172
|
+
payload.writeInt32BE(length, 0);
|
|
173
|
+
payload.write(msg, 4, length, encoding);
|
|
174
|
+
appDebugSocket.write(payload);
|
|
175
|
+
});
|
|
176
|
+
appDebugSocket.on("close", () => {
|
|
177
|
+
currentAppSocket = null;
|
|
178
|
+
this.$logger.trace("Backend socket closed!");
|
|
179
|
+
webSocket.close();
|
|
180
|
+
});
|
|
181
|
+
webSocket.on("close", async () => {
|
|
182
|
+
currentWebSocket = null;
|
|
183
|
+
this.$logger.trace("Frontend socket closed!");
|
|
184
|
+
appDebugSocket.unpipe(packets);
|
|
185
|
+
packets.destroy();
|
|
186
|
+
await device.destroyDebugSocket(appId);
|
|
187
|
+
if (!this.$options.watch) {
|
|
188
|
+
process.exit(0);
|
|
189
|
+
}
|
|
206
190
|
});
|
|
207
|
-
|
|
191
|
+
clientConnectionLockRelease();
|
|
208
192
|
});
|
|
193
|
+
return server;
|
|
209
194
|
}
|
|
210
195
|
removeAllProxies() {
|
|
211
196
|
let deviceId;
|
|
@@ -24,10 +24,10 @@ class IOSNotification extends events_1.EventEmitter {
|
|
|
24
24
|
return `${appId}:NativeScript.Debug.${notification}`;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
+
exports.IOSNotification = IOSNotification;
|
|
27
28
|
IOSNotification.REFRESH_REQUEST_NOTIFICATION_NAME = "RefreshRequest";
|
|
28
29
|
IOSNotification.APP_REFRESH_STARTED_NOTIFICATION_NAME = "AppRefreshStarted";
|
|
29
30
|
IOSNotification.ATTACH_REQUEST_NOTIFICATION_NAME = "AttachRequest";
|
|
30
31
|
IOSNotification.READY_FOR_ATTACH_NOTIFICATION_NAME = "ReadyForAttach";
|
|
31
|
-
exports.IOSNotification = IOSNotification;
|
|
32
32
|
yok_1.injector.register("iOSNotification", IOSNotification);
|
|
33
33
|
//# sourceMappingURL=notification.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.IOSSocketRequestExecutor = void 0;
|
|
13
4
|
const constants = require("../../common/constants");
|
|
@@ -18,40 +9,34 @@ class IOSSocketRequestExecutor {
|
|
|
18
9
|
this.$iOSNotification = $iOSNotification;
|
|
19
10
|
this.$iOSNotificationService = $iOSNotificationService;
|
|
20
11
|
}
|
|
21
|
-
executeAttachRequest(device, timeout, appId) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
yield this.executeRequest(mainRequestName, readyRequestName, appId, deviceId, timeout);
|
|
27
|
-
});
|
|
12
|
+
async executeAttachRequest(device, timeout, appId) {
|
|
13
|
+
const deviceId = device.deviceInfo.identifier;
|
|
14
|
+
const mainRequestName = this.$iOSNotification.getAttachRequest(appId, deviceId);
|
|
15
|
+
const readyRequestName = this.$iOSNotification.getReadyForAttach(appId);
|
|
16
|
+
await this.executeRequest(mainRequestName, readyRequestName, appId, deviceId, timeout);
|
|
28
17
|
}
|
|
29
|
-
executeRefreshRequest(device, timeout, appId) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return result;
|
|
36
|
-
});
|
|
18
|
+
async executeRefreshRequest(device, timeout, appId) {
|
|
19
|
+
const deviceId = device.deviceInfo.identifier;
|
|
20
|
+
const mainRequestName = this.$iOSNotification.getRefreshRequest(appId);
|
|
21
|
+
const refreshRequestStartedName = this.$iOSNotification.getAppRefreshStarted(appId);
|
|
22
|
+
const result = await this.executeRequest(mainRequestName, refreshRequestStartedName, appId, deviceId, timeout);
|
|
23
|
+
return result;
|
|
37
24
|
}
|
|
38
|
-
executeRequest(mainRequestName, successfulyExecutedNotificationName, appId, deviceId, timeout) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return isSuccessful;
|
|
54
|
-
});
|
|
25
|
+
async executeRequest(mainRequestName, successfulyExecutedNotificationName, appId, deviceId, timeout) {
|
|
26
|
+
let isSuccessful = false;
|
|
27
|
+
try {
|
|
28
|
+
// We should create this promise here because we need to send the ObserveNotification on the device
|
|
29
|
+
// before we send the PostNotification.
|
|
30
|
+
const socket = await this.$iOSNotificationService.postNotification(deviceId, successfulyExecutedNotificationName, constants.IOS_OBSERVE_NOTIFICATION_COMMAND_TYPE);
|
|
31
|
+
const notificationPromise = this.$iOSNotificationService.awaitNotification(deviceId, +socket, timeout);
|
|
32
|
+
await this.$iOSNotificationService.postNotification(deviceId, mainRequestName);
|
|
33
|
+
await notificationPromise;
|
|
34
|
+
isSuccessful = true;
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
this.$errors.fail(`The application ${appId} does not appear to be running on ${deviceId} or is not built with debugging enabled. Try starting the application manually.`);
|
|
38
|
+
}
|
|
39
|
+
return isSuccessful;
|
|
55
40
|
}
|
|
56
41
|
}
|
|
57
42
|
exports.IOSSocketRequestExecutor = IOSSocketRequestExecutor;
|