Merge branch 'release/1.1.2-1'

This commit is contained in:
Book Pauk
2023-01-25 17:06:35 +07:00
3 changed files with 15 additions and 9 deletions

14
package-lock.json generated
View File

@@ -22,7 +22,7 @@
"fs-extra": "^10.1.0",
"he": "^1.2.0",
"iconv-lite": "^0.6.3",
"jembadb": "^5.1.5",
"jembadb": "^5.1.7",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"minimist": "^1.2.7",
@@ -5989,9 +5989,9 @@
}
},
"node_modules/jembadb": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz",
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw==",
"version": "5.1.7",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
"integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw==",
"engines": {
"node": ">=16.16.0"
}
@@ -15154,9 +15154,9 @@
}
},
"jembadb": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.5.tgz",
"integrity": "sha512-Vb+TkTg3JVXLPTG5BiqboZjJ2wvZRONnLd2+qU4gTuaqt2JSniigbniKSl3kACAEFfuRXEjfs9dLlKWjBX2Aiw=="
"version": "5.1.7",
"resolved": "https://registry.npmjs.org/jembadb/-/jembadb-5.1.7.tgz",
"integrity": "sha512-TNZjiKQ7Zfh89Q1x25PKKtsbkxiC5uOnx953dxJEP6RqfcdR6uVpr4cf+kmyq6IQ1GhwhXTELnoTIdvLWrpEvw=="
},
"jest-util": {
"version": "29.3.1",

View File

@@ -65,7 +65,7 @@
"fs-extra": "^10.1.0",
"he": "^1.2.0",
"iconv-lite": "^0.6.3",
"jembadb": "^5.1.5",
"jembadb": "^5.1.7",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
"minimist": "^1.2.7",

View File

@@ -24,6 +24,7 @@ class JembaReaderStorage {
getCache(id) {
const obj = this.cacheMap.get(id);
//обновляем время доступа и при чтении тоже
if (obj)
obj.time = Date.now();
return obj;
@@ -118,6 +119,7 @@ class JembaReaderStorage {
//identity необходимо для работы при нестабильной связи,
//одному и тому же клиенту разрешается перезаписывать данные при расхождении на 0 или 1 ревизию
const obj = this.getCache(id) || {};
const oldIdentity = obj.identity;
const sameClient = (identity && obj.identity === identity);
if (identity && obj.identity !== identity) {
obj.identity = identity;
@@ -126,8 +128,12 @@ class JembaReaderStorage {
const revDiff = items[id].rev - check.items[id].rev;
const allowUpdate = force || revDiff === 1 || (sameClient && (revDiff === 0 || revDiff === 1));
if (!allowUpdate)
if (!allowUpdate) {
log(LM_ERR, `JembaReaderStorage-Reject: revDiff: ${revDiff}, sameClient: ${sameClient}, oldIdentity: ${oldIdentity}, identity: ${identity}`);
return {state: 'reject', items: check.items};
}
}
const db = this.db;