INNER CODE UNIT · TypeScript
enabling
aws-devtools-labs/aws-blocks · packages/bb-auth-cognito/src/index.ts:1527
const enabling = deltas.filter(([, s]) => s === 'ENABLED' || s === 'PREFERRED' || s === 'NOT_PREFERRED');
if (enabling.some(([f]) => f === 'TOTP') && !user.totpVerified) {
throw new ApiError(
'TOTP is not associated for this user. Call setUpTOTP + verifyTOTPSetup before enabling it as an MFA factor.',
400,
{ name: AuthCognitoErrors.SoftwareTokenMFANotFound },
);
}
// Apply the delta. Start from the current state.
const enabled = new Set<MfaFactor>(user.mfaPreference.enabled);
let preferred: MfaFactor | 'NOMFA' | undefined = user.mfaPreference.preferred;
for (const [factor, setting] of deltas) {
switch (setting) {
case 'DISABLED':
enabled.delete(factor);
if (preferred === factor) preferred = undefined;