Compare commits

...

16 Commits

Author SHA1 Message Date
jc21
cdde543e8a Merge pull request #5273 from NginxProxyManager/dependabot/npm_and_yarn/frontend/dev-patch-updates-1f568f1195
Bump @biomejs/biome from 2.3.13 to 2.3.14 in /frontend in the dev-patch-updates group
2026-02-04 12:06:56 +10:00
Jamie Curnow
0d62c26164 Fix linting 2026-02-04 10:43:14 +10:00
Jamie Curnow
c3173d83b8 Update biome.json to match viome version 2026-02-04 10:39:43 +10:00
jc21
65cf8ce583 Merge pull request #5248 from NginxProxyManager/dependabot/npm_and_yarn/backend/otplib-13.2.1
Bump otplib from 12.0.1 to 13.2.1 in /backend
2026-02-04 10:13:27 +10:00
dependabot[bot]
a4bc8d5d21 Bump @biomejs/biome in /frontend in the dev-patch-updates group
Bumps the dev-patch-updates group in /frontend with 1 update: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome).


Updates `@biomejs/biome` from 2.3.13 to 2.3.14
- [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.3.14/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 21:52:25 +00:00
Jamie Curnow
3e3d08b68f Change dependabot interval to weekly 2026-02-04 07:50:26 +10:00
Jamie Curnow
f90066822f Fix v13 otplib upgrades 2026-02-04 07:47:16 +10:00
dependabot[bot]
bb4b5fb3aa Bump otplib from 12.0.1 to 13.2.1 in /backend
Bumps [otplib](https://github.com/yeojz/otplib/tree/HEAD/packages/otplib) from 12.0.1 to 13.2.1.
- [Release notes](https://github.com/yeojz/otplib/releases)
- [Commits](https://github.com/yeojz/otplib/commits/v13.2.1/packages/otplib)

---
updated-dependencies:
- dependency-name: otplib
  dependency-version: 13.2.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 21:22:20 +00:00
jc21
8014f34195 Merge pull request #5269 from NginxProxyManager/dependabot/npm_and_yarn/backend/prod-minor-updates-2bc8aaf294
Bump pg from 8.17.2 to 8.18.0 in /backend in the prod-minor-updates group
2026-02-04 07:20:55 +10:00
jc21
4f8037ded2 Merge pull request #5270 from NginxProxyManager/dependabot/npm_and_yarn/frontend/dev-minor-updates-1492aee52e
Bump happy-dom from 20.4.0 to 20.5.0 in /frontend in the dev-minor-updates group
2026-02-04 07:18:42 +10:00
jc21
e7a1f84e45 Merge pull request #5271 from NginxProxyManager/dependabot/npm_and_yarn/frontend/prod-patch-updates-4c40e63da3
Bump react-intl from 8.1.2 to 8.1.3 in /frontend in the prod-patch-updates group
2026-02-04 07:18:31 +10:00
dependabot[bot]
6f0931bed5 Bump react-intl in /frontend in the prod-patch-updates group
Bumps the prod-patch-updates group in /frontend with 1 update: [react-intl](https://github.com/formatjs/formatjs).


Updates `react-intl` from 8.1.2 to 8.1.3
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/react-intl@8.1.2...react-intl@8.1.3)

---
updated-dependencies:
- dependency-name: react-intl
  dependency-version: 8.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 13:04:48 +00:00
dependabot[bot]
7f0c5d4364 Bump happy-dom in /frontend in the dev-minor-updates group
Bumps the dev-minor-updates group in /frontend with 1 update: [happy-dom](https://github.com/capricorn86/happy-dom).


Updates `happy-dom` from 20.4.0 to 20.5.0
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](https://github.com/capricorn86/happy-dom/compare/v20.4.0...v20.5.0)

---
updated-dependencies:
- dependency-name: happy-dom
  dependency-version: 20.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 13:04:21 +00:00
dependabot[bot]
60404b6f7e Bump pg in /backend in the prod-minor-updates group
Bumps the prod-minor-updates group in /backend with 1 update: [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg).


Updates `pg` from 8.17.2 to 8.18.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.18.0/packages/pg)

---
updated-dependencies:
- dependency-name: pg
  dependency-version: 8.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-minor-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 13:04:13 +00:00
jc21
c2fddee2c7 Merge pull request #5264 from NginxProxyManager/dependabot/npm_and_yarn/frontend/dev-patch-updates-cc9765ca56
All checks were successful
Close stale issues and PRs / stale (push) Successful in 36s
Bump the dev-patch-updates group across 1 directory with 3 updates
2026-02-03 17:10:42 +10:00
dependabot[bot]
8708a3bab8 Bump the dev-patch-updates group across 1 directory with 3 updates
Bumps the dev-patch-updates group with 3 updates in the /frontend directory: [@formatjs/cli](https://github.com/formatjs/formatjs), [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) and [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react).


Updates `@formatjs/cli` from 6.12.0 to 6.12.1
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/cli@6.12.0...@formatjs/cli@6.12.1)

Updates `@tanstack/react-query-devtools` from 5.91.2 to 5.91.3
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.91.3/packages/react-query-devtools)

Updates `@vitejs/plugin-react` from 5.1.2 to 5.1.3
- [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.3/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@formatjs/cli"
  dependency-version: 6.12.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@tanstack/react-query-devtools"
  dependency-version: 5.91.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 07:06:20 +00:00
8 changed files with 278 additions and 198 deletions

View File

@@ -3,7 +3,7 @@ updates:
- package-ecosystem: "npm" - package-ecosystem: "npm"
directory: "/backend" directory: "/backend"
schedule: schedule:
interval: "daily" interval: "weekly"
groups: groups:
dev-patch-updates: dev-patch-updates:
dependency-type: "development" dependency-type: "development"
@@ -25,7 +25,7 @@ updates:
- package-ecosystem: "npm" - package-ecosystem: "npm"
directory: "/frontend" directory: "/frontend"
schedule: schedule:
interval: "daily" interval: "weekly"
groups: groups:
dev-patch-updates: dev-patch-updates:
dependency-type: "development" dependency-type: "development"
@@ -47,7 +47,7 @@ updates:
- package-ecosystem: "npm" - package-ecosystem: "npm"
directory: "/docs" directory: "/docs"
schedule: schedule:
interval: "daily" interval: "weekly"
groups: groups:
dev-patch-updates: dev-patch-updates:
dependency-type: "development" dependency-type: "development"
@@ -69,7 +69,7 @@ updates:
- package-ecosystem: "npm" - package-ecosystem: "npm"
directory: "/test" directory: "/test"
schedule: schedule:
interval: "daily" interval: "weekly"
groups: groups:
dev-patch-updates: dev-patch-updates:
dependency-type: "development" dependency-type: "development"
@@ -91,7 +91,7 @@ updates:
- package-ecosystem: "docker" - package-ecosystem: "docker"
directory: "/docker" directory: "/docker"
schedule: schedule:
interval: "daily" interval: "weekly"
groups: groups:
updates: updates:
update-types: update-types:

View File

@@ -1,6 +1,6 @@
import crypto from "node:crypto"; import crypto from "node:crypto";
import bcrypt from "bcrypt"; import bcrypt from "bcrypt";
import { authenticator } from "otplib"; import { generateSecret, generateURI, verify } from "otplib";
import errs from "../lib/error.js"; import errs from "../lib/error.js";
import authModel from "../models/auth.js"; import authModel from "../models/auth.js";
import internalUser from "./user.js"; import internalUser from "./user.js";
@@ -27,7 +27,6 @@ const generateBackupCodes = async () => {
}; };
const internal2fa = { const internal2fa = {
/** /**
* Check if user has 2FA enabled * Check if user has 2FA enabled
* @param {number} userId * @param {number} userId
@@ -72,8 +71,12 @@ const internal2fa = {
startSetup: async (access, userId) => { startSetup: async (access, userId) => {
await access.can("users:password", userId); await access.can("users:password", userId);
const user = await internalUser.get(access, { id: userId }); const user = await internalUser.get(access, { id: userId });
const secret = authenticator.generateSecret(); const secret = generateSecret();
const otpauth_url = authenticator.keyuri(user.email, APP_NAME, secret); const otpauth_url = generateURI({
issuer: APP_NAME,
label: user.email,
secret: secret,
});
const auth = await internal2fa.getUserPasswordAuth(userId); const auth = await internal2fa.getUserPasswordAuth(userId);
// ensure user isn't already setup for 2fa // ensure user isn't already setup for 2fa
@@ -85,7 +88,8 @@ const internal2fa = {
const meta = auth.meta || {}; const meta = auth.meta || {};
meta.totp_pending_secret = secret; meta.totp_pending_secret = secret;
await authModel.query() await authModel
.query()
.where("id", auth.id) .where("id", auth.id)
.andWhere("user_id", userId) .andWhere("user_id", userId)
.andWhere("type", "password") .andWhere("type", "password")
@@ -112,8 +116,8 @@ const internal2fa = {
throw new errs.ValidationError("No pending 2FA setup found"); throw new errs.ValidationError("No pending 2FA setup found");
} }
const valid = authenticator.verify({ token: code, secret }); const result = await verify({ token: code, secret });
if (!valid) { if (!result.valid) {
throw new errs.ValidationError("Invalid verification code"); throw new errs.ValidationError("Invalid verification code");
} }
@@ -156,12 +160,12 @@ const internal2fa = {
throw new errs.ValidationError("2FA is not enabled"); throw new errs.ValidationError("2FA is not enabled");
} }
const valid = authenticator.verify({ const result = await verify({
token: code, token: code,
secret: auth.meta.totp_secret, secret: auth.meta.totp_secret,
}); });
if (!valid) { if (!result.valid) {
throw new errs.AuthError("Invalid verification code"); throw new errs.AuthError("Invalid verification code");
} }
@@ -195,12 +199,12 @@ const internal2fa = {
} }
// Try TOTP code first // Try TOTP code first
const valid = authenticator.verify({ const result = await verify({
token, token,
secret, secret,
}); });
if (valid) { if (result.valid) {
return true; return true;
} }
@@ -248,12 +252,12 @@ const internal2fa = {
throw new errs.ValidationError("No 2FA secret found"); throw new errs.ValidationError("No 2FA secret found");
} }
const valid = authenticator.verify({ const result = await verify({
token, token,
secret, secret,
}); });
if (!valid) { if (!result.valid) {
throw new errs.ValidationError("Invalid verification code"); throw new errs.ValidationError("Invalid verification code");
} }
@@ -271,11 +275,7 @@ const internal2fa = {
}, },
getUserPasswordAuth: async (userId) => { getUserPasswordAuth: async (userId) => {
const auth = await authModel const auth = await authModel.query().where("user_id", userId).andWhere("type", "password").first();
.query()
.where("user_id", userId)
.andWhere("type", "password")
.first();
if (!auth) { if (!auth) {
throw new errs.ItemNotFoundError("Auth not found"); throw new errs.ItemNotFoundError("Auth not found");

View File

@@ -30,9 +30,9 @@
"mysql2": "^3.16.2", "mysql2": "^3.16.2",
"node-rsa": "^1.1.1", "node-rsa": "^1.1.1",
"objection": "3.1.5", "objection": "3.1.5",
"otplib": "^12.0.1", "otplib": "^13.2.1",
"path": "^0.12.7", "path": "^0.12.7",
"pg": "^8.17.2", "pg": "^8.18.0",
"proxy-agent": "^6.5.0", "proxy-agent": "^6.5.0",
"signale": "1.4.0", "signale": "1.4.0",
"sqlite3": "^5.1.7", "sqlite3": "^5.1.7",

View File

@@ -111,6 +111,11 @@
wrap-ansi "^8.1.0" wrap-ansi "^8.1.0"
wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
"@noble/hashes@^2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e"
integrity sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==
"@npmcli/fs@^1.0.0": "@npmcli/fs@^1.0.0":
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
@@ -127,49 +132,61 @@
mkdirp "^1.0.4" mkdirp "^1.0.4"
rimraf "^3.0.2" rimraf "^3.0.2"
"@otplib/core@^12.0.1": "@otplib/core@13.2.1":
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/@otplib/core/-/core-12.0.1.tgz#73720a8cedce211fe5b3f683cd5a9c098eaf0f8d" resolved "https://registry.yarnpkg.com/@otplib/core/-/core-13.2.1.tgz#83449322a390b6b4c045b2e799cbd1f7718f1f64"
integrity sha512-4sGntwbA/AC+SbPhbsziRiD+jNDdIzsZ3JUyfZwjtKyc/wufl1pnSIaG4Uqx8ymPagujub0o92kgBnB89cuAMA== integrity sha512-IyfHvYNCyipDxhmJdcUUvUeT3Hz84/GgM6G2G6BTEmnAKPzNA7U0kYGkxKZWY9h23W94RJk4qiClJRJN5zKGvg==
"@otplib/plugin-crypto@^12.0.1": "@otplib/hotp@13.2.1":
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz#2b42c624227f4f9303c1c041fca399eddcbae25e" resolved "https://registry.yarnpkg.com/@otplib/hotp/-/hotp-13.2.1.tgz#6149c877e5a51fd1c527ada535fe75ca4f525eee"
integrity sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g== integrity sha512-iRKqvj0TnemtXXtEswzBX50Z0yMNa0lH9PSdr5N4CJc1mDEuUmFFZQqnu3PfA3fPd3WeAU+mHgmK/xq18+K1QA==
dependencies: dependencies:
"@otplib/core" "^12.0.1" "@otplib/core" "13.2.1"
"@otplib/uri" "13.2.1"
"@otplib/plugin-thirty-two@^12.0.1": "@otplib/plugin-base32-scure@13.2.1":
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz#5cc9b56e6e89f2a1fe4a2b38900ca4e11c87aa9e" resolved "https://registry.yarnpkg.com/@otplib/plugin-base32-scure/-/plugin-base32-scure-13.2.1.tgz#2e7b1849311bfafd630fa87ce2812b7c3c718675"
integrity sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA== integrity sha512-vnA2qqgJ/FbFbDNGOLAS8dKfCsJFXwFsZKYklE8yl2INkCOUR0vbVdJ2TVmufzC8R1RRZHW+cDR20ACgc9XFYg==
dependencies: dependencies:
"@otplib/core" "^12.0.1" "@otplib/core" "13.2.1"
thirty-two "^1.0.2" "@scure/base" "^2.0.0"
"@otplib/preset-default@^12.0.1": "@otplib/plugin-crypto-noble@13.2.1":
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/@otplib/preset-default/-/preset-default-12.0.1.tgz#cb596553c08251e71b187ada4a2246ad2a3165ba" resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto-noble/-/plugin-crypto-noble-13.2.1.tgz#11f6325f4593f57360af2268313b94003b225807"
integrity sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ== integrity sha512-Dxjmt4L+5eDWJf5EvbcMp+fxcliyKoB9N9sNQq/vuVAUvq+KiqpiiCQZ/wHyrN0ArB0NdevtK1KByyAq080ldg==
dependencies: dependencies:
"@otplib/core" "^12.0.1" "@noble/hashes" "^2.0.1"
"@otplib/plugin-crypto" "^12.0.1" "@otplib/core" "13.2.1"
"@otplib/plugin-thirty-two" "^12.0.1"
"@otplib/preset-v11@^12.0.1": "@otplib/totp@13.2.1":
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/@otplib/preset-v11/-/preset-v11-12.0.1.tgz#4c7266712e7230500b421ba89252963c838fc96d" resolved "https://registry.yarnpkg.com/@otplib/totp/-/totp-13.2.1.tgz#2c8f8a8d87cf6e440d9050d363dfd24bc25179d6"
integrity sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg== integrity sha512-LzDzAAK3w8rspF3urBnWjOlxso1SCGxX9Pnu/iy+HkC0y0HgiLsW7jhkr2hJ3u4cyBdL/tOKUhhELwsjyvunwQ==
dependencies: dependencies:
"@otplib/core" "^12.0.1" "@otplib/core" "13.2.1"
"@otplib/plugin-crypto" "^12.0.1" "@otplib/hotp" "13.2.1"
"@otplib/plugin-thirty-two" "^12.0.1" "@otplib/uri" "13.2.1"
"@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==
dependencies:
"@otplib/core" "13.2.1"
"@pkgjs/parseargs@^0.11.0": "@pkgjs/parseargs@^0.11.0":
version "0.11.0" version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@scure/base@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@scure/base/-/base-2.0.0.tgz#ba6371fddf92c2727e88ad6ab485db6e624f9a98"
integrity sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==
"@tootallnate/once@1": "@tootallnate/once@1":
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
@@ -1994,14 +2011,17 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies: dependencies:
wrappy "1" wrappy "1"
otplib@^12.0.1: otplib@^13.2.1:
version "12.0.1" version "13.2.1"
resolved "https://registry.yarnpkg.com/otplib/-/otplib-12.0.1.tgz#c1d3060ab7aadf041ed2960302f27095777d1f73" resolved "https://registry.yarnpkg.com/otplib/-/otplib-13.2.1.tgz#39cc114228409ff30cfa6779e2f8cb007b535942"
integrity sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg== integrity sha512-Cft9h/m34LtvnoB2TjP1E1E6v0biwcUntl6U4e+HgWrTa0bpwmb+u/D9gLFA+U6/ztlvrult0811Bu30nUVUuA==
dependencies: dependencies:
"@otplib/core" "^12.0.1" "@otplib/core" "13.2.1"
"@otplib/preset-default" "^12.0.1" "@otplib/hotp" "13.2.1"
"@otplib/preset-v11" "^12.0.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"
p-limit@^1.1.0: p-limit@^1.1.0:
version "1.3.0" version "1.3.0"
@@ -2144,10 +2164,10 @@ pg-connection-string@2.6.2:
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
pg-connection-string@^2.10.1: pg-connection-string@^2.11.0:
version "2.10.1" version "2.11.0"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.10.1.tgz#34e0bf60333551ae1e76caf47cce633a5b2e4b70" resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.11.0.tgz#5dca53ff595df33ba9db812e181b19909866d10b"
integrity sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw== integrity sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==
pg-int8@1.0.1: pg-int8@1.0.1:
version "1.0.1" version "1.0.1"
@@ -2175,12 +2195,12 @@ pg-types@2.2.0:
postgres-date "~1.0.4" postgres-date "~1.0.4"
postgres-interval "^1.1.0" postgres-interval "^1.1.0"
pg@^8.17.2: pg@^8.18.0:
version "8.17.2" version "8.18.0"
resolved "https://registry.yarnpkg.com/pg/-/pg-8.17.2.tgz#8df8c039c36bb97016be276094fc4991e8683963" resolved "https://registry.yarnpkg.com/pg/-/pg-8.18.0.tgz#e9ee214206f5d9231240f1b82f22d2fa9de5cb75"
integrity sha512-vjbKdiBJRqzcYw1fNU5KuHyYvdJ1qpcQg1CeBrHFqV1pWgHeVR6j/+kX0E1AAXfyuLUGY1ICrN2ELKA/z2HWzw== integrity sha512-xqrUDL1b9MbkydY/s+VZ6v+xiMUmOUk7SS9d/1kpyQxoJ6U9AO1oIJyUWVZojbfe5Cc/oluutcgFG4L9RDP1iQ==
dependencies: dependencies:
pg-connection-string "^2.10.1" pg-connection-string "^2.11.0"
pg-pool "^3.11.0" pg-pool "^3.11.0"
pg-protocol "^1.11.0" pg-protocol "^1.11.0"
pg-types "2.2.0" pg-types "2.2.0"
@@ -2856,11 +2876,6 @@ text-decoder@^1.1.0:
dependencies: dependencies:
b4a "^1.6.4" b4a "^1.6.4"
thirty-two@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a"
integrity sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==
tildify@2.0.0: tildify@2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a" resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a"

View File

@@ -1,5 +1,5 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.3.12/schema.json", "$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
"vcs": { "vcs": {
"enabled": true, "enabled": true,
"clientKind": "git", "clientKind": "git",

View File

@@ -32,7 +32,7 @@
"react": "^19.2.4", "react": "^19.2.4",
"react-bootstrap": "^2.10.10", "react-bootstrap": "^2.10.10",
"react-dom": "^19.2.4", "react-dom": "^19.2.4",
"react-intl": "^8.1.2", "react-intl": "^8.1.3",
"react-markdown": "^10.1.0", "react-markdown": "^10.1.0",
"react-router-dom": "^7.13.0", "react-router-dom": "^7.13.0",
"react-select": "^5.10.2", "react-select": "^5.10.2",
@@ -40,9 +40,9 @@
"rooks": "^9.5.0" "rooks": "^9.5.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.3.13", "@biomejs/biome": "^2.3.14",
"@formatjs/cli": "^6.12.0", "@formatjs/cli": "^6.12.2",
"@tanstack/react-query-devtools": "^5.91.2", "@tanstack/react-query-devtools": "^5.91.3",
"@testing-library/dom": "^10.4.1", "@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1", "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2", "@testing-library/react": "^16.3.2",
@@ -51,8 +51,8 @@
"@types/react": "^19.2.10", "@types/react": "^19.2.10",
"@types/react-dom": "^19.2.3", "@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20", "@types/react-table": "^7.7.20",
"@vitejs/plugin-react": "^5.1.2", "@vitejs/plugin-react": "^5.1.3",
"happy-dom": "^20.4.0", "happy-dom": "^20.5.0",
"postcss": "^8.5.6", "postcss": "^8.5.6",
"postcss-simple-vars": "^7.0.1", "postcss-simple-vars": "^7.0.1",
"sass": "^1.97.3", "sass": "^1.97.3",

View File

@@ -41,7 +41,7 @@ const RenewCertificateModal = EasyModal.create(({ id, visible, remove }: Props)
.finally(() => { .finally(() => {
setIsSubmitting(false); setIsSubmitting(false);
}); });
}, [id, data, isFresh, isSubmitting, remove, queryClient.invalidateQueries]); }, [id, data, isFresh, isSubmitting, remove, queryClient]);
return ( return (
<Modal show={visible} onHide={isSubmitting ? undefined : remove}> <Modal show={visible} onHide={isSubmitting ? undefined : remove}>

View File

@@ -16,25 +16,34 @@
js-tokens "^4.0.0" js-tokens "^4.0.0"
picocolors "^1.1.1" picocolors "^1.1.1"
"@babel/compat-data@^7.27.2": "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
version "7.28.0" version "7.29.0"
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c"
integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==
"@babel/core@^7.28.5":
version "7.28.5"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz"
integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==
dependencies: dependencies:
"@babel/code-frame" "^7.27.1" "@babel/helper-validator-identifier" "^7.28.5"
"@babel/generator" "^7.28.5" js-tokens "^4.0.0"
"@babel/helper-compilation-targets" "^7.27.2" picocolors "^1.1.1"
"@babel/helper-module-transforms" "^7.28.3"
"@babel/helpers" "^7.28.4" "@babel/compat-data@^7.28.6":
"@babel/parser" "^7.28.5" version "7.29.0"
"@babel/template" "^7.27.2" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d"
"@babel/traverse" "^7.28.5" integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==
"@babel/types" "^7.28.5"
"@babel/core@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322"
integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==
dependencies:
"@babel/code-frame" "^7.29.0"
"@babel/generator" "^7.29.0"
"@babel/helper-compilation-targets" "^7.28.6"
"@babel/helper-module-transforms" "^7.28.6"
"@babel/helpers" "^7.28.6"
"@babel/parser" "^7.29.0"
"@babel/template" "^7.28.6"
"@babel/traverse" "^7.29.0"
"@babel/types" "^7.29.0"
"@jridgewell/remapping" "^2.3.5" "@jridgewell/remapping" "^2.3.5"
convert-source-map "^2.0.0" convert-source-map "^2.0.0"
debug "^4.1.0" debug "^4.1.0"
@@ -53,12 +62,23 @@
"@jridgewell/trace-mapping" "^0.3.28" "@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2" jsesc "^3.0.2"
"@babel/helper-compilation-targets@^7.27.2": "@babel/generator@^7.29.0":
version "7.27.2" version "7.29.0"
resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.0.tgz#4cba5a76b3c71d8be31761b03329d5dc7768447f"
integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== integrity sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==
dependencies: dependencies:
"@babel/compat-data" "^7.27.2" "@babel/parser" "^7.29.0"
"@babel/types" "^7.29.0"
"@jridgewell/gen-mapping" "^0.3.12"
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
"@babel/helper-compilation-targets@^7.28.6":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
dependencies:
"@babel/compat-data" "^7.28.6"
"@babel/helper-validator-option" "^7.27.1" "@babel/helper-validator-option" "^7.27.1"
browserslist "^4.24.0" browserslist "^4.24.0"
lru-cache "^5.1.1" lru-cache "^5.1.1"
@@ -69,7 +89,7 @@
resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz" resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz"
integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.27.1": "@babel/helper-module-imports@^7.16.7":
version "7.27.1" version "7.27.1"
resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz"
integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==
@@ -77,14 +97,22 @@
"@babel/traverse" "^7.27.1" "@babel/traverse" "^7.27.1"
"@babel/types" "^7.27.1" "@babel/types" "^7.27.1"
"@babel/helper-module-transforms@^7.28.3": "@babel/helper-module-imports@^7.28.6":
version "7.28.3" version "7.28.6"
resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
dependencies: dependencies:
"@babel/helper-module-imports" "^7.27.1" "@babel/traverse" "^7.28.6"
"@babel/helper-validator-identifier" "^7.27.1" "@babel/types" "^7.28.6"
"@babel/traverse" "^7.28.3"
"@babel/helper-module-transforms@^7.28.6":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
dependencies:
"@babel/helper-module-imports" "^7.28.6"
"@babel/helper-validator-identifier" "^7.28.5"
"@babel/traverse" "^7.28.6"
"@babel/helper-plugin-utils@^7.27.1": "@babel/helper-plugin-utils@^7.27.1":
version "7.27.1" version "7.27.1"
@@ -106,13 +134,13 @@
resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz"
integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
"@babel/helpers@^7.28.4": "@babel/helpers@^7.28.6":
version "7.28.4" version "7.28.6"
resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
dependencies: dependencies:
"@babel/template" "^7.27.2" "@babel/template" "^7.28.6"
"@babel/types" "^7.28.4" "@babel/types" "^7.28.6"
"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": "@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5":
version "7.28.5" version "7.28.5"
@@ -121,6 +149,13 @@
dependencies: dependencies:
"@babel/types" "^7.28.5" "@babel/types" "^7.28.5"
"@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6"
integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==
dependencies:
"@babel/types" "^7.29.0"
"@babel/plugin-transform-react-jsx-self@^7.27.1": "@babel/plugin-transform-react-jsx-self@^7.27.1":
version "7.27.1" version "7.27.1"
resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz"
@@ -149,7 +184,16 @@
"@babel/parser" "^7.27.2" "@babel/parser" "^7.27.2"
"@babel/types" "^7.27.1" "@babel/types" "^7.27.1"
"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.5": "@babel/template@^7.28.6":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57"
integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==
dependencies:
"@babel/code-frame" "^7.28.6"
"@babel/parser" "^7.28.6"
"@babel/types" "^7.28.6"
"@babel/traverse@^7.27.1":
version "7.28.5" version "7.28.5"
resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz"
integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==
@@ -162,7 +206,20 @@
"@babel/types" "^7.28.5" "@babel/types" "^7.28.5"
debug "^4.3.1" debug "^4.3.1"
"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5": "@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a"
integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==
dependencies:
"@babel/code-frame" "^7.29.0"
"@babel/generator" "^7.29.0"
"@babel/helper-globals" "^7.28.0"
"@babel/parser" "^7.29.0"
"@babel/template" "^7.28.6"
"@babel/types" "^7.29.0"
debug "^4.3.1"
"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.5":
version "7.28.5" version "7.28.5"
resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz" resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz"
integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==
@@ -170,59 +227,67 @@
"@babel/helper-string-parser" "^7.27.1" "@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.28.5" "@babel/helper-validator-identifier" "^7.28.5"
"@biomejs/biome@^2.3.13": "@babel/types@^7.28.6", "@babel/types@^7.29.0":
version "2.3.13" version "7.29.0"
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.13.tgz#966c015d8610137f65c97c081bf69a44b423963b" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7"
integrity sha512-Fw7UsV0UAtWIBIm0M7g5CRerpu1eKyKAXIazzxhbXYUyMkwNrkX/KLkGI7b+uVDQ5cLUMfOC9vR60q9IDYDstA== integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==
dependencies:
"@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==
optionalDependencies: optionalDependencies:
"@biomejs/cli-darwin-arm64" "2.3.13" "@biomejs/cli-darwin-arm64" "2.3.14"
"@biomejs/cli-darwin-x64" "2.3.13" "@biomejs/cli-darwin-x64" "2.3.14"
"@biomejs/cli-linux-arm64" "2.3.13" "@biomejs/cli-linux-arm64" "2.3.14"
"@biomejs/cli-linux-arm64-musl" "2.3.13" "@biomejs/cli-linux-arm64-musl" "2.3.14"
"@biomejs/cli-linux-x64" "2.3.13" "@biomejs/cli-linux-x64" "2.3.14"
"@biomejs/cli-linux-x64-musl" "2.3.13" "@biomejs/cli-linux-x64-musl" "2.3.14"
"@biomejs/cli-win32-arm64" "2.3.13" "@biomejs/cli-win32-arm64" "2.3.14"
"@biomejs/cli-win32-x64" "2.3.13" "@biomejs/cli-win32-x64" "2.3.14"
"@biomejs/cli-darwin-arm64@2.3.13": "@biomejs/cli-darwin-arm64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.13.tgz#417fab5e8b2facf7e289f91d4bbe4275eb2dbbe8" resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.14.tgz#da942618e1dc2d19322bc11d5dacfe7d7616a502"
integrity sha512-0OCwP0/BoKzyJHnFdaTk/i7hIP9JHH9oJJq6hrSCPmJPo8JWcJhprK4gQlhFzrwdTBAW4Bjt/RmCf3ZZe59gwQ== integrity sha512-UJGPpvWJMkLxSRtpCAKfKh41Q4JJXisvxZL8ChN1eNW3m/WlPFJ6EFDCE7YfUb4XS8ZFi3C1dFpxUJ0Ety5n+A==
"@biomejs/cli-darwin-x64@2.3.13": "@biomejs/cli-darwin-x64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.13.tgz#05abe14ced10125091f68da38ec070f7827b6758" resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.14.tgz#3ad06cce8ef6d2b935582011bd0cc3ca98a9554d"
integrity sha512-AGr8OoemT/ejynbIu56qeil2+F2WLkIjn2d8jGK1JkchxnMUhYOfnqc9sVzcRxpG9Ycvw4weQ5sprRvtb7Yhcw== integrity sha512-PNkLNQG6RLo8lG7QoWe/hhnMxJIt1tEimoXpGQjwS/dkdNiKBLPv4RpeQl8o3s1OKI3ZOR5XPiYtmbGGHAOnLA==
"@biomejs/cli-linux-arm64-musl@2.3.13": "@biomejs/cli-linux-arm64-musl@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.13.tgz#aa715dbaf3d4cc97682bcb7357f0e15220321eea" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.14.tgz#e92681273dc59ac57b75b72f1b64a67543e50f8c"
integrity sha512-TUdDCSY+Eo/EHjhJz7P2GnWwfqet+lFxBZzGHldrvULr59AgahamLs/N85SC4+bdF86EhqDuuw9rYLvLFWWlXA== integrity sha512-LInRbXhYujtL3sH2TMCH/UBwJZsoGwfQjBrMfl84CD4hL/41C/EU5mldqf1yoFpsI0iPWuU83U+nB2TUUypWeg==
"@biomejs/cli-linux-arm64@2.3.13": "@biomejs/cli-linux-arm64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.13.tgz#e3463498bc23ddba306de3e45d8f9722179065e9" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.14.tgz#bab43ee0a88ba15a6d59ec648a4b415d68d6eeb7"
integrity sha512-xvOiFkrDNu607MPMBUQ6huHmBG1PZLOrqhtK6pXJW3GjfVqJg0Z/qpTdhXfcqWdSZHcT+Nct2fOgewZvytESkw== integrity sha512-KT67FKfzIw6DNnUNdYlBg+eU24Go3n75GWK6NwU4+yJmDYFe9i/MjiI+U/iEzKvo0g7G7MZqoyrhIYuND2w8QQ==
"@biomejs/cli-linux-x64-musl@2.3.13": "@biomejs/cli-linux-x64-musl@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.13.tgz#579e81f862272ca5a2b9860a2204382767966b7d" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.14.tgz#ee90f7110dafdedf4644e0a27ac242975dcd88d3"
integrity sha512-0bdwFVSbbM//Sds6OjtnmQGp4eUjOTt6kHvR/1P0ieR9GcTUAlPNvPC3DiavTqq302W34Ae2T6u5VVNGuQtGlQ== integrity sha512-KQU7EkbBBuHPW3/rAcoiVmhlPtDSGOGRPv9js7qJVpYTzjQmVR+C9Rfcz+ti8YCH+zT1J52tuBybtP4IodjxZQ==
"@biomejs/cli-linux-x64@2.3.13": "@biomejs/cli-linux-x64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.13.tgz#fa22633de6effcd571fa2b7983cec98b9fce6383" resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.14.tgz#d152e61c6dc847836ebc741fb70fe305414aa7fe"
integrity sha512-s+YsZlgiXNq8XkgHs6xdvKDFOj/bwTEevqEY6rC2I3cBHbxXYU1LOZstH3Ffw9hE5tE1sqT7U23C00MzkXztMw== integrity sha512-ZsZzQsl9U+wxFrGGS4f6UxREUlgHwmEfu1IrXlgNFrNnd5Th6lIJr8KmSzu/+meSa9f4rzFrbEW9LBBA6ScoMA==
"@biomejs/cli-win32-arm64@2.3.13": "@biomejs/cli-win32-arm64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.13.tgz#06dd89ec17b897e0c774612fbe83a19fabbb949e" resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.14.tgz#2c59e84f3d172bada2a1df94d6cf7e511c244a4e"
integrity sha512-QweDxY89fq0VvrxME+wS/BXKmqMrOTZlN9SqQ79kQSIc3FrEwvW/PvUegQF6XIVaekncDykB5dzPqjbwSKs9DA== integrity sha512-+IKYkj/pUBbnRf1G1+RlyA3LWiDgra1xpS7H2g4BuOzzRbRB+hmlw0yFsLprHhbbt7jUzbzAbAjK/Pn0FDnh1A==
"@biomejs/cli-win32-x64@2.3.13": "@biomejs/cli-win32-x64@2.3.14":
version "2.3.13" version "2.3.14"
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.13.tgz#55b8cf3e4a16712855ec0462cbdb3a6e645c9466" resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.14.tgz#44405162f255fe153a5ff99379510c058bf7a1e8"
integrity sha512-trDw2ogdM2lyav9WFQsdsfdVy1dvZALymRpgmWsvSez0BJzBjulhOT/t+wyKeh3pZWvwP3VMs1SoOKwO3wecMQ== integrity sha512-oizCjdyQ3WJEswpb3Chdngeat56rIdSYK12JI3iI11Mt5T5EXcZ7WLuowzEaFPNJ3zmOQFliMN8QY1Pi+qsfdQ==
"@emotion/babel-plugin@^11.13.5": "@emotion/babel-plugin@^11.13.5":
version "11.13.5" version "11.13.5"
@@ -462,10 +527,10 @@
resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz" resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz"
integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==
"@formatjs/cli@^6.12.0": "@formatjs/cli@^6.12.2":
version "6.12.0" version "6.12.2"
resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.12.0.tgz#8bfb1a500faf53fb220b46bc5c559e0f7acf4a27" resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.12.2.tgz#0ca91899249f41860deb2b2921e6ad0a4db55de9"
integrity sha512-mF3U8XxwEWR+ttlG5e4onYO+M5T22jnnQq7Ce/WK10CTVYR8Us433hbML6vgBLkiTS/MuCq61L0op3yNRSp2Kg== integrity sha512-y215aarLZXei3u1WDRAiet/VajgvUXzvz4ifPENDSPXfIog0aBJKtFvIU7EWbcFWy7rstbn5GcwwQW4F1G3TJg==
"@formatjs/ecma402-abstract@3.1.1": "@formatjs/ecma402-abstract@3.1.1":
version "3.1.1" version "3.1.1"
@@ -684,10 +749,10 @@
uncontrollable "^8.0.4" uncontrollable "^8.0.4"
warning "^4.0.3" warning "^4.0.3"
"@rolldown/pluginutils@1.0.0-beta.53": "@rolldown/pluginutils@1.0.0-rc.2":
version "1.0.0-beta.53" version "1.0.0-rc.2"
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz" resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.2.tgz#10324e74cb3396cb7b616042ea7e9e6aa7d8d458"
integrity sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ== integrity sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==
"@rollup/rollup-android-arm-eabi@4.50.0": "@rollup/rollup-android-arm-eabi@4.50.0":
version "4.50.0" version "4.50.0"
@@ -831,17 +896,17 @@
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.20.tgz#e12128e39210715d4ce4fb299c33498ac297771e" resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.20.tgz#e12128e39210715d4ce4fb299c33498ac297771e"
integrity sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg== integrity sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==
"@tanstack/query-devtools@5.92.0": "@tanstack/query-devtools@5.93.0":
version "5.92.0" version "5.93.0"
resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.92.0.tgz#8fc38b0112c6c136630f54e2f7e77f0c379e66c8" resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.93.0.tgz#517f61d4e2cfb9af671e34ad5e7e871052bca814"
integrity sha512-N8D27KH1vEpVacvZgJL27xC6yPFUy0Zkezn5gnB3L3gRCxlDeSuiya7fKge8Y91uMTnC8aSxBQhcK6ocY7alpQ== integrity sha512-+kpsx1NQnOFTZsw6HAFCW3HkKg0+2cepGtAWXjiiSOJJ1CtQpt72EE2nyZb+AjAbLRPoeRmPJ8MtQd8r8gsPdg==
"@tanstack/react-query-devtools@^5.91.2": "@tanstack/react-query-devtools@^5.91.3":
version "5.91.2" version "5.91.3"
resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.91.2.tgz#1cadfad644b699b618c0636471d19339bda51ac7" resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.91.3.tgz#0f65340fa3f7e7d5575de928ad70cfa6b5f74ff1"
integrity sha512-ZJ1503ay5fFeEYFUdo7LMNFzZryi6B0Cacrgr2h1JRkvikK1khgIq6Nq2EcblqEdIlgB/r7XDW8f8DQ89RuUgg== integrity sha512-nlahjMtd/J1h7IzOOfqeyDh5LNfG0eULwlltPEonYy0QL+nqrBB+nyzJfULV+moL7sZyxc2sHdNJki+vLA9BSA==
dependencies: dependencies:
"@tanstack/query-devtools" "5.92.0" "@tanstack/query-devtools" "5.93.0"
"@tanstack/react-query@^5.90.20": "@tanstack/react-query@^5.90.20":
version "5.90.20" version "5.90.20"
@@ -1094,15 +1159,15 @@
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz"
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
"@vitejs/plugin-react@^5.1.2": "@vitejs/plugin-react@^5.1.3":
version "5.1.2" version "5.1.3"
resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.3.tgz#05eba092cc89a6ff89668d3f62258e2c5a8a9122"
integrity sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ== integrity sha512-NVUnA6gQCl8jfoYqKqQU5Clv0aPw14KkZYCsX6T9Lfu9slI0LOU10OTwFHS/WmptsMMpshNd/1tuWsHQ2Uk+cg==
dependencies: dependencies:
"@babel/core" "^7.28.5" "@babel/core" "^7.29.0"
"@babel/plugin-transform-react-jsx-self" "^7.27.1" "@babel/plugin-transform-react-jsx-self" "^7.27.1"
"@babel/plugin-transform-react-jsx-source" "^7.27.1" "@babel/plugin-transform-react-jsx-source" "^7.27.1"
"@rolldown/pluginutils" "1.0.0-beta.53" "@rolldown/pluginutils" "1.0.0-rc.2"
"@types/babel__core" "^7.20.5" "@types/babel__core" "^7.20.5"
react-refresh "^0.18.0" react-refresh "^0.18.0"
@@ -1567,10 +1632,10 @@ globrex@^0.1.2:
resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz" resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz"
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
happy-dom@^20.4.0: happy-dom@^20.5.0:
version "20.4.0" version "20.5.0"
resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.4.0.tgz#83d1aa589cf4b4908a2f14e9596196afeb30e9e6" resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.5.0.tgz#64899aad7272f7e02a728e231bc9c151b872a3a5"
integrity sha512-RDeQm3dT9n0A5f/TszjUmNCLEuPnMGv3Tv4BmNINebz/h17PA6LMBcxJ5FrcqltNBMh9jA/8ufgDdBYUdBt+eg== integrity sha512-VQe+Q5CYiGOgcCERXhcfNsbnrN92FDEKciMH/x6LppU9dd0j4aTjCTlqONFOIMcAm/5JxS3+utowbXV1OoFr+g==
dependencies: dependencies:
"@types/node" ">=20.0.0" "@types/node" ">=20.0.0"
"@types/whatwg-mimetype" "^3.0.2" "@types/whatwg-mimetype" "^3.0.2"
@@ -2436,10 +2501,10 @@ react-fast-compare@^2.0.1:
resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz" resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
react-intl@^8.1.2: react-intl@^8.1.3:
version "8.1.2" version "8.1.3"
resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-8.1.2.tgz#e8a6dde84d9682bef5fa775077beb9b5b8ff9547" resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-8.1.3.tgz#216e0a916c40a535c590995c3103fe9e2525d2e4"
integrity sha512-mwjljlxC1dpU7G6cznkxMWtYuKZruSNSVHZjiIWfYW6aNsHNDvDWDK54rM8yoF86asNLpk4Y3HxcWhX1AslTGg== integrity sha512-eL1/d+uQdnapirynOGAriW0K9uAoyarjRGL3V9LaTRuohNSvPgCfJX06EZl5M52h/Hu7Gz7A1sD7dNHcos1lNg==
dependencies: dependencies:
"@formatjs/ecma402-abstract" "3.1.1" "@formatjs/ecma402-abstract" "3.1.1"
"@formatjs/icu-messageformat-parser" "3.5.1" "@formatjs/icu-messageformat-parser" "3.5.1"