@gsarthak783/accesskit-auth
Version:
JavaScript/TypeScript SDK for AccessKit Authentication System - Easy auth integration for any project
120 lines • 2.75 kB
TypeScript
export interface User {
id: string;
email: string;
firstName: string;
lastName: string;
username?: string;
displayName?: string;
avatar?: string;
isVerified: boolean;
isActive: boolean;
customFields?: Record<string, any>;
createdAt: string;
lastLogin?: string;
}
export interface CreateUserData {
email: string;
password: string;
firstName: string;
lastName: string;
username?: string;
customFields?: Record<string, any>;
}
export interface LoginCredentials {
email: string;
password: string;
}
export interface UpdateUserData {
firstName?: string;
lastName?: string;
displayName?: string;
avatar?: string;
username?: string;
customFields?: Record<string, any>;
}
export interface ChangePasswordData {
currentPassword: string;
newPassword: string;
}
export interface UpdateEmailData {
newEmail: string;
password: string;
}
export interface ReauthenticateData {
password: string;
}
export interface AuthResponse {
success: boolean;
message?: string;
data: {
user: User;
tokens: {
accessToken: string;
refreshToken: string;
};
needsVerification?: boolean;
};
}
export interface ApiResponse<T = any> {
success: boolean;
data?: T;
message?: string;
errors?: Array<{
field: string;
message: string;
}>;
}
export interface AuthConfig {
apiKey: string;
baseUrl?: string;
projectId?: string;
timeout?: number;
}
export interface TokenStorage {
getAccessToken(): string | null;
setAccessToken(token: string): void;
getRefreshToken(): string | null;
setRefreshToken(token: string): void;
clearTokens(): void;
}
export type AuthEvent = 'login' | 'logout' | 'register' | 'token_refresh' | 'profile_update' | 'error' | 'authStateChange' | 'reauthenticate';
export interface AuthEventData {
user?: User;
error?: Error;
timestamp: number;
isAuthenticated?: boolean;
}
export interface PaginationOptions {
page?: number;
limit?: number;
}
export interface PaginatedResponse<T> {
data: T[];
pagination: {
current: number;
pages: number;
total: number;
};
}
export interface ExportOptions {
format?: 'json' | 'csv';
includeCustomFields?: boolean;
dateRange?: {
from: string;
to: string;
};
}
export interface ImportOptions {
format?: 'json' | 'csv';
updateExisting?: boolean;
skipInvalid?: boolean;
}
export interface ExportData {
users: User[];
metadata: {
exportedAt: string;
totalCount: number;
projectId: string;
};
}
//# sourceMappingURL=types.d.ts.map