From 187d21a0d5f5145a9f4a2e8b719381ff91ec5bfa Mon Sep 17 00:00:00 2001 From: jerry-yuan Date: Sat, 31 Jan 2026 13:11:47 +0000 Subject: [PATCH 01/29] feat: add trust_forwarded_proto option for SSL redirect handling in reverse proxy scenarios When Nginx is behind another proxy server (like CloudFlare or AWS ALB), the force-SSL feature can cause redirect loops because Nginx sees the connection as plain HTTP while SSL is already handled upstream. This adds a new boolean option to trust the X-Forwarded-Proto header from upstream proxies. Changes: - Add `trust_forwarded_proto` column to proxy_host table (migration) - Update model and API schema to support the new boolean field - Modify force-ssl Nginx template to check X-Forwarded-Proto/X-Forwarded-Scheme - Add map directives in nginx.conf to validate and sanitize forwarded headers - Add advanced option toggle in frontend UI with i18n support (EN/ZH) - Set proxy headers from validated map variables instead of $scheme This allows administrators to control SSL redirect behavior when Nginx is deployed behind a TLS-terminating proxy. --- .../20260131163528_trust_forwarded_proto.js | 31 +++++++++++++++++++ backend/models/proxy_host.js | 1 + .../schema/components/proxy-host-object.json | 7 ++++- .../paths/nginx/proxy-hosts/hostID/put.json | 3 ++ .../schema/paths/nginx/proxy-hosts/post.json | 3 ++ backend/templates/_forced_ssl.conf | 5 +++ .../etc/nginx/conf.d/include/force-ssl.conf | 16 ++++++++++ .../etc/nginx/conf.d/include/proxy.conf | 4 +-- docker/rootfs/etc/nginx/nginx.conf | 12 +++++++ frontend/src/api/backend/models.ts | 1 + .../src/components/Form/SSLOptionsFields.tsx | 27 +++++++++++++++- frontend/src/hooks/useProxyHost.ts | 1 + frontend/src/locale/src/en.json | 6 ++++ frontend/src/locale/src/zh.json | 6 ++++ frontend/src/modals/ProxyHostModal.tsx | 1 + 15 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 backend/migrations/20260131163528_trust_forwarded_proto.js diff --git a/backend/migrations/20260131163528_trust_forwarded_proto.js b/backend/migrations/20260131163528_trust_forwarded_proto.js new file mode 100644 index 00000000..e982dbf7 --- /dev/null +++ b/backend/migrations/20260131163528_trust_forwarded_proto.js @@ -0,0 +1,31 @@ +import { migrate as logger } from "../logger.js"; + +const migrateName = "redirect_auto_scheme"; + +/** + * Migrate + * + * @see http://knexjs.org/#Schema + * + * @param {Object} knex + * @returns {Promise} + */ +const up = function (knex) { + return knex.schema.alterTable('proxy_host', (table) => { + table.tinyint('trust_forwarded_proto').notNullable().defaultTo(0); + }); +}; + +/** + * Undo Migrate + * + * @param {Object} knex + * @returns {Promise} + */ +const down = function (knex) { + return knex.schema.alterTable('proxy_host', (table) => { + table.dropColumn('trust_forwarded_proto'); + }); +}; + +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/schema/components/proxy-host-object.json b/backend/schema/components/proxy-host-object.json index 464b188e..cebbe0e6 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,10 @@ "hsts_subdomains": { "$ref": "../common.json#/properties/hsts_subdomains" }, + "trust_forwarded_proto":{ + "type": "boolean", + "example": false + }, "certificate": { "oneOf": [ { diff --git a/backend/schema/paths/nginx/proxy-hosts/hostID/put.json b/backend/schema/paths/nginx/proxy-hosts/hostID/put.json index 7ae60e1a..98b370bc 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" }, diff --git a/backend/schema/paths/nginx/proxy-hosts/post.json b/backend/schema/paths/nginx/proxy-hosts/post.json index 77d772e9..e0763d9d 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" }, 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/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf index e43c2fc8..000bffe9 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,25 @@ 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_proto ""; +if ($trust_forwarded_proto = T){ + set $test_proto "${test_proto}T"; +} if ($http_x_forwarded_proto = "https") { + set $test_proto "${test_proto}S"; +} +if ($http_x_forwarded_scheme = "https") { + set $test_proto "${test_proto}S"; +} +if ($test_proto = "TSS") { + set $test_proto "TS"; +} +if ($test_proto = "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/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..a697c5f0 100644 --- a/frontend/src/components/Form/SSLOptionsFields.tsx +++ b/frontend/src/components/Form/SSLOptionsFields.tsx @@ -15,7 +15,7 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain 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) { @@ -140,6 +140,31 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain {dnsChallenge ? : null} ) : null} + {
+
+ +
+
+ + {({ field }: any) => ( + + )} + +
+
+
+
} ); } 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/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/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..4a37962c 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 || {}, From 2b6a61759920d1cc1652ef14a55fcf68aac4d857 Mon Sep 17 00:00:00 2001 From: jerry-yuan Date: Sat, 31 Jan 2026 13:28:53 +0000 Subject: [PATCH 02/29] fix: reformat migration scripts --- .../20260131163528_trust_forwarded_proto.js | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/backend/migrations/20260131163528_trust_forwarded_proto.js b/backend/migrations/20260131163528_trust_forwarded_proto.js index e982dbf7..546cbca6 100644 --- a/backend/migrations/20260131163528_trust_forwarded_proto.js +++ b/backend/migrations/20260131163528_trust_forwarded_proto.js @@ -1,6 +1,6 @@ import { migrate as logger } from "../logger.js"; -const migrateName = "redirect_auto_scheme"; +const migrateName = "trust_forwarded_proto"; /** * Migrate @@ -11,9 +11,15 @@ const migrateName = "redirect_auto_scheme"; * @returns {Promise} */ const up = function (knex) { - return knex.schema.alterTable('proxy_host', (table) => { - table.tinyint('trust_forwarded_proto').notNullable().defaultTo(0); - }); + 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`); + }); }; /** @@ -23,9 +29,15 @@ const up = function (knex) { * @returns {Promise} */ const down = function (knex) { - return knex.schema.alterTable('proxy_host', (table) => { - table.dropColumn('trust_forwarded_proto'); - }); + 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 From 054742539fad428dc5c471dd8361abe625c8ed4d Mon Sep 17 00:00:00 2001 From: jerry-yuan Date: Sat, 31 Jan 2026 14:17:05 +0000 Subject: [PATCH 03/29] fix: Supplement Swagger documentation --- backend/schema/components/proxy-host-object.json | 1 + backend/schema/paths/nginx/proxy-hosts/get.json | 3 ++- backend/schema/paths/nginx/proxy-hosts/hostID/get.json | 1 + backend/schema/paths/nginx/proxy-hosts/hostID/put.json | 1 + backend/schema/paths/nginx/proxy-hosts/post.json | 1 + 5 files changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/schema/components/proxy-host-object.json b/backend/schema/components/proxy-host-object.json index cebbe0e6..3ac64621 100644 --- a/backend/schema/components/proxy-host-object.json +++ b/backend/schema/components/proxy-host-object.json @@ -144,6 +144,7 @@ }, "trust_forwarded_proto":{ "type": "boolean", + "description": "Trust the forwarded headers", "example": false }, "certificate": { 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 98b370bc..fc319845 100644 --- a/backend/schema/paths/nginx/proxy-hosts/hostID/put.json +++ b/backend/schema/paths/nginx/proxy-hosts/hostID/put.json @@ -125,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 e0763d9d..28ddad8f 100644 --- a/backend/schema/paths/nginx/proxy-hosts/post.json +++ b/backend/schema/paths/nginx/proxy-hosts/post.json @@ -122,6 +122,7 @@ "locations": [], "hsts_enabled": false, "hsts_subdomains": false, + "trust_forwarded_proto": false, "certificate": null, "owner": { "id": 1, From 232b5b759a74f70da12a860da9e1c58ae27774a3 Mon Sep 17 00:00:00 2001 From: Jerry Date: Sun, 1 Feb 2026 00:16:17 +0800 Subject: [PATCH 04/29] fix: make variable name meaningful --- .../rootfs/etc/nginx/conf.d/include/force-ssl.conf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 000bffe9..24ef18a0 100644 --- a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf +++ b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf @@ -7,20 +7,20 @@ if ($request_uri = /.well-known/acme-challenge/test-challenge) { } # Check if the ssl staff has been handled -set $test_proto ""; +set $test_ssl_handled ""; if ($trust_forwarded_proto = T){ - set $test_proto "${test_proto}T"; + set $test_ssl_handled "${test_ssl_handled}T"; } if ($http_x_forwarded_proto = "https") { - set $test_proto "${test_proto}S"; + set $test_ssl_handled "${test_ssl_handled}S"; } if ($http_x_forwarded_scheme = "https") { - set $test_proto "${test_proto}S"; + set $test_ssl_handled "${test_ssl_handled}S"; } -if ($test_proto = "TSS") { - set $test_proto "TS"; +if ($test_ssl_handled = "TSS") { + set $test_ssl_handled "TS"; } -if ($test_proto = "TS") { +if ($test_ssl_handled = "TS") { set $test "${test}S"; } From 21f63e3db3dbdb558b2490ae84c4af32af4ee801 Mon Sep 17 00:00:00 2001 From: jerry-yuan Date: Sun, 1 Feb 2026 10:38:09 +0000 Subject: [PATCH 05/29] fix: delete advanced options from redir_host/dead_host/streams --- .../src/components/Form/SSLOptionsFields.tsx | 57 ++++++++++--------- frontend/src/modals/ProxyHostModal.tsx | 2 +- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/frontend/src/components/Form/SSLOptionsFields.tsx b/frontend/src/components/Form/SSLOptionsFields.tsx index a697c5f0..ecf23d26 100644 --- a/frontend/src/components/Form/SSLOptionsFields.tsx +++ b/frontend/src/components/Form/SSLOptionsFields.tsx @@ -5,11 +5,12 @@ 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 || {}; @@ -115,6 +116,34 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain ); + const getHttpAdvancedOptions = () =>( +
+
+ +
+
+ + {({ field }: any) => ( + + )} + +
+
+
+
+ ); + return (
{forHttp ? getHttpOptions() : null} @@ -140,31 +169,7 @@ export function SSLOptionsFields({ forHttp = true, forceDNSForNew, requireDomain {dnsChallenge ? : null} ) : null} - {
-
- -
-
- - {({ field }: any) => ( - - )} - -
-
-
-
} + {forProxyHost && forHttp ? getHttpAdvancedOptions() : null}
); } diff --git a/frontend/src/modals/ProxyHostModal.tsx b/frontend/src/modals/ProxyHostModal.tsx index 4a37962c..3227be51 100644 --- a/frontend/src/modals/ProxyHostModal.tsx +++ b/frontend/src/modals/ProxyHostModal.tsx @@ -340,7 +340,7 @@ const ProxyHostModal = EasyModal.create(({ id, visible, remove }: Props) => { label="ssl-certificate" allowNew /> - +
From 7c67fafedf31b1c4767c45c62b3d5df5bf17837c Mon Sep 17 00:00:00 2001 From: Jozef Gaal Date: Fri, 6 Feb 2026 01:23:59 +0100 Subject: [PATCH 06/29] Update Slovak translation Updated Slovak translations for 2FA and other features --- frontend/src/locale/src/sk.json | 126 ++++++++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 6 deletions(-) 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" }, From b78ef9bcd3a31b4325a475ef5e661df07faeb76e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Nov=C3=A1k?= Date: Fri, 6 Feb 2026 17:02:47 +0100 Subject: [PATCH 07/29] Add Czech translation and related locale files --- frontend/check-locales.cjs | 1 + frontend/src/locale/IntlProvider.tsx | 3 + .../src/locale/src/HelpDoc/cs/AccessLists.md | 7 + .../src/locale/src/HelpDoc/cs/Certificates.md | 32 + .../src/locale/src/HelpDoc/cs/DeadHosts.md | 10 + .../src/locale/src/HelpDoc/cs/ProxyHosts.md | 7 + .../locale/src/HelpDoc/cs/RedirectionHosts.md | 7 + frontend/src/locale/src/HelpDoc/cs/Streams.md | 6 + frontend/src/locale/src/HelpDoc/cs/index.ts | 6 + frontend/src/locale/src/HelpDoc/index.ts | 3 +- frontend/src/locale/src/cs.json | 770 ++++++++++++++++++ frontend/src/locale/src/lang-list.json | 3 + 12 files changed, 854 insertions(+), 1 deletion(-) create mode 100644 frontend/src/locale/src/HelpDoc/cs/AccessLists.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/Certificates.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/DeadHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/ProxyHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/RedirectionHosts.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/Streams.md create mode 100644 frontend/src/locale/src/HelpDoc/cs/index.ts create mode 100644 frontend/src/locale/src/cs.json 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/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/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": "中文" }, From b552eb90ed7ab97c7235bbeb290c49f055fdcfd7 Mon Sep 17 00:00:00 2001 From: kiaxseventh Date: Mon, 9 Feb 2026 13:02:18 +0330 Subject: [PATCH 08/29] Add ArvanCloud DNS support --- backend/certbot/dns-plugins.json | 8 ++++++++ 1 file changed, 8 insertions(+) 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", From 304c51aae88b8b2fec83a41ae35b1b1ac4ef4b90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:28:59 +0000 Subject: [PATCH 09/29] Bump cypress in /test in the prod-minor-updates group Bumps the prod-minor-updates group in /test with 1 update: [cypress](https://github.com/cypress-io/cypress). Updates `cypress` from 15.9.0 to 15.10.0 - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v15.9.0...v15.10.0) --- updated-dependencies: - dependency-name: cypress dependency-version: 15.10.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-minor-updates ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index c788d29e..4e181ccb 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -684,9 +684,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 +716,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 +748,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,13 +762,6 @@ 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" @@ -1588,7 +1581,7 @@ lodash.once@^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== From c910cf9512b9704b6365a2d32cc340022246d370 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:29:11 +0000 Subject: [PATCH 10/29] Bump eslint from 9.39.2 to 10.0.0 in /test Bumps [eslint](https://github.com/eslint/eslint) from 9.39.2 to 10.0.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v9.39.2...v10.0.0) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- test/package.json | 2 +- test/yarn.lock | 240 +++++++++++++++++----------------------------- 2 files changed, 91 insertions(+), 151 deletions(-) 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..fe2e429b 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" @@ -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" @@ -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" @@ -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,13 +741,6 @@ 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" @@ -906,11 +878,13 @@ eslint-plugin-cypress@^5.2.0: dependencies: globals "^16.2.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 +893,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,19 +930,18 @@ 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" @@ -988,10 +958,10 @@ esprima@^4.0.0: 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" @@ -1270,11 +1240,6 @@ 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: version "16.5.0" resolved "https://registry.yarnpkg.com/globals/-/globals-16.5.0.tgz#ccf1594a437b97653b2be13ed4d8f5c9f850cac1" @@ -1359,14 +1324,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" @@ -1578,11 +1535,6 @@ 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" @@ -1652,12 +1604,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" @@ -1836,13 +1788,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" @@ -1960,11 +1905,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" From 09a3d65aa1e280a355172e75ca36982bafe62c25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:29:16 +0000 Subject: [PATCH 11/29] Bump the dev-patch-updates group in /frontend with 2 updates Bumps the dev-patch-updates group in /frontend with 2 updates: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [happy-dom](https://github.com/capricorn86/happy-dom). Updates `@types/react` from 19.2.10 to 19.2.13 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `happy-dom` from 20.5.0 to 20.5.3 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v20.5.0...v20.5.3) --- updated-dependencies: - dependency-name: "@types/react" dependency-version: 19.2.13 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: happy-dom dependency-version: 20.5.3 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates ... Signed-off-by: dependabot[bot] --- frontend/package.json | 4 ++-- frontend/yarn.lock | 25 ++++++++++--------------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index da684a03..78f4f04d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -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.13", "@types/react-dom": "^19.2.3", "@types/react-table": "^7.7.20", "@vitejs/plugin-react": "^5.1.3", - "happy-dom": "^20.5.0", + "happy-dom": "^20.5.3", "postcss": "^8.5.6", "postcss-simple-vars": "^7.0.1", "sass": "^1.97.3", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index ecd07e5a..0288c1db 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -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.13": + version "19.2.13" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.13.tgz#7cea30d7f60a01d97e4ece039c04e9056682218a" + integrity sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ== dependencies: csstype "^3.2.2" @@ -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.5.3: + version "20.5.3" + resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.5.3.tgz#0cc4159c4ca841cd388a45afe452060f41dbb84b" + integrity sha512-xqAxGnkRU0KNhheHpxb3uScqg/aehqUiVto/a9ApWMyNvnH9CAqHYq9dEPAovM6bOGbLstmTfGIln5ZIezEU0g== 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" From 3f2aec7b8643f12a760790c73e636e48244d2341 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 14:29:32 +0000 Subject: [PATCH 12/29] Bump vite-tsconfig-paths in /frontend in the dev-minor-updates group Bumps the dev-minor-updates group in /frontend with 1 update: [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths). Updates `vite-tsconfig-paths` from 6.0.5 to 6.1.0 - [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases) - [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v6.0.5...v6.1.0) --- updated-dependencies: - dependency-name: vite-tsconfig-paths dependency-version: 6.1.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-updates ... Signed-off-by: dependabot[bot] --- frontend/package.json | 2 +- frontend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index da684a03..b202d992 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -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.0", "vitest": "^4.0.18" } } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index ecd07e5a..2c27d713 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3057,10 +3057,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.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.0.tgz#8c3b9ecb676571f7c8f7849d92cd7de3b50faf75" + integrity sha512-kpd3sY9glHIDaq4V/Tlc1Y8WaKtutoc3B525GHxEVKWX42FKfQsXvjFOemu1I8VIN8pNbrMLWVTbW79JaRUxKg== dependencies: debug "^4.1.1" globrex "^0.1.2" From 13fbc53591f8d7e519310fd048815c9cae9d95bf Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 10 Feb 2026 14:54:33 +1000 Subject: [PATCH 13/29] Fix bug when adding invalid custom certs --- backend/internal/certificate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index bde1bdca..50c615b7 100644 --- a/backend/internal/certificate.js +++ b/backend/internal/certificate.js @@ -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, "/tmp"); try { - const filepath = await tempWrite(certificate, "/tmp"); const certData = await internalCertificate.getCertificateInfoFromFile(filepath, throwExpired); fs.unlinkSync(filepath); return certData; From eeab425ea4419c038955433f5ce1c2da75d07eda Mon Sep 17 00:00:00 2001 From: jerry-yuan Date: Tue, 10 Feb 2026 10:52:32 +0000 Subject: [PATCH 14/29] fix: unknown "trust_forwarded_proto" variable error when run with already created old virtual hosts --- docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 24ef18a0..8e58c64a 100644 --- a/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf +++ b/docker/rootfs/etc/nginx/conf.d/include/force-ssl.conf @@ -8,7 +8,10 @@ if ($request_uri = /.well-known/acme-challenge/test-challenge) { # Check if the ssl staff has been handled set $test_ssl_handled ""; -if ($trust_forwarded_proto = T){ +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") { From 5fe12f69baefb3f06ca61c6cf92367f5aa710681 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 20:22:09 +0000 Subject: [PATCH 15/29] Bump axios from 1.13.4 to 1.13.5 in /test Bumps [axios](https://github.com/axios/axios) from 1.13.4 to 1.13.5. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.13.4...v1.13.5) --- updated-dependencies: - dependency-name: axios dependency-version: 1.13.5 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index c788d29e..ca77b851 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -424,12 +424,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: @@ -1150,10 +1150,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 +1168,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== From 099243aff717e8fc5d12920c70070951f7727f73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 15:31:26 +0000 Subject: [PATCH 16/29] Bump jsonpath from 1.1.1 to 1.2.1 in /test Bumps [jsonpath](https://github.com/dchester/jsonpath) from 1.1.1 to 1.2.1. - [Commits](https://github.com/dchester/jsonpath/commits/1.2.1) --- updated-dependencies: - dependency-name: jsonpath dependency-version: 1.2.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 104 +++++++++++++------------------------------------ 1 file changed, 28 insertions(+), 76 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index c788d29e..29a29331 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -774,7 +774,7 @@ decamelize@^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 +877,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" @@ -973,17 +972,12 @@ espree@^10.0.1, espree@^10.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^4.2.1" -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== @@ -1002,11 +996,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 +1074,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= @@ -1516,13 +1505,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 +1538,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" @@ -1781,18 +1762,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" @@ -1886,11 +1855,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" @@ -2117,12 +2081,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 +2255,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 +2265,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 +2318,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" From 1d14f72ba568410623197e614ec828d64570e170 Mon Sep 17 00:00:00 2001 From: 7heMech <83923848+7heMech@users.noreply.github.com> Date: Sat, 14 Feb 2026 06:28:59 +0000 Subject: [PATCH 17/29] Add guardrail for disable 2fa --- backend/internal/2fa.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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"); From 1b6412688b419a0a0d9aab61589a9ac1ff54109a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 12:44:05 +0000 Subject: [PATCH 18/29] Bump qs from 6.14.1 to 6.14.2 in /backend Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- backend/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/yarn.lock b/backend/yarn.lock index 47954da1..18cad9fc 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -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" From d92cc953e1040da6a3a3ea6c78334275121d3662 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 12:44:07 +0000 Subject: [PATCH 19/29] Bump qs from 6.14.1 to 6.14.2 in /test Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2. - [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md) - [Commits](https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2) --- updated-dependencies: - dependency-name: qs dependency-version: 6.14.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index c788d29e..5ce54b38 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -1925,9 +1925,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" From a62b6de9f25edf2a09af46a2c8470fe602907757 Mon Sep 17 00:00:00 2001 From: Yan Kuang Date: Sat, 14 Feb 2026 23:53:43 -0800 Subject: [PATCH 20/29] Update SQLite client configuration from sqlite3 to better-sqlite3 --- backend/config/sqlite-test-db.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" }, From 41a2a41e673f7f73d53795308192b7080a4b3ea5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 00:29:36 +0000 Subject: [PATCH 21/29] Bump @quobix/vacuum Bumps the prod-patch-updates group with 1 update in the /test directory: [@quobix/vacuum](https://github.com/daveshanley/vacuum). Updates `@quobix/vacuum` from 0.23.5 to 0.23.8 - [Release notes](https://github.com/daveshanley/vacuum/releases) - [Commits](https://github.com/daveshanley/vacuum/compare/v0.23.5...v0.23.8) --- updated-dependencies: - dependency-name: "@quobix/vacuum" dependency-version: 0.23.8 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-patch-updates ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index 7d6a7ece..69545c06 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -209,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" From 5891c291d271e0af1c624db4b680cb58fbeb4623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 00:29:59 +0000 Subject: [PATCH 22/29] Bump eslint-plugin-cypress Bumps the prod-minor-updates group with 1 update in the /test directory: [eslint-plugin-cypress](https://github.com/cypress-io/eslint-plugin-cypress). Updates `eslint-plugin-cypress` from 5.2.1 to 5.3.0 - [Release notes](https://github.com/cypress-io/eslint-plugin-cypress/releases) - [Commits](https://github.com/cypress-io/eslint-plugin-cypress/compare/v5.2.1...v5.3.0) --- updated-dependencies: - dependency-name: eslint-plugin-cypress dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-minor-updates ... Signed-off-by: dependabot[bot] --- test/yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/yarn.lock b/test/yarn.lock index 7d6a7ece..223a1f98 100644 --- a/test/yarn.lock +++ b/test/yarn.lock @@ -871,11 +871,11 @@ 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@^9.1.0: version "9.1.0" @@ -1229,7 +1229,7 @@ global-dirs@^3.0.0: dependencies: ini "2.0.0" -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== From 3e5655cfcd122ed4b093e98e8c1cd5b4025ce0a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:01:52 +0000 Subject: [PATCH 23/29] Bump the dev-patch-updates group in /frontend with 3 updates Bumps the dev-patch-updates group in /frontend with 3 updates: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite-tsconfig-paths](https://github.com/aleclarson/vite-tsconfig-paths). Updates `@types/react` from 19.2.13 to 19.2.14 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `@vitejs/plugin-react` from 5.1.3 to 5.1.4 - [Release notes](https://github.com/vitejs/vite-plugin-react/releases) - [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.1.4/packages/plugin-react) Updates `vite-tsconfig-paths` from 6.1.0 to 6.1.1 - [Release notes](https://github.com/aleclarson/vite-tsconfig-paths/releases) - [Commits](https://github.com/aleclarson/vite-tsconfig-paths/compare/v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: "@types/react" dependency-version: 19.2.14 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: "@vitejs/plugin-react" dependency-version: 5.1.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates - dependency-name: vite-tsconfig-paths dependency-version: 6.1.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: dev-patch-updates ... Signed-off-by: dependabot[bot] --- frontend/package.json | 6 +++--- frontend/yarn.lock | 34 +++++++++++++++++----------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index e861d186..6a573f33 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,10 +48,10 @@ "@testing-library/react": "^16.3.2", "@types/country-flag-icons": "^1.2.2", "@types/humps": "^2.0.6", - "@types/react": "^19.2.13", + "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@types/react-table": "^7.7.20", - "@vitejs/plugin-react": "^5.1.3", + "@vitejs/plugin-react": "^5.1.4", "happy-dom": "^20.5.3", "postcss": "^8.5.6", "postcss-simple-vars": "^7.0.1", @@ -60,7 +60,7 @@ "typescript": "5.9.3", "vite": "^7.3.1", "vite-plugin-checker": "^0.12.0", - "vite-tsconfig-paths": "^6.1.0", + "vite-tsconfig-paths": "^6.1.1", "vitest": "^4.0.18" } } diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 4b26841e..859af7b7 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -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" @@ -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.13": - version "19.2.13" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.13.tgz#7cea30d7f60a01d97e4ece039c04e9056682218a" - integrity sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ== +"@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" @@ -3052,10 +3052,10 @@ vite-plugin-checker@^0.12.0: tinyglobby "^0.2.15" vscode-uri "^3.1.0" -vite-tsconfig-paths@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.0.tgz#8c3b9ecb676571f7c8f7849d92cd7de3b50faf75" - integrity sha512-kpd3sY9glHIDaq4V/Tlc1Y8WaKtutoc3B525GHxEVKWX42FKfQsXvjFOemu1I8VIN8pNbrMLWVTbW79JaRUxKg== +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" From 5601dd14fc6fdd6d990d1c05e75facf9856612c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:01:58 +0000 Subject: [PATCH 24/29] Bump the prod-minor-updates group in /backend with 3 updates Bumps the prod-minor-updates group in /backend with 3 updates: [ajv](https://github.com/ajv-validator/ajv), [mysql2](https://github.com/sidorares/node-mysql2) and [otplib](https://github.com/yeojz/otplib/tree/HEAD/packages/otplib). Updates `ajv` from 8.17.1 to 8.18.0 - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](https://github.com/ajv-validator/ajv/compare/v8.17.1...v8.18.0) Updates `mysql2` from 3.16.3 to 3.17.1 - [Release notes](https://github.com/sidorares/node-mysql2/releases) - [Changelog](https://github.com/sidorares/node-mysql2/blob/master/Changelog.md) - [Commits](https://github.com/sidorares/node-mysql2/compare/v3.16.3...v3.17.1) Updates `otplib` from 13.2.1 to 13.3.0 - [Release notes](https://github.com/yeojz/otplib/releases) - [Changelog](https://github.com/yeojz/otplib/blob/main/release.config.json) - [Commits](https://github.com/yeojz/otplib/commits/v13.3.0/packages/otplib) --- updated-dependencies: - dependency-name: ajv dependency-version: 8.18.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-minor-updates - dependency-name: mysql2 dependency-version: 3.17.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-minor-updates - dependency-name: otplib dependency-version: 13.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: prod-minor-updates ... Signed-off-by: dependabot[bot] --- backend/package.json | 6 +-- backend/yarn.lock | 112 +++++++++++++++++++++---------------------- 2 files changed, 59 insertions(+), 59 deletions(-) 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/yarn.lock b/backend/yarn.lock index 18cad9fc..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" @@ -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" From 43bc2a743e13c14b1ef6df73f8c56a069344fe4b Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 17 Feb 2026 11:38:17 +1000 Subject: [PATCH 25/29] Add note to docs about retiring armv7 after June 2026 --- docs/src/setup/index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/src/setup/index.md b/docs/src/setup/index.md index 998508dd..b6702cec 100644 --- a/docs/src/setup/index.md +++ b/docs/src/setup/index.md @@ -171,6 +171,12 @@ The docker images support the following architectures: - arm64 - armv7 +::: warning + +`armv7` support will be retired after June 2026. Any new versions released after this time will only support `amd64` amd `arm64`. + +::: + 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. From 6c3cc83d666c6745d1eaff44771fab02ed12c736 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 01:43:37 +0000 Subject: [PATCH 26/29] Bump the prod-patch-updates group in /frontend with 2 updates Bumps the prod-patch-updates group in /frontend with 2 updates: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) and [country-flag-icons](https://gitlab.com/catamphetamine/country-flag-icons). Updates `@tanstack/react-query` from 5.90.20 to 5.90.21 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.90.21/packages/react-query) Updates `country-flag-icons` from 1.6.12 to 1.6.13 - [Changelog](https://gitlab.com/catamphetamine/country-flag-icons/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/country-flag-icons/compare/v1.6.12...v1.6.13) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-version: 5.90.21 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-patch-updates - dependency-name: country-flag-icons dependency-version: 1.6.13 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: prod-patch-updates ... Signed-off-by: dependabot[bot] --- frontend/package.json | 4 ++-- frontend/yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 6a573f33..3dba2ca1 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", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 859af7b7..1ef52b6d 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -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" @@ -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" From 678fdd22c65d8581542d3fe62773d30a029bb36a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 01:43:56 +0000 Subject: [PATCH 27/29] Bump the dev-minor-updates group in /frontend with 2 updates Bumps the dev-minor-updates group in /frontend with 2 updates: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) and [happy-dom](https://github.com/capricorn86/happy-dom). Updates `@biomejs/biome` from 2.3.14 to 2.4.0 - [Release notes](https://github.com/biomejs/biome/releases) - [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md) - [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.4.0/packages/@biomejs/biome) Updates `happy-dom` from 20.5.3 to 20.6.1 - [Release notes](https://github.com/capricorn86/happy-dom/releases) - [Commits](https://github.com/capricorn86/happy-dom/compare/v20.5.3...v20.6.1) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.4.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-updates - dependency-name: happy-dom dependency-version: 20.6.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: dev-minor-updates ... Signed-off-by: dependabot[bot] --- frontend/package.json | 4 +- frontend/yarn.lock | 96 +++++++++++++++++++++---------------------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 6a573f33..375e23cf 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -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", @@ -52,7 +52,7 @@ "@types/react-dom": "^19.2.3", "@types/react-table": "^7.7.20", "@vitejs/plugin-react": "^5.1.4", - "happy-dom": "^20.5.3", + "happy-dom": "^20.6.1", "postcss": "^8.5.6", "postcss-simple-vars": "^7.0.1", "sass": "^1.97.3", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 859af7b7..98b9131b 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" @@ -1627,10 +1627,10 @@ 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.3: - version "20.5.3" - resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.5.3.tgz#0cc4159c4ca841cd388a45afe452060f41dbb84b" - integrity sha512-xqAxGnkRU0KNhheHpxb3uScqg/aehqUiVto/a9ApWMyNvnH9CAqHYq9dEPAovM6bOGbLstmTfGIln5ZIezEU0g== +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" From 40f363bd4fdb7368e7f2021486640a44dd9b929f Mon Sep 17 00:00:00 2001 From: Tech-no-1 <60796219+Tech-no-1@users.noreply.github.com> Date: Tue, 17 Feb 2026 02:58:18 +0100 Subject: [PATCH 28/29] Fix uploading of custom certificates --- backend/internal/certificate.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js index 50c615b7..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,7 +660,7 @@ const internalCertificate = { * @param {Boolean} [throwExpired] Throw when the certificate is out of date */ getCertificateInfo: async (certificate, throwExpired) => { - const filepath = await tempWrite(certificate, "/tmp"); + const filepath = await tempWrite(certificate); try { const certData = await internalCertificate.getCertificateInfoFromFile(filepath, throwExpired); fs.unlinkSync(filepath); From 5f5a3870e4b3b046d4335b42f46e4e94f1bb35d3 Mon Sep 17 00:00:00 2001 From: Jamie Curnow Date: Tue, 17 Feb 2026 12:34:57 +1000 Subject: [PATCH 29/29] Drop support for armv7 builds, bump version, update docs --- .version | 2 +- README.md | 17 ++++++++++------- docker/scripts/install-s6 | 4 ---- docs/src/setup/index.md | 6 ++---- scripts/buildx | 2 +- 5 files changed, 14 insertions(+), 17 deletions(-) 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/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 b6702cec..49b9e618 100644 --- a/docs/src/setup/index.md +++ b/docs/src/setup/index.md @@ -169,12 +169,10 @@ Custom Postgres schema is not supported, as such `public` will be used. The docker images support the following architectures: - amd64 - arm64 -- armv7 ::: warning - -`armv7` support will be retired after June 2026. Any new versions released after this time will only support `amd64` amd `arm64`. - +`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 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 \