- Store desktop secrets in native OS credential services through a narrow Tauri bridge - Provide session-only and encrypted remembered browser stores with explicit switching - Migrate legacy plaintext keys only after verified writes and cover failure recovery
28 lines
694 B
TypeScript
28 lines
694 B
TypeScript
import type {
|
|
CredentialManager,
|
|
CredentialResolver,
|
|
CredentialStore
|
|
} from '@/app/settings/credentials/types'
|
|
|
|
export type CredentialServices = {
|
|
manager: CredentialManager
|
|
resolver: CredentialResolver
|
|
}
|
|
|
|
export function createCredentialServices(store: CredentialStore): CredentialServices {
|
|
return {
|
|
manager: {
|
|
get backend() {
|
|
return store.backend
|
|
},
|
|
availability: () => store.availability(),
|
|
status: (reference) => store.status(reference),
|
|
set: (reference, value) => store.write(reference, value),
|
|
clear: (reference) => store.remove(reference)
|
|
},
|
|
resolver: {
|
|
resolve: (reference) => store.read(reference)
|
|
}
|
|
}
|
|
}
|