diff --git a/packages/encryption/src/Domain/Service/Encryption/EncryptionService.ts b/packages/encryption/src/Domain/Service/Encryption/EncryptionService.ts index 335c22e11..cdc9b443c 100644 --- a/packages/encryption/src/Domain/Service/Encryption/EncryptionService.ts +++ b/packages/encryption/src/Domain/Service/Encryption/EncryptionService.ts @@ -40,7 +40,7 @@ import { isEncryptedPayload, RootKeyInterface, } from '@standardnotes/models' -import { SplitPayloadsByEncryptionType } from '../../Split/EncryptionTypeSplit' +import { SplitPayloadsByEncryptionType } from '../../Split/Functions' import { ClientDisplayableError } from '@standardnotes/responses' import { isNotUndefined } from '@standardnotes/utils' import { DiagnosticInfo } from '@standardnotes/services' diff --git a/packages/encryption/src/Domain/Split/EncryptionTypeSplit.ts b/packages/encryption/src/Domain/Split/EncryptionTypeSplit.ts index c604c4410..34f5def1f 100644 --- a/packages/encryption/src/Domain/Split/EncryptionTypeSplit.ts +++ b/packages/encryption/src/Domain/Split/EncryptionTypeSplit.ts @@ -1,27 +1,6 @@ import { DecryptedPayloadInterface, EncryptedPayloadInterface } from '@standardnotes/models' -import { ItemContentTypeUsesRootKeyEncryption } from '../Keys/RootKey/Functions' export interface EncryptionTypeSplit { rootKeyEncryption?: T[] itemsKeyEncryption?: T[] } - -export function SplitPayloadsByEncryptionType( - payloads: T[], -): EncryptionTypeSplit { - const usesRootKey: T[] = [] - const usesItemsKey: T[] = [] - - for (const item of payloads) { - if (ItemContentTypeUsesRootKeyEncryption(item.content_type)) { - usesRootKey.push(item) - } else { - usesItemsKey.push(item) - } - } - - return { - rootKeyEncryption: usesRootKey.length > 0 ? usesRootKey : undefined, - itemsKeyEncryption: usesItemsKey.length > 0 ? usesItemsKey : undefined, - } -} diff --git a/packages/encryption/src/Domain/Split/Functions.ts b/packages/encryption/src/Domain/Split/Functions.ts new file mode 100644 index 000000000..ea39bcebf --- /dev/null +++ b/packages/encryption/src/Domain/Split/Functions.ts @@ -0,0 +1,23 @@ +import { DecryptedPayloadInterface, EncryptedPayloadInterface } from '@standardnotes/models' +import { ItemContentTypeUsesRootKeyEncryption } from '../Keys/RootKey/Functions' +import { EncryptionTypeSplit } from './EncryptionTypeSplit' + +export function SplitPayloadsByEncryptionType( + payloads: T[], +): EncryptionTypeSplit { + const usesRootKey: T[] = [] + const usesItemsKey: T[] = [] + + for (const item of payloads) { + if (ItemContentTypeUsesRootKeyEncryption(item.content_type)) { + usesRootKey.push(item) + } else { + usesItemsKey.push(item) + } + } + + return { + rootKeyEncryption: usesRootKey.length > 0 ? usesRootKey : undefined, + itemsKeyEncryption: usesItemsKey.length > 0 ? usesItemsKey : undefined, + } +} diff --git a/packages/encryption/src/Domain/index.ts b/packages/encryption/src/Domain/index.ts index 260a1a00f..fe100a4a5 100644 --- a/packages/encryption/src/Domain/index.ts +++ b/packages/encryption/src/Domain/index.ts @@ -28,6 +28,7 @@ export * from './Service/RootKey/KeyMode' export * from './Service/RootKey/RootKeyEncryption' export * from './Split/EncryptionSplit' export * from './Split/EncryptionTypeSplit' +export * from './Split/Functions' export * from './Types/EncryptedParameters' export * from './Types/ItemAuthenticatedData' export * from './Types/LegacyAttachedData'