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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +9 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +44 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +150 -200
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +163 -199
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +22 -35
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +205 -231
  194. package/lib/services/android-project-service.js +126 -171
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +195 -214
  198. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -58
  199. package/lib/services/assets-generation/assets-generation-service.js +103 -117
  200. package/lib/services/build-artifacts-service.js +9 -20
  201. package/lib/services/build-info-file-service.js +20 -35
  202. package/lib/services/cleanup-service.js +47 -76
  203. package/lib/services/cocoapods-service.js +111 -132
  204. package/lib/services/device/device-install-app-service.js +54 -71
  205. package/lib/services/doctor-service.js +99 -118
  206. package/lib/services/extensibility-service.js +81 -100
  207. package/lib/services/files-hash-service.js +26 -43
  208. package/lib/services/hmr-status-service.js +1 -1
  209. package/lib/services/initialize-service.js +37 -50
  210. package/lib/services/ios/export-options-plist-service.js +38 -51
  211. package/lib/services/ios/ios-signing-service.js +168 -187
  212. package/lib/services/ios/spm-service.js +43 -53
  213. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  214. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  215. package/lib/services/ios/xcodebuild-service.js +52 -71
  216. package/lib/services/ios-debugger-port-service.js +24 -37
  217. package/lib/services/ios-device-debug-service.js +75 -102
  218. package/lib/services/ios-entitlements-service.js +31 -42
  219. package/lib/services/ios-extensions-service.js +18 -29
  220. package/lib/services/ios-project-service.js +419 -460
  221. package/lib/services/ios-provision-service.js +108 -129
  222. package/lib/services/ios-watch-app-service.js +21 -32
  223. package/lib/services/ip-service.js +38 -53
  224. package/lib/services/itmstransporter-service.js +129 -152
  225. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  226. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  227. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  228. package/lib/services/livesync/android-livesync-service.js +14 -35
  229. package/lib/services/livesync/android-livesync-tool.js +90 -113
  230. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  231. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  232. package/lib/services/livesync/ios-livesync-service.js +42 -58
  233. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  234. package/lib/services/log-parser-service.js +1 -1
  235. package/lib/services/log-source-map-service.js +30 -41
  236. package/lib/services/marking-mode-service.js +15 -28
  237. package/lib/services/npm-config-service.js +1 -1
  238. package/lib/services/pacote-service.js +51 -66
  239. package/lib/services/performance-service.js +1 -1
  240. package/lib/services/platform/add-platform-service.js +50 -71
  241. package/lib/services/platform/platform-validation-service.js +22 -33
  242. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  243. package/lib/services/platform-environment-requirements.js +26 -37
  244. package/lib/services/plugins-service.js +122 -147
  245. package/lib/services/project-backup-service.js +1 -1
  246. package/lib/services/project-changes-service.js +124 -141
  247. package/lib/services/project-cleanup-service.js +64 -77
  248. package/lib/services/project-config-service.js +71 -80
  249. package/lib/services/project-data-service.js +101 -118
  250. package/lib/services/project-name-service.js +28 -43
  251. package/lib/services/project-service.js +84 -103
  252. package/lib/services/project-templates-service.js +52 -67
  253. package/lib/services/start-service.js +41 -59
  254. package/lib/services/temp-service.js +8 -21
  255. package/lib/services/terminal-spinner-service.js +15 -26
  256. package/lib/services/test-execution-service.js +59 -72
  257. package/lib/services/test-initialization-service.js +2 -2
  258. package/lib/services/timeline-profiler-service.js +1 -1
  259. package/lib/services/versions-service.js +119 -138
  260. package/lib/services/webpack/webpack-compiler-service.js +214 -234
  261. package/lib/services/xcconfig-service.js +8 -19
  262. package/lib/sys-info.js +45 -62
  263. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  264. package/lib/yarn-package-manager.js +59 -78
  265. package/lib/yarn2-package-manager.js +60 -79
  266. package/package.json +66 -81
  267. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  268. package/node_modules/@npmcli/move-file/README.md +0 -69
  269. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  270. package/node_modules/@npmcli/move-file/node_modules/mkdirp/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.MigrateController = void 0;
13
4
  const path = require("path");
@@ -76,10 +67,8 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
76
67
  replaceWith: "@nativescript/webpack",
77
68
  shouldRemove: true,
78
69
  isDev: true,
79
- shouldMigrateAction() {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- return true;
82
- });
70
+ async shouldMigrateAction() {
71
+ return true;
83
72
  },
84
73
  migrateAction: this.migrateWebpack.bind(this),
85
74
  },
@@ -94,13 +83,11 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
94
83
  packageName: "nativescript-vue",
95
84
  minVersion: "2.7.0",
96
85
  desiredVersion: "~2.9.3",
97
- shouldMigrateAction(dependency, projectData, loose) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- if (!this.hasDependency(dependency, projectData)) {
100
- return false;
101
- }
102
- return yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
103
- });
86
+ async shouldMigrateAction(dependency, projectData, loose) {
87
+ if (!this.hasDependency(dependency, projectData)) {
88
+ return false;
89
+ }
90
+ return await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
104
91
  },
105
92
  migrateAction: this.migrateNativeScriptVue.bind(this),
106
93
  },
@@ -113,13 +100,11 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
113
100
  packageName: "@nativescript/angular",
114
101
  minVersion: "10.0.0",
115
102
  desiredVersion: "^18.0.0",
116
- shouldMigrateAction(dependency, projectData, loose) {
117
- return __awaiter(this, void 0, void 0, function* () {
118
- if (!this.hasDependency(dependency, projectData)) {
119
- return false;
120
- }
121
- return yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
122
- });
103
+ async shouldMigrateAction(dependency, projectData, loose) {
104
+ if (!this.hasDependency(dependency, projectData)) {
105
+ return false;
106
+ }
107
+ return await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
123
108
  },
124
109
  migrateAction: this.migrateNativeScriptAngular.bind(this),
125
110
  },
@@ -127,13 +112,11 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
127
112
  packageName: "svelte-native",
128
113
  minVersion: "0.9.0",
129
114
  desiredVersion: "~0.9.4",
130
- shouldMigrateAction(dependency, projectData, loose) {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- if (!this.hasDependency(dependency, projectData)) {
133
- return false;
134
- }
135
- return yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
136
- });
115
+ async shouldMigrateAction(dependency, projectData, loose) {
116
+ if (!this.hasDependency(dependency, projectData)) {
117
+ return false;
118
+ }
119
+ return await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
137
120
  },
138
121
  migrateAction: this.migrateNativeScriptSvelte.bind(this),
139
122
  },
@@ -142,10 +125,8 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
142
125
  replaceWith: "@nativescript/unit-test-runner",
143
126
  shouldRemove: true,
144
127
  isDev: true,
145
- shouldMigrateAction() {
146
- return __awaiter(this, void 0, void 0, function* () {
147
- return true;
148
- });
128
+ async shouldMigrateAction() {
129
+ return true;
149
130
  },
150
131
  migrateAction: this.migrateUnitTestRunner.bind(this),
151
132
  },
@@ -153,13 +134,11 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
153
134
  packageName: "@nativescript/unit-test-runner",
154
135
  minVersion: "1.0.0",
155
136
  desiredVersion: "~3.0.0",
156
- shouldMigrateAction(dependency, projectData, loose) {
157
- return __awaiter(this, void 0, void 0, function* () {
158
- if (!this.hasDependency(dependency, projectData)) {
159
- return false;
160
- }
161
- return yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
162
- });
137
+ async shouldMigrateAction(dependency, projectData, loose) {
138
+ if (!this.hasDependency(dependency, projectData)) {
139
+ return false;
140
+ }
141
+ return await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
163
142
  },
164
143
  migrateAction: this.migrateUnitTestRunner.bind(this),
165
144
  },
@@ -215,276 +194,252 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
215
194
  jsonFileSettingsPath: shouldMigrateCacheFilePath,
216
195
  });
217
196
  }
218
- shouldMigrate({ projectDir, platforms, loose = false, }) {
219
- return __awaiter(this, void 0, void 0, function* () {
220
- const remainingPlatforms = [];
221
- let shouldMigrate = false;
222
- for (const platform of platforms) {
223
- if (!loose) {
224
- remainingPlatforms.push(platform);
225
- continue;
226
- }
227
- const cachedResult = yield this.getCachedShouldMigrate(projectDir, platform);
228
- this.$logger.trace(`Got cached result for shouldMigrate for platform: ${platform}: ${cachedResult}`);
229
- if (cachedResult !== false) {
230
- remainingPlatforms.push(platform);
231
- }
197
+ async shouldMigrate({ projectDir, platforms, loose = false, }) {
198
+ const remainingPlatforms = [];
199
+ let shouldMigrate = false;
200
+ for (const platform of platforms) {
201
+ if (!loose) {
202
+ remainingPlatforms.push(platform);
203
+ continue;
232
204
  }
233
- if (remainingPlatforms.length > 0) {
234
- shouldMigrate = yield this._shouldMigrate({
235
- projectDir,
236
- platforms: remainingPlatforms,
237
- loose,
238
- });
239
- this.$logger.trace(`Executed shouldMigrate for platforms: ${remainingPlatforms}. Result is: ${shouldMigrate}`);
240
- if (!shouldMigrate && loose) {
241
- for (const remainingPlatform of remainingPlatforms) {
242
- yield this.setCachedShouldMigrate(projectDir, remainingPlatform);
243
- }
244
- }
205
+ const cachedResult = await this.getCachedShouldMigrate(projectDir, platform);
206
+ this.$logger.trace(`Got cached result for shouldMigrate for platform: ${platform}: ${cachedResult}`);
207
+ if (cachedResult !== false) {
208
+ remainingPlatforms.push(platform);
245
209
  }
246
- return shouldMigrate;
247
- });
248
- }
249
- validate({ projectDir, platforms, loose = true, }) {
250
- return __awaiter(this, void 0, void 0, function* () {
251
- const shouldMigrate = yield this.shouldMigrate({
210
+ }
211
+ if (remainingPlatforms.length > 0) {
212
+ shouldMigrate = await this._shouldMigrate({
252
213
  projectDir,
253
- platforms,
214
+ platforms: remainingPlatforms,
254
215
  loose,
255
216
  });
256
- if (shouldMigrate) {
257
- this.$errors.fail(`The current application is not compatible with NativeScript CLI ${this.$staticConfig.version}.\n\nRun 'ns migrate' to migrate your project to the latest NativeScript version.\n\nAlternatively you may try running it with '--force' to skip this check.`);
217
+ this.$logger.trace(`Executed shouldMigrate for platforms: ${remainingPlatforms}. Result is: ${shouldMigrate}`);
218
+ if (!shouldMigrate && loose) {
219
+ for (const remainingPlatform of remainingPlatforms) {
220
+ await this.setCachedShouldMigrate(projectDir, remainingPlatform);
221
+ }
258
222
  }
223
+ }
224
+ return shouldMigrate;
225
+ }
226
+ async validate({ projectDir, platforms, loose = true, }) {
227
+ const shouldMigrate = await this.shouldMigrate({
228
+ projectDir,
229
+ platforms,
230
+ loose,
259
231
  });
232
+ if (shouldMigrate) {
233
+ this.$errors.fail(`The current application is not compatible with NativeScript CLI ${this.$staticConfig.version}.\n\nRun 'ns migrate' to migrate your project to the latest NativeScript version.\n\nAlternatively you may try running it with '--force' to skip this check.`);
234
+ }
260
235
  }
261
- migrate({ projectDir, platforms, loose = false, }) {
262
- return __awaiter(this, void 0, void 0, function* () {
263
- this.spinner = this.$terminalSpinnerService.createSpinner();
264
- const projectData = this.$projectDataService.getProjectData(projectDir);
265
- this.$logger.trace("MigrationController.migrate called with", {
266
- projectDir,
267
- platforms,
268
- loose: loose,
269
- });
270
- const canMigrate = yield this.ensureGitCleanOrForce(projectDir);
271
- if (!canMigrate) {
272
- this.spinner.fail("Pre-Migration verification failed");
273
- return;
274
- }
275
- this.spinner.succeed("Pre-Migration verification complete");
276
- this.spinner.info("Backing up project files before migration");
277
- const backup = yield this.backupProject(projectDir);
278
- this.spinner.succeed("Project files have been backed up");
279
- this.spinner.info("Cleaning up project files before migration");
280
- yield this.cleanUpProject(projectData);
281
- this.spinner.succeed("Project files have been cleaned up");
282
- this.spinner.info("Cleaning up old artifacts");
283
- yield this.handleAutoGeneratedFiles(backup, projectData);
284
- this.spinner.succeed("Cleaned old artifacts");
285
- const newConfigPath = path.resolve(projectDir, "nativescript.config.ts");
286
- if (!this.$fs.exists(newConfigPath)) {
287
- this.spinner.info(`Migrating project to use ${color_1.color.green("nativescript.config.ts")}`);
288
- yield this.migrateConfigs(projectDir);
289
- this.spinner.succeed(`Project has been migrated to use ${color_1.color.green("nativescript.config.ts")}`);
290
- }
291
- this.spinner.info("Updating project dependencies");
292
- yield this.migrateDependencies(projectData, platforms, loose);
293
- this.spinner.succeed("Project dependencies have been updated");
294
- const isAngular = this.hasDependency({
295
- packageName: "@nativescript/angular",
296
- }, projectData);
297
- let polyfillsPath;
298
- if (isAngular) {
299
- polyfillsPath = yield this.checkOrCreatePolyfillsTS(projectData);
300
- }
301
- const tsConfigPath = path.resolve(projectDir, "tsconfig.json");
302
- if (this.$fs.exists(tsConfigPath)) {
303
- this.spinner.info(`Updating ${color_1.color.yellow("tsconfig.json")}`);
304
- yield this.migrateTSConfig({
305
- tsConfigPath,
306
- isAngular,
307
- polyfillsPath,
308
- });
309
- this.spinner.succeed(`Updated ${color_1.color.yellow("tsconfig.json")}`);
310
- }
311
- yield this.migrateWebpack5(projectDir, projectData);
312
- yield this.runESLint(projectDir);
313
- this.spinner.succeed("Migration complete.");
314
- this.$logger.info("");
315
- this.$logger.printMarkdown("Project has been successfully migrated. The next step is to run `ns run <platform>` to ensure everything is working properly." +
316
- "\n\nPlease note that you may need additional changes to complete the migration.");
236
+ async migrate({ projectDir, platforms, loose = false, }) {
237
+ this.spinner = this.$terminalSpinnerService.createSpinner();
238
+ const projectData = this.$projectDataService.getProjectData(projectDir);
239
+ this.$logger.trace("MigrationController.migrate called with", {
240
+ projectDir,
241
+ platforms,
242
+ loose: loose,
317
243
  });
244
+ const canMigrate = await this.ensureGitCleanOrForce(projectDir);
245
+ if (!canMigrate) {
246
+ this.spinner.fail("Pre-Migration verification failed");
247
+ return;
248
+ }
249
+ this.spinner.succeed("Pre-Migration verification complete");
250
+ this.spinner.info("Backing up project files before migration");
251
+ const backup = await this.backupProject(projectDir);
252
+ this.spinner.succeed("Project files have been backed up");
253
+ this.spinner.info("Cleaning up project files before migration");
254
+ await this.cleanUpProject(projectData);
255
+ this.spinner.succeed("Project files have been cleaned up");
256
+ this.spinner.info("Cleaning up old artifacts");
257
+ await this.handleAutoGeneratedFiles(backup, projectData);
258
+ this.spinner.succeed("Cleaned old artifacts");
259
+ const newConfigPath = path.resolve(projectDir, "nativescript.config.ts");
260
+ if (!this.$fs.exists(newConfigPath)) {
261
+ this.spinner.info(`Migrating project to use ${color_1.color.green("nativescript.config.ts")}`);
262
+ await this.migrateConfigs(projectDir);
263
+ this.spinner.succeed(`Project has been migrated to use ${color_1.color.green("nativescript.config.ts")}`);
264
+ }
265
+ this.spinner.info("Updating project dependencies");
266
+ await this.migrateDependencies(projectData, platforms, loose);
267
+ this.spinner.succeed("Project dependencies have been updated");
268
+ const isAngular = this.hasDependency({
269
+ packageName: "@nativescript/angular",
270
+ }, projectData);
271
+ let polyfillsPath;
272
+ if (isAngular) {
273
+ polyfillsPath = await this.checkOrCreatePolyfillsTS(projectData);
274
+ }
275
+ const tsConfigPath = path.resolve(projectDir, "tsconfig.json");
276
+ if (this.$fs.exists(tsConfigPath)) {
277
+ this.spinner.info(`Updating ${color_1.color.yellow("tsconfig.json")}`);
278
+ await this.migrateTSConfig({
279
+ tsConfigPath,
280
+ isAngular,
281
+ polyfillsPath,
282
+ });
283
+ this.spinner.succeed(`Updated ${color_1.color.yellow("tsconfig.json")}`);
284
+ }
285
+ await this.migrateWebpack5(projectDir, projectData);
286
+ await this.runESLint(projectDir);
287
+ this.spinner.succeed("Migration complete.");
288
+ this.$logger.info("");
289
+ this.$logger.printMarkdown("Project has been successfully migrated. The next step is to run `ns run <platform>` to ensure everything is working properly." +
290
+ "\n\nPlease note that you may need additional changes to complete the migration.");
318
291
  }
319
- _shouldMigrate({ projectDir, platforms, loose, }) {
320
- return __awaiter(this, void 0, void 0, function* () {
321
- const isMigrate = _.get(this.$options, "argv._[0]") === "migrate";
322
- const projectData = this.$projectDataService.getProjectData(projectDir);
323
- const projectInfo = this.$projectConfigService.detectProjectConfigs(projectData.projectDir);
324
- if (!isMigrate && projectInfo.hasNSConfig) {
325
- return;
326
- }
327
- const shouldMigrateCommonMessage = "The app is not compatible with this CLI version and it should be migrated. Reason: ";
328
- for (let i = 0; i < this.migrationDependencies.length; i++) {
329
- const dependency = this.migrationDependencies[i];
330
- const hasDependency = this.hasDependency(dependency, projectData);
331
- if (!hasDependency) {
332
- if (dependency.shouldAddIfMissing) {
333
- this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' is missing.`);
334
- if (loose) {
335
- continue;
336
- }
337
- return true;
338
- }
339
- continue;
340
- }
341
- if (dependency.shouldMigrateAction) {
342
- const shouldMigrate = yield dependency.shouldMigrateAction.bind(this)(dependency, projectData, loose);
343
- if (shouldMigrate) {
344
- this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' requires an update.`);
345
- return true;
346
- }
347
- }
348
- if (dependency.replaceWith || dependency.shouldRemove) {
349
- this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' is deprecated.`);
292
+ async _shouldMigrate({ projectDir, platforms, loose, }) {
293
+ const isMigrate = _.get(this.$options, "argv._[0]") === "migrate";
294
+ const projectData = this.$projectDataService.getProjectData(projectDir);
295
+ const projectInfo = this.$projectConfigService.detectProjectConfigs(projectData.projectDir);
296
+ if (!isMigrate && projectInfo.hasNSConfig) {
297
+ return;
298
+ }
299
+ const shouldMigrateCommonMessage = "The app is not compatible with this CLI version and it should be migrated. Reason: ";
300
+ for (let i = 0; i < this.migrationDependencies.length; i++) {
301
+ const dependency = this.migrationDependencies[i];
302
+ const hasDependency = this.hasDependency(dependency, projectData);
303
+ if (!hasDependency) {
304
+ if (dependency.shouldAddIfMissing) {
305
+ this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' is missing.`);
350
306
  if (loose) {
351
307
  continue;
352
308
  }
353
309
  return true;
354
310
  }
355
- const shouldUpdate = yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
356
- if (shouldUpdate) {
357
- this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' should be updated.`);
311
+ continue;
312
+ }
313
+ if (dependency.shouldMigrateAction) {
314
+ const shouldMigrate = await dependency.shouldMigrateAction.bind(this)(dependency, projectData, loose);
315
+ if (shouldMigrate) {
316
+ this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' requires an update.`);
358
317
  return true;
359
318
  }
360
319
  }
361
- return false;
362
- });
363
- }
364
- shouldMigrateDependencyVersion(dependency, projectData, loose) {
365
- var _a, _b;
366
- return __awaiter(this, void 0, void 0, function* () {
367
- const installedVersion = yield this.$packageInstallationManager.getInstalledDependencyVersion(dependency.packageName, projectData.projectDir);
368
- const desiredVersion = (_a = dependency.desiredVersion) !== null && _a !== void 0 ? _a : dependency.minVersion;
369
- const minVersion = (_b = dependency.minVersion) !== null && _b !== void 0 ? _b : dependency.desiredVersion;
370
- if (dependency.shouldUseExactVersion &&
371
- installedVersion !== desiredVersion) {
320
+ if (dependency.replaceWith || dependency.shouldRemove) {
321
+ this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' is deprecated.`);
322
+ if (loose) {
323
+ continue;
324
+ }
372
325
  return true;
373
326
  }
374
- return this.isOutdatedVersion(installedVersion, { minVersion, desiredVersion }, loose);
375
- });
376
- }
377
- getCachedShouldMigrate(projectDir, platform) {
378
- return __awaiter(this, void 0, void 0, function* () {
379
- let cachedShouldMigrateValue = null;
380
- const cachedHash = yield this.$jsonFileSettingsService.getSettingValue((0, helpers_1.getHash)(`${projectDir}${platform.toLowerCase()}`));
381
- const packageJsonHash = yield this.getPackageJsonHash(projectDir);
382
- if (cachedHash === packageJsonHash) {
383
- cachedShouldMigrateValue = false;
327
+ const shouldUpdate = await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
328
+ if (shouldUpdate) {
329
+ this.$logger.trace(`${shouldMigrateCommonMessage}'${dependency.packageName}' should be updated.`);
330
+ return true;
384
331
  }
385
- return cachedShouldMigrateValue;
386
- });
332
+ }
333
+ return false;
387
334
  }
388
- setCachedShouldMigrate(projectDir, platform) {
389
- return __awaiter(this, void 0, void 0, function* () {
390
- this.$logger.trace(`Caching shouldMigrate result for platform ${platform}.`);
391
- const packageJsonHash = yield this.getPackageJsonHash(projectDir);
392
- yield this.$jsonFileSettingsService.saveSetting((0, helpers_1.getHash)(`${projectDir}${platform.toLowerCase()}`), packageJsonHash);
393
- });
335
+ async shouldMigrateDependencyVersion(dependency, projectData, loose) {
336
+ var _a, _b;
337
+ const installedVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(dependency.packageName, projectData.projectDir);
338
+ const desiredVersion = (_a = dependency.desiredVersion) !== null && _a !== void 0 ? _a : dependency.minVersion;
339
+ const minVersion = (_b = dependency.minVersion) !== null && _b !== void 0 ? _b : dependency.desiredVersion;
340
+ if (dependency.shouldUseExactVersion &&
341
+ installedVersion !== desiredVersion) {
342
+ return true;
343
+ }
344
+ return this.isOutdatedVersion(installedVersion, { minVersion, desiredVersion }, loose);
394
345
  }
395
- getPackageJsonHash(projectDir) {
396
- return __awaiter(this, void 0, void 0, function* () {
397
- const projectPackageJsonFilePath = path.join(projectDir, constants.PACKAGE_JSON_FILE_NAME);
398
- return yield this.$fs.getFileShasum(projectPackageJsonFilePath);
399
- });
346
+ async getCachedShouldMigrate(projectDir, platform) {
347
+ let cachedShouldMigrateValue = null;
348
+ const cachedHash = await this.$jsonFileSettingsService.getSettingValue((0, helpers_1.getHash)(`${projectDir}${platform.toLowerCase()}`));
349
+ const packageJsonHash = await this.getPackageJsonHash(projectDir);
350
+ if (cachedHash === packageJsonHash) {
351
+ cachedShouldMigrateValue = false;
352
+ }
353
+ return cachedShouldMigrateValue;
400
354
  }
401
- ensureGitCleanOrForce(projectDir) {
402
- return __awaiter(this, void 0, void 0, function* () {
403
- const git = (0, simple_git_1.default)(projectDir);
404
- const isGit = yield git.checkIsRepo();
405
- const isForce = this.$options.force;
406
- if (!isGit) {
407
- if (!isForce) {
408
- this.$logger.printMarkdown(`Running \`ns migrate\` in a non-git project is not recommended. If you want to skip this check run \`ns migrate --force\`.`);
409
- this.$errors.fail("Not in Git repo.");
410
- return false;
411
- }
412
- this.spinner.warn(`Not in Git repo, but using ${color_1.color.red("--force")}`);
413
- return true;
355
+ async setCachedShouldMigrate(projectDir, platform) {
356
+ this.$logger.trace(`Caching shouldMigrate result for platform ${platform}.`);
357
+ const packageJsonHash = await this.getPackageJsonHash(projectDir);
358
+ await this.$jsonFileSettingsService.saveSetting((0, helpers_1.getHash)(`${projectDir}${platform.toLowerCase()}`), packageJsonHash);
359
+ }
360
+ async getPackageJsonHash(projectDir) {
361
+ const projectPackageJsonFilePath = path.join(projectDir, constants.PACKAGE_JSON_FILE_NAME);
362
+ return await this.$fs.getFileShasum(projectPackageJsonFilePath);
363
+ }
364
+ async ensureGitCleanOrForce(projectDir) {
365
+ const git = (0, simple_git_1.default)(projectDir);
366
+ const isGit = await git.checkIsRepo();
367
+ const isForce = this.$options.force;
368
+ if (!isGit) {
369
+ if (!isForce) {
370
+ this.$logger.printMarkdown(`Running \`ns migrate\` in a non-git project is not recommended. If you want to skip this check run \`ns migrate --force\`.`);
371
+ this.$errors.fail("Not in Git repo.");
372
+ return false;
414
373
  }
415
- const isClean = (yield git.status()).isClean();
416
- if (!isClean) {
417
- if (!isForce) {
418
- this.$logger.printMarkdown(`Current git branch has uncommitted changes. Please commit the changes and try again. Alternatively run \`ns migrate --force\` to skip this check.`);
419
- this.$errors.fail("Git branch not clean.");
420
- return false;
421
- }
422
- this.spinner.warn(`Git branch not clean, but using ${color_1.color.red("--force")}`);
423
- return true;
374
+ this.spinner.warn(`Not in Git repo, but using ${color_1.color.red("--force")}`);
375
+ return true;
376
+ }
377
+ const isClean = (await git.status()).isClean();
378
+ if (!isClean) {
379
+ if (!isForce) {
380
+ this.$logger.printMarkdown(`Current git branch has uncommitted changes. Please commit the changes and try again. Alternatively run \`ns migrate --force\` to skip this check.`);
381
+ this.$errors.fail("Git branch not clean.");
382
+ return false;
424
383
  }
384
+ this.spinner.warn(`Git branch not clean, but using ${color_1.color.red("--force")}`);
425
385
  return true;
426
- });
386
+ }
387
+ return true;
427
388
  }
428
- backupProject(projectDir) {
429
- return __awaiter(this, void 0, void 0, function* () {
430
- const projectData = this.$projectDataService.getProjectData(projectDir);
431
- const backup = this.$projectBackupService.getBackup("migration");
432
- backup.addPaths([
433
- ...MigrateController.pathsToBackup,
434
- path.join(projectData.getAppDirectoryRelativePath(), "package.json"),
435
- ]);
436
- try {
437
- return backup.create();
438
- }
439
- catch (error) {
440
- this.spinner.fail(`Project backup failed.`);
441
- backup.remove();
442
- this.$errors.fail(`Project backup failed. Error is: ${error.message}`);
443
- }
444
- });
389
+ async backupProject(projectDir) {
390
+ const projectData = this.$projectDataService.getProjectData(projectDir);
391
+ const backup = this.$projectBackupService.getBackup("migration");
392
+ backup.addPaths([
393
+ ...MigrateController.pathsToBackup,
394
+ path.join(projectData.getAppDirectoryRelativePath(), "package.json"),
395
+ ]);
396
+ try {
397
+ return backup.create();
398
+ }
399
+ catch (error) {
400
+ this.spinner.fail(`Project backup failed.`);
401
+ backup.remove();
402
+ this.$errors.fail(`Project backup failed. Error is: ${error.message}`);
403
+ }
445
404
  }
446
- cleanUpProject(projectData) {
447
- return __awaiter(this, void 0, void 0, function* () {
448
- yield this.$projectCleanupService.clean([
449
- constants.HOOKS_DIR_NAME,
450
- constants.PLATFORMS_DIR_NAME,
451
- constants.NODE_MODULES_FOLDER_NAME,
452
- constants.PACKAGE_LOCK_JSON_FILE_NAME,
405
+ async cleanUpProject(projectData) {
406
+ await this.$projectCleanupService.clean([
407
+ constants.HOOKS_DIR_NAME,
408
+ constants.PLATFORMS_DIR_NAME,
409
+ constants.NODE_MODULES_FOLDER_NAME,
410
+ constants.PACKAGE_LOCK_JSON_FILE_NAME,
411
+ ]);
412
+ const { dependencies, devDependencies } = await this.$pluginsService.getDependenciesFromPackageJson(projectData.projectDir);
413
+ const hasSchematics = [...dependencies, ...devDependencies].find((p) => p.name === "@nativescript/schematics");
414
+ if (!hasSchematics) {
415
+ await this.$projectCleanupService.clean([
416
+ constants.TSCCONFIG_TNS_JSON_NAME,
453
417
  ]);
454
- const { dependencies, devDependencies } = yield this.$pluginsService.getDependenciesFromPackageJson(projectData.projectDir);
455
- const hasSchematics = [...dependencies, ...devDependencies].find((p) => p.name === "@nativescript/schematics");
456
- if (!hasSchematics) {
457
- yield this.$projectCleanupService.clean([
458
- constants.TSCCONFIG_TNS_JSON_NAME,
459
- ]);
460
- }
461
- });
418
+ }
462
419
  }
463
- handleAutoGeneratedFiles(backup, projectData) {
464
- return __awaiter(this, void 0, void 0, function* () {
465
- const globOptions = {
466
- nocase: true,
467
- matchBase: true,
468
- nodir: true,
469
- absolute: false,
470
- cwd: projectData.appDirectoryPath,
471
- withFileTypes: false,
472
- };
473
- const jsFiles = (0, glob_1.globSync)("*.@(js|ts|js.map)", globOptions);
474
- const autoGeneratedJsFiles = this.getGeneratedFiles(jsFiles, [".js"], [".ts"]);
475
- const autoGeneratedJsMapFiles = this.getGeneratedFiles(jsFiles, [".map"], [""]);
476
- const cssFiles = (0, glob_1.globSync)("*.@(less|sass|scss|css)", globOptions);
477
- const autoGeneratedCssFiles = this.getGeneratedFiles(cssFiles, [".css"], [".scss", ".sass", ".less"]);
478
- const allGeneratedFiles = autoGeneratedJsFiles
479
- .concat(autoGeneratedJsMapFiles)
480
- .concat(autoGeneratedCssFiles);
481
- const pathsToBackup = allGeneratedFiles.map((generatedFile) => path.join(projectData.appDirectoryPath, generatedFile));
482
- backup.addPaths(pathsToBackup);
483
- backup.create();
484
- if (backup.isUpToDate()) {
485
- yield this.$projectCleanupService.clean(pathsToBackup);
486
- }
487
- });
420
+ async handleAutoGeneratedFiles(backup, projectData) {
421
+ const globOptions = {
422
+ nocase: true,
423
+ matchBase: true,
424
+ nodir: true,
425
+ absolute: false,
426
+ cwd: projectData.appDirectoryPath,
427
+ withFileTypes: false,
428
+ };
429
+ const jsFiles = (0, glob_1.globSync)("*.@(js|ts|js.map)", globOptions);
430
+ const autoGeneratedJsFiles = this.getGeneratedFiles(jsFiles, [".js"], [".ts"]);
431
+ const autoGeneratedJsMapFiles = this.getGeneratedFiles(jsFiles, [".map"], [""]);
432
+ const cssFiles = (0, glob_1.globSync)("*.@(less|sass|scss|css)", globOptions);
433
+ const autoGeneratedCssFiles = this.getGeneratedFiles(cssFiles, [".css"], [".scss", ".sass", ".less"]);
434
+ const allGeneratedFiles = autoGeneratedJsFiles
435
+ .concat(autoGeneratedJsMapFiles)
436
+ .concat(autoGeneratedCssFiles);
437
+ const pathsToBackup = allGeneratedFiles.map((generatedFile) => path.join(projectData.appDirectoryPath, generatedFile));
438
+ backup.addPaths(pathsToBackup);
439
+ backup.create();
440
+ if (backup.isUpToDate()) {
441
+ await this.$projectCleanupService.clean(pathsToBackup);
442
+ }
488
443
  }
489
444
  getGeneratedFiles(allFiles, generatedFileExts, sourceFileExts) {
490
445
  return allFiles.filter((file) => {
@@ -554,550 +509,523 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
554
509
  return relativeAppResourcesPath.toString();
555
510
  }
556
511
  }
557
- runMigrateActionIfAny(dependency, projectData, loose, force = false) {
558
- return __awaiter(this, void 0, void 0, function* () {
559
- if (dependency.migrateAction) {
560
- const shouldMigrate = force ||
561
- (yield dependency.shouldMigrateAction.bind(this)(dependency, projectData, loose));
562
- if (shouldMigrate) {
563
- const newDependencies = yield dependency.migrateAction(projectData, path.join(projectData.projectDir, MigrateController.backupFolderName));
564
- for (const newDependency of newDependencies) {
565
- yield this.migrateDependency(newDependency, projectData, loose);
566
- }
512
+ async runMigrateActionIfAny(dependency, projectData, loose, force = false) {
513
+ if (dependency.migrateAction) {
514
+ const shouldMigrate = force ||
515
+ (await dependency.shouldMigrateAction.bind(this)(dependency, projectData, loose));
516
+ if (shouldMigrate) {
517
+ const newDependencies = await dependency.migrateAction(projectData, path.join(projectData.projectDir, MigrateController.backupFolderName));
518
+ for (const newDependency of newDependencies) {
519
+ await this.migrateDependency(newDependency, projectData, loose);
567
520
  }
568
521
  }
569
- });
522
+ }
570
523
  }
571
- migrateDependencies(projectData, platforms, loose) {
572
- return __awaiter(this, void 0, void 0, function* () {
573
- for (let i = 0; i < this.migrationDependencies.length; i++) {
574
- const dependency = this.migrationDependencies[i];
575
- const hasDependency = this.hasDependency(dependency, projectData);
576
- if (!hasDependency && !dependency.shouldAddIfMissing) {
577
- continue;
578
- }
579
- yield this.runMigrateActionIfAny(dependency, projectData, loose);
580
- yield this.migrateDependency(dependency, projectData, loose);
524
+ async migrateDependencies(projectData, platforms, loose) {
525
+ for (let i = 0; i < this.migrationDependencies.length; i++) {
526
+ const dependency = this.migrationDependencies[i];
527
+ const hasDependency = this.hasDependency(dependency, projectData);
528
+ if (!hasDependency && !dependency.shouldAddIfMissing) {
529
+ continue;
581
530
  }
582
- });
531
+ await this.runMigrateActionIfAny(dependency, projectData, loose);
532
+ await this.migrateDependency(dependency, projectData, loose);
533
+ }
583
534
  }
584
- migrateDependency(dependency, projectData, loose) {
535
+ async migrateDependency(dependency, projectData, loose) {
585
536
  var _a, _b, _c, _d, _e;
586
- return __awaiter(this, void 0, void 0, function* () {
587
- const hasDependency = this.hasDependency(dependency, projectData);
588
- if (hasDependency && dependency.warning) {
589
- this.$logger.warn(dependency.warning);
590
- }
591
- if (!hasDependency) {
592
- if (!dependency.shouldAddIfMissing) {
593
- return;
594
- }
595
- const version = (_a = dependency.desiredVersion) !== null && _a !== void 0 ? _a : dependency.minVersion;
596
- this.$pluginsService.addToPackageJson(dependency.packageName, version, dependency.isDev, projectData.projectDir);
597
- this.spinner.clear();
598
- this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} ${color_1.color.green(version)} has been added`);
599
- this.spinner.render();
537
+ const hasDependency = this.hasDependency(dependency, projectData);
538
+ if (hasDependency && dependency.warning) {
539
+ this.$logger.warn(dependency.warning);
540
+ }
541
+ if (!hasDependency) {
542
+ if (!dependency.shouldAddIfMissing) {
600
543
  return;
601
544
  }
602
- if (dependency.replaceWith || dependency.shouldRemove) {
603
- this.$pluginsService.removeFromPackageJson(dependency.packageName, projectData.projectDir);
604
- if (!dependency.replaceWith) {
605
- return;
606
- }
607
- const replacementDep = _.find(this.migrationDependencies, (migrationPackage) => migrationPackage.packageName === dependency.replaceWith);
608
- if (!replacementDep) {
609
- this.$errors.fail("Failed to find replacement dependency.");
610
- }
611
- const version = (_d = (_c = (_b = replacementDep.desiredVersion) !== null && _b !== void 0 ? _b : replacementDep.minVersion) !== null && _c !== void 0 ? _c : dependency.desiredVersion) !== null && _d !== void 0 ? _d : dependency.minVersion;
612
- this.$pluginsService.addToPackageJson(replacementDep.packageName, version, replacementDep.isDev, projectData.projectDir);
613
- this.spinner.clear();
614
- this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been replaced with ${color_1.color.cyan(replacementDep.packageName)} ${color_1.color.green(version)}`);
615
- this.spinner.render();
616
- yield this.runMigrateActionIfAny(replacementDep, projectData, loose, true);
545
+ const version = (_a = dependency.desiredVersion) !== null && _a !== void 0 ? _a : dependency.minVersion;
546
+ this.$pluginsService.addToPackageJson(dependency.packageName, version, dependency.isDev, projectData.projectDir);
547
+ this.spinner.clear();
548
+ this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} ${color_1.color.green(version)} has been added`);
549
+ this.spinner.render();
550
+ return;
551
+ }
552
+ if (dependency.replaceWith || dependency.shouldRemove) {
553
+ this.$pluginsService.removeFromPackageJson(dependency.packageName, projectData.projectDir);
554
+ if (!dependency.replaceWith) {
617
555
  return;
618
556
  }
619
- const shouldMigrateVersion = yield this.shouldMigrateDependencyVersion(dependency, projectData, loose);
620
- if (!shouldMigrateVersion) {
621
- return;
557
+ const replacementDep = _.find(this.migrationDependencies, (migrationPackage) => migrationPackage.packageName === dependency.replaceWith);
558
+ if (!replacementDep) {
559
+ this.$errors.fail("Failed to find replacement dependency.");
622
560
  }
623
- const version = (_e = dependency.desiredVersion) !== null && _e !== void 0 ? _e : dependency.minVersion;
624
- this.$pluginsService.addToPackageJson(dependency.packageName, version, dependency.isDev, projectData.projectDir);
561
+ const version = (_d = (_c = (_b = replacementDep.desiredVersion) !== null && _b !== void 0 ? _b : replacementDep.minVersion) !== null && _c !== void 0 ? _c : dependency.desiredVersion) !== null && _d !== void 0 ? _d : dependency.minVersion;
562
+ this.$pluginsService.addToPackageJson(replacementDep.packageName, version, replacementDep.isDev, projectData.projectDir);
625
563
  this.spinner.clear();
626
- this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(version)}`);
564
+ this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been replaced with ${color_1.color.cyan(replacementDep.packageName)} ${color_1.color.green(version)}`);
627
565
  this.spinner.render();
628
- });
566
+ await this.runMigrateActionIfAny(replacementDep, projectData, loose, true);
567
+ return;
568
+ }
569
+ const shouldMigrateVersion = await this.shouldMigrateDependencyVersion(dependency, projectData, loose);
570
+ if (!shouldMigrateVersion) {
571
+ return;
572
+ }
573
+ const version = (_e = dependency.desiredVersion) !== null && _e !== void 0 ? _e : dependency.minVersion;
574
+ this.$pluginsService.addToPackageJson(dependency.packageName, version, dependency.isDev, projectData.projectDir);
575
+ this.spinner.clear();
576
+ this.$logger.info(` - ${color_1.color.yellow(dependency.packageName)} has been updated to ${color_1.color.green(version)}`);
577
+ this.spinner.render();
629
578
  }
630
- migrateConfigs(projectDir) {
631
- return __awaiter(this, void 0, void 0, function* () {
632
- const projectData = this.$projectDataService.getProjectData(projectDir);
633
- const rootPackageJsonPath = path.resolve(projectDir, constants.PACKAGE_JSON_FILE_NAME);
634
- const embeddedPackageJsonPath = path.resolve(projectData.projectDir, projectData.getAppDirectoryRelativePath(), constants.PACKAGE_JSON_FILE_NAME);
635
- const legacyNsConfigPath = path.resolve(projectData.projectDir, constants.CONFIG_NS_FILE_NAME);
636
- let rootPackageJsonData = {};
637
- if (this.$fs.exists(rootPackageJsonPath)) {
638
- rootPackageJsonData = this.$fs.readJson(rootPackageJsonPath);
639
- }
640
- const newConfigPath = this.$projectConfigService.writeDefaultConfig(projectData.projectDir);
641
- this.$projectConfigService.setForceUsingLegacyConfig(true);
642
- const configData = this.$projectConfigService.readConfig(projectData.projectDir);
643
- this.$projectConfigService.setForceUsingLegacyConfig(false);
644
- if (configData.main) {
645
- rootPackageJsonData.main = configData.main;
646
- delete configData.main;
647
- }
648
- configData.appPath = this.detectAppPath(projectDir, configData);
649
- configData.appResourcesPath = this.detectAppResourcesPath(projectDir, configData);
650
- if (rootPackageJsonData.nativescript) {
651
- delete rootPackageJsonData.nativescript;
652
- }
653
- this.$projectConfigService.setForceUsingNewConfig(true);
654
- const hasUpdatedConfigSuccessfully = yield this.$projectConfigService.setValue("", configData);
655
- if (!hasUpdatedConfigSuccessfully) {
656
- if (typeof newConfigPath === "string") {
657
- yield this.$projectCleanupService.cleanPath(newConfigPath);
658
- }
659
- this.$errors.fail(`Failed to migrate project to use ${constants.CONFIG_FILE_NAME_TS}. One or more values could not be updated.`);
579
+ async migrateConfigs(projectDir) {
580
+ const projectData = this.$projectDataService.getProjectData(projectDir);
581
+ const rootPackageJsonPath = path.resolve(projectDir, constants.PACKAGE_JSON_FILE_NAME);
582
+ const embeddedPackageJsonPath = path.resolve(projectData.projectDir, projectData.getAppDirectoryRelativePath(), constants.PACKAGE_JSON_FILE_NAME);
583
+ const legacyNsConfigPath = path.resolve(projectData.projectDir, constants.CONFIG_NS_FILE_NAME);
584
+ let rootPackageJsonData = {};
585
+ if (this.$fs.exists(rootPackageJsonPath)) {
586
+ rootPackageJsonData = this.$fs.readJson(rootPackageJsonPath);
587
+ }
588
+ const newConfigPath = this.$projectConfigService.writeDefaultConfig(projectData.projectDir);
589
+ this.$projectConfigService.setForceUsingLegacyConfig(true);
590
+ const configData = this.$projectConfigService.readConfig(projectData.projectDir);
591
+ this.$projectConfigService.setForceUsingLegacyConfig(false);
592
+ if (configData.main) {
593
+ rootPackageJsonData.main = configData.main;
594
+ delete configData.main;
595
+ }
596
+ configData.appPath = this.detectAppPath(projectDir, configData);
597
+ configData.appResourcesPath = this.detectAppResourcesPath(projectDir, configData);
598
+ if (rootPackageJsonData.nativescript) {
599
+ delete rootPackageJsonData.nativescript;
600
+ }
601
+ this.$projectConfigService.setForceUsingNewConfig(true);
602
+ const hasUpdatedConfigSuccessfully = await this.$projectConfigService.setValue("", configData);
603
+ if (!hasUpdatedConfigSuccessfully) {
604
+ if (typeof newConfigPath === "string") {
605
+ await this.$projectCleanupService.cleanPath(newConfigPath);
660
606
  }
661
- this.$fs.writeJson(rootPackageJsonPath, rootPackageJsonData);
662
- yield this.$projectCleanupService.cleanPath(embeddedPackageJsonPath);
663
- yield this.$projectCleanupService.cleanPath(legacyNsConfigPath);
664
- return true;
665
- });
607
+ this.$errors.fail(`Failed to migrate project to use ${constants.CONFIG_FILE_NAME_TS}. One or more values could not be updated.`);
608
+ }
609
+ this.$fs.writeJson(rootPackageJsonPath, rootPackageJsonData);
610
+ await this.$projectCleanupService.cleanPath(embeddedPackageJsonPath);
611
+ await this.$projectCleanupService.cleanPath(legacyNsConfigPath);
612
+ return true;
666
613
  }
667
- migrateUnitTestRunner(projectData, migrationBackupDirPath) {
668
- return __awaiter(this, void 0, void 0, function* () {
669
- const pathToKarmaConfig = path.join(migrationBackupDirPath, constants.KARMA_CONFIG_NAME);
670
- if (this.$fs.exists(pathToKarmaConfig)) {
671
- const oldKarmaContent = this.$fs.readText(pathToKarmaConfig);
672
- const regExp = /frameworks:\s+\[([\S\s]*?)\]/g;
673
- const matches = regExp.exec(oldKarmaContent);
674
- const frameworks = (matches && matches[1] && matches[1].trim()) || '["jasmine"]';
675
- const testsDir = path.join(projectData.appDirectoryPath, "tests");
676
- const relativeTestsDir = path.relative(projectData.projectDir, testsDir);
677
- const testFiles = `'${(0, helpers_1.fromWindowsRelativePathToUnix)(relativeTestsDir)}/**/*.*'`;
678
- const karmaConfTemplate = this.$resources.readText("test/karma.conf.js");
679
- const karmaConf = _.template(karmaConfTemplate)({
680
- frameworks,
681
- testFiles,
682
- basePath: projectData.getAppDirectoryRelativePath(),
683
- });
684
- this.$fs.writeFile(path.join(projectData.projectDir, constants.KARMA_CONFIG_NAME), karmaConf);
685
- }
686
- const dependencies = [
687
- {
688
- packageName: "karma-webpack",
689
- shouldRemove: true,
690
- },
691
- {
692
- packageName: "karma-jasmine",
693
- minVersion: "2.0.1",
694
- desiredVersion: "~4.0.1",
695
- isDev: true,
696
- },
697
- {
698
- packageName: "karma-mocha",
699
- minVersion: "1.3.0",
700
- desiredVersion: "~2.0.1",
701
- isDev: true,
702
- },
703
- {
704
- packageName: "karma-chai",
705
- minVersion: "0.1.0",
706
- desiredVersion: "~0.1.0",
707
- isDev: true,
708
- },
709
- {
710
- packageName: "karma-qunit",
711
- minVersion: "3.1.2",
712
- desiredVersion: "~4.1.2",
713
- isDev: true,
714
- },
715
- {
716
- packageName: "karma",
717
- minVersion: "4.1.0",
718
- desiredVersion: "~6.3.4",
719
- isDev: true,
720
- },
721
- ];
722
- return dependencies;
723
- });
614
+ async migrateUnitTestRunner(projectData, migrationBackupDirPath) {
615
+ const pathToKarmaConfig = path.join(migrationBackupDirPath, constants.KARMA_CONFIG_NAME);
616
+ if (this.$fs.exists(pathToKarmaConfig)) {
617
+ const oldKarmaContent = this.$fs.readText(pathToKarmaConfig);
618
+ const regExp = /frameworks:\s+\[([\S\s]*?)\]/g;
619
+ const matches = regExp.exec(oldKarmaContent);
620
+ const frameworks = (matches && matches[1] && matches[1].trim()) || '["jasmine"]';
621
+ const testsDir = path.join(projectData.appDirectoryPath, "tests");
622
+ const relativeTestsDir = path.relative(projectData.projectDir, testsDir);
623
+ const testFiles = `'${(0, helpers_1.fromWindowsRelativePathToUnix)(relativeTestsDir)}/**/*.*'`;
624
+ const karmaConfTemplate = this.$resources.readText("test/karma.conf.js");
625
+ const karmaConf = _.template(karmaConfTemplate)({
626
+ frameworks,
627
+ testFiles,
628
+ basePath: projectData.getAppDirectoryRelativePath(),
629
+ });
630
+ this.$fs.writeFile(path.join(projectData.projectDir, constants.KARMA_CONFIG_NAME), karmaConf);
631
+ }
632
+ const dependencies = [
633
+ {
634
+ packageName: "karma-webpack",
635
+ shouldRemove: true,
636
+ },
637
+ {
638
+ packageName: "karma-jasmine",
639
+ minVersion: "2.0.1",
640
+ desiredVersion: "~4.0.1",
641
+ isDev: true,
642
+ },
643
+ {
644
+ packageName: "karma-mocha",
645
+ minVersion: "1.3.0",
646
+ desiredVersion: "~2.0.1",
647
+ isDev: true,
648
+ },
649
+ {
650
+ packageName: "karma-chai",
651
+ minVersion: "0.1.0",
652
+ desiredVersion: "~0.1.0",
653
+ isDev: true,
654
+ },
655
+ {
656
+ packageName: "karma-qunit",
657
+ minVersion: "3.1.2",
658
+ desiredVersion: "~4.1.2",
659
+ isDev: true,
660
+ },
661
+ {
662
+ packageName: "karma",
663
+ minVersion: "4.1.0",
664
+ desiredVersion: "~6.3.4",
665
+ isDev: true,
666
+ },
667
+ ];
668
+ return dependencies;
724
669
  }
725
- migrateTSConfig({ tsConfigPath, isAngular, polyfillsPath, }) {
726
- return __awaiter(this, void 0, void 0, function* () {
727
- try {
728
- const configContents = this.$fs.readJson(tsConfigPath);
729
- configContents.compilerOptions = configContents.compilerOptions || {};
730
- configContents.compilerOptions.target = "es2020";
731
- configContents.compilerOptions.module = "esnext";
732
- configContents.compilerOptions.moduleResolution = "node";
733
- configContents.compilerOptions.experimentalDecorators = true;
734
- configContents.compilerOptions.removeComments = false;
735
- configContents.compilerOptions.lib = [
736
- ...new Set([...(configContents.compilerOptions.lib || []), "ESNext"]),
737
- ];
738
- if (isAngular) {
739
- if (configContents.files) {
740
- configContents.files = [
741
- ...new Set([
742
- ...(configContents.files || []),
743
- polyfillsPath !== null && polyfillsPath !== void 0 ? polyfillsPath : "./src/polyfills.ts",
744
- ]),
745
- ];
746
- }
670
+ async migrateTSConfig({ tsConfigPath, isAngular, polyfillsPath, }) {
671
+ try {
672
+ const configContents = this.$fs.readJson(tsConfigPath);
673
+ configContents.compilerOptions = configContents.compilerOptions || {};
674
+ configContents.compilerOptions.target = "es2020";
675
+ configContents.compilerOptions.module = "esnext";
676
+ configContents.compilerOptions.moduleResolution = "node";
677
+ configContents.compilerOptions.experimentalDecorators = true;
678
+ configContents.compilerOptions.removeComments = false;
679
+ configContents.compilerOptions.lib = [
680
+ ...new Set([...(configContents.compilerOptions.lib || []), "ESNext"]),
681
+ ];
682
+ if (isAngular) {
683
+ if (configContents.files) {
684
+ configContents.files = [
685
+ ...new Set([
686
+ ...(configContents.files || []),
687
+ polyfillsPath !== null && polyfillsPath !== void 0 ? polyfillsPath : "./src/polyfills.ts",
688
+ ]),
689
+ ];
747
690
  }
748
- this.$fs.writeJson(tsConfigPath, configContents);
749
- return true;
750
691
  }
751
- catch (error) {
752
- this.$logger.trace("Failed to migrate tsconfig.json. Error is: ", error);
753
- return false;
754
- }
755
- });
692
+ this.$fs.writeJson(tsConfigPath, configContents);
693
+ return true;
694
+ }
695
+ catch (error) {
696
+ this.$logger.trace("Failed to migrate tsconfig.json. Error is: ", error);
697
+ return false;
698
+ }
756
699
  }
757
- checkOrCreatePolyfillsTS(projectData) {
758
- return __awaiter(this, void 0, void 0, function* () {
759
- const { projectDir, appDirectoryPath } = projectData;
760
- const possiblePaths = [
761
- `${appDirectoryPath}/polyfills.ts`,
762
- `./src/polyfills.ts`,
763
- `./app/polyfills.ts`,
764
- ].map((possiblePath) => path.resolve(projectDir, possiblePath));
765
- let polyfillsPath = possiblePaths.find((possiblePath) => {
766
- return this.$fs.exists(possiblePath);
767
- });
768
- if (polyfillsPath) {
769
- return "./" + path.relative(projectDir, polyfillsPath);
770
- }
771
- const tempDir = temp.mkdirSync({
772
- prefix: "migrate-angular-polyfills",
773
- });
774
- yield this.$pacoteService.extractPackage(constants.RESERVED_TEMPLATE_NAMES["angular"], tempDir);
775
- this.$fs.copyFile(path.resolve(tempDir, "src/polyfills.ts"), possiblePaths[0]);
776
- this.$fs.deleteDirectory(tempDir);
777
- this.spinner.succeed(`Created fresh ${color_1.color.cyan("polyfills.ts")}`);
778
- return "./" + path.relative(projectDir, possiblePaths[0]);
700
+ async checkOrCreatePolyfillsTS(projectData) {
701
+ const { projectDir, appDirectoryPath } = projectData;
702
+ const possiblePaths = [
703
+ `${appDirectoryPath}/polyfills.ts`,
704
+ `./src/polyfills.ts`,
705
+ `./app/polyfills.ts`,
706
+ ].map((possiblePath) => path.resolve(projectDir, possiblePath));
707
+ let polyfillsPath = possiblePaths.find((possiblePath) => {
708
+ return this.$fs.exists(possiblePath);
779
709
  });
780
- }
781
- migrateNativeScriptAngular() {
782
- return __awaiter(this, void 0, void 0, function* () {
783
- const minVersion = "10.0.0";
784
- const desiredVersion = "~18.0.0";
785
- const dependencies = [
786
- {
787
- packageName: "@angular/animations",
788
- minVersion,
789
- desiredVersion,
790
- shouldAddIfMissing: true,
791
- },
792
- {
793
- packageName: "@angular/common",
794
- minVersion,
795
- desiredVersion,
796
- shouldAddIfMissing: true,
797
- },
798
- {
799
- packageName: "@angular/compiler",
800
- minVersion,
801
- desiredVersion,
802
- shouldAddIfMissing: true,
803
- },
804
- {
805
- packageName: "@angular/core",
806
- minVersion,
807
- desiredVersion,
808
- shouldAddIfMissing: true,
809
- },
810
- {
811
- packageName: "@angular/forms",
812
- minVersion,
813
- desiredVersion,
814
- shouldAddIfMissing: true,
815
- },
816
- {
817
- packageName: "@angular/platform-browser",
818
- minVersion,
819
- desiredVersion,
820
- shouldAddIfMissing: true,
821
- },
822
- {
823
- packageName: "@angular/platform-browser-dynamic",
824
- minVersion,
825
- desiredVersion,
826
- shouldAddIfMissing: true,
827
- },
828
- {
829
- packageName: "@angular/router",
830
- minVersion,
831
- desiredVersion,
832
- shouldAddIfMissing: true,
833
- },
834
- {
835
- packageName: "rxjs",
836
- minVersion: "6.6.0",
837
- desiredVersion: "~7.8.0",
838
- shouldAddIfMissing: true,
839
- },
840
- {
841
- packageName: "zone.js",
842
- minVersion: "0.11.1",
843
- desiredVersion: "~0.14.0",
844
- shouldAddIfMissing: true,
845
- },
846
- {
847
- packageName: "@angular/cli",
848
- minVersion,
849
- desiredVersion,
850
- isDev: true,
851
- },
852
- {
853
- packageName: "@angular/compiler-cli",
854
- minVersion,
855
- desiredVersion,
856
- isDev: true,
857
- },
858
- {
859
- packageName: "@ngtools/webpack",
860
- minVersion,
861
- desiredVersion,
862
- isDev: true,
863
- },
864
- {
865
- packageName: "@angular-devkit/build-angular",
866
- minVersion,
867
- desiredVersion,
868
- isDev: true,
869
- },
870
- ];
871
- return dependencies;
710
+ if (polyfillsPath) {
711
+ return "./" + path.relative(projectDir, polyfillsPath);
712
+ }
713
+ const tempDir = temp.mkdirSync({
714
+ prefix: "migrate-angular-polyfills",
872
715
  });
716
+ await this.$pacoteService.extractPackage(constants.RESERVED_TEMPLATE_NAMES["angular"], tempDir);
717
+ this.$fs.copyFile(path.resolve(tempDir, "src/polyfills.ts"), possiblePaths[0]);
718
+ this.$fs.deleteDirectory(tempDir);
719
+ this.spinner.succeed(`Created fresh ${color_1.color.cyan("polyfills.ts")}`);
720
+ return "./" + path.relative(projectDir, possiblePaths[0]);
873
721
  }
874
- migrateNativeScriptVue() {
875
- return __awaiter(this, void 0, void 0, function* () {
876
- const dependencies = [
877
- {
878
- packageName: "nativescript-vue-template-compiler",
879
- minVersion: "2.7.0",
880
- desiredVersion: "~2.9.3",
881
- isDev: true,
882
- shouldAddIfMissing: true,
883
- },
884
- {
885
- packageName: "nativescript-vue-devtools",
886
- minVersion: "1.4.0",
887
- desiredVersion: "~1.5.1",
888
- isDev: true,
889
- },
890
- {
891
- packageName: "vue-loader",
892
- shouldRemove: true,
893
- },
894
- {
895
- packageName: "babel-loader",
896
- shouldRemove: true,
897
- },
898
- {
899
- packageName: "babel-traverse",
900
- shouldRemove: true,
901
- },
902
- {
903
- packageName: "babel-types",
904
- shouldRemove: true,
905
- },
906
- {
907
- packageName: "babylon",
908
- shouldRemove: true,
909
- },
910
- {
911
- packageName: "@babel/core",
912
- shouldRemove: true,
913
- },
914
- {
915
- packageName: "@babel/preset-env",
916
- shouldRemove: true,
917
- },
918
- {
919
- packageName: "vue",
920
- shouldRemove: true,
921
- },
922
- {
923
- packageName: "vue",
924
- desiredVersion: "2.6.12",
925
- isDev: true,
926
- },
927
- ];
928
- return dependencies;
929
- });
722
+ async migrateNativeScriptAngular() {
723
+ const minVersion = "10.0.0";
724
+ const desiredVersion = "~18.0.0";
725
+ const dependencies = [
726
+ {
727
+ packageName: "@angular/animations",
728
+ minVersion,
729
+ desiredVersion,
730
+ shouldAddIfMissing: true,
731
+ },
732
+ {
733
+ packageName: "@angular/common",
734
+ minVersion,
735
+ desiredVersion,
736
+ shouldAddIfMissing: true,
737
+ },
738
+ {
739
+ packageName: "@angular/compiler",
740
+ minVersion,
741
+ desiredVersion,
742
+ shouldAddIfMissing: true,
743
+ },
744
+ {
745
+ packageName: "@angular/core",
746
+ minVersion,
747
+ desiredVersion,
748
+ shouldAddIfMissing: true,
749
+ },
750
+ {
751
+ packageName: "@angular/forms",
752
+ minVersion,
753
+ desiredVersion,
754
+ shouldAddIfMissing: true,
755
+ },
756
+ {
757
+ packageName: "@angular/platform-browser",
758
+ minVersion,
759
+ desiredVersion,
760
+ shouldAddIfMissing: true,
761
+ },
762
+ {
763
+ packageName: "@angular/platform-browser-dynamic",
764
+ minVersion,
765
+ desiredVersion,
766
+ shouldAddIfMissing: true,
767
+ },
768
+ {
769
+ packageName: "@angular/router",
770
+ minVersion,
771
+ desiredVersion,
772
+ shouldAddIfMissing: true,
773
+ },
774
+ {
775
+ packageName: "rxjs",
776
+ minVersion: "6.6.0",
777
+ desiredVersion: "~7.8.0",
778
+ shouldAddIfMissing: true,
779
+ },
780
+ {
781
+ packageName: "zone.js",
782
+ minVersion: "0.11.1",
783
+ desiredVersion: "~0.14.0",
784
+ shouldAddIfMissing: true,
785
+ },
786
+ {
787
+ packageName: "@angular/cli",
788
+ minVersion,
789
+ desiredVersion,
790
+ isDev: true,
791
+ },
792
+ {
793
+ packageName: "@angular/compiler-cli",
794
+ minVersion,
795
+ desiredVersion,
796
+ isDev: true,
797
+ },
798
+ {
799
+ packageName: "@ngtools/webpack",
800
+ minVersion,
801
+ desiredVersion,
802
+ isDev: true,
803
+ },
804
+ {
805
+ packageName: "@angular-devkit/build-angular",
806
+ minVersion,
807
+ desiredVersion,
808
+ isDev: true,
809
+ },
810
+ ];
811
+ return dependencies;
930
812
  }
931
- migrateNativeScriptSvelte() {
932
- return __awaiter(this, void 0, void 0, function* () {
933
- const dependencies = [
934
- {
935
- packageName: "svelte-native-nativescript-ui",
936
- minVersion: "0.9.0",
937
- desiredVersion: "~0.9.0",
938
- isDev: true,
939
- shouldAddIfMissing: true,
940
- },
941
- {
942
- packageName: "svelte-native-preprocessor",
943
- minVersion: "0.2.0",
944
- desiredVersion: "~0.2.0",
945
- isDev: true,
946
- shouldAddIfMissing: true,
947
- },
948
- {
949
- packageName: "svelte-loader",
950
- shouldRemove: true,
951
- },
952
- {
953
- packageName: "svelte-loader-hot",
954
- shouldRemove: true,
955
- },
956
- {
957
- packageName: "svelte",
958
- shouldRemove: true,
959
- },
960
- {
961
- packageName: "svelte",
962
- minVersion: "3.24.1",
963
- desiredVersion: "3.24.1",
964
- shouldUseExactVersion: true,
965
- isDev: true,
966
- },
967
- ];
968
- return dependencies;
969
- });
813
+ async migrateNativeScriptVue() {
814
+ const dependencies = [
815
+ {
816
+ packageName: "nativescript-vue-template-compiler",
817
+ minVersion: "2.7.0",
818
+ desiredVersion: "~2.9.3",
819
+ isDev: true,
820
+ shouldAddIfMissing: true,
821
+ },
822
+ {
823
+ packageName: "nativescript-vue-devtools",
824
+ minVersion: "1.4.0",
825
+ desiredVersion: "~1.5.1",
826
+ isDev: true,
827
+ },
828
+ {
829
+ packageName: "vue-loader",
830
+ shouldRemove: true,
831
+ },
832
+ {
833
+ packageName: "babel-loader",
834
+ shouldRemove: true,
835
+ },
836
+ {
837
+ packageName: "babel-traverse",
838
+ shouldRemove: true,
839
+ },
840
+ {
841
+ packageName: "babel-types",
842
+ shouldRemove: true,
843
+ },
844
+ {
845
+ packageName: "babylon",
846
+ shouldRemove: true,
847
+ },
848
+ {
849
+ packageName: "@babel/core",
850
+ shouldRemove: true,
851
+ },
852
+ {
853
+ packageName: "@babel/preset-env",
854
+ shouldRemove: true,
855
+ },
856
+ {
857
+ packageName: "vue",
858
+ shouldRemove: true,
859
+ },
860
+ {
861
+ packageName: "vue",
862
+ desiredVersion: "2.6.12",
863
+ isDev: true,
864
+ },
865
+ ];
866
+ return dependencies;
970
867
  }
971
- migrateWebpack() {
972
- return __awaiter(this, void 0, void 0, function* () {
973
- const webpackDependencies = [
974
- "@angular-devkit/core",
975
- "clean-webpack-plugin",
976
- "copy-webpack-plugin",
977
- "css",
978
- "css-loader",
979
- "escape-string-regexp",
980
- "fork-ts-checker-webpack-plugin",
981
- "global-modules-path",
982
- "loader-utils",
983
- "minimatch",
984
- "@nativescript/hook",
985
- "nativescript-worker-loader",
986
- "properties-reader",
987
- "proxy-lib",
988
- "raw-loader",
989
- "resolve-url-loader",
990
- "sass-loader",
991
- "sax",
992
- "schema-utils",
993
- "semver",
994
- "shelljs",
995
- "tapable",
996
- "terser",
997
- "terser-webpack-plugin",
998
- "ts-loader",
999
- "webpack",
1000
- "webpack-bundle-analyzer",
1001
- "webpack-cli",
1002
- "webpack-sources",
1003
- ];
1004
- return webpackDependencies.map((dep) => {
1005
- return {
1006
- packageName: dep,
1007
- shouldRemove: true,
1008
- };
1009
- });
868
+ async migrateNativeScriptSvelte() {
869
+ const dependencies = [
870
+ {
871
+ packageName: "svelte-native-nativescript-ui",
872
+ minVersion: "0.9.0",
873
+ desiredVersion: "~0.9.0",
874
+ isDev: true,
875
+ shouldAddIfMissing: true,
876
+ },
877
+ {
878
+ packageName: "svelte-native-preprocessor",
879
+ minVersion: "0.2.0",
880
+ desiredVersion: "~0.2.0",
881
+ isDev: true,
882
+ shouldAddIfMissing: true,
883
+ },
884
+ {
885
+ packageName: "svelte-loader",
886
+ shouldRemove: true,
887
+ },
888
+ {
889
+ packageName: "svelte-loader-hot",
890
+ shouldRemove: true,
891
+ },
892
+ {
893
+ packageName: "svelte",
894
+ shouldRemove: true,
895
+ },
896
+ {
897
+ packageName: "svelte",
898
+ minVersion: "3.24.1",
899
+ desiredVersion: "3.24.1",
900
+ shouldUseExactVersion: true,
901
+ isDev: true,
902
+ },
903
+ ];
904
+ return dependencies;
905
+ }
906
+ async migrateWebpack() {
907
+ const webpackDependencies = [
908
+ "@angular-devkit/core",
909
+ "clean-webpack-plugin",
910
+ "copy-webpack-plugin",
911
+ "css",
912
+ "css-loader",
913
+ "escape-string-regexp",
914
+ "fork-ts-checker-webpack-plugin",
915
+ "global-modules-path",
916
+ "loader-utils",
917
+ "minimatch",
918
+ "@nativescript/hook",
919
+ "nativescript-worker-loader",
920
+ "properties-reader",
921
+ "proxy-lib",
922
+ "raw-loader",
923
+ "resolve-url-loader",
924
+ "sass-loader",
925
+ "sax",
926
+ "schema-utils",
927
+ "semver",
928
+ "shelljs",
929
+ "tapable",
930
+ "terser",
931
+ "terser-webpack-plugin",
932
+ "ts-loader",
933
+ "webpack",
934
+ "webpack-bundle-analyzer",
935
+ "webpack-cli",
936
+ "webpack-sources",
937
+ ];
938
+ return webpackDependencies.map((dep) => {
939
+ return {
940
+ packageName: dep,
941
+ shouldRemove: true,
942
+ };
1010
943
  });
1011
944
  }
1012
- migrateWebpack5(projectDir, projectData) {
945
+ async migrateWebpack5(projectDir, projectData) {
1013
946
  var _a;
1014
- return __awaiter(this, void 0, void 0, function* () {
1015
- const webpackConfigPath = path.resolve(projectDir, "webpack.config.js");
1016
- if (this.$fs.exists(webpackConfigPath)) {
1017
- const webpackConfigContent = this.$fs.readText(webpackConfigPath);
1018
- if (webpackConfigContent.includes("webpack.init(")) {
1019
- this.spinner.succeed(`Project already using new ${color_1.color.yellow("webpack.config.js")}`);
1020
- return;
1021
- }
1022
- }
1023
- yield this.$projectCleanupService.clean(["webpack.config.js"]);
1024
- this.spinner.info(`Initializing new ${color_1.color.yellow("webpack.config.js")}`);
1025
- const { desiredVersion: webpackVersion } = this.migrationDependencies.find((dep) => dep.packageName === constants.WEBPACK_PLUGIN_NAME);
1026
- try {
1027
- const scopedWebpackPackage = `@nativescript/webpack`;
1028
- const resolvedVersion = yield this.$packageInstallationManager.getMaxSatisfyingVersion(scopedWebpackPackage, webpackVersion);
1029
- yield this.runNPX([
1030
- "--package",
1031
- `${scopedWebpackPackage}@${resolvedVersion}`,
1032
- "nativescript-webpack",
1033
- "init",
1034
- ]);
1035
- this.spinner.succeed(`Initialized new ${color_1.color.yellow("webpack.config.js")}`);
1036
- }
1037
- catch (err) {
1038
- this.spinner.fail(`Failed to initialize ${color_1.color.yellow("webpack.config.js")}`);
1039
- this.$logger.trace("Failed to initialize webpack.config.js. Error is: ", err);
1040
- this.$logger.printMarkdown(`You can try again by running \`npm install\` (or yarn, pnpm) and then \`npx @nativescript/webpack init\`.`);
1041
- }
1042
- const packageJSON = this.$fs.readJson(projectData.projectFilePath);
1043
- const currentMain = (_a = packageJSON.main) !== null && _a !== void 0 ? _a : "app.js";
1044
- const currentMainTS = currentMain.replace(/.js$/, ".ts");
1045
- const appPath = projectData.appDirectoryPath;
1046
- const possibleMains = [
1047
- `./${appPath}/${currentMain}`,
1048
- `./${appPath}/${currentMainTS}`,
1049
- `./${appPath}/main.js`,
1050
- `./${appPath}/main.ts`,
1051
- `./app/${currentMain}`,
1052
- `./app/${currentMainTS}`,
1053
- `./src/${currentMain}`,
1054
- `./src/${currentMainTS}`,
1055
- `./app/main.js`,
1056
- `./app/main.ts`,
1057
- `./src/main.js`,
1058
- `./src/main.ts`,
1059
- ].map((possibleMain) => path.resolve(projectDir, possibleMain));
1060
- let replacedMain = possibleMains.find((possibleMain) => {
1061
- return this.$fs.exists(possibleMain);
1062
- });
1063
- if (replacedMain) {
1064
- replacedMain = `./${path.relative(projectDir, replacedMain)}`.replace(/\\/g, "/");
1065
- packageJSON.main = replacedMain;
1066
- this.$fs.writeJson(projectData.projectFilePath, packageJSON);
1067
- this.spinner.info(`Updated ${color_1.color.yellow("package.json")} main field to ${color_1.color.green(replacedMain)}`);
1068
- }
1069
- else {
1070
- this.$logger.warn();
1071
- this.$logger.warn("Note:\n-----");
1072
- this.$logger.printMarkdown(`Could not determine the correct \`main\` field for \`package.json\`. Make sure to update it manually, pointing to the actual entry file relative to the \`package.json\`.\n`);
947
+ const webpackConfigPath = path.resolve(projectDir, "webpack.config.js");
948
+ if (this.$fs.exists(webpackConfigPath)) {
949
+ const webpackConfigContent = this.$fs.readText(webpackConfigPath);
950
+ if (webpackConfigContent.includes("webpack.init(")) {
951
+ this.spinner.succeed(`Project already using new ${color_1.color.yellow("webpack.config.js")}`);
952
+ return;
1073
953
  }
954
+ }
955
+ await this.$projectCleanupService.clean(["webpack.config.js"]);
956
+ this.spinner.info(`Initializing new ${color_1.color.yellow("webpack.config.js")}`);
957
+ const { desiredVersion: webpackVersion } = this.migrationDependencies.find((dep) => dep.packageName === constants.WEBPACK_PLUGIN_NAME);
958
+ try {
959
+ const scopedWebpackPackage = `@nativescript/webpack`;
960
+ const resolvedVersion = await this.$packageInstallationManager.getMaxSatisfyingVersion(scopedWebpackPackage, webpackVersion);
961
+ await this.runNPX([
962
+ "--package",
963
+ `${scopedWebpackPackage}@${resolvedVersion}`,
964
+ "nativescript-webpack",
965
+ "init",
966
+ ]);
967
+ this.spinner.succeed(`Initialized new ${color_1.color.yellow("webpack.config.js")}`);
968
+ }
969
+ catch (err) {
970
+ this.spinner.fail(`Failed to initialize ${color_1.color.yellow("webpack.config.js")}`);
971
+ this.$logger.trace("Failed to initialize webpack.config.js. Error is: ", err);
972
+ this.$logger.printMarkdown(`You can try again by running \`npm install\` (or yarn, pnpm) and then \`npx @nativescript/webpack init\`.`);
973
+ }
974
+ const packageJSON = this.$fs.readJson(projectData.projectFilePath);
975
+ const currentMain = (_a = packageJSON.main) !== null && _a !== void 0 ? _a : "app.js";
976
+ const currentMainTS = currentMain.replace(/.js$/, ".ts");
977
+ const appPath = projectData.appDirectoryPath;
978
+ const possibleMains = [
979
+ `./${appPath}/${currentMain}`,
980
+ `./${appPath}/${currentMainTS}`,
981
+ `./${appPath}/main.js`,
982
+ `./${appPath}/main.ts`,
983
+ `./app/${currentMain}`,
984
+ `./app/${currentMainTS}`,
985
+ `./src/${currentMain}`,
986
+ `./src/${currentMainTS}`,
987
+ `./app/main.js`,
988
+ `./app/main.ts`,
989
+ `./src/main.js`,
990
+ `./src/main.ts`,
991
+ ].map((possibleMain) => path.resolve(projectDir, possibleMain));
992
+ let replacedMain = possibleMains.find((possibleMain) => {
993
+ return this.$fs.exists(possibleMain);
1074
994
  });
995
+ if (replacedMain) {
996
+ replacedMain = `./${path.relative(projectDir, replacedMain)}`.replace(/\\/g, "/");
997
+ packageJSON.main = replacedMain;
998
+ this.$fs.writeJson(projectData.projectFilePath, packageJSON);
999
+ this.spinner.info(`Updated ${color_1.color.yellow("package.json")} main field to ${color_1.color.green(replacedMain)}`);
1000
+ }
1001
+ else {
1002
+ this.$logger.warn();
1003
+ this.$logger.warn("Note:\n-----");
1004
+ this.$logger.printMarkdown(`Could not determine the correct \`main\` field for \`package.json\`. Make sure to update it manually, pointing to the actual entry file relative to the \`package.json\`.\n`);
1005
+ }
1075
1006
  }
1076
- runESLint(projectDir) {
1077
- return __awaiter(this, void 0, void 0, function* () {
1078
- this.spinner.start(`Running ESLint fixes`);
1079
- try {
1080
- yield this.runNPX(["@nativescript/eslint-plugin", projectDir]);
1081
- this.spinner.succeed(`Applied ESLint fixes`);
1082
- }
1083
- catch (err) {
1084
- this.spinner.fail(`Failed to apply ESLint fixes`);
1085
- this.$logger.trace("Failed to apply ESLint fixes. Error is:", err);
1086
- }
1087
- });
1007
+ async runESLint(projectDir) {
1008
+ this.spinner.start(`Running ESLint fixes`);
1009
+ try {
1010
+ await this.runNPX(["@nativescript/eslint-plugin", projectDir]);
1011
+ this.spinner.succeed(`Applied ESLint fixes`);
1012
+ }
1013
+ catch (err) {
1014
+ this.spinner.fail(`Failed to apply ESLint fixes`);
1015
+ this.$logger.trace("Failed to apply ESLint fixes. Error is:", err);
1016
+ }
1088
1017
  }
1089
- runNPX(args = []) {
1090
- return __awaiter(this, void 0, void 0, function* () {
1091
- const npxVersion = yield this.$childProcess.exec("npx -v");
1092
- const npxFlags = [];
1093
- if (semver.gt(semver.coerce(npxVersion), "7.0.0")) {
1094
- npxFlags.push("-y");
1095
- }
1096
- const args_ = ["npx", ...npxFlags, ...args];
1097
- yield this.$childProcess.exec(args_.join(" "));
1098
- });
1018
+ async runNPX(args = []) {
1019
+ const npxVersion = await this.$childProcess.exec("npx -v");
1020
+ const npxFlags = [];
1021
+ if (semver.gt(semver.coerce(npxVersion), "7.0.0")) {
1022
+ npxFlags.push("-y");
1023
+ }
1024
+ const args_ = ["npx", ...npxFlags, ...args];
1025
+ await this.$childProcess.exec(args_.join(" "));
1099
1026
  }
1100
1027
  }
1028
+ exports.MigrateController = MigrateController;
1101
1029
  MigrateController.backupFolderName = ".migration_backup";
1102
1030
  MigrateController.pathsToBackup = [
1103
1031
  constants.LIB_DIR_NAME,
@@ -1109,5 +1037,4 @@ MigrateController.pathsToBackup = [
1109
1037
  constants.KARMA_CONFIG_NAME,
1110
1038
  constants.CONFIG_NS_FILE_NAME,
1111
1039
  ];
1112
- exports.MigrateController = MigrateController;
1113
1040
  yok_1.injector.register("migrateController", MigrateController);