@akylas/nativescript-cli 8.8.2 → 8.8.3
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/lib/android-tools-info.js +9 -20
- package/lib/base-package-manager.js +47 -64
- package/lib/bun-package-manager.js +65 -88
- package/lib/color.js +2 -2
- 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 +55 -68
- package/lib/commands/build.js +57 -86
- package/lib/commands/clean.js +161 -176
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +51 -70
- package/lib/commands/create-project.js +210 -229
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +33 -52
- 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 +17 -26
- 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 +34 -39
- package/lib/commands/plugin/create-plugin.js +110 -133
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +20 -33
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +20 -33
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +49 -62
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +13 -26
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +123 -134
- package/lib/commands/test.js +66 -89
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +22 -35
- package/lib/commands/update.js +30 -43
- 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 +27 -40
- package/lib/common/commands/autocompletion.js +39 -56
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +22 -33
- 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 +23 -34
- package/lib/common/commands/device/put-file.js +22 -33
- 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 +23 -38
- package/lib/common/commands/proxy/proxy-base.js +8 -19
- 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 +79 -96
- package/lib/common/errors.js +89 -104
- package/lib/common/file-system.js +106 -127
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +37 -50
- package/lib/common/http-client.js +93 -108
- 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 +1 -1
- package/lib/common/mobile/android/android-application-manager.js +121 -142
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +87 -112
- package/lib/common/mobile/android/android-device-file-system.js +98 -131
- package/lib/common/mobile/android/android-device-hash-service.js +50 -75
- package/lib/common/mobile/android/android-device.js +74 -91
- 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 +76 -97
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
- package/lib/common/mobile/android/logcat-helper.js +108 -127
- package/lib/common/mobile/application-manager-base.js +84 -107
- 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 +105 -142
- 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 +63 -92
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
- 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 +43 -62
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
- package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +385 -436
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
- 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/plist-parser.js +2 -2
- package/lib/common/prompter.js +90 -105
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +39 -52
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +146 -169
- package/lib/common/services/help-service.js +132 -157
- package/lib/common/services/hooks-service.js +93 -108
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +52 -71
- 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 +4 -15
- package/lib/common/services/net-service.js +90 -107
- 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 +23 -36
- package/lib/config.js +7 -58
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +107 -128
- package/lib/controllers/deploy-controller.js +17 -22
- package/lib/controllers/migrate-controller.js +722 -795
- package/lib/controllers/platform-controller.js +72 -87
- package/lib/controllers/prepare-controller.js +266 -299
- package/lib/controllers/run-controller.js +392 -406
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +94 -119
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
- package/lib/definitions/livesync.d.ts +1 -1
- 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 +149 -164
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +24 -39
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +45 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +137 -152
- 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 +99 -120
- package/lib/key-commands/index.js +161 -211
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +81 -104
- package/lib/options.js +3 -12
- package/lib/package-installation-manager.js +130 -165
- package/lib/package-manager.js +63 -86
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +59 -78
- 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 +161 -198
- 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 +9 -20
- package/lib/services/android/gradle-build-service.js +34 -47
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +90 -117
- package/lib/services/android-plugin-build-service.js +230 -256
- package/lib/services/android-project-service.js +163 -199
- package/lib/services/android-resources-migration-service.js +51 -64
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
- package/lib/services/assets-generation/assets-generation-service.js +98 -115
- 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 +115 -136
- package/lib/services/device/device-install-app-service.js +73 -90
- package/lib/services/doctor-service.js +99 -118
- package/lib/services/extensibility-service.js +81 -100
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +37 -50
- package/lib/services/ios/export-options-plist-service.js +38 -51
- package/lib/services/ios/ios-signing-service.js +161 -180
- package/lib/services/ios/spm-service.js +40 -53
- 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 +50 -69
- package/lib/services/ios-debugger-port-service.js +23 -36
- 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 +405 -460
- package/lib/services/ios-provision-service.js +108 -129
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +38 -53
- 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 +120 -149
- package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +89 -112
- package/lib/services/livesync/device-livesync-service-base.js +15 -28
- package/lib/services/livesync/ios-device-livesync-service.js +114 -143
- package/lib/services/livesync/ios-livesync-service.js +42 -58
- package/lib/services/livesync/platform-livesync-service-base.js +94 -119
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +30 -41
- package/lib/services/marking-mode-service.js +15 -28
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +49 -64
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +50 -71
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +49 -62
- package/lib/services/platform-environment-requirements.js +26 -37
- package/lib/services/plugins-service.js +122 -147
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +124 -141
- package/lib/services/project-cleanup-service.js +64 -77
- package/lib/services/project-config-service.js +71 -80
- package/lib/services/project-data-service.js +101 -118
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +84 -103
- 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 +13 -24
- package/lib/services/test-execution-service.js +59 -72
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +119 -138
- package/lib/services/webpack/webpack-compiler-service.js +211 -231
- 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 +60 -79
- package/package.json +57 -55
- package/vendor/aab-tool/bundletool.jar +0 -0
- package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
- package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
- package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/linux/adb +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
- package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.ProjectConfigService = void 0;
|
|
19
10
|
const constants = require("../constants");
|
|
@@ -156,60 +147,62 @@ export default {
|
|
|
156
147
|
getValue(key, defaultValue) {
|
|
157
148
|
return _.get(this.readConfig(), key, defaultValue);
|
|
158
149
|
}
|
|
159
|
-
setValue(key, value) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
(usingNSConfig && !this.forceUsingNewConfig)) {
|
|
165
|
-
try {
|
|
166
|
-
this.$logger.trace("Project Config Service -> setValue writing to legacy config.");
|
|
167
|
-
const NSConfig = hasNSConfig ? this.$fs.readJson(NSConfigPath) : {};
|
|
168
|
-
_.set(NSConfig, key, value);
|
|
169
|
-
this.$fs.writeJson(NSConfigPath, NSConfig);
|
|
170
|
-
return true;
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.$logger.trace(`Failed to setValue on legacy config. Error is ${error.message}`, error);
|
|
174
|
-
return false;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
if (!this.$fs.exists(configFilePath)) {
|
|
178
|
-
this.writeDefaultConfig(this.projectHelper.projectDir);
|
|
179
|
-
}
|
|
180
|
-
if (typeof value === "object") {
|
|
181
|
-
let allSuccessful = true;
|
|
182
|
-
for (const prop of this.flattenObjectToPaths(value)) {
|
|
183
|
-
if (!(yield this.setValue(prop.key, prop.value))) {
|
|
184
|
-
allSuccessful = false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
return allSuccessful;
|
|
188
|
-
}
|
|
189
|
-
const configContent = this.$fs.readText(configFilePath);
|
|
150
|
+
async setValue(key, value) {
|
|
151
|
+
const { hasTSConfig, hasNSConfig, TSConfigPath, JSConfigPath, usingNSConfig, NSConfigPath, } = this.detectProjectConfigs();
|
|
152
|
+
const configFilePath = TSConfigPath || JSConfigPath;
|
|
153
|
+
if (this.forceUsingLegacyConfig ||
|
|
154
|
+
(usingNSConfig && !this.forceUsingNewConfig)) {
|
|
190
155
|
try {
|
|
191
|
-
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
};
|
|
197
|
-
this.$logger.trace("updating config, prettier options: ", prettierOptions);
|
|
198
|
-
this.$fs.writeFile(configFilePath, (0, prettier_1.format)(newContent, Object.assign(Object.assign({}, prettierOptions), { parser: "typescript", plugins: [] })));
|
|
156
|
+
this.$logger.trace("Project Config Service -> setValue writing to legacy config.");
|
|
157
|
+
const NSConfig = hasNSConfig ? this.$fs.readJson(NSConfigPath) : {};
|
|
158
|
+
_.set(NSConfig, key, value);
|
|
159
|
+
this.$fs.writeJson(NSConfigPath, NSConfig);
|
|
160
|
+
return true;
|
|
199
161
|
}
|
|
200
162
|
catch (error) {
|
|
201
|
-
this.$logger.
|
|
163
|
+
this.$logger.trace(`Failed to setValue on legacy config. Error is ${error.message}`, error);
|
|
164
|
+
return false;
|
|
202
165
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
166
|
+
}
|
|
167
|
+
if (!this.$fs.exists(configFilePath)) {
|
|
168
|
+
this.writeDefaultConfig(this.projectHelper.projectDir);
|
|
169
|
+
}
|
|
170
|
+
if (typeof value === "object") {
|
|
171
|
+
let allSuccessful = true;
|
|
172
|
+
for (const prop of this.flattenObjectToPaths(value)) {
|
|
173
|
+
if (!(await this.setValue(prop.key, prop.value))) {
|
|
174
|
+
allSuccessful = false;
|
|
209
175
|
}
|
|
210
|
-
return true;
|
|
211
176
|
}
|
|
212
|
-
|
|
177
|
+
return allSuccessful;
|
|
178
|
+
}
|
|
179
|
+
const configContent = this.$fs.readText(configFilePath);
|
|
180
|
+
try {
|
|
181
|
+
const transformer = new config_transformer_1.ConfigTransformer(configContent);
|
|
182
|
+
const newContent = transformer.setValue(key, value);
|
|
183
|
+
const prettierOptions = (await (0, prettier_1.resolveConfig)(this.projectHelper.projectDir, { editorconfig: true })) || {
|
|
184
|
+
semi: false,
|
|
185
|
+
singleQuote: true,
|
|
186
|
+
};
|
|
187
|
+
this.$logger.trace("updating config, prettier options: ", prettierOptions);
|
|
188
|
+
this.$fs.writeFile(configFilePath, await (0, prettier_1.format)(newContent, {
|
|
189
|
+
...prettierOptions,
|
|
190
|
+
parser: "typescript",
|
|
191
|
+
plugins: [],
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
this.$logger.error(`Failed to update config.` + error);
|
|
196
|
+
}
|
|
197
|
+
finally {
|
|
198
|
+
if (this.getValue(key) !== value) {
|
|
199
|
+
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}`);
|
|
200
|
+
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}`);
|
|
201
|
+
this.$fs.writeFile(configFilePath, configContent);
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
213
206
|
}
|
|
214
207
|
writeDefaultConfig(projectDir, appId) {
|
|
215
208
|
const TSConfigPath = path.resolve(projectDir, constants_1.CONFIG_FILE_NAME_TS);
|
|
@@ -276,32 +269,30 @@ export default {
|
|
|
276
269
|
}
|
|
277
270
|
return _.defaultsDeep({}, ...additionalData, NSConfig);
|
|
278
271
|
}
|
|
279
|
-
writeLegacyNSConfigIfNeeded(projectDir, runtimePackage) {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
this.$logger.printMarkdown(`
|
|
272
|
+
async writeLegacyNSConfigIfNeeded(projectDir, runtimePackage) {
|
|
273
|
+
const { usingNSConfig } = this.detectProjectConfigs(projectDir);
|
|
274
|
+
if (usingNSConfig) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
if (runtimePackage.version &&
|
|
278
|
+
semver.gte(semver.coerce(runtimePackage.version), "7.0.0-rc.5")) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const runtimePackageDisplay = `${runtimePackage.name}${runtimePackage.version ? " v" + runtimePackage.version : ""}`;
|
|
282
|
+
this.$logger.info();
|
|
283
|
+
this.$logger.printMarkdown(`
|
|
292
284
|
Using __${runtimePackageDisplay}__ which requires \`nsconfig.json\` to be present.
|
|
293
285
|
Writing \`nsconfig.json\` based on the values set in \`${constants_1.CONFIG_FILE_NAME_DISPLAY}\`.
|
|
294
286
|
You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as necessary.`);
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
});
|
|
303
|
-
yield this.$cleanupService.addCleanupDeleteAction(nsConfigPath);
|
|
287
|
+
const nsConfigPath = path.join(projectDir || this.projectHelper.projectDir, "nsconfig.json");
|
|
288
|
+
this.$fs.writeJson(nsConfigPath, {
|
|
289
|
+
_info1: `Auto Generated for backwards compatibility with the currently used runtime.`,
|
|
290
|
+
_info2: `Do not edit this file manually, as any changes will be ignored.`,
|
|
291
|
+
_info3: `Config changes should be done in ${constants_1.CONFIG_FILE_NAME_DISPLAY} instead.`,
|
|
292
|
+
appPath: this.getValue("appPath"),
|
|
293
|
+
appResourcesPath: this.getValue("appResourcesPath"),
|
|
304
294
|
});
|
|
295
|
+
await this.$cleanupService.addCleanupDeleteAction(nsConfigPath);
|
|
305
296
|
}
|
|
306
297
|
flattenObjectToPaths(obj, basePath) {
|
|
307
298
|
const toPath = (key) => [basePath, key].filter(Boolean).join(".");
|
|
@@ -319,6 +310,7 @@ You may add \`nsconfig.json\` to \`.gitignore\` as the CLI will regenerate it as
|
|
|
319
310
|
}, []);
|
|
320
311
|
}
|
|
321
312
|
}
|
|
313
|
+
exports.ProjectConfigService = ProjectConfigService;
|
|
322
314
|
__decorate([
|
|
323
315
|
(0, decorators_1.cache)()
|
|
324
316
|
], ProjectConfigService.prototype, "warnUsingLegacyNSConfig", null);
|
|
@@ -331,5 +323,4 @@ __decorate([
|
|
|
331
323
|
__decorate([
|
|
332
324
|
(0, decorators_1.exported)("projectConfigService")
|
|
333
325
|
], ProjectConfigService.prototype, "setValue", null);
|
|
334
|
-
exports.ProjectConfigService = ProjectConfigService;
|
|
335
326
|
yok_1.injector.register("projectConfigService", ProjectConfigService);
|
|
@@ -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");
|
|
@@ -87,68 +78,62 @@ class ProjectDataService {
|
|
|
87
78
|
this.projectDataCache[projectDir].initializeProjectDataFromContent(packageJsonContent, projectDir);
|
|
88
79
|
return this.projectDataCache[projectDir];
|
|
89
80
|
}
|
|
90
|
-
getAssetsStructure(opts) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
};
|
|
100
|
-
});
|
|
81
|
+
async getAssetsStructure(opts) {
|
|
82
|
+
const iOSAssetStructure = await this.getIOSAssetsStructure(opts);
|
|
83
|
+
const androidAssetStructure = await this.getAndroidAssetsStructure(opts);
|
|
84
|
+
this.$logger.trace("iOS Assets structure:", JSON.stringify(iOSAssetStructure, null, 2));
|
|
85
|
+
this.$logger.trace("Android Assets structure:", JSON.stringify(androidAssetStructure, null, 2));
|
|
86
|
+
return {
|
|
87
|
+
ios: iOSAssetStructure,
|
|
88
|
+
android: androidAssetStructure,
|
|
89
|
+
};
|
|
101
90
|
}
|
|
102
|
-
getIOSAssetsStructure(opts) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
};
|
|
121
|
-
});
|
|
91
|
+
async getIOSAssetsStructure(opts) {
|
|
92
|
+
const projectDir = opts.projectDir;
|
|
93
|
+
const projectData = this.getProjectData(projectDir);
|
|
94
|
+
const basePath = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants_1.AssetConstants.iOSAssetsDirName);
|
|
95
|
+
const pathToIcons = path.join(basePath, constants_1.AssetConstants.iOSIconsDirName);
|
|
96
|
+
const icons = await this.getIOSAssetSubGroup(pathToIcons);
|
|
97
|
+
const pathToSplashBackgrounds = path.join(basePath, constants_1.AssetConstants.iOSSplashBackgroundsDirName);
|
|
98
|
+
const splashBackgrounds = await this.getIOSAssetSubGroup(pathToSplashBackgrounds);
|
|
99
|
+
const pathToSplashCenterImages = path.join(basePath, constants_1.AssetConstants.iOSSplashCenterImagesDirName);
|
|
100
|
+
const splashCenterImages = await this.getIOSAssetSubGroup(pathToSplashCenterImages);
|
|
101
|
+
const pathToSplashImages = path.join(basePath, constants_1.AssetConstants.iOSSplashImagesDirName);
|
|
102
|
+
const splashImages = await this.getIOSAssetSubGroup(pathToSplashImages);
|
|
103
|
+
return {
|
|
104
|
+
icons,
|
|
105
|
+
splashBackgrounds,
|
|
106
|
+
splashCenterImages,
|
|
107
|
+
splashImages,
|
|
108
|
+
};
|
|
122
109
|
}
|
|
123
110
|
removeNSConfigProperty(projectDir, propertyName) {
|
|
124
111
|
this.$logger.trace(`Removing "${propertyName}" property from nsconfig.`);
|
|
125
112
|
this.updateNsConfigValue(projectDir, null, [propertyName]);
|
|
126
113
|
this.$logger.trace(`"${propertyName}" property successfully removed.`);
|
|
127
114
|
}
|
|
128
|
-
getAndroidAssetsStructure(opts) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
};
|
|
151
|
-
});
|
|
115
|
+
async getAndroidAssetsStructure(opts) {
|
|
116
|
+
const projectDir = opts.projectDir;
|
|
117
|
+
const projectData = this.getProjectData(projectDir);
|
|
118
|
+
const pathToAndroidDir = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.Android);
|
|
119
|
+
const hasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.appResourcesDirectoryPath);
|
|
120
|
+
const basePath = hasMigrated
|
|
121
|
+
? path.join(pathToAndroidDir, constants_1.SRC_DIR, constants_1.MAIN_DIR, constants_1.RESOURCES_DIR)
|
|
122
|
+
: pathToAndroidDir;
|
|
123
|
+
let useLegacy = false;
|
|
124
|
+
try {
|
|
125
|
+
const manifest = this.$fs.readText(path.resolve(basePath, "../AndroidManifest.xml"));
|
|
126
|
+
useLegacy = !manifest.includes(`android:icon="@mipmap/ic_launcher"`);
|
|
127
|
+
}
|
|
128
|
+
catch (err) {
|
|
129
|
+
}
|
|
130
|
+
const content = this.getImageDefinitions()[useLegacy ? "android_legacy" : "android"];
|
|
131
|
+
return {
|
|
132
|
+
icons: this.getAndroidAssetSubGroup(content.icons, basePath),
|
|
133
|
+
splashBackgrounds: this.getAndroidAssetSubGroup(content.splashBackgrounds, basePath),
|
|
134
|
+
splashCenterImages: this.getAndroidAssetSubGroup(content.splashCenterImages, basePath),
|
|
135
|
+
splashImages: null,
|
|
136
|
+
};
|
|
152
137
|
}
|
|
153
138
|
getAppExecutableFiles(projectDir) {
|
|
154
139
|
const projectData = this.getProjectData(projectDir);
|
|
@@ -210,64 +195,62 @@ class ProjectDataService {
|
|
|
210
195
|
const imageDefinitions = this.$fs.readJson(pathToImageDefinitions);
|
|
211
196
|
return imageDefinitions;
|
|
212
197
|
}
|
|
213
|
-
getIOSAssetSubGroup(dirPath) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
image.height = +height;
|
|
232
|
-
}
|
|
198
|
+
async getIOSAssetSubGroup(dirPath) {
|
|
199
|
+
const pathToContentJson = path.join(dirPath, constants_1.AssetConstants.iOSResourcesFileName);
|
|
200
|
+
const content = (this.$fs.exists(pathToContentJson) &&
|
|
201
|
+
this.$fs.readJson(pathToContentJson)) || { images: [] };
|
|
202
|
+
const finalContent = { images: [] };
|
|
203
|
+
const imageDefinitions = this.getImageDefinitions().ios;
|
|
204
|
+
_.each(content && content.images, (image) => {
|
|
205
|
+
let foundMatchingDefinition = false;
|
|
206
|
+
if (image.filename) {
|
|
207
|
+
image.path = path.join(dirPath, image.filename);
|
|
208
|
+
}
|
|
209
|
+
if (image.size) {
|
|
210
|
+
const [width, height] = image.size
|
|
211
|
+
.toString()
|
|
212
|
+
.split(constants_1.AssetConstants.sizeDelimiter);
|
|
213
|
+
if (width && height) {
|
|
214
|
+
image.width = +width;
|
|
215
|
+
image.height = +height;
|
|
233
216
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
image.resizeOperation =
|
|
247
|
-
image.resizeOperation || assetItem.resizeOperation;
|
|
248
|
-
image.overlayImageScale =
|
|
249
|
-
image.overlayImageScale || assetItem.overlayImageScale;
|
|
250
|
-
image.scale = image.scale || assetItem.scale;
|
|
251
|
-
image.rgba = assetItem.rgba;
|
|
252
|
-
finalContent.images.push(image);
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
});
|
|
256
|
-
if (!foundMatchingDefinition) {
|
|
257
|
-
if (image.height && image.width) {
|
|
258
|
-
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");
|
|
259
|
-
finalContent.images.push(image);
|
|
260
|
-
}
|
|
261
|
-
else if (image.filename) {
|
|
262
|
-
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.`);
|
|
263
|
-
}
|
|
264
|
-
else {
|
|
265
|
-
this.$logger.trace(`Unable to detect data for image generation of image`, image);
|
|
217
|
+
}
|
|
218
|
+
_.each(imageDefinitions, (assetSubGroup) => {
|
|
219
|
+
const assetItem = _.find(assetSubGroup, (assetElement) => assetElement.filename === image.filename &&
|
|
220
|
+
path.basename(assetElement.directory) === path.basename(dirPath));
|
|
221
|
+
if (assetItem) {
|
|
222
|
+
foundMatchingDefinition = true;
|
|
223
|
+
if (!image.width || !image.height) {
|
|
224
|
+
image.width = assetItem.width;
|
|
225
|
+
image.height = assetItem.height;
|
|
226
|
+
image.size =
|
|
227
|
+
image.size ||
|
|
228
|
+
`${assetItem.width}${constants_1.AssetConstants.sizeDelimiter}${assetItem.height}`;
|
|
266
229
|
}
|
|
230
|
+
image.resizeOperation =
|
|
231
|
+
image.resizeOperation || assetItem.resizeOperation;
|
|
232
|
+
image.overlayImageScale =
|
|
233
|
+
image.overlayImageScale || assetItem.overlayImageScale;
|
|
234
|
+
image.scale = image.scale || assetItem.scale;
|
|
235
|
+
image.rgba = assetItem.rgba;
|
|
236
|
+
finalContent.images.push(image);
|
|
237
|
+
return false;
|
|
267
238
|
}
|
|
268
239
|
});
|
|
269
|
-
|
|
240
|
+
if (!foundMatchingDefinition) {
|
|
241
|
+
if (image.height && image.width) {
|
|
242
|
+
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");
|
|
243
|
+
finalContent.images.push(image);
|
|
244
|
+
}
|
|
245
|
+
else if (image.filename) {
|
|
246
|
+
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.`);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
this.$logger.trace(`Unable to detect data for image generation of image`, image);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
270
252
|
});
|
|
253
|
+
return finalContent;
|
|
271
254
|
}
|
|
272
255
|
getAndroidAssetSubGroup(assetItems, basePath) {
|
|
273
256
|
const assetSubGroup = {
|
|
@@ -436,6 +419,7 @@ class ProjectDataService {
|
|
|
436
419
|
return JSON.stringify(config);
|
|
437
420
|
}
|
|
438
421
|
}
|
|
422
|
+
exports.ProjectDataService = ProjectDataService;
|
|
439
423
|
ProjectDataService.DEPENDENCIES_KEY_NAME = "dependencies";
|
|
440
424
|
__decorate([
|
|
441
425
|
(0, decorators_1.exported)("projectDataService")
|
|
@@ -468,5 +452,4 @@ __decorate([
|
|
|
468
452
|
__decorate([
|
|
469
453
|
(0, decorators_1.exported)("projectDataService")
|
|
470
454
|
], ProjectDataService.prototype, "getNsConfigDefaultContent", null);
|
|
471
|
-
exports.ProjectDataService = ProjectDataService;
|
|
472
455
|
yok_1.injector.register("projectDataService", ProjectDataService);
|
|
@@ -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;
|