diff --git a/.babelrc b/.babelrc index 91f7095f..1bf46c7c 100644 --- a/.babelrc +++ b/.babelrc @@ -7,6 +7,8 @@ }], "@babel/plugin-proposal-optional-catch-binding", "@babel/plugin-proposal-optional-chaining", + "@babel/plugin-proposal-nullish-coalescing-operator", + "@babel/plugin-proposal-logical-assignment-operators", "@babel/plugin-external-helpers" ] } diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 8e346b7f..c35846f2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -24,7 +24,7 @@ A clear and concise description of what you expected to happen. If applicable, add screenshots to help explain your problem. **Environment** -Your user-agent (from Settings/Help section) +Please copy all version information from Settings/Help **Kdbx File** Does it happen on Demo or New database? diff --git a/app/scripts/util/kdbxweb/protected-value-ex.js b/app/scripts/util/kdbxweb/protected-value-ex.js index eb9726d2..fe662200 100644 --- a/app/scripts/util/kdbxweb/protected-value-ex.js +++ b/app/scripts/util/kdbxweb/protected-value-ex.js @@ -6,8 +6,8 @@ const ExpectedFieldRefByteLength = ExpectedFieldRefChars.length; kdbxweb.ProtectedValue.prototype.isProtected = true; kdbxweb.ProtectedValue.prototype.forEachChar = function (fn) { - const value = this._value; - const salt = this._salt; + const value = this.value; + const salt = this.salt; let b, b1, b2, b3; for (let i = 0, len = value.length; i < len; i++) { b = value[i] ^ salt[i]; @@ -154,7 +154,7 @@ kdbxweb.ProtectedValue.prototype.equals = function (other) { return false; } for (let i = 0; i < len; i++) { - if ((this._value[i] ^ this._salt[i]) !== (other._value[i] ^ other._salt[i])) { + if ((this.value[i] ^ this.salt[i]) !== (other.value[i] ^ other.salt[i])) { return false; } } @@ -181,8 +181,8 @@ kdbxweb.ProtectedValue.prototype.saltedValue = function () { if (!this.byteLength) { return 0; } - const value = this._value; - const salt = this._salt; + const value = this.value; + const salt = this.salt; let salted = ''; for (let i = 0, len = value.length; i < len; i++) { const byte = value[i] ^ salt[i]; @@ -193,8 +193,8 @@ kdbxweb.ProtectedValue.prototype.saltedValue = function () { kdbxweb.ProtectedValue.prototype.dataAndSalt = function () { return { - data: [...this._value], - salt: [...this._salt] + data: [...this.value], + salt: [...this.salt] }; }; diff --git a/desktop/package.json b/desktop/package.json index 52888c6b..1dfaee73 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "KeeWeb", - "version": "1.18.4", + "version": "1.18.5", "description": "Free cross-platform password manager compatible with KeePass", "main": "main.js", "homepage": "https://keeweb.info", diff --git a/package-lock.json b/package-lock.json index caf28fce..0d46d897 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { "name": "keeweb", - "version": "1.18.4", + "version": "1.18.5", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "1.18.3", + "version": "1.18.4", "license": "MIT", "dependencies": { "@babel/core": "^7.14.0", @@ -67,7 +67,7 @@ "jquery": "3.6.0", "json-loader": "^0.5.7", "jsqrcode": "github:antelle/jsqrcode#0.1.3", - "kdbxweb": "^2.0.1", + "kdbxweb": "^2.0.3", "load-grunt-tasks": "5.1.0", "lodash": "^4.17.21", "marked": "^2.0.3", @@ -11706,9 +11706,9 @@ } }, "node_modules/kdbxweb": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.1.tgz", - "integrity": "sha512-ewghBv4gAGkUgtPv+qELC7U+qA5U6msKYod4UDtCrrAA4taEm13VSdZGxp2iBeIhkh/bciHmRlvtVoSTlLL+1g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.3.tgz", + "integrity": "sha512-VKaYAQiTqxPmn55IcUDzdZsV1+1k4onBHe+Ip7t5xs7JxkGT++tmPwIFE+D3smzjTQ63fUEJ+P7t3o+xIbC/6A==", "dependencies": { "pako": "github:keeweb/pako#653c0b00d8941c89d09ed4546d2179001ec44efc", "xmldom": "github:keeweb/xmldom#ec8f61f723e2f403adaf7a1bbf55ced4ff1ea0c6" @@ -29846,9 +29846,9 @@ } }, "kdbxweb": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.1.tgz", - "integrity": "sha512-ewghBv4gAGkUgtPv+qELC7U+qA5U6msKYod4UDtCrrAA4taEm13VSdZGxp2iBeIhkh/bciHmRlvtVoSTlLL+1g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/kdbxweb/-/kdbxweb-2.0.3.tgz", + "integrity": "sha512-VKaYAQiTqxPmn55IcUDzdZsV1+1k4onBHe+Ip7t5xs7JxkGT++tmPwIFE+D3smzjTQ63fUEJ+P7t3o+xIbC/6A==", "requires": { "pako": "github:keeweb/pako#653c0b00d8941c89d09ed4546d2179001ec44efc", "xmldom": "github:keeweb/xmldom#ec8f61f723e2f403adaf7a1bbf55ced4ff1ea0c6" diff --git a/package.json b/package.json index 5edeb963..2ce41bd0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keeweb", - "version": "1.18.4", + "version": "1.18.5", "description": "Free cross-platform password manager compatible with KeePass", "main": "Gruntfile.js", "private": true, @@ -69,7 +69,7 @@ "jquery": "3.6.0", "json-loader": "^0.5.7", "jsqrcode": "github:antelle/jsqrcode#0.1.3", - "kdbxweb": "^2.0.1", + "kdbxweb": "^2.0.3", "load-grunt-tasks": "5.1.0", "lodash": "^4.17.21", "marked": "^2.0.3", diff --git a/release-notes.md b/release-notes.md index 37d5176a..5a1ccf7c 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,5 +1,9 @@ Release notes ------------- +##### v1.18.5 (2021-05-14) +`-` fix #1816: old Chromium support, such as Android Edge +`-` fix #1817: crash on files with large attachments as KDBX3 + ##### v1.18.4 (2021-05-12) `+` #1814: option to disable auto-type title filter by default `-` #1808: restore KeeWeb from system tray on extension request