From ebe06bd4e000bc5e73288317be7b448171725b79 Mon Sep 17 00:00:00 2001 From: thecodrr Date: Mon, 28 Mar 2022 10:45:41 +0500 Subject: [PATCH] fix: encrypt items before sync --- packages/core/api/sync/collector.js | 25 ++++++++++++++++++------ packages/core/api/sync/index.js | 4 ++-- packages/core/api/sync/realtimeMerger.js | 5 +++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/core/api/sync/collector.js b/packages/core/api/sync/collector.js index 995a1fb98..91fa2b896 100644 --- a/packages/core/api/sync/collector.js +++ b/packages/core/api/sync/collector.js @@ -61,15 +61,28 @@ class Collector { }, []); } - _map(item) { + // _map(item) { + // return { + // id: item.id, + // v: CURRENT_DATABASE_VERSION, + // iv: item.iv, + // cipher: item.cipher, + // length: item.length, + // alg: item.alg, + // dateModified: item.dateModified, + // }; + // } + + async _map(item) { + // in case of resolved content + delete item.resolved; + // turn the migrated flag off so we don't keep syncing this item repeated + delete item.migrated; + return { id: item.id, v: CURRENT_DATABASE_VERSION, - iv: item.iv, - cipher: item.cipher, - length: item.length, - alg: item.alg, - dateModified: item.dateModified, + ...(await this._serialize(item)), }; } diff --git a/packages/core/api/sync/index.js b/packages/core/api/sync/index.js index da57fb4c1..1de5f4128 100644 --- a/packages/core/api/sync/index.js +++ b/packages/core/api/sync/index.js @@ -48,7 +48,7 @@ const ITEM_TYPE_MAP = { attachments: "attachment", content: "content", notes: "note", - notebooks: "notebooks", + notebooks: "notebook", settings: "settings", }; @@ -177,7 +177,7 @@ export default class Sync { if (!item) { continue; } - + console.log(item, type, array); if (await this.sendItemToServer(type, item, lastSynced)) { await this._queue.dequeue(id); sendSyncProgressEvent("upload", total, i + 1); diff --git a/packages/core/api/sync/realtimeMerger.js b/packages/core/api/sync/realtimeMerger.js index dbb6646b2..189c3903d 100644 --- a/packages/core/api/sync/realtimeMerger.js +++ b/packages/core/api/sync/realtimeMerger.js @@ -59,6 +59,11 @@ class RealtimeMerger { attachment: { set: async (item) => { const remoteAttachment = await this._deserialize(item); + if (remoteAttachment.deleted) { + await this._db.attachments.merge(remoteAttachment); + return; + } + const localAttachment = this._db.attachments.attachment( remoteAttachment.metadata.hash );