UNPKG

stratakit

Version:

stratakit - Meta-framework React puro con Auto Router automático, file-based routing, SEO automático y performance superior

88 lines (87 loc) 2.37 kB
import { Route } from './types'; import { MiddlewareContext } from './middleware'; export interface GuardContext extends MiddlewareContext { route: Route; previousRoute?: Route; navigationType: 'push' | 'replace' | 'back' | 'forward'; } export interface GuardResult { canActivate: boolean; redirect?: string; reason?: string; data?: any; } export type GuardFunction = (context: GuardContext) => Promise<GuardResult> | GuardResult; export declare class GuardManager { private guards; /** * Registrar guard */ register(name: string, guard: GuardFunction): void; /** * Ejecutar guards para una ruta */ execute(route: Route, context: GuardContext): Promise<GuardResult>; /** * Obtener guard por nombre */ get(name: string): GuardFunction | undefined; /** * Listar todos los guards */ list(): string[]; /** * Eliminar guard */ remove(name: string): boolean; } export declare const guardManager: GuardManager; /** * Guard de autenticación */ export declare const authGuard: GuardFunction; /** * Guard de autorización */ export declare const createPermissionGuard: (requiredPermissions: string[]) => GuardFunction; /** * Guard de roles */ export declare const createRoleGuard: (requiredRoles: string[]) => GuardFunction; /** * Guard de verificación de email */ export declare const emailVerificationGuard: GuardFunction; /** * Guard de términos y condiciones */ export declare const termsGuard: GuardFunction; /** * Guard de mantenimiento */ export declare const maintenanceGuard: GuardFunction; /** * Guard de país/región */ export declare const createCountryGuard: (allowedCountries: string[]) => GuardFunction; /** * Guard de horario */ export declare const createTimeGuard: (startHour: number, endHour: number) => GuardFunction; /** * Guard de dispositivo */ export declare const createDeviceGuard: (allowedDevices: ("mobile" | "tablet" | "desktop")[]) => GuardFunction; /** * Guard de versión de app */ export declare const createVersionGuard: (minVersion: string) => GuardFunction; /** * Guard de datos de usuario */ export declare const userDataGuard: GuardFunction; /** * Guard de suscripción */ export declare const createSubscriptionGuard: (requiredPlan: string) => GuardFunction; export default guardManager;