From c2096377de0a8ecf4f36567322ad9171c5fb5ab2 Mon Sep 17 00:00:00 2001 From: Dmitriy Seregin Date: Fri, 20 Aug 2021 17:07:45 +0300 Subject: [PATCH] fixes && updated translations --- CHANGELOG.md | 4 +- client/package-lock.json | 619 ++++++++++-------- client/src/__locales/bg.json | 9 - client/src/__locales/en.json | 2 +- client/src/__locales/fa.json | 17 - client/src/__locales/hr.json | 2 - client/src/__locales/no.json | 17 - client/src/__locales/ro.json | 1 - client/src/__locales/si-lk.json | 6 - client/src/__locales/sr-cs.json | 17 - client/src/__locales/sv.json | 16 +- client/src/__locales/th.json | 16 - client/src/__locales/zh-hk.json | 6 - client/src/actions/index.js | 1 - client/src/components/App/index.js | 1 - client/src/components/Dashboard/DomainCell.js | 1 - .../components/Settings/Dhcp/Interfaces.js | 1 - .../components/Settings/Encryption/Form.js | 43 +- .../components/Settings/Encryption/index.js | 21 +- client/src/helpers/constants.js | 2 + client/src/helpers/twosky.js | 1 + internal/home/tls.go | 67 +- openapi/CHANGELOG.md | 7 + openapi/openapi.yaml | 2 +- 24 files changed, 445 insertions(+), 434 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efa17acd94b..ab539d96423 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to ### Added -- Added use saved option when setting private key as string ([#1898]) +- `Use saved` option when setting private key as string ([#1898]). - Static IP address detection on FreeBSD ([#3289]). - Optimistic cache ([#2145]). - New possible value of `6h` for `querylog_interval` setting ([#2504]). @@ -44,6 +44,7 @@ and this project adheres to ### Changed +- Don't show the private key in API responses if it was saved as a string ([#1898]). - Better OpenWrt detection ([#3435]). - DNS-over-HTTPS queries that come from HTTP proxies in the `trusted_proxies` list now use the real IP address of the client instead of the address of the @@ -66,7 +67,6 @@ and this project adheres to ### Fixed -- If private key was saved as a string, then hide it from the UI ([#1898]) - `reload` service action on macOS and FreeBSD ([#3457]). - Inaccurate using of service actions in the installation script ([#3450]). - Client ID checking ([#3437]). diff --git a/client/package-lock.json b/client/package-lock.json index 56bf51c4daa..097461545a4 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -70,15 +70,6 @@ "ms": "^2.1.1" } }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1188,16 +1179,6 @@ "regenerator-runtime": "^0.13.4" } }, - "@babel/runtime-corejs3": { - "version": "7.9.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz", - "integrity": "sha512-6toWAfaALQjt3KMZQc6fABqZwUDDuWzz+cAfPhqyEnzxvdWOAkjwPNxgF8xlmo7OWLsSjaKjsskpKHRLaMArOA==", - "dev": true, - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - } - }, "@babel/template": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", @@ -1909,11 +1890,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", @@ -2875,13 +2851,15 @@ "dev": true }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.5" } }, @@ -2907,13 +2885,26 @@ "dev": true }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" } }, "arrify": { @@ -3197,11 +3188,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", @@ -3863,6 +3849,15 @@ "unset-value": "^1.0.0" } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -4325,12 +4320,6 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -4550,12 +4539,6 @@ } } }, - "core-js-pure": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", - "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==", - "dev": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -5421,21 +5404,27 @@ } }, "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { @@ -5658,22 +5647,38 @@ } }, "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } } } @@ -5741,15 +5746,6 @@ "path-exists": "^4.0.0" } }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", @@ -5837,44 +5833,53 @@ } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", + "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true } } }, "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.24.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.1.tgz", + "integrity": "sha512-KSFWhNxPH8OGJwpRJJs+Z7I0a13E2iFQZJIvSnCu6KUs4qmgAm3xN9GYBCSoiGWmwA7gERZPXqYQjcoCROnYhQ==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.6.2", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.6.0", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.4", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.10.1" }, "dependencies": { "debug": { @@ -5887,20 +5892,23 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, @@ -5930,22 +5938,23 @@ } }, "eslint-plugin-react": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz", - "integrity": "sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", + "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", "dev": true, "requires": { - "array-includes": "^3.1.1", + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", "doctrine": "^2.1.0", "has": "^1.0.3", - "jsx-ast-utils": "^2.2.3", - "object.entries": "^1.1.1", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.4", "prop-types": "^15.7.2", - "resolve": "^1.15.1", - "string.prototype.matchall": "^4.0.2", - "xregexp": "^4.3.0" + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" }, "dependencies": { "doctrine": { @@ -5957,6 +5966,16 @@ "esutils": "^2.0.2" } }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, "prop-types": { "version": "15.7.2", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", @@ -5967,6 +5986,16 @@ "object-assign": "^4.1.1", "react-is": "^16.8.1" } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } } } }, @@ -6883,6 +6912,16 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -7191,15 +7230,28 @@ "function-bind": "^1.1.1" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } }, "has-value": { "version": "1.0.0", @@ -7824,14 +7876,13 @@ } }, "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "dev": true, + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "requires": { - "es-abstract": "^1.17.0-next.1", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", - "side-channel": "^1.0.2" + "side-channel": "^1.0.4" } }, "interpret": { @@ -7929,6 +7980,14 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -7938,6 +7997,15 @@ "binary-extensions": "^1.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -7945,9 +8013,9 @@ "dev": true }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" }, "is-ci": { "version": "2.0.0", @@ -7958,6 +8026,15 @@ "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", + "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -8060,6 +8137,11 @@ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -8080,6 +8162,14 @@ } } }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -8131,11 +8221,12 @@ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "requires": { - "has": "^1.0.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, "is-regexp": { @@ -8150,10 +8241,12 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-symbol": { "version": "1.0.3", @@ -10121,9 +10214,9 @@ "dev": true }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" @@ -10237,24 +10330,25 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "dependencies": { "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } } } @@ -11327,9 +11421,9 @@ "dev": true }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" }, "object-is": { "version": "1.1.2", @@ -11355,37 +11449,36 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.4.tgz", + "integrity": "sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" } }, "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, @@ -11409,15 +11502,14 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "es-abstract": "^1.18.2" } }, "obuf": { @@ -11791,9 +11883,9 @@ "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { @@ -12718,35 +12810,35 @@ } }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" + "path-type": "^3.0.0" }, "dependencies": { "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } } } }, "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" } }, "readable-stream": { @@ -12894,12 +12986,12 @@ } }, "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "regexpp": { @@ -13572,13 +13664,13 @@ "optional": true }, "side-channel": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", - "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", - "dev": true, + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "requires": { - "es-abstract": "^1.17.0-next.1", - "object-inspect": "^1.7.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, "signal-exit": { @@ -14101,6 +14193,15 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-length": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", @@ -14163,64 +14264,37 @@ } }, "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", + "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" + "es-abstract": "^1.18.2", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "requires": { - "safe-buffer": "~5.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "stringify-entities": { @@ -15111,6 +15185,17 @@ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true }, + "tsconfig-paths": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", + "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", + "dev": true, + "requires": { + "json5": "^2.2.0", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", @@ -15194,6 +15279,17 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==" }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, "unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", @@ -16247,6 +16343,18 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -16361,15 +16469,6 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, - "xregexp": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", - "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", - "dev": true, - "requires": { - "@babel/runtime-corejs3": "^7.8.3" - } - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/client/src/__locales/bg.json b/client/src/__locales/bg.json index 2ab4cc0139f..473d999ae2a 100644 --- a/client/src/__locales/bg.json +++ b/client/src/__locales/bg.json @@ -64,10 +64,8 @@ "block_domain_use_filters_and_hosts": "Блокирани домейни - общи и местни филтри", "filters_block_toggle_hint": "Може да зададете собствени настройки в Филтри.", "use_adguard_browsing_sec": "Използвайте AdGuard модул за сигурността", - "use_adguard_browsing_sec_hint": "Модул Сигурност в AdGuard Home проверява всяка страница която отваряте дали е в черните списъци застрашаващи вашата сигурност. Използва се програмен интерфейс който защитава вашата анонимност и изпраща само SHA256 сума базирана на част от домейна който посещавате.", "use_adguard_parental": "Включи AdGuard Родителски Надзор", "use_adguard_parental_hint": "Модул XXX в AdGuard Home ще провери дали страницата има материали за възвъстни. Използва се същия API за анонимност като при модула за Сигурност.", - "enforce_safe_search": "Включи Безопасно Търсене", "no_servers_specified": "Няма избрани услуги", "general_settings": "Общи настройки", "upstream_dns": "Главен DNS сървър", @@ -155,18 +153,13 @@ "install_devices_title": "Настройте вашето устройство", "install_devices_desc": "Да започнете да използвате AdGuard Home, е необходимо да настроите вашите устройства.", "install_submit_title": "Поздравления!", - "install_submit_desc": "Настройката е завършена, може да започнете да ползвате AdGuard Home.", "install_devices_router": "Рутер", - "install_devices_router_desc": "Ако настроите вашият рутер няма нужда ръчно да настройвате всяко едно от устрйствата в мрежата.", "install_devices_address": "AdGuard Home DNS сървърът е на следния адрес", "install_devices_router_list_2": "Намерета DHCP/DNS настройки. В под раздел DHCP рзгледайте и намерете къде е полето за DNS настройка в което може да въведете персонализирани настройки за DNS сървъри.", "install_devices_router_list_3": "Въведете адресът на AdGuard Home сървъра.", "install_devices_windows_list_1": "Отворете Контролния Панел през Старт меню или чрез функция търсене на Windows.", "install_devices_windows_list_2": "Вървете до Настрйки на Мрежи и Интернет и от там изберете Мрежи и Център за Споделяне.", - "install_devices_windows_list_3": "От ляво на екрана намерете Смени настроки на мрежовия адаптер и кликнете на него.", "install_devices_windows_list_4": "Изберете този който е активен, дясно-кликване и изберета Свойства.", - "install_devices_windows_list_5": "Намерете Интернет Протокол Версия 4 (TCP/IP) в списъка, изберете и кликнете отново на Свойства.", - "install_devices_windows_list_6": "Изберете Използвай следните адреси за DNS сърсъри и въведете адреса на AdGuard Home сървъра ви.", "install_devices_macos_list_1": "Цъкнете на Apple иконката и изберете System Preferences...", "install_devices_macos_list_2": "Цъкнете на Network.", "install_devices_macos_list_3": "Изберете зелената-активна връзка в списъка и кликнете на Advanced.", @@ -175,7 +168,6 @@ "install_devices_android_list_2": "Цъкнете на Wi-Fi меню. На екрана ще се появат всички безжични прежи (там няма възможност за въвеждане на DNS настройки).", "install_devices_android_list_3": "Цъкнете и задръжде върху Вие сте свързани с.., и кликнете на Модифицирай мрежа.", "install_devices_android_list_4": "На някой устройства може да е неоходимо да маркирате покажи Разширени, за да видите всички настройки. За да промените Android DNS настройките, може да се наложи да промените IP настройките от DHCP на Статични.", - "install_devices_android_list_5": "Променете стойностите на DNS 1 и DNS 2 да използват AdGuard Home сървъра.", "install_devices_ios_list_1": "От начален екран, цъкнете на Settings.", "install_devices_ios_list_2": "Изберете Wi-Fi от лявото меню (там няма възможност за въвеждане на DNS настройки).", "install_devices_ios_list_3": "Клинете на името на активната мрежа към която сте свързани.", @@ -217,7 +209,6 @@ "form_error_password": "Паролата не съвпада", "reset_settings": "Изтрий всички настройки", "update_announcement": "Има нова AdGuard Home {{version}}! <0>Цъкни тук за повече информация.", - "disable_ipv6": "Изключете IPv6 протокола", "show_blocked_responses": "Блокирано", "port_53_faq_link": "Порт 53 често е зает от \"DNSStubListener\" или \"systemd-resolved\" услуги. Моля, прочетете <0>тази инструкция как да решите това." } diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json index a6bec141840..f27f7840904 100644 --- a/client/src/__locales/en.json +++ b/client/src/__locales/en.json @@ -614,5 +614,5 @@ "adg_will_drop_dns_queries": "AdGuard Home will be dropping all DNS queries from this client.", "client_not_in_allowed_clients": "The client is not allowed because it is not in the \"Allowed clients\" list.", "experimental": "Experimental", - "use_saved_key": "Use saved key" + "use_saved_key": "Use the previously saved key" } diff --git a/client/src/__locales/fa.json b/client/src/__locales/fa.json index d880e0cd28c..6e43f9cbc69 100644 --- a/client/src/__locales/fa.json +++ b/client/src/__locales/fa.json @@ -65,7 +65,6 @@ "copyright": "حق مالکیت", "homepage": "صفحه خانگي", "report_an_issue": "گزارش یک مشکل", - "privacy_policy": "سیاست حریم خصوصی", "enable_protection": "فعالسازي حفاظت", "enabled_protection": "حفاظت فعال شده", "disable_protection": "غيرفعالسازي حفاظت", @@ -91,10 +90,8 @@ "block_domain_use_filters_and_hosts": "مسدودسازی دامنه ها توسط فیلترها و فایل های میزبان", "filters_block_toggle_hint": "میتوانید دستورات مسدودسازی را در تنظیمات فیلترها راه اندازی کنید.", "use_adguard_browsing_sec": "استفاده از سرویس وب امنیت وب گردی AdGuard", - "use_adguard_browsing_sec_hint": "AdGuard Home بررسی می کند اگر دامنه در سرویس وب امنیت وب گردی در لیست سیاه است.آن از اِی پی آی دارای حریم خصوصی برای بررسی استفاده می کند:فقط پیشوند کوتاه نام دامنه هش SHA256 به سرور ارسال خواهد شد.", "use_adguard_parental": "از سرویس وب نظارت والدین AdGuard استفاده کن", "use_adguard_parental_hint": "AdGuard Home بررسی می کند اگر دامنه حاوی موارد غیر اخلاقی است.آن از همان اِی پی آی دارای حریم خصوصی سرویس وب امنیت وب گردی استفاده می کند.", - "enforce_safe_search": "اجبار جستجوی اَمن", "no_servers_specified": "سروری تعیین نشده است", "general_settings": "تنظیمات عمومی", "dns_settings": "تنظیمات DNS", @@ -210,8 +207,6 @@ "dns_over_tls": "DNS-over-TLS", "form_enter_rate_limit": "میزان محدودیت را وارد کنید", "rate_limit": "میزان محدودیت", - "edns_enable": "فعالسازی زیرشبکه کلاینت EDNS", - "edns_cs_desc": "اگر فعال باشد،AdGuard Home زیرشبکه های کلاینت ها را به سرورهای DNS می فرستد.", "blocking_ipv4_desc": "آدرس آی پی برگشت داده شده برای درخواست مسدود شده A", "blocking_ipv6_desc": "آدرس آی پی برگشت داده شده برای درخواست مسدود شده AAAA", "blocking_mode_nxdomain": "NXDOMAIN: پاسخ با کُد NXDOMAIN", @@ -244,18 +239,13 @@ "install_devices_title": "پیکربندی دستگاه شما", "install_devices_desc": "به منظور اینکه AdGuard Home شروع به کار کند،باید دستگاه خود را برای استفاده از آن پیکربندی کنید.", "install_submit_title": "تبریک می گوییم!", - "install_submit_desc": "روش راه اندازی به پایان رسیده و شما آماده استفاده از AdGuard Home هستید.", "install_devices_router": "روتر", - "install_devices_router_desc": "این راه انداز خودکار همه دستگاه های متصل شده به روتر خانه را پوشش میدهد و نیازی نیست شما هر یک از آنها را دستی پیکربندی کنید.", "install_devices_address": "DNS سرور AdGuard Home به آدرس های زیر گوش میدهد", "install_devices_router_list_2": "تنظیمات DHCP/DNS را بیابید.دنبال حروف DNS بگردید در فیلدی که اجازه دو یا سه گروه عدد را میدهد و هر کدام در چهار گروه سه عددی شکسته شده است", "install_devices_router_list_3": "آدرس سرور AdGuard Home خود را آنجا وارد کنید", "install_devices_windows_list_1": "کنترل پنل را از طریق استارت منو یا جستجوی ویندوز باز کنید.", "install_devices_windows_list_2": "بروید به شبکه و دسته اینترنت و سپس به شبکه و مرکز اشتراک گذاری", - "install_devices_windows_list_3": "در سمت چپ صفحه تنظیمات آداپتور را تغییر داده و روی آن کلیک کنید", "install_devices_windows_list_4": "ارتباط فعال خود را انتخاب کرده،روی آن راست کلیک کرده و مشخصات را انتخاب کنید.", - "install_devices_windows_list_5": "پروتکل اینترنت نسخه 4 (TCP/IP) را در لیست بیابید،آن را انتخاب و سپس روی مشخصات دوباره کلیک کنید.", - "install_devices_windows_list_6": "گزینه استفاده از آدرس DNS سرور زیر را انتخاب کرده و آدرس سرور AdGuard Home خود را وارد کنید.", "install_devices_macos_list_1": "روی آیکون اَپل کلیک کرده و بروید به اولویت های سیستم", "install_devices_macos_list_2": "روی شبکه کلیک کنید", "install_devices_macos_list_3": "اولین ارتباط را از لیست خود انتخاب و روی پیشرفته کلیک کنید.", @@ -264,7 +254,6 @@ "install_devices_android_list_2": "وای فای را در منو فشار دهید،صفحه لیست کردن همه شبکه های موجود نشان داده میشود (تنظیم DNS دستی برای ارتباط موبایلی غیرممکن است)", "install_devices_android_list_3": "به شبکه ای که متصل شده اید فشار طولانی دهید و ویرایش شبکه را انتخاب کنید.", "install_devices_android_list_4": "در برخی دستگاه ها،شما ممکن است کادر پیشرفته را برای تنظیمات بعدی بررسی کنید.برای تنظیم DNS آندروئید خود،نیاز است شما از تنظیمات IP را از DHCP به Staticتغییر دهید.", - "install_devices_android_list_5": "گروه مقادیر DNS 1 و DNS 2 را به آدرس سرور AdGuard Home خود تغییر دهید.", "install_devices_ios_list_1": "از صفحه خانه،تنظیمات را فشار دهید.", "install_devices_ios_list_2": "وای فای را از منوی چپ انتخاب کنید (پیکربندی DNS دستی برای ارتباط موبایلی غیرممکن است).", "install_devices_ios_list_3": "روی نام شبکه فعال فعلی کلیک کنید.", @@ -345,9 +334,7 @@ "access_title": "تنظیمات دسترسی", "access_desc": "در اینجا میتوانید دستورات دسترسی را برای DNS سرور AdGuard Home وارد کنید.", "access_allowed_title": "کلاینت های مجاز", - "access_allowed_desc": "یک لیست از CIDR یا آدرس های IP.اگر پیکربندی شود،AdGuard Home درخواست ها را فقط از این آدرس ها می پذیرد.", "access_disallowed_title": "کلاینت های غیرمجاز", - "access_disallowed_desc": "یک لیست از CIDR یا آدرس های IP.اگر پیکربندی شود،AdGuard Home درخواست ها را از این آدرس های IP نمی پذیرد.", "access_blocked_title": "دامنه های مسدود شده", "access_settings_saved": "تنظیمات دسترسی با موفقیت ذخیره شد", "updates_checked": "بروز رسانی با موفقیت بررسی شد", @@ -409,7 +396,6 @@ "statistics_configuration": "پیکربندی آمارها", "statistics_retention": "مدت حفظ آمارها", "statistics_retention_desc": "اگر مقدار فاصله را کاهش دهید،برخی داده ها از بین خواهد رفت", - "statistics_clear": " پاکسازی آمار", "statistics_clear_confirm": "آیا واقعا میخواهید آمار را پاک کنید؟", "statistics_retention_confirm": "آیا واقعا میخواهید مدت حفظ آمار را تغییر دهید؟ اگر فاصله را کاهش دهید، برخی داده ها حذف میشود", "statistics_cleared": "آمارها با موفقیت حذف شد", @@ -439,8 +425,6 @@ "domain_desc": "نامه دامنه یا علامت تطبیقی را برای بازنویسی وارد کنید.", "example_rewrite_domain": "فقط بازنویسی پاسخ برای این دامنه.", "example_rewrite_wildcard": "بازنویسی پاسخ ها برای همه زیردامنه های <0>example.org.", - "disable_ipv6": "غیرفعالسازی IPv6", - "disable_ipv6_desc": "اگر این ویژگی فعال شده، همه جستارهای DNS برای آدرس های IPv6 (نوع AAAA) رها میشود.", "fastest_addr": "سریعترین آدرس آی پی", "autofix_warning_text": "اگر روی \"تعمیر\" کلیک کنید، AdGuardHome سیستم شما را برای استفاده از DNS سرور AdGuardHome پیکربندی می کند.", "autofix_warning_list": "این وظایف را اجرا میکند: <0>غیرفعالسازی DNSStubListener سیستم <0>تنظیم آدرس DNS 127.0.0.1 سرور به <0>جایگزینی لینک نمادی هدف /etc/resolv.conf به/run/systemd/resolve/resolv.conf <0>توقف DNSStubListener (بارگیری مجدد سرویس systemd-resolved)", @@ -472,7 +456,6 @@ "list_updated": "{{count}} لیست بروز رسانی شد", "list_updated_plural": "{{count}} لیست بروز رسانی شد", "dnssec_enable": "فعالسازی DNSSEC", - "dnssec_enable_desc": "تنظیم نشان DNSSEC در جستارهای حاصل DNS و بررسی نتیجه (تفکیک کننده DNSSEC-فعال شده نیاز است)", "validated_with_dnssec": "معتبر سازی با DNSSEC", "show_blocked_responses": "مسدود شده", "show_whitelisted_responses": "لیست سفید", diff --git a/client/src/__locales/hr.json b/client/src/__locales/hr.json index 1a963548311..66e7589f4e2 100644 --- a/client/src/__locales/hr.json +++ b/client/src/__locales/hr.json @@ -98,7 +98,6 @@ "copyright": "Autorsko pravo", "homepage": "Početna stranica", "report_an_issue": "Prijavite problem", - "privacy_policy": "Politika privatnosti", "enable_protection": "Omogući zaštitu", "enabled_protection": "Omogućena zaštita", "disable_protection": "Onemogući zaštitu", @@ -499,7 +498,6 @@ "statistics_configuration": "Postavke statistike", "statistics_retention": "Spremanje statistike", "statistics_retention_desc": "Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni", - "statistics_clear": " Poništi statistiku", "statistics_clear_confirm": "Jeste li sigurni da želite poništiti statistiku?", "statistics_retention_confirm": "Jeste li sigurni da želite promijeniti zadržavanje statistike? Ako smanjite vrijednost intervala, neki će podaci biti izgubljeni", "statistics_cleared": "Statistika je uspješno uklonjenja", diff --git a/client/src/__locales/no.json b/client/src/__locales/no.json index c91eb2e6dec..ca3762a4433 100644 --- a/client/src/__locales/no.json +++ b/client/src/__locales/no.json @@ -4,7 +4,6 @@ "load_balancing": "Pågangstrykk-utjevning", "bootstrap_dns": "Bootstrap-DNS-tjenere", "bootstrap_dns_desc": "Bootstrap-DNS-tjenere brukes til å oppklare IP-adressene til DoH/DoT-oppklarerene som du har valgt som oppstrømstjenere.", - "local_ptr_title": "Private DNS-tjenere", "check_dhcp_servers": "Se etter DHCP-tjenere", "enabled_dhcp": "DHCP-tjeneren ble skrudd på", "disabled_dhcp": "DHCP-tjeneren ble skrudd av", @@ -100,7 +99,6 @@ "block_domain_use_filters_and_hosts": "Blokker domener ved hjelp av filtre, «hosts»-filer, og rå domener", "filters_block_toggle_hint": "Du kan sette opp blokkeringsoppføringer i Filtre-innstillingene.", "use_adguard_browsing_sec": "Benytt AdGuard sin nettlesersikkerhetstjeneste", - "use_adguard_browsing_sec_hint": "AdGuard Home vil sjekke om domenet har blitt svartelistet av nettlesersikkerhetstjenesten. Den vil bruke en privatlivsvennlig søke-API til å utføre sjekken: kun en kort prefiks av domenenavnet med SHA256-salting blir sendt til tjeneren.", "use_adguard_parental": "Benytt AdGuard sin foreldrekontroll-nettjeneste", "use_adguard_parental_hint": "AdGuard Home vil sjekke om domenet inneholder erotisk materiale. Den benytter den samme privatlivsvennlige API-en som nettlesersikkerhetstjenesten.", "enforce_safe_search": "Påtving barnevennlige søk", @@ -239,8 +237,6 @@ "plain_dns": "Ordinær DNS", "form_enter_rate_limit": "Skriv inn forespørselsfrekvensgrense", "rate_limit": "Forespørselsfrekvensgrense", - "edns_enable": "Aktiver EDNS-klientundernett", - "edns_cs_desc": "Hvis det er skrudd på, vil AdGuard Home sende klientenes undernett til DNS-tjenerne.", "blocking_ipv4_desc": "IP-adressen som det skal svares med for blokkerte A-forespørsler", "blocking_ipv6_desc": "IP-adressen som det skal svares med for blokkerte AAAA-forespørsler", "blocking_mode_default": "Standard: Svar med null-IP-adresse (0.0.0.0 for A; :: for AAAA) når den blokkeres av adblock-aktige oppføringer; svar med IP-adressen som er spesifisert i oppføringen når den blokkeres av /etc/hosts-typeoppføringer", @@ -278,18 +274,13 @@ "install_devices_title": "Sett opp enhetene dine", "install_devices_desc": "For å begynne å bruke AdGuard Home, må du sette opp enhetene dine til å bruke den.", "install_submit_title": "Gratulerer!", - "install_submit_desc": "Oppsettsprosedyren er ferdig, og du er klar til å begynne å bruke AdGuard Home.", "install_devices_router": "Ruter", - "install_devices_router_desc": "Dette oppsettet vil automatisk dekke alle enhetene som er koblet til hjemmeruteren din, og du vil ikke måtte sette opp hver av dem manuelt.", "install_devices_address": "AdGuard Home-DNS-tjeneren lytter til de følgende adressene", "install_devices_router_list_2": "Finn DHCP-/DNS-innstillingene. Se etter DNS-bokstavene ved siden av et felt som tillater to eller tre sett med sifre, som hver er delt opp i fire grupper på 1-3 sifre.", "install_devices_router_list_3": "Skriv inn din AdGuard Home-tjeners adresser her.", "install_devices_windows_list_1": "Åpne «Kontrollpanel» gjennom Start-menyen eller et Windows-søk.", "install_devices_windows_list_2": "Gå til «Nettverk og internett»-kategorien, og så til «Nettverks- og delingssenter».", - "install_devices_windows_list_3": "På den venstre siden av skjermen, finn «Endre innstillinger for nettverkskort» og klikk på den.", "install_devices_windows_list_4": "Velg din aktive tilkobling, høyreklikk på den, og velg «Egenskaper».", - "install_devices_windows_list_5": "Finn «Internet Protocol versjon 4 (TCP/IP)» i listen, velg den, og så klikk på «Egenskaper» igjen.", - "install_devices_windows_list_6": "Velg «Bruk følgende DNS-serveradresser» og så skriv inn din AdGuard Home-tjeners adresser.", "install_devices_macos_list_1": "Klikk på Apple-ikonet og gå til Systeminnstillinger.", "install_devices_macos_list_2": "Klikk på «Nettverk».", "install_devices_macos_list_3": "Velg den første tilkoblingen i listen din, og klikk på «Avansert».", @@ -298,7 +289,6 @@ "install_devices_android_list_2": "Velg «Wi-Fi» i menyen. Skjermen som lister opp alle de tilgjengelige nettverkene vil bli vist (det er umulig å velge selvvalgte DNS-adresser for mobiltilkoblinger uten en DNS-endringsapp).", "install_devices_android_list_3": "Langtrykk på nettverket du er koblet til, og så trykk «Endre nettverket».", "install_devices_android_list_4": "På noen enheter, vil du måtte huke av boksen for Avansert for se flere innstillinger. For å justere dine Android-DNS-innstillinger, vil du måtte endre IP-innstillingene fra DHCP til Statisk.", - "install_devices_android_list_5": "Endre de forvalgte 'DNS 1' og 'DNS 2'-verdiene til din AdGuard Home-tjeners adresser.", "install_devices_ios_list_1": "Fra startskjermen, trykk på «Innstillinger».", "install_devices_ios_list_2": "Velg Wi-Fi i den venstre menyen (det er umulig å sette opp DNS for mobildata-nettverk).", "install_devices_ios_list_3": "Trykk på navnet til det nettverket som er aktivt for øyeblikket.", @@ -381,9 +371,7 @@ "access_title": "Tilgangsinnstillinger", "access_desc": "Her kan du sette opp tilgangsregler for AdGuard Home-DNS-tjeneren.", "access_allowed_title": "Tillatte klienter", - "access_allowed_desc": "En liste over CIDR- eller IP-adresser. Dersom dette er satt opp, vil AdGuard Home kun akseptere forespørsler fra disse IP-adressene.", "access_disallowed_title": "Klienter som skal avvises", - "access_disallowed_desc": "En liste over CIDR- eller IP-adresser. Dersom dette er satt opp, vil AdGuard Home avslå forespørsler fra disse IP-adressene.", "access_blocked_title": "Blokkerte domener", "access_settings_saved": "Tilgangsinnstillingene ble vellykket lagret", "updates_checked": "Oppdateringene ble vellykket sett etter", @@ -447,7 +435,6 @@ "statistics_configuration": "Statistikk-oppsett", "statistics_retention": "Statistikkbeholding", "statistics_retention_desc": "Hvis du reduserer intervallverdien, vil noen av dataene gå tapt", - "statistics_clear": " Tøm statistikkene", "statistics_clear_confirm": "Er du sikker på at du vil slette statistikkene?", "statistics_retention_confirm": "Er du sikker på at du vil endre hvor lenge statistikkene skal beholdes? Hvis du reduserer den interne verdien, vil noe av dataene gå tapt", "statistics_cleared": "Statistikkene ble vellykket tømt", @@ -482,8 +469,6 @@ "rewrite_domain_name": "Domenenavn: Legg til en CNAME-statutt", "rewrite_A": "<0>A: spesialverdi, behold <0>A-statutter fra oppstrømstjeneren", "rewrite_AAAA": "<0>AAAA: spesialverdi, behold <0>AAAA-statutter fra oppstrømstjeneren", - "disable_ipv6": "Skru av IPv6", - "disable_ipv6_desc": "Hvis dette er skrudd på, vil alle DNS-forespørslene til IPv6-adresser (AAAA-type) bli droppet.", "fastest_addr": "Raskeste IP-adresse", "autofix_warning_text": "Hvis du klikker på «Fiks», vil AdGuard Home sette opp systemet ditt til å bruke 'AdGuard Home'-DNS-tjeneren.", "autofix_warning_list": "Den vil utføre disse handlingene: <0>Skru av systemets DNSStubListener <0>Sette DNS-tjeneradressen til 127.0.0.1 <0>Bytte ut det symbolske lenkemålet til /etc/resolv.conf med /run/systemd/resolve/resolv.conf <0>Stoppe DNSStubListener (gjeninnlast 'systemd-resolved'-tjenesten)", @@ -518,7 +503,6 @@ "list_updated": "{{count}} liste oppdatert", "list_updated_plural": "{{count}} lister oppdatert", "dnssec_enable": "Skru på DNSSEC", - "dnssec_enable_desc": "Fest på DNSSEC-flagg til utgående DNS-forespørsler og sjekk resultatet (En DNS-oppstrømstjener med DNSSEC-støtte er påkrevd)", "validated_with_dnssec": "Validert med DNSSEC", "all_queries": "Alle forespørsler", "show_blocked_responses": "Blokkért", @@ -548,7 +532,6 @@ "filter_category_regional": "Regional", "filter_category_other": "Andre", "filter_category_general_desc": "Lister som blokkerer sporing og reklamer på de fleste enheter", - "filter_category_security_desc": "Lister som spesialiserer seg på å blokkere skadevare-, phishing- eller svindeldomener", "filter_category_regional_desc": "Lister som fokuserer på regionale reklamer og sporingstjenere", "filter_category_other_desc": "Andre blokkeringslister", "original_response": "Opprinnelig svar", diff --git a/client/src/__locales/ro.json b/client/src/__locales/ro.json index 10eb79242b4..8c731638dac 100644 --- a/client/src/__locales/ro.json +++ b/client/src/__locales/ro.json @@ -327,7 +327,6 @@ "install_devices_windows_list_3": "În partea stângă a ecranului găsiți \"Schimbare setări adaptor\" și clicați pe el.", "install_devices_windows_list_4": "Selectați conexiunea activă, faceți clic dreapta pe ea și alegeți \"Proprietăți\".", "install_devices_windows_list_5": "Găsiți Internet Protocol Versiunea 4 (TCP/IPv4) din listă, selectați-l și apoi clicați din nou pe Proprietăți.", - "install_devices_windows_list_6": "Alegeți Utilizați următoarele adrese de server DNS și introduceți adresele de server AdGuard Home.", "install_devices_macos_list_1": "Clicați pe icoana Apple și accesați Preferințele Sistemului.", "install_devices_macos_list_2": "Clicați pe Network.", "install_devices_macos_list_3": "Selectați prima conexiune din listă și clicați pe Avansat.", diff --git a/client/src/__locales/si-lk.json b/client/src/__locales/si-lk.json index ca2ae03f1b7..705fc7292c4 100644 --- a/client/src/__locales/si-lk.json +++ b/client/src/__locales/si-lk.json @@ -276,10 +276,7 @@ "install_devices_router_list_4": "ඔබට සමහර වර්ගයේ මාර්ගකාරකය වල අභිරුචි ව.නා.ප. සේවාදායකයක් සැකසිය නොහැක. මෙම අවස්ථාවේදී ඇඩ්ගාර්ඩ් හෝම් <0>ග.ධා.වි.කෙ. සේවාදායකයක් ලෙස පිහිටුවන්නේ නම් එය උපකාර වනු ඇත. එසේ නොමැතිනම්, ඔබගේ විශේෂිත මාර්ගකාරක මාදිළිය සඳහා වූ ව.නා.ප. සේවාදායකයන් රිසිකරණය කරන්නේ කෙසේද යන්න පිළිබඳ අත්පොත පරීක්ෂා කළ යුතුය.", "install_devices_windows_list_1": "ආරම්භක මෙනුව හෝ වින්ඩෝස් සෙවුම හරහා පාලක පැනලය විවෘත කරන්න.", "install_devices_windows_list_2": "ජාල සහ අන්තර්ජාල ප්‍රවර්ගයට ගොස් පසුව ජාල සහ බෙදාගැනීමේ මධ්‍යස්ථානය වෙත යන්න.", - "install_devices_windows_list_3": "උපයුක්තක‌‌‌යෙහි සැකසුම් වෙනස් කිරීම තිරයේ වම් පසින් සොයාගෙන එය මත ක්ලික් කරන්න.", "install_devices_windows_list_4": "ඔබගේ ක්‍රියාකාරී සම්බන්ධතාවය තෝරන්න, එය මත දකුණු-ක්ලික් කර ගුණාංග තෝරන්න.", - "install_devices_windows_list_5": "ලැයිස්තුවේ ඇති අන්තර්ජාල කෙටුම්පත් අනුවාදය 4 (TCP/IP) සොයාගෙන එය තෝරා ඉන්පසු ගුණාංග මත නැවත ක්ලික් කරන්න.", - "install_devices_windows_list_6": "'පහත සඳහන් ව.නා.ප. සේවාදායක ලිපින භාවිතා කරන්න' යන්න තෝරා ඔබගේ ඇඩ්ගාර්ඩ් හෝම් සේවාදායක ලිපින ඇතුළත් කරන්න.", "install_devices_macos_list_1": "ඇපල් අයිකනය මත ක්ලික් කර පද්ධති මනාපයන් වෙත යන්න.", "install_devices_macos_list_2": "ජාලය මත ක්ලික් කරන්න.", "install_devices_macos_list_3": "ඔබගේ ලැයිස්තුවේ පළමු සම්බන්ධතාවය තෝරා උසස් මත ක්ලික් කරන්න.", @@ -374,9 +371,7 @@ "access_title": "ප්‍රවේශවීමට සැකසුම්", "access_desc": "මෙහිදී ඔබට ඇඩ්ගාර්ඩ් හෝම් ව.නා.ප. සේවාදායකය සඳහා ප්‍රවේශ වී‌‌‌‌මේ නීති වින්‍යාසගත කළ හැකිය.", "access_allowed_title": "ඉඩ ලත් අනුග්‍රාහකයින්", - "access_allowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්‍යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් පමණක් ඉල්ලීම් පිළිගනු ඇත.", "access_disallowed_title": "නොඉඩ ලත් අනුග්‍රාහකයින්", - "access_disallowed_desc": "CIDR හෝ අ.ජා. කෙ. ලිපින ලැයිස්තුවක් වින්‍යාසගත කර ඇත්නම්, ඇඩ්ගාර්ඩ් හෝම් විසින් එම අ.ජා. කෙ. ලිපින වලින් ඉල්ලීම් අත්හරිනු ඇත.", "access_blocked_title": "නොඉඩ ලත් වසම්", "access_settings_saved": "ප්‍රවේශ වීමේ සැකසුම් සාර්ථකව සුරකින ලදි", "updates_checked": "යාවත්කාලීන කිරීම් සාර්ථකව පරික්ෂා කර ඇත", @@ -432,7 +427,6 @@ "statistics_configuration": "සංඛ්‍යාලේඛන වින්‍යාසය", "statistics_retention": "සංඛ්‍යාලේඛන රඳවා තබා ගැනීම", "statistics_retention_desc": "ඔබ කාල පරතරය අඩු කළහොත් සමහර දත්ත නැති වනු ඇත", - "statistics_clear": " සංඛ්‍යාලේඛන ඉවත් කරන්න", "statistics_clear_confirm": "සංඛ්‍යාලේඛන ඉවත් කිරීමට අවශ්‍ය බව ඔබට විශ්වාස ද?", "statistics_retention_confirm": "සංඛ්‍යාලේඛන රඳවා තබා ගැනීම වෙනස් කිරීමට අවශ්‍ය බව ඔබට විශ්වාසද? ඔබ කාල පරතරයෙහි අගය අඩු කළහොත් සමහර දත්ත නැති වී යනු ඇත", "statistics_cleared": "සංඛ්‍යාලේඛන සාර්ථකව ඉවත් කරන ලදි", diff --git a/client/src/__locales/sr-cs.json b/client/src/__locales/sr-cs.json index 6be6e9cc283..097e4c951df 100644 --- a/client/src/__locales/sr-cs.json +++ b/client/src/__locales/sr-cs.json @@ -98,10 +98,8 @@ "block_domain_use_filters_and_hosts": "Blokiraj domene koristeći filtere i hosts datoteke", "filters_block_toggle_hint": "Možete postaviti pravila blokiranja u Filters postavkama.", "use_adguard_browsing_sec": "Koristi AdGuard-ovu uslugu bezbednog pregledanja", - "use_adguard_browsing_sec_hint": "AdGuard Home će proveriti da li je domen blokiran od strane usluge za bezbednosno pregledanje. Koristiće prijateljski API privatni pregled da izvrši proveru. Samo će se kratak prefiks domena SHA256 hash poslati na server.", "use_adguard_parental": "Koristi AdGuard-ovu uslugu roditeljske kontrole", "use_adguard_parental_hint": "AdGuard Home će proveriti da li domen sadrži sadržaj za odrasle. Koristi se isti privatni prijateljski API kao i kod usluge bezbednog pregledanja.", - "enforce_safe_search": "Nametni sigurno pretraživanje", "no_servers_specified": "Serveri nisu određeni", "general_settings": "Opšte postavke", "dns_settings": "DNS postavke", @@ -233,8 +231,6 @@ "plain_dns": "Plain DNS", "form_enter_rate_limit": "Unesite ograničenje brzine", "rate_limit": "Ograničenje brzine", - "edns_enable": "Uključi EDNS Client Subnet", - "edns_cs_desc": "Ako je uključeno, AdGuard Home će slati klijente na DNS servere.", "blocking_ipv4_desc": "IP adresa koja će biti vraćena za blokirane zahteve", "blocking_ipv6_desc": "IP adresa koja će biti vraćena za blokirane AAAA zahteve", "blocking_mode_default": "Podrazumevano: Odgovara sa REFUSED kada je blokirano od Adblock-style pravila; odgovara sa IP adresom koja je određena u pravilu kada je blokiran od /etc/hosts-style pravila", @@ -271,18 +267,13 @@ "install_devices_title": "Konfigurišite vaše uređaje", "install_devices_desc": "Za početak korišćenja AdGuard Home, potrebno je da konfigurišete vaše uređaje da ga koriste.", "install_submit_title": "Čestitamo!", - "install_submit_desc": "Postavljanje je završeno i sada ste spremni da započnete sa korišćenjem AdGuard Home.", "install_devices_router": "Ruter", - "install_devices_router_desc": "Ovo postavljanje će automatski pokriti sve uređaje koji su povezani na vaš kućni ruter pa nećete morati da konfigurišete svaki uređaj posebno.", "install_devices_address": "AdGuard Home DNS server sluša na sledećim adresama", "install_devices_router_list_2": "Pronađite DHCP ili DNS postavke. Potražite DNS slova pored polja koje dozvoljava dve ili tri skupine brojeva, a svaka može da sadrži četiri grupe od jedne do tri cifre.", "install_devices_router_list_3": "Tamo unesite adrese AdGuard home servera.", "install_devices_windows_list_1": "Otvorite kontrolnu tablu iz startnog menija ili kroz Windows pretragu.", "install_devices_windows_list_2": "Otvorite kategoriju mreža i internet a onda otiđite u centar za mrežu i deljenje.", - "install_devices_windows_list_3": "Na levoj strani ekrana pronađite Promena postavke adaptera i kliknite tu.", "install_devices_windows_list_4": "Izaberite vašu aktivnu vezu, desnim tasterom kliknite na nju i izaberite Svojstva.", - "install_devices_windows_list_5": "Na listi pronađite Internet Protokol verzija 4 (TCP/IP), izaberite ga pa kliknite ponovo na Svojstva.", - "install_devices_windows_list_6": "Izaberite Koristi sledeće adrese DNS servera pa unesite vaše adrese AdGuard Home servera.", "install_devices_macos_list_1": "Kliknite na ikonicu jabuke pa otiđite na postavke sistema.", "install_devices_macos_list_2": "Kliknite na mrežu.", "install_devices_macos_list_3": "Izaberite prvu vezu sa liste pa kliknite na više opcija.", @@ -291,7 +282,6 @@ "install_devices_android_list_2": "Dodirnite Wi-Fi. Pojaviće se ekran sa svim dostupnim mrežama. Nije moguće da podesite prilagođeni DNS za mobilne veze).", "install_devices_android_list_3": "Dugo pritisnite na mrežu na koju ste povezani, pa dodirnite Izmeni mrežu.", "install_devices_android_list_4": "Na nekim uređajima će možda biti potrebno da označite kućicu za napredne opcije kako bi videli dalje postavke. Da biste prilagodili vaše Android DNS postavke, prebacite IP postavke sa DHCP na statičke.", - "install_devices_android_list_5": "Promenite DNS 1 i DNS 2 vrednosti na adrese vašeg AdGuard Home servera.", "install_devices_ios_list_1": "Sa početnog ekrana, dodirnite postavke.", "install_devices_ios_list_2": "U levom meniju izaberite Wi-Fi. Nije moguće da konfigurišete DNS za mobilne mreže).", "install_devices_ios_list_3": "Dodirnite ime trenutno aktivne mreže.", @@ -374,9 +364,7 @@ "access_title": "Postavke pristupa", "access_desc": "Ovde možete konfigurisati pravila pristupa za AdGuard home DNS server.", "access_allowed_title": "Dozvoljeni klijenti", - "access_allowed_desc": "Spisak CIDR ili IP adresa. Ako je podešeno, AdGuard Home će prihvatiti zahteve samo od ovih IP adresa.", "access_disallowed_title": "Zabranjeni klijenti", - "access_disallowed_desc": "Lista CIDR ili IP adresa.. Ako je podešeno, AdGuard Home će odbijati zahteve od ovih IP adresa.", "access_blocked_title": "Blokirani domeni", "access_settings_saved": "Postavke pristupa su uspešno sačuvane", "updates_checked": "Ažuriranja su uspešno proverena", @@ -441,7 +429,6 @@ "statistics_configuration": "Konfiguracija statistike", "statistics_retention": "Zadržavanje statistike", "statistics_retention_desc": "Ako smanjite vrednost intervala, neki podaci će biti izgubljeni", - "statistics_clear": " Očisti statistiku", "statistics_clear_confirm": "Jeste li sigurni da želite da očistite statistiku?", "statistics_retention_confirm": "Jeste li sigurni da želite da promenite zadržavanje statistike? Ako smanjite vrednost intervala, neki podaci će biti izgubljeni", "statistics_cleared": "Statistika je uspešno očišćena", @@ -476,8 +463,6 @@ "rewrite_domain_name": "Ime domena: dodajte CNAME zapis", "rewrite_A": "<0>A: posebna vrednost, zadrži <0>A records iz apstrima", "rewrite_AAAA": "<0>AAAA: posebna vrednost, zadržite <0>AAAA records iz apstrima", - "disable_ipv6": "Isključi IPv6", - "disable_ipv6_desc": "Ako je ovo uključeno, svi DNS unosi za IPv6 adrese (type AAAA) će biti odbačeni.", "fastest_addr": "Najbrža IP adresa", "autofix_warning_text": "Ako kliknete \"Popravi\", AdGuardHome će konfigurisati vaš sistem da koristi AdGuardHome DNS server.", "autofix_warning_list": "To će izvršiti sledeće zadatke: <0>Deaktiviranje system DNSStubListener <0>Set DNS server address to 127.0.0.1 <0>Replace symbolic link target of /etc/resolv.conf to /run/systemd/resolve/resolv.conf <0>Stop DNSStubListener (reload systemd-resolved service)", @@ -512,7 +497,6 @@ "list_updated": "{{count}} lista ažurirana", "list_updated_plural": "{{count}} lista ažurirano", "dnssec_enable": "Uključi DNSSEC", - "dnssec_enable_desc": "Postavlja DNSSEC zastavicu u odlaznim DNS zahtevima i proverava rezultat (DNSSEC rešavač je potreban)", "validated_with_dnssec": "Potvrđeno sa DNSSEC", "all_queries": "Svi zahtevi", "show_blocked_responses": "Blokirano", @@ -542,7 +526,6 @@ "filter_category_regional": "Region", "filter_category_other": "Ostalo", "filter_category_general_desc": "Lista koja blokira praćenja i reklame na većini uređaja", - "filter_category_security_desc": "Lista specijalizovana za blokiranje štetnog softvera, štetnih i fišing domena", "filter_category_regional_desc": "Lista koja se usredsređuje na regionalne reklame i servere praćenja", "filter_category_other_desc": "Ostale liste blokiranja", "original_response": "Izvorni odgovor", diff --git a/client/src/__locales/sv.json b/client/src/__locales/sv.json index c84bf13204f..107663ead38 100644 --- a/client/src/__locales/sv.json +++ b/client/src/__locales/sv.json @@ -50,7 +50,6 @@ "copyright": "Copyright", "homepage": "Hemsida", "report_an_issue": "Rapportera ett problem", - "privacy_policy": "Integritetspolicy", "enable_protection": "Koppla på skydd", "enabled_protection": "Kopplade på skydd", "disable_protection": "Koppla bort skydd", @@ -76,10 +75,8 @@ "block_domain_use_filters_and_hosts": "Blockera domäner med filter- och värdfiler", "filters_block_toggle_hint": "Du kan ställa in egna blockerings regler i Filterinställningar.", "use_adguard_browsing_sec": "Använd AdGuards webbservice för surfsäkerhet", - "use_adguard_browsing_sec_hint": "AdGuard Home kommer att kontrollera om en domän är svartlistad i webbservicens surfsäkerhet. Med en integritetsvänlig metod görs en API-lookup för att kontrollera : endast en kort prefix i domännamnet SHA256 hash skickas till servern.", "use_adguard_parental": "Använda AdGuards webbservice för föräldrakontroll", "use_adguard_parental_hint": "AdGuard Home kommer att kontrollera domäner för innehåll av vuxenmaterial . Samma integritetsvänliga metod för API-lookup som tillämpas i webbservicens surfsäkerhet används.", - "enforce_safe_search": "Tillämpa Säker surf", "no_servers_specified": "Inga servrar angivna", "general_settings": "Allmänna inställningar", "dns_settings": "DNS-inställningar", @@ -102,7 +99,7 @@ "last_time_updated_table_header": "Uppdaterades senast", "actions_table_header": "Åtgärder", "edit_table_action": "Redigera", - "delete_table_action": "Ta bort", + "delete_table_action": "Radera", "filters_and_hosts_hint": "AdGuard tillämpar grundläggande annonsblockeringsregler och värdfiltersyntaxer", "cancel_btn": "Avbryt", "enter_name_hint": "Skriv in namn", @@ -175,24 +172,19 @@ "install_auth_username": "Användarnamn", "install_auth_password": "Lösenord", "install_auth_confirm": "Bekräfta lösenord", - "install_auth_username_enter": "Skriv in användarnamn", + "install_auth_username_enter": "Ange användarnamn", "install_auth_password_enter": "Skriv in lösenord", "install_step": "Steg", "install_devices_title": "Ställ in dina enheter", "install_devices_desc": "För att kunna använda AdGuard Home måste du ställa in dina enheter för att utnyttja den.", "install_submit_title": "Grattis!", - "install_submit_desc": "Inställningsproceduren är klar och du kan börja använda AdGuard Home.", "install_devices_router": "Router", - "install_devices_router_desc": "Den här anpassningen kommer att automatiskt täcka in alla de enheter som är anslutna till din hemmarouter och du behöver därför inte konfigurera var och en individuellt.", "install_devices_address": "AdGuard Home DNS-server täcker följande adresser", "install_devices_router_list_2": "Leta upp DHCP/DNS-inställningarna. Titta efter DNS-tecken intill ett fält med två eller tre uppsättningar siffror, var och en uppdelade i grupper om fyra med en eller tre siffror.", "install_devices_router_list_3": "Ange serveradressen till ditt AdGuard Home.", "install_devices_windows_list_1": "Öppna Kontrollpanelen via Start eller Windows Sök.", "install_devices_windows_list_2": "Välj Nätverks och delningscenter, Nätverk och Internet.", - "install_devices_windows_list_3": "Leta upp Ändra nätverkskortsalternativ", "install_devices_windows_list_4": "Markera din aktiva anslutning. Högerklicka på den och välj Egenskaper.", - "install_devices_windows_list_5": "Markera Internet Protocol Version 4 (TCP/IP) och klicka på knappen Egenskaper.", - "install_devices_windows_list_6": "Markera Använd följande DNS-serveradresser och skriv in adresserna till ditt AdGuard Home.", "install_devices_macos_list_1": "Klicka på Apple-ikonen och välj Systemalternativ.", "install_devices_macos_list_2": "Klicka på Nätverk.", "install_devices_macos_list_3": "Välj den första anslutningen i listan och klicka på Avancerat.", @@ -201,7 +193,6 @@ "install_devices_android_list_2": "Tryck på Nätverk och Internet, Wi-Fi. Alla tillgängliga nätverk visas i en lista (det går inte all välja egen DNS på mobilnätverk.", "install_devices_android_list_3": "Håll ner på nätverksnamnet som du är ansluten till och välj Ändra nätverk.", "install_devices_android_list_4": "På en del enheter kan du behöva välja Avancerat för att komma åt ytterligare inställningar. För att ändra på DNS-inställningar måste du byta IP-inställning från DHCP till Statisk. På Android Pie väljs Privat DNS på Nätverk och internet.", - "install_devices_android_list_5": "Ändra DNS 1 och DNS 2 till serveradresserna för AdGuard Home.", "install_devices_ios_list_1": "Tryck Inställningar från hemskärmen.", "install_devices_ios_list_2": "Välj Wi_Fi på den vänstra menyn (det går inte att ställa in egen DNS för mobila nätverk).", "install_devices_ios_list_3": "Tryck på namnet på den aktiva anslutningen.", @@ -276,9 +267,7 @@ "access_title": "Åtkomstinställningar", "access_desc": "Här kan du konfigurera åtkomstregler för AdGuard Homes DNS-server.", "access_allowed_title": "Tillåtna klienter", - "access_allowed_desc": "En lista över CIDR eller IP-adresser. Om konfigurerad kommer AdGuard Home endast acceptera förfrågningar från dessa IP-adresser.", "access_disallowed_title": "Otillåtna klienter", - "access_disallowed_desc": "En lista över CIDR eller IP-adresser. Om konfigurerad kommer AdGuard Home inte acceptera förfrågningar från dessa IP-adresser.", "access_blocked_title": "Blockerade domäner", "access_settings_saved": "Åtkomstinställningar sparade", "updates_checked": "Sökning efter uppdateringar genomförd", @@ -305,7 +294,6 @@ "domain": "Domän", "answer": "Svar", "statistics_retention_desc": "Om du minskar intervallet kommer viss data att gå förlorad", - "statistics_clear": " Rensa statistik", "statistics_clear_confirm": "Är du säker på att du vill radera statistiken?", "statistics_retention_confirm": "Är du säker på att du vill ändra retentionstiden för statistik? Om du minskar intervallet kommer viss data att gå förlorad", "statistics_cleared": "Statistiken har rensats", diff --git a/client/src/__locales/th.json b/client/src/__locales/th.json index 720b7959e36..3f26edcbde2 100644 --- a/client/src/__locales/th.json +++ b/client/src/__locales/th.json @@ -54,7 +54,6 @@ "copyright": "ลิขสิทธิ์", "homepage": "หน้าหลัก", "report_an_issue": "รายงานปัญหา", - "privacy_policy": "นโยบายความเป็นส่วนตัว", "enable_protection": "เปิดใช้งานการป้องกัน", "enabled_protection": "เปิดใช้งานการป้องกันแล้ว", "disable_protection": "ปิดใช้งานการป้องกัน", @@ -80,10 +79,8 @@ "block_domain_use_filters_and_hosts": "ปิดกั้นโดเมนโดยใช้ตัวกรองและไฟล์โฮสต์", "filters_block_toggle_hint": "คุณสามารถตั้งค่ากฎการปิดกั้นในการตั้งค่าตัวกรอง", "use_adguard_browsing_sec": "ใช้บริการเว็บการรักษาความปลอดภัยการเรียกดู AdGuard", - "use_adguard_browsing_sec_hint": "AdGuard Home จะตรวจสอบว่าโดเมนอยู่ในรายการที่ไม่อนุญาตโดยเว็บเซอร์วิสความปลอดภัยการสืบค้นหรือไม่ จะใช้ API การค้นหาที่เป็นมิตรกับข้อมูลส่วนบุคคลเพื่อทำการตรวจสอบ: มีการส่งคำนำหน้าสั้น ๆ ของชื่อโดเมน SHA256 แฮชไปยังเซิร์ฟเวอร์", "use_adguard_parental": "ใช้บริการเว็บการควบคุมโดยผู้ปกครองของ AdGuard", "use_adguard_parental_hint": "AdGuard Home จะตรวจสอบว่าโดเมนมีเนื้อหาสำหรับผู้ใหญ่หรือไม่ มันใช้ API ความเป็นส่วนตัวเช่นเดียวกับบริการเว็บการรักษาความปลอดภัยการท่องเว็บ", - "enforce_safe_search": "บังคับใช้การค้นหาที่ปลอดภัย", "no_servers_specified": "ไม่ได้ระบุเซิร์ฟเวอร์", "general_settings": "การตั้งค่าทั่วไป", "dns_settings": "การตั้งค่า DNS", @@ -171,8 +168,6 @@ "blocking_ipv6": "ปิดกั้น IPv6", "form_enter_rate_limit": "ป้อนขีดจำกัดอัตรา", "rate_limit": "จำกัดอัตรา", - "edns_enable": "เปิดใช้งานซับเน็ตไคลเอ็นต์ EDNS", - "edns_cs_desc": "หากเปิดใช้งาน AdGuard Home จะส่งซับเน็ตของไคลเอนต์ไปยังเซิร์ฟเวอร์ DNS", "blocking_ipv4_desc": "ที่อยู่ IP ที่จะส่งคืนสำหรับคำขอที่ถูกปิดกั้น", "blocking_ipv6_desc": "ที่อยู่ IP ที่จะส่งคืนสำหรับคำขอ AAAA ที่ถูกปิดกั้น", "blocking_mode_nxdomain": "NXDOMAIN: ตอบสนองด้วยรหัส NXDOMAIN", @@ -203,18 +198,13 @@ "install_devices_title": "กำหนดค่าอุปกรณ์ของคุณ", "install_devices_desc": "ในการเริ่มใช้งาน AdGuard Home คุณต้องกำหนดค่าอุปกรณ์ของคุณเพื่อใช้งาน", "install_submit_title": "ยินดีด้วย!", - "install_submit_desc": "ขั้นตอนการตั้งค่าเสร็จสิ้นและคุณพร้อมที่จะเริ่มใช้งาน AdGuard Home", "install_devices_router": "เราเตอร์", - "install_devices_router_desc": "การตั้งค่านี้จะครอบคลุมอุปกรณ์ทั้งหมดที่เชื่อมต่อกับเราเตอร์ที่บ้านของคุณโดยอัตโนมัติและคุณไม่จำเป็นต้องกำหนดค่าแต่ละอุปกรณ์ด้วยตนเอง", "install_devices_address": "เซิร์ฟเวอร์ DNS ของ AdGuard Home กำลังรับฟังตามที่อยู่ต่อไปนี้", "install_devices_router_list_2": "ค้นหาการตั้งค่า DHCP/DNS ค้นหาตัวอักษร DNS ที่อยู่ถัดจากช่องที่อนุญาตให้มีตัวเลขสองหรือสามชุดโดยแต่ละกลุ่มแบ่งออกเป็นสี่กลุ่มหนึ่งถึงสามหลัก", "install_devices_router_list_3": "ป้อนที่อยู่เซิร์ฟเวอร์ AdGuard Home ของคุณที่นั่น", "install_devices_windows_list_1": "เปิด Control Panel โดยใช้ Start menu หรือ Windows search", "install_devices_windows_list_2": "ไปที่หมวด Network and Internet แล้วเลือก Network and Sharing Center", - "install_devices_windows_list_3": "ทางด้านซ้ายจะมีคำว่า Change adapter settings ให้กดเข้าไป", "install_devices_windows_list_4": "เลือกการเชื่อมต่อที่ใช้งานอยู่ คลิกขวาแล้วเลือก Properties", - "install_devices_windows_list_5": "ค้นหา Internet Protocol Version 4 (TCP/IP) แล้วคลิก Properties อีกครั้ง", - "install_devices_windows_list_6": "ค้นหา DNS server addresses ให้ทำการกรอกหมายเลข AdGuard Home ลงไปในช่อง", "install_devices_macos_list_1": "คลิกโลโก้แอปเปิ้ลแล้วกด System Preferences", "install_devices_macos_list_2": "คลิก Network", "install_devices_macos_list_3": "เลือกการเชื่อมต่อแล้วคลิก Advanced", @@ -223,7 +213,6 @@ "install_devices_android_list_2": "เลือกเมนู Wi-Fi แล้วค้นหา Wi-Fi ที่จะเชื่อมต่อ (ไม่สารถตั้งค่ากับเน็ตมือถือได้)", "install_devices_android_list_3": "แตะชื่อWi-Fi ที่จะเชื่อมต่อค้างไว้(บางรุ่นให้เลื่อนจอลงไปล่างสุด) เลือกการตั้งค่าเพิ่มเติม", "install_devices_android_list_4": "ในอุปกรณ์บางอย่างคุณอาจต้องทำเครื่องหมายในช่องสำหรับขั้นสูงเพื่อดูการตั้งค่าเพิ่มเติม หากต้องการปรับการตั้งค่า Android DNS ของคุณคุณจะต้องเปลี่ยนการตั้งค่า IP จาก DHCP เป็นแบบคงที่", - "install_devices_android_list_5": "เปลี่ยนการตั้งค่า DNS ที่ 1 และค่า DNS 2 ถึงที่อยู่เซิร์ฟเวอร์ AdGuard Home ของคุณ", "install_devices_ios_list_1": "เลือกการตั้งค่า", "install_devices_ios_list_2": "เลือก Wi-Fi ด้านซ้าย (ไม่สามรถใช้งานได้กับดาต้ามือถือ)", "install_devices_ios_list_3": "เลือกชื่อที่จะเชื่อมต่อ", @@ -302,9 +291,7 @@ "access_title": "เข้าถึงการตั้งค่า", "access_desc": "ที่นี่คุณสามารถกำหนดค่ากฎการเข้าถึงสำหรับเซิร์ฟเวอร์ AdGuard Home DNS", "access_allowed_title": "ลูกค้าที่ได้รับอนุญาต", - "access_allowed_desc": "รายการ CIDR หรือที่อยู่ IP หากกำหนดค่า AdGuard Home จะยอมรับคำขอจากที่อยู่ IP เหล่านี้เท่านั้น", "access_disallowed_title": "ลูกค้าไม่ได้รับอนุญาต", - "access_disallowed_desc": "รายการ CIDR หรือที่อยู่ IP หากกำหนดค่าไว้ AdGuard Home จะส่งคำขอจากที่อยู่ IP เหล่านี้", "access_blocked_title": "โดเมนที่ถูกปิดกั้น", "check_updates_now": "ตรวจสอบการปรับปรุง", "setup_dns_privacy_other_title": "การใช้งานอื่น ๆ", @@ -343,7 +330,6 @@ "statistics_configuration": "การกำหนดค่าสถิติ", "statistics_retention": "การเก็บรักษาสถิติ", "statistics_retention_desc": "หากคุณลดค่าช่วงเวลาข้อมูลบางอย่างจะหายไป", - "statistics_clear": " ล้างค่าสถิติ", "statistics_clear_confirm": "คุณแน่ใจหรือไม่ว่าต้องการล้างสถิติ?", "statistics_retention_confirm": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนการเก็บรักษาสถิติ? หากคุณลดค่าช่วงเวลา ข้อมูลบางอย่างจะหายไป", "statistics_cleared": "สถิติได้ถูกล้างเรียบร้อยแล้ว", @@ -373,8 +359,6 @@ "domain_desc": "ป้อนชื่อโดเมนหรือไวด์การ์ดที่คุณต้องการเขียนใหม่", "example_rewrite_domain": "เขียนคำตอบซ้ำสำหรับชื่อโดเมนนี้เท่านั้น", "example_rewrite_wildcard": "เขียนคำตอบใหม่ทั้งหมดสำหรับ <0>example.org โดเมนย่อย", - "disable_ipv6": "ปิดใช้งาน IPv6", - "disable_ipv6_desc": "หากเปิดใช้งานคุณสมบัตินี้การสืบค้น DNS ทั้งหมดสำหรับที่อยู่ IPv6 (ประเภท AAAA) จะถูกทิ้ง", "autofix_warning_text": "หากคุณคลิก \"แก้ไข\" AdGuardHome จะกำหนดค่าระบบของคุณเพื่อใช้เซิร์ฟเวอร์ AdGuardHome", "autofix_warning_list": "มันจะทำงานเหล่านี้: <0>ปิดการใช้งานระบบ DNSStubListener <0>ตั้งที่อยู่เซิร์ฟเวอร์ DNS เป็น 127.0.0.1 <0>แทนที่เป้าหมายลิงก์สัญลักษณ์ของ /etc/resolv.conf เป็น /run/systemd/resolve/resolv.conf <0>หยุด DNSStubListener (โหลดบริการแก้ไขระบบซ้ำ)", "autofix_warning_result": "ดังนั้น AdGuardHome จะประมวลผลคำขอ DNS ทั้งหมดจากระบบของคุณตามค่าเริ่มต้น", diff --git a/client/src/__locales/zh-hk.json b/client/src/__locales/zh-hk.json index bed3f38e9f1..c89714a502d 100644 --- a/client/src/__locales/zh-hk.json +++ b/client/src/__locales/zh-hk.json @@ -98,7 +98,6 @@ "copyright": "版權", "homepage": "首頁", "report_an_issue": "回報問題", - "privacy_policy": "隱私政策", "enable_protection": "開啟保護", "enabled_protection": "已開啟保護", "disable_protection": "停用防護", @@ -326,10 +325,7 @@ "install_devices_router_list_4": "您無法於某些類型的路由器上設定自訂的 DNS 伺服器。在這種情況下,如果您設置 AdGuard Home 作為 <0>DHCP 伺服器,其可能有所幫助。否則,您應搜尋有關如何為您的特定路由器型號自訂 DNS 伺服器之用法說明。", "install_devices_windows_list_1": "在「開始列」或「Windows 搜尋」開啟控制台。", "install_devices_windows_list_2": "點擊「網路和網際網路」,接著點選「網路和共用中心」。", - "install_devices_windows_list_3": "在畫面左側點擊「變更介面卡設定」。", "install_devices_windows_list_4": "對著您正在使用的連線點擊右鍵,選擇「內容」。", - "install_devices_windows_list_5": "選擇清單中的「網際網路通訊協定第 4 版(TCP/IPv4)」,再點擊「內容」。", - "install_devices_windows_list_6": "點擊「使用下列的 DNS 伺服器位址」,接著輸入您的 AdGuard Home 伺服器位址。", "install_devices_macos_list_1": "點擊左上角的 Apple Icon,接著點擊「系統偏好設定」。", "install_devices_macos_list_2": "點擊「網路」。", "install_devices_macos_list_3": "選擇清單中第一個連線接著點選「進階設定」。", @@ -499,7 +495,6 @@ "statistics_configuration": "統計資料設定", "statistics_retention": "統計資料保留時間", "statistics_retention_desc": "如果您縮短期限部分資料可能將會遺失", - "statistics_clear": " 清除統計資料", "statistics_clear_confirm": "您確定要清除統計資料嗎?", "statistics_retention_confirm": "您確定要更改統計資料保存時間嗎?如果您縮短期限部分資料可能將會遺失", "statistics_cleared": "已清除統計資料", @@ -597,7 +592,6 @@ "cache_ttl_min_override_desc": "快取 DNS 回應時,延長從上游伺服器收到的 TTL 值 (秒)", "cache_ttl_max_override_desc": "設定 DNS 快取條目的最大 TTL 值(秒)", "ttl_cache_validation": "最小快取 TTL 值必須小於或等於最大值", - "cache_optimistic": "優化的", "cache_optimistic_desc": "即使條目已過期,也讓 AdGuard Home 從快取中回應,並嘗試刷新它們。", "filter_category_general": "一般", "filter_category_security": "安全性", diff --git a/client/src/actions/index.js b/client/src/actions/index.js index c634d630c5f..5fd12b025af 100644 --- a/client/src/actions/index.js +++ b/client/src/actions/index.js @@ -451,7 +451,6 @@ export const findActiveDhcp = (name) => async (dispatch, getState) => { dispatch(addErrorToast({ error: 'dhcp_static_ip_error' })); } - if (isError) { dispatch(addErrorToast({ error: 'dhcp_error' })); } diff --git a/client/src/components/App/index.js b/client/src/components/App/index.js index 1ca18e08856..6d65ccb8cc4 100644 --- a/client/src/components/App/index.js +++ b/client/src/components/App/index.js @@ -39,7 +39,6 @@ import CustomRules from '../../containers/CustomRules'; import Services from '../Filters/Services'; import Logs from '../Logs'; - const ROUTES = [ { path: MENU_URLS.root, diff --git a/client/src/components/Dashboard/DomainCell.js b/client/src/components/Dashboard/DomainCell.js index fbbb8615955..699a695d808 100644 --- a/client/src/components/Dashboard/DomainCell.js +++ b/client/src/components/Dashboard/DomainCell.js @@ -17,7 +17,6 @@ const renderLink = ({ url, name }) => {name} ; - const getTrackerInfo = (trackerData) => [{ key: 'name_table_header', value: trackerData, diff --git a/client/src/components/Settings/Dhcp/Interfaces.js b/client/src/components/Settings/Dhcp/Interfaces.js index d2760e3ddfd..2f16fd3133a 100644 --- a/client/src/components/Settings/Dhcp/Interfaces.js +++ b/client/src/components/Settings/Dhcp/Interfaces.js @@ -20,7 +20,6 @@ const renderInterfaces = (interfaces) => Object.keys(interfaces) return ; }); - const getInterfaceValues = ({ gateway_ip, hardware_address, diff --git a/client/src/components/Settings/Encryption/Form.js b/client/src/components/Settings/Encryption/Form.js index 77c2caef859..86eb08115e1 100644 --- a/client/src/components/Settings/Encryption/Form.js +++ b/client/src/components/Settings/Encryption/Form.js @@ -18,7 +18,7 @@ import i18n from '../../../i18n'; import KeyStatus from './KeyStatus'; import CertificateStatus from './CertificateStatus'; import { - DNS_OVER_QUIC_PORT, DNS_OVER_TLS_PORT, FORM_NAME, STANDARD_HTTPS_PORT, ENCRYPTION_SOURCE + DNS_OVER_QUIC_PORT, DNS_OVER_TLS_PORT, FORM_NAME, STANDARD_HTTPS_PORT, ENCRYPTION_SOURCE, } from '../../../helpers/constants'; const validate = (values) => { @@ -46,6 +46,7 @@ const clearFields = (change, setTlsConfig, t) => { server_name: '', force_https: false, enabled: false, + use_saved_key: false, }; // eslint-disable-next-line no-alert if (window.confirm(t('encryption_reset'))) { @@ -350,24 +351,24 @@ let Form = (props) => { /> )} {privateKeySource === ENCRYPTION_SOURCE.CONTENT && [ -
- { - if (event.target.checked) { - change("private_key", "") - } - handleChange && handleChange(event) - }} - /> -
, + name="use_saved_key" + type="checkbox" + className="form__group form__group--settings mb-2" + component={CheckboxField} + disabled={!isEnabled} + placeholder={t('use_saved_key')} + onChange={(event) => { + if (event.target.checked) { + change('private_key', ''); + } + if (handleChange) { + handleChange(event); + } + }} + />, { className="form-control form-control--textarea" placeholder={t('encryption_key_input')} onChange={handleChange} - disabled={!isEnabled || useSavedKey} - /> + disabled={!isEnabled || useSavedKey} + />, ]}
@@ -466,7 +467,7 @@ Form = connect((state) => { privateKeyPath, certificateSource, privateKeySource, - useSavedKey + useSavedKey, }; })(Form); diff --git a/client/src/components/Settings/Encryption/index.js b/client/src/components/Settings/Encryption/index.js index 37f66ad4ada..262579c7045 100644 --- a/client/src/components/Settings/Encryption/index.js +++ b/client/src/components/Settings/Encryption/index.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import debounce from 'lodash/debounce'; -import { DEBOUNCE_TIMEOUT, ENCRYPTION_SOURCE } from '../../../helpers/constants'; +import { DEBOUNCE_TIMEOUT, ENCRYPTION_SOURCE, USE_SAVED_PRIVATE_KEY } from '../../../helpers/constants'; import Form from './Form'; import Card from '../../ui/Card'; import PageTitle from '../../ui/PageTitle'; @@ -29,23 +29,28 @@ class Encryption extends Component { }, DEBOUNCE_TIMEOUT); getInitialValues = (data) => { - const { certificate_chain, private_key, use_saved_key } = data; + const { certificate_chain, private_key } = data; const certificate_source = certificate_chain ? ENCRYPTION_SOURCE.CONTENT : ENCRYPTION_SOURCE.PATH; - const key_source = private_key || use_saved_key + const key_source = private_key ? ENCRYPTION_SOURCE.CONTENT : ENCRYPTION_SOURCE.PATH; + const use_saved_key = private_key === USE_SAVED_PRIVATE_KEY; return { ...data, certificate_source, key_source, + use_saved_key, + private_key: use_saved_key ? '' : private_key, }; }; getSubmitValues = (values) => { - const { certificate_source, key_source, ...config } = values; + const { + certificate_source, key_source, use_saved_key, ...config + } = values; if (certificate_source === ENCRYPTION_SOURCE.PATH) { config.certificate_chain = ''; @@ -53,10 +58,14 @@ class Encryption extends Component { config.certificate_path = ''; } - if (values.key_source === ENCRYPTION_SOURCE.PATH) { + if (key_source === ENCRYPTION_SOURCE.PATH) { config.private_key = ''; } else { config.private_key_path = ''; + + if (use_saved_key) { + config.private_key = USE_SAVED_PRIVATE_KEY; + } } return config; @@ -75,7 +84,6 @@ class Encryption extends Component { private_key, certificate_path, private_key_path, - use_saved_key } = encryption; const initialValues = this.getInitialValues({ @@ -89,7 +97,6 @@ class Encryption extends Component { private_key, certificate_path, private_key_path, - use_saved_key }); return ( diff --git a/client/src/helpers/constants.js b/client/src/helpers/constants.js index 0e9682f7e87..b8ca0273798 100644 --- a/client/src/helpers/constants.js +++ b/client/src/helpers/constants.js @@ -650,3 +650,5 @@ export const MOBILE_CONFIG_LINKS = { DOT: 'apple/dot.mobileconfig', DOH: 'apple/doh.mobileconfig', }; + +export const USE_SAVED_PRIVATE_KEY = 'use_saved'; diff --git a/client/src/helpers/twosky.js b/client/src/helpers/twosky.js index d9534ba698e..29583d1f472 100644 --- a/client/src/helpers/twosky.js +++ b/client/src/helpers/twosky.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/no-extraneous-dependencies import twosky from 'MainRoot/.twosky.json'; export const { diff --git a/internal/home/tls.go b/internal/home/tls.go index 091b0168cfa..bb16e740db7 100644 --- a/internal/home/tls.go +++ b/internal/home/tls.go @@ -36,6 +36,10 @@ type TLSMod struct { conf tlsConfigSettings } +const ( + useSavedPrivateKey = "use_saved" +) + // Create TLS module func tlsCreate(conf tlsConfigSettings) *TLSMod { t := &TLSMod{} @@ -210,26 +214,19 @@ type tlsConfigStatus struct { // field ordering is important -- yaml fields will mirror ordering from here type tlsConfig struct { - tlsConfigStatus `json:",inline"` - tlsConfigSettingsWithKey `json:",inline"` -} - -type tlsConfigSettingsWithKey struct { + tlsConfigStatus `json:",inline"` tlsConfigSettings `json:",inline"` - // If private key saved as string, we set this flag to true and omit it from answer. - UseSavedKey bool `json:"use_saved_key,inline"` } func (t *TLSMod) handleTLSStatus(w http.ResponseWriter, _ *http.Request) { t.confLock.Lock() data := tlsConfig{ - tlsConfigSettingsWithKey: tlsConfigSettingsWithKey{ - tlsConfigSettings: t.conf, - }, - tlsConfigStatus: t.status, + tlsConfigStatus: t.status, + tlsConfigSettings: t.conf, } t.confLock.Unlock() - marshalTLS(w, data) + hidePrivateKey := data.PrivateKey != "" + marshalTLS(w, data, hidePrivateKey) } func (t *TLSMod) handleTLSValidate(w http.ResponseWriter, r *http.Request) { @@ -239,7 +236,8 @@ func (t *TLSMod) handleTLSValidate(w http.ResponseWriter, r *http.Request) { return } - if setts.UseSavedKey { + hidePrivateKey := setts.PrivateKey == useSavedPrivateKey + if hidePrivateKey { setts.PrivateKey = t.conf.PrivateKey } @@ -249,15 +247,15 @@ func (t *TLSMod) handleTLSValidate(w http.ResponseWriter, r *http.Request) { } status := tlsConfigStatus{} - if tlsLoadConfig(&setts.tlsConfigSettings, &status) { + if tlsLoadConfig(&setts, &status) { status = validateCertificates(string(setts.CertificateChainData), string(setts.PrivateKeyData), setts.ServerName) } data := tlsConfig{ - tlsConfigSettingsWithKey: setts, - tlsConfigStatus: status, + tlsConfigSettings: setts, + tlsConfigStatus: status, } - marshalTLS(w, data) + marshalTLS(w, data, hidePrivateKey) } func (t *TLSMod) setConfig(newConf tlsConfigSettings, status tlsConfigStatus) (restartHTTPS bool) { @@ -302,7 +300,8 @@ func (t *TLSMod) handleTLSConfigure(w http.ResponseWriter, r *http.Request) { return } - if data.UseSavedKey { + hidePrivateKey := data.PrivateKey == useSavedPrivateKey + if hidePrivateKey { data.PrivateKey = t.conf.PrivateKey } @@ -312,19 +311,19 @@ func (t *TLSMod) handleTLSConfigure(w http.ResponseWriter, r *http.Request) { } status := tlsConfigStatus{} - if !tlsLoadConfig(&data.tlsConfigSettings, &status) { + if !tlsLoadConfig(&data, &status) { data2 := tlsConfig{ - tlsConfigSettingsWithKey: data, - tlsConfigStatus: t.status, + tlsConfigSettings: data, + tlsConfigStatus: t.status, } - marshalTLS(w, data2) + marshalTLS(w, data2, hidePrivateKey) return } status = validateCertificates(string(data.CertificateChainData), string(data.PrivateKeyData), data.ServerName) - restartHTTPS := t.setConfig(data.tlsConfigSettings, status) + restartHTTPS := t.setConfig(data, status) t.setCertFileTime() onConfigModified() @@ -336,11 +335,11 @@ func (t *TLSMod) handleTLSConfigure(w http.ResponseWriter, r *http.Request) { } data2 := tlsConfig{ - tlsConfigSettingsWithKey: data, - tlsConfigStatus: t.status, + tlsConfigSettings: data, + tlsConfigStatus: t.status, } - marshalTLS(w, data2) + marshalTLS(w, data2, hidePrivateKey) if f, ok := w.(http.Flusher); ok { f.Flush() } @@ -351,7 +350,7 @@ func (t *TLSMod) handleTLSConfigure(w http.ResponseWriter, r *http.Request) { // goroutine due to the same reason. if restartHTTPS { go func() { - Context.web.TLSConfigChanged(context.Background(), data.tlsConfigSettings) + Context.web.TLSConfigChanged(context.Background(), data) }() } } @@ -530,8 +529,8 @@ func parsePrivateKey(der []byte) (crypto.PrivateKey, string, error) { } // unmarshalTLS handles base64-encoded certificates transparently -func unmarshalTLS(r *http.Request) (tlsConfigSettingsWithKey, error) { - data := tlsConfigSettingsWithKey{} +func unmarshalTLS(r *http.Request) (tlsConfigSettings, error) { + data := tlsConfigSettings{} err := json.NewDecoder(r.Body).Decode(&data) if err != nil { return data, fmt.Errorf("failed to parse new TLS config json: %w", err) @@ -566,7 +565,7 @@ func unmarshalTLS(r *http.Request) (tlsConfigSettingsWithKey, error) { return data, nil } -func marshalTLS(w http.ResponseWriter, data tlsConfig) { +func marshalTLS(w http.ResponseWriter, data tlsConfig, hidePrivateKey bool) { w.Header().Set("Content-Type", "application/json") if data.CertificateChain != "" { @@ -574,9 +573,11 @@ func marshalTLS(w http.ResponseWriter, data tlsConfig) { data.CertificateChain = encoded } - if data.PrivateKey != "" { - data.UseSavedKey = true - data.PrivateKey = "" + if hidePrivateKey { + data.PrivateKey = base64.StdEncoding.EncodeToString([]byte(useSavedPrivateKey)) + } else if data.PrivateKey != "" { + encoded := base64.StdEncoding.EncodeToString([]byte(data.PrivateKey)) + data.PrivateKey = encoded } err := json.NewEncoder(w).Encode(data) diff --git a/openapi/CHANGELOG.md b/openapi/CHANGELOG.md index 9a70bb9aeef..a6385e6bd37 100644 --- a/openapi/CHANGELOG.md +++ b/openapi/CHANGELOG.md @@ -4,6 +4,13 @@ ## v0.107: API changes +### New possible value of `"private_key"` field in `TlsConfig` + +* The value of `"private_key"` field in `POST /control/tls/configure`, +`POST /control/tls/validate` and `GET /control/tls/status` methods +could now take the value of `use_saved` if the private key was previosly +saved as string. + ### The new field `"cache_optimistic"` in DNS configuration * The new optional field `"cache_optimistic"` in `POST /control/dns_config` diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 3dcbacfa675..7b2d36bfd08 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -2074,7 +2074,7 @@ 'description': 'Base64 string with PEM-encoded certificates chain' 'private_key': 'type': 'string' - 'description': 'Base64 string with PEM-encoded private key' + 'description': 'Base64 string with PEM-encoded private key or `use_saved` constant if the private key was previosly saved as string' 'certificate_path': 'type': 'string' 'description': 'Path to certificate file'