export class JOSEError extends Error { static code = 'ERR_JOSE_GENERIC'; code = 'ERR_JOSE_GENERIC'; constructor(message, options) { super(message, options); this.name = this.constructor.name; Error.captureStackTrace?.(this, this.constructor); } } export class JWTClaimValidationFailed extends JOSEError { static code = 'ERR_JWT_CLAIM_VALIDATION_FAILED'; code = 'ERR_JWT_CLAIM_VALIDATION_FAILED'; claim; reason; payload; constructor(message, payload, claim = 'unspecified', reason = 'unspecified') { super(message, { cause: { claim, reason, payload } }); this.claim = claim; this.reason = reason; this.payload = payload; } } export class JWTExpired extends JOSEError { static code = 'ERR_JWT_EXPIRED'; code = 'ERR_JWT_EXPIRED'; claim; reason; payload; constructor(message, payload, claim = 'unspecified', reason = 'unspecified') { super(message, { cause: { claim, reason, payload } }); this.claim = claim; this.reason = reason; this.payload = payload; } } export class JOSEAlgNotAllowed extends JOSEError { static code = 'ERR_JOSE_ALG_NOT_ALLOWED'; code = 'ERR_JOSE_ALG_NOT_ALLOWED'; } export class JOSENotSupported extends JOSEError { static code = 'ERR_JOSE_NOT_SUPPORTED'; code = 'ERR_JOSE_NOT_SUPPORTED'; } export class JWEDecryptionFailed extends JOSEError { static code = 'ERR_JWE_DECRYPTION_FAILED'; code = 'ERR_JWE_DECRYPTION_FAILED'; constructor(message = 'decryption operation failed', options) { super(message, options); } } export class JWEInvalid extends JOSEError { static code = 'ERR_JWE_INVALID'; code = 'ERR_JWE_INVALID'; } export class JWSInvalid extends JOSEError { static code = 'ERR_JWS_INVALID'; code = 'ERR_JWS_INVALID'; } export class JWTInvalid extends JOSEError { static code = 'ERR_JWT_INVALID'; code = 'ERR_JWT_INVALID'; } export class JWKInvalid extends JOSEError { static code = 'ERR_JWK_INVALID'; code = 'ERR_JWK_INVALID'; } export class JWKSInvalid extends JOSEError { static code = 'ERR_JWKS_INVALID'; code = 'ERR_JWKS_INVALID'; } export class JWKSNoMatchingKey extends JOSEError { static code = 'ERR_JWKS_NO_MATCHING_KEY'; code = 'ERR_JWKS_NO_MATCHING_KEY'; constructor(message = 'no applicable key found in the JSON Web Key Set', options) { super(message, options); } } export class JWKSMultipleMatchingKeys extends JOSEError { [Symbol.asyncIterator]; static code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS'; code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS'; constructor(message = 'multiple matching keys found in the JSON Web Key Set', options) { super(message, options); } } export class JWKSTimeout extends JOSEError { static code = 'ERR_JWKS_TIMEOUT'; code = 'ERR_JWKS_TIMEOUT'; constructor(message = 'request timed out', options) { super(message, options); } } export class JWSSignatureVerificationFailed extends JOSEError { static code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED'; code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED'; constructor(message = 'signature verification failed', options) { super(message, options); } }