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