Compare commits
26 Commits
lang-persi
...
v2.13.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbea8dfa9e | ||
|
|
8c37348b65 | ||
|
|
2b3e9d72f4 | ||
|
|
a3e5235d81 | ||
|
|
9875fa92f1 | ||
|
|
ef5156b613 | ||
|
|
b9a34ebb7e | ||
|
|
7642d0a000 | ||
|
|
7a6a9de0ea | ||
|
|
a5d50f9588 | ||
|
|
612695c2e8 | ||
|
|
71a2277b9b | ||
|
|
5acf287ea7 | ||
|
|
e34206b526 | ||
|
|
6b00adf8b9 | ||
|
|
a93558278e | ||
|
|
bc2867b357 | ||
|
|
52093ba258 | ||
|
|
e0985bee43 | ||
|
|
51dd6e6a1b | ||
|
|
a2ea63a539 | ||
|
|
bfcd057755 | ||
|
|
08bdc23131 | ||
|
|
c9aba0c928 | ||
|
|
4397f57a51 | ||
|
|
356eaa0691 |
@@ -5,7 +5,7 @@ import fileUpload from "express-fileupload";
|
|||||||
import { isDebugMode } from "./lib/config.js";
|
import { isDebugMode } from "./lib/config.js";
|
||||||
import cors from "./lib/express/cors.js";
|
import cors from "./lib/express/cors.js";
|
||||||
import jwt from "./lib/express/jwt.js";
|
import jwt from "./lib/express/jwt.js";
|
||||||
import { express as logger } from "./logger.js";
|
import { debug, express as logger } from "./logger.js";
|
||||||
import mainRoutes from "./routes/main.js";
|
import mainRoutes from "./routes/main.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,7 +80,7 @@ app.use((err, req, res, _) => {
|
|||||||
|
|
||||||
// Not every error is worth logging - but this is good for now until it gets annoying.
|
// Not every error is worth logging - but this is good for now until it gets annoying.
|
||||||
if (typeof err.stack !== "undefined" && err.stack) {
|
if (typeof err.stack !== "undefined" && err.stack) {
|
||||||
logger.debug(err.stack);
|
debug(logger, err.stack);
|
||||||
if (typeof err.public === "undefined" || !err.public) {
|
if (typeof err.public === "undefined" || !err.public) {
|
||||||
logger.warn(err.message);
|
logger.warn(err.message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.3.1/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.3.2/schema.json",
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
|
|||||||
@@ -295,6 +295,14 @@
|
|||||||
"credentials": "dns_hetzner_api_token = 0123456789abcdef0123456789abcdef",
|
"credentials": "dns_hetzner_api_token = 0123456789abcdef0123456789abcdef",
|
||||||
"full_plugin_name": "dns-hetzner"
|
"full_plugin_name": "dns-hetzner"
|
||||||
},
|
},
|
||||||
|
"hetzner-cloud": {
|
||||||
|
"name": "Hetzner Cloud",
|
||||||
|
"package_name": "certbot-dns-hetzner-cloud",
|
||||||
|
"version": "~=1.0.4",
|
||||||
|
"dependencies": "",
|
||||||
|
"credentials": "dns_hetzner_cloud_api_token = your_api_token_here",
|
||||||
|
"full_plugin_name": "dns-hetzner-cloud"
|
||||||
|
},
|
||||||
"hostingnl": {
|
"hostingnl": {
|
||||||
"name": "Hosting.nl",
|
"name": "Hosting.nl",
|
||||||
"package_name": "certbot-dns-hostingnl",
|
"package_name": "certbot-dns-hostingnl",
|
||||||
|
|||||||
@@ -21,7 +21,8 @@ const generateDbConfig = () => {
|
|||||||
user: cfg.user,
|
user: cfg.user,
|
||||||
password: cfg.password,
|
password: cfg.password,
|
||||||
database: cfg.name,
|
database: cfg.name,
|
||||||
port: cfg.port,
|
port: cfg.port,
|
||||||
|
...(cfg.ssl ? { ssl: cfg.ssl } : {})
|
||||||
},
|
},
|
||||||
migrations: {
|
migrations: {
|
||||||
tableName: "migrations",
|
tableName: "migrations",
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { installPlugin } from "../lib/certbot.js";
|
|||||||
import { useLetsencryptServer, useLetsencryptStaging } from "../lib/config.js";
|
import { useLetsencryptServer, useLetsencryptStaging } from "../lib/config.js";
|
||||||
import error from "../lib/error.js";
|
import error from "../lib/error.js";
|
||||||
import utils from "../lib/utils.js";
|
import utils from "../lib/utils.js";
|
||||||
import { ssl as logger } from "../logger.js";
|
import { debug, ssl as logger } from "../logger.js";
|
||||||
import certificateModel from "../models/certificate.js";
|
import certificateModel from "../models/certificate.js";
|
||||||
import tokenModel from "../models/token.js";
|
import tokenModel from "../models/token.js";
|
||||||
import userModel from "../models/user.js";
|
import userModel from "../models/user.js";
|
||||||
@@ -355,7 +355,7 @@ const internalCertificate = {
|
|||||||
const opName = `/tmp/${downloadName}`;
|
const opName = `/tmp/${downloadName}`;
|
||||||
|
|
||||||
await internalCertificate.zipFiles(certFiles, opName);
|
await internalCertificate.zipFiles(certFiles, opName);
|
||||||
logger.debug("zip completed : ", opName);
|
debug(logger, "zip completed : ", opName);
|
||||||
return {
|
return {
|
||||||
fileName: opName,
|
fileName: opName,
|
||||||
};
|
};
|
||||||
@@ -375,7 +375,7 @@ const internalCertificate = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
source.map((fl) => {
|
source.map((fl) => {
|
||||||
const fileName = path.basename(fl);
|
const fileName = path.basename(fl);
|
||||||
logger.debug(fl, "added to certificate zip");
|
debug(logger, fl, "added to certificate zip");
|
||||||
archive.file(fl, { name: fileName });
|
archive.file(fl, { name: fileName });
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { fileURLToPath } from "node:url";
|
|||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import errs from "../lib/error.js";
|
import errs from "../lib/error.js";
|
||||||
import utils from "../lib/utils.js";
|
import utils from "../lib/utils.js";
|
||||||
import { nginx as logger } from "../logger.js";
|
import { debug, nginx as logger } from "../logger.js";
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
@@ -68,7 +68,7 @@ const internalNginx = {
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.debug("Nginx test failed:", valid_lines.join("\n"));
|
debug(logger, "Nginx test failed:", valid_lines.join("\n"));
|
||||||
|
|
||||||
// config is bad, update meta and delete config
|
// config is bad, update meta and delete config
|
||||||
combined_meta = _.assign({}, host.meta, {
|
combined_meta = _.assign({}, host.meta, {
|
||||||
@@ -102,7 +102,7 @@ const internalNginx = {
|
|||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
*/
|
*/
|
||||||
test: () => {
|
test: () => {
|
||||||
logger.debug("Testing Nginx configuration");
|
debug(logger, "Testing Nginx configuration");
|
||||||
return utils.execFile("/usr/sbin/nginx", ["-t", "-g", "error_log off;"]);
|
return utils.execFile("/usr/sbin/nginx", ["-t", "-g", "error_log off;"]);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -190,7 +190,7 @@ const internalNginx = {
|
|||||||
const host = JSON.parse(JSON.stringify(host_row));
|
const host = JSON.parse(JSON.stringify(host_row));
|
||||||
const nice_host_type = internalNginx.getFileFriendlyHostType(host_type);
|
const nice_host_type = internalNginx.getFileFriendlyHostType(host_type);
|
||||||
|
|
||||||
logger.debug(`Generating ${nice_host_type} Config:`, JSON.stringify(host, null, 2));
|
debug(logger, `Generating ${nice_host_type} Config:`, JSON.stringify(host, null, 2));
|
||||||
|
|
||||||
const renderEngine = utils.getRenderEngine();
|
const renderEngine = utils.getRenderEngine();
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ const internalNginx = {
|
|||||||
.parseAndRender(template, host)
|
.parseAndRender(template, host)
|
||||||
.then((config_text) => {
|
.then((config_text) => {
|
||||||
fs.writeFileSync(filename, config_text, { encoding: "utf8" });
|
fs.writeFileSync(filename, config_text, { encoding: "utf8" });
|
||||||
logger.debug("Wrote config:", filename, config_text);
|
debug(logger, "Wrote config:", filename, config_text);
|
||||||
|
|
||||||
// Restore locations array
|
// Restore locations array
|
||||||
host.locations = origLocations;
|
host.locations = origLocations;
|
||||||
@@ -249,7 +249,7 @@ const internalNginx = {
|
|||||||
resolve(true);
|
resolve(true);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
logger.debug(`Could not write ${filename}:`, err.message);
|
debug(logger, `Could not write ${filename}:`, err.message);
|
||||||
reject(new errs.ConfigurationError(err.message));
|
reject(new errs.ConfigurationError(err.message));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -265,7 +265,7 @@ const internalNginx = {
|
|||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
*/
|
*/
|
||||||
generateLetsEncryptRequestConfig: (certificate) => {
|
generateLetsEncryptRequestConfig: (certificate) => {
|
||||||
logger.debug("Generating LetsEncrypt Request Config:", certificate);
|
debug(logger, "Generating LetsEncrypt Request Config:", certificate);
|
||||||
const renderEngine = utils.getRenderEngine();
|
const renderEngine = utils.getRenderEngine();
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@@ -285,11 +285,11 @@ const internalNginx = {
|
|||||||
.parseAndRender(template, certificate)
|
.parseAndRender(template, certificate)
|
||||||
.then((config_text) => {
|
.then((config_text) => {
|
||||||
fs.writeFileSync(filename, config_text, { encoding: "utf8" });
|
fs.writeFileSync(filename, config_text, { encoding: "utf8" });
|
||||||
logger.debug("Wrote config:", filename, config_text);
|
debug(logger, "Wrote config:", filename, config_text);
|
||||||
resolve(true);
|
resolve(true);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
logger.debug(`Could not write ${filename}:`, err.message);
|
debug(logger, `Could not write ${filename}:`, err.message);
|
||||||
reject(new errs.ConfigurationError(err.message));
|
reject(new errs.ConfigurationError(err.message));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -305,10 +305,10 @@ const internalNginx = {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
logger.debug(`Deleting file: ${filename}`);
|
debug(logger, `Deleting file: ${filename}`);
|
||||||
fs.unlinkSync(filename);
|
fs.unlinkSync(filename);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug("Could not delete file:", JSON.stringify(err, null, 2));
|
debug(logger, "Could not delete file:", JSON.stringify(err, null, 2));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -31,9 +31,14 @@ const configure = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
|
const toBool = (v) => /^(1|true|yes|on)$/i.test((v || '').trim());
|
||||||
const envMysqlUser = process.env.DB_MYSQL_USER || null;
|
|
||||||
const envMysqlName = process.env.DB_MYSQL_NAME || null;
|
const envMysqlHost = process.env.DB_MYSQL_HOST || null;
|
||||||
|
const envMysqlUser = process.env.DB_MYSQL_USER || null;
|
||||||
|
const envMysqlName = process.env.DB_MYSQL_NAME || null;
|
||||||
|
const envMysqlSSL = toBool(process.env.DB_MYSQL_SSL);
|
||||||
|
const envMysqlSSLRejectUnauthorized = process.env.DB_MYSQL_SSL_REJECT_UNAUTHORIZED === undefined ? true : toBool(process.env.DB_MYSQL_SSL_REJECT_UNAUTHORIZED);
|
||||||
|
const envMysqlSSLVerifyIdentity = process.env.DB_MYSQL_SSL_VERIFY_IDENTITY === undefined ? true : toBool(process.env.DB_MYSQL_SSL_VERIFY_IDENTITY);
|
||||||
if (envMysqlHost && envMysqlUser && envMysqlName) {
|
if (envMysqlHost && envMysqlUser && envMysqlName) {
|
||||||
// we have enough mysql creds to go with mysql
|
// we have enough mysql creds to go with mysql
|
||||||
logger.info("Using MySQL configuration");
|
logger.info("Using MySQL configuration");
|
||||||
@@ -44,7 +49,8 @@ const configure = () => {
|
|||||||
port: process.env.DB_MYSQL_PORT || 3306,
|
port: process.env.DB_MYSQL_PORT || 3306,
|
||||||
user: envMysqlUser,
|
user: envMysqlUser,
|
||||||
password: process.env.DB_MYSQL_PASSWORD,
|
password: process.env.DB_MYSQL_PASSWORD,
|
||||||
name: envMysqlName,
|
name: envMysqlName,
|
||||||
|
ssl: envMysqlSSL ? { rejectUnauthorized: envMysqlSSLRejectUnauthorized, verifyIdentity: envMysqlSSLVerifyIdentity } : false,
|
||||||
},
|
},
|
||||||
keys: getKeys(),
|
keys: getKeys(),
|
||||||
};
|
};
|
||||||
@@ -90,7 +96,9 @@ const configure = () => {
|
|||||||
|
|
||||||
const getKeys = () => {
|
const getKeys = () => {
|
||||||
// Get keys from file
|
// Get keys from file
|
||||||
logger.debug("Cheecking for keys file:", keysFile);
|
if (isDebugMode()) {
|
||||||
|
logger.debug("Checking for keys file:", keysFile);
|
||||||
|
}
|
||||||
if (!fs.existsSync(keysFile)) {
|
if (!fs.existsSync(keysFile)) {
|
||||||
generateKeys();
|
generateKeys();
|
||||||
} else if (process.env.DEBUG) {
|
} else if (process.env.DEBUG) {
|
||||||
|
|||||||
@@ -3,14 +3,14 @@ import { dirname } from "node:path";
|
|||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
import { Liquid } from "liquidjs";
|
import { Liquid } from "liquidjs";
|
||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import { global as logger } from "../logger.js";
|
import { debug, global as logger } from "../logger.js";
|
||||||
import errs from "./error.js";
|
import errs from "./error.js";
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = dirname(__filename);
|
const __dirname = dirname(__filename);
|
||||||
|
|
||||||
const exec = async (cmd, options = {}) => {
|
const exec = async (cmd, options = {}) => {
|
||||||
logger.debug("CMD:", cmd);
|
debug(logger, "CMD:", cmd);
|
||||||
const { stdout, stderr } = await new Promise((resolve, reject) => {
|
const { stdout, stderr } = await new Promise((resolve, reject) => {
|
||||||
const child = nodeExec(cmd, options, (isError, stdout, stderr) => {
|
const child = nodeExec(cmd, options, (isError, stdout, stderr) => {
|
||||||
if (isError) {
|
if (isError) {
|
||||||
@@ -34,7 +34,7 @@ const exec = async (cmd, options = {}) => {
|
|||||||
* @returns {Promise}
|
* @returns {Promise}
|
||||||
*/
|
*/
|
||||||
const execFile = (cmd, args, options) => {
|
const execFile = (cmd, args, options) => {
|
||||||
logger.debug(`CMD: ${cmd} ${args ? args.join(" ") : ""}`);
|
debug(logger, `CMD: ${cmd} ${args ? args.join(" ") : ""}`);
|
||||||
const opts = options || {};
|
const opts = options || {};
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import signale from "signale";
|
import signale from "signale";
|
||||||
|
import { isDebugMode } from "./lib/config.js";
|
||||||
|
|
||||||
const opts = {
|
const opts = {
|
||||||
logLevel: "info",
|
logLevel: "info",
|
||||||
@@ -15,4 +16,10 @@ const importer = new signale.Signale({ scope: "Importer ", ...opts });
|
|||||||
const setup = new signale.Signale({ scope: "Setup ", ...opts });
|
const setup = new signale.Signale({ scope: "Setup ", ...opts });
|
||||||
const ipRanges = new signale.Signale({ scope: "IP Ranges", ...opts });
|
const ipRanges = new signale.Signale({ scope: "IP Ranges", ...opts });
|
||||||
|
|
||||||
export { global, migrate, express, access, nginx, ssl, certbot, importer, setup, ipRanges };
|
const debug = (logger, ...args) => {
|
||||||
|
if (isDebugMode()) {
|
||||||
|
logger.debug(...args);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export { debug, global, migrate, express, access, nginx, ssl, certbot, importer, setup, ipRanges };
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import express from "express";
|
|||||||
import internalAuditLog from "../internal/audit-log.js";
|
import internalAuditLog from "../internal/audit-log.js";
|
||||||
import jwtdecode from "../lib/express/jwt-decode.js";
|
import jwtdecode from "../lib/express/jwt-decode.js";
|
||||||
import validator from "../lib/validator/index.js";
|
import validator from "../lib/validator/index.js";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
caseSensitive: true,
|
caseSensitive: true,
|
||||||
@@ -47,7 +47,7 @@ router
|
|||||||
const rows = await internalAuditLog.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalAuditLog.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -99,7 +99,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(item);
|
res.status(200).send(item);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalAccessList from "../../internal/access-list.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -49,7 +49,7 @@ router
|
|||||||
const rows = await internalAccessList.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalAccessList.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -65,7 +65,7 @@ router
|
|||||||
const result = await internalAccessList.create(res.locals.access, payload);
|
const result = await internalAccessList.create(res.locals.access, payload);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,7 +113,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -130,7 +130,7 @@ router
|
|||||||
const result = await internalAccessList.update(res.locals.access, payload);
|
const result = await internalAccessList.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -147,7 +147,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import errs from "../../lib/error.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -58,7 +58,7 @@ router
|
|||||||
);
|
);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -81,7 +81,7 @@ router
|
|||||||
);
|
);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -115,7 +115,7 @@ router
|
|||||||
clean.sort((a, b) => a.name.localeCompare(b.name));
|
clean.sort((a, b) => a.name.localeCompare(b.name));
|
||||||
res.status(200).send(clean);
|
res.status(200).send(clean);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -151,7 +151,7 @@ router
|
|||||||
);
|
);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -185,7 +185,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -236,7 +236,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -253,7 +253,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -288,7 +288,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -318,7 +318,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -347,7 +347,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).download(result.fileName);
|
res.status(200).download(result.fileName);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalDeadHost from "../../internal/dead-host.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -49,7 +49,7 @@ router
|
|||||||
const rows = await internalDeadHost.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalDeadHost.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -65,7 +65,7 @@ router
|
|||||||
const result = await internalDeadHost.create(res.locals.access, payload);
|
const result = await internalDeadHost.create(res.locals.access, payload);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,7 +113,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -130,7 +130,7 @@ router
|
|||||||
const result = await internalDeadHost.update(res.locals.access, payload);
|
const result = await internalDeadHost.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -147,7 +147,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -174,7 +174,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -199,7 +199,7 @@ router
|
|||||||
const result = internalDeadHost.disable(res.locals.access, { id: Number.parseInt(req.params.host_id, 10) });
|
const result = internalDeadHost.disable(res.locals.access, { id: Number.parseInt(req.params.host_id, 10) });
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalProxyHost from "../../internal/proxy-host.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -49,7 +49,7 @@ router
|
|||||||
const rows = await internalProxyHost.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalProxyHost.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -65,7 +65,7 @@ router
|
|||||||
const result = await internalProxyHost.create(res.locals.access, payload);
|
const result = await internalProxyHost.create(res.locals.access, payload);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err} ${JSON.stringify(err.debug, null, 2)}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err} ${JSON.stringify(err.debug, null, 2)}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,7 +113,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -130,7 +130,7 @@ router
|
|||||||
const result = await internalProxyHost.update(res.locals.access, payload);
|
const result = await internalProxyHost.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -147,7 +147,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -174,7 +174,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -201,7 +201,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalRedirectionHost from "../../internal/redirection-host.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -49,7 +49,7 @@ router
|
|||||||
const rows = await internalRedirectionHost.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalRedirectionHost.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -65,7 +65,7 @@ router
|
|||||||
const result = await internalRedirectionHost.create(res.locals.access, payload);
|
const result = await internalRedirectionHost.create(res.locals.access, payload);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,7 +113,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -133,7 +133,7 @@ router
|
|||||||
const result = await internalRedirectionHost.update(res.locals.access, payload);
|
const result = await internalRedirectionHost.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -150,7 +150,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -177,7 +177,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -204,7 +204,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalStream from "../../internal/stream.js";
|
|||||||
import jwtdecode from "../../lib/express/jwt-decode.js";
|
import jwtdecode from "../../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../../lib/validator/api.js";
|
import apiValidator from "../../lib/validator/api.js";
|
||||||
import validator from "../../lib/validator/index.js";
|
import validator from "../../lib/validator/index.js";
|
||||||
import { express as logger } from "../../logger.js";
|
import { debug, express as logger } from "../../logger.js";
|
||||||
import { getValidationSchema } from "../../schema/index.js";
|
import { getValidationSchema } from "../../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -49,7 +49,7 @@ router
|
|||||||
const rows = await internalStream.getAll(res.locals.access, data.expand, data.query);
|
const rows = await internalStream.getAll(res.locals.access, data.expand, data.query);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -65,7 +65,7 @@ router
|
|||||||
const result = await internalStream.create(res.locals.access, payload);
|
const result = await internalStream.create(res.locals.access, payload);
|
||||||
res.status(201).send(result);
|
res.status(201).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -113,7 +113,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -130,7 +130,7 @@ router
|
|||||||
const result = await internalStream.update(res.locals.access, payload);
|
const result = await internalStream.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -147,7 +147,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -174,7 +174,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -201,7 +201,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import internalReport from "../internal/report.js";
|
import internalReport from "../internal/report.js";
|
||||||
import jwtdecode from "../lib/express/jwt-decode.js";
|
import jwtdecode from "../lib/express/jwt-decode.js";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
caseSensitive: true,
|
caseSensitive: true,
|
||||||
@@ -24,7 +24,7 @@ router
|
|||||||
const data = await internalReport.getHostsReport(res.locals.access);
|
const data = await internalReport.getHostsReport(res.locals.access);
|
||||||
res.status(200).send(data);
|
res.status(200).send(data);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import express from "express";
|
import express from "express";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
import PACKAGE from "../package.json" with { type: "json" };
|
import PACKAGE from "../package.json" with { type: "json" };
|
||||||
import { getCompiledSchema } from "../schema/index.js";
|
import { getCompiledSchema } from "../schema/index.js";
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ router
|
|||||||
swaggerJSON.servers[0].url = `${origin}/api`;
|
swaggerJSON.servers[0].url = `${origin}/api`;
|
||||||
res.status(200).send(swaggerJSON);
|
res.status(200).send(swaggerJSON);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import internalSetting from "../internal/setting.js";
|
|||||||
import jwtdecode from "../lib/express/jwt-decode.js";
|
import jwtdecode from "../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../lib/validator/api.js";
|
import apiValidator from "../lib/validator/api.js";
|
||||||
import validator from "../lib/validator/index.js";
|
import validator from "../lib/validator/index.js";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
import { getValidationSchema } from "../schema/index.js";
|
import { getValidationSchema } from "../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -32,7 +32,7 @@ router
|
|||||||
const rows = await internalSetting.getAll(res.locals.access);
|
const rows = await internalSetting.getAll(res.locals.access);
|
||||||
res.status(200).send(rows);
|
res.status(200).send(rows);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -76,7 +76,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(row);
|
res.status(200).send(row);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -93,7 +93,7 @@ router
|
|||||||
const result = await internalSetting.update(res.locals.access, payload);
|
const result = await internalSetting.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import express from "express";
|
|||||||
import internalToken from "../internal/token.js";
|
import internalToken from "../internal/token.js";
|
||||||
import jwtdecode from "../lib/express/jwt-decode.js";
|
import jwtdecode from "../lib/express/jwt-decode.js";
|
||||||
import apiValidator from "../lib/validator/api.js";
|
import apiValidator from "../lib/validator/api.js";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
import { getValidationSchema } from "../schema/index.js";
|
import { getValidationSchema } from "../schema/index.js";
|
||||||
|
|
||||||
const router = express.Router({
|
const router = express.Router({
|
||||||
@@ -32,7 +32,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(data);
|
res.status(200).send(data);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -48,7 +48,7 @@ router
|
|||||||
const result = await internalToken.getTokenFromEmail(data);
|
const result = await internalToken.getTokenFromEmail(data);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import jwtdecode from "../lib/express/jwt-decode.js";
|
|||||||
import userIdFromMe from "../lib/express/user-id-from-me.js";
|
import userIdFromMe from "../lib/express/user-id-from-me.js";
|
||||||
import apiValidator from "../lib/validator/api.js";
|
import apiValidator from "../lib/validator/api.js";
|
||||||
import validator from "../lib/validator/index.js";
|
import validator from "../lib/validator/index.js";
|
||||||
import { express as logger } from "../logger.js";
|
import { debug, express as logger } from "../logger.js";
|
||||||
import { getValidationSchema } from "../schema/index.js";
|
import { getValidationSchema } from "../schema/index.js";
|
||||||
import { isSetup } from "../setup.js";
|
import { isSetup } from "../setup.js";
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ router
|
|||||||
);
|
);
|
||||||
res.status(200).send(users);
|
res.status(200).send(users);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -101,7 +101,7 @@ router
|
|||||||
const user = await internalUser.create(res.locals.access, payload);
|
const user = await internalUser.create(res.locals.access, payload);
|
||||||
res.status(201).send(user);
|
res.status(201).send(user);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -124,7 +124,7 @@ router
|
|||||||
await internalUser.deleteAll();
|
await internalUser.deleteAll();
|
||||||
res.status(200).send(true);
|
res.status(200).send(true);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@@ -185,7 +185,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(user);
|
res.status(200).send(user);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -205,7 +205,7 @@ router
|
|||||||
const result = await internalUser.update(res.locals.access, payload);
|
const result = await internalUser.update(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -222,7 +222,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -255,7 +255,7 @@ router
|
|||||||
const result = await internalUser.setPassword(res.locals.access, payload);
|
const result = await internalUser.setPassword(res.locals.access, payload);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -291,7 +291,7 @@ router
|
|||||||
);
|
);
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -320,7 +320,7 @@ router
|
|||||||
});
|
});
|
||||||
res.status(200).send(result);
|
res.status(200).send(result);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.debug(`${req.method.toUpperCase()} ${req.path}: ${err}`);
|
debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
|
||||||
next(err);
|
next(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -24,4 +24,5 @@
|
|||||||
|
|
||||||
.inline-img img {
|
.inline-img img {
|
||||||
display: inline;
|
display: inline;
|
||||||
|
margin-right: 8px;
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 173 KiB |
|
Before Width: | Height: | Size: 141 KiB |
BIN
docs/src/public/screenshots/dark/01_first-user.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
docs/src/public/screenshots/dark/02_login.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/src/public/screenshots/dark/03_dashboard.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/src/public/screenshots/dark/04_proxy-hosts.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/src/public/screenshots/dark/05_redirection_hosts.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
docs/src/public/screenshots/dark/06_streams.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
docs/src/public/screenshots/dark/07_404_hosts.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
docs/src/public/screenshots/dark/08_access-lists.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
docs/src/public/screenshots/dark/09_certificates.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
docs/src/public/screenshots/dark/10_users.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/src/public/screenshots/dark/11_audit-logs.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
BIN
docs/src/public/screenshots/dark/12_settings.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/src/public/screenshots/dark/13_add-proxy_host.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
docs/src/public/screenshots/dark/14_add_proxy_host_dns.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 150 KiB |
BIN
docs/src/public/screenshots/light/01_first-user.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/src/public/screenshots/light/02_login.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/src/public/screenshots/light/03_dashboard.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
docs/src/public/screenshots/light/04_proxy-hosts.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/src/public/screenshots/light/05_redirection_hosts.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
docs/src/public/screenshots/light/06_streams.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
docs/src/public/screenshots/light/07_404_hosts.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/src/public/screenshots/light/08_access-lists.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
docs/src/public/screenshots/light/09_certificates.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/src/public/screenshots/light/10_users.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
docs/src/public/screenshots/light/11_audit-logs.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
docs/src/public/screenshots/light/12_settings.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/src/public/screenshots/light/13_add-proxy_host.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
docs/src/public/screenshots/light/14_add_proxy_host_dns.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 181 KiB |
|
Before Width: | Height: | Size: 162 KiB |
@@ -4,17 +4,44 @@ outline: deep
|
|||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
|
|
||||||
|
### Light Mode
|
||||||
|
|
||||||
::: raw
|
::: raw
|
||||||
<div class="inline-img">
|
<div class="inline-img">
|
||||||
<a href="/screenshots/login.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/login.png" alt="Login" title="Login" width="200"/></a>
|
<a href="/screenshots/light/01_first-user.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/01_first-user.png" alt="Setup" title="Setup" width="200"/></a>
|
||||||
<a href="/screenshots/dashboard.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dashboard.png" alt="Dashboard" title="Dashboard" width="200"/></a>
|
<a href="/screenshots/light/02_login.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/02_login.png" alt="Login" title="Login" width="200"/></a>
|
||||||
<a href="/screenshots/proxy-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/></a>
|
<a href="/screenshots/light/03_dashboard.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/03_dashboard.png" alt="Dashboard" title="Dashboard" width="200"/></a>
|
||||||
<a href="/screenshots/proxy-hosts-add.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/proxy-hosts-add.png" alt="Add Proxy Host" title="Add Proxy Host" width="200"/></a>
|
<a href="/screenshots/light/04_proxy-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/04_proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/></a>
|
||||||
<a href="/screenshots/redirection-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/redirection-hosts.png" alt="Redirection Hosts" title="Redirection Hosts" width="200"/></a>
|
<a href="/screenshots/light/05_redirection_hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/05_redirection_hosts.png" alt="Redirection Hosts" title="Redirection Hosts" width="200"/></a>
|
||||||
<a href="/screenshots/dead-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dead-hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/></a>
|
<a href="/screenshots/light/06_streams.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/06_streams.png" alt="Streams" title="Streams" width="200"/></a>
|
||||||
<a href="/screenshots/permissions.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/permissions.png" alt="User Permissions" title="User Permissions" width="200"/></a>
|
<a href="/screenshots/light/07_404_hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/07_404_hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/></a>
|
||||||
<a href="/screenshots/certificates.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/certificates.png" alt="Certificates" title="Certificates" width="200"/></a>
|
<a href="/screenshots/light/08_access-lists.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/08_access-lists.png" alt="Access Lists" title="Access Lists" width="200"/></a>
|
||||||
<a href="/screenshots/audit-log.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/audit-log.png" alt="Audit Log" title="Audit Log" width="200"/></a>
|
<a href="/screenshots/light/09_certificates.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/09_certificates.png" alt="Certificates" title="Certificates" width="200"/></a>
|
||||||
<a href="/screenshots/custom-settings.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/custom-settings.png" alt="Custom Settings" title="Custom Settings" width="200"/></a>
|
<a href="/screenshots/light/10_users.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/10_users.png" alt="Users" title="Users" width="200"/></a>
|
||||||
|
<a href="/screenshots/light/11_audit-logs.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/11_audit-logs.png" alt="Audit Logs" title="Audit Logs" width="200"/></a>
|
||||||
|
<a href="/screenshots/light/12_settings.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/12_settings.png" alt="Settings" title="Settings" width="200"/></a>
|
||||||
|
<a href="/screenshots/light/13_add-proxy_host.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/13_add-proxy_host.png" alt="Add Proxy Host" title="Add Proxy Host" width="200"/></a>
|
||||||
|
<a href="/screenshots/light/14_add_proxy_host_dns.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/light/14_add_proxy_host_dns.png" alt="Add Proxy Host with DNS" title="Add Proxy Host with DNS" width="200"/></a>
|
||||||
|
</div>
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Dark Mode
|
||||||
|
|
||||||
|
::: raw
|
||||||
|
<div class="inline-img">
|
||||||
|
<a href="/screenshots/dark/01_first-user.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/01_first-user.png" alt="Setup" title="Setup" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/02_login.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/02_login.png" alt="Login" title="Login" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/03_dashboard.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/03_dashboard.png" alt="Dashboard" title="Dashboard" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/04_proxy-hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/04_proxy-hosts.png" alt="Proxy Hosts" title="Proxy Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/05_redirection_hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/05_redirection_hosts.png" alt="Redirection Hosts" title="Redirection Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/06_streams.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/06_streams.png" alt="Streams" title="Streams" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/07_404_hosts.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/07_404_hosts.png" alt="404 Hosts" title="404 Hosts" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/08_access-lists.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/08_access-lists.png" alt="Access Lists" title="Access Lists" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/09_certificates.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/09_certificates.png" alt="Certificates" title="Certificates" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/10_users.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/10_users.png" alt="Users" title="Users" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/11_audit-logs.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/11_audit-logs.png" alt="Audit Logs" title="Audit Logs" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/12_settings.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/12_settings.png" alt="Settings" title="Settings" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/13_add-proxy_host.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/13_add-proxy_host.png" alt="Add Proxy Host" title="Add Proxy Host" width="200"/></a>
|
||||||
|
<a href="/screenshots/dark/14_add_proxy_host_dns.png" target="_blank"><img class="no-medium-zoom zooming" src="/screenshots/dark/14_add_proxy_host_dns.png" alt="Add Proxy Host with DNS" title="Add Proxy Host with DNS" width="200"/></a>
|
||||||
</div>
|
</div>
|
||||||
:::
|
:::
|
||||||
|
|||||||
@@ -75,6 +75,10 @@ services:
|
|||||||
DB_MYSQL_USER: "npm"
|
DB_MYSQL_USER: "npm"
|
||||||
DB_MYSQL_PASSWORD: "npm"
|
DB_MYSQL_PASSWORD: "npm"
|
||||||
DB_MYSQL_NAME: "npm"
|
DB_MYSQL_NAME: "npm"
|
||||||
|
# Optional SSL (see section below)
|
||||||
|
# DB_MYSQL_SSL: 'true'
|
||||||
|
# DB_MYSQL_SSL_REJECT_UNAUTHORIZED: 'true'
|
||||||
|
# DB_MYSQL_SSL_VERIFY_IDENTITY: 'true'
|
||||||
# Uncomment this if IPv6 is not enabled on your host
|
# Uncomment this if IPv6 is not enabled on your host
|
||||||
# DISABLE_IPV6: 'true'
|
# DISABLE_IPV6: 'true'
|
||||||
volumes:
|
volumes:
|
||||||
@@ -102,6 +106,16 @@ Please note, that `DB_MYSQL_*` environment variables will take precedent over `D
|
|||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
### Optional: MySQL / MariaDB SSL
|
||||||
|
|
||||||
|
You can enable TLS for the MySQL/MariaDB connection with these environment variables:
|
||||||
|
|
||||||
|
- DB_MYSQL_SSL: Enable SSL when set to true. If unset or false, SSL disabled (previous default behaviour).
|
||||||
|
- DB_MYSQL_SSL_REJECT_UNAUTHORIZED: (default: true) Validate the server certificate chain. Set to false to allow self‑signed/unknown CA.
|
||||||
|
- DB_MYSQL_SSL_VERIFY_IDENTITY: (default: true) Performs host name / identity verification.
|
||||||
|
|
||||||
|
Enabling SSL using a self-signed cert (not recommended for production).
|
||||||
|
|
||||||
## Using Postgres database
|
## Using Postgres database
|
||||||
|
|
||||||
Similar to the MySQL server setup:
|
Similar to the MySQL server setup:
|
||||||
@@ -141,7 +155,7 @@ services:
|
|||||||
POSTGRES_PASSWORD: 'npmpass'
|
POSTGRES_PASSWORD: 'npmpass'
|
||||||
POSTGRES_DB: 'npm'
|
POSTGRES_DB: 'npm'
|
||||||
volumes:
|
volumes:
|
||||||
- ./postgres:/var/lib/postgresql/data
|
- ./postgresql:/var/lib/postgresql
|
||||||
```
|
```
|
||||||
|
|
||||||
::: warning
|
::: warning
|
||||||
|
|||||||
@@ -1065,9 +1065,9 @@ vfile@^6.0.0:
|
|||||||
vfile-message "^4.0.0"
|
vfile-message "^4.0.0"
|
||||||
|
|
||||||
vite@^5.4.8:
|
vite@^5.4.8:
|
||||||
version "5.4.19"
|
version "5.4.21"
|
||||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.19.tgz#20efd060410044b3ed555049418a5e7d1998f959"
|
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027"
|
||||||
integrity sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==
|
integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.21.3"
|
esbuild "^0.21.3"
|
||||||
postcss "^8.4.43"
|
postcss "^8.4.43"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.3.1/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.3.2/schema.json",
|
||||||
"vcs": {
|
"vcs": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"clientKind": "git",
|
"clientKind": "git",
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tabler/core": "^1.4.0",
|
"@tabler/core": "^1.4.0",
|
||||||
"@tabler/icons-react": "^3.35.0",
|
"@tabler/icons-react": "^3.35.0",
|
||||||
"@tanstack/react-query": "^5.90.5",
|
"@tanstack/react-query": "^5.90.6",
|
||||||
"@tanstack/react-table": "^8.21.3",
|
"@tanstack/react-table": "^8.21.3",
|
||||||
"@uiw/react-textarea-code-editor": "^3.1.1",
|
"@uiw/react-textarea-code-editor": "^3.1.1",
|
||||||
"classnames": "^2.5.1",
|
"classnames": "^2.5.1",
|
||||||
@@ -34,13 +34,13 @@
|
|||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
"react-intl": "^7.1.14",
|
"react-intl": "^7.1.14",
|
||||||
"react-markdown": "^10.1.0",
|
"react-markdown": "^10.1.0",
|
||||||
"react-router-dom": "^7.9.4",
|
"react-router-dom": "^7.9.5",
|
||||||
"react-select": "^5.10.2",
|
"react-select": "^5.10.2",
|
||||||
"react-toastify": "^11.0.5",
|
"react-toastify": "^11.0.5",
|
||||||
"rooks": "^9.3.0"
|
"rooks": "^9.3.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "^2.3.1",
|
"@biomejs/biome": "^2.3.2",
|
||||||
"@formatjs/cli": "^6.7.4",
|
"@formatjs/cli": "^6.7.4",
|
||||||
"@tanstack/react-query-devtools": "^5.90.2",
|
"@tanstack/react-query-devtools": "^5.90.2",
|
||||||
"@testing-library/dom": "^10.4.1",
|
"@testing-library/dom": "^10.4.1",
|
||||||
@@ -52,15 +52,15 @@
|
|||||||
"@types/react-dom": "^19.2.2",
|
"@types/react-dom": "^19.2.2",
|
||||||
"@types/react-table": "^7.7.20",
|
"@types/react-table": "^7.7.20",
|
||||||
"@vitejs/plugin-react": "^5.1.0",
|
"@vitejs/plugin-react": "^5.1.0",
|
||||||
"happy-dom": "^20.0.8",
|
"happy-dom": "^20.0.10",
|
||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.6",
|
||||||
"postcss-simple-vars": "^7.0.1",
|
"postcss-simple-vars": "^7.0.1",
|
||||||
"sass": "^1.93.2",
|
"sass": "^1.93.3",
|
||||||
"tmp": "^0.2.5",
|
"tmp": "^0.2.5",
|
||||||
"typescript": "5.9.3",
|
"typescript": "5.9.3",
|
||||||
"vite": "^7.1.12",
|
"vite": "^7.1.12",
|
||||||
"vite-plugin-checker": "^0.11.0",
|
"vite-plugin-checker": "^0.11.0",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"vitest": "^4.0.3"
|
"vitest": "^4.0.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,15 @@
|
|||||||
import { createIntl, createIntlCache } from "react-intl";
|
import { createIntl, createIntlCache } from "react-intl";
|
||||||
import langEn from "./lang/en.json";
|
import langEn from "./lang/en.json";
|
||||||
import langFa from "./lang/fa.json";
|
|
||||||
import langList from "./lang/lang-list.json";
|
import langList from "./lang/lang-list.json";
|
||||||
|
|
||||||
// first item of each array should be the language code,
|
// first item of each array should be the language code,
|
||||||
// not the country code
|
// not the country code
|
||||||
// Remember when adding to this list, also update check-locales.js script
|
// Remember when adding to this list, also update check-locales.js script
|
||||||
const localeOptions = [
|
const localeOptions = [["en", "en-US"]];
|
||||||
["en", "en-US"],
|
|
||||||
["fa", "fa-IR"],
|
|
||||||
];
|
|
||||||
|
|
||||||
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
|
const loadMessages = (locale?: string): typeof langList & typeof langEn => {
|
||||||
const thisLocale = locale || "en";
|
const thisLocale = locale || "en";
|
||||||
switch (thisLocale.slice(0, 2)) {
|
switch (thisLocale.slice(0, 2)) {
|
||||||
case "fa":
|
|
||||||
return Object.assign({}, langList, langEn, langFa);
|
|
||||||
default:
|
default:
|
||||||
return Object.assign({}, langList, langEn);
|
return Object.assign({}, langList, langEn);
|
||||||
}
|
}
|
||||||
@@ -23,9 +17,6 @@ const loadMessages = (locale?: string): typeof langList & typeof langEn => {
|
|||||||
|
|
||||||
const getFlagCodeForLocale = (locale?: string) => {
|
const getFlagCodeForLocale = (locale?: string) => {
|
||||||
switch (locale) {
|
switch (locale) {
|
||||||
case "fa-IR":
|
|
||||||
case "fa":
|
|
||||||
return "IR";
|
|
||||||
default:
|
default:
|
||||||
return "EN";
|
return "EN";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,214 +0,0 @@
|
|||||||
{
|
|
||||||
"access-list": "لیست دسترسی",
|
|
||||||
"access-list.access-count": "{count} {count, plural, one {Rule} other {Rules}}",
|
|
||||||
"access-list.auth-count": "{count} {count, plural, one {User} other {Users}}",
|
|
||||||
"access-list.help-rules-last": "When at least 1 rule exists, this deny all rule will be added last",
|
|
||||||
"access-list.help.rules-order": "توجه داشته باشید که دستورات allow و deny به ترتیب تعریفشده اعمال خواهند شد.",
|
|
||||||
"access-list.pass-auth": "ارسال احراز هویت به سرور بالادستی",
|
|
||||||
"access-list.public": "قابل دسترسی برای عموم",
|
|
||||||
"access-list.public.subtitle": "نیازی به احراز هویت پایه نیست",
|
|
||||||
"access-list.satisfy-any": "Satisfy Any",
|
|
||||||
"access-list.subtitle": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}",
|
|
||||||
"access-lists": "لیستهای دسترسی",
|
|
||||||
"action.add": "افزودن",
|
|
||||||
"action.add-location": "افزودن مکان",
|
|
||||||
"action.close": "بستن",
|
|
||||||
"action.delete": "حذف",
|
|
||||||
"action.disable": "غیرفعال",
|
|
||||||
"action.download": "دانلود",
|
|
||||||
"action.edit": "ویرایش",
|
|
||||||
"action.enable": "فعالسازی",
|
|
||||||
"action.permissions": "مجوزها",
|
|
||||||
"action.renew": "تجدید",
|
|
||||||
"action.view-details": "مشاهده جزئیات",
|
|
||||||
"auditlogs": "لاگهای بررسی",
|
|
||||||
"cancel": "لغو",
|
|
||||||
"certificate": "گواهینامه",
|
|
||||||
"certificate.custom-certificate": "Certificate",
|
|
||||||
"certificate.custom-certificate-key": "Certificate Key",
|
|
||||||
"certificate.custom-intermediate": "Intermediate Certificate",
|
|
||||||
"certificate.in-use": "In Use",
|
|
||||||
"certificate.none.subtitle": "No certificate assigned",
|
|
||||||
"certificate.none.subtitle.for-http": "This host will not use HTTPS",
|
|
||||||
"certificate.none.title": "None",
|
|
||||||
"certificate.not-in-use": "Not Used",
|
|
||||||
"certificates": "Certificates",
|
|
||||||
"certificates.custom": "Custom Certificate",
|
|
||||||
"certificates.custom.warning": "Key files protected with a passphrase are not supported.",
|
|
||||||
"certificates.dns.credentials": "Credentials File Content",
|
|
||||||
"certificates.dns.credentials-note": "This plugin requires a configuration file containing an API token or other credentials for your provider",
|
|
||||||
"certificates.dns.credentials-warning": "This data will be stored as plaintext in the database and in a file!",
|
|
||||||
"certificates.dns.propagation-seconds": "Propagation Seconds",
|
|
||||||
"certificates.dns.propagation-seconds-note": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation.",
|
|
||||||
"certificates.dns.provider": "DNS Provider",
|
|
||||||
"certificates.dns.warning": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation.",
|
|
||||||
"certificates.http.reachability-404": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running.",
|
|
||||||
"certificates.http.reachability-failed-to-check": "Failed to check the reachability due to a communication error with site24x7.com.",
|
|
||||||
"certificates.http.reachability-not-resolved": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router.",
|
|
||||||
"certificates.http.reachability-ok": "Your server is reachable and creating certificates should be possible.",
|
|
||||||
"certificates.http.reachability-other": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running.",
|
|
||||||
"certificates.http.reachability-wrong-data": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running.",
|
|
||||||
"certificates.http.test-results": "Test Results",
|
|
||||||
"certificates.http.warning": "These domains must be already configured to point to this installation.",
|
|
||||||
"certificates.request.subtitle": "with Let's Encrypt",
|
|
||||||
"certificates.request.title": "Request a new Certificate",
|
|
||||||
"column.access": "Access",
|
|
||||||
"column.authorization": "Authorization",
|
|
||||||
"column.authorizations": "Authorizations",
|
|
||||||
"column.custom-locations": "Custom Locations",
|
|
||||||
"column.destination": "Destination",
|
|
||||||
"column.details": "Details",
|
|
||||||
"column.email": "Email",
|
|
||||||
"column.event": "Event",
|
|
||||||
"column.expires": "Expires",
|
|
||||||
"column.http-code": "Access",
|
|
||||||
"column.incoming-port": "Incoming Port",
|
|
||||||
"column.name": "Name",
|
|
||||||
"column.protocol": "Protocol",
|
|
||||||
"column.provider": "Provider",
|
|
||||||
"column.roles": "Roles",
|
|
||||||
"column.rules": "Rules",
|
|
||||||
"column.satisfy": "Satisfy",
|
|
||||||
"column.satisfy-all": "All",
|
|
||||||
"column.satisfy-any": "Any",
|
|
||||||
"column.scheme": "Scheme",
|
|
||||||
"column.source": "Source",
|
|
||||||
"column.ssl": "SSL",
|
|
||||||
"column.status": "Status",
|
|
||||||
"created-on": "Created: {date}",
|
|
||||||
"dashboard": "خانه",
|
|
||||||
"dead-host": "404 Host",
|
|
||||||
"dead-hosts": "404 Hosts",
|
|
||||||
"dead-hosts.count": "{count} {count, plural, one {404 Host} other {404 Hosts}}",
|
|
||||||
"disabled": "Disabled",
|
|
||||||
"domain-names": "Domain Names",
|
|
||||||
"domain-names.max": "{count} domain names maximum",
|
|
||||||
"domain-names.placeholder": "Start typing to add domain...",
|
|
||||||
"domain-names.wildcards-not-permitted": "Wildcards not permitted for this type",
|
|
||||||
"domain-names.wildcards-not-supported": "Wildcards not supported for this CA",
|
|
||||||
"domains.force-ssl": "Force SSL",
|
|
||||||
"domains.hsts-enabled": "HSTS Enabled",
|
|
||||||
"domains.hsts-subdomains": "HSTS Sub-domains",
|
|
||||||
"domains.http2-support": "HTTP/2 Support",
|
|
||||||
"domains.use-dns": "Use DNS Challenge",
|
|
||||||
"email-address": "نشانی ایمیل",
|
|
||||||
"empty-search": "هیچ نتیجهای یافت نشد",
|
|
||||||
"empty-subtitle": "چرا یکی ایجاد نمیکنید؟",
|
|
||||||
"enabled": "فعال",
|
|
||||||
"error.access.at-least-one": "Either one Authorization or one Access Rule is required",
|
|
||||||
"error.access.duplicate-usernames": "Authorization Usernames must be unique",
|
|
||||||
"error.invalid-auth": "ایمیل یا رمز عبور نامعتبر است",
|
|
||||||
"error.invalid-domain": "Invalid domain: {domain}",
|
|
||||||
"error.invalid-email": "نشانی ایمیل نامعتبر است",
|
|
||||||
"error.max-character-length": "Maximum length is {max} character{max, plural, one {} other {s}}",
|
|
||||||
"error.max-domains": "Too many domains, max is {max}",
|
|
||||||
"error.maximum": "Maximum is {max}",
|
|
||||||
"error.min-character-length": "Minimum length is {min} character{min, plural, one {} other {s}}",
|
|
||||||
"error.minimum": "Minimum is {min}",
|
|
||||||
"error.passwords-must-match": "Passwords must match",
|
|
||||||
"error.required": "This is required",
|
|
||||||
"expires.on": "Expires: {date}",
|
|
||||||
"footer.github-fork": "Fork me on Github",
|
|
||||||
"host.flags.block-exploits": "Block Common Exploits",
|
|
||||||
"host.flags.cache-assets": "Cache Assets",
|
|
||||||
"host.flags.preserve-path": "Preserve Path",
|
|
||||||
"host.flags.protocols": "Protocols",
|
|
||||||
"host.flags.websockets-upgrade": "Websockets Support",
|
|
||||||
"host.forward-port": "Forward Port",
|
|
||||||
"host.forward-scheme": "Scheme",
|
|
||||||
"hosts": "Hosts",
|
|
||||||
"http-only": "HTTP Only",
|
|
||||||
"lets-encrypt": "Let's Encrypt",
|
|
||||||
"lets-encrypt-via-dns": "Let's Encrypt via DNS",
|
|
||||||
"lets-encrypt-via-http": "Let's Encrypt via HTTP",
|
|
||||||
"loading": "Loading…",
|
|
||||||
"login.title": "Login to your account",
|
|
||||||
"nginx-config.label": "Custom Nginx Configuration",
|
|
||||||
"nginx-config.placeholder": "# Enter your custom Nginx configuration here at your own risk!",
|
|
||||||
"no-permission-error": "You do not have access to view this.",
|
|
||||||
"notfound.action": "Take me home",
|
|
||||||
"notfound.content": "We are sorry but the page you are looking for was not found",
|
|
||||||
"notfound.title": "Oops… You just found an error page",
|
|
||||||
"notification.error": "Error",
|
|
||||||
"notification.object-deleted": "{object} has been deleted",
|
|
||||||
"notification.object-disabled": "{object} has been disabled",
|
|
||||||
"notification.object-enabled": "{object} has been enabled",
|
|
||||||
"notification.object-renewed": "{object} has been renewed",
|
|
||||||
"notification.object-saved": "{object} has been saved",
|
|
||||||
"notification.success": "Success",
|
|
||||||
"object.actions-title": "{object} #{id}",
|
|
||||||
"object.add": "{object} افزودن",
|
|
||||||
"object.delete": "Delete {object}",
|
|
||||||
"object.delete.content": "Are you sure you want to delete this {object}?",
|
|
||||||
"object.edit": "Edit {object}",
|
|
||||||
"object.empty": "There are no {objects}",
|
|
||||||
"object.event.created": "Created {object}",
|
|
||||||
"object.event.deleted": "Deleted {object}",
|
|
||||||
"object.event.disabled": "Disabled {object}",
|
|
||||||
"object.event.enabled": "Enabled {object}",
|
|
||||||
"object.event.renewed": "Renewed {object}",
|
|
||||||
"object.event.updated": "Updated {object}",
|
|
||||||
"offline": "Offline",
|
|
||||||
"online": "Online",
|
|
||||||
"options": "Options",
|
|
||||||
"password": "Password",
|
|
||||||
"password.generate": "Generate random password",
|
|
||||||
"password.hide": "Hide Password",
|
|
||||||
"password.show": "Show Password",
|
|
||||||
"permissions.hidden": "Hidden",
|
|
||||||
"permissions.manage": "Manage",
|
|
||||||
"permissions.view": "View Only",
|
|
||||||
"permissions.visibility.all": "All Items",
|
|
||||||
"permissions.visibility.title": "Item Visibility",
|
|
||||||
"permissions.visibility.user": "Created Items Only",
|
|
||||||
"proxy-host": "Proxy Host",
|
|
||||||
"proxy-host.forward-host": "Forward Hostname / IP",
|
|
||||||
"proxy-hosts": "Proxy Hosts",
|
|
||||||
"proxy-hosts.count": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}",
|
|
||||||
"public": "Public",
|
|
||||||
"redirection-host": "Redirection Host",
|
|
||||||
"redirection-host.forward-domain": "Forward Domain",
|
|
||||||
"redirection-hosts": "Redirection Hosts",
|
|
||||||
"redirection-hosts.count": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}",
|
|
||||||
"role.admin": "Administrator",
|
|
||||||
"role.standard-user": "Standard User",
|
|
||||||
"save": "Save",
|
|
||||||
"setting": "Setting",
|
|
||||||
"settings": "Settings",
|
|
||||||
"settings.default-site": "Default Site",
|
|
||||||
"settings.default-site.404": "404 Page",
|
|
||||||
"settings.default-site.444": "No Response (444)",
|
|
||||||
"settings.default-site.congratulations": "Congratulations Page",
|
|
||||||
"settings.default-site.description": "What to show when Nginx is hit with an unknown Host",
|
|
||||||
"settings.default-site.html": "Custom HTML",
|
|
||||||
"settings.default-site.html.placeholder": "<!-- Enter your custom HTML content here -->",
|
|
||||||
"settings.default-site.redirect": "Redirect",
|
|
||||||
"setup.preamble": "Get started by creating your admin account.",
|
|
||||||
"setup.title": "Welcome!",
|
|
||||||
"sign-in": "Sign in",
|
|
||||||
"ssl-certificate": "SSL Certificate",
|
|
||||||
"stream": "Stream",
|
|
||||||
"stream.forward-host": "Forward Host",
|
|
||||||
"stream.incoming-port": "Incoming Port",
|
|
||||||
"streams": "Streams",
|
|
||||||
"streams.count": "{count} {count, plural, one {Stream} other {Streams}}",
|
|
||||||
"streams.tcp": "TCP",
|
|
||||||
"streams.udp": "UDP",
|
|
||||||
"test": "Test",
|
|
||||||
"user": "کاربر",
|
|
||||||
"user.change-password": "Change Password",
|
|
||||||
"user.confirm-password": "Confirm Password",
|
|
||||||
"user.current-password": "رمز عبور فعلی",
|
|
||||||
"user.edit-profile": "ویرایش پروفایل",
|
|
||||||
"user.full-name": "نام کامل",
|
|
||||||
"user.login-as": "Sign in as {name}",
|
|
||||||
"user.logout": "خروج",
|
|
||||||
"user.new-password": "رمز عبور جدید",
|
|
||||||
"user.nickname": "نام مستعار",
|
|
||||||
"user.set-password": "تنظیم رمز عبور",
|
|
||||||
"user.set-permissions": "Set Permissions for {name}",
|
|
||||||
"user.switch-dark": "تغییر به حالت تاریک",
|
|
||||||
"user.switch-light": "تغییر به حالت روشن",
|
|
||||||
"username": "نام کاربری",
|
|
||||||
"users": "کاربران"
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
{
|
{
|
||||||
"locale-en-US": "English",
|
"locale-en-US": "English"
|
||||||
"locale-fa-IR": "فارسی"
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
## What is an Access List?
|
|
||||||
|
|
||||||
Access Lists provide a blacklist or whitelist of specific client IP addresses along with authentication for the Proxy Hosts via Basic HTTP Authentication.
|
|
||||||
|
|
||||||
You can configure multiple client rules, usernames and passwords for a single Access List and then apply that to one or more _Proxy Hosts_.
|
|
||||||
|
|
||||||
This is most useful for forwarded web services that do not have authentication mechanisms built in or when you want to protect from unknown clients.
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
## Certificates Help
|
|
||||||
|
|
||||||
### HTTP Certificate
|
|
||||||
|
|
||||||
A HTTP validated certificate means Let's Encrypt servers will
|
|
||||||
attempt to reach your domains over HTTP (not HTTPS!) and if successful, they
|
|
||||||
will issue your certificate.
|
|
||||||
|
|
||||||
For this method, you will have to have a _Proxy Host_ created for your domains(s) that
|
|
||||||
is accessible with HTTP and pointing to this Nginx installation. After a certificate
|
|
||||||
has been given, you can modify the _Proxy Host_ to also use this certificate for HTTPS
|
|
||||||
connections. However, the _Proxy Host_ will still need to be configured for HTTP access
|
|
||||||
in order for the certificate to renew.
|
|
||||||
|
|
||||||
This process _does not_ support wildcard domains.
|
|
||||||
|
|
||||||
### DNS Certificate
|
|
||||||
|
|
||||||
A DNS validated certificate requires you to use a DNS Provider plugin. This DNS
|
|
||||||
Provider will be used to create temporary records on your domain and then Let's
|
|
||||||
Encrypt will query those records to be sure you're the owner and if successful, they
|
|
||||||
will issue your certificate.
|
|
||||||
|
|
||||||
You do not need a _Proxy Host_ to be created prior to requesting this type of
|
|
||||||
certificate. Nor do you need to have your _Proxy Host_ configured for HTTP access.
|
|
||||||
|
|
||||||
This process _does_ support wildcard domains.
|
|
||||||
|
|
||||||
### Custom Certificate
|
|
||||||
|
|
||||||
Use this option to upload your own SSL Certificate, as provided by your own
|
|
||||||
Certificate Authority.
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
## What is a 404 Host?
|
|
||||||
|
|
||||||
A 404 Host is simply a host setup that shows a 404 page.
|
|
||||||
|
|
||||||
This can be useful when your domain is listed in search engines and you want
|
|
||||||
to provide a nicer error page or specifically to tell the search indexers that
|
|
||||||
the domain pages no longer exist.
|
|
||||||
|
|
||||||
Another benefit of having this host is to track the logs for hits to it and
|
|
||||||
view the referrers.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
## What is a Proxy Host?
|
|
||||||
|
|
||||||
A Proxy Host is the incoming endpoint for a web service that you want to forward.
|
|
||||||
|
|
||||||
It provides optional SSL termination for your service that might not have SSL support built in.
|
|
||||||
|
|
||||||
Proxy Hosts are the most common use for the Nginx Proxy Manager.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
## What is a Redirection Host?
|
|
||||||
|
|
||||||
A Redirection Host will redirect requests from the incoming domain and push the
|
|
||||||
viewer to another domain.
|
|
||||||
|
|
||||||
The most common reason to use this type of host is when your website changes
|
|
||||||
domains but you still have search engine or referrer links pointing to the old domain.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
## What is a Stream?
|
|
||||||
|
|
||||||
A relatively new feature for Nginx, a Stream will serve to forward TCP/UDP
|
|
||||||
traffic directly to another computer on the network.
|
|
||||||
|
|
||||||
If you're running game servers, FTP or SSH servers this can come in handy.
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
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";
|
|
||||||
@@ -1,22 +1,17 @@
|
|||||||
|
// import * as de from "./de/index";
|
||||||
|
// import * as fa from "./fa/index";
|
||||||
import * as en from "./en/index";
|
import * as en from "./en/index";
|
||||||
import * as fa from "./fa/index";
|
|
||||||
|
|
||||||
const items: any = { en, fa };
|
const items: any = { en };
|
||||||
|
|
||||||
const fallbackLang = "en";
|
const fallbackLang = "en";
|
||||||
|
|
||||||
export const getHelpFile = (lang: string, section: string): string => {
|
export const getHelpFile = (lang: string, section: string): string => {
|
||||||
if (
|
if (typeof items[lang] !== "undefined" && typeof items[lang][section] !== "undefined") {
|
||||||
typeof items[lang] !== "undefined" &&
|
|
||||||
typeof items[lang][section] !== "undefined"
|
|
||||||
) {
|
|
||||||
return items[lang][section].default;
|
return items[lang][section].default;
|
||||||
}
|
}
|
||||||
// Fallback to English
|
// Fallback to English
|
||||||
if (
|
if (typeof items[fallbackLang] !== "undefined" && typeof items[fallbackLang][section] !== "undefined") {
|
||||||
typeof items[fallbackLang] !== "undefined" &&
|
|
||||||
typeof items[fallbackLang][section] !== "undefined"
|
|
||||||
) {
|
|
||||||
return items[fallbackLang][section].default;
|
return items[fallbackLang][section].default;
|
||||||
}
|
}
|
||||||
throw new Error(`Cannot load help doc for ${lang}-${section}`);
|
throw new Error(`Cannot load help doc for ${lang}-${section}`);
|
||||||
|
|||||||
@@ -1,638 +0,0 @@
|
|||||||
{
|
|
||||||
"access-list": {
|
|
||||||
"defaultMessage": "لیست دسترسی"
|
|
||||||
},
|
|
||||||
"access-list.access-count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {Rule} other {Rules}}"
|
|
||||||
},
|
|
||||||
"access-list.auth-count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {User} other {Users}}"
|
|
||||||
},
|
|
||||||
"access-list.help-rules-last": {
|
|
||||||
"defaultMessage": "When at least 1 rule exists, this deny all rule will be added last"
|
|
||||||
},
|
|
||||||
"access-list.help.rules-order": {
|
|
||||||
"defaultMessage": "توجه داشته باشید که دستورات allow و deny به ترتیب تعریفشده اعمال خواهند شد."
|
|
||||||
},
|
|
||||||
"access-list.pass-auth": {
|
|
||||||
"defaultMessage": "ارسال احراز هویت به سرور بالادستی"
|
|
||||||
},
|
|
||||||
"access-list.public": {
|
|
||||||
"defaultMessage": "قابل دسترسی برای عموم"
|
|
||||||
},
|
|
||||||
"access-list.public.subtitle": {
|
|
||||||
"defaultMessage": "نیازی به احراز هویت پایه نیست"
|
|
||||||
},
|
|
||||||
"access-list.satisfy-any": {
|
|
||||||
"defaultMessage": "Satisfy Any"
|
|
||||||
},
|
|
||||||
"access-list.subtitle": {
|
|
||||||
"defaultMessage": "{users} {users, plural, one {User} other {Users}}, {rules} {rules, plural, one {Rule} other {Rules}} - Created: {date}"
|
|
||||||
},
|
|
||||||
"access-lists": {
|
|
||||||
"defaultMessage": "لیستهای دسترسی"
|
|
||||||
},
|
|
||||||
"action.add": {
|
|
||||||
"defaultMessage": "افزودن"
|
|
||||||
},
|
|
||||||
"action.add-location": {
|
|
||||||
"defaultMessage": "افزودن مکان"
|
|
||||||
},
|
|
||||||
"action.close": {
|
|
||||||
"defaultMessage": "بستن"
|
|
||||||
},
|
|
||||||
"action.delete": {
|
|
||||||
"defaultMessage": "حذف"
|
|
||||||
},
|
|
||||||
"action.disable": {
|
|
||||||
"defaultMessage": "غیرفعال"
|
|
||||||
},
|
|
||||||
"action.download": {
|
|
||||||
"defaultMessage": "دانلود"
|
|
||||||
},
|
|
||||||
"action.edit": {
|
|
||||||
"defaultMessage": "ویرایش"
|
|
||||||
},
|
|
||||||
"action.enable": {
|
|
||||||
"defaultMessage": "فعالسازی"
|
|
||||||
},
|
|
||||||
"action.permissions": {
|
|
||||||
"defaultMessage": "مجوزها"
|
|
||||||
},
|
|
||||||
"action.renew": {
|
|
||||||
"defaultMessage": "تجدید"
|
|
||||||
},
|
|
||||||
"action.view-details": {
|
|
||||||
"defaultMessage": "مشاهده جزئیات"
|
|
||||||
},
|
|
||||||
"auditlogs": {
|
|
||||||
"defaultMessage": "لاگهای بررسی"
|
|
||||||
},
|
|
||||||
"cancel": {
|
|
||||||
"defaultMessage": "لغو"
|
|
||||||
},
|
|
||||||
"certificate": {
|
|
||||||
"defaultMessage": "گواهینامه"
|
|
||||||
},
|
|
||||||
"certificate.custom-certificate": {
|
|
||||||
"defaultMessage": "Certificate"
|
|
||||||
},
|
|
||||||
"certificate.custom-certificate-key": {
|
|
||||||
"defaultMessage": "Certificate Key"
|
|
||||||
},
|
|
||||||
"certificate.custom-intermediate": {
|
|
||||||
"defaultMessage": "Intermediate Certificate"
|
|
||||||
},
|
|
||||||
"certificate.in-use": {
|
|
||||||
"defaultMessage": "In Use"
|
|
||||||
},
|
|
||||||
"certificate.none.subtitle": {
|
|
||||||
"defaultMessage": "No certificate assigned"
|
|
||||||
},
|
|
||||||
"certificate.none.subtitle.for-http": {
|
|
||||||
"defaultMessage": "This host will not use HTTPS"
|
|
||||||
},
|
|
||||||
"certificate.none.title": {
|
|
||||||
"defaultMessage": "None"
|
|
||||||
},
|
|
||||||
"certificate.not-in-use": {
|
|
||||||
"defaultMessage": "Not Used"
|
|
||||||
},
|
|
||||||
"certificates": {
|
|
||||||
"defaultMessage": "Certificates"
|
|
||||||
},
|
|
||||||
"certificates.custom": {
|
|
||||||
"defaultMessage": "Custom Certificate"
|
|
||||||
},
|
|
||||||
"certificates.custom.warning": {
|
|
||||||
"defaultMessage": "Key files protected with a passphrase are not supported."
|
|
||||||
},
|
|
||||||
"certificates.dns.credentials": {
|
|
||||||
"defaultMessage": "Credentials File Content"
|
|
||||||
},
|
|
||||||
"certificates.dns.credentials-note": {
|
|
||||||
"defaultMessage": "This plugin requires a configuration file containing an API token or other credentials for your provider"
|
|
||||||
},
|
|
||||||
"certificates.dns.credentials-warning": {
|
|
||||||
"defaultMessage": "This data will be stored as plaintext in the database and in a file!"
|
|
||||||
},
|
|
||||||
"certificates.dns.propagation-seconds": {
|
|
||||||
"defaultMessage": "Propagation Seconds"
|
|
||||||
},
|
|
||||||
"certificates.dns.propagation-seconds-note": {
|
|
||||||
"defaultMessage": "Leave empty to use the plugins default value. Number of seconds to wait for DNS propagation."
|
|
||||||
},
|
|
||||||
"certificates.dns.provider": {
|
|
||||||
"defaultMessage": "DNS Provider"
|
|
||||||
},
|
|
||||||
"certificates.dns.warning": {
|
|
||||||
"defaultMessage": "This section requires some knowledge about Certbot and its DNS plugins. Please consult the respective plugins documentation."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-404": {
|
|
||||||
"defaultMessage": "There is a server found at this domain but it does not seem to be Nginx Proxy Manager. Please make sure your domain points to the IP where your NPM instance is running."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-failed-to-check": {
|
|
||||||
"defaultMessage": "Failed to check the reachability due to a communication error with site24x7.com."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-not-resolved": {
|
|
||||||
"defaultMessage": "There is no server available at this domain. Please make sure your domain exists and points to the IP where your NPM instance is running and if necessary port 80 is forwarded in your router."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-ok": {
|
|
||||||
"defaultMessage": "Your server is reachable and creating certificates should be possible."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-other": {
|
|
||||||
"defaultMessage": "There is a server found at this domain but it returned an unexpected status code {code}. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
|
|
||||||
},
|
|
||||||
"certificates.http.reachability-wrong-data": {
|
|
||||||
"defaultMessage": "There is a server found at this domain but it returned an unexpected data. Is it the NPM server? Please make sure your domain points to the IP where your NPM instance is running."
|
|
||||||
},
|
|
||||||
"certificates.http.test-results": {
|
|
||||||
"defaultMessage": "Test Results"
|
|
||||||
},
|
|
||||||
"certificates.http.warning": {
|
|
||||||
"defaultMessage": "These domains must be already configured to point to this installation."
|
|
||||||
},
|
|
||||||
"certificates.request.subtitle": {
|
|
||||||
"defaultMessage": "with Let's Encrypt"
|
|
||||||
},
|
|
||||||
"certificates.request.title": {
|
|
||||||
"defaultMessage": "Request a new Certificate"
|
|
||||||
},
|
|
||||||
"column.access": {
|
|
||||||
"defaultMessage": "Access"
|
|
||||||
},
|
|
||||||
"column.authorization": {
|
|
||||||
"defaultMessage": "Authorization"
|
|
||||||
},
|
|
||||||
"column.authorizations": {
|
|
||||||
"defaultMessage": "Authorizations"
|
|
||||||
},
|
|
||||||
"column.custom-locations": {
|
|
||||||
"defaultMessage": "Custom Locations"
|
|
||||||
},
|
|
||||||
"column.destination": {
|
|
||||||
"defaultMessage": "Destination"
|
|
||||||
},
|
|
||||||
"column.details": {
|
|
||||||
"defaultMessage": "Details"
|
|
||||||
},
|
|
||||||
"column.email": {
|
|
||||||
"defaultMessage": "Email"
|
|
||||||
},
|
|
||||||
"column.event": {
|
|
||||||
"defaultMessage": "Event"
|
|
||||||
},
|
|
||||||
"column.expires": {
|
|
||||||
"defaultMessage": "Expires"
|
|
||||||
},
|
|
||||||
"column.http-code": {
|
|
||||||
"defaultMessage": "Access"
|
|
||||||
},
|
|
||||||
"column.incoming-port": {
|
|
||||||
"defaultMessage": "Incoming Port"
|
|
||||||
},
|
|
||||||
"column.name": {
|
|
||||||
"defaultMessage": "Name"
|
|
||||||
},
|
|
||||||
"column.protocol": {
|
|
||||||
"defaultMessage": "Protocol"
|
|
||||||
},
|
|
||||||
"column.provider": {
|
|
||||||
"defaultMessage": "Provider"
|
|
||||||
},
|
|
||||||
"column.roles": {
|
|
||||||
"defaultMessage": "Roles"
|
|
||||||
},
|
|
||||||
"column.rules": {
|
|
||||||
"defaultMessage": "Rules"
|
|
||||||
},
|
|
||||||
"column.satisfy": {
|
|
||||||
"defaultMessage": "Satisfy"
|
|
||||||
},
|
|
||||||
"column.satisfy-all": {
|
|
||||||
"defaultMessage": "All"
|
|
||||||
},
|
|
||||||
"column.satisfy-any": {
|
|
||||||
"defaultMessage": "Any"
|
|
||||||
},
|
|
||||||
"column.scheme": {
|
|
||||||
"defaultMessage": "Scheme"
|
|
||||||
},
|
|
||||||
"column.source": {
|
|
||||||
"defaultMessage": "Source"
|
|
||||||
},
|
|
||||||
"column.ssl": {
|
|
||||||
"defaultMessage": "SSL"
|
|
||||||
},
|
|
||||||
"column.status": {
|
|
||||||
"defaultMessage": "Status"
|
|
||||||
},
|
|
||||||
"created-on": {
|
|
||||||
"defaultMessage": "Created: {date}"
|
|
||||||
},
|
|
||||||
"dashboard": {
|
|
||||||
"defaultMessage": "خانه"
|
|
||||||
},
|
|
||||||
"dead-host": {
|
|
||||||
"defaultMessage": "404 Host"
|
|
||||||
},
|
|
||||||
"dead-hosts": {
|
|
||||||
"defaultMessage": "404 Hosts"
|
|
||||||
},
|
|
||||||
"dead-hosts.count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}"
|
|
||||||
},
|
|
||||||
"disabled": {
|
|
||||||
"defaultMessage": "Disabled"
|
|
||||||
},
|
|
||||||
"domain-names": {
|
|
||||||
"defaultMessage": "Domain Names"
|
|
||||||
},
|
|
||||||
"domain-names.max": {
|
|
||||||
"defaultMessage": "{count} domain names maximum"
|
|
||||||
},
|
|
||||||
"domain-names.placeholder": {
|
|
||||||
"defaultMessage": "Start typing to add domain..."
|
|
||||||
},
|
|
||||||
"domain-names.wildcards-not-permitted": {
|
|
||||||
"defaultMessage": "Wildcards not permitted for this type"
|
|
||||||
},
|
|
||||||
"domain-names.wildcards-not-supported": {
|
|
||||||
"defaultMessage": "Wildcards not supported for this CA"
|
|
||||||
},
|
|
||||||
"domains.force-ssl": {
|
|
||||||
"defaultMessage": "Force SSL"
|
|
||||||
},
|
|
||||||
"domains.hsts-enabled": {
|
|
||||||
"defaultMessage": "HSTS Enabled"
|
|
||||||
},
|
|
||||||
"domains.hsts-subdomains": {
|
|
||||||
"defaultMessage": "HSTS Sub-domains"
|
|
||||||
},
|
|
||||||
"domains.http2-support": {
|
|
||||||
"defaultMessage": "HTTP/2 Support"
|
|
||||||
},
|
|
||||||
"domains.use-dns": {
|
|
||||||
"defaultMessage": "Use DNS Challenge"
|
|
||||||
},
|
|
||||||
"email-address": {
|
|
||||||
"defaultMessage": "نشانی ایمیل"
|
|
||||||
},
|
|
||||||
"empty-search": {
|
|
||||||
"defaultMessage": "هیچ نتیجهای یافت نشد"
|
|
||||||
},
|
|
||||||
"empty-subtitle": {
|
|
||||||
"defaultMessage": "چرا یکی ایجاد نمیکنید؟"
|
|
||||||
},
|
|
||||||
"enabled": {
|
|
||||||
"defaultMessage": "فعال"
|
|
||||||
},
|
|
||||||
"error.access.at-least-one": {
|
|
||||||
"defaultMessage": "Either one Authorization or one Access Rule is required"
|
|
||||||
},
|
|
||||||
"error.access.duplicate-usernames": {
|
|
||||||
"defaultMessage": "Authorization Usernames must be unique"
|
|
||||||
},
|
|
||||||
"error.invalid-auth": {
|
|
||||||
"defaultMessage": "ایمیل یا رمز عبور نامعتبر است"
|
|
||||||
},
|
|
||||||
"error.invalid-domain": {
|
|
||||||
"defaultMessage": "Invalid domain: {domain}"
|
|
||||||
},
|
|
||||||
"error.invalid-email": {
|
|
||||||
"defaultMessage": "نشانی ایمیل نامعتبر است"
|
|
||||||
},
|
|
||||||
"error.max-character-length": {
|
|
||||||
"defaultMessage": "Maximum length is {max} character{max, plural, one {} other {s}}"
|
|
||||||
},
|
|
||||||
"error.max-domains": {
|
|
||||||
"defaultMessage": "Too many domains, max is {max}"
|
|
||||||
},
|
|
||||||
"error.maximum": {
|
|
||||||
"defaultMessage": "Maximum is {max}"
|
|
||||||
},
|
|
||||||
"error.min-character-length": {
|
|
||||||
"defaultMessage": "Minimum length is {min} character{min, plural, one {} other {s}}"
|
|
||||||
},
|
|
||||||
"error.minimum": {
|
|
||||||
"defaultMessage": "Minimum is {min}"
|
|
||||||
},
|
|
||||||
"error.passwords-must-match": {
|
|
||||||
"defaultMessage": "Passwords must match"
|
|
||||||
},
|
|
||||||
"error.required": {
|
|
||||||
"defaultMessage": "This is required"
|
|
||||||
},
|
|
||||||
"expires.on": {
|
|
||||||
"defaultMessage": "Expires: {date}"
|
|
||||||
},
|
|
||||||
"footer.github-fork": {
|
|
||||||
"defaultMessage": "Fork me on Github"
|
|
||||||
},
|
|
||||||
"host.flags.block-exploits": {
|
|
||||||
"defaultMessage": "Block Common Exploits"
|
|
||||||
},
|
|
||||||
"host.flags.cache-assets": {
|
|
||||||
"defaultMessage": "Cache Assets"
|
|
||||||
},
|
|
||||||
"host.flags.preserve-path": {
|
|
||||||
"defaultMessage": "Preserve Path"
|
|
||||||
},
|
|
||||||
"host.flags.protocols": {
|
|
||||||
"defaultMessage": "Protocols"
|
|
||||||
},
|
|
||||||
"host.flags.websockets-upgrade": {
|
|
||||||
"defaultMessage": "Websockets Support"
|
|
||||||
},
|
|
||||||
"host.forward-port": {
|
|
||||||
"defaultMessage": "Forward Port"
|
|
||||||
},
|
|
||||||
"host.forward-scheme": {
|
|
||||||
"defaultMessage": "Scheme"
|
|
||||||
},
|
|
||||||
"hosts": {
|
|
||||||
"defaultMessage": "Hosts"
|
|
||||||
},
|
|
||||||
"http-only": {
|
|
||||||
"defaultMessage": "HTTP Only"
|
|
||||||
},
|
|
||||||
"lets-encrypt": {
|
|
||||||
"defaultMessage": "Let's Encrypt"
|
|
||||||
},
|
|
||||||
"lets-encrypt-via-dns": {
|
|
||||||
"defaultMessage": "Let's Encrypt via DNS"
|
|
||||||
},
|
|
||||||
"lets-encrypt-via-http": {
|
|
||||||
"defaultMessage": "Let's Encrypt via HTTP"
|
|
||||||
},
|
|
||||||
"loading": {
|
|
||||||
"defaultMessage": "Loading…"
|
|
||||||
},
|
|
||||||
"login.title": {
|
|
||||||
"defaultMessage": "Login to your account"
|
|
||||||
},
|
|
||||||
"nginx-config.label": {
|
|
||||||
"defaultMessage": "Custom Nginx Configuration"
|
|
||||||
},
|
|
||||||
"nginx-config.placeholder": {
|
|
||||||
"defaultMessage": "# Enter your custom Nginx configuration here at your own risk!"
|
|
||||||
},
|
|
||||||
"no-permission-error": {
|
|
||||||
"defaultMessage": "You do not have access to view this."
|
|
||||||
},
|
|
||||||
"notfound.action": {
|
|
||||||
"defaultMessage": "Take me home"
|
|
||||||
},
|
|
||||||
"notfound.content": {
|
|
||||||
"defaultMessage": "We are sorry but the page you are looking for was not found"
|
|
||||||
},
|
|
||||||
"notfound.title": {
|
|
||||||
"defaultMessage": "Oops… You just found an error page"
|
|
||||||
},
|
|
||||||
"notification.error": {
|
|
||||||
"defaultMessage": "Error"
|
|
||||||
},
|
|
||||||
"notification.object-deleted": {
|
|
||||||
"defaultMessage": "{object} has been deleted"
|
|
||||||
},
|
|
||||||
"notification.object-disabled": {
|
|
||||||
"defaultMessage": "{object} has been disabled"
|
|
||||||
},
|
|
||||||
"notification.object-enabled": {
|
|
||||||
"defaultMessage": "{object} has been enabled"
|
|
||||||
},
|
|
||||||
"notification.object-renewed": {
|
|
||||||
"defaultMessage": "{object} has been renewed"
|
|
||||||
},
|
|
||||||
"notification.object-saved": {
|
|
||||||
"defaultMessage": "{object} has been saved"
|
|
||||||
},
|
|
||||||
"notification.success": {
|
|
||||||
"defaultMessage": "Success"
|
|
||||||
},
|
|
||||||
"object.actions-title": {
|
|
||||||
"defaultMessage": "{object} #{id}"
|
|
||||||
},
|
|
||||||
"object.add": {
|
|
||||||
"defaultMessage": "{object} افزودن"
|
|
||||||
},
|
|
||||||
"object.delete": {
|
|
||||||
"defaultMessage": "Delete {object}"
|
|
||||||
},
|
|
||||||
"object.delete.content": {
|
|
||||||
"defaultMessage": "Are you sure you want to delete this {object}?"
|
|
||||||
},
|
|
||||||
"object.edit": {
|
|
||||||
"defaultMessage": "Edit {object}"
|
|
||||||
},
|
|
||||||
"object.empty": {
|
|
||||||
"defaultMessage": "There are no {objects}"
|
|
||||||
},
|
|
||||||
"object.event.created": {
|
|
||||||
"defaultMessage": "Created {object}"
|
|
||||||
},
|
|
||||||
"object.event.deleted": {
|
|
||||||
"defaultMessage": "Deleted {object}"
|
|
||||||
},
|
|
||||||
"object.event.disabled": {
|
|
||||||
"defaultMessage": "Disabled {object}"
|
|
||||||
},
|
|
||||||
"object.event.enabled": {
|
|
||||||
"defaultMessage": "Enabled {object}"
|
|
||||||
},
|
|
||||||
"object.event.renewed": {
|
|
||||||
"defaultMessage": "Renewed {object}"
|
|
||||||
},
|
|
||||||
"object.event.updated": {
|
|
||||||
"defaultMessage": "Updated {object}"
|
|
||||||
},
|
|
||||||
"offline": {
|
|
||||||
"defaultMessage": "Offline"
|
|
||||||
},
|
|
||||||
"online": {
|
|
||||||
"defaultMessage": "Online"
|
|
||||||
},
|
|
||||||
"options": {
|
|
||||||
"defaultMessage": "Options"
|
|
||||||
},
|
|
||||||
"password": {
|
|
||||||
"defaultMessage": "Password"
|
|
||||||
},
|
|
||||||
"password.generate": {
|
|
||||||
"defaultMessage": "Generate random password"
|
|
||||||
},
|
|
||||||
"password.hide": {
|
|
||||||
"defaultMessage": "Hide Password"
|
|
||||||
},
|
|
||||||
"password.show": {
|
|
||||||
"defaultMessage": "Show Password"
|
|
||||||
},
|
|
||||||
"permissions.hidden": {
|
|
||||||
"defaultMessage": "Hidden"
|
|
||||||
},
|
|
||||||
"permissions.manage": {
|
|
||||||
"defaultMessage": "Manage"
|
|
||||||
},
|
|
||||||
"permissions.view": {
|
|
||||||
"defaultMessage": "View Only"
|
|
||||||
},
|
|
||||||
"permissions.visibility.all": {
|
|
||||||
"defaultMessage": "All Items"
|
|
||||||
},
|
|
||||||
"permissions.visibility.title": {
|
|
||||||
"defaultMessage": "Item Visibility"
|
|
||||||
},
|
|
||||||
"permissions.visibility.user": {
|
|
||||||
"defaultMessage": "Created Items Only"
|
|
||||||
},
|
|
||||||
"proxy-host": {
|
|
||||||
"defaultMessage": "Proxy Host"
|
|
||||||
},
|
|
||||||
"proxy-host.forward-host": {
|
|
||||||
"defaultMessage": "Forward Hostname / IP"
|
|
||||||
},
|
|
||||||
"proxy-hosts": {
|
|
||||||
"defaultMessage": "Proxy Hosts"
|
|
||||||
},
|
|
||||||
"proxy-hosts.count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}"
|
|
||||||
},
|
|
||||||
"public": {
|
|
||||||
"defaultMessage": "Public"
|
|
||||||
},
|
|
||||||
"redirection-host": {
|
|
||||||
"defaultMessage": "Redirection Host"
|
|
||||||
},
|
|
||||||
"redirection-host.forward-domain": {
|
|
||||||
"defaultMessage": "Forward Domain"
|
|
||||||
},
|
|
||||||
"redirection-hosts": {
|
|
||||||
"defaultMessage": "Redirection Hosts"
|
|
||||||
},
|
|
||||||
"redirection-hosts.count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}"
|
|
||||||
},
|
|
||||||
"role.admin": {
|
|
||||||
"defaultMessage": "Administrator"
|
|
||||||
},
|
|
||||||
"role.standard-user": {
|
|
||||||
"defaultMessage": "Standard User"
|
|
||||||
},
|
|
||||||
"save": {
|
|
||||||
"defaultMessage": "Save"
|
|
||||||
},
|
|
||||||
"setting": {
|
|
||||||
"defaultMessage": "Setting"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"defaultMessage": "Settings"
|
|
||||||
},
|
|
||||||
"settings.default-site": {
|
|
||||||
"defaultMessage": "Default Site"
|
|
||||||
},
|
|
||||||
"settings.default-site.404": {
|
|
||||||
"defaultMessage": "404 Page"
|
|
||||||
},
|
|
||||||
"settings.default-site.444": {
|
|
||||||
"defaultMessage": "No Response (444)"
|
|
||||||
},
|
|
||||||
"settings.default-site.congratulations": {
|
|
||||||
"defaultMessage": "Congratulations Page"
|
|
||||||
},
|
|
||||||
"settings.default-site.description": {
|
|
||||||
"defaultMessage": "What to show when Nginx is hit with an unknown Host"
|
|
||||||
},
|
|
||||||
"settings.default-site.html": {
|
|
||||||
"defaultMessage": "Custom HTML"
|
|
||||||
},
|
|
||||||
"settings.default-site.html.placeholder": {
|
|
||||||
"defaultMessage": "<!-- Enter your custom HTML content here -->"
|
|
||||||
},
|
|
||||||
"settings.default-site.redirect": {
|
|
||||||
"defaultMessage": "Redirect"
|
|
||||||
},
|
|
||||||
"setup.preamble": {
|
|
||||||
"defaultMessage": "Get started by creating your admin account."
|
|
||||||
},
|
|
||||||
"setup.title": {
|
|
||||||
"defaultMessage": "Welcome!"
|
|
||||||
},
|
|
||||||
"sign-in": {
|
|
||||||
"defaultMessage": "Sign in"
|
|
||||||
},
|
|
||||||
"ssl-certificate": {
|
|
||||||
"defaultMessage": "SSL Certificate"
|
|
||||||
},
|
|
||||||
"stream": {
|
|
||||||
"defaultMessage": "Stream"
|
|
||||||
},
|
|
||||||
"stream.forward-host": {
|
|
||||||
"defaultMessage": "Forward Host"
|
|
||||||
},
|
|
||||||
"stream.incoming-port": {
|
|
||||||
"defaultMessage": "Incoming Port"
|
|
||||||
},
|
|
||||||
"streams": {
|
|
||||||
"defaultMessage": "Streams"
|
|
||||||
},
|
|
||||||
"streams.count": {
|
|
||||||
"defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
|
|
||||||
},
|
|
||||||
"streams.tcp": {
|
|
||||||
"defaultMessage": "TCP"
|
|
||||||
},
|
|
||||||
"streams.udp": {
|
|
||||||
"defaultMessage": "UDP"
|
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"defaultMessage": "Test"
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"defaultMessage": "کاربر"
|
|
||||||
},
|
|
||||||
"user.change-password": {
|
|
||||||
"defaultMessage": "Change Password"
|
|
||||||
},
|
|
||||||
"user.confirm-password": {
|
|
||||||
"defaultMessage": "Confirm Password"
|
|
||||||
},
|
|
||||||
"user.current-password": {
|
|
||||||
"defaultMessage": "رمز عبور فعلی"
|
|
||||||
},
|
|
||||||
"user.edit-profile": {
|
|
||||||
"defaultMessage": "ویرایش پروفایل"
|
|
||||||
},
|
|
||||||
"user.full-name": {
|
|
||||||
"defaultMessage": "نام کامل"
|
|
||||||
},
|
|
||||||
"user.login-as": {
|
|
||||||
"defaultMessage": "Sign in as {name}"
|
|
||||||
},
|
|
||||||
"user.logout": {
|
|
||||||
"defaultMessage": "خروج"
|
|
||||||
},
|
|
||||||
"user.new-password": {
|
|
||||||
"defaultMessage": "رمز عبور جدید"
|
|
||||||
},
|
|
||||||
"user.nickname": {
|
|
||||||
"defaultMessage": "نام مستعار"
|
|
||||||
},
|
|
||||||
"user.set-password": {
|
|
||||||
"defaultMessage": "تنظیم رمز عبور"
|
|
||||||
},
|
|
||||||
"user.set-permissions": {
|
|
||||||
"defaultMessage": "Set Permissions for {name}"
|
|
||||||
},
|
|
||||||
"user.switch-dark": {
|
|
||||||
"defaultMessage": "تغییر به حالت تاریک"
|
|
||||||
},
|
|
||||||
"user.switch-light": {
|
|
||||||
"defaultMessage": "تغییر به حالت روشن"
|
|
||||||
},
|
|
||||||
"username": {
|
|
||||||
"defaultMessage": "نام کاربری"
|
|
||||||
},
|
|
||||||
"users": {
|
|
||||||
"defaultMessage": "کاربران"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,5 @@
|
|||||||
{
|
{
|
||||||
"locale-en-US": {
|
"locale-en-US": {
|
||||||
"defaultMessage": "English"
|
"defaultMessage": "English"
|
||||||
},
|
|
||||||
"locale-fa-IR": {
|
|
||||||
"defaultMessage": "فارسی"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -203,59 +203,59 @@
|
|||||||
"@babel/helper-string-parser" "^7.27.1"
|
"@babel/helper-string-parser" "^7.27.1"
|
||||||
"@babel/helper-validator-identifier" "^7.27.1"
|
"@babel/helper-validator-identifier" "^7.27.1"
|
||||||
|
|
||||||
"@biomejs/biome@^2.3.1":
|
"@biomejs/biome@^2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.1.tgz#d1a9284f52986324f288cdaf450331a0f3fb1da7"
|
resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.3.2.tgz#aeeb5f12c39571a18f36a919be63ba7dbc7b290a"
|
||||||
integrity sha512-A29evf1R72V5bo4o2EPxYMm5mtyGvzp2g+biZvRFx29nWebGyyeOSsDWGx3tuNNMFRepGwxmA9ZQ15mzfabK2w==
|
integrity sha512-8e9tzamuDycx7fdrcJ/F/GDZ8SYukc5ud6tDicjjFqURKYFSWMl0H0iXNXZEGmcmNUmABgGuHThPykcM41INgg==
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
"@biomejs/cli-darwin-arm64" "2.3.1"
|
"@biomejs/cli-darwin-arm64" "2.3.2"
|
||||||
"@biomejs/cli-darwin-x64" "2.3.1"
|
"@biomejs/cli-darwin-x64" "2.3.2"
|
||||||
"@biomejs/cli-linux-arm64" "2.3.1"
|
"@biomejs/cli-linux-arm64" "2.3.2"
|
||||||
"@biomejs/cli-linux-arm64-musl" "2.3.1"
|
"@biomejs/cli-linux-arm64-musl" "2.3.2"
|
||||||
"@biomejs/cli-linux-x64" "2.3.1"
|
"@biomejs/cli-linux-x64" "2.3.2"
|
||||||
"@biomejs/cli-linux-x64-musl" "2.3.1"
|
"@biomejs/cli-linux-x64-musl" "2.3.2"
|
||||||
"@biomejs/cli-win32-arm64" "2.3.1"
|
"@biomejs/cli-win32-arm64" "2.3.2"
|
||||||
"@biomejs/cli-win32-x64" "2.3.1"
|
"@biomejs/cli-win32-x64" "2.3.2"
|
||||||
|
|
||||||
"@biomejs/cli-darwin-arm64@2.3.1":
|
"@biomejs/cli-darwin-arm64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.1.tgz#607835f8ef043e1a80f9ad2a232c9e860941ab60"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.3.2.tgz#93f866161abe32e702987ccbddf492c1aabe016f"
|
||||||
integrity sha512-ombSf3MnTUueiYGN1SeI9tBCsDUhpWzOwS63Dove42osNh0PfE1cUtHFx6eZ1+MYCCLwXzlFlYFdrJ+U7h6LcA==
|
integrity sha512-4LECm4kc3If0JISai4c3KWQzukoUdpxy4fRzlrPcrdMSRFksR9ZoXK7JBcPuLBmd2SoT4/d7CQS33VnZpgBjew==
|
||||||
|
|
||||||
"@biomejs/cli-darwin-x64@2.3.1":
|
"@biomejs/cli-darwin-x64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.1.tgz#654fe4aaa8ea5d5bde5457db4961ad5d214713ac"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.3.2.tgz#9c3dffdac12e4f4d8db7680ca20f58ace1f38c23"
|
||||||
integrity sha512-pcOfwyoQkrkbGvXxRvZNe5qgD797IowpJPovPX5biPk2FwMEV+INZqfCaz4G5bVq9hYnjwhRMamg11U4QsRXrQ==
|
integrity sha512-jNMnfwHT4N3wi+ypRfMTjLGnDmKYGzxVr1EYAPBcauRcDnICFXN81wD6wxJcSUrLynoyyYCdfW6vJHS/IAoTDA==
|
||||||
|
|
||||||
"@biomejs/cli-linux-arm64-musl@2.3.1":
|
"@biomejs/cli-linux-arm64-musl@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.1.tgz#5fe502082a575c31ef808cf080cbcd4485964167"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.3.2.tgz#a0424d2fe355cc43c375b3fbf3e42d39b7221d0e"
|
||||||
integrity sha512-+DZYv8l7FlUtTrWs1Tdt1KcNCAmRO87PyOnxKGunbWm5HKg1oZBSbIIPkjrCtDZaeqSG1DiGx7qF+CPsquQRcg==
|
integrity sha512-2Zz4usDG1GTTPQnliIeNx6eVGGP2ry5vE/v39nT73a3cKN6t5H5XxjcEoZZh62uVZvED7hXXikclvI64vZkYqw==
|
||||||
|
|
||||||
"@biomejs/cli-linux-arm64@2.3.1":
|
"@biomejs/cli-linux-arm64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.1.tgz#81c02547905d379dbb312e6ff24b04908c2e320f"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.3.2.tgz#f85717c04d420ede20523d173a1fc10df60d4d37"
|
||||||
integrity sha512-td5O8pFIgLs8H1sAZsD6v+5quODihyEw4nv2R8z7swUfIK1FKk+15e4eiYVLcAE4jUqngvh4j3JCNgg0Y4o4IQ==
|
integrity sha512-amnqvk+gWybbQleRRq8TMe0rIv7GHss8mFJEaGuEZYWg1Tw14YKOkeo8h6pf1c+d3qR+JU4iT9KXnBKGON4klw==
|
||||||
|
|
||||||
"@biomejs/cli-linux-x64-musl@2.3.1":
|
"@biomejs/cli-linux-x64-musl@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.1.tgz#c7c00beb5eda1ad25185544897e66eeec6be3b0b"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.3.2.tgz#d3e114c744c32d2c50a77c13476bd941819c92d8"
|
||||||
integrity sha512-Y3Ob4nqgv38Mh+6EGHltuN+Cq8aj/gyMTJYzkFZV2AEj+9XzoXB9VNljz9pjfFNHUxvLEV4b55VWyxozQTBaUQ==
|
integrity sha512-gzB19MpRdTuOuLtPpFBGrV3Lq424gHyq2lFj8wfX9tvLMLdmA/R9C7k/mqBp/spcbWuHeIEKgEs3RviOPcWGBA==
|
||||||
|
|
||||||
"@biomejs/cli-linux-x64@2.3.1":
|
"@biomejs/cli-linux-x64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.1.tgz#7481d2e7be98d4de574df233766a5bdda037c897"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.3.2.tgz#f66ce85d2d757d45e6edecce04753a805bd816f0"
|
||||||
integrity sha512-PYWgEO7up7XYwSAArOpzsVCiqxBCXy53gsReAb1kKYIyXaoAlhBaBMvxR/k2Rm9aTuZ662locXUmPk/Aj+Xu+Q==
|
integrity sha512-8BG/vRAhFz1pmuyd24FQPhNeueLqPtwvZk6yblABY2gzL2H8fLQAF/Z2OPIc+BPIVPld+8cSiKY/KFh6k81xfA==
|
||||||
|
|
||||||
"@biomejs/cli-win32-arm64@2.3.1":
|
"@biomejs/cli-win32-arm64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.1.tgz#dac8c7c7223e97f86cd0eed7aa95584984761481"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.3.2.tgz#b46f8b47a3d97e766cc5ad5eb67d90eeb230b2cb"
|
||||||
integrity sha512-RHIG/zgo+69idUqVvV3n8+j58dKYABRpMyDmfWu2TITC+jwGPiEaT0Q3RKD+kQHiS80mpBrST0iUGeEXT0bU9A==
|
integrity sha512-lCruqQlfWjhMlOdyf5pDHOxoNm4WoyY2vZ4YN33/nuZBRstVDuqPPjS0yBkbUlLEte11FbpW+wWSlfnZfSIZvg==
|
||||||
|
|
||||||
"@biomejs/cli-win32-x64@2.3.1":
|
"@biomejs/cli-win32-x64@2.3.2":
|
||||||
version "2.3.1"
|
version "2.3.2"
|
||||||
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.1.tgz#f8818ab2c1e3a6e2ed8a656935173e5ce4c720be"
|
resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.3.2.tgz#a14f5e220dd496705278315ee3e5e028dd657344"
|
||||||
integrity sha512-izl30JJ5Dp10mi90Eko47zhxE6pYyWPcnX1NQxKpL/yMhXxf95oLTzfpu4q+MDBh/gemNqyJEwjBpe0MT5iWPA==
|
integrity sha512-6Ee9P26DTb4D8sN9nXxgbi9Dw5vSOfH98M7UlmkjKB2vtUbrRqCbZiNfryGiwnPIpd6YUoTl7rLVD2/x1CyEHQ==
|
||||||
|
|
||||||
"@emotion/babel-plugin@^11.13.5":
|
"@emotion/babel-plugin@^11.13.5":
|
||||||
version "11.13.5"
|
version "11.13.5"
|
||||||
@@ -858,10 +858,10 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.35.0.tgz#6f35247e41baba2a1b0f4dff048bb1335d6c1075"
|
resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.35.0.tgz#6f35247e41baba2a1b0f4dff048bb1335d6c1075"
|
||||||
integrity sha512-yYXe+gJ56xlZFiXwV9zVoe3FWCGuZ/D7/G4ZIlDtGxSx5CGQK110wrnT29gUj52kEZoxqF7oURTk97GQxELOFQ==
|
integrity sha512-yYXe+gJ56xlZFiXwV9zVoe3FWCGuZ/D7/G4ZIlDtGxSx5CGQK110wrnT29gUj52kEZoxqF7oURTk97GQxELOFQ==
|
||||||
|
|
||||||
"@tanstack/query-core@5.90.5":
|
"@tanstack/query-core@5.90.6":
|
||||||
version "5.90.5"
|
version "5.90.6"
|
||||||
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.5.tgz#0175f9f517514906db8ab379589ed3f96694ecc4"
|
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.6.tgz#e4627c442a4701adb350270dae5f6b72b2498eae"
|
||||||
integrity sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==
|
integrity sha512-AnZSLF26R8uX+tqb/ivdrwbVdGemdEDm1Q19qM6pry6eOZ6bEYiY7mWhzXT1YDIPTNEVcZ5kYP9nWjoxDLiIVw==
|
||||||
|
|
||||||
"@tanstack/query-devtools@5.90.1":
|
"@tanstack/query-devtools@5.90.1":
|
||||||
version "5.90.1"
|
version "5.90.1"
|
||||||
@@ -875,12 +875,12 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@tanstack/query-devtools" "5.90.1"
|
"@tanstack/query-devtools" "5.90.1"
|
||||||
|
|
||||||
"@tanstack/react-query@^5.90.5":
|
"@tanstack/react-query@^5.90.6":
|
||||||
version "5.90.5"
|
version "5.90.6"
|
||||||
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.5.tgz#545e61282c787bd87ac5785da9a4943462f78ef6"
|
resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.6.tgz#50f46ca81679c3fda185ea7d2c7787af78ed0364"
|
||||||
integrity sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==
|
integrity sha512-gB1sljYjcobZKxjPbKSa31FUTyr+ROaBdoH+wSSs9Dk+yDCmMs+TkTV3PybRRVLC7ax7q0erJ9LvRWnMktnRAw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tanstack/query-core" "5.90.5"
|
"@tanstack/query-core" "5.90.6"
|
||||||
|
|
||||||
"@tanstack/react-table@^8.21.3":
|
"@tanstack/react-table@^8.21.3":
|
||||||
version "8.21.3"
|
version "8.21.3"
|
||||||
@@ -1138,62 +1138,62 @@
|
|||||||
"@types/babel__core" "^7.20.5"
|
"@types/babel__core" "^7.20.5"
|
||||||
react-refresh "^0.18.0"
|
react-refresh "^0.18.0"
|
||||||
|
|
||||||
"@vitest/expect@4.0.3":
|
"@vitest/expect@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.0.3.tgz#04a3c7f8220fb7022dbca368697f16fe008f816b"
|
resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.0.6.tgz#33df10e2f9728b7338c2a2331c75814d1f840ab7"
|
||||||
integrity sha512-v3eSDx/bF25pzar6aEJrrdTXJduEBU3uSGXHslIdGIpJVP8tQQHV6x1ZfzbFQ/bLIomLSbR/2ZCfnaEGkWkiVQ==
|
integrity sha512-5j8UUlBVhOjhj4lR2Nt9sEV8b4WtbcYh8vnfhTNA2Kn5+smtevzjNq+xlBuVhnFGXiyPPNzGrOVvmyHWkS5QGg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@standard-schema/spec" "^1.0.0"
|
"@standard-schema/spec" "^1.0.0"
|
||||||
"@types/chai" "^5.2.2"
|
"@types/chai" "^5.2.2"
|
||||||
"@vitest/spy" "4.0.3"
|
"@vitest/spy" "4.0.6"
|
||||||
"@vitest/utils" "4.0.3"
|
"@vitest/utils" "4.0.6"
|
||||||
chai "^6.0.1"
|
chai "^6.0.1"
|
||||||
tinyrainbow "^3.0.3"
|
tinyrainbow "^3.0.3"
|
||||||
|
|
||||||
"@vitest/mocker@4.0.3":
|
"@vitest/mocker@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.0.3.tgz#2a9665dc0966584dbdda5329fc7ed815ae6d6eef"
|
resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.0.6.tgz#3e27579d4444ca113685fc040961ce4b415ba5d2"
|
||||||
integrity sha512-evZcRspIPbbiJEe748zI2BRu94ThCBE+RkjCpVF8yoVYuTV7hMe+4wLF/7K86r8GwJHSmAPnPbZhpXWWrg1qbA==
|
integrity sha512-3COEIew5HqdzBFEYN9+u0dT3i/NCwppLnO1HkjGfAP1Vs3vti1Hxm/MvcbC4DAn3Szo1M7M3otiAaT83jvqIjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vitest/spy" "4.0.3"
|
"@vitest/spy" "4.0.6"
|
||||||
estree-walker "^3.0.3"
|
estree-walker "^3.0.3"
|
||||||
magic-string "^0.30.19"
|
magic-string "^0.30.19"
|
||||||
|
|
||||||
"@vitest/pretty-format@4.0.3":
|
"@vitest/pretty-format@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.0.3.tgz#0f7632c5100793eb1848efa1d826709639caf485"
|
resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.0.6.tgz#af838540d3cd6b29c5d434fbdd36eb2543b040a3"
|
||||||
integrity sha512-N7gly/DRXzxa9w9sbDXwD9QNFYP2hw90LLLGDobPNwiWgyW95GMxsCt29/COIKKh3P7XJICR38PSDePenMBtsw==
|
integrity sha512-4vptgNkLIA1W1Nn5X4x8rLJBzPiJwnPc+awKtfBE5hNMVsoAl/JCCPPzNrbf+L4NKgklsis5Yp2gYa+XAS442g==
|
||||||
dependencies:
|
dependencies:
|
||||||
tinyrainbow "^3.0.3"
|
tinyrainbow "^3.0.3"
|
||||||
|
|
||||||
"@vitest/runner@4.0.3":
|
"@vitest/runner@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.0.3.tgz#77003feebb25c014c3c74748ca3647b3b90ef648"
|
resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.0.6.tgz#5a938015cfb202b96cbff4688400f1cd4899b40a"
|
||||||
integrity sha512-1/aK6fPM0lYXWyGKwop2Gbvz1plyTps/HDbIIJXYtJtspHjpXIeB3If07eWpVH4HW7Rmd3Rl+IS/+zEAXrRtXA==
|
integrity sha512-trPk5qpd7Jj+AiLZbV/e+KiiaGXZ8ECsRxtnPnCrJr9OW2mLB72Cb824IXgxVz/mVU3Aj4VebY+tDTPn++j1Og==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vitest/utils" "4.0.3"
|
"@vitest/utils" "4.0.6"
|
||||||
pathe "^2.0.3"
|
pathe "^2.0.3"
|
||||||
|
|
||||||
"@vitest/snapshot@4.0.3":
|
"@vitest/snapshot@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.0.3.tgz#242d300dabd20de95a7e137906fe15a62301786d"
|
resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.0.6.tgz#5cf47e396123cc379944632e908e74fb78d58f13"
|
||||||
integrity sha512-amnYmvZ5MTjNCP1HZmdeczAPLRD6iOm9+2nMRUGxbe/6sQ0Ymur0NnR9LIrWS8JA3wKE71X25D6ya/3LN9YytA==
|
integrity sha512-PaYLt7n2YzuvxhulDDu6c9EosiRuIE+FI2ECKs6yvHyhoga+2TBWI8dwBjs+IeuQaMtZTfioa9tj3uZb7nev1g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vitest/pretty-format" "4.0.3"
|
"@vitest/pretty-format" "4.0.6"
|
||||||
magic-string "^0.30.19"
|
magic-string "^0.30.19"
|
||||||
pathe "^2.0.3"
|
pathe "^2.0.3"
|
||||||
|
|
||||||
"@vitest/spy@4.0.3":
|
"@vitest/spy@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.3.tgz#b29246bf8e685dafc96cb99ca389fed7a48463ec"
|
resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.6.tgz#3860eb53cfe333c5eefe8b510eb7d71da7f4bd70"
|
||||||
integrity sha512-82vVL8Cqz7rbXaNUl35V2G7xeNMAjBdNOVaHbrzznT9BmiCiPOzhf0FhU3eP41nP1bLDm/5wWKZqkG4nyU95DQ==
|
integrity sha512-g9jTUYPV1LtRPRCQfhbMintW7BTQz1n6WXYQYRQ25qkyffA4bjVXjkROokZnv7t07OqfaFKw1lPzqKGk1hmNuQ==
|
||||||
|
|
||||||
"@vitest/utils@4.0.3":
|
"@vitest/utils@4.0.6":
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.0.3.tgz#068fa94ac39fd596102f480b50be1103a7b9ca4f"
|
resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.0.6.tgz#e8ce743a4a5adcd7228823249b643bc894c0955d"
|
||||||
integrity sha512-qV6KJkq8W3piW6MDIbGOmn1xhvcW4DuA07alqaQ+vdx7YA49J85pnwnxigZVQFQw3tWnQNRKWwhz5wbP6iv/GQ==
|
integrity sha512-bG43VS3iYKrMIZXBo+y8Pti0O7uNju3KvNn6DrQWhQQKcLavMB+0NZfO1/QBAEbq0MaQ3QjNsnnXlGQvsh0Z6A==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vitest/pretty-format" "4.0.3"
|
"@vitest/pretty-format" "4.0.6"
|
||||||
tinyrainbow "^3.0.3"
|
tinyrainbow "^3.0.3"
|
||||||
|
|
||||||
ansi-regex@^5.0.1:
|
ansi-regex@^5.0.1:
|
||||||
@@ -1606,10 +1606,10 @@ globrex@^0.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
|
resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
|
||||||
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
|
integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
|
||||||
|
|
||||||
happy-dom@^20.0.8:
|
happy-dom@^20.0.10:
|
||||||
version "20.0.8"
|
version "20.0.10"
|
||||||
resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.0.8.tgz#9bece083d2675ae45c2fc23871a9a02bb162a366"
|
resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.0.10.tgz#01fb5f09426420994e47e966598e272102678dd2"
|
||||||
integrity sha512-TlYaNQNtzsZ97rNMBAm8U+e2cUQXNithgfCizkDgc11lgmN4j9CKMhO3FPGKWQYPwwkFcPpoXYF/CqEPLgzfOg==
|
integrity sha512-6umCCHcjQrhP5oXhrHQQvLB0bwb1UzHAHdsXy+FjtKoYjUhmNZsQL8NivwM1vDvNEChJabVrUYxUnp/ZdYmy2g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "^20.0.0"
|
"@types/node" "^20.0.0"
|
||||||
"@types/whatwg-mimetype" "^3.0.2"
|
"@types/whatwg-mimetype" "^3.0.2"
|
||||||
@@ -2518,17 +2518,17 @@ react-refresh@^0.18.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.18.0.tgz#2dce97f4fe932a4d8142fa1630e475c1729c8062"
|
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.18.0.tgz#2dce97f4fe932a4d8142fa1630e475c1729c8062"
|
||||||
integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==
|
integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==
|
||||||
|
|
||||||
react-router-dom@^7.9.4:
|
react-router-dom@^7.9.5:
|
||||||
version "7.9.4"
|
version "7.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.9.4.tgz#37d35b4b7f730b37434f2b7e95121ef557a6b538"
|
resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.9.5.tgz#99a88cde83919bdfc84fbb3d6bf7c6fc18ca0758"
|
||||||
integrity sha512-f30P6bIkmYvnHHa5Gcu65deIXoA2+r3Eb6PJIAddvsT9aGlchMatJ51GgpU470aSqRRbFX22T70yQNUGuW3DfA==
|
integrity sha512-mkEmq/K8tKN63Ae2M7Xgz3c9l9YNbY+NHH6NNeUmLA3kDkhKXRsNb/ZpxaEunvGo2/3YXdk5EJU3Hxp3ocaBPw==
|
||||||
dependencies:
|
dependencies:
|
||||||
react-router "7.9.4"
|
react-router "7.9.5"
|
||||||
|
|
||||||
react-router@7.9.4:
|
react-router@7.9.5:
|
||||||
version "7.9.4"
|
version "7.9.5"
|
||||||
resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.9.4.tgz#2c4249e5d0a6bb8b8f6bf0ede8f5077e4ff8024f"
|
resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.9.5.tgz#68722186b4c9f42be36e658d9fe5d62ac1e0808b"
|
||||||
integrity sha512-SD3G8HKviFHg9xj7dNODUKDFgpG4xqD5nhyd0mYoB5iISepuZAvzSr8ywxgxKJ52yRzf/HWtVHc9AWwoTbljvA==
|
integrity sha512-JmxqrnBZ6E9hWmf02jzNn9Jm3UqyeimyiwzD69NjxGySG6lIz/1LVPsoTCwN7NBX2XjCEa1LIX5EMz1j2b6u6A==
|
||||||
dependencies:
|
dependencies:
|
||||||
cookie "^1.0.1"
|
cookie "^1.0.1"
|
||||||
set-cookie-parser "^2.6.0"
|
set-cookie-parser "^2.6.0"
|
||||||
@@ -2713,10 +2713,10 @@ safe-buffer@^5.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
|
|
||||||
sass@^1.93.2:
|
sass@^1.93.3:
|
||||||
version "1.93.2"
|
version "1.93.3"
|
||||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.2.tgz#e97d225d60f59a3b3dbb6d2ae3c1b955fd1f2cd1"
|
resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.3.tgz#3ff0aa5879dc910d32eae10c282a2847bd63e758"
|
||||||
integrity sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==
|
integrity sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar "^4.0.0"
|
chokidar "^4.0.0"
|
||||||
immutable "^5.0.2"
|
immutable "^5.0.2"
|
||||||
@@ -3055,18 +3055,18 @@ vite-tsconfig-paths@^5.1.4:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.3"
|
fsevents "~2.3.3"
|
||||||
|
|
||||||
vitest@^4.0.3:
|
vitest@^4.0.6:
|
||||||
version "4.0.3"
|
version "4.0.6"
|
||||||
resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.0.3.tgz#6dcd04df504bb2260e755402768857d556d42d4b"
|
resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.0.6.tgz#a0cbc78192cce8726d06c471b8e5b5b9cc6beea5"
|
||||||
integrity sha512-IUSop8jgaT7w0g1yOM/35qVtKjr/8Va4PrjzH1OUb0YH4c3OXB2lCZDkMAB6glA8T5w8S164oJGsbcmAecr4sA==
|
integrity sha512-gR7INfiVRwnEOkCk47faros/9McCZMp5LM+OMNWGLaDBSvJxIzwjgNFufkuePBNaesGRnLmNfW+ddbUJRZn0nQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@vitest/expect" "4.0.3"
|
"@vitest/expect" "4.0.6"
|
||||||
"@vitest/mocker" "4.0.3"
|
"@vitest/mocker" "4.0.6"
|
||||||
"@vitest/pretty-format" "4.0.3"
|
"@vitest/pretty-format" "4.0.6"
|
||||||
"@vitest/runner" "4.0.3"
|
"@vitest/runner" "4.0.6"
|
||||||
"@vitest/snapshot" "4.0.3"
|
"@vitest/snapshot" "4.0.6"
|
||||||
"@vitest/spy" "4.0.3"
|
"@vitest/spy" "4.0.6"
|
||||||
"@vitest/utils" "4.0.3"
|
"@vitest/utils" "4.0.6"
|
||||||
debug "^4.4.3"
|
debug "^4.4.3"
|
||||||
es-module-lexer "^1.7.0"
|
es-module-lexer "^1.7.0"
|
||||||
expect-type "^1.2.2"
|
expect-type "^1.2.2"
|
||||||
|
|||||||
22
test/cypress/config/dev.js
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
const { defineConfig } = require('cypress');
|
||||||
|
|
||||||
|
module.exports = defineConfig({
|
||||||
|
requestTimeout: 30000,
|
||||||
|
defaultCommandTimeout: 20000,
|
||||||
|
reporter: 'cypress-multi-reporters',
|
||||||
|
reporterOptions: {
|
||||||
|
configFile: 'multi-reporter.json'
|
||||||
|
},
|
||||||
|
video: true,
|
||||||
|
videosFolder: 'results/videos',
|
||||||
|
screenshotsFolder: 'results/screenshots',
|
||||||
|
e2e: {
|
||||||
|
setupNodeEvents(on, config) {
|
||||||
|
return require("../plugins/index.js")(on, config);
|
||||||
|
},
|
||||||
|
env: {
|
||||||
|
swaggerBase: '{{baseUrl}}/api/schema?ts=' + Date.now(),
|
||||||
|
},
|
||||||
|
baseUrl: 'http://127.0.0.1:3081',
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -22,8 +22,7 @@ describe('Proxy Hosts endpoints', () => {
|
|||||||
access_list_id: '0',
|
access_list_id: '0',
|
||||||
certificate_id: 0,
|
certificate_id: 0,
|
||||||
meta: {
|
meta: {
|
||||||
letsencrypt_agree: false,
|
dns_challenge: false
|
||||||
dns_challenge: false
|
|
||||||
},
|
},
|
||||||
advanced_config: '',
|
advanced_config: '',
|
||||||
locations: [],
|
locations: [],
|
||||||
|
|||||||
@@ -43,11 +43,7 @@ describe('Streams', () => {
|
|||||||
forwarding_host: '127.0.0.1',
|
forwarding_host: '127.0.0.1',
|
||||||
forwarding_port: 80,
|
forwarding_port: 80,
|
||||||
certificate_id: 0,
|
certificate_id: 0,
|
||||||
meta: {
|
meta: {},
|
||||||
dns_provider_credentials: "",
|
|
||||||
letsencrypt_agree: false,
|
|
||||||
dns_challenge: true
|
|
||||||
},
|
|
||||||
tcp_forwarding: true,
|
tcp_forwarding: true,
|
||||||
udp_forwarding: false
|
udp_forwarding: false
|
||||||
}
|
}
|
||||||
@@ -75,11 +71,7 @@ describe('Streams', () => {
|
|||||||
forwarding_host: '127.0.0.1',
|
forwarding_host: '127.0.0.1',
|
||||||
forwarding_port: 80,
|
forwarding_port: 80,
|
||||||
certificate_id: 0,
|
certificate_id: 0,
|
||||||
meta: {
|
meta: {},
|
||||||
dns_provider_credentials: "",
|
|
||||||
letsencrypt_agree: false,
|
|
||||||
dns_challenge: true
|
|
||||||
},
|
|
||||||
tcp_forwarding: false,
|
tcp_forwarding: false,
|
||||||
udp_forwarding: true
|
udp_forwarding: true
|
||||||
}
|
}
|
||||||
@@ -102,11 +94,7 @@ describe('Streams', () => {
|
|||||||
forwarding_host: '127.0.0.1',
|
forwarding_host: '127.0.0.1',
|
||||||
forwarding_port: 80,
|
forwarding_port: 80,
|
||||||
certificate_id: 0,
|
certificate_id: 0,
|
||||||
meta: {
|
meta: {},
|
||||||
dns_provider_credentials: "",
|
|
||||||
letsencrypt_agree: false,
|
|
||||||
dns_challenge: true
|
|
||||||
},
|
|
||||||
tcp_forwarding: true,
|
tcp_forwarding: true,
|
||||||
udp_forwarding: true
|
udp_forwarding: true
|
||||||
}
|
}
|
||||||
@@ -163,11 +151,7 @@ describe('Streams', () => {
|
|||||||
forwarding_host: '127.0.0.1',
|
forwarding_host: '127.0.0.1',
|
||||||
forwarding_port: 80,
|
forwarding_port: 80,
|
||||||
certificate_id: certID,
|
certificate_id: certID,
|
||||||
meta: {
|
meta: {},
|
||||||
dns_provider_credentials: "",
|
|
||||||
letsencrypt_agree: false,
|
|
||||||
dns_challenge: true
|
|
||||||
},
|
|
||||||
tcp_forwarding: true,
|
tcp_forwarding: true,
|
||||||
udp_forwarding: false
|
udp_forwarding: false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,22 +6,23 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jc21/cypress-swagger-validation": "^0.3.2",
|
"@jc21/cypress-swagger-validation": "^0.3.2",
|
||||||
"@quobix/vacuum": "^0.19.4",
|
"@quobix/vacuum": "^0.19.4",
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.13.1",
|
||||||
"cypress": "^14.0.1",
|
"cypress": "^14.0.1",
|
||||||
"cypress-multi-reporters": "^2.0.5",
|
"cypress-multi-reporters": "^2.0.5",
|
||||||
"cypress-wait-until": "^3.0.2",
|
"cypress-wait-until": "^3.0.2",
|
||||||
"eslint": "^9.19.0",
|
"eslint": "^9.39.0",
|
||||||
"eslint-plugin-align-assignments": "^1.1.2",
|
"eslint-plugin-align-assignments": "^1.1.2",
|
||||||
"eslint-plugin-chai-friendly": "^1.0.1",
|
"eslint-plugin-chai-friendly": "^1.1.0",
|
||||||
"eslint-plugin-cypress": "^4.1.0",
|
"eslint-plugin-cypress": "^5.2.0",
|
||||||
"form-data": "^4.0.1",
|
"form-data": "^4.0.4",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"mocha": "^11.1.0",
|
"mocha": "^11.7.4",
|
||||||
"mocha-junit-reporter": "^2.2.1"
|
"mocha-junit-reporter": "^2.2.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"cypress": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress open --config-file=cypress/config/ci.js",
|
"cypress": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress open --config-file=cypress/config/ci.js",
|
||||||
"cypress:headless": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress run --config-file=cypress/config/ci.js",
|
"cypress:headless": "HTTP_PROXY=127.0.0.1:8128 HTTPS_PROXY=127.0.0.1:8128 cypress run --config-file=cypress/config/ci.js",
|
||||||
|
"cypress:dev": "cypress run --config-file=cypress/config/dev.js",
|
||||||
"swagger-lint": "vacuum lint -b -q -d -a -n=warn"
|
"swagger-lint": "vacuum lint -b -q -d -a -n=warn"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
|
|||||||
281
test/yarn.lock
@@ -43,10 +43,10 @@
|
|||||||
ajv-draft-04 "^1.0.0"
|
ajv-draft-04 "^1.0.0"
|
||||||
call-me-maybe "^1.0.1"
|
call-me-maybe "^1.0.1"
|
||||||
|
|
||||||
"@cypress/request@^3.0.8":
|
"@cypress/request@^3.0.9":
|
||||||
version "3.0.8"
|
version "3.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.8.tgz#992f1f42ba03ebb14fa5d97290abe9d015ed0815"
|
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.9.tgz#8ed6e08fea0c62998b5552301023af7268f11625"
|
||||||
integrity sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==
|
integrity sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==
|
||||||
dependencies:
|
dependencies:
|
||||||
aws-sign2 "~0.7.0"
|
aws-sign2 "~0.7.0"
|
||||||
aws4 "^1.8.0"
|
aws4 "^1.8.0"
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
combined-stream "~1.0.6"
|
combined-stream "~1.0.6"
|
||||||
extend "~3.0.2"
|
extend "~3.0.2"
|
||||||
forever-agent "~0.6.1"
|
forever-agent "~0.6.1"
|
||||||
form-data "~4.0.0"
|
form-data "~4.0.4"
|
||||||
http-signature "~1.4.0"
|
http-signature "~1.4.0"
|
||||||
is-typedarray "~1.0.0"
|
is-typedarray "~1.0.0"
|
||||||
isstream "~0.1.2"
|
isstream "~0.1.2"
|
||||||
@@ -75,43 +75,38 @@
|
|||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
lodash.once "^4.1.1"
|
lodash.once "^4.1.1"
|
||||||
|
|
||||||
"@eslint-community/eslint-utils@^4.2.0":
|
"@eslint-community/eslint-utils@^4.8.0":
|
||||||
version "4.4.0"
|
version "4.9.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
|
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3"
|
||||||
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
|
integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==
|
||||||
dependencies:
|
dependencies:
|
||||||
eslint-visitor-keys "^3.3.0"
|
eslint-visitor-keys "^3.4.3"
|
||||||
|
|
||||||
"@eslint-community/regexpp@^4.12.1":
|
"@eslint-community/regexpp@^4.12.1":
|
||||||
version "4.12.1"
|
version "4.12.1"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
|
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0"
|
||||||
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
|
integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==
|
||||||
|
|
||||||
"@eslint/config-array@^0.20.0":
|
"@eslint/config-array@^0.21.1":
|
||||||
version "0.20.1"
|
version "0.21.1"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.1.tgz#454f89be82b0e5b1ae872c154c7e2f3dd42c3979"
|
resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713"
|
||||||
integrity sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==
|
integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint/object-schema" "^2.1.6"
|
"@eslint/object-schema" "^2.1.7"
|
||||||
debug "^4.3.1"
|
debug "^4.3.1"
|
||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
|
|
||||||
"@eslint/config-helpers@^0.2.1":
|
"@eslint/config-helpers@^0.4.2":
|
||||||
version "0.2.3"
|
version "0.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.3.tgz#39d6da64ed05d7662659aa7035b54cd55a9f3672"
|
resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda"
|
||||||
integrity sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==
|
integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==
|
||||||
|
|
||||||
"@eslint/core@^0.14.0":
|
|
||||||
version "0.14.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.14.0.tgz#326289380968eaf7e96f364e1e4cf8f3adf2d003"
|
|
||||||
integrity sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.15"
|
"@eslint/core" "^0.17.0"
|
||||||
|
|
||||||
"@eslint/core@^0.15.0":
|
"@eslint/core@^0.17.0":
|
||||||
version "0.15.0"
|
version "0.17.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.0.tgz#8fc04709a7b9a179d9f7d93068fc000cb8c5603d"
|
resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c"
|
||||||
integrity sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw==
|
integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/json-schema" "^7.0.15"
|
"@types/json-schema" "^7.0.15"
|
||||||
|
|
||||||
@@ -130,22 +125,22 @@
|
|||||||
minimatch "^3.1.2"
|
minimatch "^3.1.2"
|
||||||
strip-json-comments "^3.1.1"
|
strip-json-comments "^3.1.1"
|
||||||
|
|
||||||
"@eslint/js@9.28.0":
|
"@eslint/js@9.39.0":
|
||||||
version "9.28.0"
|
version "9.39.0"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.28.0.tgz#7822ccc2f8cae7c3cd4f902377d520e9ae03f844"
|
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.0.tgz#e1955cefd1d79e80a9557274e9aa9bd3f641be01"
|
||||||
integrity sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==
|
integrity sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==
|
||||||
|
|
||||||
"@eslint/object-schema@^2.1.6":
|
"@eslint/object-schema@^2.1.7":
|
||||||
version "2.1.6"
|
version "2.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f"
|
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad"
|
||||||
integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==
|
integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==
|
||||||
|
|
||||||
"@eslint/plugin-kit@^0.3.1":
|
"@eslint/plugin-kit@^0.4.1":
|
||||||
version "0.3.2"
|
version "0.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz#0cad96b134d23a653348e3342f485636b5ef4732"
|
resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2"
|
||||||
integrity sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==
|
integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint/core" "^0.15.0"
|
"@eslint/core" "^0.17.0"
|
||||||
levn "^0.4.1"
|
levn "^0.4.1"
|
||||||
|
|
||||||
"@humanfs/core@^0.19.1":
|
"@humanfs/core@^0.19.1":
|
||||||
@@ -252,6 +247,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47"
|
resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47"
|
||||||
integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==
|
integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==
|
||||||
|
|
||||||
|
"@types/tmp@^0.2.3":
|
||||||
|
version "0.2.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217"
|
||||||
|
integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==
|
||||||
|
|
||||||
"@types/yauzl@^2.9.1":
|
"@types/yauzl@^2.9.1":
|
||||||
version "2.10.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"
|
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"
|
||||||
@@ -405,11 +405,6 @@ astral-regex@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
|
||||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||||
|
|
||||||
async@^3.2.0:
|
|
||||||
version "3.2.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c"
|
|
||||||
integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==
|
|
||||||
|
|
||||||
asynckit@^0.4.0:
|
asynckit@^0.4.0:
|
||||||
version "0.4.0"
|
version "0.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
|
||||||
@@ -430,13 +425,22 @@ aws4@^1.8.0:
|
|||||||
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c"
|
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c"
|
||||||
integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
|
integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==
|
||||||
|
|
||||||
axios@^1.7.7, axios@^1.7.9:
|
axios@^1.13.1:
|
||||||
version "1.10.0"
|
version "1.13.1"
|
||||||
resolved "https://registry.yarnpkg.com/axios/-/axios-1.10.0.tgz#af320aee8632eaf2a400b6a1979fa75856f38d54"
|
resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.1.tgz#45b62dc8fe04e0e92274e08b98e910ba3d7963a7"
|
||||||
integrity sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==
|
integrity sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==
|
||||||
dependencies:
|
dependencies:
|
||||||
follow-redirects "^1.15.6"
|
follow-redirects "^1.15.6"
|
||||||
form-data "^4.0.0"
|
form-data "^4.0.4"
|
||||||
|
proxy-from-env "^1.1.0"
|
||||||
|
|
||||||
|
axios@^1.7.7:
|
||||||
|
version "1.12.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.0.tgz#11248459be05a5ee493485628fa0e4323d0abfc3"
|
||||||
|
integrity sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==
|
||||||
|
dependencies:
|
||||||
|
follow-redirects "^1.15.6"
|
||||||
|
form-data "^4.0.4"
|
||||||
proxy-from-env "^1.1.0"
|
proxy-from-env "^1.1.0"
|
||||||
|
|
||||||
balanced-match@^1.0.0:
|
balanced-match@^1.0.0:
|
||||||
@@ -553,11 +557,6 @@ charenc@0.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
|
||||||
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
|
integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
|
||||||
|
|
||||||
check-more-types@^2.24.0:
|
|
||||||
version "2.24.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
|
|
||||||
integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=
|
|
||||||
|
|
||||||
chokidar@^4.0.1:
|
chokidar@^4.0.1:
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
|
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
|
||||||
@@ -690,22 +689,22 @@ cypress-wait-until@^3.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.2.tgz#c90dddfa4c46a2c422f5b91d486531c560bae46e"
|
resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.2.tgz#c90dddfa4c46a2c422f5b91d486531c560bae46e"
|
||||||
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
|
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
|
||||||
|
|
||||||
cypress@^14.0.1:
|
cypress@^15.5.0:
|
||||||
version "14.4.1"
|
version "15.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.4.1.tgz#6e586ba098503b594561d5f8f746a9db6556ed2a"
|
resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.5.0.tgz#039c8549f623957a14e57adee46dbfabaabac741"
|
||||||
integrity sha512-YSGvVXtTqSGRTyHbaxHI5dHU/9xc5ymaTIM4BU85GKhj980y6XgA3fShSpj5DatS8knXMsAvYItQxVQFHGpUtw==
|
integrity sha512-7jXBsh5hTfjxr9QQONC2IbdTj0nxSyU8x4eiarMZBzXzCj3pedKviUx8JnLcE4vL8e0TsOzp70WSLRORjEssRA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cypress/request" "^3.0.8"
|
"@cypress/request" "^3.0.9"
|
||||||
"@cypress/xvfb" "^1.2.4"
|
"@cypress/xvfb" "^1.2.4"
|
||||||
"@types/sinonjs__fake-timers" "8.1.1"
|
"@types/sinonjs__fake-timers" "8.1.1"
|
||||||
"@types/sizzle" "^2.3.2"
|
"@types/sizzle" "^2.3.2"
|
||||||
|
"@types/tmp" "^0.2.3"
|
||||||
arch "^2.2.0"
|
arch "^2.2.0"
|
||||||
blob-util "^2.0.2"
|
blob-util "^2.0.2"
|
||||||
bluebird "^3.7.2"
|
bluebird "^3.7.2"
|
||||||
buffer "^5.7.1"
|
buffer "^5.7.1"
|
||||||
cachedir "^2.3.0"
|
cachedir "^2.3.0"
|
||||||
chalk "^4.1.0"
|
chalk "^4.1.0"
|
||||||
check-more-types "^2.24.0"
|
|
||||||
ci-info "^4.1.0"
|
ci-info "^4.1.0"
|
||||||
cli-cursor "^3.1.0"
|
cli-cursor "^3.1.0"
|
||||||
cli-table3 "0.6.1"
|
cli-table3 "0.6.1"
|
||||||
@@ -720,9 +719,8 @@ cypress@^14.0.1:
|
|||||||
extract-zip "2.0.1"
|
extract-zip "2.0.1"
|
||||||
figures "^3.2.0"
|
figures "^3.2.0"
|
||||||
fs-extra "^9.1.0"
|
fs-extra "^9.1.0"
|
||||||
getos "^3.2.1"
|
hasha "5.2.2"
|
||||||
is-installed-globally "~0.4.0"
|
is-installed-globally "~0.4.0"
|
||||||
lazy-ass "^1.6.0"
|
|
||||||
listr2 "^3.8.3"
|
listr2 "^3.8.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
log-symbols "^4.0.0"
|
log-symbols "^4.0.0"
|
||||||
@@ -734,7 +732,8 @@ cypress@^14.0.1:
|
|||||||
request-progress "^3.0.0"
|
request-progress "^3.0.0"
|
||||||
semver "^7.7.1"
|
semver "^7.7.1"
|
||||||
supports-color "^8.1.1"
|
supports-color "^8.1.1"
|
||||||
tmp "~0.2.3"
|
systeminformation "5.27.7"
|
||||||
|
tmp "~0.2.4"
|
||||||
tree-kill "1.2.2"
|
tree-kill "1.2.2"
|
||||||
untildify "^4.0.0"
|
untildify "^4.0.0"
|
||||||
yauzl "^2.10.0"
|
yauzl "^2.10.0"
|
||||||
@@ -874,6 +873,16 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
es-errors "^1.3.0"
|
es-errors "^1.3.0"
|
||||||
|
|
||||||
|
es-set-tostringtag@^2.1.0:
|
||||||
|
version "2.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
|
||||||
|
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
|
||||||
|
dependencies:
|
||||||
|
es-errors "^1.3.0"
|
||||||
|
get-intrinsic "^1.2.6"
|
||||||
|
has-tostringtag "^1.0.2"
|
||||||
|
hasown "^2.0.2"
|
||||||
|
|
||||||
escalade@^3.1.1:
|
escalade@^3.1.1:
|
||||||
version "3.1.2"
|
version "3.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
|
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
|
||||||
@@ -906,19 +915,19 @@ eslint-plugin-align-assignments@^1.1.2:
|
|||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-align-assignments/-/eslint-plugin-align-assignments-1.1.2.tgz#83e1a8a826d4adf29e82b52d0bb39c88b301b576"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-align-assignments/-/eslint-plugin-align-assignments-1.1.2.tgz#83e1a8a826d4adf29e82b52d0bb39c88b301b576"
|
||||||
integrity sha512-I1ZJgk9EjHfGVU9M2Ex8UkVkkjLL5Y9BS6VNnQHq79eHj2H4/Cgxf36lQSUTLgm2ntB03A2NtF+zg9fyi5vChg==
|
integrity sha512-I1ZJgk9EjHfGVU9M2Ex8UkVkkjLL5Y9BS6VNnQHq79eHj2H4/Cgxf36lQSUTLgm2ntB03A2NtF+zg9fyi5vChg==
|
||||||
|
|
||||||
eslint-plugin-chai-friendly@^1.0.1:
|
eslint-plugin-chai-friendly@^1.1.0:
|
||||||
version "1.0.1"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-1.0.1.tgz#c3290b5294c1145934cf9c07eaa4cec87921d18c"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-1.1.0.tgz#e21cbd301ff0d4c1c563d3bbc865e9ac0296fb7c"
|
||||||
integrity sha512-dxD/uz1YKJ8U4yah1i+V/p/u+kHRy3YxTPe2nJGqb5lCR+ucan/KIexfZ5+q4X+tkllyMe86EBbAkdlwxNy3oQ==
|
integrity sha512-+T1rClpDdXkgBAhC16vRQMI5umiWojVqkj9oUTdpma50+uByCZM/oBfxitZiOkjMRlm725mwFfz/RVgyDRvCKA==
|
||||||
|
|
||||||
eslint-plugin-cypress@^4.1.0:
|
eslint-plugin-cypress@^5.2.0:
|
||||||
version "4.3.0"
|
version "5.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-4.3.0.tgz#fce3c67c836541cb652c653f5e33088c8926a988"
|
resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-5.2.0.tgz#c01cc5511542b5eaa38d31bcdfe888336bf70611"
|
||||||
integrity sha512-CgS/S940MJlT8jtnWGKI0LvZQBGb/BB0QCpgBOxFMM/Z6znD+PZUwBhCTwHKN2GEr5AOny3xB92an0QfzBGooQ==
|
integrity sha512-vuCUBQloUSILxtJrUWV39vNIQPlbg0L7cTunEAzvaUzv9LFZZym+KFLH18n9j2cZuFPdlxOqTubCvg5se0DyGw==
|
||||||
dependencies:
|
dependencies:
|
||||||
globals "^15.15.0"
|
globals "^16.2.0"
|
||||||
|
|
||||||
eslint-scope@^8.3.0:
|
eslint-scope@^8.4.0:
|
||||||
version "8.4.0"
|
version "8.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
|
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82"
|
||||||
integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
|
integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==
|
||||||
@@ -926,7 +935,7 @@ eslint-scope@^8.3.0:
|
|||||||
esrecurse "^4.3.0"
|
esrecurse "^4.3.0"
|
||||||
estraverse "^5.2.0"
|
estraverse "^5.2.0"
|
||||||
|
|
||||||
eslint-visitor-keys@^3.3.0:
|
eslint-visitor-keys@^3.4.3:
|
||||||
version "3.4.3"
|
version "3.4.3"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
|
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==
|
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
|
||||||
@@ -936,37 +945,36 @@ eslint-visitor-keys@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
|
||||||
integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
|
integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
|
||||||
|
|
||||||
eslint-visitor-keys@^4.2.0, eslint-visitor-keys@^4.2.1:
|
eslint-visitor-keys@^4.2.1:
|
||||||
version "4.2.1"
|
version "4.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
|
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1"
|
||||||
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
|
integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==
|
||||||
|
|
||||||
eslint@^9.19.0:
|
eslint@^9.39.0:
|
||||||
version "9.28.0"
|
version "9.39.0"
|
||||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.28.0.tgz#b0bcbe82a16945a40906924bea75e8b4980ced7d"
|
resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.0.tgz#33c90ddf62b64e1e3f83b689934b336f21b5f0e5"
|
||||||
integrity sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==
|
integrity sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@eslint-community/eslint-utils" "^4.2.0"
|
"@eslint-community/eslint-utils" "^4.8.0"
|
||||||
"@eslint-community/regexpp" "^4.12.1"
|
"@eslint-community/regexpp" "^4.12.1"
|
||||||
"@eslint/config-array" "^0.20.0"
|
"@eslint/config-array" "^0.21.1"
|
||||||
"@eslint/config-helpers" "^0.2.1"
|
"@eslint/config-helpers" "^0.4.2"
|
||||||
"@eslint/core" "^0.14.0"
|
"@eslint/core" "^0.17.0"
|
||||||
"@eslint/eslintrc" "^3.3.1"
|
"@eslint/eslintrc" "^3.3.1"
|
||||||
"@eslint/js" "9.28.0"
|
"@eslint/js" "9.39.0"
|
||||||
"@eslint/plugin-kit" "^0.3.1"
|
"@eslint/plugin-kit" "^0.4.1"
|
||||||
"@humanfs/node" "^0.16.6"
|
"@humanfs/node" "^0.16.6"
|
||||||
"@humanwhocodes/module-importer" "^1.0.1"
|
"@humanwhocodes/module-importer" "^1.0.1"
|
||||||
"@humanwhocodes/retry" "^0.4.2"
|
"@humanwhocodes/retry" "^0.4.2"
|
||||||
"@types/estree" "^1.0.6"
|
"@types/estree" "^1.0.6"
|
||||||
"@types/json-schema" "^7.0.15"
|
|
||||||
ajv "^6.12.4"
|
ajv "^6.12.4"
|
||||||
chalk "^4.0.0"
|
chalk "^4.0.0"
|
||||||
cross-spawn "^7.0.6"
|
cross-spawn "^7.0.6"
|
||||||
debug "^4.3.2"
|
debug "^4.3.2"
|
||||||
escape-string-regexp "^4.0.0"
|
escape-string-regexp "^4.0.0"
|
||||||
eslint-scope "^8.3.0"
|
eslint-scope "^8.4.0"
|
||||||
eslint-visitor-keys "^4.2.0"
|
eslint-visitor-keys "^4.2.1"
|
||||||
espree "^10.3.0"
|
espree "^10.4.0"
|
||||||
esquery "^1.5.0"
|
esquery "^1.5.0"
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal "^3.1.3"
|
||||||
@@ -991,7 +999,7 @@ espree@^10.0.1:
|
|||||||
acorn-jsx "^5.3.2"
|
acorn-jsx "^5.3.2"
|
||||||
eslint-visitor-keys "^4.0.0"
|
eslint-visitor-keys "^4.0.0"
|
||||||
|
|
||||||
espree@^10.3.0:
|
espree@^10.4.0:
|
||||||
version "10.4.0"
|
version "10.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
|
resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837"
|
||||||
integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
|
integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==
|
||||||
@@ -1195,22 +1203,15 @@ forever-agent@~0.6.1:
|
|||||||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||||
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||||
|
|
||||||
form-data@^4.0.0, form-data@^4.0.1:
|
form-data@^4.0.4, form-data@~4.0.4:
|
||||||
version "4.0.1"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
|
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
|
||||||
integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
|
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
|
||||||
dependencies:
|
|
||||||
asynckit "^0.4.0"
|
|
||||||
combined-stream "^1.0.8"
|
|
||||||
mime-types "^2.1.12"
|
|
||||||
|
|
||||||
form-data@~4.0.0:
|
|
||||||
version "4.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
|
||||||
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit "^0.4.0"
|
asynckit "^0.4.0"
|
||||||
combined-stream "^1.0.8"
|
combined-stream "^1.0.8"
|
||||||
|
es-set-tostringtag "^2.1.0"
|
||||||
|
hasown "^2.0.2"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
formdata-polyfill@^4.0.10:
|
formdata-polyfill@^4.0.10:
|
||||||
@@ -1247,7 +1248,7 @@ get-caller-file@^2.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||||
|
|
||||||
get-intrinsic@^1.2.5, get-intrinsic@^1.3.0:
|
get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
|
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
|
||||||
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
|
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
|
||||||
@@ -1278,13 +1279,6 @@ get-stream@^5.0.0, get-stream@^5.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
pump "^3.0.0"
|
pump "^3.0.0"
|
||||||
|
|
||||||
getos@^3.2.1:
|
|
||||||
version "3.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
|
|
||||||
integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==
|
|
||||||
dependencies:
|
|
||||||
async "^3.2.0"
|
|
||||||
|
|
||||||
getpass@^0.1.1:
|
getpass@^0.1.1:
|
||||||
version "0.1.7"
|
version "0.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
|
||||||
@@ -1323,10 +1317,10 @@ globals@^14.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
|
||||||
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
|
integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
|
||||||
|
|
||||||
globals@^15.15.0:
|
globals@^16.2.0:
|
||||||
version "15.15.0"
|
version "16.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8"
|
resolved "https://registry.yarnpkg.com/globals/-/globals-16.5.0.tgz#ccf1594a437b97653b2be13ed4d8f5c9f850cac1"
|
||||||
integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==
|
integrity sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==
|
||||||
|
|
||||||
gopd@^1.2.0:
|
gopd@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
@@ -1343,11 +1337,26 @@ has-flag@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||||
|
|
||||||
has-symbols@^1.1.0:
|
has-symbols@^1.0.3, has-symbols@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
|
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
|
||||||
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
|
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
|
||||||
|
|
||||||
|
has-tostringtag@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
|
||||||
|
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
|
||||||
|
dependencies:
|
||||||
|
has-symbols "^1.0.3"
|
||||||
|
|
||||||
|
hasha@5.2.2:
|
||||||
|
version "5.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1"
|
||||||
|
integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==
|
||||||
|
dependencies:
|
||||||
|
is-stream "^2.0.0"
|
||||||
|
type-fest "^0.8.0"
|
||||||
|
|
||||||
hasown@^2.0.2:
|
hasown@^2.0.2:
|
||||||
version "2.0.2"
|
version "2.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
|
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
|
||||||
@@ -1444,7 +1453,7 @@ is-installed-globally@~0.4.0:
|
|||||||
global-dirs "^3.0.0"
|
global-dirs "^3.0.0"
|
||||||
is-path-inside "^3.0.2"
|
is-path-inside "^3.0.2"
|
||||||
|
|
||||||
is-path-inside@^3.0.2:
|
is-path-inside@^3.0.2, is-path-inside@^3.0.3:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
||||||
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
||||||
@@ -1573,11 +1582,6 @@ keyv@^4.5.4:
|
|||||||
dependencies:
|
dependencies:
|
||||||
json-buffer "3.0.1"
|
json-buffer "3.0.1"
|
||||||
|
|
||||||
lazy-ass@^1.6.0:
|
|
||||||
version "1.6.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513"
|
|
||||||
integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM=
|
|
||||||
|
|
||||||
levn@^0.4.1:
|
levn@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
||||||
@@ -1754,10 +1758,10 @@ mocha-junit-reporter@^2.2.1:
|
|||||||
strip-ansi "^6.0.1"
|
strip-ansi "^6.0.1"
|
||||||
xml "^1.0.1"
|
xml "^1.0.1"
|
||||||
|
|
||||||
mocha@^11.1.0:
|
mocha@^11.7.4:
|
||||||
version "11.6.0"
|
version "11.7.4"
|
||||||
resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.6.0.tgz#8b695dff6386f18297d55b201ae598389198e8f7"
|
resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.4.tgz#f161b17aeccb0762484b33bdb3f7ab9410ba5c82"
|
||||||
integrity sha512-i0JVb+OUBqw63X/1pC3jCyJsqYisgxySBbsQa8TKvefpA1oEnw7JXxXnftfMHRsw7bEEVGRtVlHcDYXBa7FzVw==
|
integrity sha512-1jYAaY8x0kAZ0XszLWu14pzsf4KV740Gld4HXkhNTXwcHx4AUEDkPzgEHg9CM5dVcW+zv036tjpsEbLraPJj4w==
|
||||||
dependencies:
|
dependencies:
|
||||||
browser-stdout "^1.3.1"
|
browser-stdout "^1.3.1"
|
||||||
chokidar "^4.0.1"
|
chokidar "^4.0.1"
|
||||||
@@ -1767,6 +1771,7 @@ mocha@^11.1.0:
|
|||||||
find-up "^5.0.0"
|
find-up "^5.0.0"
|
||||||
glob "^10.4.5"
|
glob "^10.4.5"
|
||||||
he "^1.2.0"
|
he "^1.2.0"
|
||||||
|
is-path-inside "^3.0.3"
|
||||||
js-yaml "^4.1.0"
|
js-yaml "^4.1.0"
|
||||||
log-symbols "^4.1.0"
|
log-symbols "^4.1.0"
|
||||||
minimatch "^9.0.5"
|
minimatch "^9.0.5"
|
||||||
@@ -2276,6 +2281,11 @@ supports-color@^8.1.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^4.0.0"
|
has-flag "^4.0.0"
|
||||||
|
|
||||||
|
systeminformation@5.27.7:
|
||||||
|
version "5.27.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.27.7.tgz#4dc9d436419948cd5e5f076779a1298220d19a72"
|
||||||
|
integrity sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg==
|
||||||
|
|
||||||
tar@^6.1.11:
|
tar@^6.1.11:
|
||||||
version "6.2.1"
|
version "6.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
|
||||||
@@ -2310,10 +2320,10 @@ tldts@^6.1.32:
|
|||||||
dependencies:
|
dependencies:
|
||||||
tldts-core "^6.1.86"
|
tldts-core "^6.1.86"
|
||||||
|
|
||||||
tmp@~0.2.3:
|
tmp@~0.2.4:
|
||||||
version "0.2.4"
|
version "0.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.4.tgz#c6db987a2ccc97f812f17137b36af2b6521b0d13"
|
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
|
||||||
integrity sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==
|
integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
|
||||||
|
|
||||||
tough-cookie@^5.0.0:
|
tough-cookie@^5.0.0:
|
||||||
version "5.1.2"
|
version "5.1.2"
|
||||||
@@ -2363,6 +2373,11 @@ type-fest@^0.21.3:
|
|||||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
|
||||||
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
|
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
|
||||||
|
|
||||||
|
type-fest@^0.8.0:
|
||||||
|
version "0.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
||||||
|
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
||||||
|
|
||||||
underscore@1.12.1:
|
underscore@1.12.1:
|
||||||
version "1.12.1"
|
version "1.12.1"
|
||||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e"
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e"
|
||||||
|
|||||||