clearEncryptedEntries function

Future<void> clearEncryptedEntries(
  1. PVCache cache
)

Clears all encrypted entries from cache.

This iterates through all entries and removes those with _encrypted flag. Useful for recovery when key is lost.

Implementation

Future<void> clearEncryptedEntries(PVCache cache) async {
  // Get all keys
  final allKeys = await cache.iterKeys();

  // Check each entry for encryption flag
  for (final key in allKeys) {
    // Read metadata directly from storage to check encryption flag
    final bridge = PVBridge();
    final db = await bridge.getDatabaseForType(
      cache.metadataStorageType,
      heavy: cache.heavy,
      env: cache.env,
    );
    final storeName = cache.metadataNameFunction!(cache.env);
    final store = bridge.getStore(storeName, cache.metadataStorageType);
    final metadata = await store.record(key).get(db);

    if (metadata?['_encrypted'] == true) {
      await cache.delete(key);
    }
  }
}