nativescript 8.9.0-dev.0 → 8.9.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/test-deps-versions-generated.json +1 -1
- package/lib/.d.ts +1 -0
- package/lib/android-tools-info.js +32 -9
- package/lib/base-package-manager.js +71 -47
- package/lib/bootstrap.js +6 -1
- package/lib/bun-package-manager.js +104 -65
- package/lib/color.js +5 -2
- package/lib/commands/add-platform.js +31 -14
- package/lib/commands/apple-login.js +30 -18
- package/lib/commands/appstore-list.js +46 -34
- package/lib/commands/appstore-upload.js +68 -52
- package/lib/commands/build.js +90 -57
- package/lib/commands/clean.js +197 -161
- package/lib/commands/command-base.js +28 -14
- package/lib/commands/config.js +71 -48
- package/lib/commands/create-project.js +235 -210
- package/lib/commands/debug.js +93 -66
- package/lib/commands/deploy.js +47 -30
- package/lib/commands/embedding/embed.js +59 -33
- package/lib/commands/extensibility/install-extension.js +17 -5
- package/lib/commands/extensibility/list-extensions.js +25 -13
- package/lib/commands/extensibility/uninstall-extension.js +16 -4
- package/lib/commands/fonts.js +42 -30
- package/lib/commands/generate-assets.js +29 -13
- package/lib/commands/generate-help.js +14 -2
- package/lib/commands/generate.js +70 -12
- package/lib/commands/info.js +14 -2
- package/lib/commands/install.js +50 -34
- package/lib/commands/list-platforms.js +26 -14
- package/lib/commands/migrate.js +27 -15
- package/lib/commands/native-add.js +51 -23
- package/lib/commands/platform-clean.js +33 -19
- package/lib/commands/plugin/add-plugin.js +26 -12
- package/lib/commands/plugin/build-plugin.js +45 -31
- package/lib/commands/plugin/create-plugin.js +138 -110
- package/lib/commands/plugin/list-plugins.js +34 -22
- package/lib/commands/plugin/remove-plugin.js +35 -20
- package/lib/commands/plugin/update-plugin.js +34 -20
- package/lib/commands/post-install.js +39 -20
- package/lib/commands/prepare.js +39 -22
- package/lib/commands/preview.js +64 -49
- package/lib/commands/remove-platform.js +19 -7
- package/lib/commands/resources/resources-update.js +28 -13
- package/lib/commands/run.js +77 -55
- package/lib/commands/setup.js +1 -0
- package/lib/commands/start.js +20 -6
- package/lib/commands/test-init.js +138 -123
- package/lib/commands/test.js +97 -67
- package/lib/commands/typings.js +143 -126
- package/lib/commands/update-platform.js +40 -22
- package/lib/commands/update.js +45 -30
- package/lib/commands/widget.js +767 -0
- package/lib/common/bootstrap.js +1 -0
- package/lib/common/child-process.js +75 -53
- package/lib/common/codeGeneration/code-entity.js +2 -1
- package/lib/common/codeGeneration/code-printer.js +2 -1
- package/lib/common/command-params.js +19 -7
- package/lib/common/commands/analytics.js +43 -27
- package/lib/common/commands/autocompletion.js +59 -39
- package/lib/common/commands/device/device-log-stream.js +24 -12
- package/lib/common/commands/device/get-file.js +35 -22
- package/lib/common/commands/device/list-applications.js +24 -12
- package/lib/common/commands/device/list-devices.js +90 -72
- package/lib/common/commands/device/list-files.js +36 -23
- package/lib/common/commands/device/put-file.js +35 -22
- package/lib/common/commands/device/run-application.js +26 -12
- package/lib/common/commands/device/stop-application.js +23 -11
- package/lib/common/commands/device/uninstall-application.js +18 -6
- package/lib/common/commands/doctor.js +3 -2
- package/lib/common/commands/generate-messages.js +29 -17
- package/lib/common/commands/help.js +34 -20
- package/lib/common/commands/package-manager-get.js +18 -6
- package/lib/common/commands/package-manager-set.js +21 -9
- package/lib/common/commands/post-install.js +14 -2
- package/lib/common/commands/preuninstall.js +48 -24
- package/lib/common/commands/proxy/proxy-base.js +23 -8
- package/lib/common/commands/proxy/proxy-clear.js +16 -4
- package/lib/common/commands/proxy/proxy-get.js +15 -3
- package/lib/common/commands/proxy/proxy-set.js +101 -87
- package/lib/common/common-lib.js +1 -0
- package/lib/common/constants.js +22 -11
- package/lib/common/decorators.js +70 -10
- package/lib/common/dispatchers.js +106 -80
- package/lib/common/errors.js +116 -91
- package/lib/common/file-system.js +141 -108
- package/lib/common/header.js +5 -1
- package/lib/common/helpers.js +267 -152
- package/lib/common/host-info.js +54 -37
- package/lib/common/http-client.js +128 -93
- package/lib/common/logger/appenders/cli-appender.js +6 -1
- package/lib/common/logger/appenders/emit-appender.js +6 -1
- package/lib/common/logger/layouts/cli-layout.js +3 -1
- package/lib/common/logger/logger.js +9 -4
- package/lib/common/messages/messages.js +6 -0
- package/lib/common/mobile/android/android-application-manager.js +162 -122
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +2 -1
- package/lib/common/mobile/android/android-debug-bridge.js +118 -87
- package/lib/common/mobile/android/android-device-file-system.js +135 -98
- package/lib/common/mobile/android/android-device-hash-service.js +78 -50
- package/lib/common/mobile/android/android-device.js +93 -68
- package/lib/common/mobile/android/android-emulator-services.js +131 -105
- package/lib/common/mobile/android/android-ini-file-parser.js +9 -0
- package/lib/common/mobile/android/android-log-filter.js +5 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +123 -76
- package/lib/common/mobile/android/device-android-debug-bridge.js +30 -13
- package/lib/common/mobile/android/genymotion/genymotion-service.js +123 -91
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +92 -64
- package/lib/common/mobile/android/logcat-helper.js +140 -108
- package/lib/common/mobile/application-manager-base.js +113 -84
- package/lib/common/mobile/device-emitter.js +4 -0
- package/lib/common/mobile/device-log-emitter.js +1 -0
- package/lib/common/mobile/device-log-provider-base.js +19 -7
- package/lib/common/mobile/device-log-provider.js +23 -0
- package/lib/common/mobile/device-platforms-constants.js +1 -0
- package/lib/common/mobile/emulator-helper.js +3 -0
- package/lib/common/mobile/ios/device/ios-application-manager.js +111 -79
- package/lib/common/mobile/ios/device/ios-device-file-system.js +106 -78
- package/lib/common/mobile/ios/device/ios-device-operations.js +146 -105
- package/lib/common/mobile/ios/device/ios-device.js +40 -20
- package/lib/common/mobile/ios/ios-device-base.js +82 -58
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +2 -0
- package/lib/common/mobile/ios/ios-log-filter.js +1 -0
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +96 -63
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +2 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +95 -60
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +48 -27
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +63 -37
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +36 -24
- package/lib/common/mobile/local-to-device-path-data-factory.js +1 -0
- package/lib/common/mobile/log-filter.js +2 -0
- package/lib/common/mobile/logging-levels.js +1 -0
- package/lib/common/mobile/mobile-core/android-device-discovery.js +64 -43
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +35 -21
- package/lib/common/mobile/mobile-core/android-process-service.js +214 -143
- package/lib/common/mobile/mobile-core/device-discovery.js +14 -2
- package/lib/common/mobile/mobile-core/devices-service.js +505 -386
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +37 -24
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +65 -47
- package/lib/common/mobile/mobile-helper.js +27 -15
- package/lib/common/mobile/wp8/wp8-emulator-services.js +53 -25
- package/lib/common/opener.js +3 -2
- package/lib/common/os-info.js +1 -0
- package/lib/common/plist-parser.js +1 -0
- package/lib/common/project-helper.js +1 -0
- package/lib/common/prompter.js +114 -91
- package/lib/common/queue.js +21 -9
- package/lib/common/resource-loader.js +1 -0
- package/lib/common/services/auto-completion-service.js +65 -40
- package/lib/common/services/cancellation.js +29 -17
- package/lib/common/services/commands-service.js +180 -146
- package/lib/common/services/help-service.js +166 -133
- package/lib/common/services/hooks-service.js +121 -93
- package/lib/common/services/ios-notification-service.js +35 -21
- package/lib/common/services/json-file-settings-service.js +77 -52
- package/lib/common/services/lock-service.js +58 -35
- package/lib/common/services/message-contract-generator.js +47 -35
- package/lib/common/services/messages-service.js +1 -0
- package/lib/common/services/micro-templating-service.js +21 -4
- package/lib/common/services/net-service.js +110 -90
- package/lib/common/services/project-files-manager.js +28 -10
- package/lib/common/services/project-files-provider-base.js +1 -0
- package/lib/common/services/proxy-service.js +25 -13
- package/lib/common/services/qr.js +25 -13
- package/lib/common/services/settings-service.js +2 -1
- package/lib/common/services/xcode-select-service.js +36 -20
- package/lib/common/utils.js +3 -2
- package/lib/common/validators/project-name-validator.js +2 -1
- package/lib/common/validators/validation-result.js +2 -1
- package/lib/common/verify-node-version.js +11 -3
- package/lib/common/yok.js +69 -35
- package/lib/config.js +72 -36
- package/lib/constants-provider.js +1 -0
- package/lib/constants.js +78 -25
- package/lib/controllers/build-controller.js +100 -82
- package/lib/controllers/debug-controller.js +133 -107
- package/lib/controllers/deploy-controller.js +24 -15
- package/lib/controllers/migrate-controller.js +884 -723
- package/lib/controllers/platform-controller.js +94 -71
- package/lib/controllers/prepare-controller.js +274 -232
- package/lib/controllers/run-controller.js +427 -397
- package/lib/controllers/update-controller-base.js +30 -16
- package/lib/controllers/update-controller.js +130 -94
- package/lib/data/build-data.js +1 -0
- package/lib/data/controller-data-base.js +1 -0
- package/lib/data/debug-data.js +1 -0
- package/lib/data/platform-data.js +1 -0
- package/lib/data/prepare-data.js +2 -4
- package/lib/data/run-data.js +1 -0
- package/lib/definitions/ios.d.ts +4 -2
- package/lib/definitions/project.d.ts +26 -0
- package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
- package/lib/detached-processes/cleanup-process.js +43 -30
- package/lib/detached-processes/file-log-service.js +2 -1
- package/lib/device-path-provider.js +35 -23
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
- package/lib/device-sockets/ios/notification.js +4 -1
- package/lib/device-sockets/ios/socket-request-executor.js +42 -24
- package/lib/helpers/android-bundle-validator-helper.js +3 -2
- package/lib/helpers/deploy-command-helper.js +50 -44
- package/lib/helpers/key-command-helper.js +17 -6
- package/lib/helpers/livesync-command-helper.js +155 -137
- package/lib/helpers/network-connectivity-validator.js +18 -6
- package/lib/helpers/options-track-helper.js +19 -7
- package/lib/helpers/package-path-helper.js +1 -0
- package/lib/helpers/platform-command-helper.js +127 -101
- package/lib/helpers/version-validator-helper.js +1 -0
- package/lib/key-commands/bootstrap.js +3 -2
- package/lib/key-commands/index.js +205 -154
- package/lib/nativescript-cli-lib-bootstrap.js +4 -0
- package/lib/nativescript-cli-lib.js +1 -0
- package/lib/nativescript-cli.js +24 -6
- package/lib/node/pbxproj-dom-xcode.js +1 -0
- package/lib/node/xcode.js +1 -0
- package/lib/node-package-manager.js +114 -81
- package/lib/options.js +156 -122
- package/lib/package-installation-manager.js +172 -130
- package/lib/package-manager.js +88 -63
- package/lib/platform-command-param.js +16 -4
- package/lib/pnpm-package-manager.js +81 -59
- package/lib/project-data.js +13 -1
- package/lib/providers/project-files-provider.js +2 -1
- package/lib/resolvers/livesync-service-resolver.js +1 -0
- package/lib/services/analytics/analytics-broker-process.js +32 -19
- package/lib/services/analytics/analytics-broker.js +31 -17
- package/lib/services/analytics/analytics-service.js +210 -170
- package/lib/services/analytics/google-analytics-provider.js +59 -43
- package/lib/services/analytics-settings-service.js +37 -15
- package/lib/services/android/android-bundle-tool-service.js +61 -43
- package/lib/services/android/gradle-build-args-service.js +23 -9
- package/lib/services/android/gradle-build-service.js +36 -22
- package/lib/services/android/gradle-command-service.js +36 -22
- package/lib/services/android-device-debug-service.js +123 -90
- package/lib/services/android-plugin-build-service.js +260 -205
- package/lib/services/android-project-service.js +241 -129
- package/lib/services/android-resources-migration-service.js +71 -51
- package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
- package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
- package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
- package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
- package/lib/services/assets-generation/assets-generation-service.js +128 -103
- package/lib/services/build-artifacts-service.js +22 -10
- package/lib/services/build-data-service.js +1 -0
- package/lib/services/build-info-file-service.js +36 -20
- package/lib/services/cleanup-service.js +81 -48
- package/lib/services/cocoapods-platform-manager.js +9 -0
- package/lib/services/cocoapods-service.js +153 -112
- package/lib/services/debug-data-service.js +1 -0
- package/lib/services/debug-service-base.js +7 -0
- package/lib/services/device/device-install-app-service.js +72 -54
- package/lib/services/doctor-service.js +135 -101
- package/lib/services/extensibility-service.js +108 -81
- package/lib/services/files-hash-service.js +44 -26
- package/lib/services/hmr-status-service.js +3 -1
- package/lib/services/info-service.js +1 -0
- package/lib/services/initialize-service.js +54 -37
- package/lib/services/ios/export-options-plist-service.js +55 -38
- package/lib/services/ios/ios-signing-service.js +191 -168
- package/lib/services/ios/spm-service.js +73 -43
- package/lib/services/ios/xcodebuild-args-service.js +103 -77
- package/lib/services/ios/xcodebuild-command-service.js +26 -14
- package/lib/services/ios/xcodebuild-service.js +72 -52
- package/lib/services/ios-debugger-port-service.js +38 -24
- package/lib/services/ios-device-debug-service.js +103 -75
- package/lib/services/ios-entitlements-service.js +43 -31
- package/lib/services/ios-extensions-service.js +30 -18
- package/lib/services/ios-log-filter.js +20 -0
- package/lib/services/ios-native-target-service.js +6 -4
- package/lib/services/ios-project-service.js +605 -437
- package/lib/services/ios-provision-service.js +132 -108
- package/lib/services/ios-watch-app-service.js +33 -21
- package/lib/services/ip-service.js +55 -38
- package/lib/services/itmstransporter-service.js +153 -129
- package/lib/services/karma-execution.js +2 -0
- package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
- package/lib/services/livesync/android-device-livesync-service.js +151 -120
- package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
- package/lib/services/livesync/android-livesync-service.js +36 -14
- package/lib/services/livesync/android-livesync-tool.js +117 -90
- package/lib/services/livesync/device-livesync-service-base.js +30 -15
- package/lib/services/livesync/ios-device-livesync-service.js +150 -114
- package/lib/services/livesync/ios-livesync-service.js +60 -42
- package/lib/services/livesync/livesync-socket.js +1 -0
- package/lib/services/livesync/platform-livesync-service-base.js +124 -94
- package/lib/services/livesync-process-data-service.js +1 -0
- package/lib/services/log-parser-service.js +2 -1
- package/lib/services/log-source-map-service.js +56 -30
- package/lib/services/marking-mode-service.js +33 -17
- package/lib/services/metadata-filtering-service.js +1 -0
- package/lib/services/npm-config-service.js +5 -1
- package/lib/services/pacote-service.js +73 -51
- package/lib/services/performance-service.js +4 -2
- package/lib/services/platform/add-platform-service.js +119 -51
- package/lib/services/platform/platform-validation-service.js +34 -22
- package/lib/services/platform/prepare-native-platform-service.js +65 -49
- package/lib/services/platform-environment-requirements.js +43 -27
- package/lib/services/platform-project-service-base.js +1 -0
- package/lib/services/platforms-data-service.js +1 -0
- package/lib/services/plugins-service.js +168 -125
- package/lib/services/prepare-data-service.js +1 -0
- package/lib/services/project-backup-service.js +5 -1
- package/lib/services/project-changes-service.js +152 -124
- package/lib/services/project-cleanup-service.js +79 -64
- package/lib/services/project-config-service.js +111 -73
- package/lib/services/project-data-service.js +154 -108
- package/lib/services/project-name-service.js +44 -28
- package/lib/services/project-service.js +113 -84
- package/lib/services/project-templates-service.js +68 -52
- package/lib/services/qr-code-terminal-service.js +1 -0
- package/lib/services/require-service.js +1 -0
- package/lib/services/start-service.js +60 -41
- package/lib/services/temp-service.js +22 -8
- package/lib/services/terminal-spinner-service.js +28 -15
- package/lib/services/test-execution-service.js +79 -59
- package/lib/services/test-initialization-service.js +6 -2
- package/lib/services/timeline-profiler-service.js +2 -1
- package/lib/services/user-settings-service.js +1 -0
- package/lib/services/versions-service.js +140 -119
- package/lib/services/watch-ignore-list-service.js +1 -0
- package/lib/services/webpack/webpack-compiler-service.js +279 -215
- package/lib/services/xcconfig-service.js +21 -8
- package/lib/services/xcproj-service.js +1 -0
- package/lib/shared-event-bus.js +6 -0
- package/lib/sys-info.js +63 -45
- package/lib/tools/config-manipulation/config-transformer.js +21 -0
- package/lib/tools/node-modules/node-modules-builder.js +28 -16
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
- package/lib/yarn-package-manager.js +79 -59
- package/lib/yarn2-package-manager.js +82 -60
- package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
- package/node_modules/@npmcli/move-file/README.md +69 -0
- package/node_modules/@npmcli/move-file/lib/index.js +185 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
- package/node_modules/@npmcli/move-file/package.json +47 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +43 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/fs.realpath/LICENSE +43 -0
- package/node_modules/fs.realpath/README.md +33 -0
- package/node_modules/fs.realpath/index.js +66 -0
- package/node_modules/fs.realpath/old.js +303 -0
- package/node_modules/fs.realpath/package.json +26 -0
- package/node_modules/inflight/LICENSE +15 -0
- package/node_modules/inflight/README.md +37 -0
- package/node_modules/inflight/inflight.js +54 -0
- package/node_modules/inflight/package.json +29 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/once/LICENSE +15 -0
- package/node_modules/once/README.md +79 -0
- package/node_modules/once/once.js +42 -0
- package/node_modules/once/package.json +33 -0
- package/node_modules/path-is-absolute/index.js +20 -0
- package/node_modules/path-is-absolute/license +21 -0
- package/node_modules/path-is-absolute/package.json +43 -0
- package/node_modules/path-is-absolute/readme.md +59 -0
- package/node_modules/rimraf/LICENSE +15 -0
- package/node_modules/rimraf/README.md +101 -0
- package/node_modules/rimraf/bin.js +68 -0
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
- package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
- package/node_modules/rimraf/node_modules/glob/README.md +378 -0
- package/node_modules/rimraf/node_modules/glob/common.js +238 -0
- package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
- package/node_modules/rimraf/node_modules/glob/package.json +55 -0
- package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
- package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
- package/node_modules/rimraf/package.json +32 -0
- package/node_modules/rimraf/rimraf.js +360 -0
- package/node_modules/stringify-package/LICENSE +13 -0
- package/node_modules/stringify-package/README.md +55 -0
- package/node_modules/stringify-package/index.js +18 -0
- package/node_modules/stringify-package/package.json +38 -0
- package/node_modules/wrappy/LICENSE +15 -0
- package/node_modules/wrappy/README.md +36 -0
- package/node_modules/wrappy/package.json +29 -0
- package/node_modules/wrappy/wrappy.js +33 -0
- package/package.json +79 -64
|
@@ -5,6 +5,15 @@ 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
|
+
};
|
|
8
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
18
|
exports.ProjectDataService = void 0;
|
|
10
19
|
const path = require("path");
|
|
@@ -27,12 +36,14 @@ class ProjectDataService {
|
|
|
27
36
|
this.$injector = $injector;
|
|
28
37
|
this.projectDataCache = {};
|
|
29
38
|
try {
|
|
39
|
+
// add the ProjectData of the default projectDir to the projectData cache
|
|
30
40
|
const projectData = this.$injector.resolve("projectData");
|
|
31
41
|
projectData.initializeProjectData();
|
|
32
42
|
this.defaultProjectDir = projectData.projectDir;
|
|
33
43
|
this.projectDataCache[this.defaultProjectDir] = projectData;
|
|
34
44
|
}
|
|
35
45
|
catch (e) {
|
|
46
|
+
// the CLI is required as a lib from a non-project folder
|
|
36
47
|
}
|
|
37
48
|
}
|
|
38
49
|
get $pluginsService() {
|
|
@@ -61,6 +72,8 @@ class ProjectDataService {
|
|
|
61
72
|
delete projectFileInfo.projectData[ProjectDataService.DEPENDENCIES_KEY_NAME][dependencyName];
|
|
62
73
|
this.$fs.writeJson(projectFileInfo.projectFilePath, projectFileInfo.projectData);
|
|
63
74
|
}
|
|
75
|
+
// TODO: Add tests
|
|
76
|
+
// TODO: Remove $projectData and replace it with $projectDataService.getProjectData
|
|
64
77
|
getProjectData(projectDir) {
|
|
65
78
|
projectDir = projectDir || this.defaultProjectDir;
|
|
66
79
|
this.projectDataCache[projectDir] =
|
|
@@ -77,62 +90,73 @@ class ProjectDataService {
|
|
|
77
90
|
this.projectDataCache[projectDir].initializeProjectDataFromContent(packageJsonContent, projectDir);
|
|
78
91
|
return this.projectDataCache[projectDir];
|
|
79
92
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
93
|
+
getAssetsStructure(opts) {
|
|
94
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
const iOSAssetStructure = yield this.getIOSAssetsStructure(opts);
|
|
96
|
+
const androidAssetStructure = yield this.getAndroidAssetsStructure(opts);
|
|
97
|
+
this.$logger.trace("iOS Assets structure:", JSON.stringify(iOSAssetStructure, null, 2));
|
|
98
|
+
this.$logger.trace("Android Assets structure:", JSON.stringify(androidAssetStructure, null, 2));
|
|
99
|
+
return {
|
|
100
|
+
ios: iOSAssetStructure,
|
|
101
|
+
android: androidAssetStructure,
|
|
102
|
+
};
|
|
103
|
+
});
|
|
89
104
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
getIOSAssetsStructure(opts) {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
const projectDir = opts.projectDir;
|
|
108
|
+
const projectData = this.getProjectData(projectDir);
|
|
109
|
+
const basePath = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants_1.AssetConstants.iOSAssetsDirName);
|
|
110
|
+
const pathToIcons = path.join(basePath, constants_1.AssetConstants.iOSIconsDirName);
|
|
111
|
+
const icons = yield this.getIOSAssetSubGroup(pathToIcons);
|
|
112
|
+
const pathToSplashBackgrounds = path.join(basePath, constants_1.AssetConstants.iOSSplashBackgroundsDirName);
|
|
113
|
+
const splashBackgrounds = yield this.getIOSAssetSubGroup(pathToSplashBackgrounds);
|
|
114
|
+
const pathToSplashCenterImages = path.join(basePath, constants_1.AssetConstants.iOSSplashCenterImagesDirName);
|
|
115
|
+
const splashCenterImages = yield this.getIOSAssetSubGroup(pathToSplashCenterImages);
|
|
116
|
+
const pathToSplashImages = path.join(basePath, constants_1.AssetConstants.iOSSplashImagesDirName);
|
|
117
|
+
const splashImages = yield this.getIOSAssetSubGroup(pathToSplashImages);
|
|
118
|
+
return {
|
|
119
|
+
icons,
|
|
120
|
+
splashBackgrounds,
|
|
121
|
+
splashCenterImages,
|
|
122
|
+
splashImages,
|
|
123
|
+
};
|
|
124
|
+
});
|
|
108
125
|
}
|
|
109
126
|
removeNSConfigProperty(projectDir, propertyName) {
|
|
110
127
|
this.$logger.trace(`Removing "${propertyName}" property from nsconfig.`);
|
|
111
128
|
this.updateNsConfigValue(projectDir, null, [propertyName]);
|
|
112
129
|
this.$logger.trace(`"${propertyName}" property successfully removed.`);
|
|
113
130
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
131
|
+
getAndroidAssetsStructure(opts) {
|
|
132
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
133
|
+
// TODO: Use image-size package to get the width and height of an image.
|
|
134
|
+
// TODO: Parse the splash_screen.xml in nodpi directory and get from it the names of the background and center image.
|
|
135
|
+
// TODO: Parse the AndroidManifest.xml to get the name of the icon.
|
|
136
|
+
// This way we'll not use the image-definitions.json and the method will return the real android structure.
|
|
137
|
+
const projectDir = opts.projectDir;
|
|
138
|
+
const projectData = this.getProjectData(projectDir);
|
|
139
|
+
const pathToAndroidDir = path.join(projectData.appResourcesDirectoryPath, this.$devicePlatformsConstants.Android);
|
|
140
|
+
const hasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.appResourcesDirectoryPath);
|
|
141
|
+
const basePath = hasMigrated
|
|
142
|
+
? path.join(pathToAndroidDir, constants_1.SRC_DIR, constants_1.MAIN_DIR, constants_1.RESOURCES_DIR)
|
|
143
|
+
: pathToAndroidDir;
|
|
144
|
+
let useLegacy = false;
|
|
145
|
+
try {
|
|
146
|
+
const manifest = this.$fs.readText(path.resolve(basePath, "../AndroidManifest.xml"));
|
|
147
|
+
useLegacy = !manifest.includes(`android:icon="@mipmap/ic_launcher"`);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
// ignore
|
|
151
|
+
}
|
|
152
|
+
const content = this.getImageDefinitions()[useLegacy ? "android_legacy" : "android"];
|
|
153
|
+
return {
|
|
154
|
+
icons: this.getAndroidAssetSubGroup(content.icons, basePath),
|
|
155
|
+
splashBackgrounds: this.getAndroidAssetSubGroup(content.splashBackgrounds, basePath),
|
|
156
|
+
splashCenterImages: this.getAndroidAssetSubGroup(content.splashCenterImages, basePath),
|
|
157
|
+
splashImages: null,
|
|
158
|
+
};
|
|
159
|
+
});
|
|
136
160
|
}
|
|
137
161
|
getAppExecutableFiles(projectDir) {
|
|
138
162
|
const projectData = this.getProjectData(projectDir);
|
|
@@ -148,6 +172,8 @@ class ProjectDataService {
|
|
|
148
172
|
}
|
|
149
173
|
if (fstat.isDirectory()) {
|
|
150
174
|
if (filePath === pathToProjectNodeModules) {
|
|
175
|
+
// we do not want to get the files from node_modules directory of the project.
|
|
176
|
+
// We'll get here only when you have nativescript.config with appDirectoryPath set to "."
|
|
151
177
|
return false;
|
|
152
178
|
}
|
|
153
179
|
return true;
|
|
@@ -162,6 +188,9 @@ class ProjectDataService {
|
|
|
162
188
|
}
|
|
163
189
|
}
|
|
164
190
|
updateNsConfigValue(projectDir, updateObject, propertiesToRemove) {
|
|
191
|
+
// todo: figure out a way to update js/ts configs
|
|
192
|
+
// most likely needs an ast parser/writer
|
|
193
|
+
// should be delegated to the config service
|
|
165
194
|
const nsConfigPath = path.join(projectDir, constants.CONFIG_FILE_NAME_JS);
|
|
166
195
|
const currentNsConfig = this.getNsConfig(nsConfigPath);
|
|
167
196
|
let newNsConfig = currentNsConfig;
|
|
@@ -194,62 +223,70 @@ class ProjectDataService {
|
|
|
194
223
|
const imageDefinitions = this.$fs.readJson(pathToImageDefinitions);
|
|
195
224
|
return imageDefinitions;
|
|
196
225
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
this.$fs.
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
image
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
.
|
|
211
|
-
.split(constants_1.AssetConstants.sizeDelimiter);
|
|
212
|
-
if (width && height) {
|
|
213
|
-
image.width = +width;
|
|
214
|
-
image.height = +height;
|
|
226
|
+
getIOSAssetSubGroup(dirPath) {
|
|
227
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
228
|
+
const pathToContentJson = path.join(dirPath, constants_1.AssetConstants.iOSResourcesFileName);
|
|
229
|
+
const content = (this.$fs.exists(pathToContentJson) &&
|
|
230
|
+
this.$fs.readJson(pathToContentJson)) || { images: [] };
|
|
231
|
+
const finalContent = { images: [] };
|
|
232
|
+
const imageDefinitions = this.getImageDefinitions().ios;
|
|
233
|
+
_.each(content && content.images, (image) => {
|
|
234
|
+
let foundMatchingDefinition = false;
|
|
235
|
+
// In some cases the image may not be available, it will just be described.
|
|
236
|
+
// When this happens, the filename will be empty.
|
|
237
|
+
// So we'll keep the path empty as well.
|
|
238
|
+
if (image.filename) {
|
|
239
|
+
image.path = path.join(dirPath, image.filename);
|
|
215
240
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
image.
|
|
224
|
-
image.height = assetItem.height;
|
|
225
|
-
image.size =
|
|
226
|
-
image.size ||
|
|
227
|
-
`${assetItem.width}${constants_1.AssetConstants.sizeDelimiter}${assetItem.height}`;
|
|
241
|
+
if (image.size) {
|
|
242
|
+
// size is basically <width>x<height>
|
|
243
|
+
const [width, height] = image.size
|
|
244
|
+
.toString()
|
|
245
|
+
.split(constants_1.AssetConstants.sizeDelimiter);
|
|
246
|
+
if (width && height) {
|
|
247
|
+
image.width = +width;
|
|
248
|
+
image.height = +height;
|
|
228
249
|
}
|
|
229
|
-
image.resizeOperation =
|
|
230
|
-
image.resizeOperation || assetItem.resizeOperation;
|
|
231
|
-
image.overlayImageScale =
|
|
232
|
-
image.overlayImageScale || assetItem.overlayImageScale;
|
|
233
|
-
image.scale = image.scale || assetItem.scale;
|
|
234
|
-
image.rgba = assetItem.rgba;
|
|
235
|
-
finalContent.images.push(image);
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
});
|
|
239
|
-
if (!foundMatchingDefinition) {
|
|
240
|
-
if (image.height && image.width) {
|
|
241
|
-
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");
|
|
242
|
-
finalContent.images.push(image);
|
|
243
250
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
251
|
+
// Find the image size based on the hardcoded values in the image-definitions.json
|
|
252
|
+
_.each(imageDefinitions, (assetSubGroup) => {
|
|
253
|
+
const assetItem = _.find(assetSubGroup, (assetElement) => assetElement.filename === image.filename &&
|
|
254
|
+
path.basename(assetElement.directory) === path.basename(dirPath));
|
|
255
|
+
if (assetItem) {
|
|
256
|
+
foundMatchingDefinition = true;
|
|
257
|
+
if (!image.width || !image.height) {
|
|
258
|
+
image.width = assetItem.width;
|
|
259
|
+
image.height = assetItem.height;
|
|
260
|
+
image.size =
|
|
261
|
+
image.size ||
|
|
262
|
+
`${assetItem.width}${constants_1.AssetConstants.sizeDelimiter}${assetItem.height}`;
|
|
263
|
+
}
|
|
264
|
+
image.resizeOperation =
|
|
265
|
+
image.resizeOperation || assetItem.resizeOperation;
|
|
266
|
+
image.overlayImageScale =
|
|
267
|
+
image.overlayImageScale || assetItem.overlayImageScale;
|
|
268
|
+
image.scale = image.scale || assetItem.scale;
|
|
269
|
+
image.rgba = assetItem.rgba;
|
|
270
|
+
finalContent.images.push(image);
|
|
271
|
+
// break each
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
});
|
|
275
|
+
if (!foundMatchingDefinition) {
|
|
276
|
+
if (image.height && image.width) {
|
|
277
|
+
this.$logger.trace("Missing data for image", image, " in CLI's resource file, but we will try to generate images based on the size from Contents.json");
|
|
278
|
+
finalContent.images.push(image);
|
|
279
|
+
}
|
|
280
|
+
else if (image.filename) {
|
|
281
|
+
this.$logger.warn(`Didn't find a matching image definition for file ${path.join(path.basename(dirPath), image.filename)}. This file will be skipped from resources generation.`);
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
this.$logger.trace(`Unable to detect data for image generation of image`, image);
|
|
285
|
+
}
|
|
249
286
|
}
|
|
250
|
-
}
|
|
287
|
+
});
|
|
288
|
+
return finalContent;
|
|
251
289
|
});
|
|
252
|
-
return finalContent;
|
|
253
290
|
}
|
|
254
291
|
getAndroidAssetSubGroup(assetItems, basePath) {
|
|
255
292
|
const assetSubGroup = {
|
|
@@ -335,13 +372,16 @@ class ProjectDataService {
|
|
|
335
372
|
getRuntimePackage(projectDir, platform) {
|
|
336
373
|
platform = platform.toLowerCase();
|
|
337
374
|
const packageJson = this.$fs.readJson(path.join(projectDir, constants.PACKAGE_JSON_FILE_NAME));
|
|
338
|
-
const runtimeName = platform === "android"
|
|
375
|
+
const runtimeName = platform === "android" /* PlatformTypes.android */
|
|
339
376
|
? constants.TNS_ANDROID_RUNTIME_NAME
|
|
340
377
|
: constants.TNS_IOS_RUNTIME_NAME;
|
|
341
378
|
if (packageJson &&
|
|
342
379
|
packageJson.nativescript &&
|
|
343
380
|
packageJson.nativescript[runtimeName] &&
|
|
344
381
|
packageJson.nativescript[runtimeName].version) {
|
|
382
|
+
// if we have a nativescript key with a runtime version in package.json
|
|
383
|
+
// that means we are dealing with a legacy project, and should respect
|
|
384
|
+
// that information
|
|
345
385
|
return {
|
|
346
386
|
name: runtimeName,
|
|
347
387
|
version: packageJson.nativescript[runtimeName].version,
|
|
@@ -353,19 +393,19 @@ class ProjectDataService {
|
|
|
353
393
|
const runtimePackage = this.$pluginsService
|
|
354
394
|
.getDependenciesFromPackageJson(projectDir)
|
|
355
395
|
.devDependencies.find((d) => {
|
|
356
|
-
if (platform === "ios") {
|
|
396
|
+
if (platform === "ios" /* constants.PlatformTypes.ios */) {
|
|
357
397
|
return [
|
|
358
398
|
constants.SCOPED_IOS_RUNTIME_NAME,
|
|
359
399
|
constants.TNS_IOS_RUNTIME_NAME,
|
|
360
400
|
].includes(d.name);
|
|
361
401
|
}
|
|
362
|
-
else if (platform === "android") {
|
|
402
|
+
else if (platform === "android" /* constants.PlatformTypes.android */) {
|
|
363
403
|
return [
|
|
364
404
|
constants.SCOPED_ANDROID_RUNTIME_NAME,
|
|
365
405
|
constants.TNS_ANDROID_RUNTIME_NAME,
|
|
366
406
|
].includes(d.name);
|
|
367
407
|
}
|
|
368
|
-
else if (platform === "visionos") {
|
|
408
|
+
else if (platform === "visionos" /* constants.PlatformTypes.visionos */) {
|
|
369
409
|
return d.name === constants.SCOPED_VISIONOS_RUNTIME_NAME;
|
|
370
410
|
}
|
|
371
411
|
});
|
|
@@ -373,12 +413,14 @@ class ProjectDataService {
|
|
|
373
413
|
const coerced = semver.coerce(runtimePackage.version);
|
|
374
414
|
const isRange = !!coerced && coerced.version !== runtimePackage.version;
|
|
375
415
|
const isTag = !coerced;
|
|
416
|
+
// in case we are using a local tgz for the runtime or a range like ~8.0.0, ^8.0.0 etc. or a tag like JSC
|
|
376
417
|
if (runtimePackage.version.includes("tgz") || isRange || isTag) {
|
|
377
418
|
try {
|
|
378
419
|
const runtimePackageJsonPath = (0, package_path_helper_1.resolvePackageJSONPath)(runtimePackage.name, {
|
|
379
420
|
paths: [projectDir],
|
|
380
421
|
});
|
|
381
422
|
if (!runtimePackageJsonPath) {
|
|
423
|
+
// caught below
|
|
382
424
|
throw new Error("Runtime package.json not found.");
|
|
383
425
|
}
|
|
384
426
|
runtimePackage.version = this.$fs.readJson(runtimePackageJsonPath).version;
|
|
@@ -395,20 +437,21 @@ class ProjectDataService {
|
|
|
395
437
|
}
|
|
396
438
|
return runtimePackage;
|
|
397
439
|
}
|
|
440
|
+
// default to the scoped runtimes
|
|
398
441
|
this.$logger.trace("Could not find an installed runtime, falling back to default runtimes");
|
|
399
|
-
if (platform === "ios") {
|
|
442
|
+
if (platform === "ios" /* constants.PlatformTypes.ios */) {
|
|
400
443
|
return {
|
|
401
444
|
name: constants.SCOPED_IOS_RUNTIME_NAME,
|
|
402
445
|
version: null,
|
|
403
446
|
};
|
|
404
447
|
}
|
|
405
|
-
else if (platform === "android") {
|
|
448
|
+
else if (platform === "android" /* constants.PlatformTypes.android */) {
|
|
406
449
|
return {
|
|
407
450
|
name: constants.SCOPED_ANDROID_RUNTIME_NAME,
|
|
408
451
|
version: null,
|
|
409
452
|
};
|
|
410
453
|
}
|
|
411
|
-
else if (platform === "visionos") {
|
|
454
|
+
else if (platform === "visionos" /* constants.PlatformTypes.visionos */) {
|
|
412
455
|
return {
|
|
413
456
|
name: constants.SCOPED_VISIONOS_RUNTIME_NAME,
|
|
414
457
|
version: null,
|
|
@@ -420,7 +463,6 @@ class ProjectDataService {
|
|
|
420
463
|
return JSON.stringify(config);
|
|
421
464
|
}
|
|
422
465
|
}
|
|
423
|
-
exports.ProjectDataService = ProjectDataService;
|
|
424
466
|
ProjectDataService.DEPENDENCIES_KEY_NAME = "dependencies";
|
|
425
467
|
__decorate([
|
|
426
468
|
(0, decorators_1.exported)("projectDataService")
|
|
@@ -443,9 +485,11 @@ __decorate([
|
|
|
443
485
|
return projectDir + ":" + platform;
|
|
444
486
|
},
|
|
445
487
|
shouldCache(result) {
|
|
488
|
+
// don't cache coerced versions
|
|
446
489
|
if (result._coerced) {
|
|
447
490
|
return false;
|
|
448
491
|
}
|
|
492
|
+
// only cache if version is defined
|
|
449
493
|
return !!result.version;
|
|
450
494
|
},
|
|
451
495
|
})
|
|
@@ -453,4 +497,6 @@ __decorate([
|
|
|
453
497
|
__decorate([
|
|
454
498
|
(0, decorators_1.exported)("projectDataService")
|
|
455
499
|
], ProjectDataService.prototype, "getNsConfigDefaultContent", null);
|
|
500
|
+
exports.ProjectDataService = ProjectDataService;
|
|
456
501
|
yok_1.injector.register("projectDataService", ProjectDataService);
|
|
502
|
+
//# sourceMappingURL=project-data-service.js.map
|
|
@@ -1,4 +1,13 @@
|
|
|
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
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.ProjectNameService = void 0;
|
|
4
13
|
const helpers_1 = require("../common/helpers");
|
|
@@ -10,43 +19,50 @@ class ProjectNameService {
|
|
|
10
19
|
this.$logger = $logger;
|
|
11
20
|
this.$prompter = $prompter;
|
|
12
21
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (!
|
|
23
|
-
|
|
22
|
+
ensureValidName(projectName, validateOptions) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
if (validateOptions && validateOptions.force) {
|
|
25
|
+
return projectName;
|
|
26
|
+
}
|
|
27
|
+
if (!this.$projectNameValidator.validate(projectName)) {
|
|
28
|
+
return yield this.promptForNewName("The project name is invalid.", projectName, validateOptions);
|
|
29
|
+
}
|
|
30
|
+
const userCanInteract = (0, helpers_1.isInteractive)();
|
|
31
|
+
if (!this.checkIfNameStartsWithLetter(projectName)) {
|
|
32
|
+
if (!userCanInteract) {
|
|
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);
|
|
24
36
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this
|
|
37
|
+
if (projectName.toUpperCase() === "APP") {
|
|
38
|
+
if (!userCanInteract) {
|
|
39
|
+
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.");
|
|
40
|
+
}
|
|
41
|
+
return yield this.promptForNewName("You cannot build applications named 'app' in Xcode. Consider creating a project with different name.", projectName, validateOptions);
|
|
30
42
|
}
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
return projectName;
|
|
43
|
+
return projectName;
|
|
44
|
+
});
|
|
34
45
|
}
|
|
35
46
|
checkIfNameStartsWithLetter(projectName) {
|
|
36
47
|
const startsWithLetterExpression = /^[a-zA-Z]/;
|
|
37
48
|
return startsWithLetterExpression.test(projectName);
|
|
38
49
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
promptForNewName(warningMessage, projectName, validateOptions) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
if (yield this.promptForForceNameConfirm(warningMessage)) {
|
|
53
|
+
return projectName;
|
|
54
|
+
}
|
|
55
|
+
const newProjectName = yield this.$prompter.getString("Enter the new project name:");
|
|
56
|
+
return yield this.ensureValidName(newProjectName, validateOptions);
|
|
57
|
+
});
|
|
45
58
|
}
|
|
46
|
-
|
|
47
|
-
this
|
|
48
|
-
|
|
59
|
+
promptForForceNameConfirm(warningMessage) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
this.$logger.warn(warningMessage);
|
|
62
|
+
return yield this.$prompter.confirm("Do you want to create the project with this name?");
|
|
63
|
+
});
|
|
49
64
|
}
|
|
50
65
|
}
|
|
51
66
|
exports.ProjectNameService = ProjectNameService;
|
|
52
67
|
yok_1.injector.register("projectNameService", ProjectNameService);
|
|
68
|
+
//# sourceMappingURL=project-name-service.js.map
|