UNPKG

@frank-auth/react

Version:

Flexible and customizable React UI components for Frank Authentication

1 lines 17.5 kB
{"version":3,"file":"index.cjs","sources":["../../../src/hooks/index.ts"],"sourcesContent":["/**\n * @frank-auth/react - Hooks Index\n *\n * Main entry point for all authentication hooks. Exports all hooks\n * and related utilities for easy importing and usage.\n */\n\n// ============================================================================\n// Main Authentication Hooks\n// ============================================================================\n\n// Core authentication hook\nimport {useAuth, useAuthActions, useAuthOrganization, useAuthState, useAuthStatus,} from './use-auth';\nimport {useUser, useUserActions, useUserProfile, useUserVerification,} from './use-user';\n\n// Session management hooks\nimport {useMultiSession, useSession, useSessionExpiry, useSessionSecurity, useSessionStatus,} from './use-session';\n// Organization management hooks\nimport {\n useOrganization,\n useOrganizationInvitations,\n useOrganizationMembership,\n useOrganizationSwitcher,\n} from './use-organization';\n// Configuration hooks\nimport {\n useComponentConfiguration,\n useConfig,\n useConfigValidation,\n useFeatureFlags,\n useLocalizationConfig,\n useOrganizationConfiguration,\n useThemeConfig,\n} from './use-config';\n// Theme hooks\nimport {useTheme, useThemeColors, useThemeLayout, useThemeStyles, useThemeTypography,} from './use-theme';\n// Permission and authorization hooks\nimport {useOrganizationPermissions, usePermissionGuard, usePermissions, useSystemPermissions,} from './use-permissions';\n// Multi-Factor Authentication hooks\nimport {useBackupCodes, useMFA, useSMSMFA, useTOTP,} from './use-mfa';\n// Passkeys (WebAuthn) hooks\nimport {usePasskeyAuthentication, usePasskeyRegistration, usePasskeys,} from './use-passkeys';\n// OAuth authentication hooks\nimport {useOAuth, useOAuthCallback, useOAuthProvider,} from './use-oauth';\n// Magic link authentication hooks\nimport {useMagicLink, useMagicLinkPasswordReset, useMagicLinkSignIn, useMagicLinkVerification,} from './use-magic-link';\n\nexport {\n useAuth,\n useAuthState,\n useAuthActions,\n useAuthOrganization,\n useAuthStatus,\n} from './use-auth';\n\n// User management hooks\nexport {\n useUser,\n useUserProfile,\n useUserVerification,\n useUserActions,\n} from './use-user';\n\nexport {\n useSession,\n useSessionStatus,\n useMultiSession,\n useSessionSecurity,\n useSessionExpiry,\n} from './use-session';\n\nexport {\n useOrganization,\n useOrganizationMembership,\n useOrganizationInvitations,\n useOrganizationSwitcher,\n} from './use-organization';\n\n// ============================================================================\n// Configuration and Theme Hooks\n// ============================================================================\n\nexport {\n useConfig,\n useFeatureFlags,\n useThemeConfig,\n useLocalizationConfig,\n useOrganizationConfiguration,\n useComponentConfiguration,\n useConfigValidation,\n} from './use-config';\n\nexport {\n useTheme,\n useThemeColors,\n useThemeTypography,\n useThemeLayout,\n useThemeStyles,\n} from './use-theme';\n\n// ============================================================================\n// Security and Authentication Method Hooks\n// ============================================================================\nexport {\n usePermissions,\n useOrganizationPermissions,\n useSystemPermissions,\n usePermissionGuard,\n\n // Permission constants\n PERMISSION_ACTIONS,\n PERMISSION_RESOURCES,\n SYSTEM_ROLES,\n ORGANIZATION_ROLES,\n} from './use-permissions';\n\nexport {\n useMFA,\n useTOTP,\n useSMSMFA,\n useBackupCodes,\n\n // MFA constants\n MFA_METHOD_CONFIGS,\n} from './use-mfa';\n\nexport {\n usePasskeys,\n usePasskeyRegistration,\n usePasskeyAuthentication,\n} from './use-passkeys';\n\nexport {\n useOAuth,\n useOAuthProvider,\n useOAuthCallback,\n\n // OAuth constants\n OAUTH_PROVIDERS,\n} from './use-oauth';\n\nexport {\n useMagicLink,\n useMagicLinkSignIn,\n useMagicLinkVerification,\n useMagicLinkPasswordReset,\n\n // Magic link constants\n MAGIC_LINK_CONFIG,\n} from './use-magic-link';\n\n// ============================================================================\n// Hook Utilities and Types\n// ============================================================================\n\n// Re-export types from provider types for convenience\nexport type {\n // Auth types\n AuthError,\n AuthFeatures,\n AuthState,\n OrganizationMembership,\n SignInParams,\n SignInResult,\n SignUpParams,\n SignUpResult,\n SetActiveParams,\n UpdateUserParams,\n\n // Session types\n SessionState,\n SessionContextMethods,\n SessionContextValue,\n\n // Organization types\n OrganizationState,\n OrganizationInvitation,\n OrganizationContextMethods,\n OrganizationContextValue,\n CreateOrganizationParams,\n UpdateOrganizationParams,\n InviteMemberParams,\n\n // Permission types\n PermissionState,\n PermissionContext,\n PermissionContextMethods,\n PermissionContextValue,\n\n // Theme types\n ThemeState,\n ThemeContextValue,\n OrganizationBranding,\n\n // Config types\n ConfigState,\n ConfigContextValue,\n} from '../provider/types';\n\n// Re-export client types for convenience\nexport type {\n User,\n Session,\n Organization,\n OrganizationSettings,\n AuthStatus,\n UserType,\n AuthProvider,\n MFAMethod,\n PasskeySummary,\n} from '@frank-auth/client';\n\n// ============================================================================\n// Convenience Hook Collections\n// ============================================================================\n\n/**\n * Collection of all core authentication hooks\n * Useful for understanding what's available or for testing\n */\nexport const CORE_AUTH_HOOKS = {\n useAuth,\n useUser,\n useSession,\n useOrganization,\n useConfig,\n useTheme,\n usePermissions,\n} as const;\n\n/**\n * Collection of all authentication method hooks\n * For different authentication strategies\n */\nexport const AUTH_METHOD_HOOKS = {\n useMFA,\n usePasskeys,\n useOAuth,\n useMagicLink,\n} as const;\n\n/**\n * Collection of all specialized hooks\n * For specific use cases and advanced functionality\n */\nexport const SPECIALIZED_HOOKS = {\n // Auth specialized\n useAuthState,\n useAuthActions,\n useAuthOrganization,\n useAuthStatus,\n\n // User specialized\n useUserProfile,\n useUserVerification,\n useUserActions,\n\n // Session specialized\n useSessionStatus,\n useMultiSession,\n useSessionSecurity,\n useSessionExpiry,\n\n // Organization specialized\n useOrganizationMembership,\n useOrganizationInvitations,\n useOrganizationSwitcher,\n\n // Config specialized\n useFeatureFlags,\n useThemeConfig,\n useLocalizationConfig,\n useOrganizationConfiguration,\n useComponentConfiguration,\n useConfigValidation,\n\n // Theme specialized\n useThemeColors,\n useThemeTypography,\n useThemeLayout,\n useThemeStyles,\n\n // Permission specialized\n useOrganizationPermissions,\n useSystemPermissions,\n usePermissionGuard,\n\n // MFA specialized\n useTOTP,\n useSMSMFA,\n useBackupCodes,\n\n // Passkeys specialized\n usePasskeyRegistration,\n usePasskeyAuthentication,\n\n // OAuth specialized\n useOAuthProvider,\n useOAuthCallback,\n\n // Magic link specialized\n useMagicLinkSignIn,\n useMagicLinkVerification,\n useMagicLinkPasswordReset,\n} as const;\n\n// ============================================================================\n// Hook Groups by Use Case\n// ============================================================================\n\n/**\n * Authentication hooks for sign-in/sign-up flows\n */\nexport const AUTHENTICATION_HOOKS = {\n useAuth,\n useOAuth,\n useMagicLink,\n usePasskeys,\n useMFA,\n} as const;\n\n/**\n * User management hooks for profile and account management\n */\nexport const USER_MANAGEMENT_HOOKS = {\n useUser,\n useSession,\n usePermissions,\n} as const;\n\n/**\n * Organization management hooks for multi-tenant applications\n */\nexport const ORGANIZATION_HOOKS = {\n useOrganization,\n useOrganizationPermissions,\n useOrganizationConfiguration,\n} as const;\n\n/**\n * UI customization hooks for theming and configuration\n */\nexport const UI_CUSTOMIZATION_HOOKS = {\n useTheme,\n useConfig,\n useFeatureFlags,\n useComponentConfiguration,\n} as const;\n\n/**\n * Security hooks for advanced security features\n */\nexport const SECURITY_HOOKS = {\n usePermissions,\n useMFA,\n usePasskeys,\n useSessionSecurity,\n} as const;\n\n// ============================================================================\n// Helper Functions\n// ============================================================================\n\n/**\n * Get all available hooks as an array\n * Useful for debugging or documentation\n */\nexport function getAllHooks() {\n return [\n ...Object.values(CORE_AUTH_HOOKS),\n ...Object.values(AUTH_METHOD_HOOKS),\n ...Object.values(SPECIALIZED_HOOKS),\n ];\n}\n\nconst HOOK_CATEGORIES = {\n authentication: AUTHENTICATION_HOOKS,\n userManagement: USER_MANAGEMENT_HOOKS,\n organization: ORGANIZATION_HOOKS,\n uiCustomization: UI_CUSTOMIZATION_HOOKS,\n security: SECURITY_HOOKS,\n};\n\n\n/**\n * Get hooks by category\n * Useful for conditional loading or feature detection\n */\nexport function getHooksByCategory(category: keyof typeof HOOK_CATEGORIES) {\n return HOOK_CATEGORIES[category];\n}\n\n/**\n * Check if a hook is available\n * Useful for feature detection\n */\nexport function isHookAvailable(hookName: string): boolean {\n const allHooks = getAllHooks();\n return allHooks.some(hook => hook.name === hookName);\n}\n\n// ============================================================================\n// Development Utilities\n// ============================================================================\n\n/**\n * Hook metadata for development and documentation\n */\nexport const HOOK_METADATA = {\n // Core hooks\n useAuth: {\n description: 'Main authentication hook providing access to auth state and methods',\n category: 'core',\n dependencies: ['AuthProvider'],\n returnType: 'UseAuthReturn',\n },\n useUser: {\n description: 'User management hook for profile operations and verification',\n category: 'core',\n dependencies: ['AuthProvider'],\n returnType: 'UseUserReturn',\n },\n useSession: {\n description: 'Session management hook for multi-session and security features',\n category: 'core',\n dependencies: ['AuthProvider'],\n returnType: 'UseSessionReturn',\n },\n useOrganization: {\n description: 'Organization management hook for multi-tenant operations',\n category: 'core',\n dependencies: ['AuthProvider'],\n returnType: 'UseOrganizationReturn',\n },\n useConfig: {\n description: 'Configuration hook for UI settings and feature flags',\n category: 'core',\n dependencies: ['ConfigProvider'],\n returnType: 'UseConfigReturn',\n },\n useTheme: {\n description: 'Theme management hook for styling and customization',\n category: 'core',\n dependencies: ['ThemeProvider'],\n returnType: 'UseThemeReturn',\n },\n usePermissions: {\n description: 'Permission and authorization hook for role-based access control',\n category: 'security',\n dependencies: ['AuthProvider'],\n returnType: 'UsePermissionsReturn',\n },\n useMFA: {\n description: 'Multi-factor authentication hook for TOTP, SMS, and other MFA methods',\n category: 'security',\n dependencies: ['AuthProvider'],\n returnType: 'UseMFAReturn',\n },\n usePasskeys: {\n description: 'Passkeys (WebAuthn) hook for passwordless authentication',\n category: 'authentication',\n dependencies: ['AuthProvider'],\n returnType: 'UsePasskeysReturn',\n },\n useOAuth: {\n description: 'OAuth authentication hook for social sign-in providers',\n category: 'authentication',\n dependencies: ['AuthProvider'],\n returnType: 'UseOAuthReturn',\n },\n useMagicLink: {\n description: 'Magic link authentication hook for passwordless email authentication',\n category: 'authentication',\n dependencies: ['AuthProvider'],\n returnType: 'UseMagicLinkReturn',\n },\n} as const;\n\n/**\n * Get hook metadata\n */\nexport function getHookMetadata(hookName: keyof typeof HOOK_METADATA) {\n return HOOK_METADATA[hookName];\n}\n\n/**\n * Get hooks by category from metadata\n */\nexport function getHooksByMetadataCategory(category: string) {\n return Object.entries(HOOK_METADATA)\n .filter(([_, meta]) => meta.category === category)\n .map(([name]) => name);\n}\n\n// ============================================================================\n// Export Default\n// ============================================================================\n\n// Export the main auth hook as default for convenience\nexport { useAuth as default } from './use-auth';\n"],"names":["CORE_AUTH_HOOKS","useAuth","useUser","useSession","useOrganization","useConfig","useTheme","usePermissions","AUTH_METHOD_HOOKS","useMFA","usePasskeys","useOAuth","useMagicLink","SPECIALIZED_HOOKS","useAuthState","useAuthActions","useAuthOrganization","useAuthStatus","useUserProfile","useUserVerification","useUserActions","useSessionStatus","useMultiSession","useSessionSecurity","useSessionExpiry","useOrganizationMembership","useOrganizationInvitations","useOrganizationSwitcher","useFeatureFlags","useThemeConfig","useLocalizationConfig","useOrganizationConfiguration","useComponentConfiguration","useConfigValidation","useThemeColors","useThemeTypography","useThemeLayout","useThemeStyles","useOrganizationPermissions","useSystemPermissions","usePermissionGuard","useTOTP","useSMSMFA","useBackupCodes","usePasskeyRegistration","usePasskeyAuthentication","useOAuthProvider","useOAuthCallback","useMagicLinkSignIn","useMagicLinkVerification","useMagicLinkPasswordReset","AUTHENTICATION_HOOKS","USER_MANAGEMENT_HOOKS","ORGANIZATION_HOOKS","UI_CUSTOMIZATION_HOOKS","SECURITY_HOOKS","getAllHooks","HOOK_CATEGORIES","getHooksByCategory","category","isHookAvailable","hookName","hook","HOOK_METADATA","getHookMetadata","getHooksByMetadataCategory","_","meta","name"],"mappings":"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"}