UNPKG

@azure/msal-browser

Version:
156 lines (153 loc) 8.14 kB
/*! @azure/msal-browser v5.7.0 2026-04-16 */ 'use strict'; import { UnexpectedError } from '../../../core/error/UnexpectedError.mjs'; import { SIGN_UP_PASSWORD_REQUIRED_RESULT_TYPE, SIGN_UP_ATTRIBUTES_REQUIRED_RESULT_TYPE, SIGN_UP_COMPLETED_RESULT_TYPE } from '../../interaction_client/result/SignUpActionResult.mjs'; import { SignUpResendCodeResult } from '../result/SignUpResendCodeResult.mjs'; import { SignUpSubmitCodeResult } from '../result/SignUpSubmitCodeResult.mjs'; import { SignUpState } from './SignUpState.mjs'; import { SignUpPasswordRequiredState } from './SignUpPasswordRequiredState.mjs'; import { SignUpAttributesRequiredState } from './SignUpAttributesRequiredState.mjs'; import { SignUpCompletedState } from './SignUpCompletedState.mjs'; import { SignInScenario } from '../../../sign_in/auth_flow/SignInScenario.mjs'; import { SIGN_UP_CODE_REQUIRED_STATE_TYPE } from '../../../core/auth_flow/AuthFlowStateTypes.mjs'; /* * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ /* * Sign-up code required state. */ class SignUpCodeRequiredState extends SignUpState { constructor() { super(...arguments); /** * The type of the state. */ this.stateType = SIGN_UP_CODE_REQUIRED_STATE_TYPE; } /** * Submit one-time passcode to continue sign-up flow. * @param {string} code - The code to submit. * @returns {Promise<SignUpSubmitCodeResult>} The result of the operation. */ async submitCode(code) { try { this.ensureCodeIsValid(code, this.stateParameters.codeLength); this.stateParameters.logger.verbose("1nedbh", this.stateParameters.correlationId); const result = await this.stateParameters.signUpClient.submitCode({ clientId: this.stateParameters.config.auth.clientId, correlationId: this.stateParameters.correlationId, challengeType: this.stateParameters.config.customAuth.challengeTypes ?? [], continuationToken: this.stateParameters.continuationToken ?? "", code: code, username: this.stateParameters.username, }); this.stateParameters.logger.verbose("0okwn9", this.stateParameters.correlationId); if (result.type === SIGN_UP_PASSWORD_REQUIRED_RESULT_TYPE) { // Password required this.stateParameters.logger.verbose("098u8y", this.stateParameters.correlationId); return new SignUpSubmitCodeResult(new SignUpPasswordRequiredState({ correlationId: result.correlationId, continuationToken: result.continuationToken, logger: this.stateParameters.logger, config: this.stateParameters.config, signInClient: this.stateParameters.signInClient, signUpClient: this.stateParameters.signUpClient, cacheClient: this.stateParameters.cacheClient, jitClient: this.stateParameters.jitClient, mfaClient: this.stateParameters.mfaClient, username: this.stateParameters.username, })); } else if (result.type === SIGN_UP_ATTRIBUTES_REQUIRED_RESULT_TYPE) { // Attributes required this.stateParameters.logger.verbose("0jd56g", this.stateParameters.correlationId); return new SignUpSubmitCodeResult(new SignUpAttributesRequiredState({ correlationId: result.correlationId, continuationToken: result.continuationToken, logger: this.stateParameters.logger, config: this.stateParameters.config, signInClient: this.stateParameters.signInClient, signUpClient: this.stateParameters.signUpClient, cacheClient: this.stateParameters.cacheClient, jitClient: this.stateParameters.jitClient, mfaClient: this.stateParameters.mfaClient, username: this.stateParameters.username, requiredAttributes: result.requiredAttributes, })); } else if (result.type === SIGN_UP_COMPLETED_RESULT_TYPE) { // Sign-up completed this.stateParameters.logger.verbose("0fw1nl", this.stateParameters.correlationId); return new SignUpSubmitCodeResult(new SignUpCompletedState({ correlationId: result.correlationId, continuationToken: result.continuationToken, logger: this.stateParameters.logger, config: this.stateParameters.config, signInClient: this.stateParameters.signInClient, cacheClient: this.stateParameters.cacheClient, jitClient: this.stateParameters.jitClient, mfaClient: this.stateParameters.mfaClient, username: this.stateParameters.username, signInScenario: SignInScenario.SignInAfterSignUp, })); } return SignUpSubmitCodeResult.createWithError(new UnexpectedError("Unknown sign-up result type.", this.stateParameters.correlationId)); } catch (error) { this.stateParameters.logger.errorPii("1y64s9", this.stateParameters.correlationId); return SignUpSubmitCodeResult.createWithError(error); } } /** * Resends the another one-time passcode for sign-up flow if the previous one hasn't been verified. * @returns {Promise<SignUpResendCodeResult>} The result of the operation. */ async resendCode() { try { this.stateParameters.logger.verbose("087lh9", this.stateParameters.correlationId); const result = await this.stateParameters.signUpClient.resendCode({ clientId: this.stateParameters.config.auth.clientId, challengeType: this.stateParameters.config.customAuth.challengeTypes ?? [], username: this.stateParameters.username, correlationId: this.stateParameters.correlationId, continuationToken: this.stateParameters.continuationToken ?? "", }); this.stateParameters.logger.verbose("0eub4o", this.stateParameters.correlationId); return new SignUpResendCodeResult(new SignUpCodeRequiredState({ correlationId: result.correlationId, continuationToken: result.continuationToken, logger: this.stateParameters.logger, config: this.stateParameters.config, signInClient: this.stateParameters.signInClient, signUpClient: this.stateParameters.signUpClient, cacheClient: this.stateParameters.cacheClient, jitClient: this.stateParameters.jitClient, mfaClient: this.stateParameters.mfaClient, username: this.stateParameters.username, codeLength: result.codeLength, codeResendInterval: result.interval, })); } catch (error) { this.stateParameters.logger.errorPii("04co5l", this.stateParameters.correlationId); return SignUpResendCodeResult.createWithError(error); } } /** * Gets the sent code length. * @returns {number} The length of the code. */ getCodeLength() { return this.stateParameters.codeLength; } /** * Gets the interval in seconds for the code to be resent. * @returns {number} The interval in seconds for the code to be resent. */ getCodeResendInterval() { return this.stateParameters.codeResendInterval; } } export { SignUpCodeRequiredState }; //# sourceMappingURL=SignUpCodeRequiredState.mjs.map