Files
aliasvault/apps/mobile-app/specs/NativeVaultManager.ts
2025-06-25 16:50:26 +02:00

43 lines
1.6 KiB
TypeScript

import { TurboModuleRegistry } from 'react-native';
import type { TurboModule } from 'react-native';
// eslint-disable-next-line @typescript-eslint/naming-convention
export interface Spec extends TurboModule {
// Basic credential operations
clearVault(): Promise<void>;
// Vault state management
isVaultUnlocked(): Promise<boolean>;
getVaultMetadata(): Promise<string>;
unlockVault(): Promise<boolean>;
// Database operations
storeDatabase(base64EncryptedDb: string): Promise<void>;
storeMetadata(metadata: string): Promise<void>;
setAuthMethods(authMethods: string[]): Promise<void>;
storeEncryptionKey(base64EncryptionKey: string): Promise<void>;
storeEncryptionKeyDerivationParams(keyDerivationParams: string): Promise<void>;
getEncryptionKeyDerivationParams(): Promise<string | null>;
hasEncryptedDatabase(): Promise<boolean>;
getEncryptedDatabase(): Promise<string | null>;
getCurrentVaultRevisionNumber(): Promise<number>;
setCurrentVaultRevisionNumber(revisionNumber: number): Promise<void>;
// SQL operations
executeQuery(query: string, params: (string | number | null)[]): Promise<string[]>;
executeUpdate(query: string, params:(string | number | null)[]): Promise<number>;
executeRaw(query: string): Promise<void>;
beginTransaction(): Promise<void>;
commitTransaction(): Promise<void>;
rollbackTransaction(): Promise<void>;
// Auto-lock settings
setAutoLockTimeout(timeout: number): Promise<void>;
getAutoLockTimeout(): Promise<number>;
getAuthMethods(): Promise<string[]>;
openAutofillSettingsPage(): Promise<void>;
}
export default TurboModuleRegistry.getEnforcing<Spec>('NativeVaultManager');