nativescript 8.7.2 → 8.8.0-alpha.1
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 +0 -12
- package/lib/base-package-manager.js +0 -7
- package/lib/bootstrap.js +1 -5
- package/lib/bun-package-manager.js +1 -17
- package/lib/color.js +0 -3
- package/lib/commands/add-platform.js +0 -1
- package/lib/commands/apple-login.js +0 -1
- package/lib/commands/appstore-list.js +0 -1
- package/lib/commands/appstore-upload.js +0 -4
- package/lib/commands/build.js +2 -3
- package/lib/commands/clean.js +1 -22
- package/lib/commands/command-base.js +0 -1
- package/lib/commands/config.js +0 -3
- package/lib/commands/create-project.js +0 -6
- package/lib/commands/debug.js +1 -6
- package/lib/commands/deploy.js +2 -3
- package/lib/commands/extensibility/install-extension.js +0 -1
- package/lib/commands/extensibility/list-extensions.js +0 -1
- package/lib/commands/extensibility/uninstall-extension.js +0 -1
- package/lib/commands/fonts.js +0 -1
- package/lib/commands/generate-assets.js +0 -1
- package/lib/commands/generate-help.js +0 -1
- package/lib/commands/generate.js +2 -12
- package/lib/commands/info.js +0 -1
- package/lib/commands/install.js +0 -1
- package/lib/commands/list-platforms.js +0 -1
- package/lib/commands/migrate.js +0 -1
- package/lib/commands/platform-clean.js +0 -1
- package/lib/commands/plugin/add-plugin.js +0 -1
- package/lib/commands/plugin/build-plugin.js +0 -1
- package/lib/commands/plugin/create-plugin.js +0 -5
- package/lib/commands/plugin/list-plugins.js +0 -1
- package/lib/commands/plugin/remove-plugin.js +0 -2
- package/lib/commands/plugin/update-plugin.js +0 -1
- package/lib/commands/post-install.js +0 -6
- package/lib/commands/prepare.js +2 -3
- package/lib/commands/preview.js +0 -2
- package/lib/commands/remove-platform.js +0 -1
- package/lib/commands/resources/resources-update.js +0 -2
- package/lib/commands/run.js +0 -1
- package/lib/commands/setup.js +0 -1
- package/lib/commands/start.js +0 -1
- package/lib/commands/test-init.js +0 -4
- package/lib/commands/test.js +2 -9
- package/lib/commands/typings.js +1 -2
- package/lib/commands/update-platform.js +0 -5
- package/lib/commands/update.js +0 -2
- package/lib/common/bootstrap.js +0 -1
- package/lib/common/child-process.js +0 -3
- package/lib/common/codeGeneration/code-entity.js +0 -1
- package/lib/common/codeGeneration/code-printer.js +0 -1
- package/lib/common/command-params.js +0 -1
- package/lib/common/commands/analytics.js +0 -3
- package/lib/common/commands/autocompletion.js +0 -3
- package/lib/common/commands/device/device-log-stream.js +0 -1
- package/lib/common/commands/device/get-file.js +0 -2
- package/lib/common/commands/device/list-applications.js +0 -1
- package/lib/common/commands/device/list-devices.js +0 -3
- package/lib/common/commands/device/list-files.js +0 -2
- package/lib/common/commands/device/put-file.js +0 -2
- package/lib/common/commands/device/run-application.js +0 -1
- package/lib/common/commands/device/stop-application.js +0 -1
- package/lib/common/commands/device/uninstall-application.js +0 -1
- package/lib/common/commands/doctor.js +2 -3
- package/lib/common/commands/generate-messages.js +0 -1
- package/lib/common/commands/help.js +0 -1
- package/lib/common/commands/package-manager-get.js +0 -1
- package/lib/common/commands/package-manager-set.js +0 -1
- package/lib/common/commands/post-install.js +0 -1
- package/lib/common/commands/preuninstall.js +2 -11
- package/lib/common/commands/proxy/proxy-base.js +0 -4
- package/lib/common/commands/proxy/proxy-clear.js +0 -1
- package/lib/common/commands/proxy/proxy-get.js +0 -1
- package/lib/common/commands/proxy/proxy-set.js +0 -1
- package/lib/common/common-lib.js +0 -1
- package/lib/common/constants.js +0 -11
- package/lib/common/decorators.js +0 -48
- package/lib/common/dispatchers.js +1 -10
- package/lib/common/errors.js +3 -13
- package/lib/common/file-system.js +2 -13
- package/lib/common/header.js +0 -3
- package/lib/common/helpers.js +3 -89
- package/lib/common/host-info.js +0 -4
- package/lib/common/http-client.js +0 -20
- package/lib/common/logger/appenders/cli-appender.js +0 -4
- package/lib/common/logger/appenders/emit-appender.js +0 -4
- package/lib/common/logger/layouts/cli-layout.js +0 -1
- package/lib/common/logger/logger.js +0 -5
- package/lib/common/messages/messages.js +0 -6
- package/lib/common/mobile/android/android-application-manager.js +1 -20
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +0 -1
- package/lib/common/mobile/android/android-debug-bridge.js +0 -6
- package/lib/common/mobile/android/android-device-file-system.js +0 -4
- package/lib/common/mobile/android/android-device-hash-service.js +0 -3
- package/lib/common/mobile/android/android-device.js +0 -8
- package/lib/common/mobile/android/android-emulator-services.js +1 -2
- package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
- package/lib/common/mobile/android/android-log-filter.js +0 -4
- package/lib/common/mobile/android/android-virtual-device-service.js +0 -26
- package/lib/common/mobile/android/device-android-debug-bridge.js +0 -1
- package/lib/common/mobile/android/genymotion/genymotion-service.js +0 -5
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +0 -11
- package/lib/common/mobile/android/logcat-helper.js +1 -20
- package/lib/common/mobile/application-manager-base.js +0 -6
- package/lib/common/mobile/device-emitter.js +0 -4
- package/lib/common/mobile/device-log-emitter.js +0 -1
- package/lib/common/mobile/device-log-provider-base.js +0 -1
- package/lib/common/mobile/device-log-provider.js +0 -23
- package/lib/common/mobile/device-platforms-constants.js +0 -1
- package/lib/common/mobile/emulator-helper.js +0 -3
- package/lib/common/mobile/ios/device/ios-application-manager.js +0 -3
- package/lib/common/mobile/ios/device/ios-device-file-system.js +0 -1
- package/lib/common/mobile/ios/device/ios-device-operations.js +0 -4
- package/lib/common/mobile/ios/device/ios-device.js +0 -4
- package/lib/common/mobile/ios/ios-device-base.js +0 -1
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
- package/lib/common/mobile/ios/ios-log-filter.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +0 -4
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +0 -6
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +0 -5
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +0 -1
- package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
- package/lib/common/mobile/log-filter.js +0 -2
- package/lib/common/mobile/logging-levels.js +0 -1
- package/lib/common/mobile/mobile-core/android-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-core/android-process-service.js +0 -32
- package/lib/common/mobile/mobile-core/device-discovery.js +0 -1
- package/lib/common/mobile/mobile-core/devices-service.js +0 -69
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-helper.js +0 -1
- package/lib/common/mobile/wp8/wp8-emulator-services.js +0 -1
- package/lib/common/opener.js +0 -1
- package/lib/common/os-info.js +0 -1
- package/lib/common/plist-parser.js +0 -1
- package/lib/common/project-helper.js +0 -1
- package/lib/common/prompter.js +1 -9
- package/lib/common/queue.js +0 -1
- package/lib/common/resource-loader.js +0 -1
- package/lib/common/services/auto-completion-service.js +1 -13
- package/lib/common/services/cancellation.js +1 -2
- package/lib/common/services/commands-service.js +6 -17
- package/lib/common/services/help-service.js +3 -11
- package/lib/common/services/hooks-service.js +0 -13
- package/lib/common/services/ios-notification-service.js +0 -1
- package/lib/common/services/json-file-settings-service.js +0 -6
- package/lib/common/services/lock-service.js +0 -6
- package/lib/common/services/message-contract-generator.js +0 -1
- package/lib/common/services/messages-service.js +0 -1
- package/lib/common/services/micro-templating-service.js +0 -6
- package/lib/common/services/net-service.js +0 -3
- package/lib/common/services/project-files-manager.js +0 -5
- package/lib/common/services/project-files-provider-base.js +0 -1
- package/lib/common/services/proxy-service.js +0 -1
- package/lib/common/services/qr.js +0 -1
- package/lib/common/services/settings-service.js +0 -1
- package/lib/common/services/xcode-select-service.js +0 -1
- package/lib/common/utils.js +0 -1
- package/lib/common/validators/project-name-validator.js +0 -1
- package/lib/common/validators/validation-result.js +0 -1
- package/lib/common/verify-node-version.js +1 -8
- package/lib/common/yok.js +11 -32
- package/lib/config.js +1 -22
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +0 -53
- package/lib/controllers/build-controller.js +3 -4
- package/lib/controllers/debug-controller.js +3 -8
- package/lib/controllers/deploy-controller.js +0 -1
- package/lib/controllers/migrate-controller.js +3 -91
- package/lib/controllers/platform-controller.js +1 -9
- package/lib/controllers/prepare-controller.js +4 -14
- package/lib/controllers/run-controller.js +1 -17
- package/lib/controllers/update-controller-base.js +0 -1
- package/lib/controllers/update-controller.js +0 -11
- package/lib/data/build-data.js +0 -1
- package/lib/data/controller-data-base.js +0 -1
- package/lib/data/debug-data.js +0 -1
- package/lib/data/platform-data.js +0 -1
- package/lib/data/prepare-data.js +0 -1
- package/lib/data/run-data.js +0 -1
- package/lib/detached-processes/cleanup-js-subprocess.js +2 -8
- package/lib/detached-processes/cleanup-process.js +14 -18
- package/lib/detached-processes/file-log-service.js +1 -2
- package/lib/device-path-provider.js +0 -1
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +0 -7
- package/lib/device-sockets/ios/notification.js +0 -3
- package/lib/device-sockets/ios/socket-request-executor.js +0 -3
- package/lib/helpers/android-bundle-validator-helper.js +1 -2
- package/lib/helpers/deploy-command-helper.js +0 -1
- package/lib/helpers/key-command-helper.js +2 -4
- package/lib/helpers/livesync-command-helper.js +1 -4
- package/lib/helpers/network-connectivity-validator.js +0 -1
- package/lib/helpers/options-track-helper.js +2 -3
- package/lib/helpers/package-path-helper.js +0 -1
- package/lib/helpers/platform-command-helper.js +2 -7
- package/lib/helpers/version-validator-helper.js +0 -1
- package/lib/key-commands/bootstrap.js +2 -3
- package/lib/key-commands/index.js +4 -5
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +1 -10
- package/lib/node/pbxproj-dom-xcode.js +0 -1
- package/lib/node/xcode.js +0 -1
- package/lib/node-package-manager.js +1 -11
- package/lib/options.js +116 -141
- package/lib/package-installation-manager.js +1 -8
- package/lib/package-manager.js +0 -2
- package/lib/platform-command-param.js +0 -1
- package/lib/pnpm-package-manager.js +1 -4
- package/lib/project-data.js +0 -12
- package/lib/providers/project-files-provider.js +0 -1
- package/lib/resolvers/livesync-service-resolver.js +0 -1
- package/lib/services/analytics/analytics-broker-process.js +6 -10
- package/lib/services/analytics/analytics-broker.js +1 -2
- package/lib/services/analytics/analytics-service.js +25 -29
- package/lib/services/analytics/google-analytics-provider.js +12 -13
- package/lib/services/analytics-settings-service.js +0 -5
- package/lib/services/android/android-bundle-tool-service.js +0 -1
- package/lib/services/android/gradle-build-args-service.js +2 -9
- package/lib/services/android/gradle-build-service.js +0 -1
- package/lib/services/android/gradle-command-service.js +0 -1
- package/lib/services/android-device-debug-service.js +0 -6
- package/lib/services/android-plugin-build-service.js +12 -43
- package/lib/services/android-project-service.js +4 -71
- package/lib/services/android-resources-migration-service.js +0 -7
- package/lib/services/apple-portal/apple-portal-application-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-session-service.js +4 -6
- package/lib/services/assets-generation/assets-generation-service.js +5 -16
- package/lib/services/build-artifacts-service.js +1 -2
- package/lib/services/build-data-service.js +0 -1
- package/lib/services/build-info-file-service.js +0 -1
- package/lib/services/cleanup-service.js +9 -13
- package/lib/services/cocoapods-platform-manager.js +0 -9
- package/lib/services/cocoapods-service.js +1 -21
- package/lib/services/debug-data-service.js +0 -1
- package/lib/services/debug-service-base.js +0 -7
- package/lib/services/device/device-install-app-service.js +1 -2
- package/lib/services/doctor-service.js +6 -21
- package/lib/services/extensibility-service.js +0 -8
- package/lib/services/files-hash-service.js +0 -1
- package/lib/services/hmr-status-service.js +0 -2
- package/lib/services/info-service.js +0 -1
- package/lib/services/initialize-service.js +1 -5
- package/lib/services/ios/export-options-plist-service.js +0 -4
- package/lib/services/ios/ios-signing-service.js +0 -4
- package/lib/services/ios/spm-service.js +0 -9
- package/lib/services/ios/xcodebuild-args-service.js +0 -9
- package/lib/services/ios/xcodebuild-command-service.js +0 -1
- package/lib/services/ios/xcodebuild-service.js +0 -1
- package/lib/services/ios-debugger-port-service.js +0 -1
- package/lib/services/ios-device-debug-service.js +0 -1
- package/lib/services/ios-entitlements-service.js +0 -1
- package/lib/services/ios-extensions-service.js +0 -1
- package/lib/services/ios-log-filter.js +0 -20
- package/lib/services/ios-native-target-service.js +4 -6
- package/lib/services/ios-project-service.js +1 -23
- package/lib/services/ios-provision-service.js +0 -3
- package/lib/services/ios-watch-app-service.js +0 -1
- package/lib/services/ip-service.js +0 -2
- package/lib/services/itmstransporter-service.js +0 -1
- package/lib/services/karma-execution.js +0 -2
- package/lib/services/livesync/android-device-livesync-service-base.js +0 -1
- package/lib/services/livesync/android-device-livesync-service.js +0 -2
- package/lib/services/livesync/android-device-livesync-sockets-service.js +0 -3
- package/lib/services/livesync/android-livesync-service.js +0 -1
- package/lib/services/livesync/android-livesync-tool.js +0 -4
- package/lib/services/livesync/device-livesync-service-base.js +0 -2
- package/lib/services/livesync/ios-device-livesync-service.js +0 -7
- package/lib/services/livesync/ios-livesync-service.js +0 -2
- package/lib/services/livesync/livesync-socket.js +0 -1
- package/lib/services/livesync/platform-livesync-service-base.js +0 -5
- package/lib/services/livesync-process-data-service.js +0 -1
- package/lib/services/log-parser-service.js +0 -1
- package/lib/services/log-source-map-service.js +0 -15
- package/lib/services/marking-mode-service.js +5 -8
- package/lib/services/metadata-filtering-service.js +0 -1
- package/lib/services/npm-config-service.js +0 -4
- package/lib/services/pacote-service.js +0 -7
- package/lib/services/performance-service.js +1 -3
- package/lib/services/platform/add-platform-service.js +2 -47
- package/lib/services/platform/platform-validation-service.js +0 -1
- package/lib/services/platform/prepare-native-platform-service.js +2 -5
- package/lib/services/platform-environment-requirements.js +3 -8
- package/lib/services/platform-project-service-base.js +0 -1
- package/lib/services/platforms-data-service.js +0 -1
- package/lib/services/plugins-service.js +2 -18
- package/lib/services/prepare-data-service.js +0 -1
- package/lib/services/project-backup-service.js +0 -4
- package/lib/services/project-changes-service.js +3 -12
- package/lib/services/project-cleanup-service.js +0 -2
- package/lib/services/project-config-service.js +1 -18
- package/lib/services/project-data-service.js +7 -36
- package/lib/services/project-name-service.js +0 -1
- package/lib/services/project-service.js +0 -10
- package/lib/services/project-templates-service.js +2 -3
- package/lib/services/qr-code-terminal-service.js +0 -1
- package/lib/services/require-service.js +0 -1
- package/lib/services/start-service.js +0 -1
- package/lib/services/temp-service.js +0 -1
- package/lib/services/terminal-spinner-service.js +0 -2
- package/lib/services/test-execution-service.js +2 -9
- package/lib/services/test-initialization-service.js +0 -4
- package/lib/services/timeline-profiler-service.js +0 -1
- package/lib/services/user-settings-service.js +0 -1
- package/lib/services/versions-service.js +4 -6
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/webpack/webpack-compiler-service.js +1 -42
- package/lib/services/xcconfig-service.js +0 -2
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +1 -2
- package/lib/tools/config-manipulation/config-transformer.js +0 -12
- package/lib/tools/node-modules/node-modules-builder.js +0 -1
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
- package/lib/yarn-package-manager.js +0 -1
- package/lib/yarn2-package-manager.js +0 -3
- package/package.json +1 -1
- package/vendor/aab-tool/README.txt +1 -1
- package/vendor/aab-tool/bundletool.jar +0 -0
- package/vendor/gradle-plugin/build.gradle +21 -15
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/CHANGELOG.md +0 -15
- package/node_modules/rimraf/CHANGELOG.md +0 -65
- package/node_modules/stringify-package/CHANGELOG.md +0 -16
package/lib/commands/preview.js
CHANGED
|
@@ -34,7 +34,6 @@ class PreviewCommand {
|
|
|
34
34
|
execute(args) {
|
|
35
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
36
|
if (!this.$options.disableNpmInstall) {
|
|
37
|
-
// ensure latest is installed
|
|
38
37
|
yield this.$packageManager.install(`${PREVIEW_CLI_PACKAGE}@latest`, this.$projectData.projectDir, {
|
|
39
38
|
"save-dev": true,
|
|
40
39
|
"save-exact": true,
|
|
@@ -92,4 +91,3 @@ class PreviewCommand {
|
|
|
92
91
|
}
|
|
93
92
|
exports.PreviewCommand = PreviewCommand;
|
|
94
93
|
yok_1.injector.registerCommand("preview", PreviewCommand);
|
|
95
|
-
//# sourceMappingURL=preview.js.map
|
|
@@ -27,7 +27,6 @@ class ResourcesUpdateCommand {
|
|
|
27
27
|
canExecute(args) {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
if (!args || args.length === 0) {
|
|
30
|
-
// Command defaults to migrating the Android App_Resources, unless explicitly specified
|
|
31
30
|
args = ["android"];
|
|
32
31
|
}
|
|
33
32
|
for (const platform of args) {
|
|
@@ -44,4 +43,3 @@ class ResourcesUpdateCommand {
|
|
|
44
43
|
}
|
|
45
44
|
exports.ResourcesUpdateCommand = ResourcesUpdateCommand;
|
|
46
45
|
yok_1.injector.registerCommand("resources|update", ResourcesUpdateCommand);
|
|
47
|
-
//# sourceMappingURL=resources-update.js.map
|
package/lib/commands/run.js
CHANGED
|
@@ -175,4 +175,3 @@ class RunVisionOSCommand extends RunIosCommand {
|
|
|
175
175
|
exports.RunVisionOSCommand = RunVisionOSCommand;
|
|
176
176
|
yok_1.injector.registerCommand("run|vision", RunVisionOSCommand);
|
|
177
177
|
yok_1.injector.registerCommand("run|visionos", RunVisionOSCommand);
|
|
178
|
-
//# sourceMappingURL=run.js.map
|
package/lib/commands/setup.js
CHANGED
package/lib/commands/start.js
CHANGED
|
@@ -76,8 +76,6 @@ class TestInitCommand {
|
|
|
76
76
|
continue;
|
|
77
77
|
}
|
|
78
78
|
const dependencyVersion = modulePeerDependencies[peerDependency] || "*";
|
|
79
|
-
// catch errors when a peerDependency is already installed
|
|
80
|
-
// e.g karma is installed; karma-jasmine depends on karma and will try to install it again
|
|
81
79
|
try {
|
|
82
80
|
yield this.$packageManager.install(`${peerDependency}@${dependencyVersion}`, projectDir, {
|
|
83
81
|
"save-dev": true,
|
|
@@ -129,7 +127,6 @@ class TestInitCommand {
|
|
|
129
127
|
const targetExampleTestRelativePath = path.relative(projectDir, targetExampleTestPath);
|
|
130
128
|
bufferedLogs.push(`Added example test: ${color_1.color.yellow(targetExampleTestRelativePath)}`);
|
|
131
129
|
}
|
|
132
|
-
// test main entry
|
|
133
130
|
const testMainResourcesPath = this.$resources.resolvePath(`test/test-main${projectFilesExtension}`);
|
|
134
131
|
const testMainPath = path.join(this.$projectData.appDirectoryPath, `test${projectFilesExtension}`);
|
|
135
132
|
if (!this.$fs.exists(testMainPath)) {
|
|
@@ -168,4 +165,3 @@ class TestInitCommand {
|
|
|
168
165
|
}
|
|
169
166
|
}
|
|
170
167
|
yok_1.injector.registerCommand("test|init", TestInitCommand);
|
|
171
|
-
//# sourceMappingURL=test-init.js.map
|
package/lib/commands/test.js
CHANGED
|
@@ -16,7 +16,7 @@ class TestCommandBase {
|
|
|
16
16
|
constructor() {
|
|
17
17
|
this.allowedParameters = [];
|
|
18
18
|
this.dashedOptions = {
|
|
19
|
-
hmr: { type: "boolean"
|
|
19
|
+
hmr: { type: "boolean", default: false, hasSensitiveValue: false },
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
execute(args) {
|
|
@@ -36,8 +36,6 @@ class TestCommandBase {
|
|
|
36
36
|
deviceId: this.$options.device,
|
|
37
37
|
});
|
|
38
38
|
devices = [selectedDeviceForDebug];
|
|
39
|
-
// const debugData = this.getDebugData(platform, projectData, deployOptions, { device: selectedDeviceForDebug.deviceInfo.identifier });
|
|
40
|
-
// await this.$debugService.debug(debugData, this.$options);
|
|
41
39
|
}
|
|
42
40
|
else {
|
|
43
41
|
devices = yield this.$liveSyncCommandHelper.getDeviceInstances(this.platform);
|
|
@@ -51,7 +49,6 @@ class TestCommandBase {
|
|
|
51
49
|
devices.forEach((device) => (deviceDebugMap[device.deviceInfo.identifier] = this.$options.debugBrk));
|
|
52
50
|
const deviceDescriptors = yield this.$liveSyncCommandHelper.createDeviceDescriptors(devices, this.platform, { deviceDebugMap });
|
|
53
51
|
yield this.$testExecutionService.startKarmaServer(this.platform, liveSyncInfo, deviceDescriptors);
|
|
54
|
-
// if we got here, it means karma exited with exit code 0 (success)
|
|
55
52
|
process.exit(0);
|
|
56
53
|
});
|
|
57
54
|
}
|
|
@@ -59,9 +56,6 @@ class TestCommandBase {
|
|
|
59
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
57
|
if (!this.$options.force) {
|
|
61
58
|
if (this.$options.hmr) {
|
|
62
|
-
// With HMR we are not restarting after LiveSync which is causing a 30 seconds app start on Android
|
|
63
|
-
// because the Runtime does not watch for the `/data/local/tmp<appId>-livesync-in-progress` file deletion.
|
|
64
|
-
// The App is closing itself after each test execution and the bug will be reproducible on each LiveSync.
|
|
65
59
|
this.$errors.fail("The `--hmr` option is not supported for this command.");
|
|
66
60
|
}
|
|
67
61
|
yield this.$migrateController.validate({
|
|
@@ -81,7 +75,7 @@ class TestCommandBase {
|
|
|
81
75
|
if (!canStartKarmaServer) {
|
|
82
76
|
this.$errors.fail({
|
|
83
77
|
formatStr: "Error: In order to run unit tests, your project must already be configured by running $ ns test init.",
|
|
84
|
-
errorCode: 133
|
|
78
|
+
errorCode: 133,
|
|
85
79
|
});
|
|
86
80
|
}
|
|
87
81
|
return output.canExecute && canStartKarmaServer;
|
|
@@ -150,4 +144,3 @@ class TestIosCommand extends TestCommandBase {
|
|
|
150
144
|
}
|
|
151
145
|
yok_1.injector.registerCommand("test|android", TestAndroidCommand);
|
|
152
146
|
yok_1.injector.registerCommand("test|ios", TestIosCommand);
|
|
153
|
-
//# sourceMappingURL=test.js.map
|
package/lib/commands/typings.js
CHANGED
|
@@ -102,7 +102,7 @@ class TypingsCommand {
|
|
|
102
102
|
value: item.id,
|
|
103
103
|
};
|
|
104
104
|
}), true, {
|
|
105
|
-
optionsPerPage: process.stdout.rows - 6,
|
|
105
|
+
optionsPerPage: process.stdout.rows - 6,
|
|
106
106
|
});
|
|
107
107
|
this.$logger.clearScreen();
|
|
108
108
|
return items
|
|
@@ -178,4 +178,3 @@ class TypingsCommand {
|
|
|
178
178
|
}
|
|
179
179
|
exports.TypingsCommand = TypingsCommand;
|
|
180
180
|
yok_1.injector.registerCommand("typings", TypingsCommand);
|
|
181
|
-
//# sourceMappingURL=typings.js.map
|
|
@@ -43,10 +43,6 @@ class UpdatePlatformCommand {
|
|
|
43
43
|
platform,
|
|
44
44
|
options: this.$options,
|
|
45
45
|
};
|
|
46
|
-
// If version is not specified, we know the command will install the latest compatible Android runtime.
|
|
47
|
-
// The latest compatible Android runtime supports Java version, so we do not need to pass it here.
|
|
48
|
-
// Passing projectDir to the @nativescript/doctor validation will cause it to check the runtime from the current package.json
|
|
49
|
-
// So in this case, where we do not want to validate the runtime, just do not pass both projectDir and runtimeVersion.
|
|
50
46
|
if (versionToBeInstalled) {
|
|
51
47
|
checkEnvironmentRequirementsInput.projectDir = this.$projectData.projectDir;
|
|
52
48
|
checkEnvironmentRequirementsInput.runtimeVersion = versionToBeInstalled;
|
|
@@ -59,4 +55,3 @@ class UpdatePlatformCommand {
|
|
|
59
55
|
}
|
|
60
56
|
exports.UpdatePlatformCommand = UpdatePlatformCommand;
|
|
61
57
|
yok_1.injector.registerCommand("platform|update", UpdatePlatformCommand);
|
|
62
|
-
//# sourceMappingURL=update-platform.js.map
|
package/lib/commands/update.js
CHANGED
|
@@ -27,7 +27,6 @@ class UpdateCommand {
|
|
|
27
27
|
execute(args) {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
if (this.$options.markingMode) {
|
|
30
|
-
// ns update --markingMode
|
|
31
30
|
yield this.$markingModeService.handleMarkingModeFullDeprecation({
|
|
32
31
|
projectDir: this.$projectData.projectDir,
|
|
33
32
|
forceSwitch: true,
|
|
@@ -69,4 +68,3 @@ UpdateCommand.SHOULD_MIGRATE_PROJECT_MESSAGE = 'This project is not compatible w
|
|
|
69
68
|
UpdateCommand.PROJECT_UP_TO_DATE_MESSAGE = "This project is up to date.";
|
|
70
69
|
exports.UpdateCommand = UpdateCommand;
|
|
71
70
|
yok_1.injector.registerCommand("update", UpdateCommand);
|
|
72
|
-
//# sourceMappingURL=update.js.map
|
package/lib/common/bootstrap.js
CHANGED
|
@@ -95,4 +95,3 @@ yok_1.injector.require("xcodeSelectService", "./services/xcode-select-service");
|
|
|
95
95
|
yok_1.injector.require("net", "./services/net-service");
|
|
96
96
|
yok_1.injector.require("qr", "./services/qr");
|
|
97
97
|
yok_1.injector.require(["lockfile", "lockService"], "./services/lock-service");
|
|
98
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -60,7 +60,6 @@ class ChildProcess extends events_1.EventEmitter {
|
|
|
60
60
|
spawn(command, args, options) {
|
|
61
61
|
var _a;
|
|
62
62
|
if (command.charAt(0) === ".") {
|
|
63
|
-
// resolve relative paths to full paths to avoid node Spawn ENOENT errors on some setups.
|
|
64
63
|
const cwd = (_a = options === null || options === void 0 ? void 0 : options.cwd) !== null && _a !== void 0 ? _a : process.cwd();
|
|
65
64
|
command = (0, path_1.resolve)(cwd, command);
|
|
66
65
|
}
|
|
@@ -72,7 +71,6 @@ class ChildProcess extends events_1.EventEmitter {
|
|
|
72
71
|
return child_process.fork(modulePath, args, options);
|
|
73
72
|
}
|
|
74
73
|
spawnFromEvent(command, args, event, options, spawnFromEventOptions) {
|
|
75
|
-
// event should be exit or close
|
|
76
74
|
return new Promise((resolve, reject) => {
|
|
77
75
|
const childProcess = this.spawn(command, args, options);
|
|
78
76
|
let isResolved = false;
|
|
@@ -217,4 +215,3 @@ class ChildProcess extends events_1.EventEmitter {
|
|
|
217
215
|
}
|
|
218
216
|
exports.ChildProcess = ChildProcess;
|
|
219
217
|
yok_1.injector.register("childProcess", ChildProcess);
|
|
220
|
-
//# sourceMappingURL=child-process.js.map
|
|
@@ -49,11 +49,9 @@ class AnalyticsCommand {
|
|
|
49
49
|
switch (arg.toLowerCase()) {
|
|
50
50
|
case "enable":
|
|
51
51
|
yield this.$analyticsService.setStatus(this.settingName, true);
|
|
52
|
-
// TODO(Analytics): await this.$analyticsService.track(this.settingName, "enabled");
|
|
53
52
|
this.$logger.info(`${this.humanReadableSettingName} is now enabled.`);
|
|
54
53
|
break;
|
|
55
54
|
case "disable":
|
|
56
|
-
// TODO(Analytics): await this.$analyticsService.track(this.settingName, "disabled");
|
|
57
55
|
yield this.$analyticsService.setStatus(this.settingName, false);
|
|
58
56
|
this.$logger.info(`${this.humanReadableSettingName} is now disabled.`);
|
|
59
57
|
break;
|
|
@@ -81,4 +79,3 @@ class ErrorReportingCommand extends AnalyticsCommand {
|
|
|
81
79
|
}
|
|
82
80
|
exports.ErrorReportingCommand = ErrorReportingCommand;
|
|
83
81
|
yok_1.injector.registerCommand("error-reporting", ErrorReportingCommand);
|
|
84
|
-
//# sourceMappingURL=analytics.js.map
|
|
@@ -25,7 +25,6 @@ class AutoCompleteCommand {
|
|
|
25
25
|
if (helpers.isInteractive()) {
|
|
26
26
|
if (this.$autoCompletionService.isAutoCompletionEnabled()) {
|
|
27
27
|
if (this.$autoCompletionService.isObsoleteAutoCompletionEnabled()) {
|
|
28
|
-
// obsolete autocompletion is enabled, update it to the new one:
|
|
29
28
|
yield this.$autoCompletionService.enableAutoCompletion();
|
|
30
29
|
}
|
|
31
30
|
else {
|
|
@@ -40,7 +39,6 @@ class AutoCompleteCommand {
|
|
|
40
39
|
yield this.$autoCompletionService.enableAutoCompletion();
|
|
41
40
|
}
|
|
42
41
|
else {
|
|
43
|
-
// make sure we've removed all autocompletion code from all shell profiles
|
|
44
42
|
this.$autoCompletionService.disableAutoCompletion();
|
|
45
43
|
}
|
|
46
44
|
}
|
|
@@ -110,4 +108,3 @@ class AutoCompleteStatusCommand {
|
|
|
110
108
|
}
|
|
111
109
|
exports.AutoCompleteStatusCommand = AutoCompleteStatusCommand;
|
|
112
110
|
yok_1.injector.registerCommand("autocomplete|status", AutoCompleteStatusCommand);
|
|
113
|
-
//# sourceMappingURL=autocompletion.js.map
|
|
@@ -42,4 +42,3 @@ class OpenDeviceLogStreamCommand {
|
|
|
42
42
|
OpenDeviceLogStreamCommand.NOT_SPECIFIED_DEVICE_ERROR_MESSAGE = "More than one device found. Specify device explicitly.";
|
|
43
43
|
exports.OpenDeviceLogStreamCommand = OpenDeviceLogStreamCommand;
|
|
44
44
|
yok_1.injector.registerCommand(["device|log", "devices|log"], OpenDeviceLogStreamCommand);
|
|
45
|
-
//# sourceMappingURL=device-log-stream.js.map
|
|
@@ -35,7 +35,6 @@ class GetFileCommand {
|
|
|
35
35
|
this.$projectData.initializeProjectData();
|
|
36
36
|
}
|
|
37
37
|
catch (err) {
|
|
38
|
-
// ignore the error
|
|
39
38
|
}
|
|
40
39
|
if (!this.$projectData.projectIdentifiers) {
|
|
41
40
|
this.$errors.fail("Please enter application identifier or execute this command in project.");
|
|
@@ -53,4 +52,3 @@ class GetFileCommand {
|
|
|
53
52
|
}
|
|
54
53
|
exports.GetFileCommand = GetFileCommand;
|
|
55
54
|
yok_1.injector.registerCommand(["device|get-file", "devices|get-file"], GetFileCommand);
|
|
56
|
-
//# sourceMappingURL=get-file.js.map
|
|
@@ -103,7 +103,6 @@ class ListDevicesCommand {
|
|
|
103
103
|
"Version",
|
|
104
104
|
"Device Identifier",
|
|
105
105
|
"Image Identifier",
|
|
106
|
-
// "Error Help",
|
|
107
106
|
], []);
|
|
108
107
|
for (const info of emulators) {
|
|
109
108
|
table.push([
|
|
@@ -112,7 +111,6 @@ class ListDevicesCommand {
|
|
|
112
111
|
info.version,
|
|
113
112
|
info.identifier || "",
|
|
114
113
|
info.imageIdentifier || "",
|
|
115
|
-
// info.errorHelp || "",
|
|
116
114
|
]);
|
|
117
115
|
}
|
|
118
116
|
this.$logger.info(table.toString());
|
|
@@ -150,4 +148,3 @@ class ListiOSDevicesCommand {
|
|
|
150
148
|
}
|
|
151
149
|
}
|
|
152
150
|
yok_1.injector.registerCommand(["device|ios", "devices|ios"], ListiOSDevicesCommand);
|
|
153
|
-
//# sourceMappingURL=list-devices.js.map
|
|
@@ -36,7 +36,6 @@ class ListFilesCommand {
|
|
|
36
36
|
this.$projectData.initializeProjectData();
|
|
37
37
|
}
|
|
38
38
|
catch (err) {
|
|
39
|
-
// ignore the error
|
|
40
39
|
}
|
|
41
40
|
if (!this.$projectData.projectIdentifiers) {
|
|
42
41
|
this.$errors.fail("Please enter application identifier or execute this command in project.");
|
|
@@ -54,4 +53,3 @@ class ListFilesCommand {
|
|
|
54
53
|
}
|
|
55
54
|
exports.ListFilesCommand = ListFilesCommand;
|
|
56
55
|
yok_1.injector.registerCommand(["device|list-files", "devices|list-files"], ListFilesCommand);
|
|
57
|
-
//# sourceMappingURL=list-files.js.map
|
|
@@ -36,7 +36,6 @@ class PutFileCommand {
|
|
|
36
36
|
this.$projectData.initializeProjectData();
|
|
37
37
|
}
|
|
38
38
|
catch (err) {
|
|
39
|
-
// ignore the error
|
|
40
39
|
}
|
|
41
40
|
if (!this.$projectData.projectIdentifiers) {
|
|
42
41
|
this.$errors.fail("Please enter application identifier or execute this command in project.");
|
|
@@ -54,4 +53,3 @@ class PutFileCommand {
|
|
|
54
53
|
}
|
|
55
54
|
exports.PutFileCommand = PutFileCommand;
|
|
56
55
|
yok_1.injector.registerCommand(["device|put-file", "devices|put-file"], PutFileCommand);
|
|
57
|
-
//# sourceMappingURL=put-file.js.map
|
|
@@ -29,7 +29,7 @@ class DoctorIosCommand {
|
|
|
29
29
|
trackResult: false,
|
|
30
30
|
projectDir: this.$projectHelper.projectDir,
|
|
31
31
|
forceCheck: true,
|
|
32
|
-
platform: "ios"
|
|
32
|
+
platform: "ios",
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -46,10 +46,9 @@ class DoctorAndroidCommand {
|
|
|
46
46
|
trackResult: false,
|
|
47
47
|
projectDir: this.$projectHelper.projectDir,
|
|
48
48
|
forceCheck: true,
|
|
49
|
-
platform: "android"
|
|
49
|
+
platform: "android",
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
exports.DoctorAndroidCommand = DoctorAndroidCommand;
|
|
54
54
|
yok_1.injector.registerCommand("doctor|android", DoctorAndroidCommand);
|
|
55
|
-
//# sourceMappingURL=doctor.js.map
|
|
@@ -43,4 +43,3 @@ GenerateMessages.MESSAGES_DEFINITIONS_FILE_NAME = "messages.interface.d.ts";
|
|
|
43
43
|
GenerateMessages.MESSAGES_IMPLEMENTATION_FILE_NAME = "messages.ts";
|
|
44
44
|
exports.GenerateMessages = GenerateMessages;
|
|
45
45
|
yok_1.injector.registerCommand("dev-generate-messages", GenerateMessages);
|
|
46
|
-
//# sourceMappingURL=generate-messages.js.map
|
|
@@ -15,16 +15,12 @@ const helpers_1 = require("../helpers");
|
|
|
15
15
|
const constants_1 = require("../../constants");
|
|
16
16
|
const yok_1 = require("../yok");
|
|
17
17
|
class PreUninstallCommand {
|
|
18
|
-
constructor($analyticsService, $extensibilityService, $fs,
|
|
19
|
-
// private $opener: IOpener,
|
|
20
|
-
$packageInstallationManager, $settingsService) {
|
|
18
|
+
constructor($analyticsService, $extensibilityService, $fs, $packageInstallationManager, $settingsService) {
|
|
21
19
|
this.$analyticsService = $analyticsService;
|
|
22
20
|
this.$extensibilityService = $extensibilityService;
|
|
23
21
|
this.$fs = $fs;
|
|
24
22
|
this.$packageInstallationManager = $packageInstallationManager;
|
|
25
23
|
this.$settingsService = $settingsService;
|
|
26
|
-
// disabled for now (6/24/2020)
|
|
27
|
-
// private static FEEDBACK_FORM_URL = "https://www.nativescript.org/uninstall-feedback";
|
|
28
24
|
this.allowedParameters = [];
|
|
29
25
|
}
|
|
30
26
|
execute(args) {
|
|
@@ -38,7 +34,7 @@ class PreUninstallCommand {
|
|
|
38
34
|
/^unlink$/,
|
|
39
35
|
]);
|
|
40
36
|
yield this.$analyticsService.trackEventActionInGoogleAnalytics({
|
|
41
|
-
action: "Uninstall CLI"
|
|
37
|
+
action: "Uninstall CLI",
|
|
42
38
|
additionalData: `isIntentionalUninstall${constants_1.AnalyticsEventLabelDelimiter}${isIntentionalUninstall}${constants_1.AnalyticsEventLabelDelimiter}isInteractive${constants_1.AnalyticsEventLabelDelimiter}${!!(0, helpers_1.isInteractive)()}`,
|
|
43
39
|
});
|
|
44
40
|
if (isIntentionalUninstall) {
|
|
@@ -57,14 +53,9 @@ class PreUninstallCommand {
|
|
|
57
53
|
}
|
|
58
54
|
handleFeedbackForm() {
|
|
59
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
// disabled for now (6/24/2020)
|
|
61
|
-
// if (isInteractive()) {
|
|
62
|
-
// this.$opener.open(PreUninstallCommand.FEEDBACK_FORM_URL);
|
|
63
|
-
// }
|
|
64
56
|
return Promise.resolve();
|
|
65
57
|
});
|
|
66
58
|
}
|
|
67
59
|
}
|
|
68
60
|
exports.PreUninstallCommand = PreUninstallCommand;
|
|
69
61
|
yok_1.injector.registerCommand("dev-preuninstall", PreUninstallCommand);
|
|
70
|
-
//# sourceMappingURL=preuninstall.js.map
|
|
@@ -22,10 +22,7 @@ class ProxyCommandBase {
|
|
|
22
22
|
tryTrackUsage() {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
24
|
try {
|
|
25
|
-
// TODO(Analytics): Check why we have set the `disableAnalytics` to true and we track the command as separate one
|
|
26
|
-
// instead of tracking it through the commandsService.
|
|
27
25
|
this.$logger.trace(this.commandName);
|
|
28
|
-
// await this.$analyticsService.trackFeature(this.commandName);
|
|
29
26
|
}
|
|
30
27
|
catch (ex) {
|
|
31
28
|
this.$logger.trace("Error in trying to track proxy command usage:");
|
|
@@ -35,4 +32,3 @@ class ProxyCommandBase {
|
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
exports.ProxyCommandBase = ProxyCommandBase;
|
|
38
|
-
//# sourceMappingURL=proxy-base.js.map
|
package/lib/common/common-lib.js
CHANGED
package/lib/common/constants.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SOCKET_CONNECTION_TIMEOUT_MS = exports.AndroidVirtualDevice = exports.ATTACH_REQUEST_EVENT_NAME = exports.DEBUGGER_PORT_FOUND_EVENT_NAME = exports.DEFAULT_CHUNK_SIZE = exports.HttpProtocolToPort = exports.HttpStatusCodes = exports.Proxy = exports.IOS_RELAY_NOTIFICATION_COMMAND_TYPE = exports.IOS_OBSERVE_NOTIFICATION_COMMAND_TYPE = exports.IOS_POST_NOTIFICATION_COMMAND_TYPE = exports.FileExtensions = exports.TNS_CORE_MODULES = exports.NODE_MODULES_DIR_NAME = exports.Configurations = exports.TARGET_FRAMEWORK_IDENTIFIERS = exports.FAIL_LIVESYNC_LOG_REGEX = exports.IOS_APP_CRASH_LOG_REG_EXP = exports.IOS_LOG_PREDICATE = exports.DEVICE_LOG_EVENT_NAME = exports.EmulatorDiscoveryNames = exports.DeviceDiscoveryEventNames = exports.HmrConstants = exports.LiveSyncPaths = exports.APPLE_VENDOR_NAME = exports.NOT_RUNNING_EMULATOR_STATUS = exports.RUNNING_EMULATOR_STATUS = exports.CONNECTED_STATUS = exports.UNREACHABLE_STATUS = exports.ERROR_NO_VALID_SUBCOMMAND_FORMAT = exports.ERROR_CANNOT_RESOLVE_DEVICE = exports.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR = exports.ERROR_CANT_USE_SIMULATOR = exports.ERROR_NO_DEVICES = exports.APP_RESOURCES_FOLDER_NAME = exports.DeviceTypes = exports.ProvisionType = void 0;
|
|
4
|
-
// enumeration taken from ProvisionType.cs
|
|
5
4
|
class ProvisionType {
|
|
6
5
|
}
|
|
7
6
|
ProvisionType.Development = "Development";
|
|
@@ -83,9 +82,6 @@ Proxy.USE_PROXY = "USE_PROXY";
|
|
|
83
82
|
Proxy.PROXY_PORT = "PROXY_PORT";
|
|
84
83
|
Proxy.PROXY_HOSTNAME = "PROXY_HOSTNAME";
|
|
85
84
|
exports.Proxy = Proxy;
|
|
86
|
-
/**
|
|
87
|
-
* Http status codes available from `require("http").STATUS_CODES`.
|
|
88
|
-
*/
|
|
89
85
|
class HttpStatusCodes {
|
|
90
86
|
}
|
|
91
87
|
HttpStatusCodes.SEE_OTHER = 303;
|
|
@@ -110,13 +106,7 @@ AndroidVirtualDevice.INI_FILES_MASK = /^(.*)\.ini$/i;
|
|
|
110
106
|
AndroidVirtualDevice.AVD_FILES_MASK = /^(.*)\.avd$/i;
|
|
111
107
|
AndroidVirtualDevice.MIN_ANDROID_APILEVEL = 17;
|
|
112
108
|
AndroidVirtualDevice.MIN_ANDROID_VERSION = "4.2";
|
|
113
|
-
/**
|
|
114
|
-
* The message that is printed from `avdmanager list avds`
|
|
115
|
-
*/
|
|
116
109
|
AndroidVirtualDevice.AVAILABLE_AVDS_MESSAGE = "Available Android Virtual Devices:";
|
|
117
|
-
/**
|
|
118
|
-
* The delimiter between devices that is used from `avdmanager list avds`
|
|
119
|
-
*/
|
|
120
110
|
AndroidVirtualDevice.AVD_LIST_DELIMITER = "---------";
|
|
121
111
|
AndroidVirtualDevice.CONFIG_INI_FILE_NAME = "config.ini";
|
|
122
112
|
AndroidVirtualDevice.INI_FILE_EXTENSION = ".ini";
|
|
@@ -130,4 +120,3 @@ AndroidVirtualDevice.GENYMOTION_DEFAULT_STDERR_STRING = "Logging activities to f
|
|
|
130
120
|
AndroidVirtualDevice.UNABLE_TO_START_EMULATOR_MESSAGE = "Cannot run the app in the selected native emulator. Try to restart the adb server by running the `adb kill-server` command in the Command Prompt, or increase the allocated RAM of the virtual device through the Android Virtual Device manager. NativeScript CLI users can try to increase the timeout of the operation by adding the `--timeout` flag.";
|
|
131
121
|
exports.AndroidVirtualDevice = AndroidVirtualDevice;
|
|
132
122
|
exports.SOCKET_CONNECTION_TIMEOUT_MS = 30000;
|
|
133
|
-
//# sourceMappingURL=constants.js.map
|