openpencil/src/app/settings/credentials/services.ts
Danila Poyarkov 95a920197e feat(app): add cross-platform credential storage
- 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
2026-07-26 14:07:26 +03:00

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)
}
}
}