diff options
author | Matthew Miller <matthew@millerti.me> | 2023-02-28 22:30:41 -0800 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2023-02-28 22:30:41 -0800 |
commit | 50bf90ffa88e2f327d400cb175b1f1a0c7d7588e (patch) | |
tree | 68533ce4eba175f8abc882d4ab9e26d7ae70a97a /packages/browser/src | |
parent | 04d49d9cc03cb6342d5073c20d0e139baba3541c (diff) |
Add error codes to WebAuthnError
Diffstat (limited to 'packages/browser/src')
-rw-r--r-- | packages/browser/src/helpers/webAuthnError.ts | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/packages/browser/src/helpers/webAuthnError.ts b/packages/browser/src/helpers/webAuthnError.ts index aad98ff..135354a 100644 --- a/packages/browser/src/helpers/webAuthnError.ts +++ b/packages/browser/src/helpers/webAuthnError.ts @@ -17,14 +17,40 @@ * scenarios a given error would be raised. */ export class WebAuthnError extends Error { - constructor(message: string, cause: Error, name?: string) { + code: SimpleWebAuthnErrorCode; + + constructor({ + message, + code, + cause, + name, + }: { + message: string, + code: SimpleWebAuthnErrorCode, + cause: Error, + name?: string, + }) { /** * `cause` is supported in evergreen browsers, but not IE10, so this ts-ignore is to * help Rollup complete the ES5 build. */ // @ts-ignore super(message, { cause }) - // this.name = name ?? cause.name; this.name = name ?? cause.name; + this.code = code; } } + +export type SimpleWebAuthnErrorCode = + 'ERROR_CEREMONY_ABORTED' + | 'ERROR_INVALID_DOMAIN' + | 'ERROR_INVALID_RP_ID' + | 'ERROR_INVALID_USER_ID_LENGTH' + | 'ERROR_AUTHENTICATOR_GENERAL_ERROR' + | 'ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT' + | 'ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT' + | 'ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED' + | 'ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG' + | 'ERROR_MALFORMED_PUBKEYCREDPARAMS' + | 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY' + ; |