From 2192d1ec6129ad855cf684282adfebf72ae4f7e8 Mon Sep 17 00:00:00 2001 From: jaasen-livefront Date: Fri, 7 Nov 2025 13:40:12 -0800 Subject: [PATCH] type fixes. better defaults and string handling --- libs/common/src/models/export/card.export.ts | 15 ++++++++------- libs/common/src/models/export/cipher.export.ts | 13 ++++++------- libs/common/src/models/export/login-uri.export.ts | 7 ++++--- libs/common/src/models/export/utils.ts | 2 +- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/libs/common/src/models/export/card.export.ts b/libs/common/src/models/export/card.export.ts index c893a7559e0..011f62a88e4 100644 --- a/libs/common/src/models/export/card.export.ts +++ b/libs/common/src/models/export/card.export.ts @@ -1,4 +1,5 @@ -import { EncString } from "../../key-management/crypto/models/enc-string"; +import { conditionalEncString } from "@bitwarden/common/vault/utils/domain-utils"; + import { Card as CardDomain } from "../../vault/models/domain/card"; import { CardView } from "../../vault/models/view/card.view"; @@ -27,12 +28,12 @@ export class CardExport { } static toDomain(req: CardExport, domain = new CardDomain()) { - domain.cardholderName = req.cardholderName ? new EncString(req.cardholderName) : undefined; - domain.brand = req.brand ? new EncString(req.brand) : undefined; - domain.number = req.number ? new EncString(req.number) : undefined; - domain.expMonth = req.expMonth ? new EncString(req.expMonth) : undefined; - domain.expYear = req.expYear ? new EncString(req.expYear) : undefined; - domain.code = req.code ? new EncString(req.code) : undefined; + domain.cardholderName = conditionalEncString(req.cardholderName); + domain.brand = conditionalEncString(req.brand); + domain.number = conditionalEncString(req.number); + domain.expMonth = conditionalEncString(req.expMonth); + domain.expYear = conditionalEncString(req.expYear); + domain.code = conditionalEncString(req.code); return domain; } diff --git a/libs/common/src/models/export/cipher.export.ts b/libs/common/src/models/export/cipher.export.ts index db20a19126b..be5dd518acd 100644 --- a/libs/common/src/models/export/cipher.export.ts +++ b/libs/common/src/models/export/cipher.export.ts @@ -8,6 +8,7 @@ import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view" import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; import { SshKeyView } from "@bitwarden/common/vault/models/view/ssh-key.view"; +import { conditionalEncString } from "@bitwarden/common/vault/utils/domain-utils"; import { EncString } from "../../key-management/crypto/models/enc-string"; import { CipherRepromptType } from "../../vault/enums/cipher-reprompt-type"; @@ -27,9 +28,7 @@ import { safeGetString } from "./utils"; export class CipherExport { static template(): CipherExport { const req = new CipherExport(); - req.organizationId = ""; req.collectionIds = []; - req.folderId = ""; req.type = CipherType.Login; req.name = "Item name"; req.notes = "Some notes about this item."; @@ -54,7 +53,7 @@ export class CipherExport { view.notes = req.notes; view.favorite = req.favorite; view.reprompt = req.reprompt ?? CipherRepromptType.None; - view.key = new EncString(req.key ?? ""); + view.key = conditionalEncString(req.key); if (req.fields != null) { view.fields = req.fields.map((f) => FieldExport.toView(f)); @@ -86,8 +85,8 @@ export class CipherExport { view.creationDate = req.creationDate ? new Date(req.creationDate) : view.creationDate; view.revisionDate = req.revisionDate ? new Date(req.revisionDate) : view.revisionDate; - view.deletedDate = req.deletedDate ? new Date(req.deletedDate) : undefined; - view.archivedDate = req.archivedDate ? new Date(req.archivedDate) : undefined; + view.deletedDate = req.deletedDate ? new Date(req.deletedDate) : view.deletedDate; + view.archivedDate = req.archivedDate ? new Date(req.archivedDate) : view.archivedDate; return view; } @@ -98,10 +97,10 @@ export class CipherExport { domain.organizationId = req.organizationId; } domain.name = new EncString(req.name ?? ""); - domain.notes = req.notes ? new EncString(req.notes) : undefined; + domain.notes = conditionalEncString(req.notes); domain.favorite = req.favorite; domain.reprompt = req.reprompt ?? CipherRepromptType.None; - domain.key = req.key ? new EncString(req.key) : undefined; + domain.key = conditionalEncString(req.key); if (req.fields != null) { domain.fields = req.fields.map((f) => FieldExport.toDomain(f)); diff --git a/libs/common/src/models/export/login-uri.export.ts b/libs/common/src/models/export/login-uri.export.ts index 4aa69461f43..4e948208e32 100644 --- a/libs/common/src/models/export/login-uri.export.ts +++ b/libs/common/src/models/export/login-uri.export.ts @@ -1,4 +1,5 @@ -import { EncString } from "../../key-management/crypto/models/enc-string"; +import { conditionalEncString } from "@bitwarden/common/vault/utils/domain-utils"; + import { UriMatchStrategySetting } from "../../models/domain/domain-service"; import { LoginUri as LoginUriDomain } from "../../vault/models/domain/login-uri"; import { LoginUriView } from "../../vault/models/view/login-uri.view"; @@ -19,8 +20,8 @@ export class LoginUriExport { } static toDomain(req: LoginUriExport, domain = new LoginUriDomain()) { - domain.uri = new EncString(req.uri ?? ""); - domain.uriChecksum = new EncString(req.uriChecksum ?? ""); + domain.uri = conditionalEncString(req.uri); + domain.uriChecksum = conditionalEncString(req.uriChecksum); domain.match = req.match; return domain; } diff --git a/libs/common/src/models/export/utils.ts b/libs/common/src/models/export/utils.ts index 219eec2e475..229575e458f 100644 --- a/libs/common/src/models/export/utils.ts +++ b/libs/common/src/models/export/utils.ts @@ -1,7 +1,7 @@ import { EncString } from "../../key-management/crypto/models/enc-string"; export function safeGetString(value?: string | EncString) { - if (!value) { + if (value == null) { return undefined; }