UNPKG

@mindmakr/gs-websdk

Version:

Web SDK for Guru SaaS System - Complete JavaScript/TypeScript SDK for building applications with dynamic schema management

120 lines (119 loc) 3.03 kB
/** * Core SDK Client - Main entry point for the Guru SaaS Web SDK */ import { SDKConfig, RequestConfig, AuthTokens, User } from '../types'; export declare class GuruSaaSClient { private axiosInstance; private config; private tokens; private refreshPromise; private user; constructor(config?: SDKConfig); /** * Get current configuration */ getConfig(): Required<SDKConfig>; /** * Update configuration */ updateConfig(newConfig: Partial<SDKConfig>): void; /** * Check if user is authenticated */ isAuthenticated(): boolean; /** * Get current user */ getCurrentUser(): User | null; /** * Get current auth tokens */ getTokens(): AuthTokens | null; /** * Set auth tokens manually */ setTokens(tokens: AuthTokens): void; /** * Clear authentication data */ clearAuth(): void; /** * Make an authenticated request to any service */ request<T = any>(method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH', url: string, data?: any, config?: RequestConfig): Promise<T>; /** * GET request helper */ get<T = any>(url: string, config?: RequestConfig): Promise<T>; /** * POST request helper */ post<T = any>(url: string, data?: any, config?: RequestConfig): Promise<T>; /** * PUT request helper */ put<T = any>(url: string, data?: any, config?: RequestConfig): Promise<T>; /** * DELETE request helper */ delete<T = any>(url: string, config?: RequestConfig): Promise<T>; /** * PATCH request helper */ patch<T = any>(url: string, data?: any, config?: RequestConfig): Promise<T>; /** * Login with email and password */ login(email: string, password: string): Promise<{ user: User; tokens: AuthTokens; }>; /** * Request OTP for email/password */ requestOTP(email: string, password: string): Promise<{ otp_token: string; masked_email: string; }>; /** * Verify OTP and complete login */ verifyOTP(otpToken: string, otpCode: string, options?: { rememberDevice?: boolean; deviceName?: string; }): Promise<{ user: User; tokens: AuthTokens; }>; /** * Register new user */ register(userData: { email: string; password: string; tenant_id: string; name?: string; }): Promise<User>; /** * Refresh access token */ refreshToken(): Promise<AuthTokens>; /** * Logout current user */ logout(): Promise<void>; /** * Get current user info */ me(): Promise<User>; private performTokenRefresh; private handleRequest; private handleResponse; private handleResponseError; private resolveUrl; private getAuthHeaders; private storeTokensInStorage; private restoreTokensFromStorage; private clearTokensFromStorage; private log; }