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.ProjectConfigService = void 0;
|
|
19
10
|
const constants = require("../constants");
|
|
@@ -160,65 +151,66 @@ export default {
|
|
|
160
151
|
getValue(key, defaultValue) {
|
|
161
152
|
return _.get(this.readConfig(), key, defaultValue);
|
|
162
153
|
}
|
|
163
|
-
setValue(key, value) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
(usingNSConfig && !this.forceUsingNewConfig)) {
|
|
169
|
-
try {
|
|
170
|
-
this.$logger.trace("Project Config Service -> setValue writing to legacy config.");
|
|
171
|
-
const NSConfig = hasNSConfig ? this.$fs.readJson(NSConfigPath) : {};
|
|
172
|
-
_.set(NSConfig, key, value);
|
|
173
|
-
this.$fs.writeJson(NSConfigPath, NSConfig);
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
this.$logger.trace(`Failed to setValue on legacy config. Error is ${error.message}`, error);
|
|
178
|
-
return false;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
if (!this.$fs.exists(configFilePath)) {
|
|
182
|
-
this.writeDefaultConfig(this.projectHelper.projectDir);
|
|
183
|
-
}
|
|
184
|
-
if (!Array.isArray(value) && typeof value === "object") {
|
|
185
|
-
let allSuccessful = true;
|
|
186
|
-
for (const prop of this.flattenObjectToPaths(value)) {
|
|
187
|
-
if (!(yield this.setValue(prop.key, prop.value))) {
|
|
188
|
-
allSuccessful = false;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return allSuccessful;
|
|
192
|
-
}
|
|
193
|
-
const configContent = this.$fs.readText(configFilePath);
|
|
154
|
+
async setValue(key, value) {
|
|
155
|
+
const { hasTSConfig, hasNSConfig, TSConfigPath, JSConfigPath, usingNSConfig, NSConfigPath, } = this.detectProjectConfigs();
|
|
156
|
+
const configFilePath = TSConfigPath || JSConfigPath;
|
|
157
|
+
if (this.forceUsingLegacyConfig ||
|
|
158
|
+
(usingNSConfig && !this.forceUsingNewConfig)) {
|
|
194
159
|
try {
|
|
195
|
-
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
};
|
|
201
|
-
this.$logger.trace("updating config, prettier options: ", prettierOptions);
|
|
202
|
-
this.$fs.writeFile(configFilePath, (0, prettier_1.format)(newContent, Object.assign(Object.assign({}, prettierOptions), { parser: "typescript",
|
|
203
|
-
// note: we don't use plugins here, since we are only formatting ts files, and they are supported by default
|
|
204
|
-
// and this also causes issues with certain plugins, like prettier-plugin-tailwindcss.
|
|
205
|
-
plugins: [] })));
|
|
160
|
+
this.$logger.trace("Project Config Service -> setValue writing to legacy config.");
|
|
161
|
+
const NSConfig = hasNSConfig ? this.$fs.readJson(NSConfigPath) : {};
|
|
162
|
+
_.set(NSConfig, key, value);
|
|
163
|
+
this.$fs.writeJson(NSConfigPath, NSConfig);
|
|
164
|
+
return true;
|
|
206
165
|
}
|
|
207
166
|
catch (error) {
|
|
208
|
-
this.$logger.
|
|
167
|
+
this.$logger.trace(`Failed to setValue on legacy config. Error is ${error.message}`, error);
|
|
168
|
+
return false;
|
|
209
169
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
170
|
+
}
|
|
171
|
+
if (!this.$fs.exists(configFilePath)) {
|
|
172
|
+
this.writeDefaultConfig(this.projectHelper.projectDir);
|
|
173
|
+
}
|
|
174
|
+
if (!Array.isArray(value) && typeof value === "object") {
|
|
175
|
+
let allSuccessful = true;
|
|
176
|
+
for (const prop of this.flattenObjectToPaths(value)) {
|
|
177
|
+
if (!(await this.setValue(prop.key, prop.value))) {
|
|
178
|
+
allSuccessful = false;
|
|
218
179
|
}
|
|
219
|
-
return true;
|
|
220
180
|
}
|
|
221
|
-
|
|
181
|
+
return allSuccessful;
|
|
182
|
+
}
|
|
183
|
+
const configContent = this.$fs.readText(configFilePath);
|
|
184
|
+
try {
|
|
185
|
+
const transformer = new config_transformer_1.ConfigTransformer(configContent);
|
|
186
|
+
const newContent = transformer.setValue(key, value);
|
|
187
|
+
const prettierOptions = (await (0, prettier_1.resolveConfig)(this.projectHelper.projectDir, { editorconfig: true })) || {
|
|
188
|
+
semi: false,
|
|
189
|
+
singleQuote: true,
|
|
190
|
+
};
|
|
191
|
+
this.$logger.trace("updating config, prettier options: ", prettierOptions);
|
|
192
|
+
this.$fs.writeFile(configFilePath, await (0, prettier_1.format)(newContent, {
|
|
193
|
+
...prettierOptions,
|
|
194
|
+
parser: "typescript",
|
|
195
|
+
// note: we don't use plugins here, since we are only formatting ts files, and they are supported by default
|
|
196
|
+
// and this also causes issues with certain plugins, like prettier-plugin-tailwindcss.
|
|
197
|
+
plugins: [],
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
this.$logger.error(`Failed to update config.` + error);
|
|
202
|
+
}
|
|
203
|
+
finally {
|
|
204
|
+
// verify config is updated correctly
|
|
205
|
+
if (!Array.isArray(this.getValue(key)) && this.getValue(key) !== value) {
|
|
206
|
+
this.$logger.error(`${os_1.EOL}Failed to update ${hasTSConfig ? constants_1.CONFIG_FILE_NAME_TS : constants_1.CONFIG_FILE_NAME_JS}.${os_1.EOL}`);
|
|
207
|
+
this.$logger.printMarkdown(`Please manually update \`${hasTSConfig ? constants_1.CONFIG_FILE_NAME_TS : constants_1.CONFIG_FILE_NAME_JS}\` and set \`${key}\` to \`${value}\`.${os_1.EOL}`);
|
|
208
|
+
// restore original content
|
|
209
|
+
this.$fs.writeFile(configFilePath, configContent);
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
return true;
|
|
213
|
+
}
|
|
222
214
|
}
|
|
223
215
|
writeDefaultConfig(projectDir, appId) {
|
|
224
216
|
const TSConfigPath = path.resolve(projectDir, constants_1.CONFIG_FILE_NAME_TS);
|
|
@@ -291,35 +283,33 @@ export default {
|
|
|
291
283
|
return _.defaultsDeep({}, ...additionalData, NSConfig);
|
|
292
284
|
// return Object.assign({}, ...additionalData, NSConfig);
|
|
293
285
|
}
|
|
294
|
-
writeLegacyNSConfigIfNeeded(projectDir, runtimePackage) {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
this.$logger.printMarkdown(`
|
|
286
|
+
async writeLegacyNSConfigIfNeeded(projectDir, runtimePackage) {
|
|
287
|
+
const { usingNSConfig } = this.detectProjectConfigs(projectDir);
|
|
288
|
+
if (usingNSConfig) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (runtimePackage.version &&
|
|
292
|
+
semver.gte(semver.coerce(runtimePackage.version), "7.0.0-rc.5")) {
|
|
293
|
+
// runtimes >= 7.0.0-rc.5 support passing appPath and appResourcesPath through gradle project flags
|
|
294
|
+
// so writing an nsconfig is not necessary.
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
const runtimePackageDisplay = `${runtimePackage.name}${runtimePackage.version ? " v" + runtimePackage.version : ""}`;
|
|
298
|
+
this.$logger.info();
|
|
299
|
+
this.$logger.printMarkdown(`
|
|
309
300
|
Using __${runtimePackageDisplay}__ which requires \`nsconfig.json\` to be present.
|
|
310
301
|
Writing \`nsconfig.json\` based on the values set in \`${constants_1.CONFIG_FILE_NAME_DISPLAY}\`.
|
|
311
302
|
You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as necessary.`);
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
});
|
|
320
|
-
// mark the file for cleanup after the CLI exits
|
|
321
|
-
yield this.$cleanupService.addCleanupDeleteAction(nsConfigPath);
|
|
303
|
+
const nsConfigPath = path.join(projectDir || this.projectHelper.projectDir, "nsconfig.json");
|
|
304
|
+
this.$fs.writeJson(nsConfigPath, {
|
|
305
|
+
_info1: `Auto Generated for backwards compatibility with the currently used runtime.`,
|
|
306
|
+
_info2: `Do not edit this file manually, as any changes will be ignored.`,
|
|
307
|
+
_info3: `Config changes should be done in ${constants_1.CONFIG_FILE_NAME_DISPLAY} instead.`,
|
|
308
|
+
appPath: this.getValue("appPath"),
|
|
309
|
+
appResourcesPath: this.getValue("appResourcesPath"),
|
|
322
310
|
});
|
|
311
|
+
// mark the file for cleanup after the CLI exits
|
|
312
|
+
await this.$cleanupService.addCleanupDeleteAction(nsConfigPath);
|
|
323
313
|
}
|
|
324
314
|
// todo: move into config manipulation
|
|
325
315
|
flattenObjectToPaths(obj, basePath) {
|
|
@@ -347,6 +337,7 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as
|
|
|
347
337
|
}, []);
|
|
348
338
|
}
|
|
349
339
|
}
|
|
340
|
+
exports.ProjectConfigService = ProjectConfigService;
|
|
350
341
|
__decorate([
|
|
351
342
|
(0, decorators_1.cache)() // @cache should prevent the message being printed multiple times
|
|
352
343
|
], ProjectConfigService.prototype, "warnUsingLegacyNSConfig", null);
|
|
@@ -359,6 +350,5 @@ __decorate([
|
|
|
359
350
|
__decorate([
|
|
360
351
|
(0, decorators_1.exported)("projectConfigService")
|
|
361
352
|
], ProjectConfigService.prototype, "setValue", null);
|
|
362
|
-
exports.ProjectConfigService = ProjectConfigService;
|
|
363
353
|
yok_1.injector.register("projectConfigService", ProjectConfigService);
|
|
364
354
|
//# sourceMappingURL=project-config-service.js.map
|
|
@@ -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.ProjectDataService = void 0;
|
|
19
10
|
const path = require("path");
|
|
@@ -90,73 +81,67 @@ class ProjectDataService {
|
|
|
90
81
|
this.projectDataCache[projectDir].initializeProjectDataFromContent(packageJsonContent, projectDir);
|
|
91
82
|
return this.projectDataCache[projectDir];
|
|
92
83
|
}
|
|
93
|
-
getAssetsStructure(opts) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
};
|
|
103
|
-
});
|
|
84
|
+
async getAssetsStructure(opts) {
|
|
85
|
+
const iOSAssetStructure = await this.getIOSAssetsStructure(opts);
|
|
86
|
+
const androidAssetStructure = await this.getAndroidAssetsStructure(opts);
|
|
87
|
+
this.$logger.trace("iOS Assets structure:", JSON.stringify(iOSAssetStructure, null, 2));
|
|
88
|
+
this.$logger.trace("Android Assets structure:", JSON.stringify(androidAssetStructure, null, 2));
|
|
89
|
+
return {
|
|
90
|
+
ios: iOSAssetStructure,
|
|
91
|
+
android: androidAssetStructure,
|
|
92
|
+
};
|
|
104
93
|
}
|
|
105
|
-
getIOSAssetsStructure(opts) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
};
|
|
124
|
-
});
|
|
94
|
+
async getIOSAssetsStructure(opts) {
|
|
95
|
+
const projectDir = opts.projectDir;
|
|
96
|
+
const projectData = this.getProjectData(projectDir);
|
|
97
|
+
const basePath = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants_1.AssetConstants.iOSAssetsDirName);
|
|
98
|
+
const pathToIcons = path.join(basePath, constants_1.AssetConstants.iOSIconsDirName);
|
|
99
|
+
const icons = await this.getIOSAssetSubGroup(pathToIcons);
|
|
100
|
+
const pathToSplashBackgrounds = path.join(basePath, constants_1.AssetConstants.iOSSplashBackgroundsDirName);
|
|
101
|
+
const splashBackgrounds = await this.getIOSAssetSubGroup(pathToSplashBackgrounds);
|
|
102
|
+
const pathToSplashCenterImages = path.join(basePath, constants_1.AssetConstants.iOSSplashCenterImagesDirName);
|
|
103
|
+
const splashCenterImages = await this.getIOSAssetSubGroup(pathToSplashCenterImages);
|
|
104
|
+
const pathToSplashImages = path.join(basePath, constants_1.AssetConstants.iOSSplashImagesDirName);
|
|
105
|
+
const splashImages = await this.getIOSAssetSubGroup(pathToSplashImages);
|
|
106
|
+
return {
|
|
107
|
+
icons,
|
|
108
|
+
splashBackgrounds,
|
|
109
|
+
splashCenterImages,
|
|
110
|
+
splashImages,
|
|
111
|
+
};
|
|
125
112
|
}
|
|
126
113
|
removeNSConfigProperty(projectDir, propertyName) {
|
|
127
114
|
this.$logger.trace(`Removing "${propertyName}" property from nsconfig.`);
|
|
128
115
|
this.updateNsConfigValue(projectDir, null, [propertyName]);
|
|
129
116
|
this.$logger.trace(`"${propertyName}" property successfully removed.`);
|
|
130
117
|
}
|
|
131
|
-
getAndroidAssetsStructure(opts) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
};
|
|
159
|
-
});
|
|
118
|
+
async getAndroidAssetsStructure(opts) {
|
|
119
|
+
// TODO: Use image-size package to get the width and height of an image.
|
|
120
|
+
// TODO: Parse the splash_screen.xml in nodpi directory and get from it the names of the background and center image.
|
|
121
|
+
// TODO: Parse the AndroidManifest.xml to get the name of the icon.
|
|
122
|
+
// This way we'll not use the image-definitions.json and the method will return the real android structure.
|
|
123
|
+
const projectDir = opts.projectDir;
|
|
124
|
+
const projectData = this.getProjectData(projectDir);
|
|
125
|
+
const pathToAndroidDir = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.Android);
|
|
126
|
+
const hasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.appResourcesDirectoryPath);
|
|
127
|
+
const basePath = hasMigrated
|
|
128
|
+
? path.join(pathToAndroidDir, constants_1.SRC_DIR, constants_1.MAIN_DIR, constants_1.RESOURCES_DIR)
|
|
129
|
+
: pathToAndroidDir;
|
|
130
|
+
let useLegacy = false;
|
|
131
|
+
try {
|
|
132
|
+
const manifest = this.$fs.readText(path.resolve(basePath, "../AndroidManifest.xml"));
|
|
133
|
+
useLegacy = !manifest.includes(`android:icon="@mipmap/ic_launcher"`);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
// ignore
|
|
137
|
+
}
|
|
138
|
+
const content = this.getImageDefinitions()[useLegacy ? "android_legacy" : "android"];
|
|
139
|
+
return {
|
|
140
|
+
icons: this.getAndroidAssetSubGroup(content.icons, basePath),
|
|
141
|
+
splashBackgrounds: this.getAndroidAssetSubGroup(content.splashBackgrounds, basePath),
|
|
142
|
+
splashCenterImages: this.getAndroidAssetSubGroup(content.splashCenterImages, basePath),
|
|
143
|
+
splashImages: null,
|
|
144
|
+
};
|
|
160
145
|
}
|
|
161
146
|
getAppExecutableFiles(projectDir) {
|
|
162
147
|
const projectData = this.getProjectData(projectDir);
|
|
@@ -223,70 +208,68 @@ class ProjectDataService {
|
|
|
223
208
|
const imageDefinitions = this.$fs.readJson(pathToImageDefinitions);
|
|
224
209
|
return imageDefinitions;
|
|
225
210
|
}
|
|
226
|
-
getIOSAssetSubGroup(dirPath) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
image.height = +height;
|
|
249
|
-
}
|
|
211
|
+
async getIOSAssetSubGroup(dirPath) {
|
|
212
|
+
const pathToContentJson = path.join(dirPath, constants_1.AssetConstants.iOSResourcesFileName);
|
|
213
|
+
const content = (this.$fs.exists(pathToContentJson) &&
|
|
214
|
+
this.$fs.readJson(pathToContentJson)) || { images: [] };
|
|
215
|
+
const finalContent = { images: [] };
|
|
216
|
+
const imageDefinitions = this.getImageDefinitions().ios;
|
|
217
|
+
_.each(content && content.images, (image) => {
|
|
218
|
+
let foundMatchingDefinition = false;
|
|
219
|
+
// In some cases the image may not be available, it will just be described.
|
|
220
|
+
// When this happens, the filename will be empty.
|
|
221
|
+
// So we'll keep the path empty as well.
|
|
222
|
+
if (image.filename) {
|
|
223
|
+
image.path = path.join(dirPath, image.filename);
|
|
224
|
+
}
|
|
225
|
+
if (image.size) {
|
|
226
|
+
// size is basically <width>x<height>
|
|
227
|
+
const [width, height] = image.size
|
|
228
|
+
.toString()
|
|
229
|
+
.split(constants_1.AssetConstants.sizeDelimiter);
|
|
230
|
+
if (width && height) {
|
|
231
|
+
image.width = +width;
|
|
232
|
+
image.height = +height;
|
|
250
233
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
image.resizeOperation =
|
|
265
|
-
image.resizeOperation || assetItem.resizeOperation;
|
|
266
|
-
image.overlayImageScale =
|
|
267
|
-
image.overlayImageScale || assetItem.overlayImageScale;
|
|
268
|
-
image.scale = image.scale || assetItem.scale;
|
|
269
|
-
image.rgba = assetItem.rgba;
|
|
270
|
-
finalContent.images.push(image);
|
|
271
|
-
// break each
|
|
272
|
-
return false;
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
if (!foundMatchingDefinition) {
|
|
276
|
-
if (image.height && image.width) {
|
|
277
|
-
this.$logger.trace("Missing data for image", image, " in CLI's resource file, but we will try to generate images based on the size from Contents.json");
|
|
278
|
-
finalContent.images.push(image);
|
|
279
|
-
}
|
|
280
|
-
else if (image.filename) {
|
|
281
|
-
this.$logger.warn(`Didn't find a matching image definition for file ${path.join(path.basename(dirPath), image.filename)}. This file will be skipped from resources generation.`);
|
|
282
|
-
}
|
|
283
|
-
else {
|
|
284
|
-
this.$logger.trace(`Unable to detect data for image generation of image`, image);
|
|
234
|
+
}
|
|
235
|
+
// Find the image size based on the hardcoded values in the image-definitions.json
|
|
236
|
+
_.each(imageDefinitions, (assetSubGroup) => {
|
|
237
|
+
const assetItem = _.find(assetSubGroup, (assetElement) => assetElement.filename === image.filename &&
|
|
238
|
+
path.basename(assetElement.directory) === path.basename(dirPath));
|
|
239
|
+
if (assetItem) {
|
|
240
|
+
foundMatchingDefinition = true;
|
|
241
|
+
if (!image.width || !image.height) {
|
|
242
|
+
image.width = assetItem.width;
|
|
243
|
+
image.height = assetItem.height;
|
|
244
|
+
image.size =
|
|
245
|
+
image.size ||
|
|
246
|
+
`${assetItem.width}${constants_1.AssetConstants.sizeDelimiter}${assetItem.height}`;
|
|
285
247
|
}
|
|
248
|
+
image.resizeOperation =
|
|
249
|
+
image.resizeOperation || assetItem.resizeOperation;
|
|
250
|
+
image.overlayImageScale =
|
|
251
|
+
image.overlayImageScale || assetItem.overlayImageScale;
|
|
252
|
+
image.scale = image.scale || assetItem.scale;
|
|
253
|
+
image.rgba = assetItem.rgba;
|
|
254
|
+
finalContent.images.push(image);
|
|
255
|
+
// break each
|
|
256
|
+
return false;
|
|
286
257
|
}
|
|
287
258
|
});
|
|
288
|
-
|
|
259
|
+
if (!foundMatchingDefinition) {
|
|
260
|
+
if (image.height && image.width) {
|
|
261
|
+
this.$logger.trace("Missing data for image", image, " in CLI's resource file, but we will try to generate images based on the size from Contents.json");
|
|
262
|
+
finalContent.images.push(image);
|
|
263
|
+
}
|
|
264
|
+
else if (image.filename) {
|
|
265
|
+
this.$logger.warn(`Didn't find a matching image definition for file ${path.join(path.basename(dirPath), image.filename)}. This file will be skipped from resources generation.`);
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
this.$logger.trace(`Unable to detect data for image generation of image`, image);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
289
271
|
});
|
|
272
|
+
return finalContent;
|
|
290
273
|
}
|
|
291
274
|
getAndroidAssetSubGroup(assetItems, basePath) {
|
|
292
275
|
const assetSubGroup = {
|
|
@@ -463,6 +446,7 @@ class ProjectDataService {
|
|
|
463
446
|
return JSON.stringify(config);
|
|
464
447
|
}
|
|
465
448
|
}
|
|
449
|
+
exports.ProjectDataService = ProjectDataService;
|
|
466
450
|
ProjectDataService.DEPENDENCIES_KEY_NAME = "dependencies";
|
|
467
451
|
__decorate([
|
|
468
452
|
(0, decorators_1.exported)("projectDataService")
|
|
@@ -497,6 +481,5 @@ __decorate([
|
|
|
497
481
|
__decorate([
|
|
498
482
|
(0, decorators_1.exported)("projectDataService")
|
|
499
483
|
], ProjectDataService.prototype, "getNsConfigDefaultContent", null);
|
|
500
|
-
exports.ProjectDataService = ProjectDataService;
|
|
501
484
|
yok_1.injector.register("projectDataService", ProjectDataService);
|
|
502
485
|
//# sourceMappingURL=project-data-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.ProjectNameService = void 0;
|
|
13
4
|
const helpers_1 = require("../common/helpers");
|
|
@@ -19,48 +10,42 @@ class ProjectNameService {
|
|
|
19
10
|
this.$logger = $logger;
|
|
20
11
|
this.$prompter = $prompter;
|
|
21
12
|
}
|
|
22
|
-
ensureValidName(projectName, validateOptions) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (!
|
|
32
|
-
|
|
33
|
-
this.$errors.fail("The project name does not start with letter and will fail to build for Android. If You want to create project with this name add --force to the create command.");
|
|
34
|
-
}
|
|
35
|
-
return yield this.promptForNewName("The project name does not start with letter and will fail to build for Android.", projectName, validateOptions);
|
|
13
|
+
async ensureValidName(projectName, validateOptions) {
|
|
14
|
+
if (validateOptions && validateOptions.force) {
|
|
15
|
+
return projectName;
|
|
16
|
+
}
|
|
17
|
+
if (!this.$projectNameValidator.validate(projectName)) {
|
|
18
|
+
return await this.promptForNewName("The project name is invalid.", projectName, validateOptions);
|
|
19
|
+
}
|
|
20
|
+
const userCanInteract = (0, helpers_1.isInteractive)();
|
|
21
|
+
if (!this.checkIfNameStartsWithLetter(projectName)) {
|
|
22
|
+
if (!userCanInteract) {
|
|
23
|
+
this.$errors.fail("The project name does not start with letter and will fail to build for Android. If You want to create project with this name add --force to the create command.");
|
|
36
24
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
return await this.promptForNewName("The project name does not start with letter and will fail to build for Android.", projectName, validateOptions);
|
|
26
|
+
}
|
|
27
|
+
if (projectName.toUpperCase() === "APP") {
|
|
28
|
+
if (!userCanInteract) {
|
|
29
|
+
this.$errors.fail("You cannot build applications named 'app' in Xcode. Consider creating a project with different name. If You want to create project with this name add --force to the create command.");
|
|
42
30
|
}
|
|
43
|
-
return projectName;
|
|
44
|
-
}
|
|
31
|
+
return await this.promptForNewName("You cannot build applications named 'app' in Xcode. Consider creating a project with different name.", projectName, validateOptions);
|
|
32
|
+
}
|
|
33
|
+
return projectName;
|
|
45
34
|
}
|
|
46
35
|
checkIfNameStartsWithLetter(projectName) {
|
|
47
36
|
const startsWithLetterExpression = /^[a-zA-Z]/;
|
|
48
37
|
return startsWithLetterExpression.test(projectName);
|
|
49
38
|
}
|
|
50
|
-
promptForNewName(warningMessage, projectName, validateOptions) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return yield this.ensureValidName(newProjectName, validateOptions);
|
|
57
|
-
});
|
|
39
|
+
async promptForNewName(warningMessage, projectName, validateOptions) {
|
|
40
|
+
if (await this.promptForForceNameConfirm(warningMessage)) {
|
|
41
|
+
return projectName;
|
|
42
|
+
}
|
|
43
|
+
const newProjectName = await this.$prompter.getString("Enter the new project name:");
|
|
44
|
+
return await this.ensureValidName(newProjectName, validateOptions);
|
|
58
45
|
}
|
|
59
|
-
promptForForceNameConfirm(warningMessage) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return yield this.$prompter.confirm("Do you want to create the project with this name?");
|
|
63
|
-
});
|
|
46
|
+
async promptForForceNameConfirm(warningMessage) {
|
|
47
|
+
this.$logger.warn(warningMessage);
|
|
48
|
+
return await this.$prompter.confirm("Do you want to create the project with this name?");
|
|
64
49
|
}
|
|
65
50
|
}
|
|
66
51
|
exports.ProjectNameService = ProjectNameService;
|