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.RunController = void 0;
19
10
  const constants_1 = require("../common/constants");
@@ -48,233 +39,213 @@ class RunController extends events_1.EventEmitter {
48
39
  this.$projectDataService = $projectDataService;
49
40
  this.prepareReadyEventHandler = null;
50
41
  }
51
- run(runData) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const { liveSyncInfo, deviceDescriptors } = runData;
54
- const { projectDir } = liveSyncInfo;
55
- const projectData = this.$projectDataService.getProjectData(projectDir);
56
- yield this.initializeSetup(projectData);
57
- const deviceDescriptorsForInitialSync = this.getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors);
58
- const newPlatforms = this.$devicesService.getPlatformsFromDeviceDescriptors(deviceDescriptors);
59
- const oldPlatforms = this.$liveSyncProcessDataService.getPlatforms(projectDir);
60
- const platforms = _.uniq(_.concat(newPlatforms, oldPlatforms));
61
- this.$liveSyncProcessDataService.persistData(projectDir, deviceDescriptors, platforms);
62
- const shouldStartWatcher = !liveSyncInfo.skipWatcher &&
63
- this.$liveSyncProcessDataService.hasDeviceDescriptors(projectDir);
64
- if (shouldStartWatcher && liveSyncInfo.useHotModuleReload) {
65
- this.$hmrStatusService.attachToHmrStatusEvent();
66
- }
67
- if (!this.prepareReadyEventHandler) {
68
- const handler = (data) => __awaiter(this, void 0, void 0, function* () {
69
- if (data.hasNativeChanges) {
70
- const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
71
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, data.platform, Object.assign(Object.assign({}, liveSyncInfo), { watch: !liveSyncInfo.skipWatcher }));
72
- const changesInfo = yield this.$projectChangesService.checkForChanges(platformData, projectData, prepareData);
73
- if (changesInfo.hasChanges) {
74
- yield this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
75
- }
76
- }
77
- else {
78
- yield this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
42
+ async run(runData) {
43
+ const { liveSyncInfo, deviceDescriptors } = runData;
44
+ const { projectDir } = liveSyncInfo;
45
+ const projectData = this.$projectDataService.getProjectData(projectDir);
46
+ await this.initializeSetup(projectData);
47
+ const deviceDescriptorsForInitialSync = this.getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors);
48
+ const newPlatforms = this.$devicesService.getPlatformsFromDeviceDescriptors(deviceDescriptors);
49
+ const oldPlatforms = this.$liveSyncProcessDataService.getPlatforms(projectDir);
50
+ const platforms = _.uniq(_.concat(newPlatforms, oldPlatforms));
51
+ this.$liveSyncProcessDataService.persistData(projectDir, deviceDescriptors, platforms);
52
+ const shouldStartWatcher = !liveSyncInfo.skipWatcher &&
53
+ this.$liveSyncProcessDataService.hasDeviceDescriptors(projectDir);
54
+ if (shouldStartWatcher && liveSyncInfo.useHotModuleReload) {
55
+ this.$hmrStatusService.attachToHmrStatusEvent();
56
+ }
57
+ if (!this.prepareReadyEventHandler) {
58
+ const handler = async (data) => {
59
+ if (data.hasNativeChanges) {
60
+ const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
61
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, data.platform, { ...liveSyncInfo, watch: !liveSyncInfo.skipWatcher });
62
+ const changesInfo = await this.$projectChangesService.checkForChanges(platformData, projectData, prepareData);
63
+ if (changesInfo.hasChanges) {
64
+ await this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
79
65
  }
80
- });
81
- this.prepareReadyEventHandler = handler.bind(this);
82
- this.$prepareController.on(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
83
- }
84
- yield this.syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptorsForInitialSync);
85
- this.attachDeviceLostHandler();
86
- });
66
+ }
67
+ else {
68
+ await this.syncChangedDataOnDevices(data, projectData, liveSyncInfo);
69
+ }
70
+ };
71
+ this.prepareReadyEventHandler = handler.bind(this);
72
+ this.$prepareController.on(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
73
+ }
74
+ await this.syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptorsForInitialSync);
75
+ this.attachDeviceLostHandler();
87
76
  }
88
- stop(data) {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const { projectDir, deviceIdentifiers, stopOptions } = data;
91
- const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
92
- if (liveSyncProcessInfo && !liveSyncProcessInfo.isStopped) {
93
- // In case we are coming from error during livesync, the current action is the one that erred (but we are still executing it),
94
- // so we cannot await it as this will cause infinite loop.
95
- const shouldAwaitPendingOperation = !stopOptions || stopOptions.shouldAwaitAllActions;
96
- const deviceIdentifiersToRemove = deviceIdentifiers && deviceIdentifiers.length
97
- ? deviceIdentifiers
98
- : _.map(liveSyncProcessInfo.deviceDescriptors, (d) => d.identifier);
99
- const removedDeviceIdentifiers = _.remove(liveSyncProcessInfo.deviceDescriptors, (descriptor) => _.includes(deviceIdentifiersToRemove, descriptor.identifier)).map((descriptor) => descriptor.identifier);
100
- // Handle the case when no more devices left for any of the persisted platforms
101
- for (let i = 0; i < liveSyncProcessInfo.platforms.length; i++) {
102
- const platform = liveSyncProcessInfo.platforms[i];
103
- const devices = this.$devicesService.getDevicesForPlatform(platform);
104
- if (!devices || !devices.length) {
105
- yield this.$prepareController.stopWatchers(projectDir, platform);
106
- }
77
+ async stop(data) {
78
+ const { projectDir, deviceIdentifiers, stopOptions } = data;
79
+ const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
80
+ if (liveSyncProcessInfo && !liveSyncProcessInfo.isStopped) {
81
+ const shouldAwaitPendingOperation = !stopOptions || stopOptions.shouldAwaitAllActions;
82
+ const deviceIdentifiersToRemove = deviceIdentifiers && deviceIdentifiers.length
83
+ ? deviceIdentifiers
84
+ : _.map(liveSyncProcessInfo.deviceDescriptors, (d) => d.identifier);
85
+ const removedDeviceIdentifiers = _.remove(liveSyncProcessInfo.deviceDescriptors, (descriptor) => _.includes(deviceIdentifiersToRemove, descriptor.identifier)).map((descriptor) => descriptor.identifier);
86
+ for (let i = 0; i < liveSyncProcessInfo.platforms.length; i++) {
87
+ const platform = liveSyncProcessInfo.platforms[i];
88
+ const devices = this.$devicesService.getDevicesForPlatform(platform);
89
+ if (!devices || !devices.length) {
90
+ await this.$prepareController.stopWatchers(projectDir, platform);
107
91
  }
108
- // In case deviceIdentifiers are not passed, we should stop the whole LiveSync.
109
- if (!deviceIdentifiers ||
110
- !deviceIdentifiers.length ||
111
- !liveSyncProcessInfo.deviceDescriptors ||
112
- !liveSyncProcessInfo.deviceDescriptors.length) {
113
- if (liveSyncProcessInfo.timer) {
114
- clearTimeout(liveSyncProcessInfo.timer);
115
- }
116
- for (let k = 0; k < liveSyncProcessInfo.platforms.length; k++) {
117
- yield this.$prepareController.stopWatchers(projectDir, liveSyncProcessInfo.platforms[k]);
118
- }
119
- liveSyncProcessInfo.isStopped = true;
120
- if (liveSyncProcessInfo.actionsChain && shouldAwaitPendingOperation) {
121
- yield liveSyncProcessInfo.actionsChain;
122
- }
123
- liveSyncProcessInfo.deviceDescriptors = [];
124
- if (this.prepareReadyEventHandler) {
125
- this.$prepareController.removeListener(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
126
- this.prepareReadyEventHandler = null;
127
- }
128
- const projectData = this.$projectDataService.getProjectData(projectDir);
129
- yield this.$hooksService.executeAfterHooks("watch", {
130
- hookArgs: {
131
- projectData,
132
- },
133
- });
92
+ }
93
+ if (!deviceIdentifiers ||
94
+ !deviceIdentifiers.length ||
95
+ !liveSyncProcessInfo.deviceDescriptors ||
96
+ !liveSyncProcessInfo.deviceDescriptors.length) {
97
+ if (liveSyncProcessInfo.timer) {
98
+ clearTimeout(liveSyncProcessInfo.timer);
134
99
  }
135
- else if (liveSyncProcessInfo.currentSyncAction &&
136
- shouldAwaitPendingOperation) {
137
- yield liveSyncProcessInfo.currentSyncAction;
100
+ for (let k = 0; k < liveSyncProcessInfo.platforms.length; k++) {
101
+ await this.$prepareController.stopWatchers(projectDir, liveSyncProcessInfo.platforms[k]);
138
102
  }
139
- // Emit RunOnDevice stopped when we've really stopped.
140
- _.each(removedDeviceIdentifiers, (deviceIdentifier) => {
141
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStopped, {
142
- projectDir,
143
- deviceIdentifier,
144
- keepProcessAlive: stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive,
145
- });
146
- });
147
- if (stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive) {
148
- this.removeAllListeners(constants_2.RunOnDeviceEvents.runOnDeviceStopped);
103
+ liveSyncProcessInfo.isStopped = true;
104
+ if (liveSyncProcessInfo.actionsChain && shouldAwaitPendingOperation) {
105
+ await liveSyncProcessInfo.actionsChain;
149
106
  }
107
+ liveSyncProcessInfo.deviceDescriptors = [];
108
+ if (this.prepareReadyEventHandler) {
109
+ this.$prepareController.removeListener(constants_2.PREPARE_READY_EVENT_NAME, this.prepareReadyEventHandler);
110
+ this.prepareReadyEventHandler = null;
111
+ }
112
+ const projectData = this.$projectDataService.getProjectData(projectDir);
113
+ await this.$hooksService.executeAfterHooks("watch", {
114
+ hookArgs: {
115
+ projectData,
116
+ },
117
+ });
150
118
  }
151
- });
119
+ else if (liveSyncProcessInfo.currentSyncAction &&
120
+ shouldAwaitPendingOperation) {
121
+ await liveSyncProcessInfo.currentSyncAction;
122
+ }
123
+ _.each(removedDeviceIdentifiers, (deviceIdentifier) => {
124
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStopped, {
125
+ projectDir,
126
+ deviceIdentifier,
127
+ keepProcessAlive: stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive,
128
+ });
129
+ });
130
+ if (stopOptions === null || stopOptions === void 0 ? void 0 : stopOptions.keepProcessAlive) {
131
+ this.removeAllListeners(constants_2.RunOnDeviceEvents.runOnDeviceStopped);
132
+ }
133
+ }
152
134
  }
153
135
  getDeviceDescriptors(data) {
154
136
  return this.$liveSyncProcessDataService.getDeviceDescriptors(data.projectDir);
155
137
  }
156
- refreshApplication(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, fullSyncAction) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- const result = deviceDescriptor.debuggingEnabled
159
- ? yield this.refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor)
160
- : yield this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, undefined, fullSyncAction);
161
- const device = liveSyncResultInfo.deviceAppData.device;
162
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceExecuted, {
163
- projectDir: projectData.projectDir,
164
- deviceIdentifier: device.deviceInfo.identifier,
165
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
166
- syncedFiles: liveSyncResultInfo.modifiedFilesData.map((m) => m.getLocalPath()),
167
- isFullSync: liveSyncResultInfo.isFullSync,
168
- });
169
- return result;
138
+ async refreshApplication(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, fullSyncAction) {
139
+ const result = deviceDescriptor.debuggingEnabled
140
+ ? await this.refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor)
141
+ : await this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, undefined, fullSyncAction);
142
+ const device = liveSyncResultInfo.deviceAppData.device;
143
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceExecuted, {
144
+ projectDir: projectData.projectDir,
145
+ deviceIdentifier: device.deviceInfo.identifier,
146
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
147
+ syncedFiles: liveSyncResultInfo.modifiedFilesData.map((m) => m.getLocalPath()),
148
+ isFullSync: liveSyncResultInfo.isFullSync,
170
149
  });
150
+ return result;
171
151
  }
172
- refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- const debugOptions = deviceDescriptor.debugOptions || {};
175
- liveSyncResultInfo.waitForDebugger = !!debugOptions.debugBrk;
176
- liveSyncResultInfo.forceRefreshWithSocket = true;
177
- const refreshInfo = yield this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, {
178
- shouldSkipEmitLiveSyncNotification: true,
179
- shouldCheckDeveloperDiscImage: true,
180
- });
181
- // we do not stop the application when debugBrk is false, so we need to attach, instead of launch
182
- // if we try to send the launch request, the debugger port will not be printed and the command will timeout
183
- debugOptions.start = !debugOptions.debugBrk;
184
- debugOptions.forceDebuggerAttachedEvent = refreshInfo.didRestart;
185
- yield this.$debugController.enableDebuggingCoreWithoutWaitingCurrentAction(projectData.projectDir, deviceDescriptor.identifier, debugOptions);
186
- return refreshInfo;
152
+ async refreshApplicationWithDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor) {
153
+ const debugOptions = deviceDescriptor.debugOptions || {};
154
+ liveSyncResultInfo.waitForDebugger = !!debugOptions.debugBrk;
155
+ liveSyncResultInfo.forceRefreshWithSocket = true;
156
+ const refreshInfo = await this.refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, {
157
+ shouldSkipEmitLiveSyncNotification: true,
158
+ shouldCheckDeveloperDiscImage: true,
187
159
  });
160
+ debugOptions.start = !debugOptions.debugBrk;
161
+ debugOptions.forceDebuggerAttachedEvent = refreshInfo.didRestart;
162
+ await this.$debugController.enableDebuggingCoreWithoutWaitingCurrentAction(projectData.projectDir, deviceDescriptor.identifier, debugOptions);
163
+ return refreshInfo;
188
164
  }
189
- refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, settings, fullSyncAction) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- const result = { didRestart: false };
192
- const platform = liveSyncResultInfo.deviceAppData.platform;
193
- const applicationIdentifier = projectData.projectIdentifiers[platform.toLowerCase()];
194
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platform);
195
- try {
196
- const isFullSync = filesChangeEventData &&
197
- (filesChangeEventData.hasNativeChanges ||
198
- !filesChangeEventData.hasOnlyHotUpdateFiles);
199
- let shouldRestart = isFullSync;
200
- if (!shouldRestart) {
201
- shouldRestart = yield platformLiveSyncService.shouldRestart(projectData, liveSyncResultInfo);
202
- }
203
- if (!shouldRestart) {
204
- shouldRestart = !(yield platformLiveSyncService.tryRefreshApplication(projectData, liveSyncResultInfo));
205
- }
206
- if (!isFullSync && shouldRestart && fullSyncAction) {
207
- this.$logger.trace(`Syncing all files as the current app state does not support hot updates.`);
208
- liveSyncResultInfo.didRecover = true;
209
- yield fullSyncAction();
210
- }
211
- if (shouldRestart) {
212
- this.emit(constants_2.DEBUGGER_DETACHED_EVENT_NAME, {
213
- deviceIdentifier: liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier,
214
- });
215
- yield platformLiveSyncService.restartApplication(projectData, liveSyncResultInfo);
216
- result.didRestart = true;
217
- }
165
+ async refreshApplicationWithoutDebug(projectData, liveSyncResultInfo, filesChangeEventData, deviceDescriptor, settings, fullSyncAction) {
166
+ const result = { didRestart: false };
167
+ const platform = liveSyncResultInfo.deviceAppData.platform;
168
+ const applicationIdentifier = projectData.projectIdentifiers[platform.toLowerCase()];
169
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platform);
170
+ try {
171
+ const isFullSync = filesChangeEventData &&
172
+ (filesChangeEventData.hasNativeChanges ||
173
+ !filesChangeEventData.hasOnlyHotUpdateFiles);
174
+ let shouldRestart = isFullSync;
175
+ if (!shouldRestart) {
176
+ shouldRestart = await platformLiveSyncService.shouldRestart(projectData, liveSyncResultInfo);
218
177
  }
219
- catch (err) {
220
- this.$logger.info(`Error while trying to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Error is: ${err.message || err}`);
221
- const msg = `Unable to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Try starting it manually.`;
222
- this.$logger.warn(msg);
223
- const device = liveSyncResultInfo.deviceAppData.device;
224
- const deviceIdentifier = device.deviceInfo.identifier;
225
- if (!settings || !settings.shouldSkipEmitLiveSyncNotification) {
226
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceNotification, {
227
- projectDir: projectData.projectDir,
228
- deviceIdentifier: device.deviceInfo.identifier,
229
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
230
- notification: msg,
231
- });
232
- }
233
- if (settings &&
234
- settings.shouldCheckDeveloperDiscImage &&
235
- (err.message || err) === "Could not find developer disk image") {
236
- const attachDebuggerOptions = {
237
- platform: device.deviceInfo.platform,
238
- isEmulator: device.isEmulator,
239
- projectDir: projectData.projectDir,
240
- deviceIdentifier,
241
- debugOptions: deviceDescriptor.debugOptions,
242
- outputPath: deviceDescriptor.buildData.outputPath,
243
- };
244
- this.emit(constants_2.USER_INTERACTION_NEEDED_EVENT_NAME, attachDebuggerOptions);
245
- }
178
+ if (!shouldRestart) {
179
+ shouldRestart = !(await platformLiveSyncService.tryRefreshApplication(projectData, liveSyncResultInfo));
246
180
  }
247
- return result;
248
- });
181
+ if (!isFullSync && shouldRestart && fullSyncAction) {
182
+ this.$logger.trace(`Syncing all files as the current app state does not support hot updates.`);
183
+ liveSyncResultInfo.didRecover = true;
184
+ await fullSyncAction();
185
+ }
186
+ if (shouldRestart) {
187
+ this.emit(constants_2.DEBUGGER_DETACHED_EVENT_NAME, {
188
+ deviceIdentifier: liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier,
189
+ });
190
+ await platformLiveSyncService.restartApplication(projectData, liveSyncResultInfo);
191
+ result.didRestart = true;
192
+ }
193
+ }
194
+ catch (err) {
195
+ this.$logger.info(`Error while trying to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Error is: ${err.message || err}`);
196
+ const msg = `Unable to start application ${applicationIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}. Try starting it manually.`;
197
+ this.$logger.warn(msg);
198
+ const device = liveSyncResultInfo.deviceAppData.device;
199
+ const deviceIdentifier = device.deviceInfo.identifier;
200
+ if (!settings || !settings.shouldSkipEmitLiveSyncNotification) {
201
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceNotification, {
202
+ projectDir: projectData.projectDir,
203
+ deviceIdentifier: device.deviceInfo.identifier,
204
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
205
+ notification: msg,
206
+ });
207
+ }
208
+ if (settings &&
209
+ settings.shouldCheckDeveloperDiscImage &&
210
+ (err.message || err) === "Could not find developer disk image") {
211
+ const attachDebuggerOptions = {
212
+ platform: device.deviceInfo.platform,
213
+ isEmulator: device.isEmulator,
214
+ projectDir: projectData.projectDir,
215
+ deviceIdentifier,
216
+ debugOptions: deviceDescriptor.debugOptions,
217
+ outputPath: deviceDescriptor.buildData.outputPath,
218
+ };
219
+ this.emit(constants_2.USER_INTERACTION_NEEDED_EVENT_NAME, attachDebuggerOptions);
220
+ }
221
+ }
222
+ return result;
249
223
  }
250
224
  getDeviceDescriptorsForInitialSync(projectDir, deviceDescriptors) {
251
225
  const currentRunData = this.$liveSyncProcessDataService.getPersistedData(projectDir);
252
226
  const isAlreadyLiveSyncing = currentRunData && !currentRunData.isStopped;
253
- // Prevent cases where liveSync is called consecutive times with the same device, for example [ A, B, C ] and then [ A, B, D ] - we want to execute initialSync only for D.
254
227
  const deviceDescriptorsForInitialSync = isAlreadyLiveSyncing
255
228
  ? _.differenceBy(deviceDescriptors, currentRunData.deviceDescriptors, "identifier")
256
229
  : deviceDescriptors;
257
230
  return deviceDescriptorsForInitialSync;
258
231
  }
259
- initializeSetup(projectData) {
260
- return __awaiter(this, void 0, void 0, function* () {
261
- try {
262
- yield this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
263
- }
264
- catch (err) {
265
- this.$logger.trace(err);
266
- this.$errors.fail(`Unable to install dependencies. Make sure your package.json is valid and all dependencies are correct. Error is: ${err.message}`);
267
- }
268
- });
232
+ async initializeSetup(projectData) {
233
+ try {
234
+ await this.$pluginsService.ensureAllDependenciesAreInstalled(projectData);
235
+ }
236
+ catch (err) {
237
+ this.$logger.trace(err);
238
+ this.$errors.fail(`Unable to install dependencies. Make sure your package.json is valid and all dependencies are correct. Error is: ${err.message}`);
239
+ }
269
240
  }
270
241
  attachDeviceLostHandler() {
271
- this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, (device) => __awaiter(this, void 0, void 0, function* () {
242
+ this.$devicesService.on(constants_1.DeviceDiscoveryEventNames.DEVICE_LOST, async (device) => {
272
243
  this.$logger.trace(`Received ${constants_1.DeviceDiscoveryEventNames.DEVICE_LOST} event in LiveSync service for ${device.deviceInfo.identifier}. Will stop LiveSync operation for this device.`);
273
244
  for (const projectDir in this.$liveSyncProcessDataService.getAllPersistedData()) {
274
245
  try {
275
246
  const deviceDescriptors = this.getDeviceDescriptors({ projectDir });
276
247
  if (_.find(deviceDescriptors, (d) => d.identifier === device.deviceInfo.identifier)) {
277
- yield this.stop({
248
+ await this.stop({
278
249
  projectDir,
279
250
  deviceIdentifiers: [device.deviceInfo.identifier],
280
251
  });
@@ -284,259 +255,258 @@ class RunController extends events_1.EventEmitter {
284
255
  this.$logger.warn(`Unable to stop LiveSync operation for ${device.deviceInfo.identifier}.`, err);
285
256
  }
286
257
  }
287
- }));
258
+ });
288
259
  }
289
- syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptors) {
290
- return __awaiter(this, void 0, void 0, function* () {
291
- const rebuiltInformation = {};
292
- const deviceAction = (device) => __awaiter(this, void 0, void 0, function* () {
293
- const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
294
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, Object.assign(Object.assign(Object.assign({}, liveSyncInfo), deviceDescriptor.buildData), { nativePrepare: {
295
- skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
296
- }, watch: !liveSyncInfo.skipWatcher }));
297
- const prepareResultData = yield this.$prepareController.prepare(prepareData);
298
- const buildData = Object.assign(Object.assign({}, deviceDescriptor.buildData), { buildForDevice: !device.isEmulator });
299
- const platformData = this.$platformsDataService.getPlatformData(device.deviceInfo.platform, projectData);
300
- try {
301
- let packageFilePath = null;
302
- // Case where we have three devices attached, a change that requires build is found,
303
- // we'll rebuild the app only for the first device, but we should install new package on all three devices.
304
- if (rebuiltInformation[platformData.platformNameLowerCase] &&
305
- (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
306
- rebuiltInformation[platformData.platformNameLowerCase]
307
- .isEmulator === device.isEmulator)) {
308
- packageFilePath =
309
- rebuiltInformation[platformData.platformNameLowerCase]
310
- .packageFilePath;
311
- yield this.$deviceInstallAppService.installOnDevice(device, buildData, packageFilePath);
260
+ async syncInitialDataOnDevices(projectData, liveSyncInfo, deviceDescriptors) {
261
+ const rebuiltInformation = {};
262
+ const deviceAction = async (device) => {
263
+ const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
264
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, {
265
+ ...liveSyncInfo,
266
+ ...deviceDescriptor.buildData,
267
+ nativePrepare: {
268
+ skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
269
+ },
270
+ watch: !liveSyncInfo.skipWatcher,
271
+ });
272
+ const prepareResultData = await this.$prepareController.prepare(prepareData);
273
+ const buildData = {
274
+ ...deviceDescriptor.buildData,
275
+ buildForDevice: !device.isEmulator,
276
+ };
277
+ const platformData = this.$platformsDataService.getPlatformData(device.deviceInfo.platform, projectData);
278
+ try {
279
+ let packageFilePath = null;
280
+ if (rebuiltInformation[platformData.platformNameLowerCase] &&
281
+ (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
282
+ rebuiltInformation[platformData.platformNameLowerCase]
283
+ .isEmulator === device.isEmulator)) {
284
+ packageFilePath =
285
+ rebuiltInformation[platformData.platformNameLowerCase]
286
+ .packageFilePath;
287
+ await this.$deviceInstallAppService.installOnDevice(device, buildData, packageFilePath);
288
+ }
289
+ else {
290
+ const shouldBuild = prepareResultData.hasNativeChanges ||
291
+ buildData.nativePrepare.forceRebuildNativeApp ||
292
+ (await this.$buildController.shouldBuild(buildData));
293
+ if (shouldBuild) {
294
+ packageFilePath = await deviceDescriptor.buildAction();
295
+ rebuiltInformation[platformData.platformNameLowerCase] = {
296
+ isEmulator: device.isEmulator,
297
+ platform: platformData.platformNameLowerCase,
298
+ packageFilePath,
299
+ };
312
300
  }
313
301
  else {
314
- const shouldBuild = prepareResultData.hasNativeChanges ||
315
- buildData.nativePrepare.forceRebuildNativeApp ||
316
- (yield this.$buildController.shouldBuild(buildData));
317
- if (shouldBuild) {
318
- packageFilePath = yield deviceDescriptor.buildAction();
319
- rebuiltInformation[platformData.platformNameLowerCase] = {
320
- isEmulator: device.isEmulator,
321
- platform: platformData.platformNameLowerCase,
322
- packageFilePath,
323
- };
324
- }
325
- else {
326
- yield this.$analyticsService.trackEventActionInGoogleAnalytics({
327
- action: "LiveSync" /* TrackActionNames.LiveSync */,
328
- device,
329
- projectDir: projectData.projectDir,
330
- });
331
- }
332
- yield this.$deviceInstallAppService.installOnDeviceIfNeeded(device, buildData, packageFilePath);
302
+ await this.$analyticsService.trackEventActionInGoogleAnalytics({
303
+ action: "LiveSync",
304
+ device,
305
+ projectDir: projectData.projectDir,
306
+ });
333
307
  }
334
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platformData.platformNameLowerCase);
335
- const { force, useHotModuleReload, skipWatcher } = liveSyncInfo;
336
- const liveSyncResultInfo = yield platformLiveSyncService.fullSync({
337
- force,
338
- useHotModuleReload,
339
- projectData,
340
- device,
341
- watch: !skipWatcher,
342
- liveSyncDeviceData: deviceDescriptor,
343
- });
344
- yield this.refreshApplication(projectData, liveSyncResultInfo, null, deviceDescriptor);
345
- this.$logger.info(`Successfully synced application ${liveSyncResultInfo.deviceAppData.appIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}.`);
346
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStarted, {
347
- projectDir: projectData.projectDir,
348
- deviceIdentifier: device.deviceInfo.identifier,
349
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
350
- });
308
+ await this.$deviceInstallAppService.installOnDeviceIfNeeded(device, buildData, packageFilePath);
351
309
  }
352
- catch (err) {
353
- this.$logger.warn(`Unable to apply changes on device: ${device.deviceInfo.identifier}. Error is: ${err.message}.`);
354
- this.$logger.trace(err);
355
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
356
- projectDir: projectData.projectDir,
357
- deviceIdentifier: device.deviceInfo.identifier,
358
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
359
- error: err,
360
- });
361
- yield this.stop({
362
- projectDir: projectData.projectDir,
363
- deviceIdentifiers: [device.deviceInfo.identifier],
364
- stopOptions: { shouldAwaitAllActions: false },
365
- });
366
- }
367
- });
368
- yield this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => _.some(deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier)));
369
- });
310
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(platformData.platformNameLowerCase);
311
+ const { force, useHotModuleReload, skipWatcher } = liveSyncInfo;
312
+ const liveSyncResultInfo = await platformLiveSyncService.fullSync({
313
+ force,
314
+ useHotModuleReload,
315
+ projectData,
316
+ device,
317
+ watch: !skipWatcher,
318
+ liveSyncDeviceData: deviceDescriptor,
319
+ });
320
+ await this.refreshApplication(projectData, liveSyncResultInfo, null, deviceDescriptor);
321
+ this.$logger.info(`Successfully synced application ${liveSyncResultInfo.deviceAppData.appIdentifier} on device ${liveSyncResultInfo.deviceAppData.device.deviceInfo.identifier}.`);
322
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceStarted, {
323
+ projectDir: projectData.projectDir,
324
+ deviceIdentifier: device.deviceInfo.identifier,
325
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
326
+ });
327
+ }
328
+ catch (err) {
329
+ this.$logger.warn(`Unable to apply changes on device: ${device.deviceInfo.identifier}. Error is: ${err.message}.`);
330
+ this.$logger.trace(err);
331
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
332
+ projectDir: projectData.projectDir,
333
+ deviceIdentifier: device.deviceInfo.identifier,
334
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
335
+ error: err,
336
+ });
337
+ await this.stop({
338
+ projectDir: projectData.projectDir,
339
+ deviceIdentifiers: [device.deviceInfo.identifier],
340
+ stopOptions: { shouldAwaitAllActions: false },
341
+ });
342
+ }
343
+ };
344
+ await this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => _.some(deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier)));
370
345
  }
371
- syncChangedDataOnDevices(data, projectData, liveSyncInfo) {
372
- return __awaiter(this, void 0, void 0, function* () {
373
- const successfullySyncedMessageFormat = `Successfully synced application %s on device %s.`;
374
- const rebuiltInformation = {};
375
- const deviceAction = (device) => __awaiter(this, void 0, void 0, function* () {
376
- var _a, _b;
377
- const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
378
- const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
379
- const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
380
- const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, Object.assign(Object.assign(Object.assign({}, liveSyncInfo), deviceDescriptor.buildData), { nativePrepare: {
381
- skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
382
- }, watch: !liveSyncInfo.skipWatcher }));
383
- try {
384
- const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(device.deviceInfo.platform);
385
- const allAppFiles = ((_b = (_a = data.hmrData) === null || _a === void 0 ? void 0 : _a.fallbackFiles) === null || _b === void 0 ? void 0 : _b.length)
386
- ? data.hmrData.fallbackFiles
387
- : data.files;
388
- const filesToSync = data.hasOnlyHotUpdateFiles
389
- ? data.files
390
- : allAppFiles;
391
- const watchInfo = {
392
- liveSyncDeviceData: deviceDescriptor,
393
- projectData,
394
- // todo: remove stale files once everything is stable
395
- // currently, watcher fires multiple times & may clean up unsynced files
396
- // filesToRemove: data.staleFiles ?? [],
397
- filesToRemove: [],
398
- filesToSync,
399
- hmrData: data.hmrData,
346
+ async syncChangedDataOnDevices(data, projectData, liveSyncInfo) {
347
+ const successfullySyncedMessageFormat = `Successfully synced application %s on device %s.`;
348
+ const rebuiltInformation = {};
349
+ const deviceAction = async (device) => {
350
+ var _a, _b;
351
+ const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
352
+ const deviceDescriptor = _.find(deviceDescriptors, (dd) => dd.identifier === device.deviceInfo.identifier);
353
+ const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
354
+ const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, device.deviceInfo.platform, {
355
+ ...liveSyncInfo,
356
+ ...deviceDescriptor.buildData,
357
+ nativePrepare: {
358
+ skipNativePrepare: !!deviceDescriptor.skipNativePrepare,
359
+ },
360
+ watch: !liveSyncInfo.skipWatcher,
361
+ });
362
+ try {
363
+ const platformLiveSyncService = this.$liveSyncServiceResolver.resolveLiveSyncService(device.deviceInfo.platform);
364
+ const allAppFiles = ((_b = (_a = data.hmrData) === null || _a === void 0 ? void 0 : _a.fallbackFiles) === null || _b === void 0 ? void 0 : _b.length)
365
+ ? data.hmrData.fallbackFiles
366
+ : data.files;
367
+ const filesToSync = data.hasOnlyHotUpdateFiles
368
+ ? data.files
369
+ : allAppFiles;
370
+ const watchInfo = {
371
+ liveSyncDeviceData: deviceDescriptor,
372
+ projectData,
373
+ filesToRemove: [],
374
+ filesToSync,
375
+ hmrData: data.hmrData,
376
+ useHotModuleReload: liveSyncInfo.useHotModuleReload,
377
+ force: liveSyncInfo.force,
378
+ connectTimeout: 1000,
379
+ };
380
+ const deviceAppData = await platformLiveSyncService.getAppData(_.merge({ device, watch: true }, watchInfo));
381
+ if (data.hasNativeChanges) {
382
+ const rebuiltInfo = rebuiltInformation[platformData.platformNameLowerCase] &&
383
+ (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
384
+ rebuiltInformation[platformData.platformNameLowerCase]
385
+ .isEmulator === device.isEmulator);
386
+ if (!rebuiltInfo) {
387
+ await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData);
388
+ await deviceDescriptor.buildAction();
389
+ rebuiltInformation[platformData.platformNameLowerCase] = {
390
+ isEmulator: device.isEmulator,
391
+ platform: platformData.platformNameLowerCase,
392
+ packageFilePath: null,
393
+ };
394
+ }
395
+ await this.$deviceInstallAppService.installOnDevice(device, deviceDescriptor.buildData, rebuiltInformation[platformData.platformNameLowerCase]
396
+ .packageFilePath);
397
+ await platformLiveSyncService.syncAfterInstall(device, watchInfo);
398
+ await this.refreshApplication(projectData, {
399
+ deviceAppData,
400
+ modifiedFilesData: [],
401
+ isFullSync: false,
400
402
  useHotModuleReload: liveSyncInfo.useHotModuleReload,
401
- force: liveSyncInfo.force,
402
- connectTimeout: 1000,
403
- };
404
- const deviceAppData = yield platformLiveSyncService.getAppData(_.merge({ device, watch: true }, watchInfo));
405
- if (data.hasNativeChanges) {
406
- const rebuiltInfo = rebuiltInformation[platformData.platformNameLowerCase] &&
407
- (this.$mobileHelper.isAndroidPlatform(platformData.platformNameLowerCase) ||
408
- rebuiltInformation[platformData.platformNameLowerCase]
409
- .isEmulator === device.isEmulator);
410
- if (!rebuiltInfo) {
411
- yield this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData);
412
- yield deviceDescriptor.buildAction();
413
- rebuiltInformation[platformData.platformNameLowerCase] = {
414
- isEmulator: device.isEmulator,
415
- platform: platformData.platformNameLowerCase,
416
- packageFilePath: null,
417
- };
418
- }
419
- yield this.$deviceInstallAppService.installOnDevice(device, deviceDescriptor.buildData, rebuiltInformation[platformData.platformNameLowerCase]
420
- .packageFilePath);
421
- yield platformLiveSyncService.syncAfterInstall(device, watchInfo);
422
- yield this.refreshApplication(projectData, {
423
- deviceAppData,
424
- modifiedFilesData: [],
425
- isFullSync: false,
426
- useHotModuleReload: liveSyncInfo.useHotModuleReload,
427
- }, data, deviceDescriptor);
428
- this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
403
+ }, data, deviceDescriptor);
404
+ this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
405
+ }
406
+ else {
407
+ const isInHMRMode = liveSyncInfo.useHotModuleReload &&
408
+ data.hmrData &&
409
+ data.hmrData.hash;
410
+ if (isInHMRMode) {
411
+ this.$hmrStatusService.watchHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
429
412
  }
430
- else {
431
- const isInHMRMode = liveSyncInfo.useHotModuleReload &&
432
- data.hmrData &&
433
- data.hmrData.hash;
434
- if (isInHMRMode) {
435
- this.$hmrStatusService.watchHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
436
- }
437
- const watchAction = () => __awaiter(this, void 0, void 0, function* () {
438
- const liveSyncResultInfo = yield platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
439
- const fullSyncAction = () => __awaiter(this, void 0, void 0, function* () {
440
- watchInfo.filesToSync = allAppFiles;
441
- const fullLiveSyncResultInfo = yield platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
442
- // IMPORTANT: keep the same instance as we rely on side effects
443
- _.assign(liveSyncResultInfo, fullLiveSyncResultInfo);
444
- });
445
- yield this.$hooksService.executeBeforeHooks("watchAction", {
446
- hookArgs: {
447
- liveSyncResultInfo,
448
- filesToSync,
449
- allAppFiles,
450
- isInHMRMode,
451
- filesChangedEvent: data,
452
- },
453
- });
454
- yield this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor, fullSyncAction);
455
- if (!liveSyncResultInfo.didRecover && isInHMRMode) {
456
- const status = yield this.$hmrStatusService.getHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
457
- // the timeout is assumed OK as the app could be blocked on a breakpoint
458
- if (status === constants_1.HmrConstants.HMR_ERROR_STATUS) {
459
- yield fullSyncAction();
460
- liveSyncResultInfo.isFullSync = true;
461
- yield this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor);
462
- }
463
- }
464
- yield this.$hooksService.executeAfterHooks("watchAction", {
413
+ const watchAction = async () => {
414
+ const liveSyncResultInfo = await platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
415
+ const fullSyncAction = async () => {
416
+ watchInfo.filesToSync = allAppFiles;
417
+ const fullLiveSyncResultInfo = await platformLiveSyncService.liveSyncWatchAction(device, watchInfo);
418
+ _.assign(liveSyncResultInfo, fullLiveSyncResultInfo);
419
+ };
420
+ await this.$hooksService.executeBeforeHooks("watchAction", {
421
+ hookArgs: {
465
422
  liveSyncResultInfo,
466
423
  filesToSync,
467
424
  allAppFiles,
468
- filesChangedEvent: data,
469
425
  isInHMRMode,
470
- });
471
- this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
426
+ filesChangedEvent: data,
427
+ },
472
428
  });
473
- if (liveSyncInfo.useHotModuleReload) {
474
- try {
475
- this.$logger.trace("Try executing watch action without any preparation of files.");
476
- yield watchAction();
477
- this.$logger.trace("Successfully executed watch action without any preparation of files.");
478
- return;
479
- }
480
- catch (err) {
481
- this.$logger.trace(`Error while trying to execute fast sync. Now we'll check the state of the app and we'll try to resurrect from the error. The error is: ${err}`);
429
+ await this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor, fullSyncAction);
430
+ if (!liveSyncResultInfo.didRecover && isInHMRMode) {
431
+ const status = await this.$hmrStatusService.getHmrStatus(device.deviceInfo.identifier, data.hmrData.hash);
432
+ if (status === constants_1.HmrConstants.HMR_ERROR_STATUS) {
433
+ await fullSyncAction();
434
+ liveSyncResultInfo.isFullSync = true;
435
+ await this.refreshApplication(projectData, liveSyncResultInfo, data, deviceDescriptor);
482
436
  }
483
437
  }
484
- yield this.$deviceInstallAppService.installOnDeviceIfNeeded(device, deviceDescriptor.buildData);
485
- watchInfo.connectTimeout = null;
486
- yield watchAction();
438
+ await this.$hooksService.executeAfterHooks("watchAction", {
439
+ liveSyncResultInfo,
440
+ filesToSync,
441
+ allAppFiles,
442
+ filesChangedEvent: data,
443
+ isInHMRMode,
444
+ });
445
+ this.$logger.info(util.format(successfullySyncedMessageFormat, deviceAppData.appIdentifier, device.deviceInfo.identifier));
446
+ };
447
+ if (liveSyncInfo.useHotModuleReload) {
448
+ try {
449
+ this.$logger.trace("Try executing watch action without any preparation of files.");
450
+ await watchAction();
451
+ this.$logger.trace("Successfully executed watch action without any preparation of files.");
452
+ return;
453
+ }
454
+ catch (err) {
455
+ this.$logger.trace(`Error while trying to execute fast sync. Now we'll check the state of the app and we'll try to resurrect from the error. The error is: ${err}`);
456
+ }
487
457
  }
458
+ await this.$deviceInstallAppService.installOnDeviceIfNeeded(device, deviceDescriptor.buildData);
459
+ watchInfo.connectTimeout = null;
460
+ await watchAction();
488
461
  }
489
- catch (err) {
490
- this.$logger.warn(`Unable to apply changes for device: ${device.deviceInfo.identifier}. Error is: ${err && err.message}.`);
491
- this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
492
- projectDir: projectData.projectDir,
493
- deviceIdentifier: device.deviceInfo.identifier,
494
- applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
495
- error: err,
496
- });
497
- yield this.stop({
498
- projectDir: projectData.projectDir,
499
- deviceIdentifiers: [device.deviceInfo.identifier],
500
- stopOptions: { shouldAwaitAllActions: false },
501
- });
462
+ }
463
+ catch (err) {
464
+ this.$logger.warn(`Unable to apply changes for device: ${device.deviceInfo.identifier}. Error is: ${err && err.message}.`);
465
+ this.emitCore(constants_2.RunOnDeviceEvents.runOnDeviceError, {
466
+ projectDir: projectData.projectDir,
467
+ deviceIdentifier: device.deviceInfo.identifier,
468
+ applicationIdentifier: projectData.projectIdentifiers[device.deviceInfo.platform.toLowerCase()],
469
+ error: err,
470
+ });
471
+ await this.stop({
472
+ projectDir: projectData.projectDir,
473
+ deviceIdentifiers: [device.deviceInfo.identifier],
474
+ stopOptions: { shouldAwaitAllActions: false },
475
+ });
476
+ }
477
+ };
478
+ await this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => {
479
+ const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectData.projectDir);
480
+ return (data.platform.toLowerCase() ===
481
+ device.deviceInfo.platform.toLowerCase() &&
482
+ liveSyncProcessInfo &&
483
+ _.some(liveSyncProcessInfo.deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier));
484
+ }));
485
+ }
486
+ async addActionToChain(projectDir, action) {
487
+ const liveSyncInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
488
+ if (liveSyncInfo) {
489
+ liveSyncInfo.actionsChain = liveSyncInfo.actionsChain.then(async () => {
490
+ if (!liveSyncInfo.isStopped) {
491
+ liveSyncInfo.currentSyncAction = action();
492
+ const res = await liveSyncInfo.currentSyncAction;
493
+ return res;
502
494
  }
503
495
  });
504
- yield this.addActionToChain(projectData.projectDir, () => this.$devicesService.execute(deviceAction, (device) => {
505
- const liveSyncProcessInfo = this.$liveSyncProcessDataService.getPersistedData(projectData.projectDir);
506
- return (data.platform.toLowerCase() ===
507
- device.deviceInfo.platform.toLowerCase() &&
508
- liveSyncProcessInfo &&
509
- _.some(liveSyncProcessInfo.deviceDescriptors, (deviceDescriptor) => deviceDescriptor.identifier === device.deviceInfo.identifier));
510
- }));
511
- });
512
- }
513
- addActionToChain(projectDir, action) {
514
- return __awaiter(this, void 0, void 0, function* () {
515
- const liveSyncInfo = this.$liveSyncProcessDataService.getPersistedData(projectDir);
516
- if (liveSyncInfo) {
517
- liveSyncInfo.actionsChain = liveSyncInfo.actionsChain.then(() => __awaiter(this, void 0, void 0, function* () {
518
- if (!liveSyncInfo.isStopped) {
519
- liveSyncInfo.currentSyncAction = action();
520
- const res = yield liveSyncInfo.currentSyncAction;
521
- return res;
522
- }
523
- }));
524
- const result = yield liveSyncInfo.actionsChain;
525
- return result;
526
- }
527
- });
496
+ const result = await liveSyncInfo.actionsChain;
497
+ return result;
498
+ }
528
499
  }
529
500
  emitCore(event, data) {
530
501
  this.$logger.trace(`Will emit event ${event} with data`, data);
531
502
  this.emit(event, data);
532
503
  }
533
504
  }
505
+ exports.RunController = RunController;
534
506
  __decorate([
535
507
  (0, decorators_1.performanceLog)()
536
508
  ], RunController.prototype, "refreshApplicationWithoutDebug", null);
537
509
  __decorate([
538
510
  (0, decorators_1.cache)()
539
511
  ], RunController.prototype, "attachDeviceLostHandler", null);
540
- exports.RunController = RunController;
541
512
  yok_1.injector.register("runController", RunController);
542
- //# sourceMappingURL=run-controller.js.map