@akylas/nativescript-cli 8.7.2 → 8.8.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 (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.AndroidEmulatorServices = void 0;
13
4
  const constants_1 = require("../../constants");
@@ -27,111 +18,99 @@ class AndroidEmulatorServices {
27
18
  this.$logger = $logger;
28
19
  this.$utils = $utils;
29
20
  }
30
- getEmulatorImages() {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const adbDevicesOutput = yield this.$adb.getDevicesSafe();
33
- const avdAvailableEmulatorsOutput = yield this.$androidVirtualDeviceService.getEmulatorImages(adbDevicesOutput);
34
- const genyAvailableDevicesOutput = yield this.$androidGenymotionService.getEmulatorImages(adbDevicesOutput);
35
- const devices = _.concat(avdAvailableEmulatorsOutput.devices, genyAvailableDevicesOutput.devices).filter((item) => !!item);
36
- return {
37
- devices,
38
- errors: avdAvailableEmulatorsOutput.errors.concat(genyAvailableDevicesOutput.errors),
39
- };
40
- });
21
+ async getEmulatorImages() {
22
+ const adbDevicesOutput = await this.$adb.getDevicesSafe();
23
+ const avdAvailableEmulatorsOutput = await this.$androidVirtualDeviceService.getEmulatorImages(adbDevicesOutput);
24
+ const genyAvailableDevicesOutput = await this.$androidGenymotionService.getEmulatorImages(adbDevicesOutput);
25
+ const devices = _.concat(avdAvailableEmulatorsOutput.devices, genyAvailableDevicesOutput.devices).filter((item) => !!item);
26
+ return {
27
+ devices,
28
+ errors: avdAvailableEmulatorsOutput.errors.concat(genyAvailableDevicesOutput.errors),
29
+ };
41
30
  }
42
- getRunningEmulatorIds() {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- const adbDevicesOutput = yield this.$adb.getDevicesSafe();
45
- const avds = yield this.$androidVirtualDeviceService.getRunningEmulatorIds(adbDevicesOutput);
46
- const genies = yield this.$androidGenymotionService.getRunningEmulatorIds(adbDevicesOutput);
47
- return avds.concat(genies);
48
- });
31
+ async getRunningEmulatorIds() {
32
+ const adbDevicesOutput = await this.$adb.getDevicesSafe();
33
+ const avds = await this.$androidVirtualDeviceService.getRunningEmulatorIds(adbDevicesOutput);
34
+ const genies = await this.$androidGenymotionService.getRunningEmulatorIds(adbDevicesOutput);
35
+ return avds.concat(genies);
49
36
  }
50
- getRunningEmulatorName(emulatorId) {
51
- return __awaiter(this, void 0, void 0, function* () {
52
- let result = yield this.$androidVirtualDeviceService.getRunningEmulatorName(emulatorId);
53
- if (!result) {
54
- result = yield this.$androidGenymotionService.getRunningEmulatorName(emulatorId);
55
- }
56
- return result;
57
- });
37
+ async getRunningEmulatorName(emulatorId) {
38
+ let result = await this.$androidVirtualDeviceService.getRunningEmulatorName(emulatorId);
39
+ if (!result) {
40
+ result = await this.$androidGenymotionService.getRunningEmulatorName(emulatorId);
41
+ }
42
+ return result;
58
43
  }
59
- getRunningEmulatorImageIdentifier(emulatorId) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- let result = yield this.$androidVirtualDeviceService.getRunningEmulatorImageIdentifier(emulatorId);
62
- if (!result) {
63
- result = yield this.$androidGenymotionService.getRunningEmulatorImageIdentifier(emulatorId);
64
- }
65
- return result;
66
- });
44
+ async getRunningEmulatorImageIdentifier(emulatorId) {
45
+ let result = await this.$androidVirtualDeviceService.getRunningEmulatorImageIdentifier(emulatorId);
46
+ if (!result) {
47
+ result = await this.$androidGenymotionService.getRunningEmulatorImageIdentifier(emulatorId);
48
+ }
49
+ return result;
67
50
  }
68
- startEmulator(options) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const output = yield this.startEmulatorCore(options);
71
- let bootToCompleteOutput = null;
72
- if (output && output.runningEmulator) {
73
- bootToCompleteOutput = yield this.waitForEmulatorBootToComplete(output.runningEmulator, output.endTimeEpoch, options.timeout);
74
- }
75
- return {
76
- errors: ((output && output.errors) || []).concat((bootToCompleteOutput && bootToCompleteOutput.errors) || []),
77
- };
78
- });
51
+ async startEmulator(options) {
52
+ const output = await this.startEmulatorCore(options);
53
+ let bootToCompleteOutput = null;
54
+ if (output && output.runningEmulator) {
55
+ bootToCompleteOutput = await this.waitForEmulatorBootToComplete(output.runningEmulator, output.endTimeEpoch, options.timeout);
56
+ }
57
+ return {
58
+ errors: ((output && output.errors) || []).concat((bootToCompleteOutput && bootToCompleteOutput.errors) || []),
59
+ };
79
60
  }
80
61
  detach(deviceInfo) {
81
62
  this.$androidVirtualDeviceService.detach(deviceInfo);
82
63
  }
83
- startEmulatorCore(options) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- const timeout = options.timeout || constants_1.AndroidVirtualDevice.TIMEOUT_SECONDS;
86
- const endTimeEpoch = (0, helpers_1.getCurrentEpochTime)() + this.$utils.getMilliSecondsTimeout(timeout);
87
- const availableEmulators = (yield this.getEmulatorImages()).devices;
88
- let emulator = this.$emulatorHelper.getEmulatorByStartEmulatorOptions(options, availableEmulators);
89
- if (!emulator &&
90
- !options.emulatorIdOrName &&
91
- !options.imageIdentifier &&
92
- !options.emulator) {
93
- emulator = this.getBestFit(availableEmulators);
94
- }
95
- if (!emulator) {
96
- return {
97
- runningEmulator: null,
98
- errors: [
99
- `No emulator image available for device identifier '${options.emulatorIdOrName || options.imageIdentifier}'.`,
100
- ],
101
- endTimeEpoch,
102
- };
103
- }
104
- if (emulator.errorHelp) {
105
- return {
106
- runningEmulator: null,
107
- errors: [emulator.errorHelp],
108
- endTimeEpoch,
109
- };
110
- }
111
- this.spawnEmulator(emulator);
112
- const isInfiniteWait = this.$utils.getMilliSecondsTimeout(timeout) === 0;
113
- let hasTimeLeft = (0, helpers_1.getCurrentEpochTime)() < endTimeEpoch;
114
- while (hasTimeLeft || isInfiniteWait) {
115
- const emulators = (yield this.getEmulatorImages()).devices;
116
- const newEmulator = _.find(emulators, (e) => e.imageIdentifier === emulator.imageIdentifier);
117
- if (newEmulator && this.$emulatorHelper.isEmulatorRunning(newEmulator)) {
118
- return {
119
- runningEmulator: newEmulator,
120
- errors: [],
121
- endTimeEpoch,
122
- };
123
- }
124
- yield (0, helpers_1.sleep)(10000);
125
- hasTimeLeft = (0, helpers_1.getCurrentEpochTime)() < endTimeEpoch;
126
- }
127
- if (!hasTimeLeft && !isInfiniteWait) {
64
+ async startEmulatorCore(options) {
65
+ const timeout = options.timeout || constants_1.AndroidVirtualDevice.TIMEOUT_SECONDS;
66
+ const endTimeEpoch = (0, helpers_1.getCurrentEpochTime)() + this.$utils.getMilliSecondsTimeout(timeout);
67
+ const availableEmulators = (await this.getEmulatorImages()).devices;
68
+ let emulator = this.$emulatorHelper.getEmulatorByStartEmulatorOptions(options, availableEmulators);
69
+ if (!emulator &&
70
+ !options.emulatorIdOrName &&
71
+ !options.imageIdentifier &&
72
+ !options.emulator) {
73
+ emulator = this.getBestFit(availableEmulators);
74
+ }
75
+ if (!emulator) {
76
+ return {
77
+ runningEmulator: null,
78
+ errors: [
79
+ `No emulator image available for device identifier '${options.emulatorIdOrName || options.imageIdentifier}'.`,
80
+ ],
81
+ endTimeEpoch,
82
+ };
83
+ }
84
+ if (emulator.errorHelp) {
85
+ return {
86
+ runningEmulator: null,
87
+ errors: [emulator.errorHelp],
88
+ endTimeEpoch,
89
+ };
90
+ }
91
+ this.spawnEmulator(emulator);
92
+ const isInfiniteWait = this.$utils.getMilliSecondsTimeout(timeout) === 0;
93
+ let hasTimeLeft = (0, helpers_1.getCurrentEpochTime)() < endTimeEpoch;
94
+ while (hasTimeLeft || isInfiniteWait) {
95
+ const emulators = (await this.getEmulatorImages()).devices;
96
+ const newEmulator = _.find(emulators, (e) => e.imageIdentifier === emulator.imageIdentifier);
97
+ if (newEmulator && this.$emulatorHelper.isEmulatorRunning(newEmulator)) {
128
98
  return {
129
- runningEmulator: null,
130
- errors: [constants_1.AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE],
99
+ runningEmulator: newEmulator,
100
+ errors: [],
131
101
  endTimeEpoch,
132
102
  };
133
103
  }
134
- });
104
+ await (0, helpers_1.sleep)(10000);
105
+ hasTimeLeft = (0, helpers_1.getCurrentEpochTime)() < endTimeEpoch;
106
+ }
107
+ if (!hasTimeLeft && !isInfiniteWait) {
108
+ return {
109
+ runningEmulator: null,
110
+ errors: [constants_1.AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE],
111
+ endTimeEpoch,
112
+ };
113
+ }
135
114
  }
136
115
  spawnEmulator(emulator) {
137
116
  let pathToEmulatorExecutable = null;
@@ -169,36 +148,32 @@ class AndroidEmulatorServices {
169
148
  const bestVersion = best && best.version && semver.coerce(best.version);
170
149
  return bestVersion && semver.gte(bestVersion, minVersion) ? best : null;
171
150
  }
172
- waitForEmulatorBootToComplete(emulator, endTimeEpoch, timeout) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- this.$logger.info("Waiting for emulator device initialization...", {
175
- [constants_2.LoggerConfigData.skipNewLine]: true,
176
- });
177
- const isInfiniteWait = this.$utils.getMilliSecondsTimeout(timeout || constants_1.AndroidVirtualDevice.TIMEOUT_SECONDS) === 0;
178
- while ((0, helpers_1.getCurrentEpochTime)() < endTimeEpoch || isInfiniteWait) {
179
- const isEmulatorBootCompleted = yield this.isEmulatorBootCompleted(emulator.identifier);
180
- if (isEmulatorBootCompleted) {
181
- this.$logger.info(os_1.EOL, { [constants_2.LoggerConfigData.skipNewLine]: true });
182
- return {
183
- runningEmulator: emulator,
184
- errors: [],
185
- };
186
- }
187
- this.$logger.info(".", { [constants_2.LoggerConfigData.skipNewLine]: true });
188
- yield (0, helpers_1.sleep)(10000);
189
- }
190
- return {
191
- runningEmulator: null,
192
- errors: [constants_1.AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE],
193
- };
151
+ async waitForEmulatorBootToComplete(emulator, endTimeEpoch, timeout) {
152
+ this.$logger.info("Waiting for emulator device initialization...", {
153
+ [constants_2.LoggerConfigData.skipNewLine]: true,
194
154
  });
155
+ const isInfiniteWait = this.$utils.getMilliSecondsTimeout(timeout || constants_1.AndroidVirtualDevice.TIMEOUT_SECONDS) === 0;
156
+ while ((0, helpers_1.getCurrentEpochTime)() < endTimeEpoch || isInfiniteWait) {
157
+ const isEmulatorBootCompleted = await this.isEmulatorBootCompleted(emulator.identifier);
158
+ if (isEmulatorBootCompleted) {
159
+ this.$logger.info(os_1.EOL, { [constants_2.LoggerConfigData.skipNewLine]: true });
160
+ return {
161
+ runningEmulator: emulator,
162
+ errors: [],
163
+ };
164
+ }
165
+ this.$logger.info(".", { [constants_2.LoggerConfigData.skipNewLine]: true });
166
+ await (0, helpers_1.sleep)(10000);
167
+ }
168
+ return {
169
+ runningEmulator: null,
170
+ errors: [constants_1.AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE],
171
+ };
195
172
  }
196
- isEmulatorBootCompleted(emulatorId) {
197
- return __awaiter(this, void 0, void 0, function* () {
198
- const output = yield this.$adb.getPropertyValue(emulatorId, "dev.bootcomplete");
199
- const matches = output.match("1");
200
- return matches && matches.length > 0;
201
- });
173
+ async isEmulatorBootCompleted(emulatorId) {
174
+ const output = await this.$adb.getPropertyValue(emulatorId, "dev.bootcomplete");
175
+ const matches = output.match("1");
176
+ return matches && matches.length > 0;
202
177
  }
203
178
  }
204
179
  exports.AndroidEmulatorServices = AndroidEmulatorServices;
@@ -36,7 +36,7 @@ class AndroidLogFilter {
36
36
  return consoleLogMessage;
37
37
  }
38
38
  }
39
+ exports.AndroidLogFilter = AndroidLogFilter;
39
40
  AndroidLogFilter.LINE_REGEX = /.\/(.+?)\s*\(\s*\d+?\): (.*)/;
40
41
  AndroidLogFilter.API_LEVEL_23_LINE_REGEX = /.+?\s+?(?:[A-Z]\s+?)([A-Za-z \.]+?)\s*?\: (.*)/;
41
- exports.AndroidLogFilter = AndroidLogFilter;
42
42
  yok_1.injector.register("androidLogFilter", AndroidLogFilter);
@@ -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.AndroidVirtualDeviceService = void 0;
19
10
  const net = require("net");
@@ -39,44 +30,38 @@ class AndroidVirtualDeviceService {
39
30
  this.mapEmulatorIdToImageIdentifier = {};
40
31
  this.androidHome = process.env.ANDROID_HOME;
41
32
  }
42
- getEmulatorImages(adbDevicesOutput) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- const availableEmulatorsOutput = yield this.getEmulatorImagesCore();
45
- const avds = availableEmulatorsOutput.devices;
46
- const runningEmulatorIds = yield this.getRunningEmulatorIds(adbDevicesOutput);
47
- const runningEmulators = yield (0, helpers_1.settlePromises)(_.map(runningEmulatorIds, (emulatorId) => this.getRunningEmulatorData(emulatorId, avds)));
48
- const devices = availableEmulatorsOutput.devices.map((emulator) => this.$emulatorHelper.getEmulatorByImageIdentifier(emulator.imageIdentifier, runningEmulators) || emulator);
49
- return {
50
- devices,
51
- errors: availableEmulatorsOutput.errors,
52
- };
53
- });
54
- }
55
- getRunningEmulatorIds(adbDevicesOutput) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- const emulatorIds = _.reduce(adbDevicesOutput, (result, device) => {
58
- const rx = device.match(constants_1.AndroidVirtualDevice.RUNNING_AVD_EMULATOR_REGEX);
59
- if (rx && rx[1]) {
60
- result.push(rx[1]);
61
- }
62
- return result;
63
- }, []);
64
- return emulatorIds;
65
- });
33
+ async getEmulatorImages(adbDevicesOutput) {
34
+ const availableEmulatorsOutput = await this.getEmulatorImagesCore();
35
+ const avds = availableEmulatorsOutput.devices;
36
+ const runningEmulatorIds = await this.getRunningEmulatorIds(adbDevicesOutput);
37
+ const runningEmulators = await (0, helpers_1.settlePromises)(_.map(runningEmulatorIds, (emulatorId) => this.getRunningEmulatorData(emulatorId, avds)));
38
+ const devices = availableEmulatorsOutput.devices.map((emulator) => this.$emulatorHelper.getEmulatorByImageIdentifier(emulator.imageIdentifier, runningEmulators) || emulator);
39
+ return {
40
+ devices,
41
+ errors: availableEmulatorsOutput.errors,
42
+ };
66
43
  }
67
- getRunningEmulatorName(emulatorId) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const imageIdentifier = yield this.getRunningEmulatorImageIdentifier(emulatorId);
70
- const iniFilePath = path.join(this.pathToAvdHomeDir, `${imageIdentifier}.ini`);
71
- const iniFileInfo = this.$androidIniFileParser.parseIniFile(iniFilePath);
72
- let result = imageIdentifier;
73
- if (iniFileInfo && iniFileInfo.path) {
74
- const configIniFileInfo = this.$androidIniFileParser.parseIniFile(path.join(iniFileInfo.path, constants_1.AndroidVirtualDevice.CONFIG_INI_FILE_NAME));
75
- result =
76
- (configIniFileInfo && configIniFileInfo.displayName) || imageIdentifier;
44
+ async getRunningEmulatorIds(adbDevicesOutput) {
45
+ const emulatorIds = _.reduce(adbDevicesOutput, (result, device) => {
46
+ const rx = device.match(constants_1.AndroidVirtualDevice.RUNNING_AVD_EMULATOR_REGEX);
47
+ if (rx && rx[1]) {
48
+ result.push(rx[1]);
77
49
  }
78
50
  return result;
79
- });
51
+ }, []);
52
+ return emulatorIds;
53
+ }
54
+ async getRunningEmulatorName(emulatorId) {
55
+ const imageIdentifier = await this.getRunningEmulatorImageIdentifier(emulatorId);
56
+ const iniFilePath = path.join(this.pathToAvdHomeDir, `${imageIdentifier}.ini`);
57
+ const iniFileInfo = this.$androidIniFileParser.parseIniFile(iniFilePath);
58
+ let result = imageIdentifier;
59
+ if (iniFileInfo && iniFileInfo.path) {
60
+ const configIniFileInfo = this.$androidIniFileParser.parseIniFile(path.join(iniFileInfo.path, constants_1.AndroidVirtualDevice.CONFIG_INI_FILE_NAME));
61
+ result =
62
+ (configIniFileInfo && configIniFileInfo.displayName) || imageIdentifier;
63
+ }
64
+ return result;
80
65
  }
81
66
  startEmulatorArgs(imageIdentifier) {
82
67
  return ["-avd", imageIdentifier];
@@ -140,59 +125,56 @@ class AndroidVirtualDeviceService {
140
125
  delete this.mapEmulatorIdToImageIdentifier[deviceInfo.identifier];
141
126
  }
142
127
  }
143
- getEmulatorImagesCore() {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- let result = null;
146
- let devices = [];
147
- let errors = [];
148
- const canExecuteAvdManagerCommand = yield this.canExecuteAvdManagerCommand();
149
- if (!canExecuteAvdManagerCommand) {
150
- errors = [
151
- "Unable to execute avdmanager, ensure JAVA_HOME is set and points to correct directory",
152
- ];
153
- }
154
- if (canExecuteAvdManagerCommand) {
155
- result = yield this.$childProcess.trySpawnFromCloseEvent(this.pathToAvdManagerExecutable, ["list", "avds"], { shell: this.$hostInfo.isWindows });
156
- }
157
- else if (this.pathToAndroidExecutable &&
158
- this.$fs.exists(this.pathToAndroidExecutable)) {
159
- result = yield this.$childProcess.trySpawnFromCloseEvent(this.pathToAndroidExecutable, ["list", "avd"]);
160
- }
161
- if (result && result.stdout) {
162
- devices = this.parseListAvdsOutput(result.stdout);
163
- errors = result && result.stderr ? [result.stderr] : [];
128
+ async getEmulatorImagesCore() {
129
+ let result = null;
130
+ let devices = [];
131
+ let errors = [];
132
+ const canExecuteAvdManagerCommand = await this.canExecuteAvdManagerCommand();
133
+ if (!canExecuteAvdManagerCommand) {
134
+ errors = [
135
+ "Unable to execute avdmanager, ensure JAVA_HOME is set and points to correct directory",
136
+ ];
137
+ }
138
+ if (canExecuteAvdManagerCommand) {
139
+ const sanitizedPathToAvdManagerExecutable = this.$hostInfo.isWindows
140
+ ? (0, helpers_1.quoteString)(this.pathToAvdManagerExecutable)
141
+ : this.pathToAvdManagerExecutable;
142
+ result = await this.$childProcess.trySpawnFromCloseEvent(sanitizedPathToAvdManagerExecutable, ["list", "avds"], { shell: this.$hostInfo.isWindows });
143
+ }
144
+ else if (this.pathToAndroidExecutable &&
145
+ this.$fs.exists(this.pathToAndroidExecutable)) {
146
+ result = await this.$childProcess.trySpawnFromCloseEvent(this.pathToAndroidExecutable, ["list", "avd"]);
147
+ }
148
+ if (result && result.stdout) {
149
+ devices = this.parseListAvdsOutput(result.stdout);
150
+ errors = result && result.stderr ? [result.stderr] : [];
151
+ }
152
+ else {
153
+ devices = this.listAvdsFromDirectory();
154
+ }
155
+ return { devices, errors };
156
+ }
157
+ async canExecuteAvdManagerCommand() {
158
+ let canExecute = false;
159
+ if (this.pathToAvdManagerExecutable &&
160
+ this.$fs.exists(this.pathToAvdManagerExecutable)) {
161
+ if (process.env.JAVA_HOME) {
162
+ canExecute = !!(await this.$sysInfo.getJavaVersionFromJavaHome());
164
163
  }
165
164
  else {
166
- devices = this.listAvdsFromDirectory();
167
- }
168
- return { devices, errors };
169
- });
170
- }
171
- canExecuteAvdManagerCommand() {
172
- return __awaiter(this, void 0, void 0, function* () {
173
- let canExecute = false;
174
- if (this.pathToAvdManagerExecutable &&
175
- this.$fs.exists(this.pathToAvdManagerExecutable)) {
176
- if (process.env.JAVA_HOME) {
177
- canExecute = !!(yield this.$sysInfo.getJavaVersionFromJavaHome());
178
- }
179
- else {
180
- canExecute = !!(yield this.$sysInfo.getJavaVersionFromPath());
181
- }
165
+ canExecute = !!(await this.$sysInfo.getJavaVersionFromPath());
182
166
  }
183
- return canExecute;
184
- });
167
+ }
168
+ return canExecute;
185
169
  }
186
- getRunningEmulatorData(runningEmulatorId, availableEmulators) {
187
- return __awaiter(this, void 0, void 0, function* () {
188
- const imageIdentifier = yield this.getRunningEmulatorImageIdentifier(runningEmulatorId);
189
- const runningEmulator = this.$emulatorHelper.getEmulatorByImageIdentifier(imageIdentifier, availableEmulators);
190
- if (!runningEmulator) {
191
- return null;
192
- }
193
- this.$emulatorHelper.setRunningAndroidEmulatorProperties(runningEmulatorId, runningEmulator);
194
- return runningEmulator;
195
- });
170
+ async getRunningEmulatorData(runningEmulatorId, availableEmulators) {
171
+ const imageIdentifier = await this.getRunningEmulatorImageIdentifier(runningEmulatorId);
172
+ const runningEmulator = this.$emulatorHelper.getEmulatorByImageIdentifier(imageIdentifier, availableEmulators);
173
+ if (!runningEmulator) {
174
+ return null;
175
+ }
176
+ this.$emulatorHelper.setRunningAndroidEmulatorProperties(runningEmulatorId, runningEmulator);
177
+ return runningEmulator;
196
178
  }
197
179
  get pathToAvdManagerExecutable() {
198
180
  let avdManagerPath = null;
@@ -338,6 +320,7 @@ class AndroidVirtualDeviceService {
338
320
  }
339
321
  }
340
322
  }
323
+ exports.AndroidVirtualDeviceService = AndroidVirtualDeviceService;
341
324
  __decorate([
342
325
  (0, decorators_1.cache)()
343
326
  ], AndroidVirtualDeviceService.prototype, "pathToEmulatorExecutable", null);
@@ -356,5 +339,4 @@ __decorate([
356
339
  __decorate([
357
340
  (0, decorators_1.cache)()
358
341
  ], AndroidVirtualDeviceService.prototype, "getConfigurationError", null);
359
- exports.AndroidVirtualDeviceService = AndroidVirtualDeviceService;
360
342
  yok_1.injector.register("androidVirtualDeviceService", AndroidVirtualDeviceService);
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.DeviceAndroidDebugBridge = void 0;
13
4
  const android_debug_bridge_1 = require("./android-debug-bridge");
@@ -22,27 +13,20 @@ class DeviceAndroidDebugBridge extends android_debug_bridge_1.AndroidDebugBridge
22
13
  this.$staticConfig = $staticConfig;
23
14
  this.$androidDebugBridgeResultHandler = $androidDebugBridgeResultHandler;
24
15
  }
25
- sendBroadcastToDevice(action, extras) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- extras = extras || {};
28
- const broadcastCommand = ["am", "broadcast", "-a", `${action}`];
29
- _.each(extras, (value, key) => broadcastCommand.push("-e", key, value));
30
- const result = yield this.executeShellCommand(broadcastCommand);
31
- this.$logger.trace(`Broadcast result ${result} from ${broadcastCommand}`);
32
- const match = result.match(/Broadcast completed: result=(\d+)/);
33
- if (match) {
34
- return +match[1];
35
- }
36
- this.$errors.fail("Unable to broadcast to android device:\n%s", result);
37
- });
16
+ async sendBroadcastToDevice(action, extras) {
17
+ extras = extras || {};
18
+ const broadcastCommand = ["am", "broadcast", "-a", `${action}`];
19
+ _.each(extras, (value, key) => broadcastCommand.push("-e", key, value));
20
+ const result = await this.executeShellCommand(broadcastCommand);
21
+ this.$logger.trace(`Broadcast result ${result} from ${broadcastCommand}`);
22
+ const match = result.match(/Broadcast completed: result=(\d+)/);
23
+ if (match) {
24
+ return +match[1];
25
+ }
26
+ this.$errors.fail("Unable to broadcast to android device:\n%s", result);
38
27
  }
39
- composeCommand(params) {
40
- const _super = Object.create(null, {
41
- composeCommand: { get: () => super.composeCommand }
42
- });
43
- return __awaiter(this, void 0, void 0, function* () {
44
- return _super.composeCommand.call(this, params, this.identifier);
45
- });
28
+ async composeCommand(params) {
29
+ return super.composeCommand(params, this.identifier);
46
30
  }
47
31
  }
48
32
  exports.DeviceAndroidDebugBridge = DeviceAndroidDebugBridge;