nativescript 8.9.0-dev.2 → 8.9.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/test-deps-versions-generated.json +1 -1
- package/lib/android-tools-info.js +9 -32
- package/lib/base-package-manager.js +47 -71
- package/lib/bootstrap.js +1 -5
- package/lib/bun-package-manager.js +65 -104
- package/lib/color.js +2 -5
- package/lib/commands/add-platform.js +14 -31
- package/lib/commands/apple-login.js +18 -30
- package/lib/commands/appstore-list.js +34 -46
- package/lib/commands/appstore-upload.js +52 -68
- package/lib/commands/build.js +57 -90
- package/lib/commands/clean.js +161 -197
- package/lib/commands/command-base.js +14 -28
- package/lib/commands/config.js +48 -71
- package/lib/commands/create-project.js +210 -235
- package/lib/commands/debug.js +66 -93
- package/lib/commands/deploy.js +30 -47
- package/lib/commands/embedding/embed.js +33 -59
- package/lib/commands/extensibility/install-extension.js +5 -17
- package/lib/commands/extensibility/list-extensions.js +13 -25
- package/lib/commands/extensibility/uninstall-extension.js +4 -16
- package/lib/commands/fonts.js +30 -42
- package/lib/commands/generate-assets.js +13 -29
- package/lib/commands/generate-help.js +2 -14
- package/lib/commands/generate.js +12 -70
- package/lib/commands/info.js +2 -14
- package/lib/commands/install.js +34 -50
- package/lib/commands/list-platforms.js +14 -26
- package/lib/commands/migrate.js +15 -27
- package/lib/commands/native-add.js +23 -51
- package/lib/commands/platform-clean.js +19 -33
- package/lib/commands/plugin/add-plugin.js +12 -26
- package/lib/commands/plugin/build-plugin.js +31 -45
- package/lib/commands/plugin/create-plugin.js +110 -138
- package/lib/commands/plugin/list-plugins.js +22 -34
- package/lib/commands/plugin/remove-plugin.js +20 -35
- package/lib/commands/plugin/update-plugin.js +20 -34
- package/lib/commands/post-install.js +20 -39
- package/lib/commands/prepare.js +22 -39
- package/lib/commands/preview.js +49 -64
- package/lib/commands/remove-platform.js +7 -19
- package/lib/commands/resources/resources-update.js +13 -28
- package/lib/commands/run.js +55 -77
- package/lib/commands/setup.js +0 -1
- package/lib/commands/start.js +6 -20
- package/lib/commands/test-init.js +123 -138
- package/lib/commands/test.js +67 -97
- package/lib/commands/typings.js +126 -143
- package/lib/commands/update-platform.js +22 -40
- package/lib/commands/update.js +30 -45
- package/lib/commands/widget.js +390 -352
- package/lib/common/bootstrap.js +0 -1
- package/lib/common/child-process.js +53 -75
- package/lib/common/codeGeneration/code-entity.js +1 -2
- package/lib/common/codeGeneration/code-printer.js +1 -2
- package/lib/common/command-params.js +7 -19
- package/lib/common/commands/analytics.js +27 -43
- package/lib/common/commands/autocompletion.js +39 -59
- package/lib/common/commands/device/device-log-stream.js +12 -24
- package/lib/common/commands/device/get-file.js +22 -35
- package/lib/common/commands/device/list-applications.js +12 -24
- package/lib/common/commands/device/list-devices.js +72 -90
- package/lib/common/commands/device/list-files.js +23 -36
- package/lib/common/commands/device/put-file.js +22 -35
- package/lib/common/commands/device/run-application.js +12 -26
- package/lib/common/commands/device/stop-application.js +11 -23
- package/lib/common/commands/device/uninstall-application.js +6 -18
- package/lib/common/commands/doctor.js +2 -3
- package/lib/common/commands/generate-messages.js +17 -29
- package/lib/common/commands/help.js +20 -34
- package/lib/common/commands/package-manager-get.js +6 -18
- package/lib/common/commands/package-manager-set.js +9 -21
- package/lib/common/commands/post-install.js +2 -14
- package/lib/common/commands/preuninstall.js +24 -48
- package/lib/common/commands/proxy/proxy-base.js +8 -23
- package/lib/common/commands/proxy/proxy-clear.js +4 -16
- package/lib/common/commands/proxy/proxy-get.js +3 -15
- package/lib/common/commands/proxy/proxy-set.js +87 -101
- package/lib/common/common-lib.js +0 -1
- package/lib/common/constants.js +11 -22
- package/lib/common/decorators.js +10 -70
- package/lib/common/dispatchers.js +80 -106
- package/lib/common/errors.js +91 -116
- package/lib/common/file-system.js +108 -141
- package/lib/common/header.js +1 -5
- package/lib/common/helpers.js +152 -267
- package/lib/common/host-info.js +37 -54
- package/lib/common/http-client.js +93 -128
- package/lib/common/logger/appenders/cli-appender.js +1 -6
- package/lib/common/logger/appenders/emit-appender.js +1 -6
- package/lib/common/logger/layouts/cli-layout.js +1 -3
- package/lib/common/logger/logger.js +4 -9
- package/lib/common/messages/messages.js +0 -6
- package/lib/common/mobile/android/android-application-manager.js +122 -162
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -2
- package/lib/common/mobile/android/android-debug-bridge.js +87 -118
- package/lib/common/mobile/android/android-device-file-system.js +98 -135
- package/lib/common/mobile/android/android-device-hash-service.js +50 -78
- package/lib/common/mobile/android/android-device.js +68 -93
- package/lib/common/mobile/android/android-emulator-services.js +105 -131
- package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
- package/lib/common/mobile/android/android-log-filter.js +1 -5
- package/lib/common/mobile/android/android-virtual-device-service.js +76 -123
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -30
- package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -123
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -92
- package/lib/common/mobile/android/logcat-helper.js +108 -140
- package/lib/common/mobile/application-manager-base.js +84 -113
- 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 +7 -19
- 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 +79 -111
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -106
- package/lib/common/mobile/ios/device/ios-device-operations.js +105 -146
- package/lib/common/mobile/ios/device/ios-device.js +20 -40
- package/lib/common/mobile/ios/ios-device-base.js +58 -82
- 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 +63 -96
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -2
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -95
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -48
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -63
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -36
- 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 +43 -64
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -35
- package/lib/common/mobile/mobile-core/android-process-service.js +143 -214
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -14
- package/lib/common/mobile/mobile-core/devices-service.js +386 -505
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -37
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -65
- package/lib/common/mobile/mobile-helper.js +15 -27
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -53
- package/lib/common/opener.js +2 -3
- 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 +91 -114
- package/lib/common/queue.js +9 -21
- package/lib/common/resource-loader.js +0 -1
- package/lib/common/services/auto-completion-service.js +40 -65
- package/lib/common/services/cancellation.js +17 -29
- package/lib/common/services/commands-service.js +146 -180
- package/lib/common/services/help-service.js +133 -166
- package/lib/common/services/hooks-service.js +93 -121
- package/lib/common/services/ios-notification-service.js +21 -35
- package/lib/common/services/json-file-settings-service.js +52 -77
- package/lib/common/services/lock-service.js +35 -58
- package/lib/common/services/message-contract-generator.js +35 -47
- package/lib/common/services/messages-service.js +0 -1
- package/lib/common/services/micro-templating-service.js +4 -21
- package/lib/common/services/net-service.js +90 -110
- package/lib/common/services/project-files-manager.js +10 -28
- package/lib/common/services/project-files-provider-base.js +0 -1
- package/lib/common/services/proxy-service.js +13 -25
- package/lib/common/services/qr.js +13 -25
- package/lib/common/services/settings-service.js +1 -2
- package/lib/common/services/xcode-select-service.js +20 -36
- package/lib/common/utils.js +2 -3
- package/lib/common/validators/project-name-validator.js +1 -2
- package/lib/common/validators/validation-result.js +1 -2
- package/lib/common/verify-node-version.js +3 -11
- package/lib/common/yok.js +35 -69
- package/lib/config.js +36 -72
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +24 -77
- package/lib/controllers/build-controller.js +82 -100
- package/lib/controllers/debug-controller.js +107 -133
- package/lib/controllers/deploy-controller.js +15 -24
- package/lib/controllers/migrate-controller.js +723 -884
- package/lib/controllers/platform-controller.js +71 -94
- package/lib/controllers/prepare-controller.js +232 -274
- package/lib/controllers/run-controller.js +397 -427
- package/lib/controllers/update-controller-base.js +16 -30
- package/lib/controllers/update-controller.js +94 -130
- 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 +4 -2
- package/lib/data/run-data.js +0 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +5 -20
- package/lib/detached-processes/cleanup-process.js +30 -43
- package/lib/detached-processes/file-log-service.js +1 -2
- package/lib/device-path-provider.js +23 -35
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -171
- package/lib/device-sockets/ios/notification.js +1 -4
- package/lib/device-sockets/ios/socket-request-executor.js +24 -42
- package/lib/helpers/android-bundle-validator-helper.js +2 -3
- package/lib/helpers/deploy-command-helper.js +44 -50
- package/lib/helpers/key-command-helper.js +6 -17
- package/lib/helpers/livesync-command-helper.js +137 -155
- package/lib/helpers/network-connectivity-validator.js +6 -18
- package/lib/helpers/options-track-helper.js +7 -19
- package/lib/helpers/package-path-helper.js +0 -1
- package/lib/helpers/platform-command-helper.js +101 -127
- package/lib/helpers/version-validator-helper.js +0 -1
- package/lib/key-commands/bootstrap.js +2 -3
- package/lib/key-commands/index.js +154 -205
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +6 -24
- package/lib/node/pbxproj-dom-xcode.js +0 -1
- package/lib/node/xcode.js +0 -1
- package/lib/node-package-manager.js +81 -114
- package/lib/options.js +122 -156
- package/lib/package-installation-manager.js +130 -172
- package/lib/package-manager.js +63 -88
- package/lib/platform-command-param.js +4 -16
- package/lib/pnpm-package-manager.js +59 -81
- package/lib/project-data.js +1 -13
- package/lib/providers/project-files-provider.js +1 -2
- package/lib/resolvers/livesync-service-resolver.js +0 -1
- package/lib/services/analytics/analytics-broker-process.js +19 -32
- package/lib/services/analytics/analytics-broker.js +17 -31
- package/lib/services/analytics/analytics-service.js +170 -210
- package/lib/services/analytics/google-analytics-provider.js +43 -59
- package/lib/services/analytics-settings-service.js +15 -37
- package/lib/services/android/android-bundle-tool-service.js +43 -61
- package/lib/services/android/gradle-build-args-service.js +9 -23
- package/lib/services/android/gradle-build-service.js +22 -36
- package/lib/services/android/gradle-command-service.js +22 -36
- package/lib/services/android-device-debug-service.js +90 -123
- package/lib/services/android-plugin-build-service.js +205 -260
- package/lib/services/android-project-service.js +129 -241
- package/lib/services/android-resources-migration-service.js +51 -71
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -64
- package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-session-service.js +197 -218
- package/lib/services/apple-portal/srp/srp-wrapper.js +43 -61
- package/lib/services/assets-generation/assets-generation-service.js +103 -128
- package/lib/services/build-artifacts-service.js +10 -22
- package/lib/services/build-data-service.js +0 -1
- package/lib/services/build-info-file-service.js +20 -36
- package/lib/services/cleanup-service.js +48 -81
- package/lib/services/cocoapods-platform-manager.js +0 -9
- package/lib/services/cocoapods-service.js +112 -153
- 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 +54 -72
- package/lib/services/doctor-service.js +101 -135
- package/lib/services/extensibility-service.js +81 -108
- package/lib/services/files-hash-service.js +26 -44
- package/lib/services/hmr-status-service.js +1 -3
- package/lib/services/info-service.js +0 -1
- package/lib/services/initialize-service.js +37 -54
- package/lib/services/ios/export-options-plist-service.js +38 -55
- package/lib/services/ios/ios-signing-service.js +168 -191
- package/lib/services/ios/spm-service.js +46 -70
- package/lib/services/ios/xcodebuild-args-service.js +77 -103
- package/lib/services/ios/xcodebuild-command-service.js +14 -26
- package/lib/services/ios/xcodebuild-service.js +52 -72
- package/lib/services/ios-debugger-port-service.js +24 -38
- package/lib/services/ios-device-debug-service.js +75 -103
- package/lib/services/ios-entitlements-service.js +31 -43
- package/lib/services/ios-extensions-service.js +18 -30
- 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 +452 -603
- package/lib/services/ios-provision-service.js +108 -132
- package/lib/services/ios-watch-app-service.js +21 -33
- package/lib/services/ip-service.js +38 -55
- package/lib/services/itmstransporter-service.js +129 -153
- package/lib/services/karma-execution.js +0 -2
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -49
- package/lib/services/livesync/android-device-livesync-service.js +120 -151
- package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -155
- package/lib/services/livesync/android-livesync-service.js +14 -36
- package/lib/services/livesync/android-livesync-tool.js +90 -117
- package/lib/services/livesync/device-livesync-service-base.js +15 -30
- package/lib/services/livesync/ios-device-livesync-service.js +114 -150
- package/lib/services/livesync/ios-livesync-service.js +42 -60
- package/lib/services/livesync/livesync-socket.js +0 -1
- package/lib/services/livesync/platform-livesync-service-base.js +94 -124
- package/lib/services/livesync-process-data-service.js +0 -1
- package/lib/services/log-parser-service.js +1 -2
- package/lib/services/log-source-map-service.js +30 -56
- package/lib/services/marking-mode-service.js +17 -33
- package/lib/services/metadata-filtering-service.js +0 -1
- package/lib/services/npm-config-service.js +1 -5
- package/lib/services/pacote-service.js +49 -71
- package/lib/services/performance-service.js +2 -4
- package/lib/services/platform/add-platform-service.js +51 -119
- package/lib/services/platform/platform-validation-service.js +22 -34
- package/lib/services/platform/prepare-native-platform-service.js +49 -65
- package/lib/services/platform-environment-requirements.js +27 -43
- 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 +125 -168
- package/lib/services/prepare-data-service.js +0 -1
- package/lib/services/project-backup-service.js +1 -5
- package/lib/services/project-changes-service.js +124 -152
- package/lib/services/project-cleanup-service.js +64 -79
- package/lib/services/project-config-service.js +73 -102
- package/lib/services/project-data-service.js +108 -154
- package/lib/services/project-name-service.js +28 -44
- package/lib/services/project-service.js +84 -113
- package/lib/services/project-templates-service.js +52 -68
- package/lib/services/qr-code-terminal-service.js +0 -1
- package/lib/services/require-service.js +0 -1
- package/lib/services/start-service.js +41 -60
- package/lib/services/temp-service.js +8 -22
- package/lib/services/terminal-spinner-service.js +15 -28
- package/lib/services/test-execution-service.js +59 -79
- package/lib/services/test-initialization-service.js +2 -6
- package/lib/services/timeline-profiler-service.js +1 -2
- package/lib/services/user-settings-service.js +0 -1
- package/lib/services/versions-service.js +119 -140
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/webpack/webpack-compiler-service.js +215 -279
- package/lib/services/xcconfig-service.js +8 -21
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +45 -63
- package/lib/tools/config-manipulation/config-transformer.js +0 -12
- package/lib/tools/node-modules/node-modules-builder.js +16 -28
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
- package/lib/yarn-package-manager.js +59 -79
- package/lib/yarn2-package-manager.js +60 -82
- package/package.json +65 -80
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.AndroidProjectService = void 0;
|
|
19
10
|
const path = require("path");
|
|
@@ -27,40 +18,7 @@ const constants_1 = require("../common/constants");
|
|
|
27
18
|
const helpers_1 = require("../common/helpers");
|
|
28
19
|
const decorators_1 = require(".././common/decorators");
|
|
29
20
|
const yok_1 = require("../common/yok");
|
|
30
|
-
|
|
31
|
-
// we sort the native dependencies topologically to make sure they are processed in the right order
|
|
32
|
-
// native dependenciess need to be sorted so the deepst dependencies are built before it's parents
|
|
33
|
-
//
|
|
34
|
-
// for example, given this dep structure (assuming these are all native dependencies that need to be built)
|
|
35
|
-
// (note: we list all dependencies at the root level, so the leaf nodes are essentially references to the root nodes)
|
|
36
|
-
//
|
|
37
|
-
// |- dep1
|
|
38
|
-
// |- dep2
|
|
39
|
-
// |- |- dep3
|
|
40
|
-
// |- |- dep4
|
|
41
|
-
// |- |- |- dep5
|
|
42
|
-
// |- dep3
|
|
43
|
-
// |- dep4
|
|
44
|
-
// |- |- dep5
|
|
45
|
-
// |- dep5
|
|
46
|
-
//
|
|
47
|
-
// It is sorted:
|
|
48
|
-
//
|
|
49
|
-
// |- dep1
|
|
50
|
-
// |- dep3
|
|
51
|
-
// |- dep5
|
|
52
|
-
// |- dep4 # depends on dep5, so dep5 must be built first, ie above ^
|
|
53
|
-
// |- |- dep5
|
|
54
|
-
// |- dep2 # depends on dep3, dep4 (and dep5 through dep4) so all of them must be built first before dep2 is built
|
|
55
|
-
// |- |- dep3
|
|
56
|
-
// |- |- dep4
|
|
57
|
-
// |- |- |- dep5
|
|
58
|
-
//
|
|
59
|
-
// for more details see: https://wikiless.org/wiki/Topological_sorting?lang=en
|
|
60
|
-
//
|
|
61
|
-
function topologicalSortNativeDependencies(dependencies, start = [], depth = 0, total = 0 // do not pass in, we calculate it in the initial run!
|
|
62
|
-
) {
|
|
63
|
-
// we set the total on the initial call - and never increment it, as it's used for esacaping the recursion
|
|
21
|
+
function topologicalSortNativeDependencies(dependencies, start = [], depth = 0, total = 0) {
|
|
64
22
|
if (total === 0) {
|
|
65
23
|
total = dependencies.length;
|
|
66
24
|
}
|
|
@@ -74,8 +32,6 @@ function topologicalSortNativeDependencies(dependencies, start = [], depth = 0,
|
|
|
74
32
|
return sortedDeps;
|
|
75
33
|
}, start);
|
|
76
34
|
const remainingDeps = dependencies.filter((nativeDep) => !sortedDeps.includes(nativeDep));
|
|
77
|
-
// recurse if we still have remaining deps
|
|
78
|
-
// the second condition here prevents infinite recursion
|
|
79
35
|
if (remainingDeps.length && sortedDeps.length < total) {
|
|
80
36
|
return topologicalSortNativeDependencies(remainingDeps, sortedDeps, depth + 1, total);
|
|
81
37
|
}
|
|
@@ -129,7 +85,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
129
85
|
constants.APK_DIR,
|
|
130
86
|
];
|
|
131
87
|
const packageName = this.getProjectNameFromId(projectData);
|
|
132
|
-
const runtimePackage = this.$projectDataService.getRuntimePackage(projectData.projectDir, "android"
|
|
88
|
+
const runtimePackage = this.$projectDataService.getRuntimePackage(projectData.projectDir, "android");
|
|
133
89
|
this._platformData = {
|
|
134
90
|
frameworkPackageName: runtimePackage.name,
|
|
135
91
|
normalizedPlatformName: "Android",
|
|
@@ -170,7 +126,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
170
126
|
configurationFileName: constants.MANIFEST_FILE_NAME,
|
|
171
127
|
configurationFilePath: path.join(...configurationsDirectoryArr),
|
|
172
128
|
relativeToFrameworkConfigurationFilePath: path.join(constants.SRC_DIR, constants.MAIN_DIR, constants.MANIFEST_FILE_NAME),
|
|
173
|
-
fastLivesyncFileExtensions: [".jpg", ".gif", ".png", ".bmp", ".webp"],
|
|
129
|
+
fastLivesyncFileExtensions: [".jpg", ".gif", ".png", ".bmp", ".webp"],
|
|
174
130
|
};
|
|
175
131
|
}
|
|
176
132
|
return this._platformData;
|
|
@@ -179,10 +135,8 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
179
135
|
const currentPlatformData = this.$projectDataService.getRuntimePackage(projectData.projectDir, platformData.platformNameLowerCase);
|
|
180
136
|
return currentPlatformData && currentPlatformData[constants.VERSION_STRING];
|
|
181
137
|
}
|
|
182
|
-
validateOptions() {
|
|
183
|
-
return
|
|
184
|
-
return true;
|
|
185
|
-
});
|
|
138
|
+
async validateOptions() {
|
|
139
|
+
return true;
|
|
186
140
|
}
|
|
187
141
|
getAppResourcesDestinationDirectoryPath(projectData) {
|
|
188
142
|
const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
|
|
@@ -193,41 +147,36 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
193
147
|
return this.getLegacyAppResourcesDestinationDirPath(projectData);
|
|
194
148
|
}
|
|
195
149
|
}
|
|
196
|
-
validate(projectData, options, notConfiguredEnvOptions) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
validateTargetSdk: true,
|
|
210
|
-
});
|
|
211
|
-
return {
|
|
212
|
-
checkEnvironmentRequirementsOutput,
|
|
213
|
-
};
|
|
150
|
+
async validate(projectData, options, notConfiguredEnvOptions) {
|
|
151
|
+
this.validatePackageName(projectData.projectIdentifiers.android);
|
|
152
|
+
this.validateProjectName(projectData.projectName);
|
|
153
|
+
const checkEnvironmentRequirementsOutput = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
|
|
154
|
+
platform: this.getPlatformData(projectData).normalizedPlatformName,
|
|
155
|
+
projectDir: projectData.projectDir,
|
|
156
|
+
options,
|
|
157
|
+
notConfiguredEnvOptions,
|
|
158
|
+
});
|
|
159
|
+
this.$androidToolsInfo.validateInfo({
|
|
160
|
+
showWarningsAsErrors: true,
|
|
161
|
+
projectDir: projectData.projectDir,
|
|
162
|
+
validateTargetSdk: true,
|
|
214
163
|
});
|
|
164
|
+
return {
|
|
165
|
+
checkEnvironmentRequirementsOutput,
|
|
166
|
+
};
|
|
215
167
|
}
|
|
216
|
-
createProject(frameworkDir, frameworkVersion, projectData) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
projectDir: projectData.projectDir,
|
|
224
|
-
});
|
|
225
|
-
const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
|
|
226
|
-
this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
|
|
227
|
-
this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
|
|
228
|
-
// TODO: Check if we actually need this and if it should be targetSdk or compileSdk
|
|
229
|
-
this.cleanResValues(targetSdkVersion, projectData);
|
|
168
|
+
async createProject(frameworkDir, frameworkVersion, projectData) {
|
|
169
|
+
if (semver.lt(frameworkVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
|
|
170
|
+
this.$errors.fail(`The NativeScript CLI requires Android runtime ${AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE} or later to work properly.`);
|
|
171
|
+
}
|
|
172
|
+
this.$fs.ensureDirectoryExists(this.getPlatformData(projectData).projectRoot);
|
|
173
|
+
const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({
|
|
174
|
+
projectDir: projectData.projectDir,
|
|
230
175
|
});
|
|
176
|
+
const targetSdkVersion = androidToolsInfo && androidToolsInfo.targetSdkVersion;
|
|
177
|
+
this.$logger.trace(`Using Android SDK '${targetSdkVersion}'.`);
|
|
178
|
+
this.copy(this.getPlatformData(projectData).projectRoot, frameworkDir, "*", "-R");
|
|
179
|
+
this.cleanResValues(targetSdkVersion, projectData);
|
|
231
180
|
}
|
|
232
181
|
getResDestinationDir(projectData) {
|
|
233
182
|
const appResourcesDirStructureHasMigrated = this.$androidResourcesMigrationService.hasMigrated(projectData.getAppResourcesDirectoryPath());
|
|
@@ -257,35 +206,30 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
257
206
|
this.$logger.trace(directoriesToClean);
|
|
258
207
|
_.map(directoriesToClean, (dir) => this.$fs.deleteDirectory(dir));
|
|
259
208
|
}
|
|
260
|
-
interpolateData(projectData) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
const appGradleContent = this.$fs.readText(projectData.appGradlePath);
|
|
280
|
-
if (appGradleContent.indexOf(constants.PACKAGE_PLACEHOLDER_NAME) !== -1) {
|
|
281
|
-
//TODO: For compatibility with old templates. Once all templates are updated should delete.
|
|
282
|
-
shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
catch (e) {
|
|
286
|
-
this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
|
|
209
|
+
async interpolateData(projectData) {
|
|
210
|
+
this.interpolateConfigurationFile(projectData);
|
|
211
|
+
const appResourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
|
|
212
|
+
let stringsFilePath;
|
|
213
|
+
const appResourcesDestinationDirectoryPath = this.getAppResourcesDestinationDirectoryPath(projectData);
|
|
214
|
+
if (this.$androidResourcesMigrationService.hasMigrated(appResourcesDirectoryPath)) {
|
|
215
|
+
stringsFilePath = path.join(appResourcesDestinationDirectoryPath, constants.MAIN_DIR, constants.RESOURCES_DIR, "values", "strings.xml");
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
stringsFilePath = path.join(appResourcesDestinationDirectoryPath, "values", "strings.xml");
|
|
219
|
+
}
|
|
220
|
+
shell.sed("-i", /__NAME__/, projectData.projectName, stringsFilePath);
|
|
221
|
+
shell.sed("-i", /__TITLE_ACTIVITY__/, projectData.projectName, stringsFilePath);
|
|
222
|
+
const gradleSettingsFilePath = path.join(this.getPlatformData(projectData).projectRoot, "settings.gradle");
|
|
223
|
+
shell.sed("-i", /__PROJECT_NAME__/, this.getProjectNameFromId(projectData), gradleSettingsFilePath);
|
|
224
|
+
try {
|
|
225
|
+
const appGradleContent = this.$fs.readText(projectData.appGradlePath);
|
|
226
|
+
if (appGradleContent.indexOf(constants.PACKAGE_PLACEHOLDER_NAME) !== -1) {
|
|
227
|
+
shell.sed("-i", new RegExp(constants.PACKAGE_PLACEHOLDER_NAME), projectData.projectIdentifiers.android, projectData.appGradlePath);
|
|
287
228
|
}
|
|
288
|
-
}
|
|
229
|
+
}
|
|
230
|
+
catch (e) {
|
|
231
|
+
this.$logger.trace(`Templates updated and no need for replace in app.gradle.`);
|
|
232
|
+
}
|
|
289
233
|
}
|
|
290
234
|
interpolateConfigurationFile(projectData) {
|
|
291
235
|
const manifestPath = this.getPlatformData(projectData).configurationFilePath;
|
|
@@ -304,30 +248,24 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
304
248
|
afterCreateProject(projectRoot) {
|
|
305
249
|
return null;
|
|
306
250
|
}
|
|
307
|
-
updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
return true;
|
|
316
|
-
});
|
|
251
|
+
async updatePlatform(currentVersion, newVersion, canUpdate, projectData, addPlatform, removePlatforms) {
|
|
252
|
+
if (semver.eq(newVersion, AndroidProjectService.MIN_RUNTIME_VERSION_WITH_GRADLE)) {
|
|
253
|
+
const platformLowercase = this.getPlatformData(projectData).normalizedPlatformName.toLowerCase();
|
|
254
|
+
await removePlatforms([platformLowercase.split("@")[0]]);
|
|
255
|
+
await addPlatform(platformLowercase);
|
|
256
|
+
return false;
|
|
257
|
+
}
|
|
258
|
+
return true;
|
|
317
259
|
}
|
|
318
|
-
buildProject(projectRoot, projectData, buildData) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
yield this.trackKotlinUsage(projectRoot);
|
|
325
|
-
});
|
|
260
|
+
async buildProject(projectRoot, projectData, buildData) {
|
|
261
|
+
const platformData = this.getPlatformData(projectData);
|
|
262
|
+
await this.$gradleBuildService.buildProject(platformData.projectRoot, buildData);
|
|
263
|
+
const outputPath = platformData.getBuildOutputPath(buildData);
|
|
264
|
+
await this.$filesHashService.saveHashesForProject(this._platformData, outputPath);
|
|
265
|
+
await this.trackKotlinUsage(projectRoot);
|
|
326
266
|
}
|
|
327
|
-
buildForDeploy(projectRoot, projectData, buildData) {
|
|
328
|
-
return
|
|
329
|
-
return this.buildProject(projectRoot, projectData, buildData);
|
|
330
|
-
});
|
|
267
|
+
async buildForDeploy(projectRoot, projectData, buildData) {
|
|
268
|
+
return this.buildProject(projectRoot, projectData, buildData);
|
|
331
269
|
}
|
|
332
270
|
isPlatformPrepared(projectRoot, projectData) {
|
|
333
271
|
return this.$fs.exists(path.join(this.getPlatformData(projectData).appDestinationDirectoryPath, this.$options.hostProjectModuleName));
|
|
@@ -335,10 +273,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
335
273
|
getFrameworkFilesExtensions() {
|
|
336
274
|
return [".jar", ".dat"];
|
|
337
275
|
}
|
|
338
|
-
prepareProject() {
|
|
339
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
340
|
-
// Intentionally left empty.
|
|
341
|
-
});
|
|
276
|
+
async prepareProject() {
|
|
342
277
|
}
|
|
343
278
|
ensureConfigurationFileInAppResources(projectData) {
|
|
344
279
|
const appResourcesDirectoryPath = projectData.appResourcesDirectoryPath;
|
|
@@ -355,7 +290,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
355
290
|
this.$logger.warn("No manifest found in " + originalAndroidManifestFilePath);
|
|
356
291
|
return;
|
|
357
292
|
}
|
|
358
|
-
// Overwrite the AndroidManifest from runtime.
|
|
359
293
|
if (!appResourcesDirStructureHasMigrated) {
|
|
360
294
|
this.$fs.copyFile(originalAndroidManifestFilePath, this.getPlatformData(projectData).configurationFilePath);
|
|
361
295
|
}
|
|
@@ -372,8 +306,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
372
306
|
}
|
|
373
307
|
else {
|
|
374
308
|
this.$fs.copyFile(path.join(projectAppResourcesPath, platformData.normalizedPlatformName, "*"), platformsAppResourcesPath);
|
|
375
|
-
// https://github.com/NativeScript/android-runtime/issues/899
|
|
376
|
-
// App_Resources/Android/libs is reserved to user's aars and jars, but they should not be copied as resources
|
|
377
309
|
this.$fs.deleteDirectory(path.join(platformsAppResourcesPath, "libs"));
|
|
378
310
|
}
|
|
379
311
|
const androidToolsInfo = this.$androidToolsInfo.getToolsInfo({
|
|
@@ -382,54 +314,41 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
382
314
|
const compileSdkVersion = androidToolsInfo && androidToolsInfo.compileSdkVersion;
|
|
383
315
|
this.cleanResValues(compileSdkVersion, projectData);
|
|
384
316
|
}
|
|
385
|
-
preparePluginNativeCode(pluginData, projectData) {
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
const
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
};
|
|
399
|
-
if (yield this.$androidPluginBuildService.buildAar(options)) {
|
|
400
|
-
this.$logger.info(`Built aar for ${options.pluginName}`);
|
|
401
|
-
}
|
|
402
|
-
this.$androidPluginBuildService.migrateIncludeGradle(options);
|
|
317
|
+
async preparePluginNativeCode(pluginData, projectData) {
|
|
318
|
+
const pluginPlatformsFolderPath = this.getPluginPlatformsFolderPath(pluginData, AndroidProjectService.ANDROID_PLATFORM_NAME);
|
|
319
|
+
if (this.$fs.exists(pluginPlatformsFolderPath)) {
|
|
320
|
+
const options = {
|
|
321
|
+
gradlePath: this.$options.gradlePath,
|
|
322
|
+
gradleArgs: this.$options.gradleArgs,
|
|
323
|
+
projectDir: projectData.projectDir,
|
|
324
|
+
pluginName: pluginData.name,
|
|
325
|
+
platformsAndroidDirPath: pluginPlatformsFolderPath,
|
|
326
|
+
aarOutputDir: pluginPlatformsFolderPath,
|
|
327
|
+
tempPluginDirPath: path.join(projectData.platformsDir, "tempPlugin"),
|
|
328
|
+
};
|
|
329
|
+
if (await this.$androidPluginBuildService.buildAar(options)) {
|
|
330
|
+
this.$logger.info(`Built aar for ${options.pluginName}`);
|
|
403
331
|
}
|
|
404
|
-
|
|
332
|
+
this.$androidPluginBuildService.migrateIncludeGradle(options);
|
|
333
|
+
}
|
|
405
334
|
}
|
|
406
|
-
processConfigurationFilesFromAppResources() {
|
|
407
|
-
return
|
|
408
|
-
return;
|
|
409
|
-
});
|
|
335
|
+
async processConfigurationFilesFromAppResources() {
|
|
336
|
+
return;
|
|
410
337
|
}
|
|
411
|
-
removePluginNativeCode(pluginData, projectData) {
|
|
412
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
413
|
-
// not implemented
|
|
414
|
-
});
|
|
338
|
+
async removePluginNativeCode(pluginData, projectData) {
|
|
415
339
|
}
|
|
416
|
-
beforePrepareAllPlugins(projectData, dependencies) {
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
}
|
|
422
|
-
});
|
|
340
|
+
async beforePrepareAllPlugins(projectData, dependencies) {
|
|
341
|
+
if (dependencies) {
|
|
342
|
+
dependencies = this.filterUniqueDependencies(dependencies);
|
|
343
|
+
return this.provideDependenciesJson(projectData, dependencies);
|
|
344
|
+
}
|
|
423
345
|
}
|
|
424
|
-
handleNativeDependenciesChange(projectData, opts) {
|
|
425
|
-
return
|
|
426
|
-
return;
|
|
427
|
-
});
|
|
346
|
+
async handleNativeDependenciesChange(projectData, opts) {
|
|
347
|
+
return;
|
|
428
348
|
}
|
|
429
349
|
filterUniqueDependencies(dependencies) {
|
|
430
350
|
const depsDictionary = dependencies.reduce((dict, dep) => {
|
|
431
351
|
const collision = dict[dep.name];
|
|
432
|
-
// in case there are multiple dependencies to the same module, the one declared in the package.json takes precedence
|
|
433
352
|
if (!collision || collision.depth > dep.depth) {
|
|
434
353
|
dict[dep.name] = dep;
|
|
435
354
|
}
|
|
@@ -448,7 +367,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
448
367
|
name,
|
|
449
368
|
directory: path.relative(platformDir, directory),
|
|
450
369
|
dependencies: dependencies.filter((dep) => {
|
|
451
|
-
// filter out transient dependencies that don't have native dependencies
|
|
452
370
|
return (nativeDependencyData.findIndex((nativeDep) => nativeDep.name === dep) !== -1);
|
|
453
371
|
}),
|
|
454
372
|
};
|
|
@@ -456,7 +374,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
456
374
|
nativeDependencies = topologicalSortNativeDependencies(nativeDependencies);
|
|
457
375
|
const jsonContent = JSON.stringify(nativeDependencies, null, 4);
|
|
458
376
|
this.$fs.writeFile(dependenciesJsonPath, jsonContent);
|
|
459
|
-
// we sort all the dependencies to respect the topological sorting of the native dependencies
|
|
460
377
|
return dependencies.sort(function (a, b) {
|
|
461
378
|
return (nativeDependencies.findIndex((n) => n.name === a.name) -
|
|
462
379
|
nativeDependencies.findIndex((n) => n.name === b.name));
|
|
@@ -467,36 +384,27 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
467
384
|
(nativescript.android ||
|
|
468
385
|
(nativescript.platforms && nativescript.platforms.android)));
|
|
469
386
|
}
|
|
470
|
-
stopServices(projectRoot) {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
stdio: "pipe",
|
|
476
|
-
});
|
|
477
|
-
return result;
|
|
387
|
+
async stopServices(projectRoot) {
|
|
388
|
+
const result = await this.$gradleCommandService.executeCommand(["--stop", "--quiet"], {
|
|
389
|
+
cwd: projectRoot,
|
|
390
|
+
message: "Gradle stop services...",
|
|
391
|
+
stdio: "pipe",
|
|
478
392
|
});
|
|
393
|
+
return result;
|
|
479
394
|
}
|
|
480
|
-
cleanProject(projectRoot) {
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
release: false,
|
|
484
|
-
});
|
|
395
|
+
async cleanProject(projectRoot) {
|
|
396
|
+
await this.$gradleBuildService.cleanProject(projectRoot, {
|
|
397
|
+
release: false,
|
|
485
398
|
});
|
|
486
399
|
}
|
|
487
|
-
cleanDeviceTempFolder(deviceIdentifier, projectData) {
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
identifier: deviceIdentifier,
|
|
491
|
-
});
|
|
492
|
-
const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
|
|
493
|
-
yield adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
|
|
400
|
+
async cleanDeviceTempFolder(deviceIdentifier, projectData) {
|
|
401
|
+
const adb = this.$injector.resolve(device_android_debug_bridge_1.DeviceAndroidDebugBridge, {
|
|
402
|
+
identifier: deviceIdentifier,
|
|
494
403
|
});
|
|
404
|
+
const deviceRootPath = `${constants_1.LiveSyncPaths.ANDROID_TMP_DIR_NAME}/${projectData.projectIdentifiers.android}`;
|
|
405
|
+
await adb.executeShellCommand(["rm", "-rf", deviceRootPath]);
|
|
495
406
|
}
|
|
496
|
-
checkForChanges() {
|
|
497
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
498
|
-
// Nothing android specific to check yet.
|
|
499
|
-
});
|
|
407
|
+
async checkForChanges() {
|
|
500
408
|
}
|
|
501
409
|
getDeploymentTarget(projectData) {
|
|
502
410
|
return;
|
|
@@ -506,12 +414,9 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
506
414
|
shell.cp(cpArg, paths, projectRoot);
|
|
507
415
|
}
|
|
508
416
|
validatePackageName(packageName) {
|
|
509
|
-
//Make the package conform to Java package types
|
|
510
|
-
//Enforce underscore limitation
|
|
511
417
|
if (!/^[a-zA-Z]+(\.[a-zA-Z0-9][a-zA-Z0-9_]*)+$/.test(packageName)) {
|
|
512
418
|
this.$errors.fail(`Package name must look like: com.company.Name. Got: ${packageName}`);
|
|
513
419
|
}
|
|
514
|
-
//Class is a reserved word
|
|
515
420
|
if (/\b[Cc]lass\b/.test(packageName)) {
|
|
516
421
|
this.$errors.fail("class is a reserved word");
|
|
517
422
|
}
|
|
@@ -520,7 +425,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
520
425
|
if (projectName === "") {
|
|
521
426
|
this.$errors.fail("Project name cannot be empty");
|
|
522
427
|
}
|
|
523
|
-
//Classes in Java don't begin with numbers
|
|
524
428
|
if (/^[0-9]/.test(projectName)) {
|
|
525
429
|
this.$errors.fail("Project name must not begin with a number");
|
|
526
430
|
}
|
|
@@ -541,19 +445,6 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
541
445
|
];
|
|
542
446
|
return path.join(this.getPlatformData(projectData).projectRoot, ...resourcePath);
|
|
543
447
|
}
|
|
544
|
-
/**
|
|
545
|
-
* The purpose of this method is to delete the previously prepared user resources.
|
|
546
|
-
* The content of the `<platforms>/android/.../res` directory is based on user's resources and gradle project template from android-runtime.
|
|
547
|
-
* During preparation of the `<path to user's App_Resources>/Android` we want to clean all the users files from previous preparation,
|
|
548
|
-
* but keep the ones that were introduced during `platform add` of the android-runtime.
|
|
549
|
-
* Currently the Gradle project template contains resources only in values and values-v21 directories.
|
|
550
|
-
* So the current logic of the method is cleaning al resources from `<platforms>/android/.../res` that are not in `values.*` directories
|
|
551
|
-
* and that exist in the `<path to user's App_Resources>/Android/.../res` directory
|
|
552
|
-
* This means that if user has a resource file in values-v29 for example, builds the project and then deletes this resource,
|
|
553
|
-
* it will be kept in platforms directory. Reference issue: `https://github.com/NativeScript/nativescript-cli/issues/5083`
|
|
554
|
-
* Same is valid for files in `drawable-<resolution>` directories - in case in user's resources there's drawable-hdpi directory,
|
|
555
|
-
* which is deleted after the first build of app, it will remain in platforms directory.
|
|
556
|
-
*/
|
|
557
448
|
cleanUpPreparedResources(projectData) {
|
|
558
449
|
let resourcesDirPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName);
|
|
559
450
|
if (this.$androidResourcesMigrationService.hasMigrated(projectData.appResourcesDirectoryPath)) {
|
|
@@ -570,24 +461,22 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
570
461
|
});
|
|
571
462
|
}
|
|
572
463
|
}
|
|
573
|
-
trackKotlinUsage(projectRoot) {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
});
|
|
585
|
-
}
|
|
464
|
+
async trackKotlinUsage(projectRoot) {
|
|
465
|
+
const buildStatistics = this.tryGetAndroidBuildStatistics(projectRoot);
|
|
466
|
+
try {
|
|
467
|
+
if (buildStatistics && buildStatistics.kotlinUsage) {
|
|
468
|
+
const analyticsDelimiter = constants.AnalyticsEventLabelDelimiter;
|
|
469
|
+
const hasUseKotlinPropertyInAppData = `hasUseKotlinPropertyInApp${analyticsDelimiter}${buildStatistics.kotlinUsage.hasUseKotlinPropertyInApp}`;
|
|
470
|
+
const hasKotlinRuntimeClassesData = `hasKotlinRuntimeClasses${analyticsDelimiter}${buildStatistics.kotlinUsage.hasKotlinRuntimeClasses}`;
|
|
471
|
+
await this.$analyticsService.trackEventActionInGoogleAnalytics({
|
|
472
|
+
action: "Using Kotlin",
|
|
473
|
+
additionalData: `${hasUseKotlinPropertyInAppData}${analyticsDelimiter}${hasKotlinRuntimeClassesData}`,
|
|
474
|
+
});
|
|
586
475
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
}
|
|
590
|
-
}
|
|
476
|
+
}
|
|
477
|
+
catch (e) {
|
|
478
|
+
this.$logger.trace(`Failed to track android build statistics. Error is: ${e.message}`);
|
|
479
|
+
}
|
|
591
480
|
}
|
|
592
481
|
tryGetAndroidBuildStatistics(projectRoot) {
|
|
593
482
|
const staticsFilePath = path.join(projectRoot, constants.ANDROID_ANALYTICS_DATA_DIR, constants.ANDROID_ANALYTICS_DATA_FILE);
|
|
@@ -603,6 +492,7 @@ class AndroidProjectService extends projectServiceBaseLib.PlatformProjectService
|
|
|
603
492
|
return buildStatistics;
|
|
604
493
|
}
|
|
605
494
|
}
|
|
495
|
+
exports.AndroidProjectService = AndroidProjectService;
|
|
606
496
|
AndroidProjectService.VALUES_DIRNAME = "values";
|
|
607
497
|
AndroidProjectService.VALUES_VERSION_DIRNAME_PREFIX = AndroidProjectService.VALUES_DIRNAME + "-v";
|
|
608
498
|
AndroidProjectService.ANDROID_PLATFORM_NAME = "android";
|
|
@@ -611,6 +501,4 @@ __decorate([
|
|
|
611
501
|
(0, decorators_1.performanceLog)(),
|
|
612
502
|
(0, helpers_1.hook)("buildAndroid")
|
|
613
503
|
], AndroidProjectService.prototype, "buildProject", null);
|
|
614
|
-
exports.AndroidProjectService = AndroidProjectService;
|
|
615
504
|
yok_1.injector.register("androidProjectService", AndroidProjectService);
|
|
616
|
-
//# sourceMappingURL=android-project-service.js.map
|