mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-02-04 18:02:54 +00:00
Compare commits
7 Commits
6ba40216cd
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdde543e8a | ||
|
|
0d62c26164 | ||
|
|
c3173d83b8 | ||
|
|
65cf8ce583 | ||
|
|
a4bc8d5d21 | ||
|
|
f90066822f | ||
|
|
bb4b5fb3aa |
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.3.14/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.3.12/schema.json",
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
"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.18.0",
|
"pg": "^8.18.0",
|
||||||
"proxy-agent": "^6.5.0",
|
"proxy-agent": "^6.5.0",
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@apidevtools/swagger-parser": "^12.1.0",
|
"@apidevtools/swagger-parser": "^12.1.0",
|
||||||
"@biomejs/biome": "^2.3.14",
|
"@biomejs/biome": "^2.3.12",
|
||||||
"chalk": "5.6.2",
|
"chalk": "5.6.2",
|
||||||
"nodemon": "^3.1.11"
|
"nodemon": "^3.1.11"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -40,59 +40,59 @@
|
|||||||
ajv-draft-04 "^1.0.0"
|
ajv-draft-04 "^1.0.0"
|
||||||
call-me-maybe "^1.0.2"
|
call-me-maybe "^1.0.2"
|
||||||
|
|
||||||
"@biomejs/biome@^2.3.14":
|
"@biomejs/biome@^2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.14.tgz#b879cd5e0495334d4db7c49d6f3cc95b67d2909c"
|
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.12.tgz#7cf21b69734ac6a310bcd014d3a0b3b1dc5a1758"
|
||||||
integrity sha512-QMT6QviX0WqXJCaiqVMiBUCr5WRQ1iFSjvOLoTk6auKukJMvnMzWucXpwZB0e8F00/1/BsS9DzcKgWH+CLqVuA==
|
integrity sha512-AR7h4aSlAvXj7TAajW/V12BOw2EiS0AqZWV5dGozf4nlLoUF/ifvD0+YgKSskT0ylA6dY1A8AwgP8kZ6yaCQnA==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@biomejs/cli-darwin-arm64" "2.3.14"
|
"@biomejs/cli-darwin-arm64" "2.3.12"
|
||||||
"@biomejs/cli-darwin-x64" "2.3.14"
|
"@biomejs/cli-darwin-x64" "2.3.12"
|
||||||
"@biomejs/cli-linux-arm64" "2.3.14"
|
"@biomejs/cli-linux-arm64" "2.3.12"
|
||||||
"@biomejs/cli-linux-arm64-musl" "2.3.14"
|
"@biomejs/cli-linux-arm64-musl" "2.3.12"
|
||||||
"@biomejs/cli-linux-x64" "2.3.14"
|
"@biomejs/cli-linux-x64" "2.3.12"
|
||||||
"@biomejs/cli-linux-x64-musl" "2.3.14"
|
"@biomejs/cli-linux-x64-musl" "2.3.12"
|
||||||
"@biomejs/cli-win32-arm64" "2.3.14"
|
"@biomejs/cli-win32-arm64" "2.3.12"
|
||||||
"@biomejs/cli-win32-x64" "2.3.14"
|
"@biomejs/cli-win32-x64" "2.3.12"
|
||||||
|
|
||||||
"@biomejs/cli-darwin-arm64@2.3.14":
|
"@biomejs/cli-darwin-arm64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.14.tgz#da942618e1dc2d19322bc11d5dacfe7d7616a502"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.12.tgz#ff0029420b0fc307ad0345a4190fe14ca4fd2676"
|
||||||
integrity sha512-UJGPpvWJMkLxSRtpCAKfKh41Q4JJXisvxZL8ChN1eNW3m/WlPFJ6EFDCE7YfUb4XS8ZFi3C1dFpxUJ0Ety5n+A==
|
integrity sha512-cO6fn+KiMBemva6EARDLQBxeyvLzgidaFRJi8G7OeRqz54kWK0E+uSjgFaiHlc3DZYoa0+1UFE8mDxozpc9ieg==
|
||||||
|
|
||||||
"@biomejs/cli-darwin-x64@2.3.14":
|
"@biomejs/cli-darwin-x64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.14.tgz#3ad06cce8ef6d2b935582011bd0cc3ca98a9554d"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.12.tgz#5afba38de8b6fc44cfa16cf45b816deead8cab25"
|
||||||
integrity sha512-PNkLNQG6RLo8lG7QoWe/hhnMxJIt1tEimoXpGQjwS/dkdNiKBLPv4RpeQl8o3s1OKI3ZOR5XPiYtmbGGHAOnLA==
|
integrity sha512-/fiF/qmudKwSdvmSrSe/gOTkW77mHHkH8Iy7YC2rmpLuk27kbaUOPa7kPiH5l+3lJzTUfU/t6x1OuIq/7SGtxg==
|
||||||
|
|
||||||
"@biomejs/cli-linux-arm64-musl@2.3.14":
|
"@biomejs/cli-linux-arm64-musl@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.14.tgz#e92681273dc59ac57b75b72f1b64a67543e50f8c"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.12.tgz#fe98eaca6b3a8b4da1581330a341a9ecb5f49525"
|
||||||
integrity sha512-LInRbXhYujtL3sH2TMCH/UBwJZsoGwfQjBrMfl84CD4hL/41C/EU5mldqf1yoFpsI0iPWuU83U+nB2TUUypWeg==
|
integrity sha512-aqkeSf7IH+wkzFpKeDVPSXy9uDjxtLpYA6yzkYsY+tVjwFFirSuajHDI3ul8en90XNs1NA0n8kgBrjwRi5JeyA==
|
||||||
|
|
||||||
"@biomejs/cli-linux-arm64@2.3.14":
|
"@biomejs/cli-linux-arm64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.14.tgz#bab43ee0a88ba15a6d59ec648a4b415d68d6eeb7"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.12.tgz#b3a404700075aab96b7418b0c00e40a35de104fd"
|
||||||
integrity sha512-KT67FKfzIw6DNnUNdYlBg+eU24Go3n75GWK6NwU4+yJmDYFe9i/MjiI+U/iEzKvo0g7G7MZqoyrhIYuND2w8QQ==
|
integrity sha512-nbOsuQROa3DLla5vvsTZg+T5WVPGi9/vYxETm9BOuLHBJN3oWQIg3MIkE2OfL18df1ZtNkqXkH6Yg9mdTPem7A==
|
||||||
|
|
||||||
"@biomejs/cli-linux-x64-musl@2.3.14":
|
"@biomejs/cli-linux-x64-musl@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.14.tgz#ee90f7110dafdedf4644e0a27ac242975dcd88d3"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.12.tgz#beb065ec9802ddcb00e6bb4398be3f06abd309b2"
|
||||||
integrity sha512-KQU7EkbBBuHPW3/rAcoiVmhlPtDSGOGRPv9js7qJVpYTzjQmVR+C9Rfcz+ti8YCH+zT1J52tuBybtP4IodjxZQ==
|
integrity sha512-kVGWtupRRsOjvw47YFkk5mLiAdpCPMWBo1jOwAzh+juDpUb2sWarIp+iq+CPL1Wt0LLZnYtP7hH5kD6fskcxmg==
|
||||||
|
|
||||||
"@biomejs/cli-linux-x64@2.3.14":
|
"@biomejs/cli-linux-x64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.14.tgz#d152e61c6dc847836ebc741fb70fe305414aa7fe"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.12.tgz#6cfbc5536e1184966704a0f50385b9121ff473a5"
|
||||||
integrity sha512-ZsZzQsl9U+wxFrGGS4f6UxREUlgHwmEfu1IrXlgNFrNnd5Th6lIJr8KmSzu/+meSa9f4rzFrbEW9LBBA6ScoMA==
|
integrity sha512-CQtqrJ+qEEI8tgRSTjjzk6wJAwfH3wQlkIGsM5dlecfRZaoT+XCms/mf7G4kWNexrke6mnkRzNy6w8ebV177ow==
|
||||||
|
|
||||||
"@biomejs/cli-win32-arm64@2.3.14":
|
"@biomejs/cli-win32-arm64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.14.tgz#2c59e84f3d172bada2a1df94d6cf7e511c244a4e"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.12.tgz#ac40d7792708e224c0d5fa5ce1a4beb9e3255bfa"
|
||||||
integrity sha512-+IKYkj/pUBbnRf1G1+RlyA3LWiDgra1xpS7H2g4BuOzzRbRB+hmlw0yFsLprHhbbt7jUzbzAbAjK/Pn0FDnh1A==
|
integrity sha512-Re4I7UnOoyE4kHMqpgtG6UvSBGBbbtvsOvBROgCCoH7EgANN6plSQhvo2W7OCITvTp7gD6oZOyZy72lUdXjqZg==
|
||||||
|
|
||||||
"@biomejs/cli-win32-x64@2.3.14":
|
"@biomejs/cli-win32-x64@2.3.12":
|
||||||
version "2.3.14"
|
version "2.3.12"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.14.tgz#44405162f255fe153a5ff99379510c058bf7a1e8"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.12.tgz#5c710c971f3adc6971e04feb342a70387a6a2d58"
|
||||||
integrity sha512-oizCjdyQ3WJEswpb3Chdngeat56rIdSYK12JI3iI11Mt5T5EXcZ7WLuowzEaFPNJ3zmOQFliMN8QY1Pi+qsfdQ==
|
integrity sha512-qqGVWqNNek0KikwPZlOIoxtXgsNGsX+rgdEzgw82Re8nF02W+E2WokaQhpF5TdBh/D/RQ3TLppH+otp6ztN0lw==
|
||||||
|
|
||||||
"@gar/promisify@^1.0.1":
|
"@gar/promisify@^1.0.1":
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
@@ -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"
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
"rooks": "^9.5.0"
|
"rooks": "^9.5.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.3.13",
|
"@biomejs/biome": "^2.3.14",
|
||||||
"@formatjs/cli": "^6.12.2",
|
"@formatjs/cli": "^6.12.2",
|
||||||
"@tanstack/react-query-devtools": "^5.91.3",
|
"@tanstack/react-query-devtools": "^5.91.3",
|
||||||
"@testing-library/dom": "^10.4.1",
|
"@testing-library/dom": "^10.4.1",
|
||||||
|
|||||||
@@ -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}>
|
||||||
|
|||||||
@@ -235,59 +235,59 @@
|
|||||||
"@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":
|
"@biomejs/biome@^2.3.14":
|
||||||
version "2.3.13"
|
version "2.3.14"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.13.tgz#966c015d8610137f65c97c081bf69a44b423963b"
|
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.14.tgz#b879cd5e0495334d4db7c49d6f3cc95b67d2909c"
|
||||||
integrity sha512-Fw7UsV0UAtWIBIm0M7g5CRerpu1eKyKAXIazzxhbXYUyMkwNrkX/KLkGI7b+uVDQ5cLUMfOC9vR60q9IDYDstA==
|
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"
|
||||||
|
|||||||
Reference in New Issue
Block a user