diff --git a/lib/encryption.js b/lib/encryption.js index 94be0a0..53042ce 100644 --- a/lib/encryption.js +++ b/lib/encryption.js @@ -33,7 +33,7 @@ function decrypt(rec, peer, config) { const msgDecrypted = FeedV1.fromPlaintextBuffer(plaintextBuf, msgEncrypted) return { - id: rec.id, + hash: rec.hash, msg: msgDecrypted, received: rec.received, misc: { @@ -47,7 +47,7 @@ function decrypt(rec, peer, config) { function reEncrypt(rec) { return { - id: rec.id, + hash: rec.hash, msg: { ...rec.msg, content: rec.misc.originalContent }, received: rec.received, ...(rec.misc.size diff --git a/lib/plugin.js b/lib/plugin.js index ecc8ead..0f02b6d 100644 --- a/lib/plugin.js +++ b/lib/plugin.js @@ -13,7 +13,7 @@ const { decrypt } = require('./encryption') /** * @typedef {Object} RecDeleted - * @property {never} id + * @property {never} hash * @property {never} msg * @property {never} received * @property {Object} misc @@ -24,7 +24,7 @@ const { decrypt } = require('./encryption') /** * @typedef {Object} RecPresent - * @property {string} id + * @property {string} hash * @property {Msg} msg * @property {number} received * @property {Object} misc @@ -51,8 +51,7 @@ exports.init = function initDB(peer, config) { const msgsPerFeed = { _mapAll: new Map(), // who => Set _byHash: new Map(), // msgId => Msg // TODO: optimize space usage of this?? - update(msg, msgId) { - const msgHash = FeedV1.getMsgHash(msgId ?? msg) + update(msg, msgHash) { const feedId = FeedV1.getFeedId(msg) const setAll = this._mapAll.get(feedId) ?? new Set() setAll.add(msgHash) @@ -137,13 +136,12 @@ exports.init = function initDB(peer, config) { ) }) - function logAppend(id, msg, cb) { + function logAppend(hash, msg, cb) { const rec = { - id, + hash, msg, received: Date.now(), } - if (isOOO) rec.ooo = isOOO log.append(rec, (err, newOffset) => { if (err) return cb(new Error('logAppend failed', { cause: err })) const offset = newOffset // latestOffset @@ -188,10 +186,10 @@ exports.init = function initDB(peer, config) { function validationCB(err) { // prettier-ignore if (err) return cb(new Error('add() failed validation for feed format v1', {cause: err})) - const msgId = FeedV1.getMsgId(msg) - msgsPerFeed.update(msg, msgId) + const msgHash = FeedV1.getMsgHash(msg) + msgsPerFeed.update(msg, msgHash) - logAppend(msgId, msg, logAppendCB) + logAppend(msgHash, msg, logAppendCB) } function logAppendCB(err, rec) { @@ -257,11 +255,11 @@ exports.init = function initDB(peer, config) { } catch (err) { return cb(new Error('create() failed', { cause: err })) } - const msgId = FeedV1.getMsgId(msg) - msgsPerFeed.update(msg, msgId) + const msgHash = FeedV1.getMsgHash(msg) + msgsPerFeed.update(msg, msgHash) // Encode the native message and append it to the log: - logAppend(msgId, msg, (err, rec) => { + logAppend(msgHash, msg, (err, rec) => { // prettier-ignore if (err) return cb(new Error('create() failed to append the log', { cause: err })) onRecordAdded.set(rec) @@ -298,8 +296,8 @@ exports.init = function initDB(peer, config) { for (let i = 0; i < recs.length; i++) { const rec = recs[i] if (!rec) continue - if (isUri && rec.id === msgId) return rec - else if (!isUri && rec.id.endsWith(msgId)) return rec + if (isUri && msgId.endsWith(rec.hash)) return rec + else if (!isUri && rec.hash.endsWith(msgId)) return rec } return null } diff --git a/test/create.test.js b/test/create.test.js index 44f5883..82a863f 100644 --- a/test/create.test.js +++ b/test/create.test.js @@ -75,7 +75,7 @@ test('create() encrypted with box', async (t) => { t.equal(typeof recEncrypted.msg.content, 'string') t.true(recEncrypted.msg.content.endsWith('.box'), '.box') - const msgDecrypted = peer.db.get(recEncrypted.id) + const msgDecrypted = peer.db.get(recEncrypted.hash) t.equals(msgDecrypted.content.text, 'I am chewing food') }) diff --git a/test/del.test.js b/test/del.test.js index 606605c..2364e20 100644 --- a/test/del.test.js +++ b/test/del.test.js @@ -20,13 +20,13 @@ test('del', async (t) => { await peer.db.loaded() - const msgIDs = [] + const msgHashes = [] for (let i = 0; i < 5; i++) { const rec = await p(peer.db.create)({ type: 'post', content: { text: 'm' + i }, }) - msgIDs.push(rec.id) + msgHashes.push(rec.hash) } const before = [] @@ -36,7 +36,7 @@ test('del', async (t) => { t.deepEqual(before, ['m0', 'm1', 'm2', 'm3', 'm4'], 'msgs before the delete') - await p(peer.db.del)(msgIDs[2]) + await p(peer.db.del)(msgHashes[2]) const after = [] for (const msg of peer.db.msgs()) { diff --git a/test/re-open.test.js b/test/re-open.test.js index 0295852..b6b2698 100644 --- a/test/re-open.test.js +++ b/test/re-open.test.js @@ -20,17 +20,17 @@ test('create some msgs, close, re-open', async (t) => { await peer.db.loaded() t.pass('opened db') - const msgIDs = [] + const msgHashes = [] for (let i = 0; i < 6; i++) { const rec = await p(peer.db.create)({ type: 'post', content: { text: 'hello ' + i }, }) - msgIDs.push(rec.id) + msgHashes.push(rec.hash) } t.pass('created some msgs') - await p(peer.db.del)(msgIDs[2]) + await p(peer.db.del)(msgHashes[2]) t.pass('deleted the 3rd msg') await p(peer.close)(true)