diff --git a/.version b/.version
index ea55a03f..edcfe40d 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-2.13.7
+2.14.0
diff --git a/README.md b/README.md
index e6f7c056..ae162fbc 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
@@ -36,6 +36,10 @@ so that the barrier for entry here is low.
- Advanced Nginx configuration available for super users
- User management, permissions and audit log
+::: warning
+`armv7` is no longer supported in version 2.14+. This is due to Nodejs dropping support for armhf. Please
+use the `2.13.7` image tag if this applies to you.
+:::
## Hosting your home network
@@ -43,16 +47,15 @@ I won't go in to too much detail here but here are the basics for someone new to
1. Your home router will have a Port Forwarding section somewhere. Log in and find it
2. Add port forwarding for port 80 and 443 to the server hosting this project
-3. Configure your domain name details to point to your home, either with a static ip or a service like DuckDNS or [Amazon Route53](https://github.com/jc21/route53-ddns)
+3. Configure your domain name details to point to your home, either with a static ip or a service like
+ - DuckDNS
+ - [Amazon Route53](https://github.com/jc21/route53-ddns)
+ - [Cloudflare](https://github.com/jc21/cloudflare-ddns)
4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services
## Quick Setup
-1. Install Docker and Docker-Compose
-
-- [Docker Install documentation](https://docs.docker.com/install/)
-- [Docker-Compose Install documentation](https://docs.docker.com/compose/install/)
-
+1. [Install Docker](https://docs.docker.com/install/)
2. Create a docker-compose.yml file similar to this:
```yml
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 02288db5..8f592f66 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -23,6 +23,14 @@
"credentials": "dns_aliyun_access_key = 12345678\ndns_aliyun_access_key_secret = 1234567890abcdef1234567890abcdef",
"full_plugin_name": "dns-aliyun"
},
+ "arvan": {
+ "name": "ArvanCloud",
+ "package_name": "certbot-dns-arvan",
+ "version": ">=0.1.0",
+ "dependencies": "",
+ "credentials": "dns_arvan_key = Apikey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
+ "full_plugin_name": "dns-arvan"
+ },
"azure": {
"name": "Azure",
"package_name": "certbot-dns-azure",
diff --git a/backend/config/sqlite-test-db.json b/backend/config/sqlite-test-db.json
index ad548865..b0e87075 100644
--- a/backend/config/sqlite-test-db.json
+++ b/backend/config/sqlite-test-db.json
@@ -2,7 +2,7 @@
"database": {
"engine": "knex-native",
"knex": {
- "client": "sqlite3",
+ "client": "better-sqlite3",
"connection": {
"filename": "/app/config/mydb.sqlite"
},
diff --git a/backend/internal/2fa.js b/backend/internal/2fa.js
index 4251520c..43307e02 100644
--- a/backend/internal/2fa.js
+++ b/backend/internal/2fa.js
@@ -161,9 +161,12 @@ const internal2fa = {
}
const result = await verify({
- token: code,
- secret: auth.meta.totp_secret,
- });
+ token: code,
+ secret: auth.meta.totp_secret,
+ guardrails: createGuardrails({
+ MIN_SECRET_BYTES: 10,
+ }),
+ });
if (!result.valid) {
throw new errs.AuthError("Invalid verification code");
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index bde1bdca..d54e941d 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -630,7 +630,7 @@ const internalCertificate = {
* @param {String} privateKey This is the entire key contents as a string
*/
checkPrivateKey: async (privateKey) => {
- const filepath = await tempWrite(privateKey, "/tmp");
+ const filepath = await tempWrite(privateKey);
const failTimeout = setTimeout(() => {
throw new error.ValidationError(
"Result Validation Error: Validation timed out. This could be due to the key being passphrase-protected.",
@@ -660,8 +660,8 @@ const internalCertificate = {
* @param {Boolean} [throwExpired] Throw when the certificate is out of date
*/
getCertificateInfo: async (certificate, throwExpired) => {
+ const filepath = await tempWrite(certificate);
try {
- const filepath = await tempWrite(certificate, "/tmp");
const certData = await internalCertificate.getCertificateInfoFromFile(filepath, throwExpired);
fs.unlinkSync(filepath);
return certData;
diff --git a/backend/migrations/20260131163528_trust_forwarded_proto.js b/backend/migrations/20260131163528_trust_forwarded_proto.js
new file mode 100644
index 00000000..546cbca6
--- /dev/null
+++ b/backend/migrations/20260131163528_trust_forwarded_proto.js
@@ -0,0 +1,43 @@
+import { migrate as logger } from "../logger.js";
+
+const migrateName = "trust_forwarded_proto";
+
+/**
+ * Migrate
+ *
+ * @see http://knexjs.org/#Schema
+ *
+ * @param {Object} knex
+ * @returns {Promise}
+ */
+const up = function (knex) {
+ logger.info(`[${migrateName}] Migrating Up...`);
+
+ return knex.schema
+ .alterTable('proxy_host', (table) => {
+ table.tinyint('trust_forwarded_proto').notNullable().defaultTo(0);
+ })
+ .then(() => {
+ logger.info(`[${migrateName}] proxy_host Table altered`);
+ });
+};
+
+/**
+ * Undo Migrate
+ *
+ * @param {Object} knex
+ * @returns {Promise}
+ */
+const down = function (knex) {
+ logger.info(`[${migrateName}] Migrating Down...`);
+
+ return knex.schema
+ .alterTable('proxy_host', (table) => {
+ table.dropColumn('trust_forwarded_proto');
+ })
+ .then(() => {
+ logger.info(`[${migrateName}] proxy_host Table altered`);
+ });
+};
+
+export { up, down };
\ No newline at end of file
diff --git a/backend/models/proxy_host.js b/backend/models/proxy_host.js
index b6ce6361..e8f447c8 100644
--- a/backend/models/proxy_host.js
+++ b/backend/models/proxy_host.js
@@ -21,6 +21,7 @@ const boolFields = [
"enabled",
"hsts_enabled",
"hsts_subdomains",
+ "trust_forwarded_proto",
];
class ProxyHost extends Model {
diff --git a/backend/package.json b/backend/package.json
index 9381b272..89f21c55 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -13,7 +13,7 @@
},
"dependencies": {
"@apidevtools/json-schema-ref-parser": "^14.1.1",
- "ajv": "^8.17.1",
+ "ajv": "^8.18.0",
"archiver": "^7.0.1",
"batchflow": "^0.4.0",
"bcrypt": "^6.0.0",
@@ -28,10 +28,10 @@
"liquidjs": "10.24.0",
"lodash": "^4.17.23",
"moment": "^2.30.1",
- "mysql2": "^3.16.3",
+ "mysql2": "^3.17.1",
"node-rsa": "^1.1.1",
"objection": "3.1.5",
- "otplib": "^13.2.1",
+ "otplib": "^13.3.0",
"path": "^0.12.7",
"pg": "^8.18.0",
"proxy-agent": "^6.5.0",
diff --git a/backend/schema/components/proxy-host-object.json b/backend/schema/components/proxy-host-object.json
index 464b188e..3ac64621 100644
--- a/backend/schema/components/proxy-host-object.json
+++ b/backend/schema/components/proxy-host-object.json
@@ -22,7 +22,8 @@
"enabled",
"locations",
"hsts_enabled",
- "hsts_subdomains"
+ "hsts_subdomains",
+ "trust_forwarded_proto"
],
"properties": {
"id": {
@@ -141,6 +142,11 @@
"hsts_subdomains": {
"$ref": "../common.json#/properties/hsts_subdomains"
},
+ "trust_forwarded_proto":{
+ "type": "boolean",
+ "description": "Trust the forwarded headers",
+ "example": false
+ },
"certificate": {
"oneOf": [
{
diff --git a/backend/schema/paths/nginx/proxy-hosts/get.json b/backend/schema/paths/nginx/proxy-hosts/get.json
index 7f8cb148..301e28bf 100644
--- a/backend/schema/paths/nginx/proxy-hosts/get.json
+++ b/backend/schema/paths/nginx/proxy-hosts/get.json
@@ -58,7 +58,8 @@
"enabled": true,
"locations": [],
"hsts_enabled": false,
- "hsts_subdomains": false
+ "hsts_subdomains": false,
+ "trust_forwarded_proto": false
}
]
}
diff --git a/backend/schema/paths/nginx/proxy-hosts/hostID/get.json b/backend/schema/paths/nginx/proxy-hosts/hostID/get.json
index 351451c4..2e677fed 100644
--- a/backend/schema/paths/nginx/proxy-hosts/hostID/get.json
+++ b/backend/schema/paths/nginx/proxy-hosts/hostID/get.json
@@ -56,6 +56,7 @@
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false,
+ "trust_forwarded_proto": false,
"owner": {
"id": 1,
"created_on": "2025-10-28T00:50:24.000Z",
diff --git a/backend/schema/paths/nginx/proxy-hosts/hostID/put.json b/backend/schema/paths/nginx/proxy-hosts/hostID/put.json
index 7ae60e1a..fc319845 100644
--- a/backend/schema/paths/nginx/proxy-hosts/hostID/put.json
+++ b/backend/schema/paths/nginx/proxy-hosts/hostID/put.json
@@ -56,6 +56,9 @@
"hsts_subdomains": {
"$ref": "../../../../components/proxy-host-object.json#/properties/hsts_subdomains"
},
+ "trust_forwarded_proto": {
+ "$ref": "../../../../components/proxy-host-object.json#/properties/trust_forwarded_proto"
+ },
"http2_support": {
"$ref": "../../../../components/proxy-host-object.json#/properties/http2_support"
},
@@ -122,6 +125,7 @@
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false,
+ "trust_forwarded_proto": false,
"owner": {
"id": 1,
"created_on": "2025-10-28T00:50:24.000Z",
diff --git a/backend/schema/paths/nginx/proxy-hosts/post.json b/backend/schema/paths/nginx/proxy-hosts/post.json
index 77d772e9..28ddad8f 100644
--- a/backend/schema/paths/nginx/proxy-hosts/post.json
+++ b/backend/schema/paths/nginx/proxy-hosts/post.json
@@ -48,6 +48,9 @@
"hsts_subdomains": {
"$ref": "../../../components/proxy-host-object.json#/properties/hsts_subdomains"
},
+ "trust_forwarded_proto": {
+ "$ref": "../../../components/proxy-host-object.json#/properties/trust_forwarded_proto"
+ },
"http2_support": {
"$ref": "../../../components/proxy-host-object.json#/properties/http2_support"
},
@@ -119,6 +122,7 @@
"locations": [],
"hsts_enabled": false,
"hsts_subdomains": false,
+ "trust_forwarded_proto": false,
"certificate": null,
"owner": {
"id": 1,
diff --git a/backend/templates/_forced_ssl.conf b/backend/templates/_forced_ssl.conf
index 7fade20c..886e866e 100644
--- a/backend/templates/_forced_ssl.conf
+++ b/backend/templates/_forced_ssl.conf
@@ -1,6 +1,11 @@
{% if certificate and certificate_id > 0 -%}
{% if ssl_forced == 1 or ssl_forced == true %}
# Force SSL
+ {% if trust_forwarded_proto == true %}
+ set $trust_forwarded_proto "T";
+ {% else %}
+ set $trust_forwarded_proto "F";
+ {% endif %}
include conf.d/include/force-ssl.conf;
{% endif %}
{% endif %}
\ No newline at end of file
diff --git a/backend/yarn.lock b/backend/yarn.lock
index 47954da1..6c146b6e 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -132,50 +132,50 @@
mkdirp "^1.0.4"
rimraf "^3.0.2"
-"@otplib/core@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/core/-/core-13.2.1.tgz#83449322a390b6b4c045b2e799cbd1f7718f1f64"
- integrity sha512-IyfHvYNCyipDxhmJdcUUvUeT3Hz84/GgM6G2G6BTEmnAKPzNA7U0kYGkxKZWY9h23W94RJk4qiClJRJN5zKGvg==
+"@otplib/core@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/core/-/core-13.3.0.tgz#7f037af6cc5907c2cff9cf6092952088a0ce5a6e"
+ integrity sha512-pnQDOuCmFVeF/XnboJq9TOJgLoo2idNPJKMymOF8vGqJJ+ReKRYM9bUGjNPRWC0tHjMwu1TXbnzyBp494JgRag==
-"@otplib/hotp@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/hotp/-/hotp-13.2.1.tgz#6149c877e5a51fd1c527ada535fe75ca4f525eee"
- integrity sha512-iRKqvj0TnemtXXtEswzBX50Z0yMNa0lH9PSdr5N4CJc1mDEuUmFFZQqnu3PfA3fPd3WeAU+mHgmK/xq18+K1QA==
+"@otplib/hotp@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/hotp/-/hotp-13.3.0.tgz#135e45c6350ae60bbc1170a1801a6100e49794b8"
+ integrity sha512-XJMZGz2bg4QJwK7ulvl1GUI2VMn/flaIk/E/BTKAejHsX2kUtPF1bRhlZ2+elq8uU5Fs9Z9FHcQK2CPZNQbbUQ==
dependencies:
- "@otplib/core" "13.2.1"
- "@otplib/uri" "13.2.1"
+ "@otplib/core" "13.3.0"
+ "@otplib/uri" "13.3.0"
-"@otplib/plugin-base32-scure@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/plugin-base32-scure/-/plugin-base32-scure-13.2.1.tgz#2e7b1849311bfafd630fa87ce2812b7c3c718675"
- integrity sha512-vnA2qqgJ/FbFbDNGOLAS8dKfCsJFXwFsZKYklE8yl2INkCOUR0vbVdJ2TVmufzC8R1RRZHW+cDR20ACgc9XFYg==
+"@otplib/plugin-base32-scure@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/plugin-base32-scure/-/plugin-base32-scure-13.3.0.tgz#3362fc5dd568e9cecac913fd0fa169148c469142"
+ integrity sha512-/jYbL5S6GB0Ie3XGEWtLIr9s5ZICl/BfmNL7+8/W7usZaUU4GiyLd2S+JGsNCslPyqNekSudD864nDAvRI0s8w==
dependencies:
- "@otplib/core" "13.2.1"
+ "@otplib/core" "13.3.0"
"@scure/base" "^2.0.0"
-"@otplib/plugin-crypto-noble@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto-noble/-/plugin-crypto-noble-13.2.1.tgz#11f6325f4593f57360af2268313b94003b225807"
- integrity sha512-Dxjmt4L+5eDWJf5EvbcMp+fxcliyKoB9N9sNQq/vuVAUvq+KiqpiiCQZ/wHyrN0ArB0NdevtK1KByyAq080ldg==
+"@otplib/plugin-crypto-noble@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto-noble/-/plugin-crypto-noble-13.3.0.tgz#edfd6c8c54730cfdfc52c6a3fcd797e204fdd0e2"
+ integrity sha512-wmV+jBVncepgwv99G7Plrdzd0tHfbpXk2U+OD7MO7DzpDqOYEgOPi+IIneksJSTL8QvWdfi+uQEuhnER4fKouA==
dependencies:
"@noble/hashes" "^2.0.1"
- "@otplib/core" "13.2.1"
+ "@otplib/core" "13.3.0"
-"@otplib/totp@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/totp/-/totp-13.2.1.tgz#2c8f8a8d87cf6e440d9050d363dfd24bc25179d6"
- integrity sha512-LzDzAAK3w8rspF3urBnWjOlxso1SCGxX9Pnu/iy+HkC0y0HgiLsW7jhkr2hJ3u4cyBdL/tOKUhhELwsjyvunwQ==
+"@otplib/totp@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/totp/-/totp-13.3.0.tgz#1d1f61cfd1acd773e1051e6b918227ae34545808"
+ integrity sha512-XfjGNoN8d9S3Ove2j7AwkVV7+QDFsV7Lm7YwSiezNaHffkWtJ60aJYpmf+01dARdPST71U2ptueMsRJso4sq4A==
dependencies:
- "@otplib/core" "13.2.1"
- "@otplib/hotp" "13.2.1"
- "@otplib/uri" "13.2.1"
+ "@otplib/core" "13.3.0"
+ "@otplib/hotp" "13.3.0"
+ "@otplib/uri" "13.3.0"
-"@otplib/uri@13.2.1":
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/@otplib/uri/-/uri-13.2.1.tgz#50054fe922f3610e7558b0c5337353770c1f382e"
- integrity sha512-ssYnfiUrFTs/rPRUW8h59m0MVLYOC+UKk7tVGYgtG15lLaLBrNBQjM2YFanuzn9Jm4iv9JxiNG7TRkwcnyR09A==
+"@otplib/uri@13.3.0":
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/@otplib/uri/-/uri-13.3.0.tgz#7474d6dc0fdf8ab2d0cf2b79e2001446c4e7b6b3"
+ integrity sha512-3oh6nBXy+cm3UX9cxEAGZiDrfxHU2gfelYFV+XNCx+8dq39VaQVymwlU2yjPZiMAi/3agaUeEftf2RwM5F+Cyg==
dependencies:
- "@otplib/core" "13.2.1"
+ "@otplib/core" "13.3.0"
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
@@ -261,10 +261,10 @@ ajv-formats@^2.1.1:
dependencies:
ajv "^8.0.0"
-ajv@^8.0.0, ajv@^8.17.1:
- version "8.17.1"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
- integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
+ajv@^8.0.0, ajv@^8.17.1, ajv@^8.18.0:
+ version "8.18.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc"
+ integrity sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==
dependencies:
fast-deep-equal "^3.1.3"
fast-uri "^3.0.1"
@@ -1861,10 +1861,10 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-mysql2@^3.16.3:
- version "3.16.3"
- resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.16.3.tgz#59491bfa13f1979c2a87fd1ef68a3eb83fd58fcb"
- integrity sha512-+3XhQEt4FEFuvGV0JjIDj4eP2OT/oIj/54dYvqhblnSzlfcxVOuj+cd15Xz6hsG4HU1a+A5+BA9gm0618C4z7A==
+mysql2@^3.17.1:
+ version "3.17.1"
+ resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.17.1.tgz#781292f60df3806949c0a3161a51ad3e4e4689a1"
+ integrity sha512-UzIzdVwPXPoZm+FaJ4lNsRt28HtUwt68gpLH7NP1oSjd91M5Qn1XJzbIsSRMRc5CV3pvktLNshmbaFfMYqPBhQ==
dependencies:
aws-ssl-profiles "^1.1.2"
denque "^2.1.0"
@@ -1874,7 +1874,7 @@ mysql2@^3.16.3:
lru.min "^1.1.3"
named-placeholders "^1.1.6"
seq-queue "^0.0.5"
- sqlstring "^2.3.3"
+ sql-escaper "^1.3.2"
named-placeholders@^1.1.6:
version "1.1.6"
@@ -2019,17 +2019,17 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-otplib@^13.2.1:
- version "13.2.1"
- resolved "https://registry.yarnpkg.com/otplib/-/otplib-13.2.1.tgz#39cc114228409ff30cfa6779e2f8cb007b535942"
- integrity sha512-Cft9h/m34LtvnoB2TjP1E1E6v0biwcUntl6U4e+HgWrTa0bpwmb+u/D9gLFA+U6/ztlvrult0811Bu30nUVUuA==
+otplib@^13.3.0:
+ version "13.3.0"
+ resolved "https://registry.yarnpkg.com/otplib/-/otplib-13.3.0.tgz#2ead040ab29d1a829d1d7c510b059a3e4c76b2b0"
+ integrity sha512-VYMKyyDG8yt2q+z58sz54/EIyTh7+tyMrjeemR44iVh5+dkKtIs57irTqxjH+IkAL1uMmG1JIFhG5CxTpqdU5g==
dependencies:
- "@otplib/core" "13.2.1"
- "@otplib/hotp" "13.2.1"
- "@otplib/plugin-base32-scure" "13.2.1"
- "@otplib/plugin-crypto-noble" "13.2.1"
- "@otplib/totp" "13.2.1"
- "@otplib/uri" "13.2.1"
+ "@otplib/core" "13.3.0"
+ "@otplib/hotp" "13.3.0"
+ "@otplib/plugin-base32-scure" "13.3.0"
+ "@otplib/plugin-crypto-noble" "13.3.0"
+ "@otplib/totp" "13.3.0"
+ "@otplib/uri" "13.3.0"
p-limit@^1.1.0:
version "1.3.0"
@@ -2345,9 +2345,9 @@ pump@^3.0.0:
once "^1.3.1"
qs@^6.14.0, qs@^6.14.1:
- version "6.14.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
- integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
+ version "6.14.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c"
+ integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==
dependencies:
side-channel "^1.1.0"
@@ -2687,6 +2687,11 @@ split2@^4.1.0:
resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+sql-escaper@^1.3.2:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/sql-escaper/-/sql-escaper-1.3.2.tgz#b11c68c6541fc05afdf508d52e54af7219455fad"
+ integrity sha512-lp+ZDVfSjHt+qAK1jXBTIXBNYnbo7gnaAGwoYTH9bE89kNkXwcu6g0WjJGRsdTKVpY1z70u3Y0IgmnBOoRybHw==
+
sqlite3@^5.1.7:
version "5.1.7"
resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.7.tgz#59ca1053c1ab38647396586edad019b1551041b7"
@@ -2699,11 +2704,6 @@ sqlite3@^5.1.7:
optionalDependencies:
node-gyp "8.x"
-sqlstring@^2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c"
- integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==
-
ssri@^8.0.0, ssri@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
diff --git a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf
index e43c2fc8..8e58c64a 100644
--- a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf
+++ b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf
@@ -5,9 +5,28 @@ if ($scheme = "http") {
if ($request_uri = /.well-known/acme-challenge/test-challenge) {
set $test "${test}T";
}
+
+# Check if the ssl staff has been handled
+set $test_ssl_handled "";
+if ($trust_forwarded_proto = "") {
+ set $trust_forwarded_proto "F";
+}
+if ($trust_forwarded_proto = "T") {
+ set $test_ssl_handled "${test_ssl_handled}T";
+}
if ($http_x_forwarded_proto = "https") {
+ set $test_ssl_handled "${test_ssl_handled}S";
+}
+if ($http_x_forwarded_scheme = "https") {
+ set $test_ssl_handled "${test_ssl_handled}S";
+}
+if ($test_ssl_handled = "TSS") {
+ set $test_ssl_handled "TS";
+}
+if ($test_ssl_handled = "TS") {
set $test "${test}S";
}
+
if ($test = H) {
return 301 https://$host$request_uri;
}
diff --git a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
index d346c4ef..fe2c2f21 100644
--- a/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
+++ b/docker/rootfs/etc/nginx/conf.d/include/proxy.conf
@@ -1,7 +1,7 @@
add_header X-Served-By $host;
proxy_set_header Host $host;
-proxy_set_header X-Forwarded-Scheme $scheme;
-proxy_set_header X-Forwarded-Proto $scheme;
+proxy_set_header X-Forwarded-Scheme $x_forwarded_scheme;
+proxy_set_header X-Forwarded-Proto $x_forwarded_proto;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass $forward_scheme://$server:$port$request_uri;
diff --git a/docker/rootfs/etc/nginx/nginx.conf b/docker/rootfs/etc/nginx/nginx.conf
index 0a83ef0c..892cf158 100644
--- a/docker/rootfs/etc/nginx/nginx.conf
+++ b/docker/rootfs/etc/nginx/nginx.conf
@@ -57,6 +57,18 @@ http {
default http;
}
+ # Handle upstream X-Forwarded-Proto and X-Forwarded-Scheme header
+ map $http_x_forwarded_proto $x_forwarded_proto {
+ "http" "http";
+ "https" "https";
+ default $scheme;
+ }
+ map $http_x_forwarded_scheme $x_forwarded_scheme {
+ "http" "http";
+ "https" "https";
+ default $scheme;
+ }
+
# Real IP Determination
# Local subnets:
diff --git a/docker/scripts/install-s6 b/docker/scripts/install-s6
index 639c65dd..5fcb4e09 100755
--- a/docker/scripts/install-s6
+++ b/docker/scripts/install-s6
@@ -17,10 +17,6 @@ case $TARGETPLATFORM in
S6_ARCH=aarch64
;;
- linux/arm/v7)
- S6_ARCH=armhf
- ;;
-
*)
S6_ARCH=x86_64
;;
diff --git a/docs/src/setup/index.md b/docs/src/setup/index.md
index 998508dd..49b9e618 100644
--- a/docs/src/setup/index.md
+++ b/docs/src/setup/index.md
@@ -169,7 +169,11 @@ Custom Postgres schema is not supported, as such `public` will be used.
The docker images support the following architectures:
- amd64
- arm64
-- armv7
+
+::: warning
+`armv7` is no longer supported in version 2.14+. This is due to Nodejs dropping support for armhf. Please
+use the `2.13.7` image tag if this applies to you.
+:::
The docker images are a manifest of all the architecture docker builds supported, so this means
you don't have to worry about doing anything special and you can follow the common instructions above.
diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs
index a73cd757..135dab10 100755
--- a/frontend/check-locales.cjs
+++ b/frontend/check-locales.cjs
@@ -18,6 +18,7 @@ const allLocales = [
["pl", "pl-PL"],
["ru", "ru-RU"],
["sk", "sk-SK"],
+ ["cs", "cs-CZ"],
["vi", "vi-VN"],
["zh", "zh-CN"],
["ko", "ko-KR"],
diff --git a/frontend/package.json b/frontend/package.json
index da684a03..0c164f52 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -18,11 +18,11 @@
"dependencies": {
"@tabler/core": "^1.4.0",
"@tabler/icons-react": "^3.36.1",
- "@tanstack/react-query": "^5.90.20",
+ "@tanstack/react-query": "^5.90.21",
"@tanstack/react-table": "^8.21.3",
"@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1",
- "country-flag-icons": "^1.6.12",
+ "country-flag-icons": "^1.6.13",
"date-fns": "^4.1.0",
"ez-modal-react": "^1.0.5",
"formik": "^2.4.9",
@@ -40,7 +40,7 @@
"rooks": "^9.5.0"
},
"devDependencies": {
- "@biomejs/biome": "^2.3.14",
+ "@biomejs/biome": "^2.4.2",
"@formatjs/cli": "^6.12.2",
"@tanstack/react-query-devtools": "^5.91.3",
"@testing-library/dom": "^10.4.1",
@@ -48,11 +48,11 @@
"@testing-library/react": "^16.3.2",
"@types/country-flag-icons": "^1.2.2",
"@types/humps": "^2.0.6",
- "@types/react": "^19.2.10",
+ "@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20",
- "@vitejs/plugin-react": "^5.1.3",
- "happy-dom": "^20.5.0",
+ "@vitejs/plugin-react": "^5.1.4",
+ "happy-dom": "^20.6.1",
"postcss": "^8.5.6",
"postcss-simple-vars": "^7.0.1",
"sass": "^1.97.3",
@@ -60,7 +60,7 @@
"typescript": "5.9.3",
"vite": "^7.3.1",
"vite-plugin-checker": "^0.12.0",
- "vite-tsconfig-paths": "^6.0.5",
+ "vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.0.18"
}
}
diff --git a/frontend/src/api/backend/models.ts b/frontend/src/api/backend/models.ts
index d63d47ae..2ae0b083 100644
--- a/frontend/src/api/backend/models.ts
+++ b/frontend/src/api/backend/models.ts
@@ -127,6 +127,7 @@ export interface ProxyHost {
locations?: ProxyLocation[];
hstsEnabled: boolean;
hstsSubdomains: boolean;
+ trustForwardedProto: boolean;
// Expansions:
owner?: User;
accessList?: AccessList;
diff --git a/frontend/src/components/Form/SSLOptionsFields.tsx b/frontend/src/components/Form/SSLOptionsFields.tsx
index 1c5b9f9a..ecf23d26 100644
--- a/frontend/src/components/Form/SSLOptionsFields.tsx
+++ b/frontend/src/components/Form/SSLOptionsFields.tsx
@@ -5,17 +5,18 @@ import { T } from "src/locale";
interface Props {
forHttp?: boolean; // the sslForced, http2Support, hstsEnabled, hstsSubdomains fields
+ forProxyHost?: boolean; // the advanced fields
forceDNSForNew?: boolean;
requireDomainNames?: boolean; // used for streams
color?: string;
}
-export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomainNames, color = "bg-cyan" }: Props) {
+export function SSLOptionsFields({ forHttp = true, forProxyHost = false, forceDNSForNew, requireDomainNames, color = "bg-cyan" }: Props) {
const { values, setFieldValue } = useFormikContext();
const v: any = values || {};
const newCertificate = v?.certificateId === "new";
const hasCertificate = newCertificate || (v?.certificateId && v?.certificateId > 0);
- const { sslForced, http2Support, hstsEnabled, hstsSubdomains, meta } = v;
+ const { sslForced, http2Support, hstsEnabled, hstsSubdomains, trustForwardedProto, meta } = v;
const { dnsChallenge } = meta || {};
if (forceDNSForNew && newCertificate && !dnsChallenge) {
@@ -115,6 +116,34 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain
);
+ const getHttpAdvancedOptions = () =>(
+
+
+
+
+
+
+ {({ field }: any) => (
+
+ )}
+
+
+
+
+
+ );
+
return (
{forHttp ? getHttpOptions() : null}
@@ -140,6 +169,7 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain
{dnsChallenge ? : null}
>
) : null}
+ {forProxyHost && forHttp ? getHttpAdvancedOptions() : null}
);
}
diff --git a/frontend/src/hooks/useProxyHost.ts b/frontend/src/hooks/useProxyHost.ts
index e6a2adea..24e7f4fa 100644
--- a/frontend/src/hooks/useProxyHost.ts
+++ b/frontend/src/hooks/useProxyHost.ts
@@ -24,6 +24,7 @@ const fetchProxyHost = (id: number | "new") => {
enabled: true,
hstsEnabled: false,
hstsSubdomains: false,
+ trustForwardedProto: false,
} as ProxyHost);
}
return getProxyHost(id, ["owner"]);
diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx
index 507d938c..8e65546a 100755
--- a/frontend/src/locale/IntlProvider.tsx
+++ b/frontend/src/locale/IntlProvider.tsx
@@ -14,6 +14,7 @@ import langNl from "./lang/nl.json";
import langPl from "./lang/pl.json";
import langRu from "./lang/ru.json";
import langSk from "./lang/sk.json";
+import langCs from "./lang/cs.json";
import langVi from "./lang/vi.json";
import langZh from "./lang/zh.json";
import langTr from "./lang/tr.json";
@@ -36,6 +37,7 @@ const localeOptions = [
["pl", "pl-PL", langPl],
["ru", "ru-RU", langRu],
["sk", "sk-SK", langSk],
+ ["cs", "cs-CZ", langCs],
["vi", "vi-VN", langVi],
["zh", "zh-CN", langZh],
["ko", "ko-KR", langKo],
@@ -65,6 +67,7 @@ const getFlagCodeForLocale = (locale?: string) => {
zh: "cn", // China
vi: "vn", // Vietnam
ko: "kr", // Korea
+ cs: "cz", // Czechia
};
if (specialCases[thisLocale]) {
diff --git a/frontend/src/locale/src/HelpDoc/cs/AccessLists.md b/frontend/src/locale/src/HelpDoc/cs/AccessLists.md
new file mode 100644
index 00000000..78d9be6e
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/AccessLists.md
@@ -0,0 +1,7 @@
+## Co je seznam přístupů?
+
+Seznamy přístupů poskytují blacklist nebo whitelist konkrétních IP adres klientů spolu s ověřením pro proxy hostitele prostřednictvím základního ověřování HTTP.
+
+Můžete nakonfigurovat více pravidel pro klienty, uživatelská jména a hesla pro jeden seznam přístupu a poté ho použít na jednoho nebo více proxy hostitelů.
+
+Toto je nejužitečnější pro přesměrované webové služby, které nemají vestavěné ověřovací mechanismy, nebo pokud se chcete chránit před neznámými klienty.
diff --git a/frontend/src/locale/src/HelpDoc/cs/Certificates.md b/frontend/src/locale/src/HelpDoc/cs/Certificates.md
new file mode 100644
index 00000000..78e67f31
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/Certificates.md
@@ -0,0 +1,32 @@
+## Pomoc s certifikáty
+
+### Certifikát HTTP
+
+Certifikát ověřený prostřednictvím protokolu HTTP znamená, že servery Let's Encrypt se
+pokusí připojit k vašim doménám přes protokol HTTP (nikoli HTTPS!) a v případě úspěchu
+vydají váš certifikát.
+
+Pro tuto metodu budete muset mít pro své domény vytvořeného _Proxy Host_, který
+je přístupný přes HTTP a směruje na tuto instalaci Nginx. Po vydání certifikátu
+můžete změnit _Proxy Host_ tak, aby tento certifikát používal i pro HTTPS
+připojení. _Proxy Host_ však bude stále potřeba nakonfigurovat pro přístup přes HTTP,
+aby se certifikát mohl obnovit.
+
+Tento proces _nepodporuje_ domény se zástupnými znaky.
+
+### Certifikát DNS
+
+Certifikát ověřený DNS vyžaduje použití pluginu DNS Provider. Tento DNS
+Provider se použije na vytvoření dočasných záznamů ve vaší doméně a poté Let's
+Encrypt ověří tyto záznamy, aby se ujistil, že jste vlastníkem, a pokud bude úspěšný,
+vydá váš certifikát.
+
+Před požádáním o tento typ certifikátu není potřeba vytvořit _Proxy Host_.
+Není také potřeba mít _Proxy Host_ nakonfigurovaný pro přístup HTTP.
+
+Tento proces _podporuje_ domény se zástupnými znaky.
+
+### Vlastní certifikát
+
+Tuto možnost použijte na nahrání vlastního SSL certifikátu, který vám poskytla vaše
+certifikační autorita.
diff --git a/frontend/src/locale/src/HelpDoc/cs/DeadHosts.md b/frontend/src/locale/src/HelpDoc/cs/DeadHosts.md
new file mode 100644
index 00000000..61d4dcfa
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/DeadHosts.md
@@ -0,0 +1,10 @@
+## Co je to 404 Host?
+
+404 Host je jednoduše nastavení hostitele, které zobrazuje stránku 404.
+
+To může být užitečné, pokud je vaše doména uvedena ve vyhledávačích a chcete
+poskytnout hezčí chybovou stránku nebo konkrétně oznámit vyhledávačům, že
+stránky domény již neexistují.
+
+Další výhodou tohoto hostitele je sledování protokolů o návštěvách a
+zobrazení odkazů.
diff --git a/frontend/src/locale/src/HelpDoc/cs/ProxyHosts.md b/frontend/src/locale/src/HelpDoc/cs/ProxyHosts.md
new file mode 100644
index 00000000..36376410
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/ProxyHosts.md
@@ -0,0 +1,7 @@
+## Co je proxy hostitel?
+
+Proxy hostitel je příchozí koncový bod pro webovou službu, kterou chcete přesměrovat.
+
+Poskytuje volitelné ukončení SSL pro vaši službu, která nemusí mít zabudovanou podporu SSL.
+
+Proxy hostitelé jsou nejběžnějším použitím pro Nginx Proxy Manager.
diff --git a/frontend/src/locale/src/HelpDoc/cs/RedirectionHosts.md b/frontend/src/locale/src/HelpDoc/cs/RedirectionHosts.md
new file mode 100644
index 00000000..ed261663
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/RedirectionHosts.md
@@ -0,0 +1,7 @@
+## Co je přesměrovací hostitel?
+
+Přesměrovací hostitel přesměruje požadavky z příchozí domény a přesměruje
+návštěvníka na jinou doménu.
+
+Nejčastějším důvodem pro použití tohoto typu hostitele je situace, kdy vaše webová stránka změní
+doménu, ale stále máte odkazy ve vyhledávačích nebo referenční odkazy směřující na starou doménu.
diff --git a/frontend/src/locale/src/HelpDoc/cs/Streams.md b/frontend/src/locale/src/HelpDoc/cs/Streams.md
new file mode 100644
index 00000000..8dc3f4ee
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/Streams.md
@@ -0,0 +1,6 @@
+## Co je stream?
+
+Stream je relativně nová funkce pro Nginx, která slouží na přesměrování TCP/UDP
+datového toku přímo do jiného počítače v síti.
+
+Pokud provozujete herní servery, FTP nebo SSH servery, tato funkce se vám může hodit.
diff --git a/frontend/src/locale/src/HelpDoc/cs/index.ts b/frontend/src/locale/src/HelpDoc/cs/index.ts
new file mode 100644
index 00000000..a9bb46ba
--- /dev/null
+++ b/frontend/src/locale/src/HelpDoc/cs/index.ts
@@ -0,0 +1,6 @@
+export * as AccessLists from "./AccessLists.md";
+export * as Certificates from "./Certificates.md";
+export * as DeadHosts from "./DeadHosts.md";
+export * as ProxyHosts from "./ProxyHosts.md";
+export * as RedirectionHosts from "./RedirectionHosts.md";
+export * as Streams from "./Streams.md";
diff --git a/frontend/src/locale/src/HelpDoc/index.ts b/frontend/src/locale/src/HelpDoc/index.ts
index 4b027dde..bba013d5 100644
--- a/frontend/src/locale/src/HelpDoc/index.ts
+++ b/frontend/src/locale/src/HelpDoc/index.ts
@@ -13,12 +13,13 @@ import * as nl from "./nl/index";
import * as pl from "./pl/index";
import * as ru from "./ru/index";
import * as sk from "./sk/index";
+import * as cs from "./cs/index";
import * as vi from "./vi/index";
import * as zh from "./zh/index";
import * as tr from "./tr/index";
import * as hu from "./hu/index";
-const items: any = { en, de, pt, es, ja, sk, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
+const items: any = { en, de, pt, es, ja, sk, cs, zh, pl, ru, it, vi, nl, bg, ko, ga, id, fr, tr, hu };
const fallbackLang = "en";
diff --git a/frontend/src/locale/src/cs.json b/frontend/src/locale/src/cs.json
new file mode 100644
index 00000000..cd86b678
--- /dev/null
+++ b/frontend/src/locale/src/cs.json
@@ -0,0 +1,770 @@
+{
+ "2fa.backup-codes-remaining": {
+ "defaultMessage": "Počet zbývajících záložních kódů: {count}"
+ },
+ "2fa.backup-warning": {
+ "defaultMessage": "Tyto záložní kódy si uložte na bezpečném místě. Každý kód lze použít pouze jednou."
+ },
+ "2fa.disable": {
+ "defaultMessage": "Vypnout dvoufaktorové ověřování"
+ },
+ "2fa.disable-confirm": {
+ "defaultMessage": "Vypnout 2FA"
+ },
+ "2fa.disable-warning": {
+ "defaultMessage": "Vypnutím dvoufaktorového ověřování snížíte bezpečnost svého účtu."
+ },
+ "2fa.disabled": {
+ "defaultMessage": "Vypnuto"
+ },
+ "2fa.done": {
+ "defaultMessage": "Uložil jsem si své záložní kódy."
+ },
+ "2fa.enable": {
+ "defaultMessage": "Zapnout dvoufaktorové ověřování"
+ },
+ "2fa.enabled": {
+ "defaultMessage": "Zapnuto"
+ },
+ "2fa.enter-code": {
+ "defaultMessage": "Zadejte ověřovací kód"
+ },
+ "2fa.enter-code-disable": {
+ "defaultMessage": "Zadejte ověřovací kód pro vypnutí"
+ },
+ "2fa.regenerate": {
+ "defaultMessage": "Znovu vytvořit"
+ },
+ "2fa.regenerate-backup": {
+ "defaultMessage": "Znovu vytvořit záložní kódy"
+ },
+ "2fa.regenerate-instructions": {
+ "defaultMessage": "Zadejte ověřovací kód pro vytvoření nových záložních kódů. Vaše staré kódy budou neplatné."
+ },
+ "2fa.secret-key": {
+ "defaultMessage": "Tajný klíč"
+ },
+ "2fa.setup-instructions": {
+ "defaultMessage": "Naskenujte tento QR kód pomocí své ověřovací aplikace nebo zadejte tajný klíč ručně."
+ },
+ "2fa.status": {
+ "defaultMessage": "Stav"
+ },
+ "2fa.title": {
+ "defaultMessage": "Dvoufaktorové ověření"
+ },
+ "2fa.verify-enable": {
+ "defaultMessage": "Ověřit a zapnout"
+ },
+ "access-list": {
+ "defaultMessage": "seznam přístupů"
+ },
+ "access-list.access-count": {
+ "defaultMessage": "{count} {count, plural, one {pravidlo} few {pravidla} other {pravidel}}"
+ },
+ "access-list.auth-count": {
+ "defaultMessage": "{count} {count, plural, one {uživatel} few {uživatelé} other {uživatelů}}"
+ },
+ "access-list.help-rules-last": {
+ "defaultMessage": "Když existuje alespoň jedno pravidlo, toto pravidlo „zamítnout vše“ bude přidáno jako poslední"
+ },
+ "access-list.help.rules-order": {
+ "defaultMessage": "Upozornění: pravidla povolit a zamítnout budou uplatňována v pořadí, v jakém jsou definována."
+ },
+ "access-list.pass-auth": {
+ "defaultMessage": "Odeslat ověření na Upstream"
+ },
+ "access-list.public": {
+ "defaultMessage": "Veřejně přístupné"
+ },
+ "access-list.public.subtitle": {
+ "defaultMessage": "Není potřeba základní ověření"
+ },
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 nebo 192.168.1.0/24 nebo 2001:0db8::/32"
+ },
+ "access-list.satisfy-any": {
+ "defaultMessage": "Splnit kterékoliv"
+ },
+ "access-list.subtitle": {
+ "defaultMessage": "{users} {users, plural, one {uživatel} few {uživatelé} other {uživatelů}}, {rules} {rules, plural, one {pravidlo} few {pravidla} other {pravidel}} - Vytvořeno: {date}"
+ },
+ "access-lists": {
+ "defaultMessage": "Seznamy přístupů"
+ },
+ "action.add": {
+ "defaultMessage": "Přidat"
+ },
+ "action.add-location": {
+ "defaultMessage": "Přidat umístění"
+ },
+ "action.allow": {
+ "defaultMessage": "Povolit"
+ },
+ "action.close": {
+ "defaultMessage": "Zavřít"
+ },
+ "action.delete": {
+ "defaultMessage": "Smazat"
+ },
+ "action.deny": {
+ "defaultMessage": "Zamítnout"
+ },
+ "action.disable": {
+ "defaultMessage": "Deaktivovat"
+ },
+ "action.download": {
+ "defaultMessage": "Stáhnout"
+ },
+ "action.edit": {
+ "defaultMessage": "Upravit"
+ },
+ "action.enable": {
+ "defaultMessage": "Aktivovat"
+ },
+ "action.permissions": {
+ "defaultMessage": "Oprávnění"
+ },
+ "action.renew": {
+ "defaultMessage": "Obnovit"
+ },
+ "action.view-details": {
+ "defaultMessage": "Zobrazit podrobnosti"
+ },
+ "auditlogs": {
+ "defaultMessage": "Záznamy auditu"
+ },
+ "auto": {
+ "defaultMessage": "Automaticky"
+ },
+ "cancel": {
+ "defaultMessage": "Zrušit"
+ },
+ "certificate": {
+ "defaultMessage": "certifikát"
+ },
+ "certificate.custom-certificate": {
+ "defaultMessage": "Certifikát"
+ },
+ "certificate.custom-certificate-key": {
+ "defaultMessage": "Klíč certifikátu"
+ },
+ "certificate.custom-intermediate": {
+ "defaultMessage": "Zprostředkovatelský certifikát"
+ },
+ "certificate.in-use": {
+ "defaultMessage": "Používá se"
+ },
+ "certificate.none.subtitle": {
+ "defaultMessage": "Není přiřazen žádný certifikát"
+ },
+ "certificate.none.subtitle.for-http": {
+ "defaultMessage": "Tento hostitel nebude používat HTTPS"
+ },
+ "certificate.none.title": {
+ "defaultMessage": "Žádný"
+ },
+ "certificate.not-in-use": {
+ "defaultMessage": "Nepoužívá se"
+ },
+ "certificate.renew": {
+ "defaultMessage": "Obnovit certifikát"
+ },
+ "certificates": {
+ "defaultMessage": "Certifikáty"
+ },
+ "certificates.custom": {
+ "defaultMessage": "Vlastní certifikát"
+ },
+ "certificates.custom.warning": {
+ "defaultMessage": "Soubory klíčů chráněné heslem nejsou podporovány."
+ },
+ "certificates.dns.credentials": {
+ "defaultMessage": "Obsah souboru s přihlašovacími údaji"
+ },
+ "certificates.dns.credentials-note": {
+ "defaultMessage": "Tento doplněk vyžaduje konfigurační soubor obsahující API token nebo jiné přihlašovací údaje vašeho poskytovatele"
+ },
+ "certificates.dns.credentials-warning": {
+ "defaultMessage": "Tyto údaje budou uloženy v databázi a v souboru jako obyčejný text!"
+ },
+ "certificates.dns.propagation-seconds": {
+ "defaultMessage": "Propagace v sekundách"
+ },
+ "certificates.dns.propagation-seconds-note": {
+ "defaultMessage": "Nechte prázdné pro výchozí hodnotu doplňku. Počet sekund, po které se čeká na propagaci DNS."
+ },
+ "certificates.dns.provider": {
+ "defaultMessage": "DNS poskytovatel"
+ },
+ "certificates.dns.provider.placeholder": {
+ "defaultMessage": "Vyberte poskytovatele..."
+ },
+ "certificates.dns.warning": {
+ "defaultMessage": "Tato sekce vyžaduje znalost Certbotu a jeho DNS doplňků. Prosím, podívejte se do dokumentace příslušného doplňku."
+ },
+ "certificates.http.reachability-404": {
+ "defaultMessage": "Na této doméně byl nalezen server, ale nezdá se, že jde o Nginx Proxy Manager. Ujistěte se, že vaše doména směřuje na IP, kde běží vaše instance NPM."
+ },
+ "certificates.http.reachability-failed-to-check": {
+ "defaultMessage": "Nepodařilo se ověřit dostupnost kvůli chybě komunikace se službou site24x7.com."
+ },
+ "certificates.http.reachability-not-resolved": {
+ "defaultMessage": "Na této doméně není dostupný žádný server. Ujistěte se, že doména existuje a směřuje na IP adresu s NPM a pokud je to potřeba, port 80 je přesměrován ve vašem routeru."
+ },
+ "certificates.http.reachability-ok": {
+ "defaultMessage": "Váš server je dostupný a vytvoření certifikátu by mělo být možné."
+ },
+ "certificates.http.reachability-other": {
+ "defaultMessage": "Na této doméně byl nalezen server, ale vrátil neočekávaný stavový kód {code}. Je to NPM server? Ujistěte se prosím, že doména směřuje na IP, kde běží vaše instance NPM."
+ },
+ "certificates.http.reachability-wrong-data": {
+ "defaultMessage": "Na této doméně byl nalezen server, ale vrátil neočekávaná data. Je to NPM server? Ujistěte se, že doména směřuje na IP, kde běží vaše instance NPM."
+ },
+ "certificates.http.test-results": {
+ "defaultMessage": "Výsledky testu"
+ },
+ "certificates.http.warning": {
+ "defaultMessage": "Tyto domény musí být již nakonfigurovány tak, aby směřovaly na tuto instalaci."
+ },
+ "certificates.key-type": {
+ "defaultMessage": "Typ klíče"
+ },
+ "certificates.key-type-description": {
+ "defaultMessage": "RSA je široce kompatibilní, ECDSA je rychlejší a bezpečnější, ale nemusí být podporován staršími systémy"
+ },
+ "certificates.key-type-ecdsa": {
+ "defaultMessage": "ECDSA 256"
+ },
+ "certificates.key-type-rsa": {
+ "defaultMessage": "RSA 2048"
+ },
+ "certificates.request.subtitle": {
+ "defaultMessage": "pomocí Let's Encrypt"
+ },
+ "certificates.request.title": {
+ "defaultMessage": "Vyžádat nový certifikát"
+ },
+ "column.access": {
+ "defaultMessage": "Přístup"
+ },
+ "column.authorization": {
+ "defaultMessage": "Autorizace"
+ },
+ "column.authorizations": {
+ "defaultMessage": "Autorizace"
+ },
+ "column.custom-locations": {
+ "defaultMessage": "Vlastní umístění"
+ },
+ "column.destination": {
+ "defaultMessage": "Cíl"
+ },
+ "column.details": {
+ "defaultMessage": "Podrobnosti"
+ },
+ "column.email": {
+ "defaultMessage": "Email"
+ },
+ "column.event": {
+ "defaultMessage": "Událost"
+ },
+ "column.expires": {
+ "defaultMessage": "Platnost do"
+ },
+ "column.http-code": {
+ "defaultMessage": "Přístup"
+ },
+ "column.incoming-port": {
+ "defaultMessage": "Vstupní port"
+ },
+ "column.name": {
+ "defaultMessage": "Název"
+ },
+ "column.protocol": {
+ "defaultMessage": "Protokol"
+ },
+ "column.provider": {
+ "defaultMessage": "Poskytovatel"
+ },
+ "column.roles": {
+ "defaultMessage": "Role"
+ },
+ "column.rules": {
+ "defaultMessage": "Pravidla"
+ },
+ "column.satisfy": {
+ "defaultMessage": "Splnit"
+ },
+ "column.satisfy-all": {
+ "defaultMessage": "Všechny"
+ },
+ "column.satisfy-any": {
+ "defaultMessage": "Kterékoliv"
+ },
+ "column.scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "column.source": {
+ "defaultMessage": "Zdroj"
+ },
+ "column.ssl": {
+ "defaultMessage": "SSL"
+ },
+ "column.status": {
+ "defaultMessage": "Stav"
+ },
+ "created-on": {
+ "defaultMessage": "Vytvořeno: {date}"
+ },
+ "dashboard": {
+ "defaultMessage": "Panel"
+ },
+ "dead-host": {
+ "defaultMessage": "404 hostitel"
+ },
+ "dead-hosts": {
+ "defaultMessage": "404 Hostitelé"
+ },
+ "dead-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {404 hostitel} few {404 hostitelé} other {404 hostitelů}}"
+ },
+ "disabled": {
+ "defaultMessage": "Deaktivováno"
+ },
+ "domain-names": {
+ "defaultMessage": "Doménová jména"
+ },
+ "domain-names.max": {
+ "defaultMessage": "Maximálně {count} doménových jmen"
+ },
+ "domain-names.placeholder": {
+ "defaultMessage": "Začněte psát pro přidání domény..."
+ },
+ "domain-names.wildcards-not-permitted": {
+ "defaultMessage": "Wildcards nejsou pro tento typ povoleny"
+ },
+ "domain-names.wildcards-not-supported": {
+ "defaultMessage": "Wildcards nejsou podporovány pro tuto certifikační autoritu"
+ },
+ "domains.force-ssl": {
+ "defaultMessage": "Vynutit SSL"
+ },
+ "domains.hsts-enabled": {
+ "defaultMessage": "HSTS povoleno"
+ },
+ "domains.hsts-subdomains": {
+ "defaultMessage": "HSTS pro subdomény"
+ },
+ "domains.http2-support": {
+ "defaultMessage": "Podpora HTTP/2"
+ },
+ "domains.use-dns": {
+ "defaultMessage": "Použít DNS výzvu"
+ },
+ "email-address": {
+ "defaultMessage": "Emailová adresa"
+ },
+ "empty-search": {
+ "defaultMessage": "Nebyly nalezeny žádné výsledky"
+ },
+ "empty-subtitle": {
+ "defaultMessage": "Proč nevytvoříte nějaký?"
+ },
+ "enabled": {
+ "defaultMessage": "Aktivováno"
+ },
+ "error.access.at-least-one": {
+ "defaultMessage": "Je vyžadována alespoň jedna autorizace nebo jedno přístupové pravidlo"
+ },
+ "error.access.duplicate-usernames": {
+ "defaultMessage": "Uživatelská jména pro autorizaci musí být jedinečná"
+ },
+ "error.invalid-auth": {
+ "defaultMessage": "Neplatný email nebo heslo"
+ },
+ "error.invalid-domain": {
+ "defaultMessage": "Neplatná doména: {domain}"
+ },
+ "error.invalid-email": {
+ "defaultMessage": "Neplatná emailová adresa"
+ },
+ "error.max-character-length": {
+ "defaultMessage": "Maximální délka je {max} znak{max, plural, one {} few {y} other {ů}}"
+ },
+ "error.max-domains": {
+ "defaultMessage": "Příliš mnoho domén, maximum je {max}"
+ },
+ "error.maximum": {
+ "defaultMessage": "Maximum je {max}"
+ },
+ "error.min-character-length": {
+ "defaultMessage": "Minimální délka je {min} znak{min, plural, one {} few {y} other {ů}}"
+ },
+ "error.minimum": {
+ "defaultMessage": "Minimum je {min}"
+ },
+ "error.passwords-must-match": {
+ "defaultMessage": "Hesla se musí shodovat"
+ },
+ "error.required": {
+ "defaultMessage": "Toto pole je povinné"
+ },
+ "expires.on": {
+ "defaultMessage": "Platnost do: {date}"
+ },
+ "footer.github-fork": {
+ "defaultMessage": "Forkněte mě na GitHubu"
+ },
+ "host.flags.block-exploits": {
+ "defaultMessage": "Blokovat běžné exploity"
+ },
+ "host.flags.cache-assets": {
+ "defaultMessage": "Uložit zdroje do mezipaměti"
+ },
+ "host.flags.preserve-path": {
+ "defaultMessage": "Zachovat cestu"
+ },
+ "host.flags.protocols": {
+ "defaultMessage": "Protokoly"
+ },
+ "host.flags.websockets-upgrade": {
+ "defaultMessage": "Podpora WebSockets"
+ },
+ "host.forward-port": {
+ "defaultMessage": "Port přesměrování"
+ },
+ "host.forward-scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "hosts": {
+ "defaultMessage": "Hostitelé"
+ },
+ "http-only": {
+ "defaultMessage": "Pouze HTTP"
+ },
+ "lets-encrypt": {
+ "defaultMessage": "Let's Encrypt"
+ },
+ "lets-encrypt-via-dns": {
+ "defaultMessage": "Let's Encrypt přes DNS"
+ },
+ "lets-encrypt-via-http": {
+ "defaultMessage": "Let's Encrypt přes HTTP"
+ },
+ "loading": {
+ "defaultMessage": "Načítá se…"
+ },
+ "login.2fa-code": {
+ "defaultMessage": "Ověřovací kód"
+ },
+ "login.2fa-code-placeholder": {
+ "defaultMessage": "Vložit kód"
+ },
+ "login.2fa-description": {
+ "defaultMessage": "Vložte kód z vaší ověřovací aplikace"
+ },
+ "login.2fa-title": {
+ "defaultMessage": "Dvoufaktorové ověření"
+ },
+ "login.2fa-verify": {
+ "defaultMessage": "Ověřit"
+ },
+ "login.title": {
+ "defaultMessage": "Přihlaste se ke svému účtu"
+ },
+ "nginx-config.label": {
+ "defaultMessage": "Vlastní Nginx konfigurace"
+ },
+ "nginx-config.placeholder": {
+ "defaultMessage": "# Zadejte vlastní Nginx konfiguraci na vlastní riziko!"
+ },
+ "no-permission-error": {
+ "defaultMessage": "Nemáte oprávnění k zobrazení tohoto obsahu."
+ },
+ "notfound.action": {
+ "defaultMessage": "Zpět na hlavní stránku"
+ },
+ "notfound.content": {
+ "defaultMessage": "Omlouváme se, stránka, kterou hledáte, nebyla nalezena"
+ },
+ "notfound.title": {
+ "defaultMessage": "Ups… Našli jste chybovou stránku"
+ },
+ "notification.error": {
+ "defaultMessage": "Chyba"
+ },
+ "notification.object-deleted": {
+ "defaultMessage": "{object} byl odstraněn"
+ },
+ "notification.object-disabled": {
+ "defaultMessage": "{object} byl deaktivován"
+ },
+ "notification.object-enabled": {
+ "defaultMessage": "{object} byl aktivován"
+ },
+ "notification.object-renewed": {
+ "defaultMessage": "{object} byl obnoven"
+ },
+ "notification.object-saved": {
+ "defaultMessage": "{object} byl uložen"
+ },
+ "notification.success": {
+ "defaultMessage": "Úspěch"
+ },
+ "object.actions-title": {
+ "defaultMessage": "{object} #{id}"
+ },
+ "object.add": {
+ "defaultMessage": "Přidat {object}"
+ },
+ "object.delete": {
+ "defaultMessage": "Smazat {object}"
+ },
+ "object.delete.content": {
+ "defaultMessage": "Opravdu chcete smazat tento {object}?"
+ },
+ "object.edit": {
+ "defaultMessage": "Upravit {object}"
+ },
+ "object.empty": {
+ "defaultMessage": "Nejsou {objects}"
+ },
+ "object.event.created": {
+ "defaultMessage": "Vytvořen {object}"
+ },
+ "object.event.deleted": {
+ "defaultMessage": "Smazán {object}"
+ },
+ "object.event.disabled": {
+ "defaultMessage": "Deaktivován {object}"
+ },
+ "object.event.enabled": {
+ "defaultMessage": "Aktivován {object}"
+ },
+ "object.event.renewed": {
+ "defaultMessage": "Obnoven {object}"
+ },
+ "object.event.updated": {
+ "defaultMessage": "Aktualizován {object}"
+ },
+ "offline": {
+ "defaultMessage": "Offline"
+ },
+ "online": {
+ "defaultMessage": "Online"
+ },
+ "options": {
+ "defaultMessage": "Možnosti"
+ },
+ "password": {
+ "defaultMessage": "Heslo"
+ },
+ "password.generate": {
+ "defaultMessage": "Vygenerovat náhodné heslo"
+ },
+ "password.hide": {
+ "defaultMessage": "Skrýt heslo"
+ },
+ "password.show": {
+ "defaultMessage": "Zobrazit heslo"
+ },
+ "permissions.hidden": {
+ "defaultMessage": "Skryté"
+ },
+ "permissions.manage": {
+ "defaultMessage": "Spravovat"
+ },
+ "permissions.view": {
+ "defaultMessage": "Pouze pro zobrazení"
+ },
+ "permissions.visibility.all": {
+ "defaultMessage": "Všechny položky"
+ },
+ "permissions.visibility.title": {
+ "defaultMessage": "Viditelnost položky"
+ },
+ "permissions.visibility.user": {
+ "defaultMessage": "Pouze vytvořené položky"
+ },
+ "proxy-host": {
+ "defaultMessage": "proxy hostitele"
+ },
+ "proxy-host.forward-host": {
+ "defaultMessage": "Cílový název hostitele / IP"
+ },
+ "proxy-hosts": {
+ "defaultMessage": "Proxy hostitelé"
+ },
+ "proxy-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {proxy hostitel} few {proxy hostitelé} other {proxy hostitelů}}"
+ },
+ "public": {
+ "defaultMessage": "Veřejné"
+ },
+ "redirection-host": {
+ "defaultMessage": "přesměrovacího hostitele"
+ },
+ "redirection-host.forward-domain": {
+ "defaultMessage": "Cílová doména"
+ },
+ "redirection-host.forward-http-code": {
+ "defaultMessage": "HTTP kód"
+ },
+ "redirection-hosts": {
+ "defaultMessage": "Přesměrovací hostitelé"
+ },
+ "redirection-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {přesměrovací hostitel} few {přesměrovací hostitelé} other {přesměrovacích hostitelů}}"
+ },
+ "redirection-hosts.http-code.300": {
+ "defaultMessage": "300 Více možností"
+ },
+ "redirection-hosts.http-code.301": {
+ "defaultMessage": "301 Trvale přesunuto"
+ },
+ "redirection-hosts.http-code.302": {
+ "defaultMessage": "302 Dočasně přesunuto"
+ },
+ "redirection-hosts.http-code.303": {
+ "defaultMessage": "303 Podívat se na jiné"
+ },
+ "redirection-hosts.http-code.307": {
+ "defaultMessage": "307 Dočasné přesměrování"
+ },
+ "redirection-hosts.http-code.308": {
+ "defaultMessage": "308 Trvalé přesměrování"
+ },
+ "role.admin": {
+ "defaultMessage": "Administrátor"
+ },
+ "role.standard-user": {
+ "defaultMessage": "Běžný uživatel"
+ },
+ "save": {
+ "defaultMessage": "Uložit"
+ },
+ "setting": {
+ "defaultMessage": "Nastavení"
+ },
+ "settings": {
+ "defaultMessage": "Nastavení"
+ },
+ "settings.default-site": {
+ "defaultMessage": "Výchozí stránka"
+ },
+ "settings.default-site.404": {
+ "defaultMessage": "Stránka 404"
+ },
+ "settings.default-site.444": {
+ "defaultMessage": "Bez odpovědi (444)"
+ },
+ "settings.default-site.congratulations": {
+ "defaultMessage": "Gratulační stránka"
+ },
+ "settings.default-site.description": {
+ "defaultMessage": "Co zobrazit, když Nginx zachytí neznámého hostitele"
+ },
+ "settings.default-site.html": {
+ "defaultMessage": "Vlastní HTML"
+ },
+ "settings.default-site.html.placeholder": {
+ "defaultMessage": ""
+ },
+ "settings.default-site.redirect": {
+ "defaultMessage": "Přesměrovat"
+ },
+ "setup.preamble": {
+ "defaultMessage": "Začněte vytvořením administrátorského účtu."
+ },
+ "setup.title": {
+ "defaultMessage": "Vítejte!"
+ },
+ "sign-in": {
+ "defaultMessage": "Přihlásit se"
+ },
+ "ssl-certificate": {
+ "defaultMessage": "SSL certifikát"
+ },
+ "stream": {
+ "defaultMessage": "stream"
+ },
+ "stream.forward-host": {
+ "defaultMessage": "Cílový hostitel"
+ },
+ "stream.forward-host.placeholder": {
+ "defaultMessage": "napriklad.cz nebo 10.0.0.1 nebo 2001:db8:3333:4444:5555:6666:7777:8888"
+ },
+ "stream.incoming-port": {
+ "defaultMessage": "Vstupní port"
+ },
+ "streams": {
+ "defaultMessage": "Streamy"
+ },
+ "streams.count": {
+ "defaultMessage": "{count} {count, plural, one {stream} few {streamy} other {streamů}}"
+ },
+ "streams.tcp": {
+ "defaultMessage": "TCP"
+ },
+ "streams.udp": {
+ "defaultMessage": "UDP"
+ },
+ "test": {
+ "defaultMessage": "Test"
+ },
+ "update-available": {
+ "defaultMessage": "Dostupná aktualizace: {latestVersion}"
+ },
+ "user": {
+ "defaultMessage": "uživatele"
+ },
+ "user.change-password": {
+ "defaultMessage": "Změnit heslo"
+ },
+ "user.confirm-password": {
+ "defaultMessage": "Potvrdit heslo"
+ },
+ "user.current-password": {
+ "defaultMessage": "Aktuální heslo"
+ },
+ "user.edit-profile": {
+ "defaultMessage": "Upravit profil"
+ },
+ "user.full-name": {
+ "defaultMessage": "Celé jméno"
+ },
+ "user.login-as": {
+ "defaultMessage": "Přihlásit se jako {name}"
+ },
+ "user.logout": {
+ "defaultMessage": "Odhlásit se"
+ },
+ "user.new-password": {
+ "defaultMessage": "Nové heslo"
+ },
+ "user.nickname": {
+ "defaultMessage": "Přezdívka"
+ },
+ "user.set-password": {
+ "defaultMessage": "Nastavit heslo"
+ },
+ "user.set-permissions": {
+ "defaultMessage": "Nastavit oprávnění pro {name}"
+ },
+ "user.switch-dark": {
+ "defaultMessage": "Přepnout na tmavý režim"
+ },
+ "user.switch-light": {
+ "defaultMessage": "Přepnout na světlý režim"
+ },
+ "user.two-factor": {
+ "defaultMessage": "Dvoufaktorové ověření"
+ },
+ "username": {
+ "defaultMessage": "Uživatelské jméno"
+ },
+ "users": {
+ "defaultMessage": "Uživatelé"
+ }
+}
diff --git a/frontend/src/locale/src/en.json b/frontend/src/locale/src/en.json
index ae02605e..bb00ac33 100644
--- a/frontend/src/locale/src/en.json
+++ b/frontend/src/locale/src/en.json
@@ -347,6 +347,9 @@
"domain-names.wildcards-not-supported": {
"defaultMessage": "Wildcards not supported for this CA"
},
+ "domains.advanced": {
+ "defaultMessage": "Advanced"
+ },
"domains.force-ssl": {
"defaultMessage": "Force SSL"
},
@@ -359,6 +362,9 @@
"domains.http2-support": {
"defaultMessage": "HTTP/2 Support"
},
+ "domains.trust-forwarded-proto": {
+ "defaultMessage": "Trust Upstream Forwarded Proto Headers"
+ },
"domains.use-dns": {
"defaultMessage": "Use DNS Challenge"
},
diff --git a/frontend/src/locale/src/lang-list.json b/frontend/src/locale/src/lang-list.json
index a37dedf1..408d06eb 100644
--- a/frontend/src/locale/src/lang-list.json
+++ b/frontend/src/locale/src/lang-list.json
@@ -29,6 +29,9 @@
"locale-sk-SK": {
"defaultMessage": "Slovenčina"
},
+ "locale-cs-CZ": {
+ "defaultMessage": "Čeština"
+ },
"locale-zh-CN": {
"defaultMessage": "中文"
},
diff --git a/frontend/src/locale/src/sk.json b/frontend/src/locale/src/sk.json
index 6431643f..8d48cf81 100644
--- a/frontend/src/locale/src/sk.json
+++ b/frontend/src/locale/src/sk.json
@@ -1,4 +1,61 @@
{
+ "2fa.backup-codes-remaining": {
+ "defaultMessage": "Počet zostávajúcich záložných kódov: {count}"
+ },
+ "2fa.backup-warning": {
+ "defaultMessage": "Tieto záložné kódy si uložte na bezpečnom mieste. Každý kód je možné použiť len raz."
+ },
+ "2fa.disable": {
+ "defaultMessage": "Vypnúť dvojfaktorové overovanie"
+ },
+ "2fa.disable-confirm": {
+ "defaultMessage": "Vypnúť 2FA"
+ },
+ "2fa.disable-warning": {
+ "defaultMessage": "Vypnutím dvojfaktorového overovania sa zníži bezpečnosť vášho účtu."
+ },
+ "2fa.disabled": {
+ "defaultMessage": "Vypnuté"
+ },
+ "2fa.done": {
+ "defaultMessage": "Uložil som si svoje záložné kódy."
+ },
+ "2fa.enable": {
+ "defaultMessage": "Zapnúť dvojfaktorové overovanie"
+ },
+ "2fa.enabled": {
+ "defaultMessage": "Zapnuté"
+ },
+ "2fa.enter-code": {
+ "defaultMessage": "Zadajte overovací kód"
+ },
+ "2fa.enter-code-disable": {
+ "defaultMessage": "Zadajte overovací kód na vypnutie"
+ },
+ "2fa.regenerate": {
+ "defaultMessage": "Znova vytvoriť"
+ },
+ "2fa.regenerate-backup": {
+ "defaultMessage": "Znova vytvoriť záložné kódy"
+ },
+ "2fa.regenerate-instructions": {
+ "defaultMessage": "Zadajte overovací kód, aby sa vytvorili nové záložné kódy. Vaše staré kódy budú neplatné."
+ },
+ "2fa.secret-key": {
+ "defaultMessage": "Tajný kľúč"
+ },
+ "2fa.setup-instructions": {
+ "defaultMessage": "Naskenujte tento QR kód pomocou svojej overovacej aplikácie alebo zadajte tajný kľúč ručne."
+ },
+ "2fa.status": {
+ "defaultMessage": "Stav"
+ },
+ "2fa.title": {
+ "defaultMessage": "Dvojfaktorové overenie"
+ },
+ "2fa.verify-enable": {
+ "defaultMessage": "Overiť a zapnúť"
+ },
"access-list": {
"defaultMessage": "zoznam prístupov"
},
@@ -23,6 +80,9 @@
"access-list.public.subtitle": {
"defaultMessage": "Nie je potrebné základné overenie"
},
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 alebo 192.168.1.0/24 alebo 2001:0db8::/32"
+ },
"access-list.satisfy-any": {
"defaultMessage": "Splniť ktorékoľvek"
},
@@ -38,12 +98,18 @@
"action.add-location": {
"defaultMessage": "Pridať umiestnenie"
},
+ "action.allow": {
+ "defaultMessage": "Povoliť"
+ },
"action.close": {
"defaultMessage": "Zavrieť"
},
"action.delete": {
"defaultMessage": "Vymazať"
},
+ "action.deny": {
+ "defaultMessage": "Zamietnuť"
+ },
"action.disable": {
"defaultMessage": "Deaktivovať"
},
@@ -68,11 +134,14 @@
"auditlogs": {
"defaultMessage": "Záznamy auditu"
},
+ "auto": {
+ "defaultMessage": "Automaticky"
+ },
"cancel": {
"defaultMessage": "Zrušiť"
},
"certificate": {
- "defaultMessage": "Certifikát"
+ "defaultMessage": "certifikát"
},
"certificate.custom-certificate": {
"defaultMessage": "Certifikát"
@@ -128,6 +197,9 @@
"certificates.dns.provider": {
"defaultMessage": "DNS poskytovateľ"
},
+ "certificates.dns.provider.placeholder": {
+ "defaultMessage": "Vyberte poskytovateľa..."
+ },
"certificates.dns.warning": {
"defaultMessage": "Táto sekcia vyžaduje znalosť Certbotu a jeho DNS doplnkov. Prosím, pozrite si dokumentáciu príslušného doplnku."
},
@@ -249,7 +321,7 @@
"defaultMessage": "Panel"
},
"dead-host": {
- "defaultMessage": "404 Hostiteľ"
+ "defaultMessage": "404 hostiteľa"
},
"dead-hosts": {
"defaultMessage": "404 Hostitelia"
@@ -383,6 +455,21 @@
"loading": {
"defaultMessage": "Načítava sa…"
},
+ "login.2fa-code": {
+ "defaultMessage": "Overovací kód"
+ },
+ "login.2fa-code-placeholder": {
+ "defaultMessage": "Vložiť kód"
+ },
+ "login.2fa-description": {
+ "defaultMessage": "Vložte kód z vašej overovacej aplikácie"
+ },
+ "login.2fa-title": {
+ "defaultMessage": "Dvoj-faktorové overenie"
+ },
+ "login.2fa-verify": {
+ "defaultMessage": "Overiť"
+ },
"login.title": {
"defaultMessage": "Prihláste sa do svojho účtu"
},
@@ -420,7 +507,7 @@
"defaultMessage": "{object} bol obnovený"
},
"notification.object-saved": {
- "defaultMessage": "{object} bol uložené"
+ "defaultMessage": "{object} bol uložený"
},
"notification.success": {
"defaultMessage": "Úspech"
@@ -441,7 +528,7 @@
"defaultMessage": "Upraviť {object}"
},
"object.empty": {
- "defaultMessage": "Nie sú žiadne/y {objects}"
+ "defaultMessage": "Nie sú {objects}"
},
"object.event.created": {
"defaultMessage": "Vytvorený {object}"
@@ -501,7 +588,7 @@
"defaultMessage": "Len vytvorené položky"
},
"proxy-host": {
- "defaultMessage": "Proxy hostiteľa"
+ "defaultMessage": "proxy hostiteľa"
},
"proxy-host.forward-host": {
"defaultMessage": "Cieľový názov hostiteľa / IP"
@@ -530,6 +617,24 @@
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {presmerovací hostiteľ} few {presmerovací hostitelia} other {presmerovacích hostiteľov}}"
},
+ "redirection-hosts.http-code.300": {
+ "defaultMessage": "300 Viacero možností"
+ },
+ "redirection-hosts.http-code.301": {
+ "defaultMessage": "301 Trvalo presunuté"
+ },
+ "redirection-hosts.http-code.302": {
+ "defaultMessage": "302 Dočasne presunuté"
+ },
+ "redirection-hosts.http-code.303": {
+ "defaultMessage": "303 Pozrieť iné"
+ },
+ "redirection-hosts.http-code.307": {
+ "defaultMessage": "307 Dočasné presmerovanie"
+ },
+ "redirection-hosts.http-code.308": {
+ "defaultMessage": "308 Trvalé presmerovanie"
+ },
"role.admin": {
"defaultMessage": "Administrátor"
},
@@ -582,11 +687,14 @@
"defaultMessage": "SSL certifikát"
},
"stream": {
- "defaultMessage": "Stream"
+ "defaultMessage": "stream"
},
"stream.forward-host": {
"defaultMessage": "Cieľový hostiteľ"
},
+ "stream.forward-host.placeholder": {
+ "defaultMessage": "napriklad.sk alebo 10.0.0.1 alebo 2001:db8:3333:4444:5555:6666:7777:8888"
+ },
"stream.incoming-port": {
"defaultMessage": "Vstupný port"
},
@@ -605,6 +713,9 @@
"test": {
"defaultMessage": "Test"
},
+ "update-available": {
+ "defaultMessage": "Dostupná aktualizácia: {latestVersion}"
+ },
"user": {
"defaultMessage": "používateľa"
},
@@ -647,6 +758,9 @@
"user.switch-light": {
"defaultMessage": "Prepnúť na svetlý režim"
},
+ "user.two-factor": {
+ "defaultMessage": "Dvojfakt. overenie"
+ },
"username": {
"defaultMessage": "Používateľské meno"
},
diff --git a/frontend/src/locale/src/zh.json b/frontend/src/locale/src/zh.json
index d40ea39d..72494bb6 100644
--- a/frontend/src/locale/src/zh.json
+++ b/frontend/src/locale/src/zh.json
@@ -275,6 +275,9 @@
"domain-names.wildcards-not-supported": {
"defaultMessage": "此 CA 不支持通配符"
},
+ "domains.advanced": {
+ "defaultMessage": "高级选项"
+ },
"domains.force-ssl": {
"defaultMessage": "强制 SSL"
},
@@ -287,6 +290,9 @@
"domains.http2-support": {
"defaultMessage": "HTTP/2 支持"
},
+ "domains.trust-forwarded-proto": {
+ "defaultMessage": "信任上游代理传递的协议类型头"
+ },
"domains.use-dns": {
"defaultMessage": "使用DNS验证"
},
diff --git a/frontend/src/modals/ProxyHostModal.tsx b/frontend/src/modals/ProxyHostModal.tsx
index ca322849..3227be51 100644
--- a/frontend/src/modals/ProxyHostModal.tsx
+++ b/frontend/src/modals/ProxyHostModal.tsx
@@ -88,6 +88,7 @@ const ProxyHostModal = EasyModal.create(({ id, visible, remove }: Props) => {
http2Support: data?.http2Support || false,
hstsEnabled: data?.hstsEnabled || false,
hstsSubdomains: data?.hstsSubdomains || false,
+ trustForwardedProto: data?.trustForwardedProto || false,
// Advanced tab
advancedConfig: data?.advancedConfig || "",
meta: data?.meta || {},
@@ -339,7 +340,7 @@ const ProxyHostModal = EasyModal.create(({ id, visible, remove }: Props) => {
label="ssl-certificate"
allowNew
/>
-
+
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index ecd07e5a..1720bee5 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -235,59 +235,59 @@
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.28.5"
-"@biomejs/biome@^2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.14.tgz#b879cd5e0495334d4db7c49d6f3cc95b67d2909c"
- integrity sha512-QMT6QviX0WqXJCaiqVMiBUCr5WRQ1iFSjvOLoTk6auKukJMvnMzWucXpwZB0e8F00/1/BsS9DzcKgWH+CLqVuA==
+"@biomejs/biome@^2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.2.tgz#91fea27398106f87fa81118577756d9e29fe8c74"
+ integrity sha512-vVE/FqLxNLbvYnFDYg3Xfrh1UdFhmPT5i+yPT9GE2nTUgI4rkqo5krw5wK19YHBd7aE7J6r91RRmb8RWwkjy6w==
optionalDependencies:
- "@biomejs/cli-darwin-arm64" "2.3.14"
- "@biomejs/cli-darwin-x64" "2.3.14"
- "@biomejs/cli-linux-arm64" "2.3.14"
- "@biomejs/cli-linux-arm64-musl" "2.3.14"
- "@biomejs/cli-linux-x64" "2.3.14"
- "@biomejs/cli-linux-x64-musl" "2.3.14"
- "@biomejs/cli-win32-arm64" "2.3.14"
- "@biomejs/cli-win32-x64" "2.3.14"
+ "@biomejs/cli-darwin-arm64" "2.4.2"
+ "@biomejs/cli-darwin-x64" "2.4.2"
+ "@biomejs/cli-linux-arm64" "2.4.2"
+ "@biomejs/cli-linux-arm64-musl" "2.4.2"
+ "@biomejs/cli-linux-x64" "2.4.2"
+ "@biomejs/cli-linux-x64-musl" "2.4.2"
+ "@biomejs/cli-win32-arm64" "2.4.2"
+ "@biomejs/cli-win32-x64" "2.4.2"
-"@biomejs/cli-darwin-arm64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.14.tgz#da942618e1dc2d19322bc11d5dacfe7d7616a502"
- integrity sha512-UJGPpvWJMkLxSRtpCAKfKh41Q4JJXisvxZL8ChN1eNW3m/WlPFJ6EFDCE7YfUb4XS8ZFi3C1dFpxUJ0Ety5n+A==
+"@biomejs/cli-darwin-arm64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.2.tgz#a748ec0a0d8f4ea559b4a3834e8981500caaa5fa"
+ integrity sha512-3pEcKCP/1POKyaZZhXcxFl3+d9njmeAihZ17k8lL/1vk+6e0Cbf0yPzKItFiT+5Yh6TQA4uKvnlqe0oVZwRxCA==
-"@biomejs/cli-darwin-x64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.14.tgz#3ad06cce8ef6d2b935582011bd0cc3ca98a9554d"
- integrity sha512-PNkLNQG6RLo8lG7QoWe/hhnMxJIt1tEimoXpGQjwS/dkdNiKBLPv4RpeQl8o3s1OKI3ZOR5XPiYtmbGGHAOnLA==
+"@biomejs/cli-darwin-x64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.2.tgz#b825d247a7e582c00c9782524284bea2033a272c"
+ integrity sha512-P7hK1jLVny+0R9UwyGcECxO6sjETxfPyBm/1dmFjnDOHgdDPjPqozByunrwh4xPKld8sxOr5eAsSqal5uKgeBg==
-"@biomejs/cli-linux-arm64-musl@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.14.tgz#e92681273dc59ac57b75b72f1b64a67543e50f8c"
- integrity sha512-LInRbXhYujtL3sH2TMCH/UBwJZsoGwfQjBrMfl84CD4hL/41C/EU5mldqf1yoFpsI0iPWuU83U+nB2TUUypWeg==
+"@biomejs/cli-linux-arm64-musl@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.2.tgz#9a2d15f525928f06d21fbc0eaea2e332be3ed5d9"
+ integrity sha512-/x04YK9+7erw6tYEcJv9WXoBHcULI/wMOvNdAyE9S3JStZZ9yJyV67sWAI+90UHuDo/BDhq0d96LDqGlSVv7WA==
-"@biomejs/cli-linux-arm64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.14.tgz#bab43ee0a88ba15a6d59ec648a4b415d68d6eeb7"
- integrity sha512-KT67FKfzIw6DNnUNdYlBg+eU24Go3n75GWK6NwU4+yJmDYFe9i/MjiI+U/iEzKvo0g7G7MZqoyrhIYuND2w8QQ==
+"@biomejs/cli-linux-arm64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.2.tgz#0f7928a3253cdb10ebf5884db452d81d7a49ba30"
+ integrity sha512-DI3Mi7GT2zYNgUTDEbSjl3e1KhoP76OjQdm8JpvZYZWtVDRyLd3w8llSr2TWk1z+U3P44kUBWY3X7H9MD1/DGQ==
-"@biomejs/cli-linux-x64-musl@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.14.tgz#ee90f7110dafdedf4644e0a27ac242975dcd88d3"
- integrity sha512-KQU7EkbBBuHPW3/rAcoiVmhlPtDSGOGRPv9js7qJVpYTzjQmVR+C9Rfcz+ti8YCH+zT1J52tuBybtP4IodjxZQ==
+"@biomejs/cli-linux-x64-musl@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.2.tgz#07c971451e62f6e147ec58b7acae345792d331b1"
+ integrity sha512-wbBmTkeAoAYbOQ33f6sfKG7pcRSydQiF+dTYOBjJsnXO2mWEOQHllKlC2YVnedqZFERp2WZhFUoO7TNRwnwEHQ==
-"@biomejs/cli-linux-x64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.14.tgz#d152e61c6dc847836ebc741fb70fe305414aa7fe"
- integrity sha512-ZsZzQsl9U+wxFrGGS4f6UxREUlgHwmEfu1IrXlgNFrNnd5Th6lIJr8KmSzu/+meSa9f4rzFrbEW9LBBA6ScoMA==
+"@biomejs/cli-linux-x64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.2.tgz#0c7755fe8b5b2745d6afa8e14806591aefef52e3"
+ integrity sha512-GK2ErnrKpWFigYP68cXiCHK4RTL4IUWhK92AFS3U28X/nuAL5+hTuy6hyobc8JZRSt+upXt1nXChK+tuHHx4mA==
-"@biomejs/cli-win32-arm64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.14.tgz#2c59e84f3d172bada2a1df94d6cf7e511c244a4e"
- integrity sha512-+IKYkj/pUBbnRf1G1+RlyA3LWiDgra1xpS7H2g4BuOzzRbRB+hmlw0yFsLprHhbbt7jUzbzAbAjK/Pn0FDnh1A==
+"@biomejs/cli-win32-arm64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.2.tgz#a25007d0eb8ac4bbf81fb0fd010a68ce38fd46d1"
+ integrity sha512-k2uqwLYrNNxnaoiW3RJxoMGnbKda8FuCmtYG3cOtVljs3CzWxaTR+AoXwKGHscC9thax9R4kOrtWqWN0+KdPTw==
-"@biomejs/cli-win32-x64@2.3.14":
- version "2.3.14"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.14.tgz#44405162f255fe153a5ff99379510c058bf7a1e8"
- integrity sha512-oizCjdyQ3WJEswpb3Chdngeat56rIdSYK12JI3iI11Mt5T5EXcZ7WLuowzEaFPNJ3zmOQFliMN8QY1Pi+qsfdQ==
+"@biomejs/cli-win32-x64@2.4.2":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.2.tgz#7693a47973bd1c910a7ce3d7eb8133292f779646"
+ integrity sha512-9ma7C4g8Sq3cBlRJD2yrsHXB1mnnEBdpy7PhvFrylQWQb4PoyCmPucdX7frvsSBQuFtIiKCrolPl/8tCZrKvgQ==
"@emotion/babel-plugin@^11.13.5":
version "11.13.5"
@@ -749,10 +749,10 @@
uncontrollable "^8.0.4"
warning "^4.0.3"
-"@rolldown/pluginutils@1.0.0-rc.2":
- version "1.0.0-rc.2"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.2.tgz#10324e74cb3396cb7b616042ea7e9e6aa7d8d458"
- integrity sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==
+"@rolldown/pluginutils@1.0.0-rc.3":
+ version "1.0.0-rc.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5"
+ integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==
"@rollup/rollup-android-arm-eabi@4.50.0":
version "4.50.0"
@@ -908,10 +908,10 @@
dependencies:
"@tanstack/query-devtools" "5.93.0"
-"@tanstack/react-query@^5.90.20":
- version "5.90.20"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.20.tgz#42bb7018bfedc72f216b6e9b4052c919063f350b"
- integrity sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==
+"@tanstack/react-query@^5.90.21":
+ version "5.90.21"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.21.tgz#e0eb40831a76510be438109435b8807ef63ab1b9"
+ integrity sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==
dependencies:
"@tanstack/query-core" "5.90.20"
@@ -1111,10 +1111,10 @@
resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz"
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
-"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.10":
- version "19.2.10"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.10.tgz#f3ea799e6b4cebad6dfd231c238fc9de7652e2d2"
- integrity sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==
+"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.14":
+ version "19.2.14"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad"
+ integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==
dependencies:
csstype "^3.2.2"
@@ -1159,15 +1159,15 @@
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-"@vitejs/plugin-react@^5.1.3":
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.3.tgz#05eba092cc89a6ff89668d3f62258e2c5a8a9122"
- integrity sha512-NVUnA6gQCl8jfoYqKqQU5Clv0aPw14KkZYCsX6T9Lfu9slI0LOU10OTwFHS/WmptsMMpshNd/1tuWsHQ2Uk+cg==
+"@vitejs/plugin-react@^5.1.4":
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz#5b477e060bf612a7394c4febacc5de33a219b0e4"
+ integrity sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==
dependencies:
"@babel/core" "^7.29.0"
"@babel/plugin-transform-react-jsx-self" "^7.27.1"
"@babel/plugin-transform-react-jsx-source" "^7.27.1"
- "@rolldown/pluginutils" "1.0.0-rc.2"
+ "@rolldown/pluginutils" "1.0.0-rc.3"
"@types/babel__core" "^7.20.5"
react-refresh "^0.18.0"
@@ -1383,10 +1383,10 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-country-flag-icons@^1.6.12:
- version "1.6.12"
- resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.6.12.tgz#f32f9fd6f371bf3dc9389ed5cf85150b80b20c00"
- integrity sha512-tWxbBylam6Fkkg0nu+112jmny4WomHXgmdTQFobs/+evTyizSc06bCp//HAh4W1i+g1m06uqlbPuyLC5mrimkQ==
+country-flag-icons@^1.6.13:
+ version "1.6.13"
+ resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.6.13.tgz#744de466baf5d8189942ba08fc57167f74037282"
+ integrity sha512-mR9GoTXtj3zAXoZXBkb3J4QvyDllFEPtEfZvHb9U23TAHYXfkJyP03pRtZiR0spxo6Ibja3R/hn6a68T4LHBuA==
css.escape@^1.5.1:
version "1.5.1"
@@ -1472,12 +1472,7 @@ electron-to-chromium@^1.5.211:
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.213.tgz"
integrity sha512-xr9eRzSLNa4neDO0xVFrkXu3vyIzG4Ay08dApecw42Z1NbmCt+keEpXdvlYGVe0wtvY5dhW0Ay0lY0IOfsCg0Q==
-entities@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
- integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
-
-entities@^6.0.0:
+entities@^6.0.0, entities@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz"
integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==
@@ -1632,15 +1627,15 @@ globrex@^0.1.2:
resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz"
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
-happy-dom@^20.5.0:
- version "20.5.0"
- resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.5.0.tgz#64899aad7272f7e02a728e231bc9c151b872a3a5"
- integrity sha512-VQe+Q5CYiGOgcCERXhcfNsbnrN92FDEKciMH/x6LppU9dd0j4aTjCTlqONFOIMcAm/5JxS3+utowbXV1OoFr+g==
+happy-dom@^20.6.1:
+ version "20.6.1"
+ resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.6.1.tgz#af9cf1722871621334e0451b01548d551c91b515"
+ integrity sha512-+0vhESXXhFwkdjZnJ5DlmJIfUYGgIEEjzIjB+aKJbFuqlvvKyOi+XkI1fYbgYR9QCxG5T08koxsQ6HrQfa5gCQ==
dependencies:
"@types/node" ">=20.0.0"
"@types/whatwg-mimetype" "^3.0.2"
"@types/ws" "^8.18.1"
- entities "^4.5.0"
+ entities "^6.0.1"
whatwg-mimetype "^3.0.0"
ws "^8.18.3"
@@ -3057,10 +3052,10 @@ vite-plugin-checker@^0.12.0:
tinyglobby "^0.2.15"
vscode-uri "^3.1.0"
-vite-tsconfig-paths@^6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.0.5.tgz#5bcbb44d6ae0d12fe42f5915a6ad9846b0ed7805"
- integrity sha512-f/WvY6ekHykUF1rWJUAbCU7iS/5QYDIugwpqJA+ttwKbxSbzNlqlE8vZSrsnxNQciUW+z6lvhlXMaEyZn9MSig==
+vite-tsconfig-paths@^6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz#d5c28cba79c89ebf76489ef1040024b21df6da3a"
+ integrity sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==
dependencies:
debug "^4.1.1"
globrex "^0.1.2"
diff --git a/scripts/buildx b/scripts/buildx
index 5ad77ed9..8838290a 100755
--- a/scripts/buildx
+++ b/scripts/buildx
@@ -22,7 +22,7 @@ docker buildx build \
--build-arg BUILD_DATE="$(date '+%Y-%m-%d %T %Z')" \
--build-arg GOPROXY="${GOPROXY:-}" \
--build-arg GOPRIVATE="${GOPRIVATE:-}" \
- --platform linux/amd64,linux/arm64,linux/arm/7 \
+ --platform linux/amd64,linux/arm64 \
--progress plain \
--pull \
-f docker/Dockerfile \
diff --git a/test/package.json b/test/package.json
index 32da94bf..2a4213dd 100644
--- a/test/package.json
+++ b/test/package.json
@@ -11,7 +11,7 @@
"cypress": "^15.9.0",
"cypress-multi-reporters": "^2.0.5",
"cypress-wait-until": "^3.0.2",
- "eslint": "^9.39.0",
+ "eslint": "^10.0.0",
"eslint-plugin-align-assignments": "^1.1.2",
"eslint-plugin-chai-friendly": "^1.1.0",
"eslint-plugin-cypress": "^5.2.0",
diff --git a/test/yarn.lock b/test/yarn.lock
index c788d29e..a63f3255 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -82,65 +82,45 @@
dependencies:
eslint-visitor-keys "^3.4.3"
-"@eslint-community/regexpp@^4.12.1":
- version "4.12.1"
- resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
- integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
+"@eslint-community/regexpp@^4.12.2":
+ version "4.12.2"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b"
+ integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
-"@eslint/config-array@^0.21.1":
- version "0.21.1"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713"
- integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==
+"@eslint/config-array@^0.23.0":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.23.1.tgz#908223da7b9148f1af5bfb3144b77a9387a89446"
+ integrity sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==
dependencies:
- "@eslint/object-schema" "^2.1.7"
+ "@eslint/object-schema" "^3.0.1"
debug "^4.3.1"
- minimatch "^3.1.2"
+ minimatch "^10.1.1"
-"@eslint/config-helpers@^0.4.2":
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda"
- integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==
+"@eslint/config-helpers@^0.5.2":
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.5.2.tgz#314c7b03d02a371ad8c0a7f6821d5a8a8437ba9d"
+ integrity sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==
dependencies:
- "@eslint/core" "^0.17.0"
+ "@eslint/core" "^1.1.0"
-"@eslint/core@^0.17.0":
- version "0.17.0"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c"
- integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==
+"@eslint/core@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-1.1.0.tgz#51f5cd970e216fbdae6721ac84491f57f965836d"
+ integrity sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==
dependencies:
"@types/json-schema" "^7.0.15"
-"@eslint/eslintrc@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964"
- integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==
+"@eslint/object-schema@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.1.tgz#9a1dc9af00d790dc79a9bf57a756e3cb2740ddb9"
+ integrity sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==
+
+"@eslint/plugin-kit@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.6.0.tgz#e0cb12ec66719cb2211ad36499fb516f2a63899d"
+ integrity sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==
dependencies:
- ajv "^6.12.4"
- debug "^4.3.2"
- espree "^10.0.1"
- globals "^14.0.0"
- ignore "^5.2.0"
- import-fresh "^3.2.1"
- js-yaml "^4.1.0"
- minimatch "^3.1.2"
- strip-json-comments "^3.1.1"
-
-"@eslint/js@9.39.2":
- version "9.39.2"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.2.tgz#2d4b8ec4c3ea13c1b3748e0c97ecd766bdd80599"
- integrity sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==
-
-"@eslint/object-schema@^2.1.7":
- version "2.1.7"
- resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad"
- integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==
-
-"@eslint/plugin-kit@^0.4.1":
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2"
- integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==
- dependencies:
- "@eslint/core" "^0.17.0"
+ "@eslint/core" "^1.1.0"
levn "^0.4.1"
"@humanfs/core@^0.19.1":
@@ -171,6 +151,18 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba"
integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==
+"@isaacs/balanced-match@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29"
+ integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==
+
+"@isaacs/brace-expansion@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz#0ef5a92d91f2fff2a37646ce54da9e5f599f6eff"
+ integrity sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==
+ dependencies:
+ "@isaacs/balanced-match" "^4.0.1"
+
"@isaacs/cliui@^8.0.2":
version "8.0.2"
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -217,9 +209,9 @@
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@quobix/vacuum@^0.23.4":
- version "0.23.5"
- resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.23.5.tgz#f8cbfb27cdec7437b516422752545439039c26c9"
- integrity sha512-4/ybLW692DNkX/kXT/CRTkFF3bOqP5L+hRd7G49bUbXqAkU5E2WwB0z6xEYoVkB+BDDDYm35sw4pzARjJfXcUA==
+ version "0.23.8"
+ resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.23.8.tgz#a994d6db71b483bc34b6683c8c069ef4f26e3e2b"
+ integrity sha512-fdxBgELoyJWabN5yeaQWlu0IREabqlPQb5EgFQjA7Plc1YjUFIXzh4RMFpQ1OJ/D6OtxXY6SeifEAy0HihQ7Qw==
dependencies:
https-proxy-agent "^7.0.6"
node-fetch "^3.3.2"
@@ -230,10 +222,15 @@
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
-"@types/estree@^1.0.6":
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
- integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+"@types/esrecurse@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@types/esrecurse/-/esrecurse-4.3.1.tgz#6f636af962fbe6191b830bd676ba5986926bccec"
+ integrity sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==
+
+"@types/estree@^1.0.6", "@types/estree@^1.0.8":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
+ integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
"@types/json-schema@^7.0.15":
version "7.0.15"
@@ -424,12 +421,12 @@ aws4@^1.8.0:
integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
axios@^1.13.1, axios@^1.7.7:
- version "1.13.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.4.tgz#15d109a4817fb82f73aea910d41a2c85606076bc"
- integrity sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==
+ version "1.13.5"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.5.tgz#5e464688fa127e11a660a2c49441c009f6567a43"
+ integrity sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==
dependencies:
- follow-redirects "^1.15.6"
- form-data "^4.0.4"
+ follow-redirects "^1.15.11"
+ form-data "^4.0.5"
proxy-from-env "^1.1.0"
balanced-match@^1.0.0:
@@ -459,14 +456,6 @@ bluebird@^3.7.2:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-brace-expansion@^1.1.7:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
- integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
brace-expansion@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
@@ -518,11 +507,6 @@ call-me-maybe@^1.0.1:
resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
camelcase@^6.0.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
@@ -533,7 +517,7 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@^4.0.0, chalk@^4.1.0:
+chalk@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
@@ -645,11 +629,6 @@ common-tags@^1.8.0:
resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -684,9 +663,9 @@ cypress-wait-until@^3.0.2:
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
cypress@^15.9.0:
- version "15.9.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.9.0.tgz#9bcbbfbf3923d8aca7d06990cb174d5ba67e4084"
- integrity sha512-Ks6Bdilz3TtkLZtTQyqYaqtL/WT3X3APKaSLhTV96TmTyudzSjc6EJsJCHmBb7DxO+3R12q3Jkbjgm/iPgmwfg==
+ version "15.10.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.10.0.tgz#06bed98a690fad1b98a21010613f9c8c7fa9f639"
+ integrity sha512-OtUh7OMrfEjKoXydlAD1CfG2BvKxIqgWGY4/RMjrqQ3BKGBo5JFKoYNH+Tpcj4xKxWH4XK0Xri+9y8WkxhYbqQ==
dependencies:
"@cypress/request" "^3.0.10"
"@cypress/xvfb" "^1.2.4"
@@ -716,7 +695,7 @@ cypress@^15.9.0:
hasha "5.2.2"
is-installed-globally "~0.4.0"
listr2 "^3.8.3"
- lodash "^4.17.21"
+ lodash "^4.17.23"
log-symbols "^4.0.0"
minimist "^1.2.8"
ospath "^1.2.2"
@@ -748,7 +727,7 @@ dayjs@^1.10.4:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2"
integrity sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==
-debug@4:
+debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
version "4.4.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
@@ -762,19 +741,12 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
-debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b"
- integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==
- dependencies:
- ms "^2.1.3"
-
decamelize@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
-deep-is@^0.1.3, deep-is@~0.1.3:
+deep-is@^0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
@@ -877,15 +849,14 @@ escape-string-regexp@^4.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-escodegen@^1.8.1:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
- integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
+escodegen@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17"
+ integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==
dependencies:
- esprima "^3.1.3"
- estraverse "^4.2.0"
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
esutils "^2.0.2"
- optionator "^0.8.1"
optionalDependencies:
source-map "~0.6.1"
@@ -900,17 +871,19 @@ eslint-plugin-chai-friendly@^1.1.0:
integrity sha512-+T1rClpDdXkgBAhC16vRQMI5umiWojVqkj9oUTdpma50+uByCZM/oBfxitZiOkjMRlm725mwFfz/RVgyDRvCKA==
eslint-plugin-cypress@^5.2.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-5.2.1.tgz#0ce3fbe694174068403b3c0c2de252896317b97d"
- integrity sha512-HTJLbcd7fwJ4agbHinZ4FUIl38bUTJT3BmH8zdgS2V32LETmPqCtWHi3xlgZ2vpX0aW6kQoHCVVqHm8NxZJ9sA==
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-5.3.0.tgz#52cb5397829a765a22680ccb010e81b73d249fb2"
+ integrity sha512-qjHF2Sdi3VkXSMnfQeUqsbYnessgc6T2dus/Q1U+e5102GpPy9eLd8MWW2Xp2SS9bMpPNLnSHwktMhCKr0dIBg==
dependencies:
- globals "^16.2.0"
+ globals "^16.5.0"
-eslint-scope@^8.4.0:
- version "8.4.0"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
- integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
+eslint-scope@^9.1.0:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-9.1.0.tgz#dfcb41d6c0d73df6b977a50cf3e91c41ddb4154e"
+ integrity sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==
dependencies:
+ "@types/esrecurse" "^4.3.1"
+ "@types/estree" "^1.0.8"
esrecurse "^4.3.0"
estraverse "^5.2.0"
@@ -919,37 +892,34 @@ eslint-visitor-keys@^3.4.3:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint-visitor-keys@^4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
- integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
+eslint-visitor-keys@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz#b9aa1a74aa48c44b3ae46c1597ce7171246a94a9"
+ integrity sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==
-eslint@^9.39.0:
- version "9.39.2"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.2.tgz#cb60e6d16ab234c0f8369a3fe7cc87967faf4b6c"
- integrity sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==
+eslint@^10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.0.0.tgz#c93c36a96d91621d0fbb680db848ea11af56ab1e"
+ integrity sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==
dependencies:
"@eslint-community/eslint-utils" "^4.8.0"
- "@eslint-community/regexpp" "^4.12.1"
- "@eslint/config-array" "^0.21.1"
- "@eslint/config-helpers" "^0.4.2"
- "@eslint/core" "^0.17.0"
- "@eslint/eslintrc" "^3.3.1"
- "@eslint/js" "9.39.2"
- "@eslint/plugin-kit" "^0.4.1"
+ "@eslint-community/regexpp" "^4.12.2"
+ "@eslint/config-array" "^0.23.0"
+ "@eslint/config-helpers" "^0.5.2"
+ "@eslint/core" "^1.1.0"
+ "@eslint/plugin-kit" "^0.6.0"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.4.2"
"@types/estree" "^1.0.6"
ajv "^6.12.4"
- chalk "^4.0.0"
cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^8.4.0"
- eslint-visitor-keys "^4.2.1"
- espree "^10.4.0"
- esquery "^1.5.0"
+ eslint-scope "^9.1.0"
+ eslint-visitor-keys "^5.0.0"
+ espree "^11.1.0"
+ esquery "^1.7.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^8.0.0"
@@ -959,39 +929,33 @@ eslint@^9.39.0:
imurmurhash "^0.1.4"
is-glob "^4.0.0"
json-stable-stringify-without-jsonify "^1.0.1"
- lodash.merge "^4.6.2"
- minimatch "^3.1.2"
+ minimatch "^10.1.1"
natural-compare "^1.4.0"
optionator "^0.9.3"
-espree@^10.0.1, espree@^10.4.0:
- version "10.4.0"
- resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
- integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
+espree@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-11.1.0.tgz#7d0c82a69f8df670728dba256264b383fbf73e8f"
+ integrity sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==
dependencies:
acorn "^8.15.0"
acorn-jsx "^5.3.2"
- eslint-visitor-keys "^4.2.1"
+ eslint-visitor-keys "^5.0.0"
-esprima@1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b"
- integrity sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=
+esprima@1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9"
+ integrity sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==
-esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
- integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
-
-esprima@^4.0.0:
+esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
- integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
+esquery@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d"
+ integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==
dependencies:
estraverse "^5.1.0"
@@ -1002,11 +966,6 @@ esrecurse@^4.3.0:
dependencies:
estraverse "^5.2.0"
-estraverse@^4.2.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
estraverse@^5.1.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
@@ -1085,7 +1044,7 @@ fast-json-stable-stringify@^2.0.0:
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
+fast-levenshtein@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
@@ -1150,10 +1109,10 @@ flatted@^3.2.9:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
-follow-redirects@^1.15.6:
- version "1.15.9"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
- integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
+follow-redirects@^1.15.11:
+ version "1.15.11"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
+ integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
foreground-child@^3.1.0:
version "3.3.1"
@@ -1168,7 +1127,7 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-form-data@^4.0.4, form-data@~4.0.4:
+form-data@^4.0.4, form-data@^4.0.5, form-data@~4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053"
integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==
@@ -1270,12 +1229,7 @@ global-dirs@^3.0.0:
dependencies:
ini "2.0.0"
-globals@^14.0.0:
- version "14.0.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
- integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
-
-globals@^16.2.0:
+globals@^16.5.0:
version "16.5.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-16.5.0.tgz#ccf1594a437b97653b2be13ed4d8f5c9f850cac1"
integrity sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==
@@ -1359,14 +1313,6 @@ ignore@^5.2.0:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
-import-fresh@^3.2.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
- integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
- dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
-
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -1516,13 +1462,13 @@ jsonfile@^6.0.1:
graceful-fs "^4.1.6"
jsonpath@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901"
- integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.2.1.tgz#2b74a4bcc78948e43e33ac971138ce0c68bce701"
+ integrity sha512-Jl6Jhk0jG+kP3yk59SSeGq7LFPR4JQz1DU0K+kXTysUhMostbhU3qh5mjTuf0PqFcXpAT7kvmMt9WxV10NyIgQ==
dependencies:
- esprima "1.2.2"
- static-eval "2.0.2"
- underscore "1.12.1"
+ esprima "1.2.5"
+ static-eval "2.1.1"
+ underscore "1.13.6"
jsprim@^2.0.2:
version "2.0.2"
@@ -1549,14 +1495,6 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
-levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
listr2@^3.8.3:
version "3.14.0"
resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e"
@@ -1578,17 +1516,12 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
-lodash.merge@^4.6.2:
- version "4.6.2"
- resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
- integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-
lodash.once@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
-lodash@^4.17.21:
+lodash@^4.17.21, lodash@^4.17.23:
version "4.17.23"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
@@ -1652,12 +1585,12 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+minimatch@^10.1.1:
+ version "10.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.2.tgz#6c3f289f9de66d628fa3feb1842804396a43d81c"
+ integrity sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==
dependencies:
- brace-expansion "^1.1.7"
+ "@isaacs/brace-expansion" "^5.0.1"
minimatch@^9.0.4, minimatch@^9.0.5:
version "9.0.5"
@@ -1781,18 +1714,6 @@ openapi-types@^12.1.3:
resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3"
integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==
-optionator@^0.8.1:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
- integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.6"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- word-wrap "~1.2.3"
-
optionator@^0.9.3:
version "0.9.4"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
@@ -1836,13 +1757,6 @@ package-json-from-dist@^1.0.0:
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
- integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- dependencies:
- callsites "^3.0.0"
-
path-exists@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
@@ -1886,11 +1800,6 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
- integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-
pretty-bytes@^5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
@@ -1925,9 +1834,9 @@ punycode@^2.1.0:
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qs@~6.14.1:
- version "6.14.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
- integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
+ version "6.14.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c"
+ integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==
dependencies:
side-channel "^1.1.0"
@@ -1960,11 +1869,6 @@ require-from-string@^2.0.2:
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
- integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
restore-cursor@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
@@ -2117,12 +2021,12 @@ sshpk@^1.18.0:
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
-static-eval@2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42"
- integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==
+static-eval@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.1.tgz#71ac6a13aa32b9e14c5b5f063c362176b0d584ba"
+ integrity sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==
dependencies:
- escodegen "^1.8.1"
+ escodegen "^2.1.0"
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
@@ -2291,13 +2195,6 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
- dependencies:
- prelude-ls "~1.1.2"
-
type-fest@^0.21.3:
version "0.21.3"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
@@ -2308,10 +2205,10 @@ type-fest@^0.8.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-underscore@1.12.1:
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e"
- integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==
+underscore@1.13.6:
+ version "1.13.6"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
+ integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
universalify@^2.0.0:
version "2.0.0"
@@ -2361,11 +2258,6 @@ word-wrap@^1.2.5:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
-word-wrap@~1.2.3:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f"
- integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==
-
workerpool@^9.2.0:
version "9.3.2"
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.2.tgz#4c045a8b437ae1bc70c646af11929a8b4d238656"