UNPKG

bigblocks

Version:

Complete Bitcoin UI component library - authentication, social, wallet, market, inscriptions, and blockchain interactions for React

67 lines (66 loc) 2.07 kB
export class StorageKeys { namespace; constructor(config = {}) { this.namespace = config.namespace || ""; } key(name) { return this.namespace ? `${this.namespace}:${name}` : name; } // Session storage keys (no namespace prefix for session storage) get sessionDecryptedBackup() { return "decryptedBackup"; } get sessionPaymentKey() { return "paymentKey"; } get sessionOrdinalKey() { return "ordinalKey"; } get sessionOAuthState() { return "oauthState"; } get sessionBackupSource() { return "backupSource"; // "imported" or "generated" } // Local storage keys (ONLY encrypted data allowed) get encryptedBackup() { return this.key("encryptedBackup"); } // BAP rotation storage key (used in useBapKeyRotation) getBapRotationKey(idKey) { return this.key(`bap-rotation-${idKey}`); } } // Default configurations for different environments export const DEFAULT_STORAGE_KEYS = new StorageKeys(); export const STORYBOOK_STORAGE_KEYS = new StorageKeys({ namespace: "storybook", }); // Helper to create storage keys with custom namespace export function createStorageKeys(namespace) { return new StorageKeys({ namespace }); } /** * Usage Examples: * * // Default namespace (no prefix) * const keys = createStorageKeys(); * keys.encryptedBackup // -> 'encryptedBackup' * keys.sessionDecryptedBackup // -> 'decryptedBackup' * * // Storybook namespace * const storybookKeys = createStorageKeys('storybook'); * storybookKeys.encryptedBackup // -> 'storybook:encryptedBackup' * storybookKeys.sessionDecryptedBackup // -> 'storybook:decryptedBackup' * * // Development namespace * const devKeys = createStorageKeys('dev'); * devKeys.sessionPaymentKey // -> 'dev:paymentKey' * * // Configuration in BitcoinAuthConfig: * const config = { * storageNamespace: 'myapp-prod', * storage: myPersistentStorage, // For encrypted backups * sessionStorage: mySessionStorage, // For temporary data * }; */