@akylas/nativescript-cli 8.7.2 → 8.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.UpdateControllerBase = void 0;
13
4
  const path = require("path");
@@ -58,27 +49,23 @@ class UpdateControllerBase {
58
49
  const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion(lowercasePlatform, projectData);
59
50
  return !!currentPlatformVersion;
60
51
  }
61
- getMaxRuntimeVersion({ platform, projectData, }) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- const lowercasePlatform = platform.toLowerCase();
64
- const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion(lowercasePlatform, projectData);
65
- const platformData = this.$platformsDataService.getPlatformData(lowercasePlatform, projectData);
66
- if (currentPlatformVersion) {
67
- return ((yield this.$packageInstallationManager.getMaxSatisfyingVersionSafe(platformData.frameworkPackageName, currentPlatformVersion)) || currentPlatformVersion);
68
- }
69
- });
52
+ async getMaxRuntimeVersion({ platform, projectData, }) {
53
+ const lowercasePlatform = platform.toLowerCase();
54
+ const currentPlatformVersion = this.$platformCommandHelper.getCurrentPlatformVersion(lowercasePlatform, projectData);
55
+ const platformData = this.$platformsDataService.getPlatformData(lowercasePlatform, projectData);
56
+ if (currentPlatformVersion) {
57
+ return ((await this.$packageInstallationManager.getMaxSatisfyingVersionSafe(platformData.frameworkPackageName, currentPlatformVersion)) || currentPlatformVersion);
58
+ }
70
59
  }
71
- _getPackageManifest(templateName, version) {
72
- return __awaiter(this, void 0, void 0, function* () {
73
- const packageVersion = semver.valid(version) ||
74
- (yield this.$packageManager.getTagVersion(templateName, version));
75
- if (packageVersion && semver.valid(packageVersion)) {
76
- return yield this.$pacoteService.manifest(`${templateName}@${packageVersion}`, { fullMetadata: true });
77
- }
78
- else {
79
- throw new Error(`Failed to get information for package: ${templateName}@${version}`);
80
- }
81
- });
60
+ async _getPackageManifest(templateName, version) {
61
+ const packageVersion = semver.valid(version) ||
62
+ (await this.$packageManager.getTagVersion(templateName, version));
63
+ if (packageVersion && semver.valid(packageVersion)) {
64
+ return await this.$pacoteService.manifest(`${templateName}@${packageVersion}`, { fullMetadata: true });
65
+ }
66
+ else {
67
+ throw new Error(`Failed to get information for package: ${templateName}@${version}`);
68
+ }
82
69
  }
83
70
  }
84
71
  exports.UpdateControllerBase = UpdateControllerBase;
@@ -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.UpdateController = void 0;
13
4
  const semver = require("semver");
@@ -33,127 +24,112 @@ class UpdateController extends update_controller_base_1.UpdateControllerBase {
33
24
  this.$projectCleanupService = $projectCleanupService;
34
25
  this.$terminalSpinnerService = $terminalSpinnerService;
35
26
  }
36
- update(updateOptions) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- this.spinner = this.$terminalSpinnerService.createSpinner();
39
- const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
40
- updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
41
- this.spinner.info("Backing up project files before update");
42
- yield this.backupProject();
43
- this.spinner.succeed("Project files have been backed up");
44
- this.spinner.info("Cleaning up project files before update");
45
- yield this.cleanUpProject();
46
- this.spinner.succeed("Project files have been cleaned up");
47
- this.spinner.info("Updating project dependencies");
48
- yield this.updateDependencies(projectData, updateOptions.version);
49
- this.spinner.succeed("Project dependencies have been updated");
50
- this.spinner.succeed("Update complete.");
51
- this.$logger.info("");
52
- this.$logger.printMarkdown("Project has been successfully updated. The next step is to run `ns run <platform>` to ensure everything is working properly." +
53
- "\n\nPlease note that you may need additional changes to complete the update.");
54
- });
27
+ async update(updateOptions) {
28
+ this.spinner = this.$terminalSpinnerService.createSpinner();
29
+ const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
30
+ updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
31
+ this.spinner.info("Backing up project files before update");
32
+ await this.backupProject();
33
+ this.spinner.succeed("Project files have been backed up");
34
+ this.spinner.info("Cleaning up project files before update");
35
+ await this.cleanUpProject();
36
+ this.spinner.succeed("Project files have been cleaned up");
37
+ this.spinner.info("Updating project dependencies");
38
+ await this.updateDependencies(projectData, updateOptions.version);
39
+ this.spinner.succeed("Project dependencies have been updated");
40
+ this.spinner.succeed("Update complete.");
41
+ this.$logger.info("");
42
+ this.$logger.printMarkdown("Project has been successfully updated. The next step is to run `ns run <platform>` to ensure everything is working properly." +
43
+ "\n\nPlease note that you may need additional changes to complete the update.");
55
44
  }
56
- shouldUpdate(updateOptions) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
59
- updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
60
- for (const dependency of UpdateController.updatableDependencies) {
61
- this.$logger.trace(`Checking if ${dependency.packageName} needs to be updated...`);
62
- const desiredVersion = yield this.getVersionFromTagOrVersion(dependency.packageName, updateOptions.version);
63
- if (typeof desiredVersion === "boolean") {
64
- this.$logger.trace(`Package ${dependency.packageName} does not have version/tag ${updateOptions.version}. Skipping.`);
65
- continue;
66
- }
67
- const shouldUpdate = yield this.shouldUpdateDependency(projectData, dependency, desiredVersion);
68
- if (shouldUpdate) {
69
- this.$logger.trace(`shouldUpdate is true because '${dependency.packageName} needs to be updated.'`);
70
- return true;
71
- }
72
- }
73
- return false;
74
- });
75
- }
76
- updateDependencies(projectData, version) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- for (const dependency of UpdateController.updatableDependencies) {
79
- yield this.updateDependency(projectData, dependency, version);
80
- }
81
- });
82
- }
83
- updateDependency(projectData, dependency, version) {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- if (!this.hasDependency(dependency, projectData)) {
86
- return;
87
- }
88
- const desiredVersion = yield this.getVersionFromTagOrVersion(dependency.packageName, version);
45
+ async shouldUpdate(updateOptions) {
46
+ const projectData = this.$projectDataService.getProjectData(updateOptions.projectDir);
47
+ updateOptions.version = updateOptions.version || constants_1.PackageVersion.LATEST;
48
+ for (const dependency of UpdateController.updatableDependencies) {
49
+ this.$logger.trace(`Checking if ${dependency.packageName} needs to be updated...`);
50
+ const desiredVersion = await this.getVersionFromTagOrVersion(dependency.packageName, updateOptions.version);
89
51
  if (typeof desiredVersion === "boolean") {
90
- this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} does not have version/tag ${color_1.color.green(version)}. ` +
91
- color_1.color.yellow("Skipping."));
92
- return;
52
+ this.$logger.trace(`Package ${dependency.packageName} does not have version/tag ${updateOptions.version}. Skipping.`);
53
+ continue;
93
54
  }
94
- const shouldUpdate = yield this.shouldUpdateDependency(projectData, dependency, desiredVersion);
95
- if (!shouldUpdate) {
96
- return;
55
+ const shouldUpdate = await this.shouldUpdateDependency(projectData, dependency, desiredVersion);
56
+ if (shouldUpdate) {
57
+ this.$logger.trace(`shouldUpdate is true because '${dependency.packageName} needs to be updated.'`);
58
+ return true;
97
59
  }
98
- const updatedVersion = (() => {
99
- if (desiredVersion === version) {
100
- return desiredVersion;
101
- }
102
- if (semver.coerce(desiredVersion).version === desiredVersion) {
103
- return `~${desiredVersion}`;
104
- }
105
- return desiredVersion;
106
- })();
107
- this.$pluginsService.addToPackageJson(dependency.packageName, updatedVersion, dependency.isDev, projectData.projectDir);
108
- this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(updatedVersion)}`);
109
- });
60
+ }
61
+ return false;
110
62
  }
111
- shouldUpdateDependency(projectData, dependency, desiredVersion) {
112
- return __awaiter(this, void 0, void 0, function* () {
113
- const installedVersion = yield this.$packageInstallationManager.getInstalledDependencyVersion(dependency.packageName, projectData.projectDir);
114
- if (!installedVersion) {
115
- return false;
116
- }
117
- return installedVersion != desiredVersion;
118
- });
63
+ async updateDependencies(projectData, version) {
64
+ for (const dependency of UpdateController.updatableDependencies) {
65
+ await this.updateDependency(projectData, dependency, version);
66
+ }
119
67
  }
120
- getVersionFromTagOrVersion(packageName, versionOrTag) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- if (semver.valid(versionOrTag) || semver.validRange(versionOrTag)) {
123
- return versionOrTag;
68
+ async updateDependency(projectData, dependency, version) {
69
+ if (!this.hasDependency(dependency, projectData)) {
70
+ return;
71
+ }
72
+ const desiredVersion = await this.getVersionFromTagOrVersion(dependency.packageName, version);
73
+ if (typeof desiredVersion === "boolean") {
74
+ this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} does not have version/tag ${color_1.color.green(version)}. ` +
75
+ color_1.color.yellow("Skipping."));
76
+ return;
77
+ }
78
+ const shouldUpdate = await this.shouldUpdateDependency(projectData, dependency, desiredVersion);
79
+ if (!shouldUpdate) {
80
+ return;
81
+ }
82
+ const updatedVersion = (() => {
83
+ if (desiredVersion === version) {
84
+ return desiredVersion;
124
85
  }
125
- const version = yield this.$packageManager.getTagVersion(packageName, versionOrTag);
126
- if (!version) {
127
- return false;
86
+ if (semver.coerce(desiredVersion).version === desiredVersion) {
87
+ return `~${desiredVersion}`;
128
88
  }
129
- return version;
130
- });
89
+ return desiredVersion;
90
+ })();
91
+ this.$pluginsService.addToPackageJson(dependency.packageName, updatedVersion, dependency.isDev, projectData.projectDir);
92
+ this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(updatedVersion)}`);
131
93
  }
132
- backupProject() {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const backup = this.$projectBackupService.getBackup("migration");
135
- backup.addPaths([...UpdateController.pathsToBackup]);
136
- try {
137
- return backup.create();
138
- }
139
- catch (error) {
140
- this.spinner.fail(`Project backup failed.`);
141
- backup.remove();
142
- this.$errors.fail(`Project backup failed. Error is: ${error.message}`);
143
- }
144
- });
94
+ async shouldUpdateDependency(projectData, dependency, desiredVersion) {
95
+ const installedVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(dependency.packageName, projectData.projectDir);
96
+ if (!installedVersion) {
97
+ return false;
98
+ }
99
+ return installedVersion != desiredVersion;
100
+ }
101
+ async getVersionFromTagOrVersion(packageName, versionOrTag) {
102
+ if (semver.valid(versionOrTag) || semver.validRange(versionOrTag)) {
103
+ return versionOrTag;
104
+ }
105
+ const version = await this.$packageManager.getTagVersion(packageName, versionOrTag);
106
+ if (!version) {
107
+ return false;
108
+ }
109
+ return version;
110
+ }
111
+ async backupProject() {
112
+ const backup = this.$projectBackupService.getBackup("migration");
113
+ backup.addPaths([...UpdateController.pathsToBackup]);
114
+ try {
115
+ return backup.create();
116
+ }
117
+ catch (error) {
118
+ this.spinner.fail(`Project backup failed.`);
119
+ backup.remove();
120
+ this.$errors.fail(`Project backup failed. Error is: ${error.message}`);
121
+ }
145
122
  }
146
- cleanUpProject() {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- yield this.$projectCleanupService.clean([
149
- constants.HOOKS_DIR_NAME,
150
- this.$projectDataService.getProjectData().getBuildRelativeDirectoryPath(),
151
- constants.NODE_MODULES_FOLDER_NAME,
152
- constants.PACKAGE_LOCK_JSON_FILE_NAME,
153
- ]);
154
- });
123
+ async cleanUpProject() {
124
+ await this.$projectCleanupService.clean([
125
+ constants.HOOKS_DIR_NAME,
126
+ this.$projectDataService.getProjectData().getBuildRelativeDirectoryPath(),
127
+ constants.NODE_MODULES_FOLDER_NAME,
128
+ constants.PACKAGE_LOCK_JSON_FILE_NAME,
129
+ ]);
155
130
  }
156
131
  }
132
+ exports.UpdateController = UpdateController;
157
133
  UpdateController.updatableDependencies = [
158
134
  {
159
135
  packageName: "@nativescript/core",
@@ -184,5 +160,4 @@ UpdateController.pathsToBackup = [
184
160
  constants.PACKAGE_LOCK_JSON_FILE_NAME,
185
161
  constants.CONFIG_NS_FILE_NAME,
186
162
  ];
187
- exports.UpdateController = UpdateController;
188
163
  yok_1.injector.register("updateController", UpdateController);
@@ -24,6 +24,7 @@ class IOSBuildData extends BuildData {
24
24
  this.mobileProvisionData = data.mobileProvisionData;
25
25
  this.buildForAppStore = data.buildForAppStore;
26
26
  this.iCloudContainerEnvironment = data.iCloudContainerEnvironment;
27
+ this.hostProjectPath = data.hostProjectPath;
27
28
  }
28
29
  }
29
30
  exports.IOSBuildData = IOSBuildData;
@@ -39,6 +40,7 @@ class AndroidBuildData extends BuildData {
39
40
  this.gradleFlavor = data.gradleFlavor;
40
41
  this.gradlePath = data.gradlePath;
41
42
  this.gradleArgs = data.gradleArgs;
43
+ this.hostProjectPath = data.hostProjectPath;
42
44
  }
43
45
  }
44
46
  exports.AndroidBuildData = AndroidBuildData;
@@ -24,11 +24,15 @@ class PrepareData extends controller_data_base_1.ControllerDataBase {
24
24
  }
25
25
  this.release = data.release;
26
26
  this.hmr = data.hmr || data.useHotModuleReload;
27
- this.env = Object.assign(Object.assign({}, env), { hmr: data.hmr || data.useHotModuleReload });
27
+ this.env = {
28
+ ...env,
29
+ hmr: data.hmr || data.useHotModuleReload,
30
+ };
28
31
  this.watch = data.watch;
29
32
  if (_.isBoolean(data.watchNative)) {
30
33
  this.watchNative = data.watchNative;
31
34
  }
35
+ this.hostProjectPath = data.hostProjectPath;
32
36
  }
33
37
  }
34
38
  exports.PrepareData = PrepareData;
@@ -578,14 +578,20 @@ interface IAndroidBundleOptions {
578
578
  aab: boolean;
579
579
  }
580
580
 
581
- interface IAndroidOptions {
582
- gradleArgs: string[];
583
- gradleFlavor: string;
581
+ interface IEmbedOptions {
582
+ hostProjectPath: string;
583
+ hostProjectModuleName: string;
584
+ }
585
+
586
+ interface IAndroidOptions extends IEmbedOptions {
584
587
  gradlePath: string;
588
+ gradleFlavor: string;
585
589
  gradleArgs: string[];
586
590
  overrideRuntimeGradleFiles: boolean;
587
591
  }
588
592
 
593
+ interface IIOSOptions extends IEmbedOptions {}
594
+
589
595
  interface ITypingsOptions {
590
596
  jar: string;
591
597
  aar: string;
@@ -606,6 +612,7 @@ interface IOptions
606
612
  IProvision,
607
613
  ITeamIdentifier,
608
614
  IAndroidOptions,
615
+ IIOSOptions,
609
616
  IAndroidReleaseOptions,
610
617
  IAndroidBundleOptions,
611
618
  INpmInstallConfigurationOptions,
@@ -704,6 +711,9 @@ interface IOptions
704
711
  dryRun: boolean;
705
712
 
706
713
  platformOverride: string;
714
+
715
+ // allow arbitrary options
716
+ [optionName: string]: any;
707
717
  }
708
718
 
709
719
  interface IEnvOptions {
@@ -1012,6 +1022,7 @@ interface IXcprojService {
1012
1022
  * @return {string} The full path to the xcodeproj
1013
1023
  */
1014
1024
  getXcodeprojPath(projectData: IProjectData, projectRoot: string): string;
1025
+ findXcodeProject(dir: string): string;
1015
1026
  }
1016
1027
 
1017
1028
  /**
@@ -12,6 +12,7 @@ interface IAndroidBuildOptions {
12
12
  tempPluginDirPath: string;
13
13
  gradleArgs?: string[];
14
14
  gradlePath?: string;
15
+ aarSuffix?: string;
15
16
  }
16
17
 
17
18
  interface IAndroidPluginBuildService {
@@ -11,7 +11,7 @@ interface IIOSDebuggerPortData {
11
11
 
12
12
  interface IIOSDebuggerPortStoredData {
13
13
  port: number;
14
- timer?: NodeJS.Timer;
14
+ timer?: NodeJS.Timeout;
15
15
  error?: Error;
16
16
  }
17
17
 
@@ -18,7 +18,7 @@ import {
18
18
 
19
19
  declare global {
20
20
  interface ILiveSyncProcessData {
21
- timer: NodeJS.Timer;
21
+ timer: NodeJS.Timeout;
22
22
  actionsChain: Promise<any>;
23
23
  isStopped: boolean;
24
24
  deviceDescriptors: ILiveSyncDeviceDescriptor[];
@@ -118,6 +118,7 @@ interface ICheckEnvironmentRequirementsOutput {
118
118
 
119
119
  interface IAddPlatformData extends IControllerDataBase {
120
120
  frameworkPath?: string;
121
+ hostProjectPath?: string;
121
122
  }
122
123
 
123
124
  interface IPlatformController {
@@ -11,6 +11,9 @@ declare global {
11
11
  watch?: boolean;
12
12
  watchNative: boolean;
13
13
  watchNodeModules?: boolean;
14
+
15
+ // embedding
16
+ hostProjectPath?: string;
14
17
  }
15
18
 
16
19
  interface IiOSCodeSigningData {
@@ -104,6 +104,7 @@ interface INsConfigPlaform {
104
104
  interface INsConfigIOS extends INsConfigPlaform {
105
105
  discardUncaughtJsExceptions?: boolean;
106
106
  runtimePackageName?: string
107
+ cocoapodUseBundleExec?: boolean
107
108
  }
108
109
 
109
110
  interface INSConfigVisionOS extends INsConfigIOS {}
@@ -147,6 +148,8 @@ interface INsConfigAndroid extends INsConfigPlaform {
147
148
 
148
149
  gradleArgs?: string[];
149
150
 
151
+ plugins?:{ [k:string]: { aarSuffix?: string } }
152
+
150
153
  runtimePackageName?: string
151
154
  }
152
155
 
@@ -170,6 +173,7 @@ interface INsConfig {
170
173
  visionos?: INSConfigVisionOS;
171
174
  ignoredNativeDependencies?: string[];
172
175
  hooks?: INsConfigHooks[];
176
+ projectName?: string;
173
177
  }
174
178
 
175
179
  interface IProjectData extends ICreateProjectData {
@@ -204,6 +208,7 @@ interface IProjectData extends ICreateProjectData {
204
208
  * The value can be changed by setting `webpackConfigPath` in nativescript.config.
205
209
  */
206
210
  webpackConfigPath: string;
211
+ projectName: string;
207
212
 
208
213
  /**
209
214
  * Initializes project data with the given project directory. If none supplied defaults to --path option or cwd.
@@ -1,14 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
3
  Object.defineProperty(exports, "__esModule", { value: true });
13
4
  const fs = require("fs");
14
5
  const uuid_1 = require("uuid");
@@ -41,14 +32,14 @@ catch (err) {
41
32
  const logMessage = (msg, type) => {
42
33
  fileLogService.logData({ message: `[${uniqueId}] ${msg}`, type });
43
34
  };
44
- (() => __awaiter(void 0, void 0, void 0, function* () {
35
+ (async () => {
45
36
  try {
46
37
  logMessage(`Requiring file ${jsFilePath}`);
47
38
  const func = require(jsFilePath);
48
39
  if (func && typeof func === "function") {
49
40
  try {
50
41
  logMessage(`Passing data: ${JSON.stringify(data)} to the default function exported by currently required file ${jsFilePath}`);
51
- yield func(data);
42
+ await func(data);
52
43
  logMessage(`Finished execution with data: ${JSON.stringify(data)} to the default function exported by currently required file ${jsFilePath}`);
53
44
  }
54
45
  catch (err) {
@@ -59,4 +50,4 @@ const logMessage = (msg, type) => {
59
50
  catch (err) {
60
51
  logMessage(`Unable to require file: ${jsFilePath}. Error is: ${err}.`, "Error");
61
52
  }
62
- }))();
53
+ })();
@@ -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 fs = require("fs");
13
4
  const path = require("path");
@@ -29,13 +20,13 @@ const commandsInfos = [];
29
20
  const filesToDelete = [];
30
21
  const jsCommands = [];
31
22
  const requests = [];
32
- const executeRequest = (request) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const executeRequest = async (request) => {
33
24
  const $httpClient = yok_1.injector.resolve("httpClient");
34
25
  try {
35
26
  fileLogService.logData({
36
27
  message: `Start executing request: ${request.method} ${request.url}`,
37
28
  });
38
- const response = yield $httpClient.httpRequest({
29
+ const response = await $httpClient.httpRequest({
39
30
  url: request.url,
40
31
  method: request.method,
41
32
  headers: request.headers,
@@ -51,14 +42,14 @@ const executeRequest = (request) => __awaiter(void 0, void 0, void 0, function*
51
42
  message: `Unable to execute request: ${request.method} ${request.url}`,
52
43
  });
53
44
  }
54
- });
55
- const executeJSCleanup = (jsCommand) => __awaiter(void 0, void 0, void 0, function* () {
45
+ };
46
+ const executeJSCleanup = async (jsCommand) => {
56
47
  const $childProcess = yok_1.injector.resolve("childProcess");
57
48
  try {
58
49
  fileLogService.logData({
59
50
  message: `Start executing action for file: ${jsCommand.filePath} and data ${JSON.stringify(jsCommand.data)}`,
60
51
  });
61
- yield $childProcess.trySpawnFromCloseEvent(process.execPath, [
52
+ await $childProcess.trySpawnFromCloseEvent(process.execPath, [
62
53
  path.join(__dirname, "cleanup-js-subprocess.js"),
63
54
  pathToBootstrap,
64
55
  logFile,
@@ -75,21 +66,21 @@ const executeJSCleanup = (jsCommand) => __awaiter(void 0, void 0, void 0, functi
75
66
  type: "Error",
76
67
  });
77
68
  }
78
- });
79
- const executeCleanup = () => __awaiter(void 0, void 0, void 0, function* () {
69
+ };
70
+ const executeCleanup = async () => {
80
71
  const $childProcess = yok_1.injector.resolve("childProcess");
81
72
  for (const request of requests) {
82
- yield executeRequest(request);
73
+ await executeRequest(request);
83
74
  }
84
75
  for (const jsCommand of jsCommands) {
85
- yield executeJSCleanup(jsCommand);
76
+ await executeJSCleanup(jsCommand);
86
77
  }
87
78
  for (const commandInfo of commandsInfos) {
88
79
  try {
89
80
  fileLogService.logData({
90
81
  message: `Start executing command: ${JSON.stringify(commandInfo)}`,
91
82
  });
92
- 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 });
93
84
  fileLogService.logData({
94
85
  message: `Successfully executed command: ${JSON.stringify(commandInfo)}`,
95
86
  });
@@ -117,7 +108,7 @@ const executeCleanup = () => __awaiter(void 0, void 0, void 0, function* () {
117
108
  }
118
109
  fileLogService.logData({ message: `cleanup-process finished` });
119
110
  process.exit();
120
- });
111
+ };
121
112
  const addCleanupAction = (commandInfo) => {
122
113
  if (_.some(commandsInfos, (currentCommandInfo) => _.isEqual(currentCommandInfo, commandInfo))) {
123
114
  fileLogService.logData({
@@ -228,7 +219,7 @@ const removeJSFile = (jsCommand) => {
228
219
  });
229
220
  }
230
221
  };
231
- process.on("message", (cleanupProcessMessage) => __awaiter(void 0, void 0, void 0, function* () {
222
+ process.on("message", async (cleanupProcessMessage) => {
232
223
  fileLogService.logData({
233
224
  message: `cleanup-process received message of type: ${JSON.stringify(cleanupProcessMessage)}`,
234
225
  });
@@ -266,15 +257,15 @@ process.on("message", (cleanupProcessMessage) => __awaiter(void 0, void 0, void
266
257
  });
267
258
  break;
268
259
  }
269
- }));
270
- process.on("disconnect", () => __awaiter(void 0, void 0, void 0, function* () {
260
+ });
261
+ process.on("disconnect", async () => {
271
262
  fileLogService.logData({
272
263
  message: "cleanup-process received process.disconnect event",
273
264
  });
274
- yield executeCleanup();
265
+ await executeCleanup();
275
266
  yok_1.injector.dispose();
276
267
  process.exit();
277
- }));
268
+ });
278
269
  fileLogService.logData({
279
270
  message: `cleanup-process will send ${"ProcessReadyToReceive"} message`,
280
271
  });