UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

66 lines (65 loc) • 1.9 kB
import { BaseAuthProvider } from "./BaseAuthProvider.js"; import type { AuthProviderConfig, ClerkConfig, AuthUser, TokenValidationResult, AuthRequestContext, AuthHealthCheck, AuthProviderType } from "../../types/index.js"; /** * Clerk Authentication Provider * * Supports Clerk's session-based and JWT authentication. * Can validate both JWT tokens and session tokens via Clerk API. * * Features: * - JWT validation using Clerk's JWKS * - Session token validation via Clerk API * - User profile fetching * - Organization support for multi-tenant apps * * @example * ```typescript * const clerk = new ClerkProvider({ * type: "clerk", * publishableKey: "pk_test_...", * secretKey: "sk_test_..." * }); * * const result = await clerk.authenticateToken(sessionToken); * if (result.valid) { * console.log("Authenticated user:", result.user); * } * ``` */ export declare class ClerkProvider extends BaseAuthProvider { readonly type: AuthProviderType; private secretKey; private jwtKey?; private publishableKey?; private jwks; private localKey; constructor(config: AuthProviderConfig & ClerkConfig); /** * Initialize Clerk JWKS */ initialize(): Promise<void>; /** * Validate Clerk session token or JWT */ authenticateToken(token: string, _context?: AuthRequestContext): Promise<TokenValidationResult>; /** * Validate JWT using local jwtKey (if configured) or JWKS */ private validateJWT; /** * Validate session token via Clerk API */ private validateSessionToken; /** * Get user by ID from Clerk API */ getUser(userId: string): Promise<AuthUser | null>; /** * Get user by email from Clerk API */ getUserByEmail(email: string): Promise<AuthUser | null>; /** * Health check */ healthCheck(): Promise<AuthHealthCheck>; }