nativescript 8.9.0-dev.1 → 8.9.0-dev.2
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/lib/.d.ts +1 -0
- package/lib/android-tools-info.js +32 -9
- package/lib/base-package-manager.js +71 -47
- package/lib/bootstrap.js +6 -1
- package/lib/bun-package-manager.js +104 -65
- package/lib/color.js +5 -2
- package/lib/commands/add-platform.js +31 -14
- package/lib/commands/apple-login.js +30 -18
- package/lib/commands/appstore-list.js +46 -34
- package/lib/commands/appstore-upload.js +68 -52
- package/lib/commands/build.js +90 -57
- package/lib/commands/clean.js +197 -161
- package/lib/commands/command-base.js +28 -14
- package/lib/commands/config.js +71 -48
- package/lib/commands/create-project.js +235 -210
- package/lib/commands/debug.js +93 -66
- package/lib/commands/deploy.js +47 -30
- package/lib/commands/embedding/embed.js +59 -33
- package/lib/commands/extensibility/install-extension.js +17 -5
- package/lib/commands/extensibility/list-extensions.js +25 -13
- package/lib/commands/extensibility/uninstall-extension.js +16 -4
- package/lib/commands/fonts.js +42 -30
- package/lib/commands/generate-assets.js +29 -13
- package/lib/commands/generate-help.js +14 -2
- package/lib/commands/generate.js +70 -12
- package/lib/commands/info.js +14 -2
- package/lib/commands/install.js +50 -34
- package/lib/commands/list-platforms.js +26 -14
- package/lib/commands/migrate.js +27 -15
- package/lib/commands/native-add.js +51 -23
- package/lib/commands/platform-clean.js +33 -19
- package/lib/commands/plugin/add-plugin.js +26 -12
- package/lib/commands/plugin/build-plugin.js +45 -31
- package/lib/commands/plugin/create-plugin.js +138 -110
- package/lib/commands/plugin/list-plugins.js +34 -22
- package/lib/commands/plugin/remove-plugin.js +35 -20
- package/lib/commands/plugin/update-plugin.js +34 -20
- package/lib/commands/post-install.js +39 -20
- package/lib/commands/prepare.js +39 -22
- package/lib/commands/preview.js +64 -49
- package/lib/commands/remove-platform.js +19 -7
- package/lib/commands/resources/resources-update.js +28 -13
- package/lib/commands/run.js +77 -55
- package/lib/commands/setup.js +1 -0
- package/lib/commands/start.js +20 -6
- package/lib/commands/test-init.js +138 -123
- package/lib/commands/test.js +97 -67
- package/lib/commands/typings.js +143 -126
- package/lib/commands/update-platform.js +40 -22
- package/lib/commands/update.js +45 -30
- package/lib/commands/widget.js +767 -0
- package/lib/common/bootstrap.js +1 -0
- package/lib/common/child-process.js +75 -53
- package/lib/common/codeGeneration/code-entity.js +2 -1
- package/lib/common/codeGeneration/code-printer.js +2 -1
- package/lib/common/command-params.js +19 -7
- package/lib/common/commands/analytics.js +43 -27
- package/lib/common/commands/autocompletion.js +59 -39
- package/lib/common/commands/device/device-log-stream.js +24 -12
- package/lib/common/commands/device/get-file.js +35 -22
- package/lib/common/commands/device/list-applications.js +24 -12
- package/lib/common/commands/device/list-devices.js +90 -72
- package/lib/common/commands/device/list-files.js +36 -23
- package/lib/common/commands/device/put-file.js +35 -22
- package/lib/common/commands/device/run-application.js +26 -12
- package/lib/common/commands/device/stop-application.js +23 -11
- package/lib/common/commands/device/uninstall-application.js +18 -6
- package/lib/common/commands/doctor.js +3 -2
- package/lib/common/commands/generate-messages.js +29 -17
- package/lib/common/commands/help.js +34 -20
- package/lib/common/commands/package-manager-get.js +18 -6
- package/lib/common/commands/package-manager-set.js +21 -9
- package/lib/common/commands/post-install.js +14 -2
- package/lib/common/commands/preuninstall.js +48 -24
- package/lib/common/commands/proxy/proxy-base.js +23 -8
- package/lib/common/commands/proxy/proxy-clear.js +16 -4
- package/lib/common/commands/proxy/proxy-get.js +15 -3
- package/lib/common/commands/proxy/proxy-set.js +101 -87
- package/lib/common/common-lib.js +1 -0
- package/lib/common/constants.js +22 -11
- package/lib/common/decorators.js +70 -10
- package/lib/common/dispatchers.js +106 -80
- package/lib/common/errors.js +116 -91
- package/lib/common/file-system.js +141 -108
- package/lib/common/header.js +5 -1
- package/lib/common/helpers.js +267 -152
- package/lib/common/host-info.js +54 -37
- package/lib/common/http-client.js +128 -93
- package/lib/common/logger/appenders/cli-appender.js +6 -1
- package/lib/common/logger/appenders/emit-appender.js +6 -1
- package/lib/common/logger/layouts/cli-layout.js +3 -1
- package/lib/common/logger/logger.js +9 -4
- package/lib/common/messages/messages.js +6 -0
- package/lib/common/mobile/android/android-application-manager.js +162 -122
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +2 -1
- package/lib/common/mobile/android/android-debug-bridge.js +118 -87
- package/lib/common/mobile/android/android-device-file-system.js +135 -98
- package/lib/common/mobile/android/android-device-hash-service.js +78 -50
- package/lib/common/mobile/android/android-device.js +93 -68
- package/lib/common/mobile/android/android-emulator-services.js +131 -105
- package/lib/common/mobile/android/android-ini-file-parser.js +9 -0
- package/lib/common/mobile/android/android-log-filter.js +5 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +123 -76
- package/lib/common/mobile/android/device-android-debug-bridge.js +30 -13
- package/lib/common/mobile/android/genymotion/genymotion-service.js +123 -91
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +92 -64
- package/lib/common/mobile/android/logcat-helper.js +140 -108
- package/lib/common/mobile/application-manager-base.js +113 -84
- package/lib/common/mobile/device-emitter.js +4 -0
- package/lib/common/mobile/device-log-emitter.js +1 -0
- package/lib/common/mobile/device-log-provider-base.js +19 -7
- package/lib/common/mobile/device-log-provider.js +23 -0
- package/lib/common/mobile/device-platforms-constants.js +1 -0
- package/lib/common/mobile/emulator-helper.js +3 -0
- package/lib/common/mobile/ios/device/ios-application-manager.js +111 -79
- package/lib/common/mobile/ios/device/ios-device-file-system.js +106 -78
- package/lib/common/mobile/ios/device/ios-device-operations.js +146 -105
- package/lib/common/mobile/ios/device/ios-device.js +40 -20
- package/lib/common/mobile/ios/ios-device-base.js +82 -58
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +2 -0
- package/lib/common/mobile/ios/ios-log-filter.js +1 -0
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +96 -63
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +2 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +95 -60
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +48 -27
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +63 -37
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +36 -24
- package/lib/common/mobile/local-to-device-path-data-factory.js +1 -0
- package/lib/common/mobile/log-filter.js +2 -0
- package/lib/common/mobile/logging-levels.js +1 -0
- package/lib/common/mobile/mobile-core/android-device-discovery.js +64 -43
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +35 -21
- package/lib/common/mobile/mobile-core/android-process-service.js +214 -143
- package/lib/common/mobile/mobile-core/device-discovery.js +14 -2
- package/lib/common/mobile/mobile-core/devices-service.js +505 -386
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +37 -24
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +65 -47
- package/lib/common/mobile/mobile-helper.js +27 -15
- package/lib/common/mobile/wp8/wp8-emulator-services.js +53 -25
- package/lib/common/opener.js +3 -2
- package/lib/common/os-info.js +1 -0
- package/lib/common/plist-parser.js +1 -0
- package/lib/common/project-helper.js +1 -0
- package/lib/common/prompter.js +114 -91
- package/lib/common/queue.js +21 -9
- package/lib/common/resource-loader.js +1 -0
- package/lib/common/services/auto-completion-service.js +65 -40
- package/lib/common/services/cancellation.js +29 -17
- package/lib/common/services/commands-service.js +180 -146
- package/lib/common/services/help-service.js +166 -133
- package/lib/common/services/hooks-service.js +121 -93
- package/lib/common/services/ios-notification-service.js +35 -21
- package/lib/common/services/json-file-settings-service.js +77 -52
- package/lib/common/services/lock-service.js +58 -35
- package/lib/common/services/message-contract-generator.js +47 -35
- package/lib/common/services/messages-service.js +1 -0
- package/lib/common/services/micro-templating-service.js +21 -4
- package/lib/common/services/net-service.js +110 -90
- package/lib/common/services/project-files-manager.js +28 -10
- package/lib/common/services/project-files-provider-base.js +1 -0
- package/lib/common/services/proxy-service.js +25 -13
- package/lib/common/services/qr.js +25 -13
- package/lib/common/services/settings-service.js +2 -1
- package/lib/common/services/xcode-select-service.js +36 -20
- package/lib/common/utils.js +3 -2
- package/lib/common/validators/project-name-validator.js +2 -1
- package/lib/common/validators/validation-result.js +2 -1
- package/lib/common/verify-node-version.js +11 -3
- package/lib/common/yok.js +69 -35
- package/lib/config.js +72 -36
- package/lib/constants-provider.js +1 -0
- package/lib/constants.js +78 -25
- package/lib/controllers/build-controller.js +100 -82
- package/lib/controllers/debug-controller.js +133 -107
- package/lib/controllers/deploy-controller.js +24 -15
- package/lib/controllers/migrate-controller.js +884 -723
- package/lib/controllers/platform-controller.js +94 -71
- package/lib/controllers/prepare-controller.js +274 -232
- package/lib/controllers/run-controller.js +427 -397
- package/lib/controllers/update-controller-base.js +30 -16
- package/lib/controllers/update-controller.js +130 -94
- package/lib/data/build-data.js +1 -0
- package/lib/data/controller-data-base.js +1 -0
- package/lib/data/debug-data.js +1 -0
- package/lib/data/platform-data.js +1 -0
- package/lib/data/prepare-data.js +2 -4
- package/lib/data/run-data.js +1 -0
- package/lib/definitions/project.d.ts +26 -0
- package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
- package/lib/detached-processes/cleanup-process.js +43 -30
- package/lib/detached-processes/file-log-service.js +2 -1
- package/lib/device-path-provider.js +35 -23
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
- package/lib/device-sockets/ios/notification.js +4 -1
- package/lib/device-sockets/ios/socket-request-executor.js +42 -24
- package/lib/helpers/android-bundle-validator-helper.js +3 -2
- package/lib/helpers/deploy-command-helper.js +50 -44
- package/lib/helpers/key-command-helper.js +17 -6
- package/lib/helpers/livesync-command-helper.js +155 -137
- package/lib/helpers/network-connectivity-validator.js +18 -6
- package/lib/helpers/options-track-helper.js +19 -7
- package/lib/helpers/package-path-helper.js +1 -0
- package/lib/helpers/platform-command-helper.js +127 -101
- package/lib/helpers/version-validator-helper.js +1 -0
- package/lib/key-commands/bootstrap.js +3 -2
- package/lib/key-commands/index.js +205 -154
- package/lib/nativescript-cli-lib-bootstrap.js +4 -0
- package/lib/nativescript-cli-lib.js +1 -0
- package/lib/nativescript-cli.js +24 -6
- package/lib/node/pbxproj-dom-xcode.js +1 -0
- package/lib/node/xcode.js +1 -0
- package/lib/node-package-manager.js +114 -81
- package/lib/options.js +156 -122
- package/lib/package-installation-manager.js +172 -130
- package/lib/package-manager.js +88 -63
- package/lib/platform-command-param.js +16 -4
- package/lib/pnpm-package-manager.js +81 -59
- package/lib/project-data.js +13 -1
- package/lib/providers/project-files-provider.js +2 -1
- package/lib/resolvers/livesync-service-resolver.js +1 -0
- package/lib/services/analytics/analytics-broker-process.js +32 -19
- package/lib/services/analytics/analytics-broker.js +31 -17
- package/lib/services/analytics/analytics-service.js +210 -170
- package/lib/services/analytics/google-analytics-provider.js +59 -43
- package/lib/services/analytics-settings-service.js +37 -15
- package/lib/services/android/android-bundle-tool-service.js +61 -43
- package/lib/services/android/gradle-build-args-service.js +23 -9
- package/lib/services/android/gradle-build-service.js +36 -22
- package/lib/services/android/gradle-command-service.js +36 -22
- package/lib/services/android-device-debug-service.js +123 -90
- package/lib/services/android-plugin-build-service.js +260 -205
- package/lib/services/android-project-service.js +241 -129
- package/lib/services/android-resources-migration-service.js +71 -51
- package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
- package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
- package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
- package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
- package/lib/services/assets-generation/assets-generation-service.js +128 -103
- package/lib/services/build-artifacts-service.js +22 -10
- package/lib/services/build-data-service.js +1 -0
- package/lib/services/build-info-file-service.js +36 -20
- package/lib/services/cleanup-service.js +81 -48
- package/lib/services/cocoapods-platform-manager.js +9 -0
- package/lib/services/cocoapods-service.js +153 -112
- package/lib/services/debug-data-service.js +1 -0
- package/lib/services/debug-service-base.js +7 -0
- package/lib/services/device/device-install-app-service.js +72 -54
- package/lib/services/doctor-service.js +135 -101
- package/lib/services/extensibility-service.js +108 -81
- package/lib/services/files-hash-service.js +44 -26
- package/lib/services/hmr-status-service.js +3 -1
- package/lib/services/info-service.js +1 -0
- package/lib/services/initialize-service.js +54 -37
- package/lib/services/ios/export-options-plist-service.js +55 -38
- package/lib/services/ios/ios-signing-service.js +191 -168
- package/lib/services/ios/spm-service.js +70 -46
- package/lib/services/ios/xcodebuild-args-service.js +103 -77
- package/lib/services/ios/xcodebuild-command-service.js +26 -14
- package/lib/services/ios/xcodebuild-service.js +72 -52
- package/lib/services/ios-debugger-port-service.js +38 -24
- package/lib/services/ios-device-debug-service.js +103 -75
- package/lib/services/ios-entitlements-service.js +43 -31
- package/lib/services/ios-extensions-service.js +30 -18
- package/lib/services/ios-log-filter.js +20 -0
- package/lib/services/ios-native-target-service.js +6 -4
- package/lib/services/ios-project-service.js +605 -437
- package/lib/services/ios-provision-service.js +132 -108
- package/lib/services/ios-watch-app-service.js +33 -21
- package/lib/services/ip-service.js +55 -38
- package/lib/services/itmstransporter-service.js +153 -129
- package/lib/services/karma-execution.js +2 -0
- package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
- package/lib/services/livesync/android-device-livesync-service.js +151 -120
- package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
- package/lib/services/livesync/android-livesync-service.js +36 -14
- package/lib/services/livesync/android-livesync-tool.js +117 -90
- package/lib/services/livesync/device-livesync-service-base.js +30 -15
- package/lib/services/livesync/ios-device-livesync-service.js +150 -114
- package/lib/services/livesync/ios-livesync-service.js +60 -42
- package/lib/services/livesync/livesync-socket.js +1 -0
- package/lib/services/livesync/platform-livesync-service-base.js +124 -94
- package/lib/services/livesync-process-data-service.js +1 -0
- package/lib/services/log-parser-service.js +2 -1
- package/lib/services/log-source-map-service.js +56 -30
- package/lib/services/marking-mode-service.js +33 -17
- package/lib/services/metadata-filtering-service.js +1 -0
- package/lib/services/npm-config-service.js +5 -1
- package/lib/services/pacote-service.js +71 -49
- package/lib/services/performance-service.js +4 -2
- package/lib/services/platform/add-platform-service.js +119 -51
- package/lib/services/platform/platform-validation-service.js +34 -22
- package/lib/services/platform/prepare-native-platform-service.js +65 -49
- package/lib/services/platform-environment-requirements.js +43 -27
- package/lib/services/platform-project-service-base.js +1 -0
- package/lib/services/platforms-data-service.js +1 -0
- package/lib/services/plugins-service.js +168 -125
- package/lib/services/prepare-data-service.js +1 -0
- package/lib/services/project-backup-service.js +5 -1
- package/lib/services/project-changes-service.js +152 -124
- package/lib/services/project-cleanup-service.js +79 -64
- package/lib/services/project-config-service.js +111 -73
- package/lib/services/project-data-service.js +154 -108
- package/lib/services/project-name-service.js +44 -28
- package/lib/services/project-service.js +113 -84
- package/lib/services/project-templates-service.js +68 -52
- package/lib/services/qr-code-terminal-service.js +1 -0
- package/lib/services/require-service.js +1 -0
- package/lib/services/start-service.js +60 -41
- package/lib/services/temp-service.js +22 -8
- package/lib/services/terminal-spinner-service.js +28 -15
- package/lib/services/test-execution-service.js +79 -59
- package/lib/services/test-initialization-service.js +6 -2
- package/lib/services/timeline-profiler-service.js +2 -1
- package/lib/services/user-settings-service.js +1 -0
- package/lib/services/versions-service.js +140 -119
- package/lib/services/watch-ignore-list-service.js +1 -0
- package/lib/services/webpack/webpack-compiler-service.js +279 -215
- package/lib/services/xcconfig-service.js +21 -8
- package/lib/services/xcproj-service.js +1 -0
- package/lib/shared-event-bus.js +6 -0
- package/lib/sys-info.js +63 -45
- package/lib/tools/config-manipulation/config-transformer.js +21 -0
- package/lib/tools/node-modules/node-modules-builder.js +28 -16
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
- package/lib/yarn-package-manager.js +79 -59
- package/lib/yarn2-package-manager.js +82 -60
- package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
- package/node_modules/@npmcli/move-file/README.md +69 -0
- package/node_modules/@npmcli/move-file/lib/index.js +185 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
- package/node_modules/@npmcli/move-file/package.json +47 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +43 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/fs.realpath/LICENSE +43 -0
- package/node_modules/fs.realpath/README.md +33 -0
- package/node_modules/fs.realpath/index.js +66 -0
- package/node_modules/fs.realpath/old.js +303 -0
- package/node_modules/fs.realpath/package.json +26 -0
- package/node_modules/inflight/LICENSE +15 -0
- package/node_modules/inflight/README.md +37 -0
- package/node_modules/inflight/inflight.js +54 -0
- package/node_modules/inflight/package.json +29 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/once/LICENSE +15 -0
- package/node_modules/once/README.md +79 -0
- package/node_modules/once/once.js +42 -0
- package/node_modules/once/package.json +33 -0
- package/node_modules/path-is-absolute/index.js +20 -0
- package/node_modules/path-is-absolute/license +21 -0
- package/node_modules/path-is-absolute/package.json +43 -0
- package/node_modules/path-is-absolute/readme.md +59 -0
- package/node_modules/rimraf/LICENSE +15 -0
- package/node_modules/rimraf/README.md +101 -0
- package/node_modules/rimraf/bin.js +68 -0
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
- package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
- package/node_modules/rimraf/node_modules/glob/README.md +378 -0
- package/node_modules/rimraf/node_modules/glob/common.js +238 -0
- package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
- package/node_modules/rimraf/node_modules/glob/package.json +55 -0
- package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
- package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
- package/node_modules/rimraf/package.json +32 -0
- package/node_modules/rimraf/rimraf.js +360 -0
- package/node_modules/stringify-package/LICENSE +13 -0
- package/node_modules/stringify-package/README.md +55 -0
- package/node_modules/stringify-package/index.js +18 -0
- package/node_modules/stringify-package/package.json +38 -0
- package/node_modules/wrappy/LICENSE +15 -0
- package/node_modules/wrappy/README.md +36 -0
- package/node_modules/wrappy/package.json +29 -0
- package/node_modules/wrappy/wrappy.js +33 -0
- package/package.json +79 -64
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.LogcatHelper = void 0;
|
|
4
13
|
const byline = require("byline");
|
|
@@ -14,78 +23,87 @@ class LogcatHelper {
|
|
|
14
23
|
this.$devicesService = $devicesService;
|
|
15
24
|
this.mapDevicesLoggingData = Object.create(null);
|
|
16
25
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
this.mapDevicesLoggingData[deviceIdentifier]
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
start(options) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const deviceIdentifier = options.deviceIdentifier;
|
|
29
|
+
if (deviceIdentifier && !this.mapDevicesLoggingData[deviceIdentifier]) {
|
|
30
|
+
this.mapDevicesLoggingData[deviceIdentifier] = {
|
|
31
|
+
loggingProcess: null,
|
|
32
|
+
lineStream: null,
|
|
33
|
+
keepSingleProcess: options.keepSingleProcess,
|
|
34
|
+
appStartTrackingProcess: null,
|
|
35
|
+
rawLineStream: null,
|
|
36
|
+
};
|
|
37
|
+
const logcatStream = yield this.getLogcatStream(deviceIdentifier, options.pid);
|
|
38
|
+
const lineStream = byline(logcatStream.stdout);
|
|
39
|
+
this.mapDevicesLoggingData[deviceIdentifier].loggingProcess =
|
|
40
|
+
logcatStream;
|
|
41
|
+
this.mapDevicesLoggingData[deviceIdentifier].lineStream = lineStream;
|
|
42
|
+
logcatStream.stderr.on("data", (data) => {
|
|
43
|
+
this.$logger.trace("ADB logcat stderr: " + data.toString());
|
|
44
|
+
});
|
|
45
|
+
logcatStream.on("close", (code) => {
|
|
46
|
+
try {
|
|
47
|
+
this.forceStop(deviceIdentifier);
|
|
48
|
+
if (code !== 0) {
|
|
49
|
+
this.$logger.trace("ADB process exited with code " + code.toString());
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
// Ignore the error, the process is dead.
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
lineStream.on("data", (lineBuffer) => {
|
|
57
|
+
const lines = (lineBuffer.toString() || "").split("\n");
|
|
58
|
+
for (const line of lines) {
|
|
59
|
+
this.$deviceLogProvider.logData(line, this.$devicePlatformsConstants.Android, deviceIdentifier);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
const appStartTrackingStream = yield this.getAppStartTrackingLogcatStream(deviceIdentifier, options.appId);
|
|
63
|
+
this.mapDevicesLoggingData[deviceIdentifier].appStartTrackingProcess =
|
|
64
|
+
appStartTrackingStream;
|
|
65
|
+
const rawLineStream = byline(appStartTrackingStream.stdout);
|
|
66
|
+
this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
|
|
67
|
+
rawLineStream;
|
|
68
|
+
rawLineStream.on("data", (lineBuffer) => {
|
|
69
|
+
var _a, _b, _c, _d;
|
|
70
|
+
if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
|
|
71
|
+
return;
|
|
72
|
+
const lines = (lineBuffer.toString() || "").split("\n");
|
|
73
|
+
for (let line of lines) {
|
|
74
|
+
// 2024-06-26 16:43:22.286 630-659 ActivityManager system_server I Start proc 8854:org.nativescript.uitestsapp/u0a190 for next-top-activity {org.nativescript.uitestsapp/com.tns.NativeScriptActivity}
|
|
75
|
+
const startProc = /Start proc (?<pid>[0-9]+):(?<appId>.+?)\//.exec(line);
|
|
76
|
+
if (startProc &&
|
|
77
|
+
((_b = startProc.groups) === null || _b === void 0 ? void 0 : _b.appId) === options.appId &&
|
|
78
|
+
((_c = startProc.groups) === null || _c === void 0 ? void 0 : _c.pid) !== options.pid) {
|
|
79
|
+
this.forceStop(deviceIdentifier);
|
|
80
|
+
(_d = options.onAppRestarted) === null || _d === void 0 ? void 0 : _d.call(options);
|
|
81
|
+
}
|
|
40
82
|
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
dump(deviceIdentifier) {
|
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
|
|
90
|
+
const logcatDumpStream = yield adb.executeCommand(["logcat", "-d"], {
|
|
91
|
+
returnChildProcess: true,
|
|
44
92
|
});
|
|
45
|
-
lineStream
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
93
|
+
const lineStream = byline(logcatDumpStream.stdout);
|
|
94
|
+
lineStream.on("data", (line) => {
|
|
95
|
+
const lineText = line.toString();
|
|
96
|
+
this.$logger.trace(lineText);
|
|
50
97
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const rawLineStream = byline(appStartTrackingStream.stdout);
|
|
55
|
-
this.mapDevicesLoggingData[deviceIdentifier].rawLineStream =
|
|
56
|
-
rawLineStream;
|
|
57
|
-
rawLineStream.on("data", (lineBuffer) => {
|
|
58
|
-
var _a, _b, _c, _d;
|
|
59
|
-
if (!((_a = this.mapDevicesLoggingData[deviceIdentifier]) === null || _a === void 0 ? void 0 : _a.loggingProcess))
|
|
60
|
-
return;
|
|
61
|
-
const lines = (lineBuffer.toString() || "").split("\n");
|
|
62
|
-
for (let line of lines) {
|
|
63
|
-
const startProc = /Start proc (?<pid>[0-9]+):(?<appId>.+?)\//.exec(line);
|
|
64
|
-
if (startProc &&
|
|
65
|
-
((_b = startProc.groups) === null || _b === void 0 ? void 0 : _b.appId) === options.appId &&
|
|
66
|
-
((_c = startProc.groups) === null || _c === void 0 ? void 0 : _c.pid) !== options.pid) {
|
|
67
|
-
this.forceStop(deviceIdentifier);
|
|
68
|
-
(_d = options.onAppRestarted) === null || _d === void 0 ? void 0 : _d.call(options);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
98
|
+
logcatDumpStream.on("close", (code) => {
|
|
99
|
+
logcatDumpStream.removeAllListeners();
|
|
100
|
+
lineStream.removeAllListeners();
|
|
71
101
|
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
async dump(deviceIdentifier) {
|
|
75
|
-
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
|
|
76
|
-
const logcatDumpStream = await adb.executeCommand(["logcat", "-d"], {
|
|
77
|
-
returnChildProcess: true,
|
|
78
|
-
});
|
|
79
|
-
const lineStream = byline(logcatDumpStream.stdout);
|
|
80
|
-
lineStream.on("data", (line) => {
|
|
81
|
-
const lineText = line.toString();
|
|
82
|
-
this.$logger.trace(lineText);
|
|
83
|
-
});
|
|
84
|
-
logcatDumpStream.on("close", (code) => {
|
|
85
|
-
logcatDumpStream.removeAllListeners();
|
|
86
|
-
lineStream.removeAllListeners();
|
|
87
102
|
});
|
|
88
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Stops the logcat process for the specified device if keepSingleProcess is not passed on start
|
|
106
|
+
*/
|
|
89
107
|
stop(deviceIdentifier) {
|
|
90
108
|
if (this.mapDevicesLoggingData[deviceIdentifier] &&
|
|
91
109
|
!this.mapDevicesLoggingData[deviceIdentifier].keepSingleProcess) {
|
|
@@ -102,54 +120,68 @@ class LogcatHelper {
|
|
|
102
120
|
(_e = loggingData.lineStream) === null || _e === void 0 ? void 0 : _e.removeAllListeners();
|
|
103
121
|
delete this.mapDevicesLoggingData[deviceIdentifier];
|
|
104
122
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
123
|
+
/**
|
|
124
|
+
* @deprecated - we likely don't need this anymore, and can simplify the code...
|
|
125
|
+
*/
|
|
126
|
+
isLogcatPidSupported(deviceIdentifier) {
|
|
127
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
128
|
+
const device = yield this.$devicesService.getDevice(deviceIdentifier);
|
|
129
|
+
const minAndroidWithLogcatPidSupport = "7.0.0";
|
|
130
|
+
return (!!device.deviceInfo.version &&
|
|
131
|
+
semver.gte(semver.coerce(device.deviceInfo.version), minAndroidWithLogcatPidSupport));
|
|
132
|
+
});
|
|
110
133
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
"
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
logcatCommand.push(
|
|
134
|
+
getLogcatStream(deviceIdentifier, pid) {
|
|
135
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
const isLogcatPidSupported = yield this.isLogcatPidSupported(deviceIdentifier);
|
|
137
|
+
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
|
|
138
|
+
// -T 1 - shows only new logs after starting adb logcat
|
|
139
|
+
const logcatCommand = ["logcat", "-T", "1"];
|
|
140
|
+
const acceptedTags = [
|
|
141
|
+
"chromium",
|
|
142
|
+
'"Web Console"',
|
|
143
|
+
"JS",
|
|
144
|
+
"System.err",
|
|
145
|
+
"TNS.Native",
|
|
146
|
+
"TNS.Java",
|
|
147
|
+
];
|
|
148
|
+
if (pid && isLogcatPidSupported) {
|
|
149
|
+
logcatCommand.push(`--pid=${pid}`);
|
|
150
|
+
acceptedTags.forEach((tag) => {
|
|
151
|
+
// -s <tag> - shows only logs with the specified tag
|
|
152
|
+
logcatCommand.push("-s", tag);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
const logcatStream = yield adb.executeCommand(logcatCommand, {
|
|
156
|
+
returnChildProcess: true,
|
|
127
157
|
});
|
|
128
|
-
|
|
129
|
-
const logcatStream = await adb.executeCommand(logcatCommand, {
|
|
130
|
-
returnChildProcess: true,
|
|
158
|
+
return logcatStream;
|
|
131
159
|
});
|
|
132
|
-
return logcatStream;
|
|
133
160
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
161
|
+
getAppStartTrackingLogcatStream(deviceIdentifier, appId) {
|
|
162
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
163
|
+
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, { identifier: deviceIdentifier });
|
|
164
|
+
// -b system - shows the system buffer/logs only
|
|
165
|
+
// -T 1 - shows only new logs after starting adb logcat
|
|
166
|
+
const logcatCommand = [
|
|
167
|
+
`logcat`,
|
|
168
|
+
`-b`,
|
|
169
|
+
`system`,
|
|
170
|
+
`-T`,
|
|
171
|
+
`1`,
|
|
172
|
+
"-s",
|
|
173
|
+
"ActivityManager",
|
|
174
|
+
];
|
|
175
|
+
if (appId) {
|
|
176
|
+
logcatCommand.push(`--regex=Start.*${appId}`);
|
|
177
|
+
}
|
|
178
|
+
const appStartTrackingStream = yield adb.executeCommand(logcatCommand, {
|
|
179
|
+
returnChildProcess: true,
|
|
180
|
+
});
|
|
181
|
+
return appStartTrackingStream;
|
|
150
182
|
});
|
|
151
|
-
return appStartTrackingStream;
|
|
152
183
|
}
|
|
153
184
|
}
|
|
154
185
|
exports.LogcatHelper = LogcatHelper;
|
|
155
186
|
yok_1.injector.register("logcatHelper", LogcatHelper);
|
|
187
|
+
//# sourceMappingURL=logcat-helper.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.ApplicationManagerBase = void 0;
|
|
4
13
|
const events_1 = require("events");
|
|
@@ -12,102 +21,122 @@ class ApplicationManagerBase extends events_1.EventEmitter {
|
|
|
12
21
|
this.$deviceLogProvider = $deviceLogProvider;
|
|
13
22
|
this.lastAvailableDebuggableAppViews = {};
|
|
14
23
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
24
|
+
setTransferredAppFiles(files) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
yield this.$deviceLogProvider.setSourceFileLocation(file);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
19
30
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
reinstallApplication(appIdentifier, packageFilePath, buildData) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const isApplicationInstalled = yield this.isApplicationInstalled(appIdentifier);
|
|
34
|
+
if (isApplicationInstalled && (buildData === null || buildData === void 0 ? void 0 : buildData.clean)) {
|
|
35
|
+
yield this.uninstallApplication(appIdentifier);
|
|
36
|
+
}
|
|
37
|
+
yield this.installApplication(packageFilePath, appIdentifier, buildData);
|
|
38
|
+
});
|
|
26
39
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
restartApplication(appData) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
yield this.stopApplication(appData);
|
|
43
|
+
yield this.startApplication(appData);
|
|
44
|
+
});
|
|
30
45
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
isApplicationInstalled(appIdentifier) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
yield this.checkForApplicationUpdates();
|
|
49
|
+
return _.includes(this.lastInstalledAppIdentifiers, appIdentifier);
|
|
50
|
+
});
|
|
34
51
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.checkForApplicationUpdatesPromise
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
finally {
|
|
54
|
-
this.checkForApplicationUpdatesPromise = null;
|
|
55
|
-
if (!isFulfilled) {
|
|
56
|
-
resolve();
|
|
52
|
+
checkForApplicationUpdates() {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
if (!this.checkForApplicationUpdatesPromise) {
|
|
55
|
+
this.checkForApplicationUpdatesPromise = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
let isFulfilled = false;
|
|
57
|
+
// As this method is called on 500ms, but it's execution may last much longer
|
|
58
|
+
// use locking, so the next executions will not get into the body, while the first one is still working.
|
|
59
|
+
// In case we do not break the next executions, we'll report each app as newly installed several times.
|
|
60
|
+
try {
|
|
61
|
+
const currentlyInstalledAppIdentifiers = yield this.getInstalledApplications();
|
|
62
|
+
const previouslyInstalledAppIdentifiers = this.lastInstalledAppIdentifiers || [];
|
|
63
|
+
const newAppIdentifiers = _.difference(currentlyInstalledAppIdentifiers, previouslyInstalledAppIdentifiers);
|
|
64
|
+
const removedAppIdentifiers = _.difference(previouslyInstalledAppIdentifiers, currentlyInstalledAppIdentifiers);
|
|
65
|
+
this.lastInstalledAppIdentifiers = currentlyInstalledAppIdentifiers;
|
|
66
|
+
_.each(newAppIdentifiers, (appIdentifier) => this.emit("applicationInstalled", appIdentifier));
|
|
67
|
+
_.each(removedAppIdentifiers, (appIdentifier) => this.emit("applicationUninstalled", appIdentifier));
|
|
68
|
+
yield this.checkForAvailableDebuggableAppsChanges();
|
|
57
69
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
async checkForAvailableDebuggableAppsChanges() {
|
|
72
|
-
const currentlyAvailableDebuggableApps = await this.getDebuggableApps();
|
|
73
|
-
const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
|
|
74
|
-
const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
|
|
75
|
-
const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
|
|
76
|
-
this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
|
|
77
|
-
_.each(newAvailableDebuggableApps, (appInfo) => {
|
|
78
|
-
this.emit("debuggableAppFound", appInfo);
|
|
70
|
+
catch (err) {
|
|
71
|
+
isFulfilled = true;
|
|
72
|
+
reject(err);
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
this.checkForApplicationUpdatesPromise = null;
|
|
76
|
+
if (!isFulfilled) {
|
|
77
|
+
resolve();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
return this.checkForApplicationUpdatesPromise;
|
|
79
83
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
+
}
|
|
85
|
+
tryStartApplication(appData) {
|
|
86
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
try {
|
|
88
|
+
yield this.startApplication(appData);
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
this.$logger.trace(`Unable to start application ${appData.appId} with name ${appData.projectName}. Error is: ${err.message}`);
|
|
84
92
|
}
|
|
85
93
|
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
|
|
97
|
-
});
|
|
98
|
-
_.each(newAvailableViews, (debugWebViewInfo) => {
|
|
99
|
-
this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
|
|
94
|
+
}
|
|
95
|
+
checkForAvailableDebuggableAppsChanges() {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const currentlyAvailableDebuggableApps = yield this.getDebuggableApps();
|
|
98
|
+
const previouslyAvailableDebuggableApps = this.lastAvailableDebuggableApps || [];
|
|
99
|
+
const newAvailableDebuggableApps = _.differenceBy(currentlyAvailableDebuggableApps, previouslyAvailableDebuggableApps, "appIdentifier");
|
|
100
|
+
const notAvailableAppsForDebugging = _.differenceBy(previouslyAvailableDebuggableApps, currentlyAvailableDebuggableApps, "appIdentifier");
|
|
101
|
+
this.lastAvailableDebuggableApps = currentlyAvailableDebuggableApps;
|
|
102
|
+
_.each(newAvailableDebuggableApps, (appInfo) => {
|
|
103
|
+
this.emit("debuggableAppFound", appInfo);
|
|
100
104
|
});
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
this.
|
|
105
|
+
_.each(notAvailableAppsForDebugging, (appInfo) => {
|
|
106
|
+
this.emit("debuggableAppLost", appInfo);
|
|
107
|
+
if (_.has(this.lastAvailableDebuggableAppViews, appInfo.appIdentifier)) {
|
|
108
|
+
// Prevent emitting debuggableViewLost when application cannot be debugged anymore.
|
|
109
|
+
delete this.lastAvailableDebuggableAppViews[appInfo.appIdentifier];
|
|
106
110
|
}
|
|
107
111
|
});
|
|
108
|
-
|
|
109
|
-
|
|
112
|
+
const cordovaDebuggableAppIdentifiers = _(currentlyAvailableDebuggableApps)
|
|
113
|
+
.filter((c) => c.framework === constants_1.TARGET_FRAMEWORK_IDENTIFIERS.Cordova)
|
|
114
|
+
.map((c) => c.appIdentifier)
|
|
115
|
+
.value();
|
|
116
|
+
const currentlyAvailableAppViews = yield this.getDebuggableAppViews(cordovaDebuggableAppIdentifiers);
|
|
117
|
+
_.each(currentlyAvailableAppViews, (currentlyAvailableViews, appIdentifier) => {
|
|
118
|
+
const previouslyAvailableViews = this.lastAvailableDebuggableAppViews[appIdentifier];
|
|
119
|
+
const newAvailableViews = _.differenceBy(currentlyAvailableViews, previouslyAvailableViews, "id");
|
|
120
|
+
const notAvailableViews = _.differenceBy(previouslyAvailableViews, currentlyAvailableViews, "id");
|
|
121
|
+
_.each(notAvailableViews, (debugWebViewInfo) => {
|
|
122
|
+
this.emit("debuggableViewLost", appIdentifier, debugWebViewInfo);
|
|
123
|
+
});
|
|
124
|
+
_.each(newAvailableViews, (debugWebViewInfo) => {
|
|
125
|
+
this.emit("debuggableViewFound", appIdentifier, debugWebViewInfo);
|
|
126
|
+
});
|
|
127
|
+
// Determine which of the views had changed since last check and raise debuggableViewChanged event for them:
|
|
128
|
+
const keptViews = _.differenceBy(currentlyAvailableViews, newAvailableViews, "id");
|
|
129
|
+
_.each(keptViews, (view) => {
|
|
130
|
+
const previousTimeViewInfo = _.find(previouslyAvailableViews, (previousView) => previousView.id === view.id);
|
|
131
|
+
if (!_.isEqual(view, previousTimeViewInfo)) {
|
|
132
|
+
this.emit("debuggableViewChanged", appIdentifier, view);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
this.lastAvailableDebuggableAppViews[appIdentifier] =
|
|
136
|
+
currentlyAvailableViews;
|
|
137
|
+
});
|
|
110
138
|
});
|
|
111
139
|
}
|
|
112
140
|
}
|
|
113
141
|
exports.ApplicationManagerBase = ApplicationManagerBase;
|
|
142
|
+
//# sourceMappingURL=application-manager-base.js.map
|
|
@@ -15,7 +15,10 @@ class DeviceEmitter extends events_1.EventEmitter {
|
|
|
15
15
|
this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_FOUND, (device) => {
|
|
16
16
|
this.emit(constants_1.DeviceDiscoveryEventNames.DEVICE_FOUND, device.deviceInfo);
|
|
17
17
|
this.attachApplicationChangedHandlers(device);
|
|
18
|
+
// await: Do not await as this will require to mark the lambda with async keyword, but there's no way to await the lambda itself.
|
|
19
|
+
/* tslint:disable:no-floating-promises */
|
|
18
20
|
device.openDeviceLogStream();
|
|
21
|
+
/* tslint:enable:no-floating-promises */
|
|
19
22
|
});
|
|
20
23
|
this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, (device) => {
|
|
21
24
|
this.emit(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, device.deviceInfo);
|
|
@@ -59,3 +62,4 @@ class DeviceEmitter extends events_1.EventEmitter {
|
|
|
59
62
|
}
|
|
60
63
|
exports.DeviceEmitter = DeviceEmitter;
|
|
61
64
|
yok_1.injector.register("deviceEmitter", DeviceEmitter);
|
|
65
|
+
//# sourceMappingURL=device-emitter.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.DeviceLogProviderBase = void 0;
|
|
4
13
|
const events_1 = require("events");
|
|
@@ -11,13 +20,15 @@ class DeviceLogProviderBase extends events_1.EventEmitter {
|
|
|
11
20
|
this.$logSourceMapService = $logSourceMapService;
|
|
12
21
|
this.devicesLogOptions = {};
|
|
13
22
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
setSourceFileLocation(pathToOriginalFile) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
try {
|
|
26
|
+
yield this.$logSourceMapService.setSourceMapConsumerForFile(pathToOriginalFile);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
this.$logger.trace("Error while trying to set source map file", err);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
21
32
|
}
|
|
22
33
|
setApplicationPidForDevice(deviceIdentifier, pid) {
|
|
23
34
|
this.setDeviceLogOptionsProperty(deviceIdentifier, (deviceLogOptions) => deviceLogOptions.applicationPid, pid);
|
|
@@ -63,3 +74,4 @@ class DeviceLogProviderBase extends events_1.EventEmitter {
|
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
76
|
exports.DeviceLogProviderBase = DeviceLogProviderBase;
|
|
77
|
+
//# sourceMappingURL=device-log-provider-base.js.map
|
|
@@ -36,6 +36,7 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
36
36
|
this.colorPoolIndex = 0;
|
|
37
37
|
}
|
|
38
38
|
logData(lineText, platform, deviceIdentifier) {
|
|
39
|
+
// console.log(lineText)
|
|
39
40
|
const loggingOptions = this.getDeviceLogOptionsForDevice(deviceIdentifier);
|
|
40
41
|
let data = this.$logFilter.filterData(platform, lineText, loggingOptions);
|
|
41
42
|
data = this.$logSourceMapService.replaceWithOriginalFileLocations(platform, data, loggingOptions);
|
|
@@ -53,6 +54,7 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
53
54
|
return this.deviceColorMap.get(deviceIdentifier);
|
|
54
55
|
}
|
|
55
56
|
const color = this.colorPool[this.colorPoolIndex];
|
|
57
|
+
// wrap around if we have no more colors in the pool
|
|
56
58
|
this.colorPoolIndex =
|
|
57
59
|
this.colorPoolIndex === this.colorPool.length - 1
|
|
58
60
|
? 0
|
|
@@ -62,10 +64,13 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
62
64
|
}
|
|
63
65
|
logDataCore(data, deviceIdentifier) {
|
|
64
66
|
var _a, _b, _c;
|
|
67
|
+
// todo: use config to set logger - --env.classicLogs is temporary!
|
|
65
68
|
if ("classicLogs" in ((_a = this.$options.env) !== null && _a !== void 0 ? _a : {})) {
|
|
69
|
+
// legacy logging
|
|
66
70
|
this.$logger.info(data, { [constants_2.LoggerConfigData.skipNewLine]: true });
|
|
67
71
|
return;
|
|
68
72
|
}
|
|
73
|
+
// todo: extract into an injectable printer/logger service
|
|
69
74
|
let shouldPrepend = false;
|
|
70
75
|
let splitIndexes = [];
|
|
71
76
|
const lines = data
|
|
@@ -120,7 +125,25 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
120
125
|
printLine(prefix, ...parts) {
|
|
121
126
|
const fullLine = parts.join(" ");
|
|
122
127
|
console.log(prefix, fullLine);
|
|
128
|
+
/**
|
|
129
|
+
* Note: Disabled
|
|
130
|
+
*
|
|
131
|
+
* This splits the output into lines that fit within the current
|
|
132
|
+
* terminal width, however this makes copying json objects that
|
|
133
|
+
* span across multiple lines difficult, as it introduces
|
|
134
|
+
* whitespace & line breaks
|
|
135
|
+
*/
|
|
136
|
+
// const maxWidth = process.stdout.columns - 2;
|
|
137
|
+
// if (!maxWidth || maxWidth < 10 || fullLine.length < maxWidth) {
|
|
138
|
+
// console.log(prefix, fullLine);
|
|
139
|
+
// } else {
|
|
140
|
+
// for (let i = 0; i < fullLine.length; i += maxWidth) {
|
|
141
|
+
// const part = fullLine.substring(i, i + maxWidth);
|
|
142
|
+
// console.log(prefix, part);
|
|
143
|
+
// }
|
|
144
|
+
// }
|
|
123
145
|
}
|
|
124
146
|
}
|
|
125
147
|
exports.DeviceLogProvider = DeviceLogProvider;
|
|
126
148
|
yok_1.injector.register("deviceLogProvider", DeviceLogProvider);
|
|
149
|
+
//# sourceMappingURL=device-log-provider.js.map
|