@hellocoop/web-identity
Version:
Functions for generating and verifying JWT tokens used in the Verified Email Autocomplete protocol
100 lines • 3.15 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.JWKSFetchError = exports.DNSDiscoveryError = exports.EmailValidationError = exports.JWKValidationError = exports.TokenFormatError = exports.TimeValidationError = exports.InvalidSignatureError = exports.MissingClaimError = exports.WebIdentityError = void 0;
/**
* Base error class for all web-identity related errors
*/
class WebIdentityError extends Error {
code;
constructor(message, code) {
super(message);
this.code = code;
this.name = 'WebIdentityError';
// Maintains proper stack trace for where our error was thrown (only available on V8)
if (Error.captureStackTrace) {
Error.captureStackTrace(this, WebIdentityError);
}
}
}
exports.WebIdentityError = WebIdentityError;
/**
* Error thrown when a required claim is missing from a JWT
*/
class MissingClaimError extends WebIdentityError {
constructor(claim) {
super(`Required claim '${claim}' is missing`, 'missing_claim');
this.name = 'MissingClaimError';
}
}
exports.MissingClaimError = MissingClaimError;
/**
* Error thrown when JWT signature verification fails
*/
class InvalidSignatureError extends WebIdentityError {
constructor(message = 'Token signature verification failed') {
super(message, 'invalid_signature');
this.name = 'InvalidSignatureError';
}
}
exports.InvalidSignatureError = InvalidSignatureError;
/**
* Error thrown when time-based validation fails (iat claims)
*/
class TimeValidationError extends WebIdentityError {
constructor(message) {
super(message, 'time_validation');
this.name = 'TimeValidationError';
}
}
exports.TimeValidationError = TimeValidationError;
/**
* Error thrown when token format is invalid or malformed
*/
class TokenFormatError extends WebIdentityError {
constructor(message) {
super(message, 'token_format');
this.name = 'TokenFormatError';
}
}
exports.TokenFormatError = TokenFormatError;
/**
* Error thrown when JWK validation fails
*/
class JWKValidationError extends WebIdentityError {
constructor(message) {
super(message, 'jwk_validation');
this.name = 'JWKValidationError';
}
}
exports.JWKValidationError = JWKValidationError;
/**
* Error thrown when email validation fails
*/
class EmailValidationError extends WebIdentityError {
constructor(message) {
super(message, 'email_validation');
this.name = 'EmailValidationError';
}
}
exports.EmailValidationError = EmailValidationError;
/**
* Error thrown when DNS discovery fails
*/
class DNSDiscoveryError extends WebIdentityError {
constructor(message) {
super(message, 'dns_discovery');
this.name = 'DNSDiscoveryError';
}
}
exports.DNSDiscoveryError = DNSDiscoveryError;
/**
* Error thrown when JWKS fetching fails
*/
class JWKSFetchError extends WebIdentityError {
constructor(message) {
super(message, 'jwks_fetch');
this.name = 'JWKSFetchError';
}
}
exports.JWKSFetchError = JWKSFetchError;
//# sourceMappingURL=errors.js.map
;