nativescript 8.9.0-dev.2 → 8.9.0-dev.3

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.
Files changed (403) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -32
  3. package/lib/base-package-manager.js +47 -71
  4. package/lib/bootstrap.js +1 -5
  5. package/lib/bun-package-manager.js +65 -104
  6. package/lib/color.js +2 -5
  7. package/lib/commands/add-platform.js +14 -31
  8. package/lib/commands/apple-login.js +18 -30
  9. package/lib/commands/appstore-list.js +34 -46
  10. package/lib/commands/appstore-upload.js +52 -68
  11. package/lib/commands/build.js +57 -90
  12. package/lib/commands/clean.js +161 -197
  13. package/lib/commands/command-base.js +14 -28
  14. package/lib/commands/config.js +48 -71
  15. package/lib/commands/create-project.js +210 -235
  16. package/lib/commands/debug.js +66 -93
  17. package/lib/commands/deploy.js +30 -47
  18. package/lib/commands/embedding/embed.js +33 -59
  19. package/lib/commands/extensibility/install-extension.js +5 -17
  20. package/lib/commands/extensibility/list-extensions.js +13 -25
  21. package/lib/commands/extensibility/uninstall-extension.js +4 -16
  22. package/lib/commands/fonts.js +30 -42
  23. package/lib/commands/generate-assets.js +13 -29
  24. package/lib/commands/generate-help.js +2 -14
  25. package/lib/commands/generate.js +12 -70
  26. package/lib/commands/info.js +2 -14
  27. package/lib/commands/install.js +34 -50
  28. package/lib/commands/list-platforms.js +14 -26
  29. package/lib/commands/migrate.js +15 -27
  30. package/lib/commands/native-add.js +23 -51
  31. package/lib/commands/platform-clean.js +19 -33
  32. package/lib/commands/plugin/add-plugin.js +12 -26
  33. package/lib/commands/plugin/build-plugin.js +31 -45
  34. package/lib/commands/plugin/create-plugin.js +110 -138
  35. package/lib/commands/plugin/list-plugins.js +22 -34
  36. package/lib/commands/plugin/remove-plugin.js +20 -35
  37. package/lib/commands/plugin/update-plugin.js +20 -34
  38. package/lib/commands/post-install.js +20 -39
  39. package/lib/commands/prepare.js +22 -39
  40. package/lib/commands/preview.js +49 -64
  41. package/lib/commands/remove-platform.js +7 -19
  42. package/lib/commands/resources/resources-update.js +13 -28
  43. package/lib/commands/run.js +55 -77
  44. package/lib/commands/setup.js +0 -1
  45. package/lib/commands/start.js +6 -20
  46. package/lib/commands/test-init.js +123 -138
  47. package/lib/commands/test.js +67 -97
  48. package/lib/commands/typings.js +126 -143
  49. package/lib/commands/update-platform.js +22 -40
  50. package/lib/commands/update.js +30 -45
  51. package/lib/commands/widget.js +390 -352
  52. package/lib/common/bootstrap.js +0 -1
  53. package/lib/common/child-process.js +53 -75
  54. package/lib/common/codeGeneration/code-entity.js +1 -2
  55. package/lib/common/codeGeneration/code-printer.js +1 -2
  56. package/lib/common/command-params.js +7 -19
  57. package/lib/common/commands/analytics.js +27 -43
  58. package/lib/common/commands/autocompletion.js +39 -59
  59. package/lib/common/commands/device/device-log-stream.js +12 -24
  60. package/lib/common/commands/device/get-file.js +22 -35
  61. package/lib/common/commands/device/list-applications.js +12 -24
  62. package/lib/common/commands/device/list-devices.js +72 -90
  63. package/lib/common/commands/device/list-files.js +23 -36
  64. package/lib/common/commands/device/put-file.js +22 -35
  65. package/lib/common/commands/device/run-application.js +12 -26
  66. package/lib/common/commands/device/stop-application.js +11 -23
  67. package/lib/common/commands/device/uninstall-application.js +6 -18
  68. package/lib/common/commands/doctor.js +2 -3
  69. package/lib/common/commands/generate-messages.js +17 -29
  70. package/lib/common/commands/help.js +20 -34
  71. package/lib/common/commands/package-manager-get.js +6 -18
  72. package/lib/common/commands/package-manager-set.js +9 -21
  73. package/lib/common/commands/post-install.js +2 -14
  74. package/lib/common/commands/preuninstall.js +24 -48
  75. package/lib/common/commands/proxy/proxy-base.js +8 -23
  76. package/lib/common/commands/proxy/proxy-clear.js +4 -16
  77. package/lib/common/commands/proxy/proxy-get.js +3 -15
  78. package/lib/common/commands/proxy/proxy-set.js +87 -101
  79. package/lib/common/common-lib.js +0 -1
  80. package/lib/common/constants.js +11 -22
  81. package/lib/common/decorators.js +10 -70
  82. package/lib/common/dispatchers.js +80 -106
  83. package/lib/common/errors.js +91 -116
  84. package/lib/common/file-system.js +108 -141
  85. package/lib/common/header.js +1 -5
  86. package/lib/common/helpers.js +152 -267
  87. package/lib/common/host-info.js +37 -54
  88. package/lib/common/http-client.js +93 -128
  89. package/lib/common/logger/appenders/cli-appender.js +1 -6
  90. package/lib/common/logger/appenders/emit-appender.js +1 -6
  91. package/lib/common/logger/layouts/cli-layout.js +1 -3
  92. package/lib/common/logger/logger.js +4 -9
  93. package/lib/common/messages/messages.js +0 -6
  94. package/lib/common/mobile/android/android-application-manager.js +122 -162
  95. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -2
  96. package/lib/common/mobile/android/android-debug-bridge.js +87 -118
  97. package/lib/common/mobile/android/android-device-file-system.js +98 -135
  98. package/lib/common/mobile/android/android-device-hash-service.js +50 -78
  99. package/lib/common/mobile/android/android-device.js +68 -93
  100. package/lib/common/mobile/android/android-emulator-services.js +105 -131
  101. package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
  102. package/lib/common/mobile/android/android-log-filter.js +1 -5
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -123
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -30
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -123
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -92
  107. package/lib/common/mobile/android/logcat-helper.js +108 -140
  108. package/lib/common/mobile/application-manager-base.js +84 -113
  109. package/lib/common/mobile/device-emitter.js +0 -4
  110. package/lib/common/mobile/device-log-emitter.js +0 -1
  111. package/lib/common/mobile/device-log-provider-base.js +7 -19
  112. package/lib/common/mobile/device-log-provider.js +0 -23
  113. package/lib/common/mobile/device-platforms-constants.js +0 -1
  114. package/lib/common/mobile/emulator-helper.js +0 -3
  115. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -111
  116. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -106
  117. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -146
  118. package/lib/common/mobile/ios/device/ios-device.js +20 -40
  119. package/lib/common/mobile/ios/ios-device-base.js +58 -82
  120. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
  121. package/lib/common/mobile/ios/ios-log-filter.js +0 -1
  122. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -96
  123. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -2
  124. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -95
  125. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -48
  126. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -63
  127. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -36
  128. package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
  129. package/lib/common/mobile/log-filter.js +0 -2
  130. package/lib/common/mobile/logging-levels.js +0 -1
  131. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -64
  132. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -35
  133. package/lib/common/mobile/mobile-core/android-process-service.js +143 -214
  134. package/lib/common/mobile/mobile-core/device-discovery.js +2 -14
  135. package/lib/common/mobile/mobile-core/devices-service.js +386 -505
  136. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -37
  137. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -65
  138. package/lib/common/mobile/mobile-helper.js +15 -27
  139. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -53
  140. package/lib/common/opener.js +2 -3
  141. package/lib/common/os-info.js +0 -1
  142. package/lib/common/plist-parser.js +0 -1
  143. package/lib/common/project-helper.js +0 -1
  144. package/lib/common/prompter.js +91 -114
  145. package/lib/common/queue.js +9 -21
  146. package/lib/common/resource-loader.js +0 -1
  147. package/lib/common/services/auto-completion-service.js +40 -65
  148. package/lib/common/services/cancellation.js +17 -29
  149. package/lib/common/services/commands-service.js +146 -180
  150. package/lib/common/services/help-service.js +133 -166
  151. package/lib/common/services/hooks-service.js +93 -121
  152. package/lib/common/services/ios-notification-service.js +21 -35
  153. package/lib/common/services/json-file-settings-service.js +52 -77
  154. package/lib/common/services/lock-service.js +35 -58
  155. package/lib/common/services/message-contract-generator.js +35 -47
  156. package/lib/common/services/messages-service.js +0 -1
  157. package/lib/common/services/micro-templating-service.js +4 -21
  158. package/lib/common/services/net-service.js +90 -110
  159. package/lib/common/services/project-files-manager.js +10 -28
  160. package/lib/common/services/project-files-provider-base.js +0 -1
  161. package/lib/common/services/proxy-service.js +13 -25
  162. package/lib/common/services/qr.js +13 -25
  163. package/lib/common/services/settings-service.js +1 -2
  164. package/lib/common/services/xcode-select-service.js +20 -36
  165. package/lib/common/utils.js +2 -3
  166. package/lib/common/validators/project-name-validator.js +1 -2
  167. package/lib/common/validators/validation-result.js +1 -2
  168. package/lib/common/verify-node-version.js +3 -11
  169. package/lib/common/yok.js +35 -69
  170. package/lib/config.js +36 -72
  171. package/lib/constants-provider.js +0 -1
  172. package/lib/constants.js +24 -77
  173. package/lib/controllers/build-controller.js +82 -100
  174. package/lib/controllers/debug-controller.js +107 -133
  175. package/lib/controllers/deploy-controller.js +15 -24
  176. package/lib/controllers/migrate-controller.js +723 -884
  177. package/lib/controllers/platform-controller.js +71 -94
  178. package/lib/controllers/prepare-controller.js +232 -274
  179. package/lib/controllers/run-controller.js +397 -427
  180. package/lib/controllers/update-controller-base.js +16 -30
  181. package/lib/controllers/update-controller.js +94 -130
  182. package/lib/data/build-data.js +0 -1
  183. package/lib/data/controller-data-base.js +0 -1
  184. package/lib/data/debug-data.js +0 -1
  185. package/lib/data/platform-data.js +0 -1
  186. package/lib/data/prepare-data.js +4 -2
  187. package/lib/data/run-data.js +0 -1
  188. package/lib/definitions/project.d.ts +24 -24
  189. package/lib/detached-processes/cleanup-js-subprocess.js +5 -20
  190. package/lib/detached-processes/cleanup-process.js +30 -43
  191. package/lib/detached-processes/file-log-service.js +1 -2
  192. package/lib/device-path-provider.js +23 -35
  193. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -171
  194. package/lib/device-sockets/ios/notification.js +1 -4
  195. package/lib/device-sockets/ios/socket-request-executor.js +24 -42
  196. package/lib/helpers/android-bundle-validator-helper.js +2 -3
  197. package/lib/helpers/deploy-command-helper.js +44 -50
  198. package/lib/helpers/key-command-helper.js +6 -17
  199. package/lib/helpers/livesync-command-helper.js +137 -155
  200. package/lib/helpers/network-connectivity-validator.js +6 -18
  201. package/lib/helpers/options-track-helper.js +7 -19
  202. package/lib/helpers/package-path-helper.js +0 -1
  203. package/lib/helpers/platform-command-helper.js +101 -127
  204. package/lib/helpers/version-validator-helper.js +0 -1
  205. package/lib/key-commands/bootstrap.js +2 -3
  206. package/lib/key-commands/index.js +154 -205
  207. package/lib/nativescript-cli-lib-bootstrap.js +0 -4
  208. package/lib/nativescript-cli-lib.js +0 -1
  209. package/lib/nativescript-cli.js +6 -24
  210. package/lib/node/pbxproj-dom-xcode.js +0 -1
  211. package/lib/node/xcode.js +0 -1
  212. package/lib/node-package-manager.js +81 -114
  213. package/lib/options.js +122 -156
  214. package/lib/package-installation-manager.js +130 -172
  215. package/lib/package-manager.js +63 -88
  216. package/lib/platform-command-param.js +4 -16
  217. package/lib/pnpm-package-manager.js +59 -81
  218. package/lib/project-data.js +1 -13
  219. package/lib/providers/project-files-provider.js +1 -2
  220. package/lib/resolvers/livesync-service-resolver.js +0 -1
  221. package/lib/services/analytics/analytics-broker-process.js +19 -32
  222. package/lib/services/analytics/analytics-broker.js +17 -31
  223. package/lib/services/analytics/analytics-service.js +170 -210
  224. package/lib/services/analytics/google-analytics-provider.js +43 -59
  225. package/lib/services/analytics-settings-service.js +15 -37
  226. package/lib/services/android/android-bundle-tool-service.js +43 -61
  227. package/lib/services/android/gradle-build-args-service.js +9 -23
  228. package/lib/services/android/gradle-build-service.js +22 -36
  229. package/lib/services/android/gradle-command-service.js +22 -36
  230. package/lib/services/android-device-debug-service.js +90 -123
  231. package/lib/services/android-plugin-build-service.js +205 -260
  232. package/lib/services/android-project-service.js +129 -241
  233. package/lib/services/android-resources-migration-service.js +51 -71
  234. package/lib/services/apple-portal/apple-portal-application-service.js +46 -64
  235. package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
  236. package/lib/services/apple-portal/apple-portal-session-service.js +197 -218
  237. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -61
  238. package/lib/services/assets-generation/assets-generation-service.js +103 -128
  239. package/lib/services/build-artifacts-service.js +10 -22
  240. package/lib/services/build-data-service.js +0 -1
  241. package/lib/services/build-info-file-service.js +20 -36
  242. package/lib/services/cleanup-service.js +48 -81
  243. package/lib/services/cocoapods-platform-manager.js +0 -9
  244. package/lib/services/cocoapods-service.js +112 -153
  245. package/lib/services/debug-data-service.js +0 -1
  246. package/lib/services/debug-service-base.js +0 -7
  247. package/lib/services/device/device-install-app-service.js +54 -72
  248. package/lib/services/doctor-service.js +101 -135
  249. package/lib/services/extensibility-service.js +81 -108
  250. package/lib/services/files-hash-service.js +26 -44
  251. package/lib/services/hmr-status-service.js +1 -3
  252. package/lib/services/info-service.js +0 -1
  253. package/lib/services/initialize-service.js +37 -54
  254. package/lib/services/ios/export-options-plist-service.js +38 -55
  255. package/lib/services/ios/ios-signing-service.js +168 -191
  256. package/lib/services/ios/spm-service.js +46 -70
  257. package/lib/services/ios/xcodebuild-args-service.js +77 -103
  258. package/lib/services/ios/xcodebuild-command-service.js +14 -26
  259. package/lib/services/ios/xcodebuild-service.js +52 -72
  260. package/lib/services/ios-debugger-port-service.js +24 -38
  261. package/lib/services/ios-device-debug-service.js +75 -103
  262. package/lib/services/ios-entitlements-service.js +31 -43
  263. package/lib/services/ios-extensions-service.js +18 -30
  264. package/lib/services/ios-log-filter.js +0 -20
  265. package/lib/services/ios-native-target-service.js +4 -6
  266. package/lib/services/ios-project-service.js +452 -603
  267. package/lib/services/ios-provision-service.js +108 -132
  268. package/lib/services/ios-watch-app-service.js +21 -33
  269. package/lib/services/ip-service.js +38 -55
  270. package/lib/services/itmstransporter-service.js +129 -153
  271. package/lib/services/karma-execution.js +0 -2
  272. package/lib/services/livesync/android-device-livesync-service-base.js +31 -49
  273. package/lib/services/livesync/android-device-livesync-service.js +120 -151
  274. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -155
  275. package/lib/services/livesync/android-livesync-service.js +14 -36
  276. package/lib/services/livesync/android-livesync-tool.js +90 -117
  277. package/lib/services/livesync/device-livesync-service-base.js +15 -30
  278. package/lib/services/livesync/ios-device-livesync-service.js +114 -150
  279. package/lib/services/livesync/ios-livesync-service.js +42 -60
  280. package/lib/services/livesync/livesync-socket.js +0 -1
  281. package/lib/services/livesync/platform-livesync-service-base.js +94 -124
  282. package/lib/services/livesync-process-data-service.js +0 -1
  283. package/lib/services/log-parser-service.js +1 -2
  284. package/lib/services/log-source-map-service.js +30 -56
  285. package/lib/services/marking-mode-service.js +17 -33
  286. package/lib/services/metadata-filtering-service.js +0 -1
  287. package/lib/services/npm-config-service.js +1 -5
  288. package/lib/services/pacote-service.js +49 -71
  289. package/lib/services/performance-service.js +2 -4
  290. package/lib/services/platform/add-platform-service.js +51 -119
  291. package/lib/services/platform/platform-validation-service.js +22 -34
  292. package/lib/services/platform/prepare-native-platform-service.js +49 -65
  293. package/lib/services/platform-environment-requirements.js +27 -43
  294. package/lib/services/platform-project-service-base.js +0 -1
  295. package/lib/services/platforms-data-service.js +0 -1
  296. package/lib/services/plugins-service.js +125 -168
  297. package/lib/services/prepare-data-service.js +0 -1
  298. package/lib/services/project-backup-service.js +1 -5
  299. package/lib/services/project-changes-service.js +124 -152
  300. package/lib/services/project-cleanup-service.js +64 -79
  301. package/lib/services/project-config-service.js +73 -102
  302. package/lib/services/project-data-service.js +108 -154
  303. package/lib/services/project-name-service.js +28 -44
  304. package/lib/services/project-service.js +84 -113
  305. package/lib/services/project-templates-service.js +52 -68
  306. package/lib/services/qr-code-terminal-service.js +0 -1
  307. package/lib/services/require-service.js +0 -1
  308. package/lib/services/start-service.js +41 -60
  309. package/lib/services/temp-service.js +8 -22
  310. package/lib/services/terminal-spinner-service.js +15 -28
  311. package/lib/services/test-execution-service.js +59 -79
  312. package/lib/services/test-initialization-service.js +2 -6
  313. package/lib/services/timeline-profiler-service.js +1 -2
  314. package/lib/services/user-settings-service.js +0 -1
  315. package/lib/services/versions-service.js +119 -140
  316. package/lib/services/watch-ignore-list-service.js +0 -1
  317. package/lib/services/webpack/webpack-compiler-service.js +215 -279
  318. package/lib/services/xcconfig-service.js +8 -21
  319. package/lib/services/xcproj-service.js +0 -1
  320. package/lib/shared-event-bus.js +0 -6
  321. package/lib/sys-info.js +45 -63
  322. package/lib/tools/config-manipulation/config-transformer.js +0 -12
  323. package/lib/tools/node-modules/node-modules-builder.js +16 -28
  324. package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
  325. package/lib/yarn-package-manager.js +59 -79
  326. package/lib/yarn2-package-manager.js +60 -82
  327. package/package.json +65 -80
  328. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  329. package/node_modules/@npmcli/move-file/README.md +0 -69
  330. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  331. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  342. package/node_modules/@npmcli/move-file/package.json +0 -47
  343. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  344. package/node_modules/balanced-match/LICENSE.md +0 -21
  345. package/node_modules/balanced-match/README.md +0 -97
  346. package/node_modules/balanced-match/index.js +0 -62
  347. package/node_modules/balanced-match/package.json +0 -48
  348. package/node_modules/concat-map/.travis.yml +0 -4
  349. package/node_modules/concat-map/LICENSE +0 -18
  350. package/node_modules/concat-map/README.markdown +0 -62
  351. package/node_modules/concat-map/example/map.js +0 -6
  352. package/node_modules/concat-map/index.js +0 -13
  353. package/node_modules/concat-map/package.json +0 -43
  354. package/node_modules/concat-map/test/map.js +0 -39
  355. package/node_modules/fs.realpath/LICENSE +0 -43
  356. package/node_modules/fs.realpath/README.md +0 -33
  357. package/node_modules/fs.realpath/index.js +0 -66
  358. package/node_modules/fs.realpath/old.js +0 -303
  359. package/node_modules/fs.realpath/package.json +0 -26
  360. package/node_modules/inflight/LICENSE +0 -15
  361. package/node_modules/inflight/README.md +0 -37
  362. package/node_modules/inflight/inflight.js +0 -54
  363. package/node_modules/inflight/package.json +0 -29
  364. package/node_modules/inherits/LICENSE +0 -16
  365. package/node_modules/inherits/README.md +0 -42
  366. package/node_modules/inherits/inherits.js +0 -9
  367. package/node_modules/inherits/inherits_browser.js +0 -27
  368. package/node_modules/inherits/package.json +0 -29
  369. package/node_modules/once/LICENSE +0 -15
  370. package/node_modules/once/README.md +0 -79
  371. package/node_modules/once/once.js +0 -42
  372. package/node_modules/once/package.json +0 -33
  373. package/node_modules/path-is-absolute/index.js +0 -20
  374. package/node_modules/path-is-absolute/license +0 -21
  375. package/node_modules/path-is-absolute/package.json +0 -43
  376. package/node_modules/path-is-absolute/readme.md +0 -59
  377. package/node_modules/rimraf/LICENSE +0 -15
  378. package/node_modules/rimraf/README.md +0 -101
  379. package/node_modules/rimraf/bin.js +0 -68
  380. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  381. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  382. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  383. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  384. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  385. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  386. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  387. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  388. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  389. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  390. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  391. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  392. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  393. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  394. package/node_modules/rimraf/package.json +0 -32
  395. package/node_modules/rimraf/rimraf.js +0 -360
  396. package/node_modules/stringify-package/LICENSE +0 -13
  397. package/node_modules/stringify-package/README.md +0 -55
  398. package/node_modules/stringify-package/index.js +0 -18
  399. package/node_modules/stringify-package/package.json +0 -38
  400. package/node_modules/wrappy/LICENSE +0 -15
  401. package/node_modules/wrappy/README.md +0 -36
  402. package/node_modules/wrappy/package.json +0 -29
  403. package/node_modules/wrappy/wrappy.js +0 -33
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.DevicesService = void 0;
19
10
  const assert = require("assert");
@@ -63,111 +54,101 @@ class DevicesService extends events_1.EventEmitter {
63
54
  this.$iOSSimulatorDiscovery,
64
55
  ];
65
56
  }
66
- pickSingleDevice(options) {
67
- return __awaiter(this, void 0, void 0, function* () {
68
- if (options.onlyDevices && options.onlyEmulators) {
69
- this.$errors.fail(constants_1.DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR);
70
- }
71
- if (options.deviceId) {
72
- const device = yield this.getDevice(options.deviceId);
73
- return device;
57
+ async pickSingleDevice(options) {
58
+ if (options.onlyDevices && options.onlyEmulators) {
59
+ this.$errors.fail(constants_1.DebugCommandErrors.UNABLE_TO_USE_FOR_DEVICE_AND_EMULATOR);
60
+ }
61
+ if (options.deviceId) {
62
+ const device = await this.getDevice(options.deviceId);
63
+ return device;
64
+ }
65
+ const availableDevicesAndEmulators = this.getDeviceInstances().filter((d) => d.deviceInfo.status === constants_2.CONNECTED_STATUS &&
66
+ (!this.platform ||
67
+ d.deviceInfo.platform.toLowerCase() === this.platform.toLowerCase()));
68
+ const selectedDevices = availableDevicesAndEmulators.filter((d) => options.onlyEmulators
69
+ ? d.isEmulator
70
+ : options.onlyDevices
71
+ ? !d.isEmulator
72
+ : true);
73
+ if (selectedDevices.length > 1) {
74
+ if ((0, helpers_1.isInteractive)()) {
75
+ const choices = selectedDevices.map((e) => `${e.deviceInfo.identifier} - ${e.deviceInfo.displayName}`);
76
+ const selectedDeviceString = await this.$prompter.promptForChoice("Select device for debugging", choices);
77
+ const selectedDevice = _.find(selectedDevices, (d) => `${d.deviceInfo.identifier} - ${d.deviceInfo.displayName}` ===
78
+ selectedDeviceString);
79
+ return selectedDevice;
74
80
  }
75
- // Now let's take data for each device:
76
- const availableDevicesAndEmulators = this.getDeviceInstances().filter((d) => d.deviceInfo.status === constants_2.CONNECTED_STATUS &&
77
- (!this.platform ||
78
- d.deviceInfo.platform.toLowerCase() === this.platform.toLowerCase()));
79
- const selectedDevices = availableDevicesAndEmulators.filter((d) => options.onlyEmulators
80
- ? d.isEmulator
81
- : options.onlyDevices
82
- ? !d.isEmulator
83
- : true);
84
- if (selectedDevices.length > 1) {
85
- if ((0, helpers_1.isInteractive)()) {
86
- const choices = selectedDevices.map((e) => `${e.deviceInfo.identifier} - ${e.deviceInfo.displayName}`);
87
- const selectedDeviceString = yield this.$prompter.promptForChoice("Select device for debugging", choices);
88
- const selectedDevice = _.find(selectedDevices, (d) => `${d.deviceInfo.identifier} - ${d.deviceInfo.displayName}` ===
89
- selectedDeviceString);
90
- return selectedDevice;
81
+ else {
82
+ const sortedInstances = _.sortBy(selectedDevices, (e) => e.deviceInfo.version);
83
+ const emulators = sortedInstances.filter((e) => e.isEmulator);
84
+ const devices = sortedInstances.filter((d) => !d.isEmulator);
85
+ let selectedInstance;
86
+ if (options.onlyEmulators || options.onlyDevices) {
87
+ selectedInstance = _.last(sortedInstances);
91
88
  }
92
89
  else {
93
- const sortedInstances = _.sortBy(selectedDevices, (e) => e.deviceInfo.version);
94
- const emulators = sortedInstances.filter((e) => e.isEmulator);
95
- const devices = sortedInstances.filter((d) => !d.isEmulator);
96
- let selectedInstance;
97
- if (options.onlyEmulators || options.onlyDevices) {
98
- // When --emulator or --forDevice is passed, the instances are already filtered
99
- // So we are sure we have exactly the type we need and we can safely return the last one (highest OS version).
100
- selectedInstance = _.last(sortedInstances);
90
+ if (emulators.length) {
91
+ selectedInstance = _.last(emulators);
101
92
  }
102
93
  else {
103
- if (emulators.length) {
104
- selectedInstance = _.last(emulators);
105
- }
106
- else {
107
- selectedInstance = _.last(devices);
108
- }
94
+ selectedInstance = _.last(devices);
109
95
  }
110
- this.$logger.warn(`Multiple devices/emulators found. Starting debugger on ${selectedInstance.deviceInfo.identifier}. ` +
111
- "If you want to debug on specific device/emulator, you can specify it with --device option.");
112
- return selectedInstance;
113
96
  }
97
+ this.$logger.warn(`Multiple devices/emulators found. Starting debugger on ${selectedInstance.deviceInfo.identifier}. ` +
98
+ "If you want to debug on specific device/emulator, you can specify it with --device option.");
99
+ return selectedInstance;
114
100
  }
115
- else if (selectedDevices.length === 1) {
116
- return _.head(selectedDevices);
117
- }
118
- this.$errors.fail(constants_1.DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS);
119
- });
101
+ }
102
+ else if (selectedDevices.length === 1) {
103
+ return _.head(selectedDevices);
104
+ }
105
+ this.$errors.fail(constants_1.DebugCommandErrors.NO_DEVICES_EMULATORS_FOUND_FOR_OPTIONS);
120
106
  }
121
- getEmulatorImages(options) {
122
- return __awaiter(this, void 0, void 0, function* () {
123
- const result = Object.create(null);
124
- if (this.$hostInfo.isDarwin &&
125
- (!options ||
126
- !options.platform ||
127
- this.$mobileHelper.isiOSPlatform(options.platform))) {
128
- result.ios = yield this.$iOSEmulatorServices.getEmulatorImages();
129
- }
130
- if (!options ||
107
+ async getEmulatorImages(options) {
108
+ const result = Object.create(null);
109
+ if (this.$hostInfo.isDarwin &&
110
+ (!options ||
131
111
  !options.platform ||
132
- this.$mobileHelper.isAndroidPlatform(options.platform)) {
133
- result.android = yield this.$androidEmulatorServices.getEmulatorImages();
134
- }
135
- return result;
136
- });
112
+ this.$mobileHelper.isiOSPlatform(options.platform))) {
113
+ result.ios = await this.$iOSEmulatorServices.getEmulatorImages();
114
+ }
115
+ if (!options ||
116
+ !options.platform ||
117
+ this.$mobileHelper.isAndroidPlatform(options.platform)) {
118
+ result.android = await this.$androidEmulatorServices.getEmulatorImages();
119
+ }
120
+ return result;
137
121
  }
138
- startEmulator(options) {
139
- return __awaiter(this, void 0, void 0, function* () {
140
- if (!options || (!options.imageIdentifier && !options.emulatorIdOrName)) {
141
- return ["Missing mandatory image identifier or name option."];
142
- }
143
- const availableEmulatorsOutput = yield this.getEmulatorImages({
144
- platform: options.platform,
145
- });
146
- const emulators = this.$emulatorHelper.getEmulatorsFromAvailableEmulatorsOutput(availableEmulatorsOutput);
147
- const errors = this.$emulatorHelper.getErrorsFromAvailableEmulatorsOutput(availableEmulatorsOutput);
148
- let emulator = null;
149
- if (options.imageIdentifier) {
150
- emulator = this.$emulatorHelper.getEmulatorByImageIdentifier(options.imageIdentifier, emulators);
151
- }
152
- else if (options.emulatorIdOrName) {
153
- emulator = this.$emulatorHelper.getEmulatorByIdOrName(options.emulatorIdOrName, emulators);
154
- }
155
- if (!emulator) {
156
- const additionalErrors = errors && errors.length ? errors : [];
157
- return [
158
- `Unable to find emulator with provided options: ${options}`,
159
- ...additionalErrors,
160
- ];
161
- }
162
- // emulator is already running
163
- if (emulator.status === constants.RUNNING_EMULATOR_STATUS) {
164
- return null;
165
- }
166
- options.emulator = emulator;
167
- const emulatorService = this.resolveEmulatorServices(emulator.platform);
168
- const result = yield emulatorService.startEmulator(options);
169
- return result.errors && result.errors.length ? result.errors : null;
122
+ async startEmulator(options) {
123
+ if (!options || (!options.imageIdentifier && !options.emulatorIdOrName)) {
124
+ return ["Missing mandatory image identifier or name option."];
125
+ }
126
+ const availableEmulatorsOutput = await this.getEmulatorImages({
127
+ platform: options.platform,
170
128
  });
129
+ const emulators = this.$emulatorHelper.getEmulatorsFromAvailableEmulatorsOutput(availableEmulatorsOutput);
130
+ const errors = this.$emulatorHelper.getErrorsFromAvailableEmulatorsOutput(availableEmulatorsOutput);
131
+ let emulator = null;
132
+ if (options.imageIdentifier) {
133
+ emulator = this.$emulatorHelper.getEmulatorByImageIdentifier(options.imageIdentifier, emulators);
134
+ }
135
+ else if (options.emulatorIdOrName) {
136
+ emulator = this.$emulatorHelper.getEmulatorByIdOrName(options.emulatorIdOrName, emulators);
137
+ }
138
+ if (!emulator) {
139
+ const additionalErrors = errors && errors.length ? errors : [];
140
+ return [
141
+ `Unable to find emulator with provided options: ${options}`,
142
+ ...additionalErrors,
143
+ ];
144
+ }
145
+ if (emulator.status === constants.RUNNING_EMULATOR_STATUS) {
146
+ return null;
147
+ }
148
+ options.emulator = emulator;
149
+ const emulatorService = this.resolveEmulatorServices(emulator.platform);
150
+ const result = await emulatorService.startEmulator(options);
151
+ return result.errors && result.errors.length ? result.errors : null;
171
152
  }
172
153
  get platform() {
173
154
  return this._platform;
@@ -192,11 +173,9 @@ class DevicesService extends events_1.EventEmitter {
192
173
  return !!(this.$mobileHelper.isiOSPlatform(device.deviceInfo.platform) &&
193
174
  device.isEmulator);
194
175
  }
195
- /* tslint:disable:no-unused-variable */
196
176
  setLogLevel(logLevel, deviceIdentifier) {
197
177
  this.$deviceLogProvider.setLogLevel(logLevel, deviceIdentifier);
198
178
  }
199
- /* tslint:enable:no-unused-variable */
200
179
  isAppInstalledOnDevices(deviceIdentifiers, appId, projectName, projectDir) {
201
180
  this.$logger.trace(`Called isInstalledOnDevices for identifiers ${deviceIdentifiers}. AppIdentifier is ${appId}.`);
202
181
  return _.map(deviceIdentifiers, (deviceIdentifier) => this.isApplicationInstalledOnDevice(deviceIdentifier, {
@@ -213,11 +192,9 @@ class DevicesService extends events_1.EventEmitter {
213
192
  return device;
214
193
  });
215
194
  }
216
- getInstalledApplications(deviceIdentifier) {
217
- return __awaiter(this, void 0, void 0, function* () {
218
- const device = yield this.getDevice(deviceIdentifier);
219
- return device.applicationManager.getInstalledApplications();
220
- });
195
+ async getInstalledApplications(deviceIdentifier) {
196
+ const device = await this.getDevice(deviceIdentifier);
197
+ return device.applicationManager.getInstalledApplications();
221
198
  }
222
199
  addDeviceDiscovery(deviceDiscovery) {
223
200
  this._otherDeviceDiscoveries.push(deviceDiscovery);
@@ -270,69 +247,62 @@ class DevicesService extends events_1.EventEmitter {
270
247
  delete this._availableEmulators[emulator.imageIdentifier];
271
248
  this.emit(constants.EmulatorDiscoveryNames.EMULATOR_IMAGE_LOST, emulator);
272
249
  }
273
- /**
274
- * Starts looking for devices. Any found devices are pushed to "_devices" variable.
275
- */
276
- detectCurrentlyAttachedDevices(deviceInitOpts) {
277
- return __awaiter(this, void 0, void 0, function* () {
278
- const options = this.getDeviceLookingOptions(deviceInitOpts);
279
- for (const deviceDiscovery of this._allDeviceDiscoveries) {
280
- try {
281
- yield deviceDiscovery.startLookingForDevices(options);
282
- }
283
- catch (err) {
284
- this.$logger.trace("Error while checking for devices.", err);
285
- }
286
- }
287
- });
288
- }
289
- detectCurrentlyAvailableEmulators() {
290
- return __awaiter(this, void 0, void 0, function* () {
291
- try {
292
- yield this.$androidEmulatorDiscovery.startLookingForDevices();
293
- }
294
- catch (err) {
295
- this.$logger.trace(`Error while checking for Android emulators. ${err}`);
296
- }
250
+ async detectCurrentlyAttachedDevices(deviceInitOpts) {
251
+ const options = this.getDeviceLookingOptions(deviceInitOpts);
252
+ for (const deviceDiscovery of this._allDeviceDiscoveries) {
297
253
  try {
298
- yield this.$iOSSimulatorDiscovery.checkForAvailableSimulators();
254
+ await deviceDiscovery.startLookingForDevices(options);
299
255
  }
300
256
  catch (err) {
301
- this.$logger.trace(`Error while checking for iOS simulators. ${err}`);
257
+ this.$logger.trace("Error while checking for devices.", err);
302
258
  }
303
- });
259
+ }
260
+ }
261
+ async detectCurrentlyAvailableEmulators() {
262
+ try {
263
+ await this.$androidEmulatorDiscovery.startLookingForDevices();
264
+ }
265
+ catch (err) {
266
+ this.$logger.trace(`Error while checking for Android emulators. ${err}`);
267
+ }
268
+ try {
269
+ await this.$iOSSimulatorDiscovery.checkForAvailableSimulators();
270
+ }
271
+ catch (err) {
272
+ this.$logger.trace(`Error while checking for iOS simulators. ${err}`);
273
+ }
304
274
  }
305
275
  startDeviceDetectionInterval(deviceInitOpts = {}) {
306
276
  if (!this.deviceDetectionInterval) {
307
277
  let isDeviceDetectionIntervalInProgress = false;
308
- this.deviceDetectionInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
278
+ this.deviceDetectionInterval = setInterval(async () => {
309
279
  if (isDeviceDetectionIntervalInProgress) {
310
280
  return;
311
281
  }
312
282
  isDeviceDetectionIntervalInProgress = true;
313
- yield this.detectCurrentlyAttachedDevices(deviceInitOpts);
283
+ await this.detectCurrentlyAttachedDevices(deviceInitOpts);
314
284
  try {
315
285
  const trustedDevices = _.filter(this._devices, (device) => device.deviceInfo.status === constants.CONNECTED_STATUS);
316
- yield (0, helpers_1.settlePromises)(_.map(trustedDevices, (device) => device.applicationManager.checkForApplicationUpdates()));
286
+ await (0, helpers_1.settlePromises)(_.map(trustedDevices, (device) => device.applicationManager.checkForApplicationUpdates()));
317
287
  }
318
288
  catch (err) {
319
289
  this.$logger.trace("Error checking for application updates on devices.", err);
320
290
  }
321
291
  isDeviceDetectionIntervalInProgress = false;
322
- }), deviceInitOpts.detectionInterval || DevicesService.DEVICE_LOOKING_INTERVAL);
292
+ }, deviceInitOpts.detectionInterval || DevicesService.DEVICE_LOOKING_INTERVAL);
323
293
  this.deviceDetectionInterval.unref();
324
294
  }
325
295
  }
326
296
  startEmulatorDetectionInterval(opts = {}) {
327
297
  let isEmulatorDetectionIntervalRunning = false;
328
- this.emulatorDetectionInterval = setInterval(() => __awaiter(this, void 0, void 0, function* () {
298
+ this.emulatorDetectionInterval = setInterval(async () => {
329
299
  if (isEmulatorDetectionIntervalRunning) {
330
300
  return;
331
301
  }
332
302
  isEmulatorDetectionIntervalRunning = true;
333
- yield this.detectCurrentlyAvailableEmulators();
303
+ await this.detectCurrentlyAvailableEmulators();
334
304
  isEmulatorDetectionIntervalRunning = false;
335
- }), opts.detectionInterval || DevicesService.EMULATOR_IMAGES_DETECTION_INTERVAL);
305
+ }, opts.detectionInterval || DevicesService.EMULATOR_IMAGES_DETECTION_INTERVAL);
336
306
  this.emulatorDetectionInterval.unref();
337
307
  }
338
308
  stopDeviceDetectionInterval() {
@@ -345,11 +315,6 @@ class DevicesService extends events_1.EventEmitter {
345
315
  clearInterval(this.emulatorDetectionInterval);
346
316
  }
347
317
  }
348
- /**
349
- * Returns device that matches an identifier.
350
- * The identifier is expected to be the same as the running device declares it (emulator-5554 for android or GUID for ios).
351
- * @param identifier running emulator or device identifier
352
- */
353
318
  getDeviceByIdentifier(identifier) {
354
319
  const searchedDevice = _.find(this.getDeviceInstances(), (device) => {
355
320
  if (this.$mobileHelper.isApplePlatform(device.deviceInfo.platform) &&
@@ -365,112 +330,81 @@ class DevicesService extends events_1.EventEmitter {
365
330
  }
366
331
  return searchedDevice;
367
332
  }
368
- /**
369
- * Starts looking for running devices. All found devices are pushed to _devices variable.
370
- */
371
- startLookingForDevices(deviceInitOpts) {
372
- return __awaiter(this, void 0, void 0, function* () {
373
- this.$logger.trace("startLookingForDevices; platform is %s", this._platform);
374
- if (this._platform) {
375
- return this.detectCurrentlyAttachedDevices(deviceInitOpts);
376
- }
377
- yield this.detectCurrentlyAttachedDevices(deviceInitOpts);
378
- yield this.detectCurrentlyAvailableEmulators();
379
- yield this.startDeviceDetectionInterval(deviceInitOpts);
380
- });
333
+ async startLookingForDevices(deviceInitOpts) {
334
+ this.$logger.trace("startLookingForDevices; platform is %s", this._platform);
335
+ if (this._platform) {
336
+ return this.detectCurrentlyAttachedDevices(deviceInitOpts);
337
+ }
338
+ await this.detectCurrentlyAttachedDevices(deviceInitOpts);
339
+ await this.detectCurrentlyAvailableEmulators();
340
+ await this.startDeviceDetectionInterval(deviceInitOpts);
381
341
  }
382
- /**
383
- * Returns device depending on the passed index.
384
- * The index refers to assigned number to listed devices by tns device command.
385
- * @param index assigned device number
386
- */
387
342
  getDeviceByIndex(index) {
388
343
  this.validateIndex(index - 1);
389
344
  return this.getDeviceInstances()[index - 1];
390
345
  }
391
- /**
392
- * Returns running device for specified --device <DeviceId>.
393
- * Method expects running devices.
394
- * @param deviceOption parameter passed by the user to --device flag. Can be name, identifier or imageIdentifier.
395
- */
396
- getDevice(deviceOption) {
397
- return __awaiter(this, void 0, void 0, function* () {
398
- let device = null;
399
- if (!device) {
400
- device = _.find(this.getDeviceInstances(), (d) => (d.deviceInfo.identifier &&
401
- d.deviceInfo.identifier === deviceOption) ||
402
- (d.deviceInfo.displayName &&
403
- d.deviceInfo.displayName === deviceOption) ||
404
- (d.deviceInfo.imageIdentifier &&
405
- d.deviceInfo.imageIdentifier === deviceOption));
406
- }
407
- if (!device && helpers.isNumberWithoutExponent(deviceOption)) {
408
- device = this.getDeviceByIndex(parseInt(deviceOption, 10));
409
- }
410
- if (!device) {
411
- this.$errors.fail(this.$messages.Devices
412
- .NotFoundDeviceByIdentifierErrorMessageWithIdentifier, deviceOption, this.$staticConfig.CLIENT_NAME.toLowerCase());
413
- }
414
- return device;
415
- });
346
+ async getDevice(deviceOption) {
347
+ let device = null;
348
+ if (!device) {
349
+ device = _.find(this.getDeviceInstances(), (d) => (d.deviceInfo.identifier &&
350
+ d.deviceInfo.identifier === deviceOption) ||
351
+ (d.deviceInfo.displayName &&
352
+ d.deviceInfo.displayName === deviceOption) ||
353
+ (d.deviceInfo.imageIdentifier &&
354
+ d.deviceInfo.imageIdentifier === deviceOption));
355
+ }
356
+ if (!device && helpers.isNumberWithoutExponent(deviceOption)) {
357
+ device = this.getDeviceByIndex(parseInt(deviceOption, 10));
358
+ }
359
+ if (!device) {
360
+ this.$errors.fail(this.$messages.Devices
361
+ .NotFoundDeviceByIdentifierErrorMessageWithIdentifier, deviceOption, this.$staticConfig.CLIENT_NAME.toLowerCase());
362
+ }
363
+ return device;
416
364
  }
417
- /**
418
- * Method runs action for a --device (value), specified by the user.
419
- * @param action action to be executed if canExecute returns true
420
- * @param canExecute predicate to decide whether the command can be ran
421
- */
422
- executeOnDevice(action, canExecute) {
423
- return __awaiter(this, void 0, void 0, function* () {
424
- if (!canExecute || canExecute(this._device)) {
425
- return {
426
- deviceIdentifier: this._device.deviceInfo.identifier,
427
- result: yield action(this._device),
428
- };
429
- }
430
- });
365
+ async executeOnDevice(action, canExecute) {
366
+ if (!canExecute || canExecute(this._device)) {
367
+ return {
368
+ deviceIdentifier: this._device.deviceInfo.identifier,
369
+ result: await action(this._device),
370
+ };
371
+ }
431
372
  }
432
- /**
433
- * Executes passed action for each found device.
434
- * @param action action to be executed if canExecute returns true
435
- * @param canExecute predicate to decide whether the command can be ran
436
- */
437
- executeOnAllConnectedDevices(action, canExecute) {
438
- return __awaiter(this, void 0, void 0, function* () {
439
- const devices = this.filterDevicesByPlatform();
440
- const sortedDevices = _.sortBy(devices, (device) => device.deviceInfo.platform);
441
- const result = [];
442
- const errors = [];
443
- for (const device of sortedDevices) {
444
- try {
445
- if (!canExecute || canExecute(device)) {
446
- result.push({
447
- deviceIdentifier: device.deviceInfo.identifier,
448
- result: yield action(device),
449
- });
450
- }
451
- }
452
- catch (err) {
453
- err.deviceIdentifier = device.deviceInfo.identifier;
454
- this.$logger.trace(`Error while executing action on device ${device.deviceInfo.identifier}. The error is`, err);
455
- errors.push(err);
373
+ async executeOnAllConnectedDevices(action, canExecute) {
374
+ const devices = this.filterDevicesByPlatform();
375
+ const sortedDevices = _.sortBy(devices, (device) => device.deviceInfo.platform);
376
+ const result = [];
377
+ const errors = [];
378
+ for (const device of sortedDevices) {
379
+ try {
380
+ if (!canExecute || canExecute(device)) {
381
+ result.push({
382
+ deviceIdentifier: device.deviceInfo.identifier,
383
+ result: await action(device),
384
+ });
456
385
  }
457
386
  }
458
- if (errors.length) {
459
- let preErrorMsg = "";
460
- if (errors.length > 1) {
461
- preErrorMsg = "Multiple errors were thrown:" + os_1.EOL;
462
- }
463
- const errorMessage = `${preErrorMsg}${errors
464
- .map((e) => e.message || e)
465
- .join(os_1.EOL)}`;
466
- this.$errors.fail(errorMessage);
387
+ catch (err) {
388
+ err.deviceIdentifier = device.deviceInfo.identifier;
389
+ this.$logger.trace(`Error while executing action on device ${device.deviceInfo.identifier}. The error is`, err);
390
+ errors.push(err);
467
391
  }
468
- return result;
469
- });
392
+ }
393
+ if (errors.length) {
394
+ let preErrorMsg = "";
395
+ if (errors.length > 1) {
396
+ preErrorMsg = "Multiple errors were thrown:" + os_1.EOL;
397
+ }
398
+ const errorMessage = `${preErrorMsg}${errors
399
+ .map((e) => e.message || e)
400
+ .join(os_1.EOL)}`;
401
+ this.$errors.fail(errorMessage);
402
+ }
403
+ return result;
470
404
  }
471
405
  deployOnDevices(deviceIdentifiers, packagePath, appId, projectName, projectDir) {
472
406
  this.$logger.trace(`Called deployOnDevices for identifiers ${deviceIdentifiers} for packageFile: ${packagePath}. Application identifier is ${appId}. Project Name is: ${projectName}`);
473
- return _.map(deviceIdentifiers, (deviceIdentifier) => __awaiter(this, void 0, void 0, function* () {
407
+ return _.map(deviceIdentifiers, async (deviceIdentifier) => {
474
408
  const device = this.getDeviceByIdentifier(deviceIdentifier);
475
409
  let identifier;
476
410
  if (typeof appId === "string") {
@@ -485,141 +419,110 @@ class DevicesService extends events_1.EventEmitter {
485
419
  projectName,
486
420
  projectDir,
487
421
  });
488
- }));
422
+ });
489
423
  }
490
- /**
491
- * Runs the passed action if the predicate "canExecute" returns true
492
- * @param action action to be executed if canExecute returns true.
493
- * @param canExecute predicate to decide whether the command can be ran
494
- * @param options all possible options that can be passed to the command.
495
- */
496
- execute(action, canExecute, options) {
497
- return __awaiter(this, void 0, void 0, function* () {
498
- assert.ok(this._isInitialized, "Devices services not initialized!");
499
- if (this.hasDevices) {
500
- if (this.$hostInfo.isDarwin &&
501
- this._platform &&
502
- this.$mobileHelper.isiOSPlatform(this._platform) &&
503
- this.$options.emulator &&
504
- !this.isOnlyiOSSimultorRunning()) {
505
- // Executes the command only on iOS simulator
506
- const originalCanExecute = canExecute;
507
- canExecute = (dev) => this.isiOSSimulator(dev) &&
508
- (!originalCanExecute || !!originalCanExecute(dev));
509
- }
510
- return this.executeCore(action, canExecute);
424
+ async execute(action, canExecute, options) {
425
+ assert.ok(this._isInitialized, "Devices services not initialized!");
426
+ if (this.hasDevices) {
427
+ if (this.$hostInfo.isDarwin &&
428
+ this._platform &&
429
+ this.$mobileHelper.isiOSPlatform(this._platform) &&
430
+ this.$options.emulator &&
431
+ !this.isOnlyiOSSimultorRunning()) {
432
+ const originalCanExecute = canExecute;
433
+ canExecute = (dev) => this.isiOSSimulator(dev) &&
434
+ (!originalCanExecute || !!originalCanExecute(dev));
435
+ }
436
+ return this.executeCore(action, canExecute);
437
+ }
438
+ else {
439
+ const message = constants.ERROR_NO_DEVICES;
440
+ if (options && options.allowNoDevices) {
441
+ this.$logger.info(message);
511
442
  }
512
443
  else {
513
- const message = constants.ERROR_NO_DEVICES;
514
- if (options && options.allowNoDevices) {
515
- this.$logger.info(message);
444
+ if (!this.$hostInfo.isDarwin &&
445
+ this._platform &&
446
+ this.$mobileHelper.isiOSPlatform(this._platform)) {
447
+ this.$errors.fail(message);
516
448
  }
517
449
  else {
518
- if (!this.$hostInfo.isDarwin &&
519
- this._platform &&
520
- this.$mobileHelper.isiOSPlatform(this._platform)) {
521
- this.$errors.fail(message);
522
- }
523
- else {
524
- return this.executeCore(action, canExecute);
525
- }
450
+ return this.executeCore(action, canExecute);
526
451
  }
527
452
  }
528
- });
453
+ }
529
454
  }
530
- /**
531
- * Starts emulator or simulator if necessary depending on --device or --emulator flags.
532
- * If no options are passed runs default emulator/simulator if no devices are connected.
533
- * @param deviceInitOpts mainly contains information about --emulator and --deviceId flags.
534
- */
535
- startEmulatorIfNecessary(deviceInitOpts) {
536
- return __awaiter(this, void 0, void 0, function* () {
537
- if (deviceInitOpts && deviceInitOpts.deviceId && deviceInitOpts.emulator) {
538
- this.$errors.fail(`--device and --emulator are incompatible options.
455
+ async startEmulatorIfNecessary(deviceInitOpts) {
456
+ if (deviceInitOpts && deviceInitOpts.deviceId && deviceInitOpts.emulator) {
457
+ this.$errors.fail(`--device and --emulator are incompatible options.
539
458
  If you are trying to run on specific emulator, use "${this.$staticConfig.CLIENT_NAME} run --device <DeviceID>`);
459
+ }
460
+ if (deviceInitOpts &&
461
+ deviceInitOpts.platform &&
462
+ !deviceInitOpts.skipEmulatorStart) {
463
+ this._platform = deviceInitOpts.platform;
464
+ try {
465
+ await this.startLookingForDevices(deviceInitOpts);
540
466
  }
541
- if (deviceInitOpts &&
542
- deviceInitOpts.platform &&
543
- !deviceInitOpts.skipEmulatorStart) {
544
- // are there any running devices
545
- this._platform = deviceInitOpts.platform;
546
- try {
547
- yield this.startLookingForDevices(deviceInitOpts);
548
- }
549
- catch (err) {
550
- this.$logger.trace("Error while checking for devices.", err);
551
- }
552
- const deviceInstances = this.getDeviceInstances();
553
- if (!deviceInitOpts.deviceId && _.isEmpty(deviceInstances)) {
554
- if (!this.$hostInfo.isDarwin &&
555
- this.$mobileHelper.isApplePlatform(deviceInitOpts.platform)) {
556
- this.$errors.fail(constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR);
557
- }
558
- }
559
- try {
560
- yield this._startEmulatorIfNecessary(deviceInitOpts);
561
- }
562
- catch (err) {
563
- const errorMessage = this.getEmulatorError(err, deviceInitOpts.platform);
564
- this.$errors.fail(errorMessage);
565
- }
467
+ catch (err) {
468
+ this.$logger.trace("Error while checking for devices.", err);
566
469
  }
567
- });
568
- }
569
- _startEmulatorIfNecessary(data) {
570
- return __awaiter(this, void 0, void 0, function* () {
571
470
  const deviceInstances = this.getDeviceInstances();
572
- //if no --device is passed and no devices are found, the default emulator is started
573
- if (!data.deviceId && _.isEmpty(deviceInstances)) {
574
- return this.startEmulatorCore(data);
575
- }
576
- //check if --device(value) is running, if it's not or it's not the same as is specified, start with name from --device(value)
577
- if (data.deviceId) {
578
- if (!helpers.isNumberWithoutExponent(data.deviceId)) {
579
- const activeDeviceInstance = _.find(deviceInstances, (device) => device.deviceInfo.identifier === data.deviceId);
580
- if (!activeDeviceInstance) {
581
- return this.startEmulatorCore(data);
582
- }
471
+ if (!deviceInitOpts.deviceId && _.isEmpty(deviceInstances)) {
472
+ if (!this.$hostInfo.isDarwin &&
473
+ this.$mobileHelper.isApplePlatform(deviceInitOpts.platform)) {
474
+ this.$errors.fail(constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR);
583
475
  }
584
476
  }
585
- // make sure if the target platform is visionOS we don't try to run it on an already running iOS simulator...
586
- if (data.platform === this.$devicePlatformsConstants.visionOS &&
587
- deviceInstances.length) {
588
- const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform === this.$devicePlatformsConstants.visionOS);
589
- if (!runningDeviceInstance) {
590
- return this.startEmulatorCore(data);
591
- }
477
+ try {
478
+ await this._startEmulatorIfNecessary(deviceInitOpts);
592
479
  }
593
- // if only emulator flag is passed and no other emulators are running, start default emulator
594
- if (data.emulator && deviceInstances.length) {
595
- const runningDeviceInstance = _.some(deviceInstances, (value) => value.isEmulator);
596
- if (!runningDeviceInstance) {
597
- return this.startEmulatorCore(data);
598
- }
480
+ catch (err) {
481
+ const errorMessage = this.getEmulatorError(err, deviceInitOpts.platform);
482
+ this.$errors.fail(errorMessage);
599
483
  }
600
- });
484
+ }
601
485
  }
602
- /**
603
- * Takes care of gathering information about all running devices.
604
- * Sets "_isInitialized" to true after infomation is present.
605
- * Method expects running devices.
606
- * @param data mainly contains information about --emulator and --deviceId flags.
607
- */
608
- initialize(data) {
609
- return __awaiter(this, void 0, void 0, function* () {
610
- if (!this._deviceInitializePromise) {
611
- this._deviceInitializePromise = this.initializeCore(data);
486
+ async _startEmulatorIfNecessary(data) {
487
+ const deviceInstances = this.getDeviceInstances();
488
+ if (!data.deviceId && _.isEmpty(deviceInstances)) {
489
+ return this.startEmulatorCore(data);
490
+ }
491
+ if (data.deviceId) {
492
+ if (!helpers.isNumberWithoutExponent(data.deviceId)) {
493
+ const activeDeviceInstance = _.find(deviceInstances, (device) => device.deviceInfo.identifier === data.deviceId);
494
+ if (!activeDeviceInstance) {
495
+ return this.startEmulatorCore(data);
496
+ }
612
497
  }
613
- try {
614
- yield this._deviceInitializePromise;
498
+ }
499
+ if (data.platform === this.$devicePlatformsConstants.visionOS &&
500
+ deviceInstances.length) {
501
+ const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform ===
502
+ this.$devicePlatformsConstants.visionOS);
503
+ if (!runningDeviceInstance) {
504
+ return this.startEmulatorCore(data);
615
505
  }
616
- catch (err) {
617
- // In case the initalization fails, we want to allow calling `initlialize` again with other arguments for example, so remove the cached promise value.
618
- this.$logger.trace(`Error while initializing devicesService: ${err}`);
619
- this._deviceInitializePromise = null;
620
- throw err;
506
+ }
507
+ if (data.emulator && deviceInstances.length) {
508
+ const runningDeviceInstance = _.some(deviceInstances, (value) => value.isEmulator);
509
+ if (!runningDeviceInstance) {
510
+ return this.startEmulatorCore(data);
621
511
  }
622
- });
512
+ }
513
+ }
514
+ async initialize(data) {
515
+ if (!this._deviceInitializePromise) {
516
+ this._deviceInitializePromise = this.initializeCore(data);
517
+ }
518
+ try {
519
+ await this._deviceInitializePromise;
520
+ }
521
+ catch (err) {
522
+ this.$logger.trace(`Error while initializing devicesService: ${err}`);
523
+ this._deviceInitializePromise = null;
524
+ throw err;
525
+ }
623
526
  }
624
527
  getPlatformsFromDeviceDescriptors(deviceDescriptors) {
625
528
  const platforms = _(deviceDescriptors)
@@ -629,93 +532,89 @@ class DevicesService extends events_1.EventEmitter {
629
532
  .value();
630
533
  return platforms;
631
534
  }
632
- initializeCore(deviceInitOpts) {
633
- return __awaiter(this, void 0, void 0, function* () {
634
- if (this._isInitialized) {
635
- return;
636
- }
637
- if (!this.$options.json) {
638
- this.$logger.info("Searching for devices...");
639
- }
640
- deviceInitOpts = deviceInitOpts || {};
641
- this._data = deviceInitOpts;
642
- if (!deviceInitOpts.skipEmulatorStart) {
643
- // TODO: Remove from here as it calls startLookingForDevices, so we double the calls to specific device detection services
644
- yield this.startEmulatorIfNecessary(deviceInitOpts);
645
- }
646
- const platform = deviceInitOpts.platform;
647
- const deviceOption = deviceInitOpts.deviceId;
648
- const deviceLookingOptions = {
649
- emulator: deviceInitOpts.emulator,
650
- platform: deviceInitOpts.platform,
651
- shouldReturnImmediateResult: deviceInitOpts.shouldReturnImmediateResult,
652
- detectionInterval: deviceInitOpts.detectionInterval,
653
- fullDiscovery: deviceInitOpts.fullDiscovery,
654
- };
655
- if (platform && deviceOption) {
656
- this._platform = this.$mobileHelper.validatePlatformName(deviceInitOpts.platform);
657
- yield this.startLookingForDevices(deviceLookingOptions);
658
- this._device = yield this.getDevice(deviceOption);
659
- if (this._device.deviceInfo.platform !== this._platform) {
660
- this.$errors.fail(constants.ERROR_CANNOT_RESOLVE_DEVICE);
535
+ async initializeCore(deviceInitOpts) {
536
+ if (this._isInitialized) {
537
+ return;
538
+ }
539
+ if (!this.$options.json) {
540
+ this.$logger.info("Searching for devices...");
541
+ }
542
+ deviceInitOpts = deviceInitOpts || {};
543
+ this._data = deviceInitOpts;
544
+ if (!deviceInitOpts.skipEmulatorStart) {
545
+ await this.startEmulatorIfNecessary(deviceInitOpts);
546
+ }
547
+ const platform = deviceInitOpts.platform;
548
+ const deviceOption = deviceInitOpts.deviceId;
549
+ const deviceLookingOptions = {
550
+ emulator: deviceInitOpts.emulator,
551
+ platform: deviceInitOpts.platform,
552
+ shouldReturnImmediateResult: deviceInitOpts.shouldReturnImmediateResult,
553
+ detectionInterval: deviceInitOpts.detectionInterval,
554
+ fullDiscovery: deviceInitOpts.fullDiscovery,
555
+ };
556
+ if (platform && deviceOption) {
557
+ this._platform = this.$mobileHelper.validatePlatformName(deviceInitOpts.platform);
558
+ await this.startLookingForDevices(deviceLookingOptions);
559
+ this._device = await this.getDevice(deviceOption);
560
+ if (this._device.deviceInfo.platform !== this._platform) {
561
+ this.$errors.fail(constants.ERROR_CANNOT_RESOLVE_DEVICE);
562
+ }
563
+ this.$logger.warn("Your application will be deployed only on the device specified by the provided index or identifier.");
564
+ }
565
+ else if (!platform && deviceOption) {
566
+ await this.startLookingForDevices(deviceLookingOptions);
567
+ this._device = await this.getDevice(deviceOption);
568
+ this._platform = this._device.deviceInfo.platform;
569
+ }
570
+ else if (platform && !deviceOption) {
571
+ this._platform = this.$mobileHelper.validatePlatformName(platform);
572
+ await this.startLookingForDevices(deviceLookingOptions);
573
+ }
574
+ else {
575
+ if (deviceInitOpts.skipInferPlatform) {
576
+ if (deviceInitOpts.skipDeviceDetectionInterval) {
577
+ await this.detectCurrentlyAttachedDevices(deviceLookingOptions);
578
+ }
579
+ else {
580
+ deviceInitOpts.shouldReturnImmediateResult = true;
581
+ await this.startLookingForDevices(deviceLookingOptions);
661
582
  }
662
- this.$logger.warn("Your application will be deployed only on the device specified by the provided index or identifier.");
663
- }
664
- else if (!platform && deviceOption) {
665
- yield this.startLookingForDevices(deviceLookingOptions);
666
- this._device = yield this.getDevice(deviceOption);
667
- this._platform = this._device.deviceInfo.platform;
668
- }
669
- else if (platform && !deviceOption) {
670
- this._platform = this.$mobileHelper.validatePlatformName(platform);
671
- yield this.startLookingForDevices(deviceLookingOptions);
672
583
  }
673
584
  else {
674
- // platform and deviceId are not specified
675
- if (deviceInitOpts.skipInferPlatform) {
676
- if (deviceInitOpts.skipDeviceDetectionInterval) {
677
- yield this.detectCurrentlyAttachedDevices(deviceLookingOptions);
585
+ await this.startLookingForDevices(deviceLookingOptions);
586
+ const devices = this.getDeviceInstances();
587
+ const platforms = _(devices)
588
+ .map((device) => device.deviceInfo.platform)
589
+ .filter((pl) => {
590
+ try {
591
+ return !!this.$mobileHelper.validatePlatformName(pl);
678
592
  }
679
- else {
680
- deviceInitOpts.shouldReturnImmediateResult = true;
681
- yield this.startLookingForDevices(deviceLookingOptions);
593
+ catch (err) {
594
+ this.$logger.warn(err.message);
595
+ return null;
682
596
  }
597
+ })
598
+ .uniq()
599
+ .value();
600
+ if (platforms.length === 1) {
601
+ this._platform = platforms[0];
602
+ }
603
+ else if (platforms.length === 0) {
604
+ this.$errors.fail(constants.ERROR_NO_DEVICES);
683
605
  }
684
606
  else {
685
- yield this.startLookingForDevices(deviceLookingOptions);
686
- const devices = this.getDeviceInstances();
687
- const platforms = _(devices)
688
- .map((device) => device.deviceInfo.platform)
689
- .filter((pl) => {
690
- try {
691
- return !!this.$mobileHelper.validatePlatformName(pl);
692
- }
693
- catch (err) {
694
- this.$logger.warn(err.message);
695
- return null;
696
- }
697
- })
698
- .uniq()
699
- .value();
700
- if (platforms.length === 1) {
701
- this._platform = platforms[0];
702
- }
703
- else if (platforms.length === 0) {
704
- this.$errors.fail(constants.ERROR_NO_DEVICES);
705
- }
706
- else {
707
- this.$errors.fail("Multiple device platforms detected (%s). Specify platform or device on command line.", helpers.formatListOfNames(platforms, "and"));
708
- }
607
+ this.$errors.fail("Multiple device platforms detected (%s). Specify platform or device on command line.", helpers.formatListOfNames(platforms, "and"));
709
608
  }
710
609
  }
711
- if (!this.$hostInfo.isDarwin &&
712
- this._platform &&
713
- this.$mobileHelper.isiOSPlatform(this._platform) &&
714
- this.$options.emulator) {
715
- this.$errors.fail(constants.ERROR_CANT_USE_SIMULATOR);
716
- }
717
- this._isInitialized = true;
718
- });
610
+ }
611
+ if (!this.$hostInfo.isDarwin &&
612
+ this._platform &&
613
+ this.$mobileHelper.isiOSPlatform(this._platform) &&
614
+ this.$options.emulator) {
615
+ this.$errors.fail(constants.ERROR_CANT_USE_SIMULATOR);
616
+ }
617
+ this._isInitialized = true;
719
618
  }
720
619
  get hasDevices() {
721
620
  if (!this._platform) {
@@ -735,30 +634,24 @@ class DevicesService extends events_1.EventEmitter {
735
634
  getDeviceByDeviceOption() {
736
635
  return this._device;
737
636
  }
738
- mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework) {
739
- return __awaiter(this, void 0, void 0, function* () {
740
- return this.$androidProcessService.mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework);
741
- });
637
+ async mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework) {
638
+ return this.$androidProcessService.mapAbstractToTcpPort(deviceIdentifier, appIdentifier, framework);
742
639
  }
743
640
  getDebuggableApps(deviceIdentifiers) {
744
641
  return _.map(deviceIdentifiers, (deviceIdentifier) => this.getDebuggableAppsCore(deviceIdentifier));
745
642
  }
746
- getDebuggableViews(deviceIdentifier, appIdentifier) {
747
- return __awaiter(this, void 0, void 0, function* () {
748
- const device = this.getDeviceByIdentifier(deviceIdentifier), debuggableViewsPerApp = yield device.applicationManager.getDebuggableAppViews([appIdentifier]);
749
- return debuggableViewsPerApp && debuggableViewsPerApp[appIdentifier];
750
- });
643
+ async getDebuggableViews(deviceIdentifier, appIdentifier) {
644
+ const device = this.getDeviceByIdentifier(deviceIdentifier), debuggableViewsPerApp = await device.applicationManager.getDebuggableAppViews([appIdentifier]);
645
+ return debuggableViewsPerApp && debuggableViewsPerApp[appIdentifier];
751
646
  }
752
647
  getDebuggableAppsCore(deviceIdentifier) {
753
648
  const device = this.getDeviceByIdentifier(deviceIdentifier);
754
649
  return device.applicationManager.getDebuggableApps();
755
650
  }
756
- deployOnDevice(device, appData) {
757
- return __awaiter(this, void 0, void 0, function* () {
758
- yield device.applicationManager.reinstallApplication(appData.appId, appData.packagePath);
759
- this.$logger.info(`Successfully deployed on device with identifier '${device.deviceInfo.identifier}'.`);
760
- yield device.applicationManager.tryStartApplication(appData);
761
- });
651
+ async deployOnDevice(device, appData) {
652
+ await device.applicationManager.reinstallApplication(appData.appId, appData.packagePath);
653
+ this.$logger.info(`Successfully deployed on device with identifier '${device.deviceInfo.identifier}'.`);
654
+ await device.applicationManager.tryStartApplication(appData);
762
655
  }
763
656
  filterDevicesByPlatform() {
764
657
  return _.filter(this.getDeviceInstances(), (device) => {
@@ -786,63 +679,52 @@ class DevicesService extends events_1.EventEmitter {
786
679
  }
787
680
  return null;
788
681
  }
789
- /**
790
- * Starts emulator for platform and makes sure started devices/emulators/simulators are in _devices array before finishing.
791
- * @param platform (optional) platform to start emulator/simulator for
792
- * @param emulatorIdOrName (optional) emulator/simulator image identifier or name
793
- */
794
- startEmulatorCore(deviceInitOpts = {}) {
795
- return __awaiter(this, void 0, void 0, function* () {
796
- const { deviceId } = deviceInitOpts;
797
- const platform = deviceInitOpts.platform || this._platform;
798
- const emulatorServices = this.resolveEmulatorServices(platform);
799
- if (!emulatorServices) {
800
- this.$errors.fail("Unable to detect platform for which to start emulator.");
801
- }
802
- const result = yield emulatorServices.startEmulator({
803
- emulatorIdOrName: deviceId,
804
- imageIdentifier: deviceId,
805
- platform: platform,
806
- sdk: this._data && this._data.sdk,
807
- });
808
- if (result && result.errors && result.errors.length) {
809
- this.$errors.fail(result.errors.join("\n"));
810
- }
811
- const deviceLookingOptions = this.getDeviceLookingOptions(deviceInitOpts);
812
- if (this.$mobileHelper.isAndroidPlatform(platform)) {
813
- yield this.$androidDeviceDiscovery.startLookingForDevices(deviceLookingOptions);
814
- }
815
- else if (this.$mobileHelper.isiOSPlatform(platform) &&
816
- this.$hostInfo.isDarwin) {
817
- yield this.$iOSSimulatorDiscovery.startLookingForDevices(deviceLookingOptions);
818
- }
682
+ async startEmulatorCore(deviceInitOpts = {}) {
683
+ const { deviceId } = deviceInitOpts;
684
+ const platform = deviceInitOpts.platform || this._platform;
685
+ const emulatorServices = this.resolveEmulatorServices(platform);
686
+ if (!emulatorServices) {
687
+ this.$errors.fail("Unable to detect platform for which to start emulator.");
688
+ }
689
+ const result = await emulatorServices.startEmulator({
690
+ emulatorIdOrName: deviceId,
691
+ imageIdentifier: deviceId,
692
+ platform: platform,
693
+ sdk: this._data && this._data.sdk,
819
694
  });
695
+ if (result && result.errors && result.errors.length) {
696
+ this.$errors.fail(result.errors.join("\n"));
697
+ }
698
+ const deviceLookingOptions = this.getDeviceLookingOptions(deviceInitOpts);
699
+ if (this.$mobileHelper.isAndroidPlatform(platform)) {
700
+ await this.$androidDeviceDiscovery.startLookingForDevices(deviceLookingOptions);
701
+ }
702
+ else if (this.$mobileHelper.isiOSPlatform(platform) &&
703
+ this.$hostInfo.isDarwin) {
704
+ await this.$iOSSimulatorDiscovery.startLookingForDevices(deviceLookingOptions);
705
+ }
820
706
  }
821
- executeCore(action, canExecute) {
822
- return __awaiter(this, void 0, void 0, function* () {
823
- if (this._device) {
824
- return [yield this.executeOnDevice(action, canExecute)];
825
- }
826
- return this.executeOnAllConnectedDevices(action, canExecute);
827
- });
707
+ async executeCore(action, canExecute) {
708
+ if (this._device) {
709
+ return [await this.executeOnDevice(action, canExecute)];
710
+ }
711
+ return this.executeOnAllConnectedDevices(action, canExecute);
828
712
  }
829
- isApplicationInstalledOnDevice(deviceIdentifier, appData) {
830
- return __awaiter(this, void 0, void 0, function* () {
831
- let isInstalled = false;
832
- const device = this.getDeviceByIdentifier(deviceIdentifier);
833
- try {
834
- isInstalled = yield device.applicationManager.isApplicationInstalled(appData.appId);
835
- yield device.applicationManager.tryStartApplication(appData);
836
- }
837
- catch (err) {
838
- this.$logger.trace("Error while checking is application installed. Error is: ", err);
839
- }
840
- return {
841
- appIdentifier: appData.appId,
842
- deviceIdentifier,
843
- isInstalled,
844
- };
845
- });
713
+ async isApplicationInstalledOnDevice(deviceIdentifier, appData) {
714
+ let isInstalled = false;
715
+ const device = this.getDeviceByIdentifier(deviceIdentifier);
716
+ try {
717
+ isInstalled = await device.applicationManager.isApplicationInstalled(appData.appId);
718
+ await device.applicationManager.tryStartApplication(appData);
719
+ }
720
+ catch (err) {
721
+ this.$logger.trace("Error while checking is application installed. Error is: ", err);
722
+ }
723
+ return {
724
+ appIdentifier: appData.appId,
725
+ deviceIdentifier,
726
+ isInstalled,
727
+ };
846
728
  }
847
729
  getDeviceLookingOptions(deviceInitOpts = {}) {
848
730
  const { shouldReturnImmediateResult, emulator } = deviceInitOpts;
@@ -865,6 +747,7 @@ class DevicesService extends events_1.EventEmitter {
865
747
  `To list available ${emulatorName.toLowerCase()} images, run '${this.$staticConfig.CLIENT_NAME.toLowerCase()} device <Platform> --available-devices'.`);
866
748
  }
867
749
  }
750
+ exports.DevicesService = DevicesService;
868
751
  DevicesService.DEVICE_LOOKING_INTERVAL = 200;
869
752
  DevicesService.EMULATOR_IMAGES_DETECTION_INTERVAL = 60 * 1000;
870
753
  __decorate([
@@ -918,6 +801,4 @@ __decorate([
918
801
  __decorate([
919
802
  (0, decorators_1.exported)("devicesService")
920
803
  ], DevicesService.prototype, "getDebuggableViews", null);
921
- exports.DevicesService = DevicesService;
922
804
  yok_1.injector.register("devicesService", DevicesService);
923
- //# sourceMappingURL=devices-service.js.map