nativescript 8.9.0-alpha.2 → 8.9.0-dev.0

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 (345) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -20
  3. package/lib/base-package-manager.js +47 -64
  4. package/lib/bun-package-manager.js +65 -88
  5. package/lib/color.js +2 -2
  6. package/lib/commands/add-platform.js +14 -30
  7. package/lib/commands/apple-login.js +18 -29
  8. package/lib/commands/appstore-list.js +34 -45
  9. package/lib/commands/appstore-upload.js +52 -65
  10. package/lib/commands/build.js +55 -87
  11. package/lib/commands/clean.js +161 -176
  12. package/lib/commands/command-base.js +14 -27
  13. package/lib/commands/config.js +48 -67
  14. package/lib/commands/create-project.js +211 -230
  15. package/lib/commands/debug.js +66 -88
  16. package/lib/commands/deploy.js +28 -44
  17. package/lib/commands/embedding/embed.js +33 -52
  18. package/lib/commands/extensibility/install-extension.js +5 -16
  19. package/lib/commands/extensibility/list-extensions.js +13 -24
  20. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  21. package/lib/commands/fonts.js +30 -41
  22. package/lib/commands/generate-assets.js +13 -28
  23. package/lib/commands/generate-help.js +2 -13
  24. package/lib/commands/generate.js +12 -60
  25. package/lib/commands/info.js +2 -13
  26. package/lib/commands/install.js +34 -49
  27. package/lib/commands/list-platforms.js +14 -25
  28. package/lib/commands/migrate.js +15 -26
  29. package/lib/commands/native-add.js +23 -46
  30. package/lib/commands/platform-clean.js +19 -32
  31. package/lib/commands/plugin/add-plugin.js +12 -25
  32. package/lib/commands/plugin/build-plugin.js +31 -44
  33. package/lib/commands/plugin/create-plugin.js +110 -133
  34. package/lib/commands/plugin/list-plugins.js +22 -33
  35. package/lib/commands/plugin/remove-plugin.js +20 -33
  36. package/lib/commands/plugin/update-plugin.js +20 -33
  37. package/lib/commands/post-install.js +20 -33
  38. package/lib/commands/prepare.js +19 -35
  39. package/lib/commands/preview.js +49 -62
  40. package/lib/commands/remove-platform.js +7 -18
  41. package/lib/commands/resources/resources-update.js +13 -26
  42. package/lib/commands/run.js +55 -76
  43. package/lib/commands/start.js +6 -19
  44. package/lib/commands/test-init.js +123 -134
  45. package/lib/commands/test.js +66 -89
  46. package/lib/commands/typings.js +126 -142
  47. package/lib/commands/update-platform.js +22 -35
  48. package/lib/commands/update.js +30 -43
  49. package/lib/common/child-process.js +53 -72
  50. package/lib/common/codeGeneration/code-entity.js +1 -1
  51. package/lib/common/codeGeneration/code-printer.js +1 -1
  52. package/lib/common/command-params.js +7 -18
  53. package/lib/common/commands/analytics.js +27 -40
  54. package/lib/common/commands/autocompletion.js +39 -56
  55. package/lib/common/commands/device/device-log-stream.js +12 -23
  56. package/lib/common/commands/device/get-file.js +22 -33
  57. package/lib/common/commands/device/list-applications.js +12 -23
  58. package/lib/common/commands/device/list-devices.js +72 -87
  59. package/lib/common/commands/device/list-files.js +23 -34
  60. package/lib/common/commands/device/put-file.js +22 -33
  61. package/lib/common/commands/device/run-application.js +12 -25
  62. package/lib/common/commands/device/stop-application.js +11 -22
  63. package/lib/common/commands/device/uninstall-application.js +6 -17
  64. package/lib/common/commands/generate-messages.js +17 -28
  65. package/lib/common/commands/help.js +20 -33
  66. package/lib/common/commands/package-manager-get.js +6 -17
  67. package/lib/common/commands/package-manager-set.js +9 -20
  68. package/lib/common/commands/post-install.js +2 -13
  69. package/lib/common/commands/preuninstall.js +23 -38
  70. package/lib/common/commands/proxy/proxy-base.js +8 -19
  71. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  72. package/lib/common/commands/proxy/proxy-get.js +3 -14
  73. package/lib/common/commands/proxy/proxy-set.js +87 -100
  74. package/lib/common/constants.js +11 -11
  75. package/lib/common/decorators.js +10 -22
  76. package/lib/common/dispatchers.js +79 -96
  77. package/lib/common/errors.js +89 -104
  78. package/lib/common/file-system.js +108 -130
  79. package/lib/common/header.js +1 -2
  80. package/lib/common/helpers.js +149 -178
  81. package/lib/common/host-info.js +37 -50
  82. package/lib/common/http-client.js +93 -108
  83. package/lib/common/logger/appenders/cli-appender.js +1 -2
  84. package/lib/common/logger/appenders/emit-appender.js +1 -2
  85. package/lib/common/logger/layouts/cli-layout.js +1 -2
  86. package/lib/common/logger/logger.js +4 -4
  87. package/lib/common/mobile/android/android-application-manager.js +121 -142
  88. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  89. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  90. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  91. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  92. package/lib/common/mobile/android/android-device.js +68 -85
  93. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  94. package/lib/common/mobile/android/android-ini-file-parser.js +8 -6
  95. package/lib/common/mobile/android/android-log-filter.js +1 -1
  96. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  97. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  98. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  99. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  100. package/lib/common/mobile/android/logcat-helper.js +108 -127
  101. package/lib/common/mobile/application-manager-base.js +84 -107
  102. package/lib/common/mobile/device-log-provider-base.js +7 -18
  103. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  104. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  105. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  106. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  107. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  108. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  109. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  110. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  111. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  112. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  113. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  114. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  115. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  116. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  117. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  118. package/lib/common/mobile/mobile-core/devices-service.js +386 -436
  119. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  120. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  121. package/lib/common/mobile/mobile-helper.js +15 -26
  122. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  123. package/lib/common/opener.js +2 -2
  124. package/lib/common/prompter.js +90 -105
  125. package/lib/common/queue.js +9 -20
  126. package/lib/common/services/auto-completion-service.js +39 -52
  127. package/lib/common/services/cancellation.js +17 -28
  128. package/lib/common/services/commands-service.js +146 -169
  129. package/lib/common/services/help-service.js +132 -157
  130. package/lib/common/services/hooks-service.js +93 -108
  131. package/lib/common/services/ios-notification-service.js +21 -34
  132. package/lib/common/services/json-file-settings-service.js +52 -71
  133. package/lib/common/services/lock-service.js +35 -52
  134. package/lib/common/services/message-contract-generator.js +35 -46
  135. package/lib/common/services/micro-templating-service.js +4 -15
  136. package/lib/common/services/net-service.js +90 -107
  137. package/lib/common/services/project-files-manager.js +10 -23
  138. package/lib/common/services/proxy-service.js +13 -24
  139. package/lib/common/services/qr.js +13 -24
  140. package/lib/common/services/settings-service.js +1 -1
  141. package/lib/common/services/xcode-select-service.js +20 -35
  142. package/lib/common/utils.js +2 -2
  143. package/lib/common/validators/project-name-validator.js +1 -1
  144. package/lib/common/validators/validation-result.js +1 -1
  145. package/lib/common/verify-node-version.js +2 -3
  146. package/lib/common/yok.js +23 -36
  147. package/lib/config.js +36 -51
  148. package/lib/constants.js +24 -24
  149. package/lib/controllers/build-controller.js +82 -99
  150. package/lib/controllers/debug-controller.js +107 -128
  151. package/lib/controllers/deploy-controller.js +15 -23
  152. package/lib/controllers/migrate-controller.js +722 -795
  153. package/lib/controllers/platform-controller.js +70 -85
  154. package/lib/controllers/prepare-controller.js +232 -261
  155. package/lib/controllers/run-controller.js +397 -411
  156. package/lib/controllers/update-controller-base.js +16 -29
  157. package/lib/controllers/update-controller.js +94 -119
  158. package/lib/data/prepare-data.js +4 -1
  159. package/lib/definitions/ios.d.ts +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/CHANGELOG.md +0 -15
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  281. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  282. package/node_modules/@npmcli/move-file/package.json +0 -47
  283. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  284. package/node_modules/balanced-match/LICENSE.md +0 -21
  285. package/node_modules/balanced-match/README.md +0 -97
  286. package/node_modules/balanced-match/index.js +0 -62
  287. package/node_modules/balanced-match/package.json +0 -48
  288. package/node_modules/concat-map/.travis.yml +0 -4
  289. package/node_modules/concat-map/LICENSE +0 -18
  290. package/node_modules/concat-map/README.markdown +0 -62
  291. package/node_modules/concat-map/example/map.js +0 -6
  292. package/node_modules/concat-map/index.js +0 -13
  293. package/node_modules/concat-map/package.json +0 -43
  294. package/node_modules/concat-map/test/map.js +0 -39
  295. package/node_modules/fs.realpath/LICENSE +0 -43
  296. package/node_modules/fs.realpath/README.md +0 -33
  297. package/node_modules/fs.realpath/index.js +0 -66
  298. package/node_modules/fs.realpath/old.js +0 -303
  299. package/node_modules/fs.realpath/package.json +0 -26
  300. package/node_modules/inflight/LICENSE +0 -15
  301. package/node_modules/inflight/README.md +0 -37
  302. package/node_modules/inflight/inflight.js +0 -54
  303. package/node_modules/inflight/package.json +0 -29
  304. package/node_modules/inherits/LICENSE +0 -16
  305. package/node_modules/inherits/README.md +0 -42
  306. package/node_modules/inherits/inherits.js +0 -9
  307. package/node_modules/inherits/inherits_browser.js +0 -27
  308. package/node_modules/inherits/package.json +0 -29
  309. package/node_modules/once/LICENSE +0 -15
  310. package/node_modules/once/README.md +0 -79
  311. package/node_modules/once/once.js +0 -42
  312. package/node_modules/once/package.json +0 -33
  313. package/node_modules/path-is-absolute/index.js +0 -20
  314. package/node_modules/path-is-absolute/license +0 -21
  315. package/node_modules/path-is-absolute/package.json +0 -43
  316. package/node_modules/path-is-absolute/readme.md +0 -59
  317. package/node_modules/rimraf/CHANGELOG.md +0 -65
  318. package/node_modules/rimraf/LICENSE +0 -15
  319. package/node_modules/rimraf/README.md +0 -101
  320. package/node_modules/rimraf/bin.js +0 -68
  321. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  322. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  323. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  324. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  325. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  326. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  327. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  328. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  329. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  330. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  331. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  332. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  333. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  334. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  335. package/node_modules/rimraf/package.json +0 -32
  336. package/node_modules/rimraf/rimraf.js +0 -360
  337. package/node_modules/stringify-package/CHANGELOG.md +0 -16
  338. package/node_modules/stringify-package/LICENSE +0 -13
  339. package/node_modules/stringify-package/README.md +0 -55
  340. package/node_modules/stringify-package/index.js +0 -18
  341. package/node_modules/stringify-package/package.json +0 -38
  342. package/node_modules/wrappy/LICENSE +0 -15
  343. package/node_modules/wrappy/README.md +0 -36
  344. package/node_modules/wrappy/package.json +0 -29
  345. package/node_modules/wrappy/wrappy.js +0 -33
@@ -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
  const path = require("path");
13
4
  const _ = require("lodash");
@@ -33,135 +24,133 @@ class TestInitCommand {
33
24
  };
34
25
  this.$projectData.initializeProjectData();
35
26
  }
36
- execute(args) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- const projectDir = this.$projectData.projectDir;
39
- const frameworkToInstall = this.$options.framework ||
40
- (yield this.$prompter.promptForChoice("Select testing framework:", constants_1.TESTING_FRAMEWORKS));
41
- if (constants_1.TESTING_FRAMEWORKS.indexOf(frameworkToInstall) === -1) {
42
- this.$errors.failWithHelp(`Unknown or unsupported unit testing framework: ${frameworkToInstall}.`);
43
- }
44
- const projectFilesExtension = this.$projectData.projectType === constants_1.ProjectTypes.TsFlavorName ||
45
- this.$projectData.projectType === constants_1.ProjectTypes.NgFlavorName
46
- ? ".ts"
47
- : ".js";
48
- let modulesToInstall = [];
49
- try {
50
- modulesToInstall = this.$testInitializationService.getDependencies(frameworkToInstall);
51
- }
52
- catch (err) {
53
- this.$errors.fail(`Unable to install the unit testing dependencies. Error: '${err.message}'`);
54
- }
55
- modulesToInstall = modulesToInstall.filter((moduleToInstall) => !moduleToInstall.projectType ||
56
- moduleToInstall.projectType === projectFilesExtension);
57
- for (const mod of modulesToInstall) {
58
- let moduleToInstall = mod.name;
59
- moduleToInstall += `@${mod.version}`;
60
- yield this.$packageManager.install(moduleToInstall, projectDir, {
61
- "save-dev": true,
62
- "save-exact": true,
63
- optional: false,
64
- disableNpmInstall: this.$options.disableNpmInstall,
65
- frameworkPath: this.$options.frameworkPath,
66
- ignoreScripts: this.$options.ignoreScripts,
67
- path: this.$options.path,
68
- });
69
- const modulePath = path.join(projectDir, "node_modules", mod.name);
70
- const modulePackageJsonPath = path.join(modulePath, "package.json");
71
- const modulePackageJsonContent = this.$fs.readJson(modulePackageJsonPath);
72
- const modulePeerDependencies = modulePackageJsonContent.peerDependencies || {};
73
- for (const peerDependency in modulePeerDependencies) {
74
- const isPeerDependencyExcluded = _.includes(mod.excludedPeerDependencies, peerDependency);
75
- if (isPeerDependencyExcluded) {
76
- continue;
77
- }
78
- const dependencyVersion = modulePeerDependencies[peerDependency] || "*";
79
- try {
80
- yield this.$packageManager.install(`${peerDependency}@${dependencyVersion}`, projectDir, {
81
- "save-dev": true,
82
- "save-exact": true,
83
- disableNpmInstall: false,
84
- frameworkPath: this.$options.frameworkPath,
85
- ignoreScripts: this.$options.ignoreScripts,
86
- path: this.$options.path,
87
- });
88
- }
89
- catch (e) {
90
- this.$logger.error(e.message);
91
- }
92
- }
93
- }
94
- yield this.$pluginsService.add("@nativescript/unit-test-runner", this.$projectData);
95
- this.$logger.clearScreen();
96
- const bufferedLogs = [];
97
- const testsDir = path.join(this.$projectData.appDirectoryPath, "tests");
98
- const projectTestsDir = path.relative(this.$projectData.projectDir, testsDir);
99
- const relativeTestsDir = path.relative(this.$projectData.appDirectoryPath, testsDir);
100
- let shouldCreateSampleTests = true;
101
- if (this.$fs.exists(testsDir)) {
102
- const specFilenamePattern = `<filename>.spec${projectFilesExtension}`;
103
- bufferedLogs.push(color_1.color.yellow([
104
- `Note: The "${projectTestsDir}" directory already exists, will not create example tests in the project.`,
105
- `You may create "${specFilenamePattern}" files anywhere you'd like.`,
106
- "",
107
- ].join("\n")));
108
- shouldCreateSampleTests = false;
109
- }
110
- this.$fs.ensureDirectoryExists(testsDir);
111
- const frameworks = [frameworkToInstall]
112
- .concat(this.karmaConfigAdditionalFrameworks[frameworkToInstall] || [])
113
- .map((fw) => `'${fw}'`)
114
- .join(", ");
115
- const testFiles = `'${(0, helpers_1.fromWindowsRelativePathToUnix)(relativeTestsDir)}/**/*${projectFilesExtension}'`;
116
- const karmaConfTemplate = this.$resources.readText("test/karma.conf.js");
117
- const karmaConf = _.template(karmaConfTemplate)({
118
- frameworks,
119
- testFiles,
120
- basePath: this.$projectData.getAppDirectoryRelativePath(),
27
+ async execute(args) {
28
+ const projectDir = this.$projectData.projectDir;
29
+ const frameworkToInstall = this.$options.framework ||
30
+ (await this.$prompter.promptForChoice("Select testing framework:", constants_1.TESTING_FRAMEWORKS));
31
+ if (constants_1.TESTING_FRAMEWORKS.indexOf(frameworkToInstall) === -1) {
32
+ this.$errors.failWithHelp(`Unknown or unsupported unit testing framework: ${frameworkToInstall}.`);
33
+ }
34
+ const projectFilesExtension = this.$projectData.projectType === constants_1.ProjectTypes.TsFlavorName ||
35
+ this.$projectData.projectType === constants_1.ProjectTypes.NgFlavorName
36
+ ? ".ts"
37
+ : ".js";
38
+ let modulesToInstall = [];
39
+ try {
40
+ modulesToInstall = this.$testInitializationService.getDependencies(frameworkToInstall);
41
+ }
42
+ catch (err) {
43
+ this.$errors.fail(`Unable to install the unit testing dependencies. Error: '${err.message}'`);
44
+ }
45
+ modulesToInstall = modulesToInstall.filter((moduleToInstall) => !moduleToInstall.projectType ||
46
+ moduleToInstall.projectType === projectFilesExtension);
47
+ for (const mod of modulesToInstall) {
48
+ let moduleToInstall = mod.name;
49
+ moduleToInstall += `@${mod.version}`;
50
+ await this.$packageManager.install(moduleToInstall, projectDir, {
51
+ "save-dev": true,
52
+ "save-exact": true,
53
+ optional: false,
54
+ disableNpmInstall: this.$options.disableNpmInstall,
55
+ frameworkPath: this.$options.frameworkPath,
56
+ ignoreScripts: this.$options.ignoreScripts,
57
+ path: this.$options.path,
121
58
  });
122
- this.$fs.writeFile(path.join(projectDir, "karma.conf.js"), karmaConf);
123
- const exampleFilePath = this.$resources.resolvePath(`test/example.${frameworkToInstall}${projectFilesExtension}`);
124
- const targetExampleTestPath = path.join(testsDir, `example.spec${projectFilesExtension}`);
125
- if (shouldCreateSampleTests && this.$fs.exists(exampleFilePath)) {
126
- this.$fs.copyFile(exampleFilePath, targetExampleTestPath);
127
- const targetExampleTestRelativePath = path.relative(projectDir, targetExampleTestPath);
128
- bufferedLogs.push(`Added example test: ${color_1.color.yellow(targetExampleTestRelativePath)}`);
129
- }
130
- const testMainResourcesPath = this.$resources.resolvePath(`test/test-main${projectFilesExtension}`);
131
- const testMainPath = path.join(this.$projectData.appDirectoryPath, `test${projectFilesExtension}`);
132
- if (!this.$fs.exists(testMainPath)) {
133
- this.$fs.copyFile(testMainResourcesPath, testMainPath);
134
- const testMainRelativePath = path.relative(projectDir, testMainPath);
135
- bufferedLogs.push(`Main test entrypoint created: ${color_1.color.yellow(testMainRelativePath)}`);
59
+ const modulePath = path.join(projectDir, "node_modules", mod.name);
60
+ const modulePackageJsonPath = path.join(modulePath, "package.json");
61
+ const modulePackageJsonContent = this.$fs.readJson(modulePackageJsonPath);
62
+ const modulePeerDependencies = modulePackageJsonContent.peerDependencies || {};
63
+ for (const peerDependency in modulePeerDependencies) {
64
+ const isPeerDependencyExcluded = _.includes(mod.excludedPeerDependencies, peerDependency);
65
+ if (isPeerDependencyExcluded) {
66
+ continue;
67
+ }
68
+ const dependencyVersion = modulePeerDependencies[peerDependency] || "*";
69
+ try {
70
+ await this.$packageManager.install(`${peerDependency}@${dependencyVersion}`, projectDir, {
71
+ "save-dev": true,
72
+ "save-exact": true,
73
+ disableNpmInstall: false,
74
+ frameworkPath: this.$options.frameworkPath,
75
+ ignoreScripts: this.$options.ignoreScripts,
76
+ path: this.$options.path,
77
+ });
78
+ }
79
+ catch (e) {
80
+ this.$logger.error(e.message);
81
+ }
136
82
  }
137
- const testTsConfigTemplate = this.$resources.readText("test/tsconfig.spec.json");
138
- const testTsConfig = _.template(testTsConfigTemplate)({
139
- basePath: this.$projectData.getAppDirectoryRelativePath(),
140
- });
141
- this.$fs.writeFile(path.join(projectDir, "tsconfig.spec.json"), testTsConfig);
142
- bufferedLogs.push(`Added/replaced ${color_1.color.yellow("tsconfig.spec.json")}`);
143
- const greyDollarSign = color_1.color.grey("$");
144
- this.$logger.info([
145
- [
146
- color_1.color.green(`Tests using`),
147
- color_1.color.cyan(frameworkToInstall),
148
- color_1.color.green(`were successfully initialized.`),
149
- ].join(" "),
150
- "",
151
- ...bufferedLogs,
152
- "",
153
- color_1.color.yellow(`Note: @nativescript/unit-test-runner was included in "dependencies" as a convenience to automatically adjust your app's Info.plist on iOS and AndroidManifest.xml on Android to ensure the socket connects properly.`),
154
- "",
155
- color_1.color.yellow(`For production you may want to move to "devDependencies" and manage the settings yourself.`),
83
+ }
84
+ await this.$pluginsService.add("@nativescript/unit-test-runner", this.$projectData);
85
+ this.$logger.clearScreen();
86
+ const bufferedLogs = [];
87
+ const testsDir = path.join(this.$projectData.appDirectoryPath, "tests");
88
+ const projectTestsDir = path.relative(this.$projectData.projectDir, testsDir);
89
+ const relativeTestsDir = path.relative(this.$projectData.appDirectoryPath, testsDir);
90
+ let shouldCreateSampleTests = true;
91
+ if (this.$fs.exists(testsDir)) {
92
+ const specFilenamePattern = `<filename>.spec${projectFilesExtension}`;
93
+ bufferedLogs.push(color_1.color.yellow([
94
+ `Note: The "${projectTestsDir}" directory already exists, will not create example tests in the project.`,
95
+ `You may create "${specFilenamePattern}" files anywhere you'd like.`,
156
96
  "",
157
- "",
158
- `You can now run your tests:`,
159
- "",
160
- ` ${greyDollarSign} ${color_1.color.green("ns test ios")}`,
161
- ` ${greyDollarSign} ${color_1.color.green("ns test android")}`,
162
- "",
163
- ].join("\n"));
97
+ ].join("\n")));
98
+ shouldCreateSampleTests = false;
99
+ }
100
+ this.$fs.ensureDirectoryExists(testsDir);
101
+ const frameworks = [frameworkToInstall]
102
+ .concat(this.karmaConfigAdditionalFrameworks[frameworkToInstall] || [])
103
+ .map((fw) => `'${fw}'`)
104
+ .join(", ");
105
+ const testFiles = `'${(0, helpers_1.fromWindowsRelativePathToUnix)(relativeTestsDir)}/**/*${projectFilesExtension}'`;
106
+ const karmaConfTemplate = this.$resources.readText("test/karma.conf.js");
107
+ const karmaConf = _.template(karmaConfTemplate)({
108
+ frameworks,
109
+ testFiles,
110
+ basePath: this.$projectData.getAppDirectoryRelativePath(),
111
+ });
112
+ this.$fs.writeFile(path.join(projectDir, "karma.conf.js"), karmaConf);
113
+ const exampleFilePath = this.$resources.resolvePath(`test/example.${frameworkToInstall}${projectFilesExtension}`);
114
+ const targetExampleTestPath = path.join(testsDir, `example.spec${projectFilesExtension}`);
115
+ if (shouldCreateSampleTests && this.$fs.exists(exampleFilePath)) {
116
+ this.$fs.copyFile(exampleFilePath, targetExampleTestPath);
117
+ const targetExampleTestRelativePath = path.relative(projectDir, targetExampleTestPath);
118
+ bufferedLogs.push(`Added example test: ${color_1.color.yellow(targetExampleTestRelativePath)}`);
119
+ }
120
+ const testMainResourcesPath = this.$resources.resolvePath(`test/test-main${projectFilesExtension}`);
121
+ const testMainPath = path.join(this.$projectData.appDirectoryPath, `test${projectFilesExtension}`);
122
+ if (!this.$fs.exists(testMainPath)) {
123
+ this.$fs.copyFile(testMainResourcesPath, testMainPath);
124
+ const testMainRelativePath = path.relative(projectDir, testMainPath);
125
+ bufferedLogs.push(`Main test entrypoint created: ${color_1.color.yellow(testMainRelativePath)}`);
126
+ }
127
+ const testTsConfigTemplate = this.$resources.readText("test/tsconfig.spec.json");
128
+ const testTsConfig = _.template(testTsConfigTemplate)({
129
+ basePath: this.$projectData.getAppDirectoryRelativePath(),
164
130
  });
131
+ this.$fs.writeFile(path.join(projectDir, "tsconfig.spec.json"), testTsConfig);
132
+ bufferedLogs.push(`Added/replaced ${color_1.color.yellow("tsconfig.spec.json")}`);
133
+ const greyDollarSign = color_1.color.grey("$");
134
+ this.$logger.info([
135
+ [
136
+ color_1.color.green(`Tests using`),
137
+ color_1.color.cyan(frameworkToInstall),
138
+ color_1.color.green(`were successfully initialized.`),
139
+ ].join(" "),
140
+ "",
141
+ ...bufferedLogs,
142
+ "",
143
+ color_1.color.yellow(`Note: @nativescript/unit-test-runner was included in "dependencies" as a convenience to automatically adjust your app's Info.plist on iOS and AndroidManifest.xml on Android to ensure the socket connects properly.`),
144
+ "",
145
+ color_1.color.yellow(`For production you may want to move to "devDependencies" and manage the settings yourself.`),
146
+ "",
147
+ "",
148
+ `You can now run your tests:`,
149
+ "",
150
+ ` ${greyDollarSign} ${color_1.color.green("ns test ios")}`,
151
+ ` ${greyDollarSign} ${color_1.color.green("ns test android")}`,
152
+ "",
153
+ ].join("\n"));
165
154
  }
166
155
  }
167
156
  yok_1.injector.registerCommand("test|init", TestInitCommand);
@@ -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
  const helpers_1 = require("../common/helpers");
13
4
  const constants_1 = require("../constants");
@@ -19,67 +10,63 @@ class TestCommandBase {
19
10
  hmr: { type: "boolean", default: false, hasSensitiveValue: false },
20
11
  };
21
12
  }
22
- execute(args) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- let devices = [];
25
- if (this.$options.debugBrk) {
26
- yield this.$devicesService.initialize({
27
- platform: this.platform,
28
- deviceId: this.$options.device,
29
- emulator: this.$options.emulator,
30
- skipInferPlatform: !this.platform,
31
- sdk: this.$options.sdk,
32
- });
33
- const selectedDeviceForDebug = yield this.$devicesService.pickSingleDevice({
34
- onlyEmulators: this.$options.emulator,
35
- onlyDevices: this.$options.forDevice,
36
- deviceId: this.$options.device,
37
- });
38
- devices = [selectedDeviceForDebug];
39
- }
40
- else {
41
- devices = yield this.$liveSyncCommandHelper.getDeviceInstances(this.platform);
42
- }
43
- if (!this.$options.env) {
44
- this.$options.env = {};
45
- }
46
- this.$options.env.unitTesting = true;
47
- const liveSyncInfo = this.$liveSyncCommandHelper.getLiveSyncData(this.$projectData.projectDir);
48
- const deviceDebugMap = {};
49
- devices.forEach((device) => (deviceDebugMap[device.deviceInfo.identifier] = this.$options.debugBrk));
50
- const deviceDescriptors = yield this.$liveSyncCommandHelper.createDeviceDescriptors(devices, this.platform, { deviceDebugMap });
51
- yield this.$testExecutionService.startKarmaServer(this.platform, liveSyncInfo, deviceDescriptors);
52
- process.exit(0);
53
- });
13
+ async execute(args) {
14
+ let devices = [];
15
+ if (this.$options.debugBrk) {
16
+ await this.$devicesService.initialize({
17
+ platform: this.platform,
18
+ deviceId: this.$options.device,
19
+ emulator: this.$options.emulator,
20
+ skipInferPlatform: !this.platform,
21
+ sdk: this.$options.sdk,
22
+ });
23
+ const selectedDeviceForDebug = await this.$devicesService.pickSingleDevice({
24
+ onlyEmulators: this.$options.emulator,
25
+ onlyDevices: this.$options.forDevice,
26
+ deviceId: this.$options.device,
27
+ });
28
+ devices = [selectedDeviceForDebug];
29
+ }
30
+ else {
31
+ devices = await this.$liveSyncCommandHelper.getDeviceInstances(this.platform);
32
+ }
33
+ if (!this.$options.env) {
34
+ this.$options.env = {};
35
+ }
36
+ this.$options.env.unitTesting = true;
37
+ const liveSyncInfo = this.$liveSyncCommandHelper.getLiveSyncData(this.$projectData.projectDir);
38
+ const deviceDebugMap = {};
39
+ devices.forEach((device) => (deviceDebugMap[device.deviceInfo.identifier] = this.$options.debugBrk));
40
+ const deviceDescriptors = await this.$liveSyncCommandHelper.createDeviceDescriptors(devices, this.platform, { deviceDebugMap });
41
+ await this.$testExecutionService.startKarmaServer(this.platform, liveSyncInfo, deviceDescriptors);
42
+ process.exit(0);
54
43
  }
55
- canExecute(args) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- if (!this.$options.force) {
58
- if (this.$options.hmr) {
59
- this.$errors.fail("The `--hmr` option is not supported for this command.");
60
- }
61
- yield this.$migrateController.validate({
62
- projectDir: this.$projectData.projectDir,
63
- platforms: [this.platform],
64
- });
44
+ async canExecute(args) {
45
+ if (!this.$options.force) {
46
+ if (this.$options.hmr) {
47
+ this.$errors.fail("The `--hmr` option is not supported for this command.");
65
48
  }
66
- this.$projectData.initializeProjectData();
67
- this.$analyticsService.setShouldDispose(this.$options.justlaunch || !this.$options.watch);
68
- this.$cleanupService.setShouldDispose(this.$options.justlaunch || !this.$options.watch);
69
- const output = yield this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
70
- platform: this.platform,
49
+ await this.$migrateController.validate({
71
50
  projectDir: this.$projectData.projectDir,
72
- options: this.$options,
51
+ platforms: [this.platform],
73
52
  });
74
- const canStartKarmaServer = yield this.$testExecutionService.canStartKarmaServer(this.$projectData);
75
- if (!canStartKarmaServer) {
76
- this.$errors.fail({
77
- formatStr: "Error: In order to run unit tests, your project must already be configured by running $ ns test init.",
78
- errorCode: 133,
79
- });
80
- }
81
- return output.canExecute && canStartKarmaServer;
53
+ }
54
+ this.$projectData.initializeProjectData();
55
+ this.$analyticsService.setShouldDispose(this.$options.justlaunch || !this.$options.watch);
56
+ this.$cleanupService.setShouldDispose(this.$options.justlaunch || !this.$options.watch);
57
+ const output = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
58
+ platform: this.platform,
59
+ projectDir: this.$projectData.projectDir,
60
+ options: this.$options,
82
61
  });
62
+ const canStartKarmaServer = await this.$testExecutionService.canStartKarmaServer(this.$projectData);
63
+ if (!canStartKarmaServer) {
64
+ this.$errors.fail({
65
+ formatStr: "Error: In order to run unit tests, your project must already be configured by running $ ns test init.",
66
+ errorCode: 133,
67
+ });
68
+ }
69
+ return output.canExecute && canStartKarmaServer;
83
70
  }
84
71
  }
85
72
  class TestAndroidCommand extends TestCommandBase {
@@ -97,33 +84,23 @@ class TestAndroidCommand extends TestCommandBase {
97
84
  this.$migrateController = $migrateController;
98
85
  this.platform = "android";
99
86
  }
100
- execute(args) {
101
- const _super = Object.create(null, {
102
- execute: { get: () => super.execute }
103
- });
104
- return __awaiter(this, void 0, void 0, function* () {
105
- yield _super.execute.call(this, args);
106
- });
87
+ async execute(args) {
88
+ await super.execute(args);
107
89
  }
108
- canExecute(args) {
109
- const _super = Object.create(null, {
110
- canExecute: { get: () => super.canExecute }
111
- });
112
- return __awaiter(this, void 0, void 0, function* () {
113
- const canExecuteBase = yield _super.canExecute.call(this, args);
114
- if (canExecuteBase) {
115
- if ((this.$options.release || this.$options.aab) &&
116
- !(0, helpers_1.hasValidAndroidSigning)(this.$options)) {
117
- if (this.$options.release) {
118
- this.$errors.failWithHelp(constants_1.ANDROID_RELEASE_BUILD_ERROR_MESSAGE);
119
- }
120
- else {
121
- this.$errors.failWithHelp(constants_1.ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE);
122
- }
90
+ async canExecute(args) {
91
+ const canExecuteBase = await super.canExecute(args);
92
+ if (canExecuteBase) {
93
+ if ((this.$options.release || this.$options.aab) &&
94
+ !(0, helpers_1.hasValidAndroidSigning)(this.$options)) {
95
+ if (this.$options.release) {
96
+ this.$errors.failWithHelp(constants_1.ANDROID_RELEASE_BUILD_ERROR_MESSAGE);
97
+ }
98
+ else {
99
+ this.$errors.failWithHelp(constants_1.ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE);
123
100
  }
124
101
  }
125
- return canExecuteBase;
126
- });
102
+ }
103
+ return canExecuteBase;
127
104
  }
128
105
  }
129
106
  class TestIosCommand extends TestCommandBase {