@akylas/nativescript-cli 8.8.2 → 8.8.4

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 (275) hide show
  1. package/lib/android-tools-info.js +9 -20
  2. package/lib/base-package-manager.js +47 -64
  3. package/lib/bun-package-manager.js +65 -88
  4. package/lib/color.js +2 -2
  5. package/lib/commands/add-platform.js +14 -30
  6. package/lib/commands/apple-login.js +18 -29
  7. package/lib/commands/appstore-list.js +34 -45
  8. package/lib/commands/appstore-upload.js +55 -68
  9. package/lib/commands/build.js +57 -86
  10. package/lib/commands/clean.js +161 -176
  11. package/lib/commands/command-base.js +14 -27
  12. package/lib/commands/config.js +51 -70
  13. package/lib/commands/create-project.js +210 -229
  14. package/lib/commands/debug.js +66 -88
  15. package/lib/commands/deploy.js +28 -44
  16. package/lib/commands/embedding/embed.js +33 -52
  17. package/lib/commands/extensibility/install-extension.js +5 -16
  18. package/lib/commands/extensibility/list-extensions.js +13 -24
  19. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  20. package/lib/commands/fonts.js +30 -41
  21. package/lib/commands/generate-assets.js +13 -28
  22. package/lib/commands/generate-help.js +2 -13
  23. package/lib/commands/generate.js +17 -26
  24. package/lib/commands/info.js +2 -13
  25. package/lib/commands/install.js +34 -49
  26. package/lib/commands/list-platforms.js +14 -25
  27. package/lib/commands/migrate.js +15 -26
  28. package/lib/commands/native-add.js +23 -46
  29. package/lib/commands/platform-clean.js +19 -32
  30. package/lib/commands/plugin/add-plugin.js +12 -25
  31. package/lib/commands/plugin/build-plugin.js +34 -39
  32. package/lib/commands/plugin/create-plugin.js +110 -133
  33. package/lib/commands/plugin/list-plugins.js +22 -33
  34. package/lib/commands/plugin/remove-plugin.js +20 -33
  35. package/lib/commands/plugin/update-plugin.js +20 -33
  36. package/lib/commands/post-install.js +20 -33
  37. package/lib/commands/prepare.js +19 -35
  38. package/lib/commands/preview.js +49 -62
  39. package/lib/commands/remove-platform.js +7 -18
  40. package/lib/commands/resources/resources-update.js +13 -26
  41. package/lib/commands/run.js +55 -76
  42. package/lib/commands/start.js +6 -19
  43. package/lib/commands/test-init.js +123 -134
  44. package/lib/commands/test.js +66 -89
  45. package/lib/commands/typings.js +126 -142
  46. package/lib/commands/update-platform.js +22 -35
  47. package/lib/commands/update.js +30 -43
  48. package/lib/common/child-process.js +53 -72
  49. package/lib/common/codeGeneration/code-entity.js +1 -1
  50. package/lib/common/codeGeneration/code-printer.js +1 -1
  51. package/lib/common/command-params.js +7 -18
  52. package/lib/common/commands/analytics.js +27 -40
  53. package/lib/common/commands/autocompletion.js +39 -56
  54. package/lib/common/commands/device/device-log-stream.js +12 -23
  55. package/lib/common/commands/device/get-file.js +22 -33
  56. package/lib/common/commands/device/list-applications.js +12 -23
  57. package/lib/common/commands/device/list-devices.js +72 -87
  58. package/lib/common/commands/device/list-files.js +23 -34
  59. package/lib/common/commands/device/put-file.js +22 -33
  60. package/lib/common/commands/device/run-application.js +12 -25
  61. package/lib/common/commands/device/stop-application.js +11 -22
  62. package/lib/common/commands/device/uninstall-application.js +6 -17
  63. package/lib/common/commands/generate-messages.js +17 -28
  64. package/lib/common/commands/help.js +20 -33
  65. package/lib/common/commands/package-manager-get.js +6 -17
  66. package/lib/common/commands/package-manager-set.js +9 -20
  67. package/lib/common/commands/post-install.js +2 -13
  68. package/lib/common/commands/preuninstall.js +23 -38
  69. package/lib/common/commands/proxy/proxy-base.js +8 -19
  70. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  71. package/lib/common/commands/proxy/proxy-get.js +3 -14
  72. package/lib/common/commands/proxy/proxy-set.js +87 -100
  73. package/lib/common/constants.js +11 -11
  74. package/lib/common/decorators.js +10 -22
  75. package/lib/common/dispatchers.js +79 -96
  76. package/lib/common/errors.js +89 -104
  77. package/lib/common/file-system.js +106 -127
  78. package/lib/common/header.js +1 -2
  79. package/lib/common/helpers.js +149 -178
  80. package/lib/common/host-info.js +37 -50
  81. package/lib/common/http-client.js +93 -108
  82. package/lib/common/logger/appenders/cli-appender.js +1 -2
  83. package/lib/common/logger/appenders/emit-appender.js +1 -2
  84. package/lib/common/logger/layouts/cli-layout.js +1 -2
  85. package/lib/common/logger/logger.js +1 -1
  86. package/lib/common/mobile/android/android-application-manager.js +121 -142
  87. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  88. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  89. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  90. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  91. package/lib/common/mobile/android/android-device.js +74 -91
  92. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  93. package/lib/common/mobile/android/android-log-filter.js +1 -1
  94. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  95. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  96. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  97. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  98. package/lib/common/mobile/android/logcat-helper.js +108 -127
  99. package/lib/common/mobile/application-manager-base.js +84 -107
  100. package/lib/common/mobile/device-log-provider-base.js +7 -18
  101. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  102. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  103. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  104. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  105. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  106. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  107. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  108. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  109. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  110. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  111. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  112. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  113. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  114. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  115. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  116. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  117. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  118. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  119. package/lib/common/mobile/mobile-helper.js +15 -26
  120. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  121. package/lib/common/opener.js +2 -2
  122. package/lib/common/plist-parser.js +3 -3
  123. package/lib/common/prompter.js +90 -105
  124. package/lib/common/queue.js +9 -20
  125. package/lib/common/services/auto-completion-service.js +39 -52
  126. package/lib/common/services/cancellation.js +17 -28
  127. package/lib/common/services/commands-service.js +146 -169
  128. package/lib/common/services/help-service.js +132 -157
  129. package/lib/common/services/hooks-service.js +93 -108
  130. package/lib/common/services/ios-notification-service.js +21 -34
  131. package/lib/common/services/json-file-settings-service.js +52 -71
  132. package/lib/common/services/lock-service.js +35 -52
  133. package/lib/common/services/message-contract-generator.js +35 -46
  134. package/lib/common/services/micro-templating-service.js +4 -15
  135. package/lib/common/services/net-service.js +90 -107
  136. package/lib/common/services/project-files-manager.js +10 -23
  137. package/lib/common/services/proxy-service.js +13 -24
  138. package/lib/common/services/qr.js +13 -24
  139. package/lib/common/services/settings-service.js +1 -1
  140. package/lib/common/services/xcode-select-service.js +20 -35
  141. package/lib/common/utils.js +2 -2
  142. package/lib/common/validators/project-name-validator.js +1 -1
  143. package/lib/common/validators/validation-result.js +1 -1
  144. package/lib/common/verify-node-version.js +2 -3
  145. package/lib/common/yok.js +23 -36
  146. package/lib/config.js +7 -58
  147. package/lib/constants.js +24 -24
  148. package/lib/controllers/build-controller.js +82 -99
  149. package/lib/controllers/debug-controller.js +107 -128
  150. package/lib/controllers/deploy-controller.js +17 -22
  151. package/lib/controllers/migrate-controller.js +722 -795
  152. package/lib/controllers/platform-controller.js +72 -87
  153. package/lib/controllers/prepare-controller.js +266 -299
  154. package/lib/controllers/run-controller.js +392 -406
  155. package/lib/controllers/update-controller-base.js +16 -29
  156. package/lib/controllers/update-controller.js +94 -119
  157. package/lib/data/prepare-data.js +4 -1
  158. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  159. package/lib/definitions/livesync.d.ts +1 -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 +45 -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 +161 -211
  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 +161 -198
  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 +34 -47
  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 +230 -256
  194. package/lib/services/android-project-service.js +163 -199
  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 +171 -188
  198. package/lib/services/assets-generation/assets-generation-service.js +98 -115
  199. package/lib/services/build-artifacts-service.js +9 -20
  200. package/lib/services/build-info-file-service.js +20 -35
  201. package/lib/services/cleanup-service.js +47 -76
  202. package/lib/services/cocoapods-service.js +115 -136
  203. package/lib/services/device/device-install-app-service.js +73 -90
  204. package/lib/services/doctor-service.js +99 -118
  205. package/lib/services/extensibility-service.js +81 -100
  206. package/lib/services/files-hash-service.js +26 -43
  207. package/lib/services/hmr-status-service.js +1 -1
  208. package/lib/services/initialize-service.js +37 -50
  209. package/lib/services/ios/export-options-plist-service.js +38 -51
  210. package/lib/services/ios/ios-signing-service.js +161 -180
  211. package/lib/services/ios/spm-service.js +40 -53
  212. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  213. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  214. package/lib/services/ios/xcodebuild-service.js +50 -69
  215. package/lib/services/ios-debugger-port-service.js +23 -36
  216. package/lib/services/ios-device-debug-service.js +75 -102
  217. package/lib/services/ios-entitlements-service.js +31 -42
  218. package/lib/services/ios-extensions-service.js +18 -29
  219. package/lib/services/ios-project-service.js +405 -460
  220. package/lib/services/ios-provision-service.js +108 -129
  221. package/lib/services/ios-watch-app-service.js +21 -32
  222. package/lib/services/ip-service.js +38 -53
  223. package/lib/services/itmstransporter-service.js +129 -152
  224. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  225. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  226. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  227. package/lib/services/livesync/android-livesync-service.js +14 -35
  228. package/lib/services/livesync/android-livesync-tool.js +89 -112
  229. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  230. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  231. package/lib/services/livesync/ios-livesync-service.js +42 -58
  232. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  233. package/lib/services/log-parser-service.js +1 -1
  234. package/lib/services/log-source-map-service.js +30 -41
  235. package/lib/services/marking-mode-service.js +15 -28
  236. package/lib/services/npm-config-service.js +1 -1
  237. package/lib/services/pacote-service.js +49 -64
  238. package/lib/services/performance-service.js +1 -1
  239. package/lib/services/platform/add-platform-service.js +50 -71
  240. package/lib/services/platform/platform-validation-service.js +22 -33
  241. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  242. package/lib/services/platform-environment-requirements.js +26 -37
  243. package/lib/services/plugins-service.js +122 -147
  244. package/lib/services/project-backup-service.js +1 -1
  245. package/lib/services/project-changes-service.js +124 -141
  246. package/lib/services/project-cleanup-service.js +64 -77
  247. package/lib/services/project-config-service.js +71 -80
  248. package/lib/services/project-data-service.js +101 -118
  249. package/lib/services/project-name-service.js +28 -43
  250. package/lib/services/project-service.js +84 -103
  251. package/lib/services/project-templates-service.js +52 -67
  252. package/lib/services/start-service.js +41 -59
  253. package/lib/services/temp-service.js +8 -21
  254. package/lib/services/terminal-spinner-service.js +13 -24
  255. package/lib/services/test-execution-service.js +59 -72
  256. package/lib/services/test-initialization-service.js +2 -2
  257. package/lib/services/timeline-profiler-service.js +1 -1
  258. package/lib/services/versions-service.js +119 -138
  259. package/lib/services/webpack/webpack-compiler-service.js +211 -231
  260. package/lib/services/xcconfig-service.js +8 -19
  261. package/lib/sys-info.js +45 -62
  262. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  263. package/lib/yarn-package-manager.js +59 -78
  264. package/lib/yarn2-package-manager.js +60 -79
  265. package/package.json +56 -54
  266. package/vendor/aab-tool/bundletool.jar +0 -0
  267. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  268. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  269. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  270. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  271. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  272. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  273. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  274. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  275. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AndroidProjectService = void 0;
19
10
  const path = require("path");
@@ -146,10 +137,8 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
146
137
  const currentPlatformData = this.$projectDataService.getRuntimePackage(projectData.projectDir, platformData.platformNameLowerCase);
147
138
  return currentPlatformData && currentPlatformData[constants.VERSION_STRING];
148
139
  }
149
- validateOptions() {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- return true;
152
- });
140
+ async validateOptions() {
141
+ return true;
153
142
  }
154
143
  getAppResourcesDestinationDirectoryPath(projectData) {
155
144
  const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
@@ -160,45 +149,41 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
160
149
  return this.getLegacyAppResourcesDestinationDirPath(projectData);
161
150
  }
162
151
  }
163
- validate(projectData, options, notConfiguredEnvOptions) {
164
- return __awaiter(this, void 0, void 0, function* () {
165
- this.validatePackageName(projectData.projectIdentifiers.android);
166
- this.validateProjectName(projectData.projectName);
167
- const checkEnvironmentRequirementsOutput = yield this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
168
- platform: this.getPlatformData(projectData).normalizedPlatformName,
169
- projectDir: projectData.projectDir,
170
- options,
171
- notConfiguredEnvOptions,
172
- });
173
- this.$androidToolsInfo.validateInfo({
174
- showWarningsAsErrors: true,
175
- projectDir: projectData.projectDir,
176
- validateTargetSdk: true,
177
- });
178
- return {
179
- checkEnvironmentRequirementsOutput,
180
- };
152
+ async validate(projectData, options, notConfiguredEnvOptions) {
153
+ this.validatePackageName(projectData.projectIdentifiers.android);
154
+ this.validateProjectName(projectData.projectName);
155
+ const checkEnvironmentRequirementsOutput = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
156
+ platform: this.getPlatformData(projectData).normalizedPlatformName,
157
+ projectDir: projectData.projectDir,
158
+ options,
159
+ notConfiguredEnvOptions,
181
160
  });
161
+ this.$androidToolsInfo.validateInfo({
162
+ showWarningsAsErrors: true,
163
+ projectDir: projectData.projectDir,
164
+ validateTargetSdk: true,
165
+ });
166
+ return {
167
+ checkEnvironmentRequirementsOutput,
168
+ };
182
169
  }
183
- createProject(frameworkDir, frameworkVersion, projectData) {
184
- return __awaiter(this, void 0, void 0, function* () {
185
- if (semver.lt(frameworkVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
186
- this.$errors.fail(`The NativeScript CLI requires Android runtime ${AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE} or later to work properly.`);
187
- }
188
- this.$fs.ensureDirectoryExists(this.getPlatformData(projectData).projectRoot);
189
- const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({
190
- projectDir: projectData.projectDir,
191
- });
192
- const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
193
- this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
194
- this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
195
- if (this.$options.overrideRuntimeGradleFiles !== false) {
196
- const gradleTemplatePath = path.resolve(path.join(__dirname, "../../vendor/gradle-app"));
197
- const allGradleTemplateFiles = path.join(gradleTemplatePath, "*");
198
- this.$fs.copyFile(allGradleTemplateFiles, path.join(this.getPlatformData(projectData).projectRoot));
199
- }
200
- this.cleanResValues(targetSdkVersion, projectData);
170
+ async createProject(frameworkDir, frameworkVersion, projectData) {
171
+ if (semver.lt(frameworkVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
172
+ this.$errors.fail(`The NativeScript CLI requires Android runtime ${AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE} or later to work properly.`);
173
+ }
174
+ this.$fs.ensureDirectoryExists(this.getPlatformData(projectData).projectRoot);
175
+ const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({
176
+ projectDir: projectData.projectDir,
201
177
  });
178
+ const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
179
+ this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
180
+ this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
181
+ if (this.$options.overrideRuntimeGradleFiles !== false) {
182
+ const gradleTemplatePath = path.resolve(path.join(__dirname, "../../vendor/gradle-app"));
183
+ const allGradleTemplateFiles = path.join(gradleTemplatePath, "*");
184
+ this.$fs.copyFile(allGradleTemplateFiles, path.join(this.getPlatformData(projectData).projectRoot));
185
+ }
186
+ this.cleanResValues(targetSdkVersion, projectData);
202
187
  }
203
188
  getResDestinationDir(projectData) {
204
189
  const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
@@ -228,39 +213,37 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
228
213
  this.$logger.trace(directoriesToClean);
229
214
  _.map(directoriesToClean, (dir) => this.$fs.deleteDirectory(dir));
230
215
  }
231
- interpolateData(projectData) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- this.interpolateConfigurationFile(projectData);
234
- const appResourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
235
- let stringsFilePath;
236
- const appResourcesDestinationDirectoryPath = this.getAppResourcesDestinationDirectoryPath(projectData);
237
- if (this.$androidResourcesMigrationService.hasMigrated(appResourcesDirectoryPath)) {
238
- stringsFilePath = path.join(appResourcesDestinationDirectoryPath, constants.MAIN_DIR, constants.RESOURCES_DIR, "values", "strings.xml");
239
- }
240
- else {
241
- stringsFilePath = path.join(appResourcesDestinationDirectoryPath, "values", "strings.xml");
242
- }
243
- shell.sed("-i", /__NAME__/, projectData.projectName, stringsFilePath);
244
- shell.sed("-i", /__TITLE_ACTIVITY__/, projectData.projectName, stringsFilePath);
245
- const gradleSettingsFilePath = path.join(this.getPlatformData(projectData).projectRoot, "settings.gradle");
246
- const relativePath = path.relative(this.getPlatformData(projectData).projectRoot, projectData.projectDir);
247
- shell.sed("-i", /def USER_PROJECT_ROOT = \"\$rootDir\/..\/..\/\"/, `def USER_PROJECT_ROOT = "$rootDir/${relativePath}"`, gradleSettingsFilePath);
248
- shell.sed("-i", /__PROJECT_NAME__/, this.getProjectNameFromId(projectData), gradleSettingsFilePath);
249
- const gradleVersion = projectData.nsConfig.android.gradleVersion;
250
- if (gradleVersion) {
251
- const gradleWrapperFilePath = path.join(this.getPlatformData(projectData).projectRoot, "gradle", "wrapper", "gradle-wrapper.properties");
252
- shell.sed("-i", /gradle-([0-9.]+)-bin.zip/, `gradle-${gradleVersion}-bin.zip`, gradleWrapperFilePath);
253
- }
254
- try {
255
- const appGradleContent = this.$fs.readText(projectData.appGradlePath);
256
- if (appGradleContent.indexOf(constants.PACKAGE_PLACEHOLDER_NAME) !== -1) {
257
- shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
258
- }
259
- }
260
- catch (e) {
261
- this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
216
+ async interpolateData(projectData) {
217
+ this.interpolateConfigurationFile(projectData);
218
+ const appResourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
219
+ let stringsFilePath;
220
+ const appResourcesDestinationDirectoryPath = this.getAppResourcesDestinationDirectoryPath(projectData);
221
+ if (this.$androidResourcesMigrationService.hasMigrated(appResourcesDirectoryPath)) {
222
+ stringsFilePath = path.join(appResourcesDestinationDirectoryPath, constants.MAIN_DIR, constants.RESOURCES_DIR, "values", "strings.xml");
223
+ }
224
+ else {
225
+ stringsFilePath = path.join(appResourcesDestinationDirectoryPath, "values", "strings.xml");
226
+ }
227
+ shell.sed("-i", /__NAME__/, projectData.projectName, stringsFilePath);
228
+ shell.sed("-i", /__TITLE_ACTIVITY__/, projectData.projectName, stringsFilePath);
229
+ const gradleSettingsFilePath = path.join(this.getPlatformData(projectData).projectRoot, "settings.gradle");
230
+ const relativePath = path.relative(this.getPlatformData(projectData).projectRoot, projectData.projectDir);
231
+ shell.sed("-i", /def USER_PROJECT_ROOT = \"\$rootDir\/..\/..\/\"/, `def USER_PROJECT_ROOT = "$rootDir/${relativePath}"`, gradleSettingsFilePath);
232
+ shell.sed("-i", /__PROJECT_NAME__/, this.getProjectNameFromId(projectData), gradleSettingsFilePath);
233
+ const gradleVersion = projectData.nsConfig.android.gradleVersion;
234
+ if (gradleVersion) {
235
+ const gradleWrapperFilePath = path.join(this.getPlatformData(projectData).projectRoot, "gradle", "wrapper", "gradle-wrapper.properties");
236
+ shell.sed("-i", /gradle-([0-9.]+)-bin.zip/, `gradle-${gradleVersion}-bin.zip`, gradleWrapperFilePath);
237
+ }
238
+ try {
239
+ const appGradleContent = this.$fs.readText(projectData.appGradlePath);
240
+ if (appGradleContent.indexOf(constants.PACKAGE_PLACEHOLDER_NAME) !== -1) {
241
+ shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
262
242
  }
263
- });
243
+ }
244
+ catch (e) {
245
+ this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
246
+ }
264
247
  }
265
248
  interpolateConfigurationFile(projectData) {
266
249
  const manifestPath = this.getPlatformData(projectData).configurationFilePath;
@@ -284,30 +267,24 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
284
267
  afterCreateProject(projectRoot) {
285
268
  return null;
286
269
  }
287
- updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
288
- return __awaiter(this, void 0, void 0, function* () {
289
- if (semver.eq(newVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
290
- const platformLowercase = this.getPlatformData(projectData).normalizedPlatformName.toLowerCase();
291
- yield removePlatforms([platformLowercase.split("@")[0]]);
292
- yield addPlatform(platformLowercase);
293
- return false;
294
- }
295
- return true;
296
- });
270
+ async updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
271
+ if (semver.eq(newVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
272
+ const platformLowercase = this.getPlatformData(projectData).normalizedPlatformName.toLowerCase();
273
+ await removePlatforms([platformLowercase.split("@")[0]]);
274
+ await addPlatform(platformLowercase);
275
+ return false;
276
+ }
277
+ return true;
297
278
  }
298
- buildProject(projectRoot, projectData, buildData) {
299
- return __awaiter(this, void 0, void 0, function* () {
300
- const platformData = this.getPlatformData(projectData);
301
- yield this.$gradleBuildService.buildProject(platformData.projectRoot, buildData);
302
- const outputPath = platformData.getBuildOutputPath(buildData);
303
- yield this.$filesHashService.saveHashesForProject(this._platformData, outputPath);
304
- yield this.trackKotlinUsage(projectRoot);
305
- });
279
+ async buildProject(projectRoot, projectData, buildData) {
280
+ const platformData = this.getPlatformData(projectData);
281
+ await this.$gradleBuildService.buildProject(platformData.projectRoot, buildData);
282
+ const outputPath = platformData.getBuildOutputPath(buildData);
283
+ await this.$filesHashService.saveHashesForProject(this._platformData, outputPath);
284
+ await this.trackKotlinUsage(projectRoot);
306
285
  }
307
- buildForDeploy(projectRoot, projectData, buildData) {
308
- return __awaiter(this, void 0, void 0, function* () {
309
- return this.buildProject(projectRoot, projectData, buildData);
310
- });
286
+ async buildForDeploy(projectRoot, projectData, buildData) {
287
+ return this.buildProject(projectRoot, projectData, buildData);
311
288
  }
312
289
  isPlatformPrepared(projectRoot, projectData) {
313
290
  return this.$fs.exists(path.join(this.getPlatformData(projectData).appDestinationDirectoryPath, this.$options.hostProjectModuleName));
@@ -315,9 +292,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
315
292
  getFrameworkFilesExtensions() {
316
293
  return [".jar", ".dat"];
317
294
  }
318
- prepareProject() {
319
- return __awaiter(this, void 0, void 0, function* () {
320
- });
295
+ async prepareProject() {
321
296
  }
322
297
  ensureConfigurationFileInAppResources(projectData) {
323
298
  const appResourcesDirectoryPath = projectData.appResourcesDirectoryPath;
@@ -369,41 +344,40 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
369
344
  const compileSdkVersion = androidToolsInfo && androidToolsInfo.compileSdkVersion;
370
345
  this.cleanResValues(compileSdkVersion, projectData);
371
346
  }
372
- preparePluginNativeCode(pluginData, projectData) {
373
- return __awaiter(this, void 0, void 0, function* () {
374
- const pluginPlatformsFolderPath = this.getPluginPlatformsFolderPath(pluginData, AndroidProjectService.ANDROID_PLATFORM_NAME);
375
- if (this.$fs.exists(pluginPlatformsFolderPath)) {
376
- const gradleArgs = (projectData.nsConfig.android.gradleArgs || []).concat(this.$options.gradleArgs || []);
377
- const pluginOptions = (projectData.nsConfig.android.plugins || {})[pluginData.name] || {};
378
- const options = Object.assign({ gradlePath: this.$options.gradlePath, gradleArgs, projectDir: projectData.projectDir, pluginName: pluginData.name, platformsAndroidDirPath: pluginPlatformsFolderPath, aarOutputDir: pluginPlatformsFolderPath, tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin") }, pluginOptions);
379
- if (yield this.$androidPluginBuildService.buildAar(options)) {
380
- this.$logger.info(`Built aar for ${options.pluginName}`);
381
- }
382
- this.$androidPluginBuildService.migrateIncludeGradle(options);
347
+ async preparePluginNativeCode(pluginData, projectData) {
348
+ const pluginPlatformsFolderPath = this.getPluginPlatformsFolderPath(pluginData, AndroidProjectService.ANDROID_PLATFORM_NAME);
349
+ if (this.$fs.exists(pluginPlatformsFolderPath)) {
350
+ const gradleArgs = (projectData.nsConfig.android.gradleArgs || []).concat(this.$options.gradleArgs || []);
351
+ const pluginOptions = (projectData.nsConfig.android.plugins || {})[pluginData.name] || {};
352
+ const options = {
353
+ gradlePath: this.$options.gradlePath,
354
+ gradleArgs,
355
+ projectDir: projectData.projectDir,
356
+ pluginName: pluginData.name,
357
+ platformsAndroidDirPath: pluginPlatformsFolderPath,
358
+ aarOutputDir: pluginPlatformsFolderPath,
359
+ tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin"),
360
+ ...pluginOptions
361
+ };
362
+ if (await this.$androidPluginBuildService.buildAar(options)) {
363
+ this.$logger.info(`Built aar for ${options.pluginName}`);
383
364
  }
384
- });
365
+ this.$androidPluginBuildService.migrateIncludeGradle(options);
366
+ }
385
367
  }
386
- processConfigurationFilesFromAppResources() {
387
- return __awaiter(this, void 0, void 0, function* () {
388
- return;
389
- });
368
+ async processConfigurationFilesFromAppResources() {
369
+ return;
390
370
  }
391
- removePluginNativeCode(pluginData, projectData) {
392
- return __awaiter(this, void 0, void 0, function* () {
393
- });
371
+ async removePluginNativeCode(pluginData, projectData) {
394
372
  }
395
- beforePrepareAllPlugins(projectData, dependencies) {
396
- return __awaiter(this, void 0, void 0, function* () {
397
- if (dependencies) {
398
- dependencies = this.filterUniqueDependencies(dependencies);
399
- return this.provideDependenciesJson(projectData, dependencies);
400
- }
401
- });
373
+ async beforePrepareAllPlugins(projectData, dependencies) {
374
+ if (dependencies) {
375
+ dependencies = this.filterUniqueDependencies(dependencies);
376
+ return this.provideDependenciesJson(projectData, dependencies);
377
+ }
402
378
  }
403
- handleNativeDependenciesChange(projectData, opts) {
404
- return __awaiter(this, void 0, void 0, function* () {
405
- return;
406
- });
379
+ async handleNativeDependenciesChange(projectData, opts) {
380
+ return;
407
381
  }
408
382
  filterUniqueDependencies(dependencies) {
409
383
  const depsDictionary = dependencies.reduce((dict, dep) => {
@@ -443,58 +417,50 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
443
417
  (nativescript.android ||
444
418
  (nativescript.platforms && nativescript.platforms.android)));
445
419
  }
446
- stopServices(projectRoot) {
447
- return __awaiter(this, void 0, void 0, function* () {
448
- const result = yield this.$gradleCommandService.executeCommand(["--stop", "--quiet"], {
449
- cwd: projectRoot,
450
- message: "Gradle stop services...",
451
- stdio: "pipe",
452
- });
453
- return result;
420
+ async stopServices(projectRoot) {
421
+ const result = await this.$gradleCommandService.executeCommand(["--stop", "--quiet"], {
422
+ cwd: projectRoot,
423
+ message: "Gradle stop services...",
424
+ stdio: "pipe",
454
425
  });
426
+ return result;
455
427
  }
456
- cleanProject(projectRoot) {
457
- return __awaiter(this, void 0, void 0, function* () {
458
- yield this.$gradleBuildService.cleanProject(projectRoot, {
459
- release: false,
460
- });
428
+ async cleanProject(projectRoot) {
429
+ await this.$gradleBuildService.cleanProject(projectRoot, {
430
+ release: false,
461
431
  });
462
432
  }
463
- cleanDeviceTempFolder(deviceIdentifier, projectData) {
464
- return __awaiter(this, void 0, void 0, function* () {
465
- const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
466
- identifier: deviceIdentifier,
467
- });
468
- const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
469
- yield adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
433
+ async cleanDeviceTempFolder(deviceIdentifier, projectData) {
434
+ const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
435
+ identifier: deviceIdentifier,
470
436
  });
437
+ const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
438
+ await adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
471
439
  }
472
- checkForChanges(changesInfo, prepareData, projectData) {
473
- return __awaiter(this, void 0, void 0, function* () {
474
- const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
475
- const platformData = this.getPlatformData(projectData);
476
- deviceDescriptors.forEach((deviceDescriptor) => {
477
- const buildData = deviceDescriptor.buildData;
478
- if (buildData.buildFilterDevicesArch) {
479
- const outputPath = platformData.getBuildOutputPath(deviceDescriptor.buildData);
480
- const apkOutputPath = path.join(outputPath, prepareData.release ? "release" : "debug");
481
- if (!this.$fs.exists(apkOutputPath)) {
482
- return;
483
- }
484
- const device = this.$devicesService
485
- .getDevicesForPlatform(deviceDescriptor.buildData.platform)
486
- .filter((d) => d.deviceInfo.identifier === deviceDescriptor.identifier)[0];
487
- const abis = device.deviceInfo.abis.filter((a) => !!a && a.length)[0];
488
- const directoryContent = this.$fs.readDirectory(apkOutputPath);
489
- const regexp = new RegExp(`${abis}.*\.apk`);
490
- const files = _.filter(directoryContent, (entry) => {
491
- return regexp.test(entry);
492
- });
493
- if (files.length === 0) {
494
- changesInfo.nativeChanged = true;
495
- }
440
+ async checkForChanges(changesInfo, prepareData, projectData) {
441
+ const deviceDescriptors = this.$liveSyncProcessDataService.getDeviceDescriptors(projectData.projectDir);
442
+ const platformData = this.getPlatformData(projectData);
443
+ deviceDescriptors.forEach((deviceDescriptor) => {
444
+ const buildData = deviceDescriptor.buildData;
445
+ if (buildData.buildFilterDevicesArch) {
446
+ const outputPath = platformData.getBuildOutputPath(deviceDescriptor.buildData);
447
+ const apkOutputPath = path.join(outputPath, prepareData.release ? "release" : "debug");
448
+ if (!this.$fs.exists(apkOutputPath)) {
449
+ return;
496
450
  }
497
- });
451
+ const device = this.$devicesService
452
+ .getDevicesForPlatform(deviceDescriptor.buildData.platform)
453
+ .filter((d) => d.deviceInfo.identifier === deviceDescriptor.identifier)[0];
454
+ const abis = device.deviceInfo.abis.filter((a) => !!a && a.length)[0];
455
+ const directoryContent = this.$fs.readDirectory(apkOutputPath);
456
+ const regexp = new RegExp(`${abis}.*\.apk`);
457
+ const files = _.filter(directoryContent, (entry) => {
458
+ return regexp.test(entry);
459
+ });
460
+ if (files.length === 0) {
461
+ changesInfo.nativeChanged = true;
462
+ }
463
+ }
498
464
  });
499
465
  }
500
466
  getDeploymentTarget(projectData) {
@@ -552,24 +518,22 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
552
518
  });
553
519
  }
554
520
  }
555
- trackKotlinUsage(projectRoot) {
556
- return __awaiter(this, void 0, void 0, function* () {
557
- const buildStatistics = this.tryGetAndroidBuildStatistics(projectRoot);
558
- try {
559
- if (buildStatistics && buildStatistics.kotlinUsage) {
560
- const analyticsDelimiter = constants.AnalyticsEventLabelDelimiter;
561
- const hasUseKotlinPropertyInAppData = `hasUseKotlinPropertyInApp${analyticsDelimiter}${buildStatistics.kotlinUsage.hasUseKotlinPropertyInApp}`;
562
- const hasKotlinRuntimeClassesData = `hasKotlinRuntimeClasses${analyticsDelimiter}${buildStatistics.kotlinUsage.hasKotlinRuntimeClasses}`;
563
- yield this.$analyticsService.trackEventActionInGoogleAnalytics({
564
- action: "Using Kotlin",
565
- additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}`,
566
- });
567
- }
521
+ async trackKotlinUsage(projectRoot) {
522
+ const buildStatistics = this.tryGetAndroidBuildStatistics(projectRoot);
523
+ try {
524
+ if (buildStatistics && buildStatistics.kotlinUsage) {
525
+ const analyticsDelimiter = constants.AnalyticsEventLabelDelimiter;
526
+ const hasUseKotlinPropertyInAppData = `hasUseKotlinPropertyInApp${analyticsDelimiter}${buildStatistics.kotlinUsage.hasUseKotlinPropertyInApp}`;
527
+ const hasKotlinRuntimeClassesData = `hasKotlinRuntimeClasses${analyticsDelimiter}${buildStatistics.kotlinUsage.hasKotlinRuntimeClasses}`;
528
+ await this.$analyticsService.trackEventActionInGoogleAnalytics({
529
+ action: "Using Kotlin",
530
+ additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}`,
531
+ });
568
532
  }
569
- catch (e) {
570
- this.$logger.trace(`Failed to track android build statistics. Error is: ${e.message}`);
571
- }
572
- });
533
+ }
534
+ catch (e) {
535
+ this.$logger.trace(`Failed to track android build statistics. Error is: ${e.message}`);
536
+ }
573
537
  }
574
538
  tryGetAndroidBuildStatistics(projectRoot) {
575
539
  const staticsFilePath = path.join(projectRoot, constants.ANDROID_ANALYTICS_DATA_DIR, constants.ANDROID_ANALYTICS_DATA_FILE);
@@ -585,6 +549,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
585
549
  return buildStatistics;
586
550
  }
587
551
  }
552
+ exports.AndroidProjectService = AndroidProjectService;
588
553
  AndroidProjectService.VALUES_DIRNAME = "values";
589
554
  AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX = AndroidProjectService.VALUES_DIRNAME + "-v";
590
555
  AndroidProjectService.ANDROID_PLATFORM_NAME = "android";
@@ -593,5 +558,4 @@ __decorate([
593
558
  (0, decorators_1.performanceLog)(),
594
559
  (0, helpers_1.hook)("buildAndroid")
595
560
  ], AndroidProjectService.prototype, "buildProject", null);
596
- exports.AndroidProjectService = AndroidProjectService;
597
561
  yok_1.injector.register("androidProjectService", AndroidProjectService);
@@ -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.AndroidResourcesMigrationService = void 0;
13
4
  const path = require("path");
@@ -28,65 +19,61 @@ class AndroidResourcesMigrationService {
28
19
  hasMigrated(appResourcesDir) {
29
20
  return this.$fs.exists(path.join(appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR, constants.SRC_DIR, constants.MAIN_DIR));
30
21
  }
31
- migrate(appResourcesDir, backupLocation) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- const originalAppResources = path.join(appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR);
34
- const appResourcesDestination = path.join(appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR_TEMP);
35
- const appResourcesBackup = path.join(backupLocation || appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR_OLD);
22
+ async migrate(appResourcesDir, backupLocation) {
23
+ const originalAppResources = path.join(appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR);
24
+ const appResourcesDestination = path.join(appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR_TEMP);
25
+ const appResourcesBackup = path.join(backupLocation || appResourcesDir, AndroidResourcesMigrationService.ANDROID_DIR_OLD);
26
+ try {
27
+ await this.tryMigrate(originalAppResources, appResourcesDestination, appResourcesBackup);
28
+ this.$logger.info(`Successfully updated your project's application resources '/Android' directory structure.${os_1.EOL}The previous version of your Android application resources has been renamed to '/${AndroidResourcesMigrationService.ANDROID_DIR_OLD}'`);
29
+ }
30
+ catch (error) {
36
31
  try {
37
- yield this.tryMigrate(originalAppResources, appResourcesDestination, appResourcesBackup);
38
- this.$logger.info(`Successfully updated your project's application resources '/Android' directory structure.${os_1.EOL}The previous version of your Android application resources has been renamed to '/${AndroidResourcesMigrationService.ANDROID_DIR_OLD}'`);
32
+ this.recover(originalAppResources, appResourcesDestination, appResourcesBackup);
33
+ this.$logger.info("Failed to update resources. They should be in their initial state.");
39
34
  }
40
- catch (error) {
41
- try {
42
- this.recover(originalAppResources, appResourcesDestination, appResourcesBackup);
43
- this.$logger.info("Failed to update resources. They should be in their initial state.");
44
- }
45
- catch (err) {
46
- this.$logger.trace(err);
47
- this.$logger.info(`Failed to update resources.${os_1.EOL} Backup of original content is inside "${appResourcesBackup}".${os_1.EOL}If "${originalAppResources} is missing copy from backup folder."`);
48
- }
49
- finally {
50
- this.$errors.fail(error.message);
51
- }
35
+ catch (err) {
36
+ this.$logger.trace(err);
37
+ this.$logger.info(`Failed to update resources.${os_1.EOL} Backup of original content is inside "${appResourcesBackup}".${os_1.EOL}If "${originalAppResources} is missing copy from backup folder."`);
52
38
  }
53
- });
39
+ finally {
40
+ this.$errors.fail(error.message);
41
+ }
42
+ }
54
43
  }
55
- tryMigrate(originalAppResources, appResourcesDestination, appResourcesBackup) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- const appMainSourceSet = path.join(appResourcesDestination, constants.SRC_DIR, constants.MAIN_DIR);
58
- const appResourcesMainSourceSetResourcesDestination = path.join(appMainSourceSet, constants.RESOURCES_DIR);
59
- this.$fs.ensureDirectoryExists(appResourcesDestination);
60
- this.$fs.ensureDirectoryExists(appMainSourceSet);
61
- this.$fs.ensureDirectoryExists(appResourcesMainSourceSetResourcesDestination);
62
- this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, "java"));
63
- this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, constants.ASSETS_DIR));
64
- const isDirectory = (source) => this.$fs.getLsStats(source).isDirectory();
65
- const getAllFiles = (source) => this.$fs.readDirectory(source).map((name) => path.join(source, name));
66
- const getDirectories = (files) => files.filter(isDirectory);
67
- const getFiles = (files) => files.filter((file) => !isDirectory(file));
68
- this.$fs.copyFile(path.join(originalAppResources, constants.APP_GRADLE_FILE_NAME), path.join(appResourcesDestination, constants.APP_GRADLE_FILE_NAME));
69
- const appResourcesFiles = getAllFiles(originalAppResources);
70
- const resourceDirectories = getDirectories(appResourcesFiles);
71
- const resourceFiles = getFiles(appResourcesFiles);
72
- resourceDirectories.forEach((dir) => {
73
- if (path.basename(dir) !== "libs") {
74
- this.$fs.copyFile(dir, appResourcesMainSourceSetResourcesDestination);
75
- }
76
- else {
77
- this.$fs.copyFile(dir, path.join(appResourcesDestination));
78
- }
79
- });
80
- resourceFiles.forEach((file) => {
81
- const fileName = path.basename(file);
82
- if (fileName !== constants.MANIFEST_FILE_NAME) {
83
- this.$fs.copyFile(file, path.join(appResourcesDestination, fileName));
84
- }
85
- });
86
- this.$fs.copyFile(path.join(originalAppResources, constants.MANIFEST_FILE_NAME), path.join(appMainSourceSet, constants.MANIFEST_FILE_NAME));
87
- this.$fs.rename(originalAppResources, appResourcesBackup);
88
- this.$fs.rename(appResourcesDestination, originalAppResources);
44
+ async tryMigrate(originalAppResources, appResourcesDestination, appResourcesBackup) {
45
+ const appMainSourceSet = path.join(appResourcesDestination, constants.SRC_DIR, constants.MAIN_DIR);
46
+ const appResourcesMainSourceSetResourcesDestination = path.join(appMainSourceSet, constants.RESOURCES_DIR);
47
+ this.$fs.ensureDirectoryExists(appResourcesDestination);
48
+ this.$fs.ensureDirectoryExists(appMainSourceSet);
49
+ this.$fs.ensureDirectoryExists(appResourcesMainSourceSetResourcesDestination);
50
+ this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, "java"));
51
+ this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, constants.ASSETS_DIR));
52
+ const isDirectory = (source) => this.$fs.getLsStats(source).isDirectory();
53
+ const getAllFiles = (source) => this.$fs.readDirectory(source).map((name) => path.join(source, name));
54
+ const getDirectories = (files) => files.filter(isDirectory);
55
+ const getFiles = (files) => files.filter((file) => !isDirectory(file));
56
+ this.$fs.copyFile(path.join(originalAppResources, constants.APP_GRADLE_FILE_NAME), path.join(appResourcesDestination, constants.APP_GRADLE_FILE_NAME));
57
+ const appResourcesFiles = getAllFiles(originalAppResources);
58
+ const resourceDirectories = getDirectories(appResourcesFiles);
59
+ const resourceFiles = getFiles(appResourcesFiles);
60
+ resourceDirectories.forEach((dir) => {
61
+ if (path.basename(dir) !== "libs") {
62
+ this.$fs.copyFile(dir, appResourcesMainSourceSetResourcesDestination);
63
+ }
64
+ else {
65
+ this.$fs.copyFile(dir, path.join(appResourcesDestination));
66
+ }
67
+ });
68
+ resourceFiles.forEach((file) => {
69
+ const fileName = path.basename(file);
70
+ if (fileName !== constants.MANIFEST_FILE_NAME) {
71
+ this.$fs.copyFile(file, path.join(appResourcesDestination, fileName));
72
+ }
89
73
  });
74
+ this.$fs.copyFile(path.join(originalAppResources, constants.MANIFEST_FILE_NAME), path.join(appMainSourceSet, constants.MANIFEST_FILE_NAME));
75
+ this.$fs.rename(originalAppResources, appResourcesBackup);
76
+ this.$fs.rename(appResourcesDestination, originalAppResources);
90
77
  }
91
78
  recover(originalAppResources, appResourcesDestination, appResourcesBackup) {
92
79
  if (!this.$fs.exists(originalAppResources)) {
@@ -97,8 +84,8 @@ class AndroidResourcesMigrationService {
97
84
  }
98
85
  }
99
86
  }
87
+ exports.AndroidResourcesMigrationService = AndroidResourcesMigrationService;
100
88
  AndroidResourcesMigrationService.ANDROID_DIR = "Android";
101
89
  AndroidResourcesMigrationService.ANDROID_DIR_TEMP = "Android-Updated";
102
90
  AndroidResourcesMigrationService.ANDROID_DIR_OLD = "Android-Pre-v4";
103
- exports.AndroidResourcesMigrationService = AndroidResourcesMigrationService;
104
91
  yok_1.injector.register("androidResourcesMigrationService", AndroidResourcesMigrationService);