botbook/node_modules/@azure/msal-browser/dist/error/NativeAuthError.mjs

72 lines
2.8 KiB
JavaScript
Raw Normal View History

2024-09-04 13:13:15 -03:00
/*! @azure/msal-browser v3.23.0 2024-09-03 */
'use strict';
import { AuthError, InteractionRequiredAuthError, createInteractionRequiredAuthError, InteractionRequiredAuthErrorCodes } from '@azure/msal-common';
import { createBrowserAuthError } from './BrowserAuthError.mjs';
import { contentError, userSwitch } from './NativeAuthErrorCodes.mjs';
import { PERSISTENT_ERROR, DISABLED, NO_NETWORK, USER_CANCEL, USER_INTERACTION_REQUIRED, ACCOUNT_UNAVAILABLE } from '../broker/nativeBroker/NativeStatusCodes.mjs';
import { noNetworkConnectivity, userCancelled } from './BrowserAuthErrorCodes.mjs';
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
const INVALID_METHOD_ERROR = -2147186943;
const NativeAuthErrorMessages = {
[userSwitch]: "User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.",
};
class NativeAuthError extends AuthError {
constructor(errorCode, description, ext) {
super(errorCode, description);
Object.setPrototypeOf(this, NativeAuthError.prototype);
this.name = "NativeAuthError";
this.ext = ext;
}
}
/**
* These errors should result in a fallback to the 'standard' browser based auth flow.
*/
function isFatalNativeAuthError(error) {
if (error.ext &&
error.ext.status &&
(error.ext.status === PERSISTENT_ERROR ||
error.ext.status === DISABLED)) {
return true;
}
if (error.ext &&
error.ext.error &&
error.ext.error === INVALID_METHOD_ERROR) {
return true;
}
switch (error.errorCode) {
case contentError:
return true;
default:
return false;
}
}
/**
* Create the appropriate error object based on the WAM status code.
* @param code
* @param description
* @param ext
* @returns
*/
function createNativeAuthError(code, description, ext) {
if (ext && ext.status) {
switch (ext.status) {
case ACCOUNT_UNAVAILABLE:
return createInteractionRequiredAuthError(InteractionRequiredAuthErrorCodes.nativeAccountUnavailable);
case USER_INTERACTION_REQUIRED:
return new InteractionRequiredAuthError(code, description);
case USER_CANCEL:
return createBrowserAuthError(userCancelled);
case NO_NETWORK:
return createBrowserAuthError(noNetworkConnectivity);
}
}
return new NativeAuthError(code, NativeAuthErrorMessages[code] || description, ext);
}
export { NativeAuthError, NativeAuthErrorMessages, createNativeAuthError, isFatalNativeAuthError };
//# sourceMappingURL=NativeAuthError.mjs.map