@aws-amplify/auth
Version:
Auth category of aws-amplify
83 lines (81 loc) • 4.49 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertPasskeyError = exports.passkeyErrorMap = exports.PasskeyErrorCode = exports.PasskeyError = void 0;
const utils_1 = require("@aws-amplify/core/internals/utils");
const passkeyErrorPlatformConstants_1 = require("./passkeyErrorPlatformConstants");
class PasskeyError extends utils_1.AmplifyError {
constructor(params) {
super(params);
// Hack for making the custom error class work when transpiled to es5
// TODO: Delete the following 2 lines after we change the build target to >= es2015
this.constructor = PasskeyError;
Object.setPrototypeOf(this, PasskeyError.prototype);
}
}
exports.PasskeyError = PasskeyError;
var PasskeyErrorCode;
(function (PasskeyErrorCode) {
// not supported
PasskeyErrorCode["PasskeyNotSupported"] = "PasskeyNotSupported";
// duplicate passkey
PasskeyErrorCode["PasskeyAlreadyExists"] = "PasskeyAlreadyExists";
// misconfigurations
PasskeyErrorCode["InvalidPasskeyRegistrationOptions"] = "InvalidPasskeyRegistrationOptions";
PasskeyErrorCode["InvalidPasskeyAuthenticationOptions"] = "InvalidPasskeyAuthenticationOptions";
PasskeyErrorCode["RelyingPartyMismatch"] = "RelyingPartyMismatch";
// failed credential creation / retrieval
PasskeyErrorCode["PasskeyRegistrationFailed"] = "PasskeyRegistrationFailed";
PasskeyErrorCode["PasskeyRetrievalFailed"] = "PasskeyRetrievalFailed";
// cancel / aborts
PasskeyErrorCode["PasskeyRegistrationCanceled"] = "PasskeyRegistrationCanceled";
PasskeyErrorCode["PasskeyAuthenticationCanceled"] = "PasskeyAuthenticationCanceled";
PasskeyErrorCode["PasskeyOperationAborted"] = "PasskeyOperationAborted";
})(PasskeyErrorCode || (exports.PasskeyErrorCode = PasskeyErrorCode = {}));
const ABORT_OR_CANCEL_RECOVERY_SUGGESTION = 'User may have canceled the ceremony or another interruption has occurred. Check underlying error for details.';
const MISCONFIGURATION_RECOVERY_SUGGESTION = 'Ensure your user pool is configured to support the WEB_AUTHN as an authentication factor.';
exports.passkeyErrorMap = {
[PasskeyErrorCode.PasskeyNotSupported]: {
message: 'Passkeys may not be supported on this device.',
recoverySuggestion: passkeyErrorPlatformConstants_1.NOT_SUPPORTED_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.InvalidPasskeyRegistrationOptions]: {
message: 'Invalid passkey registration options.',
recoverySuggestion: MISCONFIGURATION_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.InvalidPasskeyAuthenticationOptions]: {
message: 'Invalid passkey authentication options.',
recoverySuggestion: MISCONFIGURATION_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.PasskeyRegistrationFailed]: {
message: 'Device failed to create passkey.',
recoverySuggestion: passkeyErrorPlatformConstants_1.NOT_SUPPORTED_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.PasskeyRetrievalFailed]: {
message: 'Device failed to retrieve passkey.',
recoverySuggestion: 'Passkeys may not be available on this device. Try an alternative authentication factor like PASSWORD, EMAIL_OTP, or SMS_OTP.',
},
[PasskeyErrorCode.PasskeyAlreadyExists]: {
message: 'Passkey already exists in authenticator.',
recoverySuggestion: 'Proceed with existing passkey or try again after deleting the credential.',
},
[PasskeyErrorCode.PasskeyRegistrationCanceled]: {
message: 'Passkey registration ceremony has been canceled.',
recoverySuggestion: ABORT_OR_CANCEL_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.PasskeyAuthenticationCanceled]: {
message: 'Passkey authentication ceremony has been canceled.',
recoverySuggestion: ABORT_OR_CANCEL_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.PasskeyOperationAborted]: {
message: 'Passkey operation has been aborted.',
recoverySuggestion: ABORT_OR_CANCEL_RECOVERY_SUGGESTION,
},
[PasskeyErrorCode.RelyingPartyMismatch]: {
message: 'Relying party does not match current domain.',
recoverySuggestion: 'Ensure relying party identifier matches current domain.',
},
};
exports.assertPasskeyError = (0, utils_1.createAssertionFunction)(exports.passkeyErrorMap, PasskeyError);
//# sourceMappingURL=passkeyError.js.map