aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
103 lines • 3.65 kB
TypeScript
import { z } from 'zod';
export declare const UserSchema: z.ZodObject<{
id: z.ZodString;
email: z.ZodString;
name: z.ZodString;
role: z.ZodEnum<["user", "admin", "developer"]>;
permissions: z.ZodArray<z.ZodString, "many">;
createdAt: z.ZodDate;
lastLogin: z.ZodOptional<z.ZodDate>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, "strip", z.ZodTypeAny, {
name: string;
id: string;
role: "user" | "admin" | "developer";
email: string;
createdAt: Date;
permissions: string[];
metadata?: Record<string, any> | undefined;
lastLogin?: Date | undefined;
}, {
name: string;
id: string;
role: "user" | "admin" | "developer";
email: string;
createdAt: Date;
permissions: string[];
metadata?: Record<string, any> | undefined;
lastLogin?: Date | undefined;
}>;
export type User = z.infer<typeof UserSchema>;
export declare const TokenPayloadSchema: z.ZodObject<{
userId: z.ZodString;
email: z.ZodString;
role: z.ZodEnum<["user", "admin", "developer"]>;
permissions: z.ZodArray<z.ZodString, "many">;
iat: z.ZodOptional<z.ZodNumber>;
exp: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
role: "user" | "admin" | "developer";
email: string;
userId: string;
permissions: string[];
iat?: number | undefined;
exp?: number | undefined;
}, {
role: "user" | "admin" | "developer";
email: string;
userId: string;
permissions: string[];
iat?: number | undefined;
exp?: number | undefined;
}>;
export type TokenPayload = z.infer<typeof TokenPayloadSchema>;
export interface AuthConfig {
jwtSecret: string;
jwtExpiresIn: string;
refreshTokenExpiresIn: string;
bcryptRounds: number;
}
export declare class AuthService {
private config;
constructor(config?: Partial<AuthConfig>);
hashPassword(password: string): Promise<string>;
verifyPassword(password: string, hash: string): Promise<boolean>;
generateAccessToken(user: User): string;
generateRefreshToken(userId: string): string;
verifyToken(token: string): TokenPayload;
decodeToken(token: string): TokenPayload | null;
hasPermission(user: User | TokenPayload, permission: string): boolean;
hasAnyPermission(user: User | TokenPayload, permissions: string[]): boolean;
hasAllPermissions(user: User | TokenPayload, permissions: string[]): boolean;
generateApiKey(): string;
validateApiKey(apiKey: string): boolean;
}
export declare class AuthError extends Error {
code: string;
statusCode: number;
constructor(message: string, code: string, statusCode?: number);
}
export declare class PermissionError extends AuthError {
constructor(message?: string, permission?: string);
}
export declare const Permissions: {
readonly AI: {
readonly USE_OPENAI: "ai:use_openai";
readonly USE_VISION: "ai:use_vision";
readonly USE_EMBEDDINGS: "ai:use_embeddings";
readonly UNLIMITED_REQUESTS: "ai:unlimited_requests";
};
readonly COLLABORATION: {
readonly CREATE_ROOM: "collab:create_room";
readonly JOIN_ROOM: "collab:join_room";
readonly EDIT_DOCUMENT: "collab:edit_document";
readonly DELETE_ROOM: "collab:delete_room";
};
readonly ADMIN: {
readonly MANAGE_USERS: "admin:manage_users";
readonly VIEW_ANALYTICS: "admin:view_analytics";
readonly SYSTEM_CONFIG: "admin:system_config";
};
};
export type Permission = typeof Permissions[keyof typeof Permissions][keyof typeof Permissions[keyof typeof Permissions]];
//# sourceMappingURL=auth-service.d.ts.map