@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
66 lines (65 loc) • 1.9 kB
TypeScript
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>;
}