export const ErrorCode: Readonly<{ INVALID_ARGUMENT: "INVALID_ARGUMENT"; MISSING_STATE: "MISSING_STATE"; STATE_MISMATCH: "STATE_MISMATCH"; ISSUER_MISMATCH: "ISSUER_MISMATCH"; NONCE_MISMATCH: "NONCE_MISMATCH"; SUB_MISMATCH: "SUB_MISMATCH"; AUDIENCE_MISMATCH: "AUDIENCE_MISMATCH"; ID_TOKEN_INVALID: "ID_TOKEN_INVALID"; CONTEXT_MISMATCH: "CONTEXT_MISMATCH"; SESSION_MISMATCH: "SESSION_MISMATCH"; SESSION_EXPIRED: "SESSION_EXPIRED"; PROVIDER_ERROR: "PROVIDER_ERROR"; TOKEN_EXCHANGE_FAILED: "TOKEN_EXCHANGE_FAILED"; USERINFO_FAILED: "USERINFO_FAILED"; DISCOVERY_FAILED: "DISCOVERY_FAILED"; NETWORK_ERROR: "NETWORK_ERROR"; }>; /** * Every recoverable failure raised by this package. Carries a stable * `code` (from {@link ErrorCode}) and a `status` — the HTTP response * status a middleware layer would use when translating the error. * * Callback-validation failures map to `400` (the request that reached us * is malformed / forged); failures talking to the provider map to `502` * (an upstream we depend on misbehaved). */ export class OAuth2Error extends BaseError { static statuses: { INVALID_ARGUMENT: number; MISSING_STATE: number; STATE_MISMATCH: number; ISSUER_MISMATCH: number; NONCE_MISMATCH: number; SUB_MISMATCH: number; AUDIENCE_MISMATCH: number; ID_TOKEN_INVALID: number; CONTEXT_MISMATCH: number; SESSION_MISMATCH: number; SESSION_EXPIRED: number; PROVIDER_ERROR: number; TOKEN_EXCHANGE_FAILED: number; USERINFO_FAILED: number; DISCOVERY_FAILED: number; NETWORK_ERROR: number; }; } import { BaseError } from '@exortek/shared/errors';