nativescript 8.9.0-dev.2 → 8.9.0-dev.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.
- package/config/test-deps-versions-generated.json +1 -1
- package/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
|
@@ -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");
|
|
@@ -179,10 +170,8 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
179
170
|
const currentPlatformData = this.$projectDataService.getRuntimePackage(projectData.projectDir, platformData.platformNameLowerCase);
|
|
180
171
|
return currentPlatformData && currentPlatformData[constants.VERSION_STRING];
|
|
181
172
|
}
|
|
182
|
-
validateOptions() {
|
|
183
|
-
return
|
|
184
|
-
return true;
|
|
185
|
-
});
|
|
173
|
+
async validateOptions() {
|
|
174
|
+
return true;
|
|
186
175
|
}
|
|
187
176
|
getAppResourcesDestinationDirectoryPath(projectData) {
|
|
188
177
|
const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
|
|
@@ -193,41 +182,37 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
193
182
|
return this.getLegacyAppResourcesDestinationDirPath(projectData);
|
|
194
183
|
}
|
|
195
184
|
}
|
|
196
|
-
validate(projectData, options, notConfiguredEnvOptions) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
validateTargetSdk: true,
|
|
210
|
-
});
|
|
211
|
-
return {
|
|
212
|
-
checkEnvironmentRequirementsOutput,
|
|
213
|
-
};
|
|
185
|
+
async validate(projectData, options, notConfiguredEnvOptions) {
|
|
186
|
+
this.validatePackageName(projectData.projectIdentifiers.android);
|
|
187
|
+
this.validateProjectName(projectData.projectName);
|
|
188
|
+
const checkEnvironmentRequirementsOutput = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
|
|
189
|
+
platform: this.getPlatformData(projectData).normalizedPlatformName,
|
|
190
|
+
projectDir: projectData.projectDir,
|
|
191
|
+
options,
|
|
192
|
+
notConfiguredEnvOptions,
|
|
193
|
+
});
|
|
194
|
+
this.$androidToolsInfo.validateInfo({
|
|
195
|
+
showWarningsAsErrors: true,
|
|
196
|
+
projectDir: projectData.projectDir,
|
|
197
|
+
validateTargetSdk: true,
|
|
214
198
|
});
|
|
199
|
+
return {
|
|
200
|
+
checkEnvironmentRequirementsOutput,
|
|
201
|
+
};
|
|
215
202
|
}
|
|
216
|
-
createProject(frameworkDir, frameworkVersion, projectData) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
projectDir: projectData.projectDir,
|
|
224
|
-
});
|
|
225
|
-
const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
|
|
226
|
-
this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
|
|
227
|
-
this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
|
|
228
|
-
// TODO: Check if we actually need this and if it should be targetSdk or compileSdk
|
|
229
|
-
this.cleanResValues(targetSdkVersion, projectData);
|
|
203
|
+
async createProject(frameworkDir, frameworkVersion, projectData) {
|
|
204
|
+
if (semver.lt(frameworkVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
|
|
205
|
+
this.$errors.fail(`The NativeScript CLI requires Android runtime ${AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE} or later to work properly.`);
|
|
206
|
+
}
|
|
207
|
+
this.$fs.ensureDirectoryExists(this.getPlatformData(projectData).projectRoot);
|
|
208
|
+
const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({
|
|
209
|
+
projectDir: projectData.projectDir,
|
|
230
210
|
});
|
|
211
|
+
const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
|
|
212
|
+
this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
|
|
213
|
+
this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
|
|
214
|
+
// TODO: Check if we actually need this and if it should be targetSdk or compileSdk
|
|
215
|
+
this.cleanResValues(targetSdkVersion, projectData);
|
|
231
216
|
}
|
|
232
217
|
getResDestinationDir(projectData) {
|
|
233
218
|
const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
|
|
@@ -257,35 +242,33 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
257
242
|
this.$logger.trace(directoriesToClean);
|
|
258
243
|
_.map(directoriesToClean, (dir) => this.$fs.deleteDirectory(dir));
|
|
259
244
|
}
|
|
260
|
-
interpolateData(projectData) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
catch (e) {
|
|
286
|
-
this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
|
|
245
|
+
async interpolateData(projectData) {
|
|
246
|
+
// Interpolate the apilevel and package
|
|
247
|
+
this.interpolateConfigurationFile(projectData);
|
|
248
|
+
const appResourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
|
|
249
|
+
let stringsFilePath;
|
|
250
|
+
const appResourcesDestinationDirectoryPath = this.getAppResourcesDestinationDirectoryPath(projectData);
|
|
251
|
+
if (this.$androidResourcesMigrationService.hasMigrated(appResourcesDirectoryPath)) {
|
|
252
|
+
stringsFilePath = path.join(appResourcesDestinationDirectoryPath, constants.MAIN_DIR, constants.RESOURCES_DIR, "values", "strings.xml");
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
stringsFilePath = path.join(appResourcesDestinationDirectoryPath, "values", "strings.xml");
|
|
256
|
+
}
|
|
257
|
+
shell.sed("-i", /__NAME__/, projectData.projectName, stringsFilePath);
|
|
258
|
+
shell.sed("-i", /__TITLE_ACTIVITY__/, projectData.projectName, stringsFilePath);
|
|
259
|
+
const gradleSettingsFilePath = path.join(this.getPlatformData(projectData).projectRoot, "settings.gradle");
|
|
260
|
+
shell.sed("-i", /__PROJECT_NAME__/, this.getProjectNameFromId(projectData), gradleSettingsFilePath);
|
|
261
|
+
try {
|
|
262
|
+
// will replace applicationId in app/App_Resources/Android/app.gradle if it has not been edited by the user
|
|
263
|
+
const appGradleContent = this.$fs.readText(projectData.appGradlePath);
|
|
264
|
+
if (appGradleContent.indexOf(constants.PACKAGE_PLACEHOLDER_NAME) !== -1) {
|
|
265
|
+
//TODO: For compatibility with old templates. Once all templates are updated should delete.
|
|
266
|
+
shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
|
|
287
267
|
}
|
|
288
|
-
}
|
|
268
|
+
}
|
|
269
|
+
catch (e) {
|
|
270
|
+
this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
|
|
271
|
+
}
|
|
289
272
|
}
|
|
290
273
|
interpolateConfigurationFile(projectData) {
|
|
291
274
|
const manifestPath = this.getPlatformData(projectData).configurationFilePath;
|
|
@@ -304,30 +287,24 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
304
287
|
afterCreateProject(projectRoot) {
|
|
305
288
|
return null;
|
|
306
289
|
}
|
|
307
|
-
updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return true;
|
|
316
|
-
});
|
|
290
|
+
async updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
|
|
291
|
+
if (semver.eq(newVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
|
|
292
|
+
const platformLowercase = this.getPlatformData(projectData).normalizedPlatformName.toLowerCase();
|
|
293
|
+
await removePlatforms([platformLowercase.split("@")[0]]);
|
|
294
|
+
await addPlatform(platformLowercase);
|
|
295
|
+
return false;
|
|
296
|
+
}
|
|
297
|
+
return true;
|
|
317
298
|
}
|
|
318
|
-
buildProject(projectRoot, projectData, buildData) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
yield this.trackKotlinUsage(projectRoot);
|
|
325
|
-
});
|
|
299
|
+
async buildProject(projectRoot, projectData, buildData) {
|
|
300
|
+
const platformData = this.getPlatformData(projectData);
|
|
301
|
+
await this.$gradleBuildService.buildProject(platformData.projectRoot, buildData);
|
|
302
|
+
const outputPath = platformData.getBuildOutputPath(buildData);
|
|
303
|
+
await this.$filesHashService.saveHashesForProject(this._platformData, outputPath);
|
|
304
|
+
await this.trackKotlinUsage(projectRoot);
|
|
326
305
|
}
|
|
327
|
-
buildForDeploy(projectRoot, projectData, buildData) {
|
|
328
|
-
return
|
|
329
|
-
return this.buildProject(projectRoot, projectData, buildData);
|
|
330
|
-
});
|
|
306
|
+
async buildForDeploy(projectRoot, projectData, buildData) {
|
|
307
|
+
return this.buildProject(projectRoot, projectData, buildData);
|
|
331
308
|
}
|
|
332
309
|
isPlatformPrepared(projectRoot, projectData) {
|
|
333
310
|
return this.$fs.exists(path.join(this.getPlatformData(projectData).appDestinationDirectoryPath, this.$options.hostProjectModuleName));
|
|
@@ -335,10 +312,8 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
335
312
|
getFrameworkFilesExtensions() {
|
|
336
313
|
return [".jar", ".dat"];
|
|
337
314
|
}
|
|
338
|
-
prepareProject() {
|
|
339
|
-
|
|
340
|
-
// Intentionally left empty.
|
|
341
|
-
});
|
|
315
|
+
async prepareProject() {
|
|
316
|
+
// Intentionally left empty.
|
|
342
317
|
}
|
|
343
318
|
ensureConfigurationFileInAppResources(projectData) {
|
|
344
319
|
const appResourcesDirectoryPath = projectData.appResourcesDirectoryPath;
|
|
@@ -382,49 +357,39 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
382
357
|
const compileSdkVersion = androidToolsInfo && androidToolsInfo.compileSdkVersion;
|
|
383
358
|
this.cleanResValues(compileSdkVersion, projectData);
|
|
384
359
|
}
|
|
385
|
-
preparePluginNativeCode(pluginData, projectData) {
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
this.$logger.info(`Built aar for ${options.pluginName}`);
|
|
401
|
-
}
|
|
402
|
-
this.$androidPluginBuildService.migrateIncludeGradle(options);
|
|
360
|
+
async preparePluginNativeCode(pluginData, projectData) {
|
|
361
|
+
// build Android plugins which contain AndroidManifest.xml and/or resources
|
|
362
|
+
const pluginPlatformsFolderPath = this.getPluginPlatformsFolderPath(pluginData, AndroidProjectService.ANDROID_PLATFORM_NAME);
|
|
363
|
+
if (this.$fs.exists(pluginPlatformsFolderPath)) {
|
|
364
|
+
const options = {
|
|
365
|
+
gradlePath: this.$options.gradlePath,
|
|
366
|
+
gradleArgs: this.$options.gradleArgs,
|
|
367
|
+
projectDir: projectData.projectDir,
|
|
368
|
+
pluginName: pluginData.name,
|
|
369
|
+
platformsAndroidDirPath: pluginPlatformsFolderPath,
|
|
370
|
+
aarOutputDir: pluginPlatformsFolderPath,
|
|
371
|
+
tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin"),
|
|
372
|
+
};
|
|
373
|
+
if (await this.$androidPluginBuildService.buildAar(options)) {
|
|
374
|
+
this.$logger.info(`Built aar for ${options.pluginName}`);
|
|
403
375
|
}
|
|
404
|
-
|
|
376
|
+
this.$androidPluginBuildService.migrateIncludeGradle(options);
|
|
377
|
+
}
|
|
405
378
|
}
|
|
406
|
-
processConfigurationFilesFromAppResources() {
|
|
407
|
-
return
|
|
408
|
-
return;
|
|
409
|
-
});
|
|
379
|
+
async processConfigurationFilesFromAppResources() {
|
|
380
|
+
return;
|
|
410
381
|
}
|
|
411
|
-
removePluginNativeCode(pluginData, projectData) {
|
|
412
|
-
|
|
413
|
-
// not implemented
|
|
414
|
-
});
|
|
382
|
+
async removePluginNativeCode(pluginData, projectData) {
|
|
383
|
+
// not implemented
|
|
415
384
|
}
|
|
416
|
-
beforePrepareAllPlugins(projectData, dependencies) {
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
}
|
|
422
|
-
});
|
|
385
|
+
async beforePrepareAllPlugins(projectData, dependencies) {
|
|
386
|
+
if (dependencies) {
|
|
387
|
+
dependencies = this.filterUniqueDependencies(dependencies);
|
|
388
|
+
return this.provideDependenciesJson(projectData, dependencies);
|
|
389
|
+
}
|
|
423
390
|
}
|
|
424
|
-
handleNativeDependenciesChange(projectData, opts) {
|
|
425
|
-
return
|
|
426
|
-
return;
|
|
427
|
-
});
|
|
391
|
+
async handleNativeDependenciesChange(projectData, opts) {
|
|
392
|
+
return;
|
|
428
393
|
}
|
|
429
394
|
filterUniqueDependencies(dependencies) {
|
|
430
395
|
const depsDictionary = dependencies.reduce((dict, dep) => {
|
|
@@ -467,36 +432,28 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
467
432
|
(nativescript.android ||
|
|
468
433
|
(nativescript.platforms && nativescript.platforms.android)));
|
|
469
434
|
}
|
|
470
|
-
stopServices(projectRoot) {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
stdio: "pipe",
|
|
476
|
-
});
|
|
477
|
-
return result;
|
|
435
|
+
async stopServices(projectRoot) {
|
|
436
|
+
const result = await this.$gradleCommandService.executeCommand(["--stop", "--quiet"], {
|
|
437
|
+
cwd: projectRoot,
|
|
438
|
+
message: "Gradle stop services...",
|
|
439
|
+
stdio: "pipe",
|
|
478
440
|
});
|
|
441
|
+
return result;
|
|
479
442
|
}
|
|
480
|
-
cleanProject(projectRoot) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
release: false,
|
|
484
|
-
});
|
|
443
|
+
async cleanProject(projectRoot) {
|
|
444
|
+
await this.$gradleBuildService.cleanProject(projectRoot, {
|
|
445
|
+
release: false,
|
|
485
446
|
});
|
|
486
447
|
}
|
|
487
|
-
cleanDeviceTempFolder(deviceIdentifier, projectData) {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
identifier: deviceIdentifier,
|
|
491
|
-
});
|
|
492
|
-
const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
|
|
493
|
-
yield adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
|
|
448
|
+
async cleanDeviceTempFolder(deviceIdentifier, projectData) {
|
|
449
|
+
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
|
|
450
|
+
identifier: deviceIdentifier,
|
|
494
451
|
});
|
|
452
|
+
const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
|
|
453
|
+
await adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
|
|
495
454
|
}
|
|
496
|
-
checkForChanges() {
|
|
497
|
-
|
|
498
|
-
// Nothing android specific to check yet.
|
|
499
|
-
});
|
|
455
|
+
async checkForChanges() {
|
|
456
|
+
// Nothing android specific to check yet.
|
|
500
457
|
}
|
|
501
458
|
getDeploymentTarget(projectData) {
|
|
502
459
|
return;
|
|
@@ -570,24 +527,22 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
570
527
|
});
|
|
571
528
|
}
|
|
572
529
|
}
|
|
573
|
-
trackKotlinUsage(projectRoot) {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
});
|
|
585
|
-
}
|
|
530
|
+
async trackKotlinUsage(projectRoot) {
|
|
531
|
+
const buildStatistics = this.tryGetAndroidBuildStatistics(projectRoot);
|
|
532
|
+
try {
|
|
533
|
+
if (buildStatistics && buildStatistics.kotlinUsage) {
|
|
534
|
+
const analyticsDelimiter = constants.AnalyticsEventLabelDelimiter;
|
|
535
|
+
const hasUseKotlinPropertyInAppData = `hasUseKotlinPropertyInApp${analyticsDelimiter}${buildStatistics.kotlinUsage.hasUseKotlinPropertyInApp}`;
|
|
536
|
+
const hasKotlinRuntimeClassesData = `hasKotlinRuntimeClasses${analyticsDelimiter}${buildStatistics.kotlinUsage.hasKotlinRuntimeClasses}`;
|
|
537
|
+
await this.$analyticsService.trackEventActionInGoogleAnalytics({
|
|
538
|
+
action: "Using Kotlin" /* constants.TrackActionNames.UsingKotlin */,
|
|
539
|
+
additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}`,
|
|
540
|
+
});
|
|
586
541
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
}
|
|
590
|
-
}
|
|
542
|
+
}
|
|
543
|
+
catch (e) {
|
|
544
|
+
this.$logger.trace(`Failed to track android build statistics. Error is: ${e.message}`);
|
|
545
|
+
}
|
|
591
546
|
}
|
|
592
547
|
tryGetAndroidBuildStatistics(projectRoot) {
|
|
593
548
|
const staticsFilePath = path.join(projectRoot, constants.ANDROID_ANALYTICS_DATA_DIR, constants.ANDROID_ANALYTICS_DATA_FILE);
|
|
@@ -603,6 +558,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
603
558
|
return buildStatistics;
|
|
604
559
|
}
|
|
605
560
|
}
|
|
561
|
+
exports.AndroidProjectService = AndroidProjectService;
|
|
606
562
|
AndroidProjectService.VALUES_DIRNAME = "values";
|
|
607
563
|
AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX = AndroidProjectService.VALUES_DIRNAME + "-v";
|
|
608
564
|
AndroidProjectService.ANDROID_PLATFORM_NAME = "android";
|
|
@@ -611,6 +567,5 @@ __decorate([
|
|
|
611
567
|
(0, decorators_1.performanceLog)(),
|
|
612
568
|
(0, helpers_1.hook)("buildAndroid")
|
|
613
569
|
], AndroidProjectService.prototype, "buildProject", null);
|
|
614
|
-
exports.AndroidProjectService = AndroidProjectService;
|
|
615
570
|
yok_1.injector.register("androidProjectService", AndroidProjectService);
|
|
616
571
|
//# sourceMappingURL=android-project-service.js.map
|
|
@@ -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,71 +19,67 @@ 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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
38
|
-
this.$logger.info(
|
|
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 (
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
this.$fs.copyFile(path.join(originalAppResources, constants.MANIFEST_FILE_NAME), path.join(appMainSourceSet, constants.MANIFEST_FILE_NAME));
|
|
91
|
-
// rename the legacy app_resources to ANDROID_DIR_OLD
|
|
92
|
-
this.$fs.rename(originalAppResources, appResourcesBackup);
|
|
93
|
-
// move the new, updated app_resources to App_Resources/Android, as the de facto resources
|
|
94
|
-
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
|
+
// create /java, /res and /assets in the App_Resources/Android/src/main directory
|
|
50
|
+
this.$fs.ensureDirectoryExists(appResourcesMainSourceSetResourcesDestination);
|
|
51
|
+
this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, "java"));
|
|
52
|
+
this.$fs.ensureDirectoryExists(path.join(appMainSourceSet, constants.ASSETS_DIR));
|
|
53
|
+
const isDirectory = (source) => this.$fs.getLsStats(source).isDirectory();
|
|
54
|
+
const getAllFiles = (source) => this.$fs.readDirectory(source).map((name) => path.join(source, name));
|
|
55
|
+
const getDirectories = (files) => files.filter(isDirectory);
|
|
56
|
+
const getFiles = (files) => files.filter((file) => !isDirectory(file));
|
|
57
|
+
this.$fs.copyFile(path.join(originalAppResources, constants.APP_GRADLE_FILE_NAME), path.join(appResourcesDestination, constants.APP_GRADLE_FILE_NAME));
|
|
58
|
+
const appResourcesFiles = getAllFiles(originalAppResources);
|
|
59
|
+
const resourceDirectories = getDirectories(appResourcesFiles);
|
|
60
|
+
const resourceFiles = getFiles(appResourcesFiles);
|
|
61
|
+
resourceDirectories.forEach((dir) => {
|
|
62
|
+
if (path.basename(dir) !== "libs") {
|
|
63
|
+
// don't copy /App_Resources/Android/libs into the src/main/res/libs directory
|
|
64
|
+
this.$fs.copyFile(dir, appResourcesMainSourceSetResourcesDestination);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// copy App_Resources/Android/libs to App_ResourcesNew/Android/libs
|
|
68
|
+
this.$fs.copyFile(dir, path.join(appResourcesDestination));
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
resourceFiles.forEach((file) => {
|
|
72
|
+
const fileName = path.basename(file);
|
|
73
|
+
if (fileName !== constants.MANIFEST_FILE_NAME) {
|
|
74
|
+
// don't copy AndroidManifest into /App_Resources/Android as it needs to be inside src/main/
|
|
75
|
+
this.$fs.copyFile(file, path.join(appResourcesDestination, fileName));
|
|
76
|
+
}
|
|
95
77
|
});
|
|
78
|
+
this.$fs.copyFile(path.join(originalAppResources, constants.MANIFEST_FILE_NAME), path.join(appMainSourceSet, constants.MANIFEST_FILE_NAME));
|
|
79
|
+
// rename the legacy app_resources to ANDROID_DIR_OLD
|
|
80
|
+
this.$fs.rename(originalAppResources, appResourcesBackup);
|
|
81
|
+
// move the new, updated app_resources to App_Resources/Android, as the de facto resources
|
|
82
|
+
this.$fs.rename(appResourcesDestination, originalAppResources);
|
|
96
83
|
}
|
|
97
84
|
recover(originalAppResources, appResourcesDestination, appResourcesBackup) {
|
|
98
85
|
if (!this.$fs.exists(originalAppResources)) {
|
|
@@ -103,9 +90,9 @@ class AndroidResourcesMigrationService {
|
|
|
103
90
|
}
|
|
104
91
|
}
|
|
105
92
|
}
|
|
93
|
+
exports.AndroidResourcesMigrationService = AndroidResourcesMigrationService;
|
|
106
94
|
AndroidResourcesMigrationService.ANDROID_DIR = "Android";
|
|
107
95
|
AndroidResourcesMigrationService.ANDROID_DIR_TEMP = "Android-Updated";
|
|
108
96
|
AndroidResourcesMigrationService.ANDROID_DIR_OLD = "Android-Pre-v4";
|
|
109
|
-
exports.AndroidResourcesMigrationService = AndroidResourcesMigrationService;
|
|
110
97
|
yok_1.injector.register("androidResourcesMigrationService", AndroidResourcesMigrationService);
|
|
111
98
|
//# sourceMappingURL=android-resources-migration-service.js.map
|