UNPKG

better-auth-compliance

Version:

Regional compliance and privacy plugin for Better Auth - GDPR, CCPA, and data protection automation

71 lines (68 loc) 1.54 kB
import type { BetterAuthPlugin } from "better-auth"; export interface ComplianceRegulation { enabled?: boolean; [key: string]: any; } export interface ComplianceOptions { regulations?: { gdpr?: ComplianceRegulation & { consentRequired?: boolean; dataRetention?: number; rightToDeletion?: boolean; dataPortability?: boolean; }; ccpa?: ComplianceRegulation & { optOutRequired?: boolean; doNotSell?: boolean; }; coppa?: ComplianceRegulation & { minimumAge?: number; parentalConsent?: boolean; }; }; consent?: { cookie?: { required?: boolean; categories?: string[]; expiry?: number; }; dataProcessing?: { required?: boolean; version?: string; updateNotification?: boolean; }; }; dataResidency?: { enabled?: boolean; defaultRegion?: string; userRegions?: Record<string, string[]>; }; privacy?: { anonymizeAfter?: number; encryptPII?: boolean; minimizeData?: boolean; auditAccess?: boolean; }; } export function compliancePlugin(options?: ComplianceOptions): BetterAuthPlugin { return { id: "compliance", init() { // Initialize compliance features }, hooks: { before: [ { matcher(ctx) { // Check consent before processing return true; }, handler: async (ctx) => { // TODO: Verify consent and compliance return; } } ] } }; }