From f7aedf9fce7859b457cd5c02f4bcc486d9cb6fbe Mon Sep 17 00:00:00 2001 From: Hoseong Lee Date: Thu, 30 Apr 2026 13:56:38 -0500 Subject: [PATCH] Handle removing the kd record links --- keeperapi/src/vault.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/keeperapi/src/vault.ts b/keeperapi/src/vault.ts index 849da3aa..704108c2 100644 --- a/keeperapi/src/vault.ts +++ b/keeperapi/src/vault.ts @@ -1048,6 +1048,19 @@ const processSecurityScoreData = async (securityScoreDataList: Vault.ISecuritySc // Keeper Drive Processors Start +const processKdRemovedRecordLinks = async ( + removedDependencies: RemovedDependencies, + keeperDriveRemovedRecordLinks?: Vault.IRecordLink[] | null +) => { + if (!keeperDriveRemovedRecordLinks) return + for (const link of keeperDriveRemovedRecordLinks) { + if (!link.childRecordUid || !link.parentRecordUid) continue + const childRecordUid = webSafe64FromBytes(link.childRecordUid) + const parentRecordUid = webSafe64FromBytes(link.parentRecordUid) + addRemovedDependencies(removedDependencies, parentRecordUid, childRecordUid) + } +} + const processKdRecordLinks = async (storage: VaultStorage, keeperDriveRecordLinks?: Vault.IRecordLink[] | null) => { if (!keeperDriveRecordLinks) return for (const link of keeperDriveRecordLinks) { @@ -1666,14 +1679,16 @@ export const syncDown = async (options: SyncDownOptions): Promise => await storage.delete('user', user) } - await processKdRevokedFolderAccesses(storage, keeperDriveData.revokedFolderAccesses) - await processKdRemovedFolders(storage, keeperDriveData.removedFolders) + await processKdRevokedFolderAccesses(storage, keeperDriveData.revokedFolderAccesses) + processKdRemovedFolderRecords(removedDependencies, keeperDriveData.removedFolderRecords) await processKdRevokedRecordAccesses(storage, keeperDriveData.revokedRecordAccesses) + await processKdRemovedRecordLinks(removedDependencies, keeperDriveData.removedRecordLinks) + await storage.removeDependencies(removedDependencies) continuationToken = resp.continuationToken || undefined