nativescript 8.9.0-alpha.3 → 8.9.0-dev.1

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 (342) 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 +210 -229
  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 +11 -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 +47 -51
  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 +49 -64
  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/LICENSE +0 -21
  271. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  272. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  273. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  274. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  275. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  276. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  277. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  278. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  279. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  280. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  281. package/node_modules/@npmcli/move-file/package.json +0 -47
  282. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  283. package/node_modules/balanced-match/LICENSE.md +0 -21
  284. package/node_modules/balanced-match/README.md +0 -97
  285. package/node_modules/balanced-match/index.js +0 -62
  286. package/node_modules/balanced-match/package.json +0 -48
  287. package/node_modules/concat-map/.travis.yml +0 -4
  288. package/node_modules/concat-map/LICENSE +0 -18
  289. package/node_modules/concat-map/README.markdown +0 -62
  290. package/node_modules/concat-map/example/map.js +0 -6
  291. package/node_modules/concat-map/index.js +0 -13
  292. package/node_modules/concat-map/package.json +0 -43
  293. package/node_modules/concat-map/test/map.js +0 -39
  294. package/node_modules/fs.realpath/LICENSE +0 -43
  295. package/node_modules/fs.realpath/README.md +0 -33
  296. package/node_modules/fs.realpath/index.js +0 -66
  297. package/node_modules/fs.realpath/old.js +0 -303
  298. package/node_modules/fs.realpath/package.json +0 -26
  299. package/node_modules/inflight/LICENSE +0 -15
  300. package/node_modules/inflight/README.md +0 -37
  301. package/node_modules/inflight/inflight.js +0 -54
  302. package/node_modules/inflight/package.json +0 -29
  303. package/node_modules/inherits/LICENSE +0 -16
  304. package/node_modules/inherits/README.md +0 -42
  305. package/node_modules/inherits/inherits.js +0 -9
  306. package/node_modules/inherits/inherits_browser.js +0 -27
  307. package/node_modules/inherits/package.json +0 -29
  308. package/node_modules/once/LICENSE +0 -15
  309. package/node_modules/once/README.md +0 -79
  310. package/node_modules/once/once.js +0 -42
  311. package/node_modules/once/package.json +0 -33
  312. package/node_modules/path-is-absolute/index.js +0 -20
  313. package/node_modules/path-is-absolute/license +0 -21
  314. package/node_modules/path-is-absolute/package.json +0 -43
  315. package/node_modules/path-is-absolute/readme.md +0 -59
  316. package/node_modules/rimraf/LICENSE +0 -15
  317. package/node_modules/rimraf/README.md +0 -101
  318. package/node_modules/rimraf/bin.js +0 -68
  319. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  320. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  321. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  322. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  323. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  324. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  325. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  326. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  327. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  328. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  329. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  330. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  331. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  332. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  333. package/node_modules/rimraf/package.json +0 -32
  334. package/node_modules/rimraf/rimraf.js +0 -360
  335. package/node_modules/stringify-package/LICENSE +0 -13
  336. package/node_modules/stringify-package/README.md +0 -55
  337. package/node_modules/stringify-package/index.js +0 -18
  338. package/node_modules/stringify-package/package.json +0 -38
  339. package/node_modules/wrappy/LICENSE +0 -15
  340. package/node_modules/wrappy/README.md +0 -36
  341. package/node_modules/wrappy/package.json +0 -29
  342. 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
  exports.IOSSigningService = void 0;
13
4
  const path = require("path");
@@ -27,108 +18,102 @@ class IOSSigningService {
27
18
  this.$xcconfigService = $xcconfigService;
28
19
  this.$xcprojService = $xcprojService;
29
20
  }
30
- setupSigningForDevice(projectRoot, projectData, iOSBuildData) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
33
- const signing = xcode.getSigning(projectData.projectName);
34
- const hasProvisioningProfileInXCConfig = this.readXCConfigProvisioningProfileSpecifierForIPhoneOs(projectData) ||
35
- this.readXCConfigProvisioningProfileSpecifier(projectData) ||
36
- this.readXCConfigProvisioningProfileForIPhoneOs(projectData) ||
37
- this.readXCConfigProvisioningProfile(projectData);
38
- if (hasProvisioningProfileInXCConfig &&
39
- (!signing || signing.style !== "Manual")) {
40
- xcode.setManualSigningStyle(projectData.projectName);
41
- this.getExtensionNames(projectData).forEach((name) => {
42
- xcode.setManualSigningStyle(name);
43
- });
44
- xcode.save();
45
- }
46
- else if (!iOSBuildData.provision &&
47
- !(signing && signing.style === "Manual" && !iOSBuildData.teamId)) {
48
- const teamId = yield this.getDevelopmentTeam(projectData, projectRoot, iOSBuildData.teamId);
49
- yield this.setupSigningFromTeam(projectRoot, projectData, teamId);
50
- }
51
- });
21
+ async setupSigningForDevice(projectRoot, projectData, iOSBuildData) {
22
+ const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
23
+ const signing = xcode.getSigning(projectData.projectName);
24
+ const hasProvisioningProfileInXCConfig = this.readXCConfigProvisioningProfileSpecifierForIPhoneOs(projectData) ||
25
+ this.readXCConfigProvisioningProfileSpecifier(projectData) ||
26
+ this.readXCConfigProvisioningProfileForIPhoneOs(projectData) ||
27
+ this.readXCConfigProvisioningProfile(projectData);
28
+ if (hasProvisioningProfileInXCConfig &&
29
+ (!signing || signing.style !== "Manual")) {
30
+ xcode.setManualSigningStyle(projectData.projectName);
31
+ this.getExtensionNames(projectData).forEach((name) => {
32
+ xcode.setManualSigningStyle(name);
33
+ });
34
+ xcode.save();
35
+ }
36
+ else if (!iOSBuildData.provision &&
37
+ !(signing && signing.style === "Manual" && !iOSBuildData.teamId)) {
38
+ const teamId = await this.getDevelopmentTeam(projectData, projectRoot, iOSBuildData.teamId);
39
+ await this.setupSigningFromTeam(projectRoot, projectData, teamId);
40
+ }
52
41
  }
53
- setupSigningFromTeam(projectRoot, projectData, teamId) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
56
- const signing = xcode.getSigning(projectData.projectName);
57
- let shouldUpdateXcode = false;
58
- if (signing && signing.style === "Automatic") {
59
- if (signing.team !== teamId) {
60
- const teamIdsForName = yield this.$iOSProvisionService.getTeamIdsWithName(teamId);
61
- if (!teamIdsForName.some((id) => id === signing.team)) {
62
- shouldUpdateXcode = true;
63
- }
64
- }
65
- }
66
- else {
67
- shouldUpdateXcode = true;
68
- }
69
- if (shouldUpdateXcode) {
70
- const teamIdsForName = yield this.$iOSProvisionService.getTeamIdsWithName(teamId);
71
- if (teamIdsForName.length > 0) {
72
- this.$logger.trace(`Team id ${teamIdsForName[0]} will be used for team name "${teamId}".`);
73
- teamId = teamIdsForName[0];
42
+ async setupSigningFromTeam(projectRoot, projectData, teamId) {
43
+ const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
44
+ const signing = xcode.getSigning(projectData.projectName);
45
+ let shouldUpdateXcode = false;
46
+ if (signing && signing.style === "Automatic") {
47
+ if (signing.team !== teamId) {
48
+ const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
49
+ if (!teamIdsForName.some((id) => id === signing.team)) {
50
+ shouldUpdateXcode = true;
74
51
  }
75
- xcode.setAutomaticSigningStyle(projectData.projectName, teamId);
76
- xcode.setAutomaticSigningStyleByTargetProductTypesList([
77
- constants_1.IOSNativeTargetProductTypes.appExtension,
78
- constants_1.IOSNativeTargetProductTypes.watchApp,
79
- constants_1.IOSNativeTargetProductTypes.watchExtension,
80
- ], teamId);
81
- this.getExtensionNames(projectData).forEach((name) => {
82
- xcode.setAutomaticSigningStyle(name, teamId);
83
- });
84
- xcode.save();
85
- this.$logger.trace(`Set Automatic signing style and team id ${teamId}.`);
86
52
  }
87
- else {
88
- this.$logger.trace(`The specified ${teamId} is already set in the Xcode.`);
53
+ }
54
+ else {
55
+ shouldUpdateXcode = true;
56
+ }
57
+ if (shouldUpdateXcode) {
58
+ const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
59
+ if (teamIdsForName.length > 0) {
60
+ this.$logger.trace(`Team id ${teamIdsForName[0]} will be used for team name "${teamId}".`);
61
+ teamId = teamIdsForName[0];
89
62
  }
90
- });
63
+ xcode.setAutomaticSigningStyle(projectData.projectName, teamId);
64
+ xcode.setAutomaticSigningStyleByTargetProductTypesList([
65
+ constants_1.IOSNativeTargetProductTypes.appExtension,
66
+ constants_1.IOSNativeTargetProductTypes.watchApp,
67
+ constants_1.IOSNativeTargetProductTypes.watchExtension,
68
+ ], teamId);
69
+ this.getExtensionNames(projectData).forEach((name) => {
70
+ xcode.setAutomaticSigningStyle(name, teamId);
71
+ });
72
+ xcode.save();
73
+ this.$logger.trace(`Set Automatic signing style and team id ${teamId}.`);
74
+ }
75
+ else {
76
+ this.$logger.trace(`The specified ${teamId} is already set in the Xcode.`);
77
+ }
91
78
  }
92
- setupSigningFromProvision(projectRoot, projectData, provision, mobileProvisionData) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- if (!provision) {
95
- return;
96
- }
97
- const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
98
- const signing = xcode.getSigning(projectData.projectName);
99
- let shouldUpdateXcode = false;
100
- if (signing && signing.style === "Manual") {
101
- for (const config in signing.configurations) {
102
- const options = signing.configurations[config];
103
- if (options.name !== provision && options.uuid !== provision) {
104
- shouldUpdateXcode = true;
105
- break;
106
- }
79
+ async setupSigningFromProvision(projectRoot, projectData, provision, mobileProvisionData) {
80
+ if (!provision) {
81
+ return;
82
+ }
83
+ const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
84
+ const signing = xcode.getSigning(projectData.projectName);
85
+ let shouldUpdateXcode = false;
86
+ if (signing && signing.style === "Manual") {
87
+ for (const config in signing.configurations) {
88
+ const options = signing.configurations[config];
89
+ if (options.name !== provision && options.uuid !== provision) {
90
+ shouldUpdateXcode = true;
91
+ break;
107
92
  }
108
93
  }
109
- else {
110
- shouldUpdateXcode = true;
111
- }
112
- if (shouldUpdateXcode) {
113
- const projectSigningConfig = yield this.getManualSigningConfiguration(projectData, provision, mobileProvisionData);
114
- xcode.setManualSigningStyle(projectData.projectName, projectSigningConfig);
115
- xcode.setManualSigningStyleByTargetProductTypesList([
116
- constants_1.IOSNativeTargetProductTypes.appExtension,
117
- constants_1.IOSNativeTargetProductTypes.watchApp,
118
- constants_1.IOSNativeTargetProductTypes.watchExtension,
119
- ], projectSigningConfig);
120
- this.$logger.trace(`Set Manual signing style and provisioning profile: ${projectSigningConfig.name} (${projectSigningConfig.uuid})`);
121
- const extensionSigningConfig = yield Promise.all(this.getExtensionsManualSigningConfiguration(projectData));
122
- extensionSigningConfig.forEach(({ name, configuration }) => {
123
- xcode.setManualSigningStyle(name, configuration);
124
- this.$logger.trace(`Set Manual signing style and provisioning profile: ${configuration.name} (${configuration.uuid})`);
125
- });
126
- xcode.save();
127
- }
128
- else {
129
- this.$logger.trace(`The specified provisioning profile is already set in the Xcode: ${provision}`);
130
- }
131
- });
94
+ }
95
+ else {
96
+ shouldUpdateXcode = true;
97
+ }
98
+ if (shouldUpdateXcode) {
99
+ const projectSigningConfig = await this.getManualSigningConfiguration(projectData, provision, mobileProvisionData);
100
+ xcode.setManualSigningStyle(projectData.projectName, projectSigningConfig);
101
+ xcode.setManualSigningStyleByTargetProductTypesList([
102
+ constants_1.IOSNativeTargetProductTypes.appExtension,
103
+ constants_1.IOSNativeTargetProductTypes.watchApp,
104
+ constants_1.IOSNativeTargetProductTypes.watchExtension,
105
+ ], projectSigningConfig);
106
+ this.$logger.trace(`Set Manual signing style and provisioning profile: ${projectSigningConfig.name} (${projectSigningConfig.uuid})`);
107
+ const extensionSigningConfig = await Promise.all(this.getExtensionsManualSigningConfiguration(projectData));
108
+ extensionSigningConfig.forEach(({ name, configuration }) => {
109
+ xcode.setManualSigningStyle(name, configuration);
110
+ this.$logger.trace(`Set Manual signing style and provisioning profile: ${configuration.name} (${configuration.uuid})`);
111
+ });
112
+ xcode.save();
113
+ }
114
+ else {
115
+ this.$logger.trace(`The specified provisioning profile is already set in the Xcode: ${provision}`);
116
+ }
132
117
  }
133
118
  getExtensionNames(projectData) {
134
119
  const extensionFolderPath = path.join(projectData.getAppResourcesDirectoryPath(), constants.iOSAppResourcesFolderName, constants.NATIVE_EXTENSION_FOLDER);
@@ -149,45 +134,43 @@ class IOSSigningService {
149
134
  if (this.$fs.exists(provisioningJSONPath)) {
150
135
  const provisioningJSON = this.$fs.readJson(provisioningJSONPath);
151
136
  const extensionNames = this.getExtensionNames(projectData);
152
- const provisioning = Object.entries(provisioningJSON).map(([id, provision]) => __awaiter(this, void 0, void 0, function* () {
137
+ const provisioning = Object.entries(provisioningJSON).map(async ([id, provision]) => {
153
138
  const name = id.split(".").at(-1);
154
139
  if (extensionNames.includes(name)) {
155
- const configuration = yield this.getManualSigningConfiguration(projectData, provision);
140
+ const configuration = await this.getManualSigningConfiguration(projectData, provision);
156
141
  return { name, configuration };
157
142
  }
158
143
  return null;
159
- }));
144
+ });
160
145
  return provisioning;
161
146
  }
162
147
  return [];
163
148
  }
164
- getManualSigningConfiguration(projectData, provision, mobileProvisionData) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- const pickStart = Date.now();
167
- const mobileprovision = mobileProvisionData ||
168
- (yield this.$iOSProvisionService.pick(provision, projectData.projectIdentifiers.ios));
169
- const pickEnd = Date.now();
170
- this.$logger.trace("Searched and " +
171
- (mobileprovision ? "found" : "failed to find ") +
172
- " matching provisioning profile. (" +
173
- (pickEnd - pickStart) +
174
- "ms.)");
175
- if (!mobileprovision) {
176
- this.$errors.fail("Failed to find mobile provision with UUID or Name: " + provision);
177
- }
178
- const configuration = {
179
- team: mobileprovision.TeamIdentifier &&
180
- mobileprovision.TeamIdentifier.length > 0
181
- ? mobileprovision.TeamIdentifier[0]
182
- : undefined,
183
- uuid: mobileprovision.UUID,
184
- name: mobileprovision.Name,
185
- identity: mobileprovision.Type === "Development"
186
- ? "iPhone Developer"
187
- : "iPhone Distribution",
188
- };
189
- return configuration;
190
- });
149
+ async getManualSigningConfiguration(projectData, provision, mobileProvisionData) {
150
+ const pickStart = Date.now();
151
+ const mobileprovision = mobileProvisionData ||
152
+ (await this.$iOSProvisionService.pick(provision, projectData.projectIdentifiers.ios));
153
+ const pickEnd = Date.now();
154
+ this.$logger.trace("Searched and " +
155
+ (mobileprovision ? "found" : "failed to find ") +
156
+ " matching provisioning profile. (" +
157
+ (pickEnd - pickStart) +
158
+ "ms.)");
159
+ if (!mobileprovision) {
160
+ this.$errors.fail("Failed to find mobile provision with UUID or Name: " + provision);
161
+ }
162
+ const configuration = {
163
+ team: mobileprovision.TeamIdentifier &&
164
+ mobileprovision.TeamIdentifier.length > 0
165
+ ? mobileprovision.TeamIdentifier[0]
166
+ : undefined,
167
+ uuid: mobileprovision.UUID,
168
+ name: mobileprovision.Name,
169
+ identity: mobileprovision.Type === "Development"
170
+ ? "iPhone Developer"
171
+ : "iPhone Distribution",
172
+ };
173
+ return configuration;
191
174
  }
192
175
  getBuildXCConfigFilePath(projectData) {
193
176
  return path.join(projectData.appResourcesDirectoryPath, constants_1.iOSAppResourcesFolderName, constants_1.BUILD_XCCONFIG_FILE_NAME);
@@ -207,65 +190,63 @@ class IOSSigningService {
207
190
  }
208
191
  return undefined;
209
192
  }
210
- getDevelopmentTeam(projectData, projectRoot, teamId) {
211
- return __awaiter(this, void 0, void 0, function* () {
212
- teamId = teamId || this.readXCConfigDevelopmentTeam(projectData);
213
- if (!teamId) {
214
- const teams = yield this.$iOSProvisionService.getDevelopmentTeams();
215
- this.$logger.warn("Xcode requires a team id to be specified when building for device.");
216
- this.$logger.warn("You can specify the team id by setting the DEVELOPMENT_TEAM setting in build.xcconfig file located in App_Resources folder of your app, or by using the --teamId option when calling run, debug or livesync commands.");
217
- if (teams.length === 1) {
218
- teamId = teams[0].id;
219
- this.$logger.warn("Found and using the following development team installed on your system: " +
220
- teams[0].name +
221
- " (" +
222
- teams[0].id +
223
- ")");
193
+ async getDevelopmentTeam(projectData, projectRoot, teamId) {
194
+ teamId = teamId || this.readXCConfigDevelopmentTeam(projectData);
195
+ if (!teamId) {
196
+ const teams = await this.$iOSProvisionService.getDevelopmentTeams();
197
+ this.$logger.warn("Xcode requires a team id to be specified when building for device.");
198
+ this.$logger.warn("You can specify the team id by setting the DEVELOPMENT_TEAM setting in build.xcconfig file located in App_Resources folder of your app, or by using the --teamId option when calling run, debug or livesync commands.");
199
+ if (teams.length === 1) {
200
+ teamId = teams[0].id;
201
+ this.$logger.warn("Found and using the following development team installed on your system: " +
202
+ teams[0].name +
203
+ " (" +
204
+ teams[0].id +
205
+ ")");
206
+ }
207
+ else if (teams.length > 0) {
208
+ if (!helpers.isInteractive()) {
209
+ this.$errors.fail(`Unable to determine default development team. Available development teams are: ${_.map(teams, (team) => team.id)}. Specify team in app/App_Resources/iOS/build.xcconfig file in the following way: DEVELOPMENT_TEAM = <team id>`);
224
210
  }
225
- else if (teams.length > 0) {
226
- if (!helpers.isInteractive()) {
227
- this.$errors.fail(`Unable to determine default development team. Available development teams are: ${_.map(teams, (team) => team.id)}. Specify team in app/App_Resources/iOS/build.xcconfig file in the following way: DEVELOPMENT_TEAM = <team id>`);
211
+ const fromFile = this.readTeamIdFromFile(projectRoot);
212
+ if (fromFile) {
213
+ const idFromFile = teams.find((value) => value.id === fromFile);
214
+ if (idFromFile) {
215
+ teamId = idFromFile.id;
216
+ this.$logger.info(`Team Id resolved from file: '${teamId}'.`);
228
217
  }
229
- const fromFile = this.readTeamIdFromFile(projectRoot);
230
- if (fromFile) {
231
- const idFromFile = teams.find((value) => value.id === fromFile);
232
- if (idFromFile) {
233
- teamId = idFromFile.id;
234
- this.$logger.info(`Team Id resolved from file: '${teamId}'.`);
235
- }
218
+ }
219
+ if (!teamId) {
220
+ const choices = [];
221
+ for (const team of teams) {
222
+ choices.push(team.name + " (" + team.id + ")");
236
223
  }
237
- if (!teamId) {
238
- const choices = [];
239
- for (const team of teams) {
240
- choices.push(team.name + " (" + team.id + ")");
241
- }
242
- const choice = yield this.$prompter.promptForChoice("Found multiple development teams, select one:", choices);
243
- teamId = teams[choices.indexOf(choice)].id;
244
- const choicesPersist = [
245
- "Yes, set the DEVELOPMENT_TEAM setting in build.xcconfig file.",
246
- "Yes, persist the team id in platforms folder.",
247
- "No, don't persist this setting.",
248
- ];
249
- const choicePersist = yield this.$prompter.promptForChoice("Do you want to make teamId: " +
250
- teamId +
251
- " a persistent choice for your app?", choicesPersist);
252
- switch (choicesPersist.indexOf(choicePersist)) {
253
- case 0:
254
- const xcconfigFile = path.join(projectData.appResourcesDirectoryPath, "iOS", constants_1.BUILD_XCCONFIG_FILE_NAME);
255
- this.$fs.appendFile(xcconfigFile, "\nDEVELOPMENT_TEAM = " + teamId + "\n");
256
- break;
257
- case 1:
258
- this.$fs.writeFile(path.join(projectRoot, "teamid"), teamId);
259
- break;
260
- default:
261
- break;
262
- }
224
+ const choice = await this.$prompter.promptForChoice("Found multiple development teams, select one:", choices);
225
+ teamId = teams[choices.indexOf(choice)].id;
226
+ const choicesPersist = [
227
+ "Yes, set the DEVELOPMENT_TEAM setting in build.xcconfig file.",
228
+ "Yes, persist the team id in platforms folder.",
229
+ "No, don't persist this setting.",
230
+ ];
231
+ const choicePersist = await this.$prompter.promptForChoice("Do you want to make teamId: " +
232
+ teamId +
233
+ " a persistent choice for your app?", choicesPersist);
234
+ switch (choicesPersist.indexOf(choicePersist)) {
235
+ case 0:
236
+ const xcconfigFile = path.join(projectData.appResourcesDirectoryPath, "iOS", constants_1.BUILD_XCCONFIG_FILE_NAME);
237
+ this.$fs.appendFile(xcconfigFile, "\nDEVELOPMENT_TEAM = " + teamId + "\n");
238
+ break;
239
+ case 1:
240
+ this.$fs.writeFile(path.join(projectRoot, "teamid"), teamId);
241
+ break;
242
+ default:
243
+ break;
263
244
  }
264
245
  }
265
246
  }
266
- this.$logger.trace(`Selected teamId is '${teamId}'.`);
267
- return teamId;
268
- });
247
+ }
248
+ this.$logger.trace(`Selected teamId is '${teamId}'.`);
249
+ return teamId;
269
250
  }
270
251
  readXCConfigDevelopmentTeam(projectData) {
271
252
  return this.$xcconfigService.readPropertyValue(this.getBuildXCConfigFilePath(projectData), "DEVELOPMENT_TEAM");
@@ -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.SPMService = void 0;
13
4
  const yok_1 = require("../../common/yok");
@@ -24,53 +15,58 @@ class SPMService {
24
15
  const spmPackages = this.$projectConfigService.getValue(`${platform}.SPMPackages`, []);
25
16
  return spmPackages;
26
17
  }
27
- applySPMPackages(platformData, projectData) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- try {
30
- const spmPackages = this.getSPMPackages(projectData, platformData.platformNameLowerCase);
31
- if (!spmPackages.length) {
32
- this.$logger.trace("SPM: no SPM packages to apply.");
33
- return;
34
- }
35
- const project = new trapezedev_project_1.MobileProject(platformData.projectRoot, {
36
- ios: {
37
- path: ".",
38
- },
39
- enableAndroid: false,
40
- });
41
- yield project.load();
42
- if (!project.ios) {
43
- this.$logger.trace("SPM: no iOS project found via trapeze.");
44
- return;
18
+ async applySPMPackages(platformData, projectData, pluginSpmPackages) {
19
+ var _a;
20
+ try {
21
+ const spmPackages = this.getSPMPackages(projectData, platformData.platformNameLowerCase);
22
+ if (pluginSpmPackages === null || pluginSpmPackages === void 0 ? void 0 : pluginSpmPackages.length) {
23
+ spmPackages.push(...pluginSpmPackages);
24
+ }
25
+ if (!spmPackages.length) {
26
+ this.$logger.trace("SPM: no SPM packages to apply.");
27
+ return;
28
+ }
29
+ const project = new trapezedev_project_1.MobileProject(platformData.projectRoot, {
30
+ ios: {
31
+ path: ".",
32
+ },
33
+ enableAndroid: false,
34
+ });
35
+ await project.load();
36
+ if (!project.ios) {
37
+ this.$logger.trace("SPM: no iOS project found via trapeze.");
38
+ return;
39
+ }
40
+ for (const pkg of spmPackages) {
41
+ if ("path" in pkg) {
42
+ this.$logger.trace("SPM: resolving path for package: ", pkg.path);
43
+ pkg.path = path.resolve(projectData.projectDir, pkg.path);
45
44
  }
46
- for (const pkg of spmPackages) {
47
- if ("path" in pkg) {
48
- this.$logger.trace("SPM: resolving path for package: ", pkg.path);
49
- pkg.path = path.resolve(projectData.projectDir, pkg.path);
45
+ this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg);
46
+ await project.ios.addSPMPackage(projectData.projectName, pkg);
47
+ if ((_a = pkg.targets) === null || _a === void 0 ? void 0 : _a.length) {
48
+ for (const target of pkg.targets) {
49
+ await project.ios.addSPMPackage(target, pkg);
50
50
  }
51
- this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg);
52
- yield project.ios.addSPMPackage(projectData.projectName, pkg);
53
51
  }
54
- yield project.commit();
55
- yield this.resolveSPMDependencies(platformData, projectData);
56
- }
57
- catch (err) {
58
- this.$logger.trace("SPM: error applying SPM packages: ", err);
59
52
  }
60
- });
53
+ await project.commit();
54
+ await this.resolveSPMDependencies(platformData, projectData);
55
+ }
56
+ catch (err) {
57
+ this.$logger.trace("SPM: error applying SPM packages: ", err);
58
+ }
61
59
  }
62
- resolveSPMDependencies(platformData, projectData) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- yield this.$xcodebuildCommandService.executeCommand(this.$xcodebuildArgsService
65
- .getXcodeProjectArgs(platformData, projectData)
66
- .concat([
67
- "-destination",
68
- "generic/platform=iOS",
69
- "-resolvePackageDependencies",
70
- ]), {
71
- cwd: projectData.projectDir,
72
- message: "Resolving SPM dependencies...",
73
- });
60
+ async resolveSPMDependencies(platformData, projectData) {
61
+ await this.$xcodebuildCommandService.executeCommand(this.$xcodebuildArgsService
62
+ .getXcodeProjectArgs(platformData, projectData)
63
+ .concat([
64
+ "-destination",
65
+ "generic/platform=iOS",
66
+ "-resolvePackageDependencies",
67
+ ]), {
68
+ cwd: projectData.projectDir,
69
+ message: "Resolving SPM dependencies...",
74
70
  });
75
71
  }
76
72
  }