feat: add models package
This commit is contained in:
31
packages/models/src/Domain/Local/RootKey/KeychainTypes.ts
Normal file
31
packages/models/src/Domain/Local/RootKey/KeychainTypes.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { ApplicationIdentifier, ProtocolVersion } from '@standardnotes/common'
|
||||
import { RootKeyContentSpecialized } from './RootKeyContent'
|
||||
|
||||
export type RawKeychainValue = Record<ApplicationIdentifier, NamespacedRootKeyInKeychain>
|
||||
|
||||
export interface NamespacedRootKeyInKeychain {
|
||||
version: ProtocolVersion
|
||||
masterKey: string
|
||||
dataAuthenticationKey?: string
|
||||
}
|
||||
|
||||
export type RootKeyContentInStorage = RootKeyContentSpecialized
|
||||
|
||||
export interface LegacyRawKeychainValue {
|
||||
mk: string
|
||||
ak: string
|
||||
version: ProtocolVersion
|
||||
}
|
||||
|
||||
export type LegacyMobileKeychainStructure = {
|
||||
offline?: {
|
||||
timing?: unknown
|
||||
pw?: string
|
||||
}
|
||||
encryptedAccountKeys?: unknown
|
||||
mk: string
|
||||
pw: string
|
||||
ak: string
|
||||
version?: string
|
||||
jwt?: string
|
||||
}
|
||||
12
packages/models/src/Domain/Local/RootKey/RootKeyContent.ts
Normal file
12
packages/models/src/Domain/Local/RootKey/RootKeyContent.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { ItemContent } from '../../Abstract/Content/ItemContent'
|
||||
import { ProtocolVersion, AnyKeyParamsContent } from '@standardnotes/common'
|
||||
|
||||
export interface RootKeyContentSpecialized {
|
||||
version: ProtocolVersion
|
||||
masterKey: string
|
||||
serverPassword?: string
|
||||
dataAuthenticationKey?: string
|
||||
keyParams: AnyKeyParamsContent
|
||||
}
|
||||
|
||||
export type RootKeyContent = RootKeyContentSpecialized & ItemContent
|
||||
17
packages/models/src/Domain/Local/RootKey/RootKeyInterface.ts
Normal file
17
packages/models/src/Domain/Local/RootKey/RootKeyInterface.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { ProtocolVersion } from '@standardnotes/common'
|
||||
import { DecryptedItemInterface } from '../../Abstract/Item/Interfaces/DecryptedItem'
|
||||
import { RootKeyParamsInterface } from '../KeyParams/RootKeyParamsInterface'
|
||||
import { NamespacedRootKeyInKeychain, RootKeyContentInStorage } from './KeychainTypes'
|
||||
import { RootKeyContent } from './RootKeyContent'
|
||||
|
||||
export interface RootKeyInterface extends DecryptedItemInterface<RootKeyContent> {
|
||||
readonly keyParams: RootKeyParamsInterface
|
||||
get keyVersion(): ProtocolVersion
|
||||
get itemsKey(): string
|
||||
get masterKey(): string
|
||||
get serverPassword(): string | undefined
|
||||
get dataAuthenticationKey(): string | undefined
|
||||
compare(otherKey: RootKeyInterface): boolean
|
||||
persistableValueWhenWrapping(): RootKeyContentInStorage
|
||||
getKeychainValue(): NamespacedRootKeyInKeychain
|
||||
}
|
||||
Reference in New Issue
Block a user