From a06cb0ed71c2b6458ebacba102fecc1f155e4673 Mon Sep 17 00:00:00 2001 From: shuaiplus <2327005759@qq.com> Date: Sat, 13 Jun 2026 16:21:53 +0800 Subject: [PATCH] fix: serialize Bitwarden CSV login URIs --- webapp/src/lib/export-formats.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/webapp/src/lib/export-formats.ts b/webapp/src/lib/export-formats.ts index b050084..747042a 100644 --- a/webapp/src/lib/export-formats.ts +++ b/webapp/src/lib/export-formats.ts @@ -92,6 +92,10 @@ function buildCsvString(rows: string[][]): string { return `${rows.map((row) => row.map(escapeCsvCell).join(',')).join('\r\n')}\r\n`; } +function buildSingleRowCsvString(values: string[]): string { + return values.map(escapeCsvCell).join(','); +} + function isCipherString(value: string): boolean { return /^\d+\.[A-Za-z0-9+/=]+\|[A-Za-z0-9+/=]+(?:\|[A-Za-z0-9+/=]+)?$/.test(String(value || '').trim()); } @@ -473,10 +477,9 @@ function buildFolderNameById(foldersRaw: unknown): Map { function buildBitwardenCsvLoginUri(login: Record | null): string { const uris = Array.isArray(login?.uris) ? login.uris : []; - return uris + return buildSingleRowCsvString(uris .map((uri) => (isRecord(uri) ? csvText(uri.uri).trim() : '')) - .filter(Boolean) - .join('\n'); + .filter(Boolean)); } export function buildBitwardenCsvString(bitwardenJsonDoc: Record): string {