nativescript 8.9.0-dev.2 → 8.9.0-dev.4
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/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- 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
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ApplePortalApplicationService = void 0;
|
|
13
4
|
const yok_1 = require("../../common/yok");
|
|
@@ -18,64 +9,56 @@ class ApplePortalApplicationService {
|
|
|
18
9
|
this.$errors = $errors;
|
|
19
10
|
this.$httpClient = $httpClient;
|
|
20
11
|
}
|
|
21
|
-
getApplications(user) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return result;
|
|
30
|
-
});
|
|
12
|
+
async getApplications(user) {
|
|
13
|
+
let result = [];
|
|
14
|
+
for (const account of user.associatedAccounts) {
|
|
15
|
+
const contentProviderId = account.contentProvider.contentProviderId;
|
|
16
|
+
const applications = await this.getApplicationsByProvider(contentProviderId);
|
|
17
|
+
result = result.concat(applications.summaries);
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
31
20
|
}
|
|
32
|
-
getApplicationsByProvider(contentProviderId) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return { summaries: summaries };
|
|
38
|
-
});
|
|
21
|
+
async getApplicationsByProvider(contentProviderId) {
|
|
22
|
+
const webSessionCookie = await this.$applePortalSessionService.createWebSession(contentProviderId);
|
|
23
|
+
const summaries = [];
|
|
24
|
+
await this.getApplicationsByUrl(webSessionCookie, "https://appstoreconnect.apple.com/iris/v1/apps?include=appStoreVersions", summaries);
|
|
25
|
+
return { summaries: summaries };
|
|
39
26
|
}
|
|
40
|
-
getApplicationsByUrl(webSessionCookie, url, summaries) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
const result = JSON.parse(response.body);
|
|
51
|
-
const data = result.data;
|
|
52
|
-
for (const app of data) {
|
|
53
|
-
let summary;
|
|
54
|
-
summary = {
|
|
55
|
-
bundleId: app.attributes.bundleId,
|
|
56
|
-
adamId: app.id,
|
|
57
|
-
name: app.attributes.name,
|
|
58
|
-
versionSets: [],
|
|
59
|
-
};
|
|
60
|
-
summaries.push(summary);
|
|
61
|
-
}
|
|
62
|
-
if (result.links.next) {
|
|
63
|
-
yield this.getApplicationsByUrl(webSessionCookie, result.links.next, summaries);
|
|
64
|
-
}
|
|
27
|
+
async getApplicationsByUrl(webSessionCookie, url, summaries) {
|
|
28
|
+
const response = await this.$httpClient.httpRequest({
|
|
29
|
+
url,
|
|
30
|
+
method: "GET",
|
|
31
|
+
headers: {
|
|
32
|
+
"Content-Type": "application/json",
|
|
33
|
+
Cookie: webSessionCookie,
|
|
34
|
+
},
|
|
65
35
|
});
|
|
36
|
+
const result = JSON.parse(response.body);
|
|
37
|
+
const data = result.data;
|
|
38
|
+
for (const app of data) {
|
|
39
|
+
let summary;
|
|
40
|
+
summary = {
|
|
41
|
+
bundleId: app.attributes.bundleId,
|
|
42
|
+
adamId: app.id,
|
|
43
|
+
name: app.attributes.name,
|
|
44
|
+
versionSets: [],
|
|
45
|
+
};
|
|
46
|
+
summaries.push(summary);
|
|
47
|
+
}
|
|
48
|
+
if (result.links.next) {
|
|
49
|
+
await this.getApplicationsByUrl(webSessionCookie, result.links.next, summaries);
|
|
50
|
+
}
|
|
66
51
|
}
|
|
67
|
-
getApplicationByBundleId(user, bundleId) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return application;
|
|
78
|
-
});
|
|
52
|
+
async getApplicationByBundleId(user, bundleId) {
|
|
53
|
+
const applications = await this.getApplications(user);
|
|
54
|
+
if (!applications || !applications.length) {
|
|
55
|
+
this.$errors.fail(`Cannot find any registered applications for Apple ID ${user.userName} in iTunes Connect.`);
|
|
56
|
+
}
|
|
57
|
+
const application = _.find(applications, (app) => app.bundleId === bundleId);
|
|
58
|
+
if (!application) {
|
|
59
|
+
this.$errors.fail(`Cannot find registered applications that match the specified identifier ${bundleId} in iTunes Connect.`);
|
|
60
|
+
}
|
|
61
|
+
return application;
|
|
79
62
|
}
|
|
80
63
|
}
|
|
81
64
|
exports.ApplePortalApplicationService = ApplePortalApplicationService;
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ApplePortalSessionService = void 0;
|
|
13
4
|
const helpers_1 = require("../../common/helpers");
|
|
@@ -27,242 +18,232 @@ class ApplePortalSessionService {
|
|
|
27
18
|
authServiceKey: "e0b80c3bf78523bfe80974d320935bfa30add02e1bff88ec2166c6bd5a706c42",
|
|
28
19
|
};
|
|
29
20
|
}
|
|
30
|
-
createUserSession(credentials, opts) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
if (
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
yield this.handleTwoFactorAuthentication(loginResult.scnt, loginResult.xAppleIdSessionId, authServiceKey, loginResult.hashcash);
|
|
37
|
-
}
|
|
38
|
-
const sessionResponse = yield this.$httpClient.httpRequest({
|
|
39
|
-
url: "https://appstoreconnect.apple.com/olympus/v1/session",
|
|
40
|
-
method: "GET",
|
|
41
|
-
headers: {
|
|
42
|
-
Cookie: this.$applePortalCookieService.getUserSessionCookie(),
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
this.$applePortalCookieService.updateUserSessionCookie(sessionResponse.headers["set-cookie"]);
|
|
21
|
+
async createUserSession(credentials, opts) {
|
|
22
|
+
const loginResult = await this.login(credentials, opts);
|
|
23
|
+
if (!opts || !opts.sessionBase64) {
|
|
24
|
+
if (loginResult.isTwoFactorAuthenticationEnabled) {
|
|
25
|
+
const authServiceKey = (await this.getLoginConfig()).authServiceKey;
|
|
26
|
+
await this.handleTwoFactorAuthentication(loginResult.scnt, loginResult.xAppleIdSessionId, authServiceKey, loginResult.hashcash);
|
|
46
27
|
}
|
|
47
|
-
const
|
|
48
|
-
url: "https://appstoreconnect.apple.com/
|
|
28
|
+
const sessionResponse = await this.$httpClient.httpRequest({
|
|
29
|
+
url: "https://appstoreconnect.apple.com/olympus/v1/session",
|
|
49
30
|
method: "GET",
|
|
50
31
|
headers: {
|
|
51
|
-
"Content-Type": "application/json",
|
|
52
32
|
Cookie: this.$applePortalCookieService.getUserSessionCookie(),
|
|
53
33
|
},
|
|
54
34
|
});
|
|
55
|
-
this.$applePortalCookieService.updateUserSessionCookie(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
35
|
+
this.$applePortalCookieService.updateUserSessionCookie(sessionResponse.headers["set-cookie"]);
|
|
36
|
+
}
|
|
37
|
+
const userDetailsResponse = await this.$httpClient.httpRequest({
|
|
38
|
+
url: "https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/user/detail",
|
|
39
|
+
method: "GET",
|
|
40
|
+
headers: {
|
|
41
|
+
"Content-Type": "application/json",
|
|
42
|
+
Cookie: this.$applePortalCookieService.getUserSessionCookie(),
|
|
43
|
+
},
|
|
59
44
|
});
|
|
45
|
+
this.$applePortalCookieService.updateUserSessionCookie(userDetailsResponse.headers["set-cookie"]);
|
|
46
|
+
const userdDetails = JSON.parse(userDetailsResponse.body).data;
|
|
47
|
+
const result = {
|
|
48
|
+
...userdDetails,
|
|
49
|
+
...loginResult,
|
|
50
|
+
userSessionCookie: this.$applePortalCookieService.getUserSessionCookie(),
|
|
51
|
+
};
|
|
52
|
+
return result;
|
|
60
53
|
}
|
|
61
|
-
createWebSession(contentProviderId) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
providerId: contentProviderId,
|
|
69
|
-
},
|
|
54
|
+
async createWebSession(contentProviderId) {
|
|
55
|
+
const webSessionResponse = await this.$httpClient.httpRequest({
|
|
56
|
+
url: "https://appstoreconnect.apple.com/olympus/v1/session",
|
|
57
|
+
method: "POST",
|
|
58
|
+
body: {
|
|
59
|
+
provider: {
|
|
60
|
+
providerId: contentProviderId,
|
|
70
61
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
const webSessionCookie = this.$applePortalCookieService.getWebSessionCookie(webSessionResponse.headers["set-cookie"]);
|
|
81
|
-
return webSessionCookie;
|
|
62
|
+
},
|
|
63
|
+
headers: {
|
|
64
|
+
Accept: "application/json, text/plain, */*",
|
|
65
|
+
"Accept-Encoding": "gzip, deflate, br",
|
|
66
|
+
"X-Csrf-Itc": "itc",
|
|
67
|
+
"Content-Type": "application/json;charset=UTF-8",
|
|
68
|
+
"X-Requested-With": "olympus-ui",
|
|
69
|
+
Cookie: this.$applePortalCookieService.getUserSessionCookie(),
|
|
70
|
+
},
|
|
82
71
|
});
|
|
72
|
+
const webSessionCookie = this.$applePortalCookieService.getWebSessionCookie(webSessionResponse.headers["set-cookie"]);
|
|
73
|
+
return webSessionCookie;
|
|
83
74
|
}
|
|
84
|
-
login(credentials, opts) {
|
|
75
|
+
async login(credentials, opts) {
|
|
85
76
|
var _a, _b;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
77
|
+
const result = {
|
|
78
|
+
scnt: null,
|
|
79
|
+
xAppleIdSessionId: null,
|
|
80
|
+
isTwoFactorAuthenticationEnabled: false,
|
|
81
|
+
areCredentialsValid: true,
|
|
82
|
+
hashcash: null,
|
|
83
|
+
};
|
|
84
|
+
if (opts && opts.sessionBase64) {
|
|
85
|
+
const decodedSession = Buffer.from(opts.sessionBase64, "base64").toString("utf8");
|
|
86
|
+
this.$applePortalCookieService.updateUserSessionCookie([decodedSession]);
|
|
87
|
+
result.isTwoFactorAuthenticationEnabled =
|
|
88
|
+
decodedSession.indexOf("DES") > -1;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
try {
|
|
92
|
+
await this.loginCore(credentials);
|
|
99
93
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
opts.requireApplicationSpecificPassword &&
|
|
115
|
-
!opts.applicationSpecificPassword) {
|
|
116
|
-
this.$errors
|
|
117
|
-
.fail(`Your account has two-factor authentication enabled but --appleApplicationSpecificPassword option is not provided.
|
|
94
|
+
catch (err) {
|
|
95
|
+
const statusCode = err && err.response && err.response.status;
|
|
96
|
+
const bits = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.headers["x-apple-hc-bits"];
|
|
97
|
+
const challenge = (_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.headers["x-apple-hc-challenge"];
|
|
98
|
+
const hashcash = makeHashCash(bits, challenge);
|
|
99
|
+
result.hashcash = hashcash;
|
|
100
|
+
result.areCredentialsValid = statusCode !== 401 && statusCode !== 403;
|
|
101
|
+
result.isTwoFactorAuthenticationEnabled = statusCode === 409;
|
|
102
|
+
if (result.isTwoFactorAuthenticationEnabled &&
|
|
103
|
+
opts &&
|
|
104
|
+
opts.requireApplicationSpecificPassword &&
|
|
105
|
+
!opts.applicationSpecificPassword) {
|
|
106
|
+
this.$errors
|
|
107
|
+
.fail(`Your account has two-factor authentication enabled but --appleApplicationSpecificPassword option is not provided.
|
|
118
108
|
To generate an application-specific password, please go to https://appleid.apple.com/account/manage.
|
|
119
109
|
This password will be used for the iTunes Transporter, which is used to upload your application.`);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
110
|
+
}
|
|
111
|
+
if (result.isTwoFactorAuthenticationEnabled &&
|
|
112
|
+
opts &&
|
|
113
|
+
opts.requireInteractiveConsole &&
|
|
114
|
+
!(0, helpers_1.isInteractive)()) {
|
|
115
|
+
this.$errors
|
|
116
|
+
.fail(`Your account has two-factor authentication enabled, but your console is not interactive.
|
|
127
117
|
For more details how to set up your environment, please execute "ns publish ios --help".`);
|
|
128
|
-
}
|
|
129
|
-
const headers = (err && err.response && err.response.headers) || {};
|
|
130
|
-
result.scnt = headers.scnt;
|
|
131
|
-
result.xAppleIdSessionId = headers["x-apple-id-session-id"];
|
|
132
118
|
}
|
|
119
|
+
const headers = (err && err.response && err.response.headers) || {};
|
|
120
|
+
result.scnt = headers.scnt;
|
|
121
|
+
result.xAppleIdSessionId = headers["x-apple-id-session-id"];
|
|
133
122
|
}
|
|
134
|
-
|
|
135
|
-
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
136
125
|
}
|
|
137
|
-
loginCore(credentials) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
headers,
|
|
154
|
-
});
|
|
155
|
-
const body = JSON.parse(initResponse.response.body);
|
|
156
|
-
const completeData = yield wrapper.getComplete(credentials.password, body);
|
|
157
|
-
const hashcash = yield this.fetchHashcash(loginConfig.authServiceUrl, loginConfig.authServiceKey);
|
|
158
|
-
const completeUrl = `${loginConfig.authServiceUrl}/auth/signin/complete?isRememberMeEnabled=false`;
|
|
159
|
-
const completeHeaders = {
|
|
160
|
-
"Content-Type": "application/json",
|
|
161
|
-
"X-Requested-With": "XMLHttpRequest",
|
|
162
|
-
"X-Apple-Widget-Key": loginConfig.authServiceKey,
|
|
163
|
-
Accept: "application/json, text/javascript",
|
|
164
|
-
"X-Apple-HC": hashcash || "",
|
|
165
|
-
};
|
|
166
|
-
const completeResponse = yield this.$httpClient.httpRequest({
|
|
167
|
-
url: completeUrl,
|
|
168
|
-
method: "POST",
|
|
169
|
-
completeHeaders,
|
|
170
|
-
body: completeData,
|
|
171
|
-
headers: completeHeaders,
|
|
172
|
-
});
|
|
173
|
-
this.$applePortalCookieService.updateUserSessionCookie(completeResponse.headers["set-cookie"]);
|
|
126
|
+
async loginCore(credentials) {
|
|
127
|
+
const wrapper = new srp_wrapper_1.GSASRPAuthenticator(credentials.username);
|
|
128
|
+
const initData = await wrapper.getInit();
|
|
129
|
+
const loginConfig = await this.getLoginConfig();
|
|
130
|
+
const loginUrl = `${loginConfig.authServiceUrl}/auth/signin/init`;
|
|
131
|
+
const headers = {
|
|
132
|
+
"Content-Type": "application/json",
|
|
133
|
+
"X-Requested-With": "XMLHttpRequest",
|
|
134
|
+
"X-Apple-Widget-Key": loginConfig.authServiceKey,
|
|
135
|
+
Accept: "application/json, text/javascript",
|
|
136
|
+
};
|
|
137
|
+
const initResponse = await this.$httpClient.httpRequest({
|
|
138
|
+
url: loginUrl,
|
|
139
|
+
method: "POST",
|
|
140
|
+
body: initData,
|
|
141
|
+
headers,
|
|
174
142
|
});
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
143
|
+
const body = JSON.parse(initResponse.response.body);
|
|
144
|
+
const completeData = await wrapper.getComplete(credentials.password, body);
|
|
145
|
+
const hashcash = await this.fetchHashcash(loginConfig.authServiceUrl, loginConfig.authServiceKey);
|
|
146
|
+
const completeUrl = `${loginConfig.authServiceUrl}/auth/signin/complete?isRememberMeEnabled=false`;
|
|
147
|
+
const completeHeaders = {
|
|
148
|
+
"Content-Type": "application/json",
|
|
149
|
+
"X-Requested-With": "XMLHttpRequest",
|
|
150
|
+
"X-Apple-Widget-Key": loginConfig.authServiceKey,
|
|
151
|
+
Accept: "application/json, text/javascript",
|
|
152
|
+
"X-Apple-HC": hashcash || "",
|
|
153
|
+
};
|
|
154
|
+
const completeResponse = await this.$httpClient.httpRequest({
|
|
155
|
+
url: completeUrl,
|
|
156
|
+
method: "POST",
|
|
157
|
+
completeHeaders,
|
|
158
|
+
body: completeData,
|
|
159
|
+
headers: completeHeaders,
|
|
190
160
|
});
|
|
161
|
+
this.$applePortalCookieService.updateUserSessionCookie(completeResponse.headers["set-cookie"]);
|
|
191
162
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const response =
|
|
196
|
-
url:
|
|
163
|
+
async getLoginConfig() {
|
|
164
|
+
let config = null;
|
|
165
|
+
try {
|
|
166
|
+
const response = await this.$httpClient.httpRequest({
|
|
167
|
+
url: this.loginConfigEndpoint,
|
|
197
168
|
method: "GET",
|
|
198
169
|
});
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
170
|
+
config = JSON.parse(response.body);
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
this.$logger.trace(`Error while executing request to ${this.loginConfigEndpoint}. More info: ${err}`);
|
|
174
|
+
}
|
|
175
|
+
return config || this.defaultLoginConfig;
|
|
176
|
+
}
|
|
177
|
+
async fetchHashcash(authServiceUrl, authServiceKey) {
|
|
178
|
+
const loginUrl = `${authServiceUrl}/auth/signin?widgetKey=${authServiceKey}`;
|
|
179
|
+
const response = await this.$httpClient.httpRequest({
|
|
180
|
+
url: loginUrl,
|
|
181
|
+
method: "GET",
|
|
203
182
|
});
|
|
183
|
+
const headers = response.headers;
|
|
184
|
+
const bits = headers["X-Apple-HC-Bits"];
|
|
185
|
+
const challenge = headers["X-Apple-HC-Challenge"];
|
|
186
|
+
return makeHashCash(bits, challenge);
|
|
204
187
|
}
|
|
205
|
-
handleTwoFactorAuthentication(scnt, xAppleIdSessionId, authServiceKey, hashcash) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
188
|
+
async handleTwoFactorAuthentication(scnt, xAppleIdSessionId, authServiceKey, hashcash) {
|
|
189
|
+
const headers = {
|
|
190
|
+
scnt: scnt,
|
|
191
|
+
"X-Apple-Id-Session-Id": xAppleIdSessionId,
|
|
192
|
+
"X-Apple-Widget-Key": authServiceKey,
|
|
193
|
+
"X-Apple-HC": hashcash,
|
|
194
|
+
Accept: "application/json",
|
|
195
|
+
};
|
|
196
|
+
const authResponse = await this.$httpClient.httpRequest({
|
|
197
|
+
url: "https://idmsa.apple.com/appleauth/auth",
|
|
198
|
+
method: "GET",
|
|
199
|
+
headers,
|
|
200
|
+
});
|
|
201
|
+
const data = JSON.parse(authResponse.body);
|
|
202
|
+
const isSMS = data.trustedPhoneNumbers &&
|
|
203
|
+
data.trustedPhoneNumbers.length === 1 &&
|
|
204
|
+
data.noTrustedDevices; // 1 device and no trusted devices means sms was automatically sent.
|
|
205
|
+
const multiSMS = data.trustedPhoneNumbers &&
|
|
206
|
+
data.trustedPhoneNumbers.length !== 1 &&
|
|
207
|
+
data.noTrustedDevices; // Not handling more than 1 sms device and no trusted devices.
|
|
208
|
+
let token;
|
|
209
|
+
if (data.trustedPhoneNumbers &&
|
|
210
|
+
data.trustedPhoneNumbers.length &&
|
|
211
|
+
!multiSMS) {
|
|
212
|
+
const parsedAuthResponse = JSON.parse(authResponse.body);
|
|
213
|
+
token = await this.$prompter.getString(`Please enter the ${parsedAuthResponse.securityCode.length} digit code`, { allowEmpty: false });
|
|
214
|
+
const body = {
|
|
215
|
+
securityCode: {
|
|
216
|
+
code: token.toString(),
|
|
217
|
+
},
|
|
213
218
|
};
|
|
214
|
-
|
|
215
|
-
|
|
219
|
+
let url = `https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode`;
|
|
220
|
+
if (isSMS) {
|
|
221
|
+
// No trusted devices means it must be sms.
|
|
222
|
+
body.mode = "sms";
|
|
223
|
+
body.phoneNumber = {
|
|
224
|
+
id: data.trustedPhoneNumbers[0].id,
|
|
225
|
+
};
|
|
226
|
+
url = `https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode`;
|
|
227
|
+
}
|
|
228
|
+
await this.$httpClient.httpRequest({
|
|
229
|
+
url,
|
|
230
|
+
method: "POST",
|
|
231
|
+
body,
|
|
232
|
+
headers: { ...headers, "Content-Type": "application/json" },
|
|
233
|
+
});
|
|
234
|
+
const authTrustResponse = await this.$httpClient.httpRequest({
|
|
235
|
+
url: "https://idmsa.apple.com/appleauth/auth/2sv/trust",
|
|
216
236
|
method: "GET",
|
|
217
237
|
headers,
|
|
218
238
|
});
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (data.trustedPhoneNumbers &&
|
|
228
|
-
data.trustedPhoneNumbers.length &&
|
|
229
|
-
!multiSMS) {
|
|
230
|
-
const parsedAuthResponse = JSON.parse(authResponse.body);
|
|
231
|
-
token = yield this.$prompter.getString(`Please enter the ${parsedAuthResponse.securityCode.length} digit code`, { allowEmpty: false });
|
|
232
|
-
const body = {
|
|
233
|
-
securityCode: {
|
|
234
|
-
code: token.toString(),
|
|
235
|
-
},
|
|
236
|
-
};
|
|
237
|
-
let url = `https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode`;
|
|
238
|
-
if (isSMS) {
|
|
239
|
-
// No trusted devices means it must be sms.
|
|
240
|
-
body.mode = "sms";
|
|
241
|
-
body.phoneNumber = {
|
|
242
|
-
id: data.trustedPhoneNumbers[0].id,
|
|
243
|
-
};
|
|
244
|
-
url = `https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode`;
|
|
245
|
-
}
|
|
246
|
-
yield this.$httpClient.httpRequest({
|
|
247
|
-
url,
|
|
248
|
-
method: "POST",
|
|
249
|
-
body,
|
|
250
|
-
headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
|
|
251
|
-
});
|
|
252
|
-
const authTrustResponse = yield this.$httpClient.httpRequest({
|
|
253
|
-
url: "https://idmsa.apple.com/appleauth/auth/2sv/trust",
|
|
254
|
-
method: "GET",
|
|
255
|
-
headers,
|
|
256
|
-
});
|
|
257
|
-
this.$applePortalCookieService.updateUserSessionCookie(authTrustResponse.headers["set-cookie"]);
|
|
258
|
-
}
|
|
259
|
-
else if (multiSMS) {
|
|
260
|
-
this.$errors.fail(`The NativeScript CLI does not support SMS authenticaton with multiple registered phone numbers.`);
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
this.$errors.fail(`Although response from Apple indicated activated Two-step Verification or Two-factor Authentication, NativeScript CLI don't know how to handle this response: ${data}`);
|
|
264
|
-
}
|
|
265
|
-
});
|
|
239
|
+
this.$applePortalCookieService.updateUserSessionCookie(authTrustResponse.headers["set-cookie"]);
|
|
240
|
+
}
|
|
241
|
+
else if (multiSMS) {
|
|
242
|
+
this.$errors.fail(`The NativeScript CLI does not support SMS authenticaton with multiple registered phone numbers.`);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
this.$errors.fail(`Although response from Apple indicated activated Two-step Verification or Two-factor Authentication, NativeScript CLI don't know how to handle this response: ${data}`);
|
|
246
|
+
}
|
|
266
247
|
}
|
|
267
248
|
}
|
|
268
249
|
exports.ApplePortalSessionService = ApplePortalSessionService;
|