@akylas/nativescript-cli 8.8.7 → 8.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/test-deps-versions-generated.json +16 -0
- package/docs/build-jekyll-md.sh +1 -1
- package/docs/man_pages/config/config-get.md +36 -0
- package/docs/man_pages/config/config-set.md +40 -0
- package/docs/man_pages/config/config.md +39 -0
- 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/project/hooks/hooks.md +35 -0
- package/docs/man_pages/start.md +2 -1
- package/lib/.d.ts +9 -3
- package/lib/bootstrap.js +4 -1
- package/lib/bun-package-manager.js +1 -1
- package/lib/color.js +38 -7
- package/lib/commands/build.js +18 -2
- package/lib/commands/clean.js +1 -2
- package/lib/commands/config.js +1 -1
- package/lib/commands/embedding/embed.js +1 -1
- package/lib/commands/generate.js +2 -41
- package/lib/commands/hooks/common.js +79 -0
- package/lib/commands/hooks/hooks-lock.js +100 -0
- package/lib/commands/hooks/hooks.js +71 -0
- package/lib/commands/post-install.js +2 -2
- package/lib/commands/typings.js +29 -18
- package/lib/commands/widget.js +799 -0
- package/lib/common/definitions/extensibility.d.ts +2 -2
- package/lib/common/definitions/mobile.d.ts +72 -72
- package/lib/common/file-system.js +1 -2
- package/lib/common/header.js +3 -3
- package/lib/common/logger/layouts/cli-layout.js +1 -1
- package/lib/common/logger/logger.js +5 -5
- package/lib/common/mobile/android/android-device.js +1 -1
- package/lib/common/mobile/android/android-emulator-services.js +9 -7
- package/lib/common/mobile/device-log-provider.js +3 -4
- package/lib/common/mobile/emulator-helper.js +1 -0
- package/lib/common/mobile/mobile-core/devices-service.js +2 -1
- package/lib/common/opener.js +2 -2
- package/lib/common/project-helper.js +15 -2
- package/lib/common/services/hooks-service.js +23 -6
- package/lib/common/verify-node-version.js +1 -1
- package/lib/constants.js +8 -5
- package/lib/controllers/migrate-controller.js +11 -12
- package/lib/controllers/prepare-controller.js +11 -13
- package/lib/controllers/run-controller.js +1 -1
- package/lib/declarations.d.ts +5 -0
- package/lib/definitions/hooks.d.ts +1 -0
- package/lib/definitions/ios.d.ts +11 -1
- package/lib/definitions/nativescript-dev-xcode.d.ts +25 -1
- package/lib/definitions/project.d.ts +102 -25
- package/lib/definitions/temp-service.d.ts +6 -2
- package/lib/helpers/key-command-helper.js +2 -1
- package/lib/nativescript-cli.js +28 -0
- package/lib/node-package-manager.js +1 -1
- package/lib/options.js +4 -0
- package/lib/project-data.js +10 -4
- package/lib/services/analytics/analytics-broker-process.js +1 -1
- package/lib/services/analytics/analytics-service.js +2 -1
- package/lib/services/analytics-settings-service.js +2 -1
- package/lib/services/android/gradle-build-args-service.js +8 -4
- package/lib/services/android/gradle-build-service.js +4 -1
- package/lib/services/android-plugin-build-service.js +1 -1
- package/lib/services/android-project-service.js +12 -10
- package/lib/services/assets-generation/assets-generation-service.js +33 -15
- package/lib/services/{webpack/webpack-compiler-service.js → bundler/bundler-compiler-service.js} +258 -88
- package/lib/services/bundler/bundler.js +2 -0
- package/lib/services/extensibility-service.js +1 -1
- package/lib/services/ios/spm-service.js +22 -2
- package/lib/services/ios/xcodebuild-args-service.js +7 -5
- package/lib/services/ios-debugger-port-service.js +1 -1
- package/lib/services/ios-project-service.js +45 -15
- package/lib/services/ios-watch-app-service.js +540 -16
- package/lib/services/livesync/android-livesync-tool.js +4 -2
- package/lib/services/plugins-service.js +1 -0
- package/lib/services/project-changes-service.js +1 -1
- package/lib/services/project-config-service.js +12 -3
- package/lib/services/temp-service.js +16 -4
- package/lib/services/versions-service.js +2 -1
- package/lib/tools/config-manipulation/config-transformer.js +9 -0
- package/package.json +59 -66
- package/vendor/aab-tool/README.txt +1 -1
- package/vendor/aab-tool/bundletool.jar +0 -0
- package/vendor/gradle-app/app/build.gradle +365 -130
- package/vendor/gradle-app/app/gradle.properties +45 -0
- package/vendor/gradle-app/build.gradle +7 -7
- package/vendor/gradle-plugin/build.gradle +7 -6
- package/lib/services/webpack/webpack.d.ts +0 -227
|
@@ -37,14 +37,16 @@ class AndroidEmulatorServices {
|
|
|
37
37
|
async getRunningEmulatorName(emulatorId) {
|
|
38
38
|
let result = await this.$androidVirtualDeviceService.getRunningEmulatorName(emulatorId);
|
|
39
39
|
if (!result) {
|
|
40
|
-
result =
|
|
40
|
+
result =
|
|
41
|
+
await this.$androidGenymotionService.getRunningEmulatorName(emulatorId);
|
|
41
42
|
}
|
|
42
43
|
return result;
|
|
43
44
|
}
|
|
44
45
|
async getRunningEmulatorImageIdentifier(emulatorId) {
|
|
45
46
|
let result = await this.$androidVirtualDeviceService.getRunningEmulatorImageIdentifier(emulatorId);
|
|
46
47
|
if (!result) {
|
|
47
|
-
result =
|
|
48
|
+
result =
|
|
49
|
+
await this.$androidGenymotionService.getRunningEmulatorImageIdentifier(emulatorId);
|
|
48
50
|
}
|
|
49
51
|
return result;
|
|
50
52
|
}
|
|
@@ -116,13 +118,13 @@ class AndroidEmulatorServices {
|
|
|
116
118
|
let pathToEmulatorExecutable = null;
|
|
117
119
|
let startEmulatorArgs = null;
|
|
118
120
|
if (emulator.vendor === constants_1.AndroidVirtualDevice.AVD_VENDOR_NAME) {
|
|
119
|
-
pathToEmulatorExecutable =
|
|
120
|
-
.pathToEmulatorExecutable;
|
|
121
|
+
pathToEmulatorExecutable =
|
|
122
|
+
this.$androidVirtualDeviceService.pathToEmulatorExecutable;
|
|
121
123
|
startEmulatorArgs = this.$androidVirtualDeviceService.startEmulatorArgs(emulator.imageIdentifier);
|
|
122
124
|
}
|
|
123
125
|
else if (emulator.vendor === constants_1.AndroidVirtualDevice.GENYMOTION_VENDOR_NAME) {
|
|
124
|
-
pathToEmulatorExecutable =
|
|
125
|
-
.pathToEmulatorExecutable;
|
|
126
|
+
pathToEmulatorExecutable =
|
|
127
|
+
this.$androidGenymotionService.pathToEmulatorExecutable;
|
|
126
128
|
startEmulatorArgs = this.$androidGenymotionService.startEmulatorArgs(emulator.imageIdentifier);
|
|
127
129
|
}
|
|
128
130
|
this.$logger.info(`Starting Android emulator with image ${emulator.imageIdentifier}`);
|
|
@@ -146,7 +148,7 @@ class AndroidEmulatorServices {
|
|
|
146
148
|
}
|
|
147
149
|
const minVersion = semver.coerce(constants_1.AndroidVirtualDevice.MIN_ANDROID_VERSION);
|
|
148
150
|
const bestVersion = best && best.version && semver.coerce(best.version);
|
|
149
|
-
return bestVersion
|
|
151
|
+
return !bestVersion || semver.gte(bestVersion, minVersion) ? best : null;
|
|
150
152
|
}
|
|
151
153
|
async waitForEmulatorBootToComplete(emulator, endTimeEpoch, timeout) {
|
|
152
154
|
this.$logger.info("Waiting for emulator device initialization...", {
|
|
@@ -25,13 +25,12 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
25
25
|
};
|
|
26
26
|
this.deviceColorMap = new Map();
|
|
27
27
|
this.colorPool = [
|
|
28
|
-
"
|
|
29
|
-
"bgMagentaBright",
|
|
28
|
+
"bgGray",
|
|
30
29
|
"bgBlueBright",
|
|
31
30
|
"bgWhiteBright",
|
|
32
31
|
"bgCyanBright",
|
|
33
32
|
"bgYellowBright",
|
|
34
|
-
"
|
|
33
|
+
"bgMagentaBright",
|
|
35
34
|
];
|
|
36
35
|
this.colorPoolIndex = 0;
|
|
37
36
|
}
|
|
@@ -113,7 +112,7 @@ class DeviceLogProvider extends device_log_provider_base_1.DeviceLogProviderBase
|
|
|
113
112
|
.join("")
|
|
114
113
|
.trimEnd();
|
|
115
114
|
toLog.split("\n").forEach((actualLine) => {
|
|
116
|
-
this.printLine(color_1.color
|
|
115
|
+
this.printLine(color_1.color.styleText(this.getDeviceColor(deviceIdentifier), " "), this.consoleLevelColor[level](actualLine));
|
|
117
116
|
});
|
|
118
117
|
}
|
|
119
118
|
}
|
|
@@ -498,7 +498,8 @@ class DevicesService extends events_1.EventEmitter {
|
|
|
498
498
|
}
|
|
499
499
|
if (data.platform === this.$devicePlatformsConstants.visionOS &&
|
|
500
500
|
deviceInstances.length) {
|
|
501
|
-
const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform ===
|
|
501
|
+
const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform ===
|
|
502
|
+
this.$devicePlatformsConstants.visionOS);
|
|
502
503
|
if (!runningDeviceInstance) {
|
|
503
504
|
return this.startEmulatorCore(data);
|
|
504
505
|
}
|
package/lib/common/opener.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Opener = void 0;
|
|
4
|
-
const
|
|
4
|
+
const xopen = require("open");
|
|
5
5
|
const yok_1 = require("./yok");
|
|
6
6
|
class Opener {
|
|
7
7
|
open(target, appname) {
|
|
8
|
-
return (
|
|
8
|
+
return xopen(target, {
|
|
9
9
|
app: {
|
|
10
10
|
name: appname,
|
|
11
11
|
},
|
|
@@ -6,7 +6,8 @@ const _ = require("lodash");
|
|
|
6
6
|
const yok_1 = require("./yok");
|
|
7
7
|
const constants_1 = require("../constants");
|
|
8
8
|
class ProjectHelper {
|
|
9
|
-
constructor($logger, $fs, $staticConfig, $errors, $options) {
|
|
9
|
+
constructor($injector, $logger, $fs, $staticConfig, $errors, $options) {
|
|
10
|
+
this.$injector = $injector;
|
|
10
11
|
this.$logger = $logger;
|
|
11
12
|
this.$fs = $fs;
|
|
12
13
|
this.$staticConfig = $staticConfig;
|
|
@@ -57,7 +58,8 @@ class ProjectHelper {
|
|
|
57
58
|
isProjectFileCorrect(projectFilePath) {
|
|
58
59
|
try {
|
|
59
60
|
const fileContent = this.$fs.readText(projectFilePath);
|
|
60
|
-
|
|
61
|
+
const packageName = this.getProjectData(path.dirname(projectFilePath)).nsConfig.corePackageName || constants_1.SCOPED_TNS_CORE_MODULES;
|
|
62
|
+
return (fileContent.includes(packageName) ||
|
|
61
63
|
fileContent.includes(constants_1.TNS_CORE_MODULES_NAME));
|
|
62
64
|
}
|
|
63
65
|
catch (err) {
|
|
@@ -65,6 +67,17 @@ class ProjectHelper {
|
|
|
65
67
|
}
|
|
66
68
|
return false;
|
|
67
69
|
}
|
|
70
|
+
getProjectData(projectFilePath) {
|
|
71
|
+
try {
|
|
72
|
+
const projectData = this.$injector.resolve("projectData");
|
|
73
|
+
projectData.initializeProjectData(projectFilePath);
|
|
74
|
+
return projectData;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(error);
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
68
81
|
}
|
|
69
82
|
exports.ProjectHelper = ProjectHelper;
|
|
70
83
|
yok_1.injector.register("projectHelper", ProjectHelper);
|
|
@@ -93,24 +93,38 @@ class HooksService {
|
|
|
93
93
|
}
|
|
94
94
|
return _.flatten(results);
|
|
95
95
|
}
|
|
96
|
+
isESModule(hook) {
|
|
97
|
+
const ext = path.extname(hook.fullPath).toLowerCase();
|
|
98
|
+
return ext === ".mjs";
|
|
99
|
+
}
|
|
96
100
|
async executeHook(directoryPath, hookName, hook, hookArguments) {
|
|
97
101
|
hookArguments = hookArguments || {};
|
|
98
102
|
let result;
|
|
99
103
|
const relativePath = path.relative(directoryPath, hook.fullPath);
|
|
100
104
|
const trackId = relativePath.replace(new RegExp("\\" + path.sep, "g"), constants_1.AnalyticsEventLabelDelimiter);
|
|
105
|
+
const isESM = this.isESModule(hook);
|
|
101
106
|
let command = this.getSheBangInterpreter(hook);
|
|
102
107
|
let inProc = false;
|
|
103
108
|
if (!command) {
|
|
104
109
|
command = hook.fullPath;
|
|
105
|
-
if (path.extname(hook.fullPath).toLowerCase()
|
|
110
|
+
if ([".mjs", ".cjs", ".js"].includes(path.extname(hook.fullPath).toLowerCase())) {
|
|
106
111
|
command = process.argv[0];
|
|
107
|
-
inProc =
|
|
112
|
+
inProc = isESM
|
|
113
|
+
? true
|
|
114
|
+
: this.shouldExecuteInProcess(this.$fs.readText(hook.fullPath));
|
|
108
115
|
}
|
|
109
116
|
}
|
|
110
117
|
const startTime = this.$performanceService.now();
|
|
111
118
|
if (inProc) {
|
|
112
119
|
this.$logger.trace("Executing %s hook at location %s in-process", hookName, hook.fullPath);
|
|
113
|
-
|
|
120
|
+
let hookEntryPoint;
|
|
121
|
+
if (isESM) {
|
|
122
|
+
const { default: hookFn } = await Promise.resolve(`${hook.fullPath}`).then(s => require(s));
|
|
123
|
+
hookEntryPoint = hookFn;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
hookEntryPoint = require(hook.fullPath);
|
|
127
|
+
}
|
|
114
128
|
this.$logger.trace(`Validating ${hookName} arguments.`);
|
|
115
129
|
const invalidArguments = this.validateHookArguments(hookEntryPoint, hook.fullPath);
|
|
116
130
|
if (invalidArguments.length) {
|
|
@@ -119,7 +133,8 @@ class HooksService {
|
|
|
119
133
|
}
|
|
120
134
|
const projectDataHookArg = hookArguments["hookArgs"] && hookArguments["hookArgs"]["projectData"];
|
|
121
135
|
if (projectDataHookArg) {
|
|
122
|
-
hookArguments["projectData"] = hookArguments["$projectData"] =
|
|
136
|
+
hookArguments["projectData"] = hookArguments["$projectData"] =
|
|
137
|
+
projectDataHookArg;
|
|
123
138
|
}
|
|
124
139
|
const maybePromise = this.$injector.resolve(hookEntryPoint, hookArguments);
|
|
125
140
|
if (maybePromise) {
|
|
@@ -215,9 +230,11 @@ class HooksService {
|
|
|
215
230
|
prepareEnvironment(hookFullPath) {
|
|
216
231
|
const clientName = this.$staticConfig.CLIENT_NAME.toUpperCase();
|
|
217
232
|
const environment = {};
|
|
218
|
-
environment[util.format("%s-COMMANDLINE", clientName)] =
|
|
233
|
+
environment[util.format("%s-COMMANDLINE", clientName)] =
|
|
234
|
+
process.argv.join(" ");
|
|
219
235
|
environment[util.format("%s-HOOK_FULL_PATH", clientName)] = hookFullPath;
|
|
220
|
-
environment[util.format("%s-VERSION", clientName)] =
|
|
236
|
+
environment[util.format("%s-VERSION", clientName)] =
|
|
237
|
+
this.$staticConfig.version;
|
|
221
238
|
return {
|
|
222
239
|
cwd: this.$projectHelper.projectDir,
|
|
223
240
|
stdio: "inherit",
|
|
@@ -28,7 +28,7 @@ function verifyNodeVersion() {
|
|
|
28
28
|
if (versionsCausingFailure.indexOf(nodeVer) !== -1 ||
|
|
29
29
|
!semver.valid(nodeVer) ||
|
|
30
30
|
semver.lt(nodeVer, minimumRequiredVersion)) {
|
|
31
|
-
console.error(color_1.color.
|
|
31
|
+
console.error(color_1.color.bold(color_1.color.red(util.format("%sNode.js '%s' is not supported. To be able to work with %s CLI, install any Node.js version in the following range: %s.%s", os.EOL, nodeVer, cliName, supportedVersionsRange, os.EOL))));
|
|
32
32
|
process.exit(1);
|
|
33
33
|
}
|
|
34
34
|
}
|
package/lib/constants.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.PackageManagers = exports.EMIT_APPENDER_EVENT_NAME = exports.LoggerConfigData = exports.LoggerLevel = exports.DeviceConnectionType = exports.LoggerAppenders = exports.IOSNativeTargetTypes = exports.IOSNativeTargetProductTypes = exports.IOSDeviceTargets = exports.RunOnDeviceEvents = exports.AndroidAppBundleMessages = exports.AndroidBundleValidatorMessages = exports.BundleValidatorMessages = exports.IosProjectConstants = exports.EXTENSION_PROVISIONING_FILENAME = exports.PODFILE_NAME = exports.PLUGINS_BUILD_DATA_FILENAME = exports.PLUGIN_BUILD_DATA_FILENAME = exports.AddPlaformErrors = exports.PACKAGE_PLACEHOLDER_NAME = exports.AndroidBuildDefaults = exports.Hooks = exports.XcodeDeprecationStringFormat = exports.MacOSDeprecationStringFormat = exports.MacOSVersions = exports.AssetConstants = exports.CLI_RESOURCES_DIR_NAME = exports.NATIVESCRIPT_PROPS_INTERNAL_DELIMITER = exports.AnalyticsEventLabelDelimiter = exports.DebugCommandErrors = exports.
|
|
3
|
+
exports.BUILD_XCCONFIG_FILE_NAME = exports.INCLUDE_GRADLE_NAME = exports.INFO_PLIST_FILE_NAME = exports.APP_GRADLE_FILE_NAME = exports.MANIFEST_FILE_NAME = exports.ANDROID_ANALYTICS_DATA_FILE = exports.ANDROID_ANALYTICS_DATA_DIR = exports.FONTS_DIR = exports.ASSETS_DIR = exports.MAIN_DIR = exports.SRC_DIR = exports.AWAIT_NOTIFICATION_TIMEOUT_SECONDS = exports.CODE_SIGN_ENTITLEMENTS = exports.LIB_DIR_NAME = exports.KARMA_CONFIG_NAME = exports.TSCCONFIG_TNS_JSON_NAME = exports.RSPACK_CONFIG_NAME = exports.WEBPACK_CONFIG_NAME = exports.HOOKS_DIR_NAME = exports.PLATFORMS_DIR_NAME = exports.XML_FILE_EXTENSION = exports.LIVESYNC_EXCLUDED_FILE_PATTERNS = exports.TEST_RUNNER_NAME = exports.TESTING_FRAMEWORKS = exports.LIVESYNC_EXCLUDED_DIRECTORIES = exports.DEFAULT_APP_IDENTIFIER_PREFIX = exports.NODE_MODULE_CACHE_PATH_KEY_NAME = exports.ANDROID_DEVICE_APP_ROOT_TEMPLATE = exports.PACKAGE_LOCK_JSON_FILE_NAME = exports.PACKAGE_JSON_FILE_NAME = exports.SCOPED_VISIONOS_RUNTIME_NAME = exports.SCOPED_IOS_RUNTIME_NAME = exports.SCOPED_ANDROID_RUNTIME_NAME = exports.TNS_IOS_RUNTIME_NAME = exports.TNS_ANDROID_RUNTIME_NAME = exports.UI_MOBILE_BASE_NAME = exports.TNS_CORE_MODULES_WIDGETS_NAME = exports.RSPACK_PLUGIN_NAME = exports.WEBPACK_PLUGIN_NAME = exports.SCOPED_TNS_CORE_THEME_NAME = exports.TNS_CORE_THEME_NAME = exports.SCOPED_TNS_CORE_MODULES = exports.TNS_CORE_MODULES_NAME = exports.TNS_MODULES_FOLDER_NAME = exports.NODE_MODULES_FOLDER_NAME = exports.NATIVESCRIPT_KEY_NAME = exports.NS_BASE_PODFILE = exports.PROJECT_FRAMEWORK_FOLDER_NAME = exports.APP_RESOURCES_FOLDER_NAME = exports.APP_FOLDER_NAME = void 0;
|
|
4
|
+
exports.JsFlavorName = exports.TsFlavorName = exports.SvelteFlavorName = exports.SolidFlavorName = exports.ReactFlavorName = exports.VueFlavorName = exports.NgFlavorName = exports.SVELTE_NAME = exports.SOLID_NAME = exports.REACT_NAME = exports.TYPESCRIPT_NAME = exports.JAVASCRIPT_NAME = exports.ANGULAR_NAME = exports.VUE_NAME = exports.ItunesConnectApplicationTypes = exports.androidAppResourcesFolderName = exports.iOSAppResourcesFolderName = exports.ITMSConstants = exports.ANALYTICS_LOCAL_TEMPLATE_PREFIX = exports.RESERVED_TEMPLATE_NAMES = exports.ReleaseType = exports.SaveOptions = exports.TemplatesV2PackageJsonKeysToRemove = exports.PackageJsonKeysToKeep = exports.LiveSyncTrackActionNames = exports.PackageVersion = exports.MetadataFilteringConstants = exports.IOS_WATCHAPP_EXTENSION_FOLDER = exports.IOS_WATCHAPP_FOLDER = exports.NATIVE_EXTENSION_FOLDER = exports.APPLICATION_RESPONSE_TIMEOUT_SECONDS = exports.NATIVE_SOURCE_FOLDER = exports.TNS_NATIVE_SOURCE_GROUP_NAME = exports.HASHES_FILE_NAME = exports.APKS_EXTENSION_NAME = exports.AAB_EXTENSION_NAME = exports.APK_EXTENSION_NAME = exports.DEPENDENCIES_JSON_NAME = exports.CONFIG_FILE_NAME_TS = exports.CONFIG_FILE_NAME_JS = exports.CONFIG_FILE_NAME_DISPLAY = exports.CONFIG_NS_APP_ENTRY = exports.CONFIG_NS_BUILD_ENTRY = exports.CONFIG_NS_APP_RESOURCES_ENTRY = exports.CONFIG_NS_FILE_NAME = exports.RESOURCES_DIR = exports.BUNDLE_DIR = exports.APK_DIR = exports.OUTPUTS_DIR = exports.BUILD_DIR = void 0;
|
|
5
|
+
exports.PackageManagers = exports.EMIT_APPENDER_EVENT_NAME = exports.LoggerConfigData = exports.LoggerLevel = exports.DeviceConnectionType = exports.LoggerAppenders = exports.IOSNativeTargetTypes = exports.IOSNativeTargetProductTypes = exports.IOSDeviceTargets = exports.RunOnDeviceEvents = exports.AndroidAppBundleMessages = exports.AndroidBundleValidatorMessages = exports.BundleValidatorMessages = exports.IosProjectConstants = exports.EXTENSION_PROVISIONING_FILENAME = exports.PODFILE_NAME = exports.PLUGINS_BUILD_DATA_FILENAME = exports.PLUGIN_BUILD_DATA_FILENAME = exports.AddPlaformErrors = exports.PACKAGE_PLACEHOLDER_NAME = exports.AndroidBuildDefaults = exports.Hooks = exports.XcodeDeprecationStringFormat = exports.MacOSDeprecationStringFormat = exports.MacOSVersions = exports.AssetConstants = exports.CLI_RESOURCES_DIR_NAME = exports.NATIVESCRIPT_PROPS_INTERNAL_DELIMITER = exports.AnalyticsEventLabelDelimiter = exports.DebugCommandErrors = exports.BUNDLER_COMPILATION_COMPLETE = exports.PREPARE_READY_EVENT_NAME = exports.INITIAL_SYNC_EVENT_NAME = exports.FILES_CHANGE_EVENT_NAME = exports.CACACHE_DIRECTORY_NAME = exports.ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE = exports.ANDROID_RELEASE_BUILD_ERROR_MESSAGE = exports.POST_INSTALL_COMMAND_NAME = exports.INSPECTOR_CACHE_DIRNAME = exports.VERSION_STRING = exports.DEBUGGER_DETACHED_EVENT_NAME = exports.DEBUGGER_ATTACHED_EVENT_NAME = exports.USER_INTERACTION_NEEDED_EVENT_NAME = exports.CONNECTION_ERROR_EVENT_NAME = exports.BUILD_OUTPUT_EVENT_NAME = exports.ProjectTypes = void 0;
|
|
6
6
|
const path_1 = require("path");
|
|
7
7
|
exports.APP_FOLDER_NAME = "app";
|
|
8
8
|
exports.APP_RESOURCES_FOLDER_NAME = "App_Resources";
|
|
@@ -16,6 +16,7 @@ exports.SCOPED_TNS_CORE_MODULES = "@nativescript/core";
|
|
|
16
16
|
exports.TNS_CORE_THEME_NAME = "nativescript-theme-core";
|
|
17
17
|
exports.SCOPED_TNS_CORE_THEME_NAME = "@nativescript/theme";
|
|
18
18
|
exports.WEBPACK_PLUGIN_NAME = "@nativescript/webpack";
|
|
19
|
+
exports.RSPACK_PLUGIN_NAME = "@nativescript/rspack";
|
|
19
20
|
exports.TNS_CORE_MODULES_WIDGETS_NAME = "tns-core-modules-widgets";
|
|
20
21
|
exports.UI_MOBILE_BASE_NAME = "@nativescript/ui-mobile-base";
|
|
21
22
|
exports.TNS_ANDROID_RUNTIME_NAME = "tns-android";
|
|
@@ -36,6 +37,7 @@ exports.XML_FILE_EXTENSION = ".xml";
|
|
|
36
37
|
exports.PLATFORMS_DIR_NAME = "platforms";
|
|
37
38
|
exports.HOOKS_DIR_NAME = "hooks";
|
|
38
39
|
exports.WEBPACK_CONFIG_NAME = "webpack.config.js";
|
|
40
|
+
exports.RSPACK_CONFIG_NAME = "rspack.config.js";
|
|
39
41
|
exports.TSCCONFIG_TNS_JSON_NAME = "tsconfig.tns.json";
|
|
40
42
|
exports.KARMA_CONFIG_NAME = "karma.conf.js";
|
|
41
43
|
exports.LIB_DIR_NAME = "lib";
|
|
@@ -69,7 +71,7 @@ exports.APK_EXTENSION_NAME = ".apk";
|
|
|
69
71
|
exports.AAB_EXTENSION_NAME = ".aab";
|
|
70
72
|
exports.APKS_EXTENSION_NAME = ".apks";
|
|
71
73
|
exports.HASHES_FILE_NAME = ".nshashes";
|
|
72
|
-
exports.TNS_NATIVE_SOURCE_GROUP_NAME = "
|
|
74
|
+
exports.TNS_NATIVE_SOURCE_GROUP_NAME = "AppResourcesSrc";
|
|
73
75
|
exports.NATIVE_SOURCE_FOLDER = "src";
|
|
74
76
|
exports.APPLICATION_RESPONSE_TIMEOUT_SECONDS = 60;
|
|
75
77
|
exports.NATIVE_EXTENSION_FOLDER = "extensions";
|
|
@@ -215,7 +217,7 @@ exports.CACACHE_DIRECTORY_NAME = "_cacache";
|
|
|
215
217
|
exports.FILES_CHANGE_EVENT_NAME = "filesChangeEvent";
|
|
216
218
|
exports.INITIAL_SYNC_EVENT_NAME = "initialSyncEvent";
|
|
217
219
|
exports.PREPARE_READY_EVENT_NAME = "prepareReadyEvent";
|
|
218
|
-
exports.
|
|
220
|
+
exports.BUNDLER_COMPILATION_COMPLETE = "bundlerCompilationComplete";
|
|
219
221
|
class DebugCommandErrors {
|
|
220
222
|
}
|
|
221
223
|
exports.DebugCommandErrors = DebugCommandErrors;
|
|
@@ -309,6 +311,7 @@ var IOSNativeTargetTypes;
|
|
|
309
311
|
IOSNativeTargetTypes["watchApp"] = "watch_app";
|
|
310
312
|
IOSNativeTargetTypes["watchExtension"] = "watch_extension";
|
|
311
313
|
IOSNativeTargetTypes["appExtension"] = "app_extension";
|
|
314
|
+
IOSNativeTargetTypes["application"] = "application";
|
|
312
315
|
})(IOSNativeTargetTypes || (exports.IOSNativeTargetTypes = IOSNativeTargetTypes = {}));
|
|
313
316
|
const pathToLoggerAppendersDir = (0, path_1.join)(__dirname, "common", "logger", "appenders");
|
|
314
317
|
exports.LoggerAppenders = {
|
|
@@ -10,7 +10,8 @@ const simple_git_1 = require("simple-git");
|
|
|
10
10
|
const update_controller_base_1 = require("./update-controller-base");
|
|
11
11
|
const helpers_1 = require("../common/helpers");
|
|
12
12
|
const yok_1 = require("../common/yok");
|
|
13
|
-
const
|
|
13
|
+
const fs = require("fs");
|
|
14
|
+
const os_1 = require("os");
|
|
14
15
|
const color_1 = require("../color");
|
|
15
16
|
class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
16
17
|
constructor($fs, $platformCommandHelper, $platformsDataService, $packageInstallationManager, $packageManager, $pacoteService, $logger, $errors, $pluginsService, $projectDataService, $projectConfigService, $projectData, $options, $resources, $injector, $settingsService, $staticConfig, $terminalSpinnerService, $projectCleanupService, $projectBackupService, $childProcess) {
|
|
@@ -40,7 +41,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
40
41
|
{
|
|
41
42
|
packageName: "@nativescript/core",
|
|
42
43
|
minVersion: "6.5.0",
|
|
43
|
-
desiredVersion: "~8.
|
|
44
|
+
desiredVersion: "~8.9.0",
|
|
44
45
|
shouldAddIfMissing: true,
|
|
45
46
|
},
|
|
46
47
|
{
|
|
@@ -50,7 +51,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
50
51
|
{
|
|
51
52
|
packageName: "@nativescript/types",
|
|
52
53
|
minVersion: "7.0.0",
|
|
53
|
-
desiredVersion: "~8.
|
|
54
|
+
desiredVersion: "~8.9.0",
|
|
54
55
|
isDev: true,
|
|
55
56
|
},
|
|
56
57
|
{
|
|
@@ -100,7 +101,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
100
101
|
{
|
|
101
102
|
packageName: "@nativescript/angular",
|
|
102
103
|
minVersion: "10.0.0",
|
|
103
|
-
desiredVersion: "^
|
|
104
|
+
desiredVersion: "^19.0.0",
|
|
104
105
|
async shouldMigrateAction(dependency, projectData, loose) {
|
|
105
106
|
if (!this.hasDependency(dependency, projectData)) {
|
|
106
107
|
return false;
|
|
@@ -147,7 +148,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
147
148
|
packageName: "typescript",
|
|
148
149
|
isDev: true,
|
|
149
150
|
minVersion: "3.7.0",
|
|
150
|
-
desiredVersion: "~5.
|
|
151
|
+
desiredVersion: "~5.7.0",
|
|
151
152
|
},
|
|
152
153
|
{
|
|
153
154
|
packageName: "node-sass",
|
|
@@ -176,13 +177,13 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
176
177
|
{
|
|
177
178
|
packageName: "@nativescript/ios",
|
|
178
179
|
minVersion: "6.5.3",
|
|
179
|
-
desiredVersion: "~8.
|
|
180
|
+
desiredVersion: "~8.9.0",
|
|
180
181
|
isDev: true,
|
|
181
182
|
},
|
|
182
183
|
{
|
|
183
184
|
packageName: "@nativescript/android",
|
|
184
185
|
minVersion: "7.0.0",
|
|
185
|
-
desiredVersion: "~8.
|
|
186
|
+
desiredVersion: "~8.9.0",
|
|
186
187
|
isDev: true,
|
|
187
188
|
},
|
|
188
189
|
];
|
|
@@ -711,9 +712,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
711
712
|
if (polyfillsPath) {
|
|
712
713
|
return "./" + path.relative(projectDir, polyfillsPath);
|
|
713
714
|
}
|
|
714
|
-
const tempDir =
|
|
715
|
-
prefix: "migrate-angular-polyfills",
|
|
716
|
-
});
|
|
715
|
+
const tempDir = fs.mkdtempSync(path.join((0, os_1.tmpdir)(), "migrate-angular-polyfills-"));
|
|
717
716
|
await this.$pacoteService.extractPackage(constants.RESERVED_TEMPLATE_NAMES["angular"], tempDir);
|
|
718
717
|
this.$fs.copyFile(path.resolve(tempDir, "src/polyfills.ts"), possiblePaths[0]);
|
|
719
718
|
this.$fs.deleteDirectory(tempDir);
|
|
@@ -722,7 +721,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
722
721
|
}
|
|
723
722
|
async migrateNativeScriptAngular() {
|
|
724
723
|
const minVersion = "10.0.0";
|
|
725
|
-
const desiredVersion = "~
|
|
724
|
+
const desiredVersion = "~19.1.0";
|
|
726
725
|
const dependencies = [
|
|
727
726
|
{
|
|
728
727
|
packageName: "@angular/animations",
|
|
@@ -781,7 +780,7 @@ class MigrateController extends update_controller_base_1.UpdateControllerBase {
|
|
|
781
780
|
{
|
|
782
781
|
packageName: "zone.js",
|
|
783
782
|
minVersion: "0.11.1",
|
|
784
|
-
desiredVersion: "~0.
|
|
783
|
+
desiredVersion: "~0.15.0",
|
|
785
784
|
shouldAddIfMissing: true,
|
|
786
785
|
},
|
|
787
786
|
{
|
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
};
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.PrepareController = void 0;
|
|
10
|
-
const
|
|
10
|
+
const chokidar_1 = require("chokidar");
|
|
11
11
|
const events_1 = require("events");
|
|
12
12
|
const _ = require("lodash");
|
|
13
13
|
const path = require("path");
|
|
@@ -17,7 +17,7 @@ const yok_1 = require("../common/yok");
|
|
|
17
17
|
const constants_1 = require("../constants");
|
|
18
18
|
const resolve_package_path_1 = require("@rigor789/resolve-package-path");
|
|
19
19
|
class PrepareController extends events_1.EventEmitter {
|
|
20
|
-
constructor($platformController, $hooksService, $fs, $logger, $options, $mobileHelper, $nodeModulesDependenciesBuilder, $platformsDataService, $pluginsService, $prepareNativePlatformService, $projectChangesService, $projectDataService, $
|
|
20
|
+
constructor($platformController, $hooksService, $fs, $logger, $options, $mobileHelper, $nodeModulesDependenciesBuilder, $platformsDataService, $pluginsService, $prepareNativePlatformService, $projectChangesService, $projectDataService, $bundlerCompilerService, $watchIgnoreListService, $analyticsService, $markingModeService, $projectConfigService, $projectService) {
|
|
21
21
|
super();
|
|
22
22
|
this.$platformController = $platformController;
|
|
23
23
|
this.$hooksService = $hooksService;
|
|
@@ -31,7 +31,7 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
31
31
|
this.$prepareNativePlatformService = $prepareNativePlatformService;
|
|
32
32
|
this.$projectChangesService = $projectChangesService;
|
|
33
33
|
this.$projectDataService = $projectDataService;
|
|
34
|
-
this.$
|
|
34
|
+
this.$bundlerCompilerService = $bundlerCompilerService;
|
|
35
35
|
this.$watchIgnoreListService = $watchIgnoreListService;
|
|
36
36
|
this.$analyticsService = $analyticsService;
|
|
37
37
|
this.$markingModeService = $markingModeService;
|
|
@@ -67,8 +67,8 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
67
67
|
this.watchersData[projectDir] &&
|
|
68
68
|
this.watchersData[projectDir][platformLowerCase] &&
|
|
69
69
|
this.watchersData[projectDir][platformLowerCase].hasWebpackCompilerProcess) {
|
|
70
|
-
await this.$
|
|
71
|
-
this.$
|
|
70
|
+
await this.$bundlerCompilerService.stopBundlerCompiler(platformLowerCase);
|
|
71
|
+
this.$bundlerCompilerService.removeListener(constants_1.BUNDLER_COMPILATION_COMPLETE, this.webpackCompilerHandler);
|
|
72
72
|
this.watchersData[projectDir][platformLowerCase].hasWebpackCompilerProcess = false;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -90,7 +90,7 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
90
90
|
result = await this.startWatchersWithPrepare(platformData, projectData, prepareData);
|
|
91
91
|
}
|
|
92
92
|
else {
|
|
93
|
-
await this.$
|
|
93
|
+
await this.$bundlerCompilerService.compileWithoutWatch(platformData, projectData, prepareData);
|
|
94
94
|
const hasNativeChanges = await this.$prepareNativePlatformService.prepareNativePlatform(platformData, projectData, prepareData);
|
|
95
95
|
result = {
|
|
96
96
|
hasNativeChanges,
|
|
@@ -155,9 +155,9 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
155
155
|
}
|
|
156
156
|
};
|
|
157
157
|
this.webpackCompilerHandler = handler.bind(this);
|
|
158
|
-
this.$
|
|
158
|
+
this.$bundlerCompilerService.on(constants_1.BUNDLER_COMPILATION_COMPLETE, this.webpackCompilerHandler);
|
|
159
159
|
this.watchersData[projectData.projectDir][platformData.platformNameLowerCase].hasWebpackCompilerProcess = true;
|
|
160
|
-
await this.$
|
|
160
|
+
await this.$bundlerCompilerService.compileWithWatch(platformData, projectData, prepareData);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
async startNativeWatcherWithPrepare(platformData, projectData, prepareData) {
|
|
@@ -186,9 +186,7 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
186
186
|
},
|
|
187
187
|
ignored: ["**/.*", ".*"],
|
|
188
188
|
};
|
|
189
|
-
const watcher =
|
|
190
|
-
.watch(patterns, watcherOptions)
|
|
191
|
-
.on("all", async (event, filePath) => {
|
|
189
|
+
const watcher = (0, chokidar_1.watch)(patterns, watcherOptions).on("all", async (event, filePath) => {
|
|
192
190
|
if (this.isFileWatcherPaused())
|
|
193
191
|
return;
|
|
194
192
|
filePath = path.join(projectData.projectDir, filePath);
|
|
@@ -336,7 +334,7 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
336
334
|
if (this.pausedFileWatch) {
|
|
337
335
|
for (const watcher of watchers) {
|
|
338
336
|
for (const platform in watcher) {
|
|
339
|
-
await this.$
|
|
337
|
+
await this.$bundlerCompilerService.stopBundlerCompiler(platform);
|
|
340
338
|
watcher[platform].hasWebpackCompilerProcess = false;
|
|
341
339
|
}
|
|
342
340
|
}
|
|
@@ -346,7 +344,7 @@ class PrepareController extends events_1.EventEmitter {
|
|
|
346
344
|
for (const platform in watcher) {
|
|
347
345
|
const args = watcher[platform].prepareArguments;
|
|
348
346
|
watcher[platform].hasWebpackCompilerProcess = true;
|
|
349
|
-
await this.$
|
|
347
|
+
await this.$bundlerCompilerService.compileWithWatch(args.platformData, args.projectData, args.prepareData);
|
|
350
348
|
}
|
|
351
349
|
}
|
|
352
350
|
}
|
|
@@ -60,7 +60,7 @@ class RunController extends events_1.EventEmitter {
|
|
|
60
60
|
if (data.hasNativeChanges) {
|
|
61
61
|
const platformData = this.$platformsDataService.getPlatformData(data.platform, projectData);
|
|
62
62
|
const prepareData = this.$prepareDataService.getPrepareData(liveSyncInfo.projectDir, data.platform, { ...liveSyncInfo, watch: !liveSyncInfo.skipWatcher });
|
|
63
|
-
const changesInfo = await this.$projectChangesService.checkForChanges(platformData, projectData, prepareData
|
|
63
|
+
const changesInfo = await this.$projectChangesService.checkForChanges(platformData, projectData, prepareData);
|
|
64
64
|
if (changesInfo.hasChanges) {
|
|
65
65
|
await this.syncChangedDataOnDevices(data, projectData, platformData, liveSyncInfo);
|
|
66
66
|
}
|
package/lib/declarations.d.ts
CHANGED
|
@@ -594,8 +594,13 @@ interface IIOSOptions extends IEmbedOptions {}
|
|
|
594
594
|
|
|
595
595
|
interface ITypingsOptions {
|
|
596
596
|
jar: string;
|
|
597
|
+
dtsGeneratorPath: string;
|
|
597
598
|
aar: string;
|
|
598
599
|
filter: string;
|
|
600
|
+
dtsGeneratorPath: string;
|
|
601
|
+
lookupPath: string;
|
|
602
|
+
super: string;
|
|
603
|
+
skipDeclarations: boolean;
|
|
599
604
|
}
|
|
600
605
|
|
|
601
606
|
interface IOptions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module "@nativescript/hook";
|
package/lib/definitions/ios.d.ts
CHANGED
|
@@ -41,8 +41,18 @@ declare global {
|
|
|
41
41
|
): Promise<string>;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
type IosSPMPackage = IosSPMPackageDefinition & { targets?: string[] };
|
|
45
|
+
|
|
44
46
|
interface ISPMService {
|
|
45
|
-
applySPMPackages(
|
|
47
|
+
applySPMPackages(
|
|
48
|
+
platformData: IPlatformData,
|
|
49
|
+
projectData: IProjectData,
|
|
50
|
+
pluginSpmPackages?: IosSPMPackage[]
|
|
51
|
+
);
|
|
52
|
+
getSPMPackages(
|
|
53
|
+
projectData: IProjectData,
|
|
54
|
+
platform: string
|
|
55
|
+
): IosSPMPackage[];
|
|
46
56
|
}
|
|
47
57
|
|
|
48
58
|
interface IXcodebuildArgsService {
|
|
@@ -8,16 +8,27 @@ declare module "nativescript-dev-xcode" {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
class project {
|
|
11
|
+
hash: any;
|
|
12
|
+
filepath: string;
|
|
11
13
|
constructor(filename: string);
|
|
12
14
|
|
|
13
15
|
parse(callback: () => void): void;
|
|
14
16
|
parseSync(): void;
|
|
15
17
|
|
|
18
|
+
generateUuid(): string;
|
|
19
|
+
|
|
16
20
|
writeSync(options: any): string;
|
|
17
21
|
|
|
18
22
|
addFramework(filepath: string, options?: Options): void;
|
|
19
23
|
removeFramework(filePath: string, options?: Options): void;
|
|
20
24
|
|
|
25
|
+
|
|
26
|
+
getProductFile(watchApptarget: target): any;
|
|
27
|
+
addToPbxFrameworksBuildPhase(file);
|
|
28
|
+
addToPbxCopyfilesBuildPhase(file, comment: string, targetid: string);
|
|
29
|
+
pbxFrameworksBuildPhaseObj(targetid: string): any;
|
|
30
|
+
pbxBuildFileSection(): {[k: string] : any};
|
|
31
|
+
|
|
21
32
|
addPbxGroup(
|
|
22
33
|
filePathsArray: any[],
|
|
23
34
|
name: string,
|
|
@@ -27,17 +38,30 @@ declare module "nativescript-dev-xcode" {
|
|
|
27
38
|
|
|
28
39
|
removePbxGroup(groupName: string, path: string): void;
|
|
29
40
|
|
|
41
|
+
addTargetDependency(target: string, dependencyTargets: string[]);
|
|
42
|
+
|
|
43
|
+
findTargetKey(name: string);
|
|
44
|
+
pbxTargetByName(name: string): target;
|
|
45
|
+
pbxNativeTargetSection(): {[key: string]: any};
|
|
46
|
+
|
|
30
47
|
addToHeaderSearchPaths(options?: Options): void;
|
|
31
48
|
removeFromHeaderSearchPaths(options?: Options): void;
|
|
32
49
|
updateBuildProperty(key: string, value: any): void;
|
|
33
50
|
|
|
34
51
|
pbxXCBuildConfigurationSection(): any;
|
|
35
52
|
|
|
53
|
+
buildPhaseObject(
|
|
54
|
+
buildPhaseType: string,
|
|
55
|
+
comment: string,
|
|
56
|
+
target: tstring
|
|
57
|
+
)
|
|
58
|
+
|
|
36
59
|
addTarget(
|
|
37
60
|
targetName: string,
|
|
38
61
|
targetType: string,
|
|
39
62
|
targetPath?: string,
|
|
40
|
-
parentTarget?: string
|
|
63
|
+
parentTarget?: string,
|
|
64
|
+
productTargetType?: string
|
|
41
65
|
): target;
|
|
42
66
|
addBuildPhase(
|
|
43
67
|
filePathsArray: string[],
|