@digilogiclabs/saas-factory-auth
Version:
Modern authentication package for Next.js 15+ and React 18.2+/19+ applications with React Native 0.72+ support using Supabase and Firebase
1 lines • 129 kB
Source Map (JSON)
{"version":3,"sources":["../src/core/IAuthProvider.ts","../src/config/env.ts","../src/types.ts","../src/core/SupabaseAuthProvider.ts","../src/core/FirebaseAuthProvider.ts","../src/config/storage.ts","../src/core/AuthProviderFactory.ts","../src/store/authStore.ts","../src/components/AuthProvider.tsx","../src/hooks/useAuth.ts","../src/actions/index.ts","../src/utils/supabase.ts","../src/middleware/withAuth.ts","../src/server/verification.ts"],"names":["AuthEvent","validateEmail","FirebaseOAuthProvider","firebaseSignOut","firebaseUpdateProfile","validateConfig","createClient","supabase","createServerClient"],"mappings":"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","file":"index.mjs","sourcesContent":["import { User, AuthSession, AuthEvent } from '../types';\r\n\r\n/**\r\n * Authentication error types for better error handling\r\n */\r\nexport enum AuthErrorType {\r\n INVALID_CREDENTIALS = 'INVALID_CREDENTIALS',\r\n USER_NOT_FOUND = 'USER_NOT_FOUND',\r\n EMAIL_ALREADY_EXISTS = 'EMAIL_ALREADY_EXISTS',\r\n WEAK_PASSWORD = 'WEAK_PASSWORD',\r\n NETWORK_ERROR = 'NETWORK_ERROR',\r\n PROVIDER_ERROR = 'PROVIDER_ERROR',\r\n CONFIGURATION_ERROR = 'CONFIGURATION_ERROR',\r\n VALIDATION_ERROR = 'VALIDATION_ERROR',\r\n UNKNOWN = 'UNKNOWN'\r\n}\r\n\r\n/**\r\n * Custom authentication error class\r\n */\r\nexport class AuthError extends Error {\r\n public readonly timestamp: Date;\r\n public readonly code: string;\r\n\r\n constructor(\r\n public readonly type: AuthErrorType,\r\n message: string,\r\n public readonly originalError?: unknown,\r\n public readonly context?: Record<string, unknown>\r\n ) {\r\n super(message);\r\n this.name = 'AuthError';\r\n this.timestamp = new Date();\r\n this.code = type;\r\n \r\n // Ensure proper prototype chain for instanceof checks\r\n Object.setPrototypeOf(this, AuthError.prototype);\r\n \r\n // Capture stack trace if available\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, AuthError);\r\n }\r\n }\r\n\r\n /**\r\n * Convert error to JSON for logging/debugging\r\n */\r\n toJSON() {\r\n const originalErrorDetails = this.originalError instanceof Error ? {\r\n name: this.originalError.name,\r\n message: this.originalError.message,\r\n stack: this.originalError.stack,\r\n } : (this.originalError ? { message: String(this.originalError) } : undefined);\r\n\r\n return {\r\n name: this.name,\r\n type: this.type,\r\n code: this.code,\r\n message: this.message,\r\n timestamp: this.timestamp.toISOString(),\r\n context: this.context,\r\n originalError: originalErrorDetails,\r\n };\r\n }\r\n\r\n /**\r\n * Check if error is of a specific type\r\n */\r\n isType(type: AuthErrorType): boolean {\r\n return this.type === type;\r\n }\r\n\r\n /**\r\n * Check if error is retryable\r\n */\r\n isRetryable(): boolean {\r\n return [\r\n AuthErrorType.NETWORK_ERROR,\r\n AuthErrorType.PROVIDER_ERROR\r\n ].includes(this.type);\r\n }\r\n}\r\n\r\n/**\r\n * OAuth provider types - re-export from types for backward compatibility\r\n */\r\nexport type OAuthProvider = \r\n | 'google' \r\n | 'github' \r\n | 'facebook' \r\n | 'twitter' \r\n | 'discord' \r\n | 'apple'\r\n | 'microsoft'\r\n | 'linkedin'\r\n | 'spotify'\r\n | 'twitch'\r\n | 'slack'\r\n | 'notion';\r\n\r\n/**\r\n * Common user interface - alias for backward compatibility\r\n */\r\nexport type CommonUser = User;\r\n\r\n/**\r\n * Authentication provider interface that abstracts authentication operations\r\n * across different backends (Supabase, Firebase, etc.)\r\n */\r\nexport interface IAuthProvider {\r\n /**\r\n * Sign in with email and password\r\n * @param email User's email address\r\n * @param password User's password (required for email/password authentication)\r\n * @returns Promise resolving to an object containing user, session, and error\r\n */\r\n signIn(email: string, password: string): Promise<{ user: User | null; session: AuthSession | null; error: AuthError | null }>;\r\n\r\n /**\r\n * Sign up with email and password\r\n * @param email User's email address\r\n * @param password User's password (required for email/password authentication)\r\n * @returns Promise resolving to an object containing user, session, and error\r\n */\r\n signUp(email: string, password: string): Promise<{ user: User | null; session: AuthSession | null; error: AuthError | null }>;\r\n\r\n /**\r\n * Sign in with OAuth provider\r\n * @param provider OAuth provider name\r\n * @param redirectTo Optional redirect URL after authentication\r\n * @returns Promise that resolves when OAuth flow is initiated\r\n */\r\n signInWithOAuth(provider: OAuthProvide