// // DefaultsKeys.swift // passKit // // Created by Mingshen Sun on 21/1/2017. // Copyright © 2017 Bob Sun. All rights reserved. // import Foundation import SwiftyUserDefaults // Workaround for Xcode 13: https://github.com/sunshinejr/SwiftyUserDefaults/issues/285 public extension DefaultsSerializable where Self: Codable { typealias Bridge = DefaultsCodableBridge typealias ArrayBridge = DefaultsCodableBridge<[Self]> } public extension DefaultsSerializable where Self: RawRepresentable { typealias Bridge = DefaultsRawRepresentableBridge typealias ArrayBridge = DefaultsRawRepresentableArrayBridge<[Self]> } public var Defaults = DefaultsAdapter(defaults: UserDefaults(suiteName: Globals.groupIdentifier)!, keyStore: DefaultsKeys()) public enum KeySource: String, DefaultsSerializable { case url, armor, file, itunes } public enum GitAuthenticationMethod: String, DefaultsSerializable { case password, key } extension SearchBarScope: DefaultsSerializable {} extension PasswordGenerator: DefaultsSerializable {} public extension DefaultsKeys { var pgpKeySource: DefaultsKey { DefaultsKey("pgpKeySource") } var pgpPublicKeyURL: DefaultsKey { DefaultsKey("pgpPublicKeyURL") } var pgpPrivateKeyURL: DefaultsKey { DefaultsKey("pgpPrivateKeyURL") } var isYubiKeyEnabled: DefaultsKey { DefaultsKey("isYubiKeyEnabled", defaultValue: false) } // Keep them for legacy reasons. var pgpPublicKeyArmor: DefaultsKey { DefaultsKey("pgpPublicKeyArmor") } var pgpPrivateKeyArmor: DefaultsKey { DefaultsKey("pgpPrivateKeyArmor") } var gitSSHPrivateKeyArmor: DefaultsKey { DefaultsKey("gitSSHPrivateKeyArmor") } var passcodeKey: DefaultsKey { DefaultsKey("passcodeKey") } var gitURL: DefaultsKey { DefaultsKey("gitURL", defaultValue: URL(string: "https://")!) } var gitAuthenticationMethod: DefaultsKey { DefaultsKey("gitAuthenticationMethod", defaultValue: GitAuthenticationMethod.password) } var gitUsername: DefaultsKey { DefaultsKey("gitUsername", defaultValue: "git") } var gitBranchName: DefaultsKey { DefaultsKey("gitBranchName", defaultValue: "master") } var gitSSHPrivateKeyURL: DefaultsKey { DefaultsKey("gitSSHPrivateKeyURL") } var gitSSHKeySource: DefaultsKey { DefaultsKey("gitSSHKeySource") } var gitSignatureName: DefaultsKey { DefaultsKey("gitSignatureName") } var gitSignatureEmail: DefaultsKey { DefaultsKey("gitSignatureEmail") } var lastSyncedTime: DefaultsKey { DefaultsKey("lastSyncedTime") } var isHideUnknownOn: DefaultsKey { DefaultsKey("isHideUnknownOn", defaultValue: false) } var isHideOTPOn: DefaultsKey { DefaultsKey("isHideOTPOn", defaultValue: false) } var isRememberPGPPassphraseOn: DefaultsKey { DefaultsKey("isRememberPGPPassphraseOn", defaultValue: false) } var isRememberGitCredentialPassphraseOn: DefaultsKey { DefaultsKey("isRememberGitCredentialPassphraseOn", defaultValue: false) } var isEnableGPGIDOn: DefaultsKey { DefaultsKey("isEnableGPGIDOn", defaultValue: false) } var isShowFolderOn: DefaultsKey { DefaultsKey("isShowFolderOn", defaultValue: true) } var isHidePasswordImagesOn: DefaultsKey { DefaultsKey("isHidePasswordImagesOn", defaultValue: false) } var searchDefault: DefaultsKey { DefaultsKey("searchDefault", defaultValue: .all) } var passwordGenerator: DefaultsKey { DefaultsKey("passwordGenerator", defaultValue: PasswordGenerator()) } var encryptInArmored: DefaultsKey { DefaultsKey("encryptInArmored", defaultValue: false) } var autoCopyOTP: DefaultsKey { DefaultsKey("autoCopyOTP", defaultValue: false) } }