From e23af8b65e4792167a01eeea1b60dda08998c649 Mon Sep 17 00:00:00 2001 From: Nik Gilmore Date: Wed, 28 Jan 2026 14:11:23 -0800 Subject: [PATCH] Simplifications from PR feedback --- .../src/vault/models/view/cipher.view.ts | 22 +++++++------------ .../src/vault/services/cipher-sdk.service.ts | 17 +++----------- .../src/vault/services/cipher.service.ts | 8 ++----- 3 files changed, 13 insertions(+), 34 deletions(-) diff --git a/libs/common/src/vault/models/view/cipher.view.ts b/libs/common/src/vault/models/view/cipher.view.ts index c25a81defbf..1c3a1da2f70 100644 --- a/libs/common/src/vault/models/view/cipher.view.ts +++ b/libs/common/src/vault/models/view/cipher.view.ts @@ -316,20 +316,14 @@ export class CipherView implements View, InitializerMetadata { cipherView.viewPassword = obj.viewPassword; cipherView.localData = fromSdkLocalData(obj.localData); // Convert iterables to arrays to ensure .map() works - cipherView.attachments = - obj.attachments != null - ? Array.from(obj.attachments).map((a) => AttachmentView.fromSdkAttachmentView(a)!) - : []; - cipherView.fields = - obj.fields != null ? Array.from(obj.fields).map((f) => FieldView.fromSdkFieldView(f)!) : []; - cipherView.passwordHistory = - obj.passwordHistory != null - ? Array.from(obj.passwordHistory).map( - (ph) => PasswordHistoryView.fromSdkPasswordHistoryView(ph)!, - ) - : []; - cipherView.collectionIds = - obj.collectionIds != null ? Array.from(obj.collectionIds).map((i) => uuidAsString(i)) : []; + cipherView.attachments = (obj.attachments ?? []).map( + (a) => AttachmentView.fromSdkAttachmentView(a)!, + ); + cipherView.fields = (obj.fields ?? []).map((f) => FieldView.fromSdkFieldView(f)!); + cipherView.passwordHistory = (obj.passwordHistory ?? []).map( + (ph) => PasswordHistoryView.fromSdkPasswordHistoryView(ph)!, + ); + cipherView.collectionIds = (obj.collectionIds ?? []).map((i) => uuidAsString(i)); cipherView.revisionDate = new Date(obj.revisionDate); cipherView.creationDate = new Date(obj.creationDate); cipherView.deletedDate = obj.deletedDate == null ? undefined : new Date(obj.deletedDate); diff --git a/libs/common/src/vault/services/cipher-sdk.service.ts b/libs/common/src/vault/services/cipher-sdk.service.ts index 8e60fb6e2c7..4e7c877f8c9 100644 --- a/libs/common/src/vault/services/cipher-sdk.service.ts +++ b/libs/common/src/vault/services/cipher-sdk.service.ts @@ -274,23 +274,12 @@ export class DefaultCipherSdkService implements CipherSdkService { const decryptResult = await ref.value.vault().ciphers().list(); - // Convert successes - SDK returns array of SdkCipherView - const successArray = Array.isArray(decryptResult.successes) - ? decryptResult.successes - : Array.from(decryptResult.successes ?? []); - - const successes = successArray + const successes = [...(decryptResult.successes ?? [])] .map((sdkCipherView: any) => CipherView.fromSdkCipherView(sdkCipherView)) .filter((v): v is CipherView => v !== undefined); - // Convert failures to CipherView with error markers - const failureArray = Array.isArray(decryptResult.failures) - ? decryptResult.failures - : Array.from(decryptResult.failures ?? []); - - const failures: CipherView[] = failureArray.map((failure: any) => { - const cipher = Cipher.fromSdkCipher(failure); - const cipherView = new CipherView(cipher); + const failures: CipherView[] = [...(decryptResult.failures ?? [])].map((failure: any) => { + const cipherView = new CipherView(Cipher.fromSdkCipher(failure)); cipherView.name = DECRYPT_ERROR; cipherView.decryptionFailure = true; return cipherView; diff --git a/libs/common/src/vault/services/cipher.service.ts b/libs/common/src/vault/services/cipher.service.ts index b27be4326a0..3a96b2eb742 100644 --- a/libs/common/src/vault/services/cipher.service.ts +++ b/libs/common/src/vault/services/cipher.service.ts @@ -492,9 +492,7 @@ export class CipherService implements CipherServiceAbstraction { * @deprecated Use `cipherViews$` observable instead */ async getAllDecrypted(userId: UserId): Promise { - const useSdk = await this.configService.getFeatureFlag( - FeatureFlag.PM27632_SdkCipherCrudOperations, - ); + const useSdk = await firstValueFrom(this.sdkCipherCrudEnabled$); if (useSdk) { return this.getAllDecryptedUsingSdk(userId); } @@ -768,9 +766,7 @@ export class CipherService implements CipherServiceAbstraction { organizationId: string, includeMemberItems?: boolean, ): Promise { - const useSdk = await this.configService.getFeatureFlag( - FeatureFlag.PM27632_SdkCipherCrudOperations, - ); + const useSdk = await firstValueFrom(this.sdkCipherCrudEnabled$); if (useSdk) { return this.getAllFromApiForOrganizationUsingSdk(organizationId, includeMemberItems ?? false); }