Raise the declared minimums in pubspec.yaml to what our deps already require: Flutter >=3.35.0 / Dart >=3.9.0 (was 3.19.0 / 3.5.0). alchemist 0.12 needs Flutter 3.32; Dart 3.9 first ships in Flutter 3.35, so 3.35 is the binding floor. Pin the exact build toolchain in .fvmrc (Flutter 3.44.1). Moving to the Dart 3.9 language level switches `dart format` to the new "tall" style and enables two new lints. This commit is the resulting mechanical churn, isolated from any behaviour change: - whole-tree `dart format` reformat (tall style) - `dart fix` for unnecessary_underscores + use_null_aware_elements No runtime behaviour change; `make test` green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
881 B
Dart
25 lines
881 B
Dart
/// Tier-0 in-memory stub for the OS-keychain-backed vault.
|
|
///
|
|
/// Lands on `libsecret` (Linux) and macOS Keychain in a later tier.
|
|
/// The async API already matches the eventual platform-channel shape,
|
|
/// so consumers don't need to change when the real backend arrives.
|
|
class SecretsVault {
|
|
final Map<String, String> _memory = {};
|
|
|
|
Future<void> write({required String extensionId, required String key, required String value}) async {
|
|
_memory['$extensionId/$key'] = value;
|
|
}
|
|
|
|
Future<String?> read({required String extensionId, required String key}) async {
|
|
return _memory['$extensionId/$key'];
|
|
}
|
|
|
|
Future<void> delete({required String extensionId, required String key}) async {
|
|
_memory.remove('$extensionId/$key');
|
|
}
|
|
|
|
Future<void> deleteAll({required String extensionId}) async {
|
|
_memory.removeWhere((k, _) => k.startsWith('$extensionId/'));
|
|
}
|
|
}
|