/** * @djangocfg/crypto * * Client-side AES-256-GCM decryption for Django-CFG encrypted API responses. * * @packageDocumentation * * @example * ```typescript * // Basic usage - decrypt a single field * import { createDecryptionClient } from '@djangocfg/crypto'; * * const crypto = await createDecryptionClient({ * secretKey: 'your-django-secret-key', * userId: 123 // optional, for per-user encryption * }); * * const response = await fetch('/api/products/?encrypt=true'); * const data = await crypto.decryptObject(await response.json()); * console.log(data.price); // decrypted value * ``` * * @example * ```typescript * // React usage * import { useDecrypt } from '@djangocfg/crypto/react'; * * function ProductPrice({ product }) { * const { data, isLoading } = useDecrypt(product, { * secretKey: process.env.NEXT_PUBLIC_DECRYPT_KEY! * }); * * if (isLoading) return ; * return {data.price}; * } * ``` */ // Types export type { EncryptedField, EncryptedResponse, DecryptionConfig, DecryptionResult, DecryptionError, } from './types'; export { isEncryptedField, isEncryptedResponse } from './types'; // Key derivation export { deriveKey, deriveKeyBytes, deriveKeyFromConfig, buildSalt, } from './key-derivation'; // Decryption export { decryptAES256GCM, decryptField, decryptResponse, decryptObject, createDecryptionClient, safeDecrypt, } from './decryption';